summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cvsignore20
-rw-r--r--ABOUT-NLS324
-rw-r--r--AUTHORS25
-rw-r--r--ChangeLog20033
-rw-r--r--INSTALL182
-rw-r--r--Makefile.am45
-rw-r--r--Makefile.in602
-rw-r--r--Matgen/dither-distance.c99
-rw-r--r--Matgen/quickaspect.c179
-rw-r--r--Matgen/quickdistance.c165
-rw-r--r--NEWS1975
-rw-r--r--README469
-rw-r--r--RedHat/ghostscript-5.50.spec200
-rw-r--r--RedHat/gimp-print.spec46
-rw-r--r--RedHat/gs.spec.diff44
-rw-r--r--aclocal.m44583
-rw-r--r--config.h.in250
-rwxr-xr-xconfigure11721
-rw-r--r--configure.in967
-rw-r--r--configure.in.in381
-rw-r--r--cups-gimpprint.list.in4
-rw-r--r--debian/.cvsignore21
-rw-r--r--debian/README.Debian23
-rw-r--r--debian/README.Debian.~1.22.2.32.~21
-rw-r--r--debian/README.building13
-rw-r--r--debian/changelog103
-rw-r--r--debian/compat1
-rw-r--r--debian/control223
-rw-r--r--debian/control.in240
-rw-r--r--debian/cupsys-driver-gimpprint.conffiles1
-rw-r--r--debian/cupsys-driver-gimpprint.files6
-rw-r--r--debian/cupsys-driver-gimpprint.install7
-rw-r--r--debian/cupsys-driver-gimpprint.postinst (renamed from debian/libgimpprint.postinst)22
-rw-r--r--debian/cupsys-driver-gimpprint.postrm4
-rw-r--r--debian/escputil.files2
-rw-r--r--debian/escputil.install2
-rw-r--r--debian/foomatic-db-gimp-print.install2
-rw-r--r--debian/gimp1.2-print.install3
-rw-r--r--debian/gimpprint-doc.doc-base2
-rw-r--r--debian/gimpprint-doc.install11
-rw-r--r--debian/gimpprint-locales.install1
-rw-r--r--debian/ijsgimpprint.install2
-rw-r--r--debian/libgimpprint-dev.files8
-rw-r--r--debian/libgimpprint-dev.install8
-rw-r--r--debian/libgimpprint-doc.doc-base.in15
-rw-r--r--debian/libgimpprint-doc.install.in2
-rw-r--r--debian/libgimpprint.files2
-rw-r--r--debian/libgimpprint.install2
-rwxr-xr-xdebian/rules140
-rw-r--r--doc/.cvsignore33
-rw-r--r--doc/FAQ.html2
-rw-r--r--doc/Makefile.am29
-rw-r--r--doc/Makefile.in699
-rw-r--r--doc/README.maintaining7
-rw-r--r--doc/gimpprint.dvibin0 -> 350616 bytes
-rw-r--r--doc/gimpprint.info94
-rw-r--r--doc/gimpprint.info-11100
-rw-r--r--doc/gimpprint.info-21080
-rw-r--r--doc/gimpprint.info-31007
-rw-r--r--doc/gimpprint.info-41151
-rw-r--r--doc/gimpprint.info-5872
-rw-r--r--doc/gimpprint.ps11226
-rw-r--r--doc/html-stamp0
-rw-r--r--doc/manual-html/gimpprint_1.html63
-rw-r--r--doc/manual-html/gimpprint_10.html53
-rw-r--r--doc/manual-html/gimpprint_11.html86
-rw-r--r--doc/manual-html/gimpprint_12.html558
-rw-r--r--doc/manual-html/gimpprint_13.html45
-rw-r--r--doc/manual-html/gimpprint_14.html102
-rw-r--r--doc/manual-html/gimpprint_15.html141
-rw-r--r--doc/manual-html/gimpprint_16.html184
-rw-r--r--doc/manual-html/gimpprint_17.html61
-rw-r--r--doc/manual-html/gimpprint_18.html156
-rw-r--r--doc/manual-html/gimpprint_19.html38
-rw-r--r--doc/manual-html/gimpprint_2.html495
-rw-r--r--doc/manual-html/gimpprint_20.html315
-rw-r--r--doc/manual-html/gimpprint_21.html22
-rw-r--r--doc/manual-html/gimpprint_22.html22
-rw-r--r--doc/manual-html/gimpprint_23.html37
-rw-r--r--doc/manual-html/gimpprint_24.html29
-rw-r--r--doc/manual-html/gimpprint_25.html611
-rw-r--r--doc/manual-html/gimpprint_26.html31
-rw-r--r--doc/manual-html/gimpprint_27.html152
-rw-r--r--doc/manual-html/gimpprint_28.html77
-rw-r--r--doc/manual-html/gimpprint_29.html111
-rw-r--r--doc/manual-html/gimpprint_3.html41
-rw-r--r--doc/manual-html/gimpprint_30.html246
-rw-r--r--doc/manual-html/gimpprint_31.html87
-rw-r--r--doc/manual-html/gimpprint_32.html723
-rw-r--r--doc/manual-html/gimpprint_33.html247
-rw-r--r--doc/manual-html/gimpprint_34.html29
-rw-r--r--doc/manual-html/gimpprint_35.html52
-rw-r--r--doc/manual-html/gimpprint_36.html560
-rw-r--r--doc/manual-html/gimpprint_37.html663
-rw-r--r--doc/manual-html/gimpprint_38.html115
-rw-r--r--doc/manual-html/gimpprint_39.html59
-rw-r--r--doc/manual-html/gimpprint_4.html82
-rw-r--r--doc/manual-html/gimpprint_40.html115
-rw-r--r--doc/manual-html/gimpprint_41.html52
-rw-r--r--doc/manual-html/gimpprint_42.html457
-rw-r--r--doc/manual-html/gimpprint_43.html189
-rw-r--r--doc/manual-html/gimpprint_44.html117
-rw-r--r--doc/manual-html/gimpprint_45.html49
-rw-r--r--doc/manual-html/gimpprint_46.html249
-rw-r--r--doc/manual-html/gimpprint_47.html124
-rw-r--r--doc/manual-html/gimpprint_5.html36
-rw-r--r--doc/manual-html/gimpprint_6.html106
-rw-r--r--doc/manual-html/gimpprint_7.html39
-rw-r--r--doc/manual-html/gimpprint_8.html66
-rw-r--r--doc/manual-html/gimpprint_9.html79
-rw-r--r--doc/manual-html/gimpprint_foot.html33
-rw-r--r--doc/manual-html/gimpprint_toc.html108
-rw-r--r--doc/manual-html/print-color.pngbin0 -> 11217 bytes
-rw-r--r--doc/manual-html/print-main.pngbin0 -> 17787 bytes
-rw-r--r--doc/manual-html/print-setup.pngbin0 -> 3539 bytes
-rw-r--r--doc/new-printer.texi53
-rw-r--r--doc/print-color.eps788
-rw-r--r--doc/print-color.txt1
-rw-r--r--doc/print-main.eps551
-rw-r--r--doc/print-main.txt1
-rw-r--r--doc/print-setup.eps225
-rw-r--r--doc/print-setup.txt1
-rw-r--r--doc/stamp-vti3
-rw-r--r--doc/users_guide/.cvsignore12
-rw-r--r--doc/users_guide/Makefile.am53
-rw-r--r--doc/users_guide/Makefile.in520
-rw-r--r--doc/users_guide/cups.sgml316
-rw-r--r--doc/users_guide/figures/.cvsignore1
-rw-r--r--doc/users_guide/figures/CVS/Entries19
-rw-r--r--doc/users_guide/figures/CVS/Repository1
-rw-r--r--doc/users_guide/figures/CVS/Root1
-rw-r--r--doc/users_guide/figures/CVS/Tag1
-rw-r--r--doc/users_guide/figures/cups_admin.eps594
-rw-r--r--doc/users_guide/figures/cups_admin_device.eps581
-rw-r--r--doc/users_guide/figures/cups_admin_make.eps599
-rw-r--r--doc/users_guide/figures/cups_admin_model.eps620
-rw-r--r--doc/users_guide/figures/cups_admin_success.eps573
-rw-r--r--doc/users_guide/figures/cups_config_printer.eps675
-rw-r--r--doc/users_guide/figures/cups_my_printer.eps647
-rw-r--r--doc/users_guide/figures/cups_printers.eps572
-rw-r--r--doc/users_guide/figures/cups_startup.eps596
-rw-r--r--doc/users_guide/figures/gimp-print-gui-1.eps825
-rw-r--r--doc/users_guide/figures/gimp-print-gui.eps851
-rw-r--r--doc/users_guide/figures/gimp-print-new-printer.eps440
-rw-r--r--doc/users_guide/figures/gimp-print-print-color-adjust.eps605
-rw-r--r--doc/users_guide/figures/gimp-print-setup.eps463
-rw-r--r--doc/users_guide/figures/gimp_image.eps1024
-rw-r--r--doc/users_guide/figures/gimp_startup.eps483
-rw-r--r--doc/users_guide/gfdl.sgml466
-rw-r--r--doc/users_guide/gimp.sgml898
-rw-r--r--doc/users_guide/history.sgml108
-rw-r--r--doc/users_guide/html-stamp0
-rw-r--r--doc/users_guide/html/HTML.manifest21
-rw-r--r--doc/users_guide/html/book1.html483
-rw-r--r--doc/users_guide/html/c29.html251
-rw-r--r--doc/users_guide/html/c447.html185
-rw-r--r--doc/users_guide/html/c570.html721
-rw-r--r--doc/users_guide/html/ch-gimp-and-gimp-print.html242
-rw-r--r--doc/users_guide/html/docbook.css20
-rw-r--r--doc/users_guide/html/figures/cups_admin.pngbin0 -> 11105 bytes
-rw-r--r--doc/users_guide/html/figures/cups_admin_device.pngbin0 -> 10515 bytes
-rw-r--r--doc/users_guide/html/figures/cups_admin_make.pngbin0 -> 11540 bytes
-rw-r--r--doc/users_guide/html/figures/cups_admin_model.pngbin0 -> 12445 bytes
-rw-r--r--doc/users_guide/html/figures/cups_admin_success.pngbin0 -> 10441 bytes
-rw-r--r--doc/users_guide/html/figures/cups_config_printer.pngbin0 -> 15395 bytes
-rw-r--r--doc/users_guide/html/figures/cups_my_printer.pngbin0 -> 14544 bytes
-rw-r--r--doc/users_guide/html/figures/cups_printers.pngbin0 -> 10008 bytes
-rw-r--r--doc/users_guide/html/figures/cups_startup.pngbin0 -> 11252 bytes
-rw-r--r--doc/users_guide/html/figures/gimp-print-gui-1.pngbin0 -> 24241 bytes
-rw-r--r--doc/users_guide/html/figures/gimp-print-gui.pngbin0 -> 26080 bytes
-rw-r--r--doc/users_guide/html/figures/gimp-print-new-printer.pngbin0 -> 1438 bytes
-rw-r--r--doc/users_guide/html/figures/gimp-print-print-color-adjust.pngbin0 -> 11402 bytes
-rw-r--r--doc/users_guide/html/figures/gimp-print-setup.pngbin0 -> 2973 bytes
-rw-r--r--doc/users_guide/html/figures/gimp_image.pngbin0 -> 35648 bytes
-rw-r--r--doc/users_guide/html/figures/gimp_startup.pngbin0 -> 3890 bytes
-rw-r--r--doc/users_guide/html/gfdl.html238
-rw-r--r--doc/users_guide/html/ln12.html88
-rw-r--r--doc/users_guide/html/stylesheet-images/caution.gifbin0 -> 1039 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/home.gifbin0 -> 995 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/important.gifbin0 -> 1081 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/next.gifbin0 -> 964 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/note.gifbin0 -> 1070 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/prev.gifbin0 -> 944 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/tip.gifbin0 -> 1029 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/toc-blank.gifbin0 -> 95 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/toc-minus.gifbin0 -> 843 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/toc-plus.gifbin0 -> 846 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/up.gifbin0 -> 922 bytes
-rw-r--r--doc/users_guide/html/stylesheet-images/warning.gifbin0 -> 1052 bytes
-rw-r--r--doc/users_guide/html/x456.html461
-rw-r--r--doc/users_guide/html/x548.html175
-rw-r--r--doc/users_guide/html/x562.html212
-rw-r--r--doc/users_guide/html/x642.html195
-rw-r--r--doc/users_guide/html/x652.html145
-rw-r--r--doc/users_guide/html/x656.html169
-rw-r--r--doc/users_guide/html/x662.html275
-rw-r--r--doc/users_guide/html/x698.html154
-rw-r--r--doc/users_guide/html/x703.html144
-rw-r--r--doc/users_guide/html/x707.html148
-rw-r--r--doc/users_guide/html/x711.html143
-rw-r--r--doc/users_guide/html/x714.html140
-rw-r--r--doc/users_guide/html/x717.html151
-rw-r--r--doc/users_guide/html/x722.html152
-rw-r--r--doc/users_guide/html/x85.html1732
-rw-r--r--doc/users_guide/title.sgml80
-rw-r--r--doc/users_guide/users-guide.pdfbin0 -> 393572 bytes
-rw-r--r--doc/users_guide/users-guide.ps14972
-rw-r--r--doc/users_guide/users-guide.sgml1884
-rw-r--r--doc/users_guide/utils.sgml421
-rw-r--r--doc/version.texi3
-rw-r--r--gimp.m4211
-rw-r--r--include/.cvsignore2
-rw-r--r--include/Makefile.in407
-rw-r--r--include/gimp-print/.cvsignore3
-rw-r--r--include/gimp-print/Makefile.am4
-rw-r--r--include/gimp-print/Makefile.in357
-rw-r--r--include/gimp-print/gimp-print-intl-internal.h2
-rw-r--r--include/gimp-print/gimp-print.h598
-rw-r--r--include/gimp-print/gimp-print.h.in18
-rw-r--r--intl/ChangeLog4
-rw-r--r--intl/Makefile.in313
-rw-r--r--intl/VERSION1
-rw-r--r--intl/bindtextdom.c369
-rwxr-xr-xintl/config.charset438
-rw-r--r--intl/dcgettext.c58
-rw-r--r--intl/dcigettext.c1259
-rw-r--r--intl/dcngettext.c60
-rw-r--r--intl/dgettext.c59
-rw-r--r--intl/dngettext.c61
-rw-r--r--intl/explodename.c192
-rw-r--r--intl/finddomain.c198
-rw-r--r--intl/gettext.c64
-rw-r--r--intl/gettext.h102
-rw-r--r--intl/gettextP.h252
-rw-r--r--intl/hash-string.h59
-rw-r--r--intl/intl-compat.c166
-rw-r--r--intl/l10nflist.c405
-rw-r--r--intl/libgettext.h49
-rw-r--r--intl/libgnuintl.h128
-rw-r--r--intl/loadinfo.h109
-rw-r--r--intl/loadmsgcat.c567
-rw-r--r--intl/localcharset.c271
-rw-r--r--intl/locale.alias78
-rw-r--r--intl/localealias.c404
-rw-r--r--intl/ngettext.c68
-rw-r--r--intl/plural.c1326
-rw-r--r--intl/plural.y413
-rw-r--r--intl/ref-add.sin31
-rw-r--r--intl/ref-del.sin26
-rw-r--r--intl/textdomain.c142
-rw-r--r--jmv/README17
-rw-r--r--lib/.cvsignore12
-rw-r--r--lib/Makefile.in428
-rw-r--r--lib/vasprintf.c8
-rw-r--r--man/.cvsignore6
-rw-r--r--man/Makefile.am26
-rw-r--r--man/Makefile.in498
-rw-r--r--man/cups-calibrate.8.in60
-rw-r--r--man/escputil.1.in173
-rw-r--r--man/gimpprint-color.7.in106
-rw-r--r--man/gimpprint-config.1.in31
-rw-r--r--man/gimpprint-dithers.7.in103
-rw-r--r--man/gimpprint-imagetypes.7.in82
-rw-r--r--man/gimpprint-inktypes.7.in111
-rw-r--r--man/gimpprint-mediasizes.7.in258
-rw-r--r--man/gimpprint-mediasources.7.in104
-rw-r--r--man/gimpprint-mediatypes.7.in115
-rw-r--r--man/gimpprint-models.7.in248
-rw-r--r--man/gimpprint-resolutions.7.in431
-rw-r--r--man/gimpprint.3.in52
-rw-r--r--man/ijsgimpprint.1.in319
-rw-r--r--po/.cvsignore10
-rw-r--r--po/ChangeLog7
-rw-r--r--po/Makefile.in.in196
-rw-r--r--po/POTFILES.in8
-rw-r--r--po/cs.gmobin0 -> 68015 bytes
-rw-r--r--po/cs.po3491
-rw-r--r--po/da.gmobin0 -> 63732 bytes
-rw-r--r--po/da.po2792
-rw-r--r--po/de.gmobin0 -> 67832 bytes
-rw-r--r--po/de.po3600
-rw-r--r--po/el.gmobin0 -> 9330 bytes
-rw-r--r--po/el.po3493
-rw-r--r--po/en_GB.gmobin0 -> 54912 bytes
-rw-r--r--po/en_GB.po1910
-rw-r--r--po/es.gmobin0 -> 57392 bytes
-rw-r--r--po/es.po3685
-rw-r--r--po/fr.gmobin0 -> 66453 bytes
-rw-r--r--po/fr.po2520
-rw-r--r--po/gimp-print.pot3198
-rw-r--r--po/hu.gmobin0 -> 17715 bytes
-rw-r--r--po/hu.po3209
-rw-r--r--po/ja.gmobin0 -> 62634 bytes
-rw-r--r--po/ja.po3549
-rw-r--r--po/nb.gmobin0 -> 22281 bytes
-rw-r--r--po/nb.po3282
-rw-r--r--po/nl.gmobin0 -> 68266 bytes
-rw-r--r--po/nl.po3563
-rw-r--r--po/no.gmobin0 -> 22281 bytes
-rw-r--r--po/no.po2203
-rw-r--r--po/pl.gmobin0 -> 13572 bytes
-rw-r--r--po/pl.po1780
-rw-r--r--po/pt.gmobin0 -> 66952 bytes
-rw-r--r--po/pt.po3612
-rw-r--r--po/sk.gmobin0 -> 69410 bytes
-rw-r--r--po/sk.po3530
-rw-r--r--po/sv.gmobin0 -> 66951 bytes
-rw-r--r--po/sv.po1960
-rw-r--r--po/uk.gmobin0 -> 84916 bytes
-rw-r--r--po/uk.po3515
-rw-r--r--samples/.cvsignore1
-rw-r--r--samples/Makefile.in328
-rw-r--r--scripts/.cvsignore8
-rw-r--r--scripts/autogen.sh6
-rw-r--r--scripts/autogen.sh.~1.16.2.1.~350
-rwxr-xr-xscripts/config.guess1363
-rwxr-xr-xscripts/config.sub1470
-rwxr-xr-xscripts/install-sh251
-rw-r--r--scripts/ltmain.sh5062
-rwxr-xr-xscripts/mdate-sh92
-rwxr-xr-xscripts/missing190
-rwxr-xr-xscripts/mkchlog102
-rwxr-xr-xscripts/mkinstalldirs40
-rw-r--r--src/.cvsignore2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in407
-rw-r--r--src/cups/.cvsignore13
-rw-r--r--src/cups/Makefile.am46
-rw-r--r--src/cups/Makefile.in789
-rw-r--r--src/cups/canon.c60
-rw-r--r--src/cups/epson.c316
-rw-r--r--src/cups/genppd.c376
-rw-r--r--src/cups/rastertoprinter.c231
-rw-r--r--src/escputil/.cvsignore5
-rw-r--r--src/escputil/Makefile.am5
-rw-r--r--src/escputil/Makefile.in450
-rw-r--r--src/escputil/escputil.c235
-rw-r--r--src/foomatic/.cvsignore12
-rw-r--r--src/foomatic/Makefile.am65
-rw-r--r--src/foomatic/Makefile.in550
-rw-r--r--src/foomatic/foomatic-generator.in909
-rw-r--r--src/foomatic/foomatic-printermap842
-rw-r--r--src/foomatic/foomatic-templates-gs/Brightness.xml (renamed from src/foomatic/foomatic-templates/Brightness.xml)6
-rw-r--r--src/foomatic/foomatic-templates-gs/Color.xml (renamed from src/foomatic/foomatic-templates/Color.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/Contrast.xml (renamed from src/foomatic/foomatic-templates/Contrast.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/Cyan.xml (renamed from src/foomatic/foomatic-templates/Cyan.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/Density.xml (renamed from src/foomatic/foomatic-templates/Density.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/Dither.xml (renamed from src/foomatic/foomatic-templates/Dither.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/Gamma.xml (renamed from src/foomatic/foomatic-templates/Gamma.xml)6
-rw-r--r--src/foomatic/foomatic-templates-gs/ImageType.xml (renamed from src/foomatic/foomatic-templates/ImageType.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/InkType.xml (renamed from src/foomatic/foomatic-templates/InkType.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/InputSlot.xml (renamed from src/foomatic/foomatic-templates/InputSlot.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/Magenta.xml (renamed from src/foomatic/foomatic-templates/Magenta.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/MediaType.xml (renamed from src/foomatic/foomatic-templates/MediaType.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/Model.xml (renamed from src/foomatic/foomatic-templates/Model.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/PageSize.xml (renamed from src/foomatic/foomatic-templates/PageSize.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/PrintoutMode.xml19
-rw-r--r--src/foomatic/foomatic-templates-gs/Quality.xml (renamed from src/foomatic/foomatic-templates/Quality.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/Resolution.xml (renamed from src/foomatic/foomatic-templates/Resolution.xml)3
-rw-r--r--src/foomatic/foomatic-templates-gs/Saturation.xml (renamed from src/foomatic/foomatic-templates/Saturation.xml)6
-rw-r--r--src/foomatic/foomatic-templates-gs/Yellow.xml (renamed from src/foomatic/foomatic-templates/Yellow.xml)2
-rw-r--r--src/foomatic/foomatic-templates-gs/gimp-print.xml43
-rw-r--r--src/foomatic/foomatic-templates-ijs/Brightness.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Color.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Contrast.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Cyan.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Density.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Dither.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Gamma.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/ImageType.xml63
-rw-r--r--src/foomatic/foomatic-templates-ijs/InkType.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/InputSlot.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Magenta.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/MediaType.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Model.xml21
-rw-r--r--src/foomatic/foomatic-templates-ijs/PageSize.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/PrintoutMode.xml19
-rw-r--r--src/foomatic/foomatic-templates-ijs/Quality.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Resolution.xml20
-rw-r--r--src/foomatic/foomatic-templates-ijs/Saturation.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/Yellow.xml24
-rw-r--r--src/foomatic/foomatic-templates-ijs/gimp-print.xml44
-rw-r--r--src/foomatic/foomatic-templates/gimp-print.xml26
-rw-r--r--src/foomatic/oldprinterids640
-rw-r--r--src/foomatic/printer_margins.c93
-rw-r--r--src/foomatic/printer_options.c5
-rw-r--r--src/ghost/.cvsignore20
-rw-r--r--src/ghost/Makefile539
-rw-r--r--src/ghost/Makefile.am61
-rw-r--r--src/ghost/Makefile.in508
-rw-r--r--src/ghost/README898
-rw-r--r--src/ghost/contrib.mak.addon.old10
-rw-r--r--src/ghost/devs.mak.addon-5.1010
-rw-r--r--src/ghost/gdevstp.c4
-rw-r--r--src/ghost/ijsgimpprint.c1028
-rw-r--r--src/gimp/.cvsignore5
-rw-r--r--src/gimp/Makefile.am38
-rw-r--r--src/gimp/Makefile.in468
-rw-r--r--src/gimp/print.c41
-rw-r--r--src/main/.cvsignore18
-rw-r--r--src/main/Makefile.am18
-rw-r--r--src/main/Makefile.in560
-rw-r--r--src/main/gimp-print-internal.h139
-rw-r--r--src/main/gimpprint-config.in2
-rw-r--r--src/main/gimpprint.m43
-rw-r--r--src/main/print-canon.c936
-rw-r--r--src/main/print-color.c14
-rw-r--r--src/main/print-dither-matrices.c241
-rw-r--r--src/main/print-dither.c2993
-rw-r--r--src/main/print-dither.h82
-rw-r--r--src/main/print-escp2-data.c5313
-rw-r--r--src/main/print-escp2.c4798
-rw-r--r--src/main/print-escp2.h379
-rw-r--r--src/main/print-lexmark.c263
-rw-r--r--src/main/print-pcl.c543
-rw-r--r--src/main/print-ps.c240
-rw-r--r--src/main/print-util.c335
-rw-r--r--src/main/print-weave.c316
-rw-r--r--src/main/printers.xml922
-rw-r--r--src/printdef/.cvsignore8
-rw-r--r--src/printdef/Makefile.in447
-rw-r--r--src/printdef/printdefl.c1762
-rw-r--r--src/printdef/printdefy.c1089
-rw-r--r--src/printdef/printdefy.h27
-rw-r--r--src/printdef/printdefy.y9
-rw-r--r--src/testpattern/.cvsignore8
-rw-r--r--src/testpattern/Makefile.am5
-rw-r--r--src/testpattern/Makefile.in506
-rw-r--r--src/testpattern/testpattern.c101
-rw-r--r--src/testpattern/testpattern.h56
-rw-r--r--src/testpattern/testpatternl.c1807
-rw-r--r--src/testpattern/testpatternl.l3
-rw-r--r--src/testpattern/testpatterny.c1089
-rw-r--r--src/testpattern/testpatterny.h33
-rw-r--r--src/testpattern/testpatterny.y65
-rw-r--r--stamp-h.in1
-rw-r--r--test/.cvsignore12
-rw-r--r--test/Makefile.am26
-rw-r--r--test/Makefile.in517
-rw-r--r--test/escp2-weavetest.c5
-rwxr-xr-xtest/parse-bjc145
-rwxr-xr-xtest/parse-escp27
-rw-r--r--test/pcl-unprint.c115
-rwxr-xr-xtest/run-testdither40
-rwxr-xr-xtest/run-weavetest14
-rw-r--r--test/testdither.c319
-rw-r--r--test/unprint.c37
447 files changed, 204352 insertions, 15964 deletions
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 886e340..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,20 +0,0 @@
-.deps
-.noupdate
-ABOUT-NLS
-ChangeLog
-Makefile
-Makefile.in
-aclocal.m4
-config.cache
-config.log
-config.h
-config.h.in
-config.status
-configure
-configure.in
-cups-gimpprint.list
-debian-build
-intl
-libtool
-stamp-h
-stamp-h.in
diff --git a/ABOUT-NLS b/ABOUT-NLS
new file mode 100644
index 0000000..5fde45a
--- /dev/null
+++ b/ABOUT-NLS
@@ -0,0 +1,324 @@
+Notes on the Free Translation Project
+*************************************
+
+ Free software is going international! The Free Translation Project
+is a way to get maintainers of free software, translators, and users all
+together, so that will gradually become able to speak many languages.
+A few packages already provide translations for their messages.
+
+ If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site. But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+ Installers will find here some useful hints. These notes also
+explain how users should proceed for getting the programs to use the
+available translations. They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+ When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used. The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+Quick configuration advice
+==========================
+
+ If you want to exploit the full power of internationalization, you
+should configure it using
+
+ ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed. So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation. Future versions of GNU `gettext' will
+very likely convey even more functionality. So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+ So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+INSTALL Matters
+===============
+
+ Some packages are "localizable" when properly installed; the
+programs they contain can be made to speak your own native language.
+Most such packages use GNU `gettext'. Other packages have their own
+ways to internationalization, predating GNU `gettext'.
+
+ By default, this package will be installed to allow translation of
+messages. It will automatically detect whether the system already
+provides the GNU `gettext' functions. If not, the GNU `gettext' own
+library will be used. This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is _not_ required. Installers may use
+special options at configuration time for changing the default
+behaviour. The commands:
+
+ ./configure --with-included-gettext
+ ./configure --disable-nls
+
+will respectively bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+ When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this. This might be not what is desirable. You
+should use the more recent version of the GNU `gettext' library. I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+ ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+ The configuration process will not test for the `catgets' function
+and therefore it will not be used. The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+ Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language. Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package. However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+ As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code. For example, let's
+suppose that you speak German and live in Germany. At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+ You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries. For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
+country code serves to distinguish the dialects.
+
+ Not all programs have translations for all languages. By default, an
+English message is shown in place of a nonexistent translation. If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries. For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+ In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect. For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+Translating Teams
+=================
+
+ For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list. The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+ If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended. For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+ subscribe
+
+ Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around. If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+ The English team is special. It works at improving and uniformizing
+the terminology in use. Proven linguistic skill are praised more than
+programming skill, here.
+
+Available Packages
+==================
+
+ Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of September
+2001. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+ Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja
+ +----------------------------------------------------+
+ a2ps | [] [] [] |
+ bash | [] [] [] [] |
+ bfd | |
+ binutils | [] |
+ bison | [] [] [] [] [] |
+ clisp | [] [] [] [] |
+ cpio | [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] [] |
+ enscript | [] [] |
+ error | [] [] |
+ fetchmail | |
+ fileutils | [] [] [] [] [] [] [] [] |
+ findutils | [] [] [] [] [] [] [] [] |
+ flex | [] [] [] |
+ freetype | |
+ gas | |
+ gawk | [] [] |
+ gcal | |
+ gcc | |
+ gettext | [] [] [] [] [] [] [] [] [] [] |
+ gnupg | [] [] [] [] [] [] [] |
+ gprof | |
+ grep | [] [] [] [] [] [] [] [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] |
+ indent | [] [] [] [] [] |
+ jpilot | [] |
+ kbd | |
+ ld | [] |
+ libc | [] [] [] [] [] [] [] [] |
+ lilypond | [] |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] [] [] [] [] |
+ make | [] [] [] [] [] [] |
+ mysecretdiary | [] |
+ nano | [] [] [] |
+ opcodes | |
+ parted | [] [] [] |
+ ptx | [] [] [] [] [] [] [] |
+ python | |
+ recode | [] [] [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] [] [] [] [] |
+ sh-utils | [] [] [] [] [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] [] |
+ sketch | |
+ soundtracker | [] [] [] |
+ sp | |
+ tar | [] [] [] [] [] [] [] [] |
+ texinfo | [] [] [] [] [] [] |
+ textutils | [] [] [] [] [] [] [] [] |
+ util-linux | [] [] |
+ wdiff | [] [] [] |
+ wget | [] [] [] [] [] [] [] [] [] [] |
+ +----------------------------------------------------+
+ bg cs da de el en eo es et fi fr gl he hr id it ja
+ 0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18
+
+ ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
+ +----------------------------------------------------+
+ a2ps | [] [] [] | 6
+ bash | | 4
+ bfd | | 0
+ binutils | | 1
+ bison | [] | 6
+ clisp | [] | 5
+ cpio | [] [] [] [] [] | 10
+ diffutils | [] [] [] [] | 11
+ enscript | [] [] [] | 5
+ error | [] [] | 4
+ fetchmail | | 0
+ fileutils | [] [] [] [] [] [] [] [] [] | 17
+ findutils | [] [] [] [] [] [] [] [] | 16
+ flex | [] [] [] | 6
+ freetype | | 0
+ gas | | 0
+ gawk | [] | 3
+ gcal | | 0
+ gcc | | 0
+ gettext | [] [] [] [] [] [] [] [] | 18
+ gnupg | [] [] [] | 10
+ gprof | | 0
+ grep | [] [] [] [] | 12
+ hello | [] [] [] [] [] [] [] [] [] [] [] | 22
+ id-utils | [] [] [] | 6
+ indent | [] [] [] [] [] [] [] | 12
+ jpilot | | 1
+ kbd | [] | 1
+ ld | | 1
+ libc | [] [] [] [] [] [] [] [] | 16
+ lilypond | [] [] | 3
+ lynx | [] [] [] [] | 8
+ m4 | [] [] [] [] | 12
+ make | [] [] [] [] [] [] | 12
+ mysecretdiary | | 1
+ nano | [] | 4
+ opcodes | [] | 1
+ parted | [] [] | 5
+ ptx | [] [] [] [] [] [] [] [] | 15
+ python | | 0
+ recode | [] [] [] [] | 13
+ sed | [] [] [] [] [] [] [] | 19
+ sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21
+ sharutils | [] [] [] | 11
+ sketch | | 0
+ soundtracker | | 3
+ sp | | 0
+ tar | [] [] [] [] [] [] [] | 15
+ texinfo | [] | 7
+ textutils | [] [] [] [] [] [] [] [] | 16
+ util-linux | [] [] | 4
+ wdiff | [] [] [] [] | 7
+ wget | [] [] [] [] [] [] [] | 17
+ +----------------------------------------------------+
+ 33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
+ 53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387
+
+ Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect. This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+ For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer. There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+ If September 2001 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites. The most
+up-to-date matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+Using `gettext' in new packages
+===============================
+
+ If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package. Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library. This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+ Once the sources are changed appropriately and the setup can handle
+to use of `gettext' the only thing missing are the translations. The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project. Therefore the information given above
+applies also for every other Free Software Project. Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
+
diff --git a/AUTHORS b/AUTHORS
index 4ffa4b8..b1d0842 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -3,6 +3,7 @@ written by Mike Sweet <mike@easysw.com>.
Version 3.0, which is based on version 2, was written by Robert
Krawitz <rlk@alum.mit.edu> in late 1999, and frozen in early 2000.
+The code was based on the 2.0 release.
Version 4.0 was developed by a team led by Robert Krawitz. It was
released in November 2000. We hosted the development on SourceForge,
@@ -11,14 +12,15 @@ The complete hosting service provided by SourceForge permitted the
development team to concentrate on improving the software rather than
having to worry about maintaining a development system.
-Version 4.1 is being developed by the same team, with some additions.
-Roger Leigh in particular has reimplemented the build system to match
-the GNU standard, making for a far more flexible and powerful system.
+Version 4.2 was developed by the same team, with some additions, and
+was released in November 2001. Roger Leigh in particular has
+reimplemented the build system to match the GNU standard, making for a
+far more flexible and powerful system.
The list of contributors, in alphabetical order, is as follows. The
principal areas that each contributed to are listed in addition.
-Andy Stewart <andystewart@mediaone.com>
+Andy Stewart <andystewart@attbi.com>
User manual
Andy Thaller <thaller@ph.tum.de>
@@ -57,6 +59,9 @@ Karl Heinz Kremer <khk@khk.net>
Liaison with Epson
Engineering and design
+Mark Tomlinson <mark@southern.co.nz>
+ Implementation of Raph Levien's EvenTone dither
+
Michael Natterer <mitschel@cs.tu-berlin.de>
New user interface
Liaison with the Gimp development team
@@ -67,6 +72,9 @@ Mike Sweet <mike@easysw.com>
Lots o'details
4.0 maintainer
+Peter Missel <peter.missel@eplus-online.de>
+ Canon driver
+
Richard Wisenoecker <Richard.Wisenoecker@gmx.at>
Lexmark driver
@@ -78,8 +86,9 @@ Robert Krawitz <rlk@alum.mit.edu>
Documentation
Ghostscript front end
-Roger Leigh <rl117@york.ac.uk>
+Roger Leigh <roger@whinlatter.uklinux.net>
Complete reimplementation of the configure/build system
+ Architecture
Debian support
Steve Kann <stevek@stevek.com>
@@ -90,3 +99,9 @@ Steve Miller <smiller@rni.net>
Thomas Tonino <ttonino@bio.vu.nl>
Vastly improved dithering and color management
+
+Till Kamppeter <till.kamppeter@gmx.net>
+ Foomatic interface
+
+Tyler Blessing <tylerb@mac.com>
+ Macintosh OS X packaging
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..9db9eae
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,20033 @@
+2004-07-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.111) (+49 -35)
+
+ Updates for the 4.2.7 release.
+
+2004-06-13 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.16) (+6 -0)
+
+ Bump version to 4.2.7-1.
+
+2004-06-13 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.110) (+3 -0)
+
+ Update the release notes
+
+2004-06-13 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.109) (+14 -8)
+
+ Bug fix for 972014.
+
+2004-06-13 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.26.2.7) (+9 -2)
+
+ 972014 eksprx600_610.ppd crashes gimp-print-4.2.6-4
+
+2004-06-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.108) (+9 -4)
+
+ Note additional bug fixes and prep for release.
+
+2004-06-12 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.15) (+41 -9)
+
+ 971833 CUPS PPD manufacturer names violate spec
+
+2004-06-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.107) (+1 -1)
+
+ Fix release date.
+
+2004-06-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.106) (+3 -0)
+
+ Support correct page widths for the HP DesignJet 2500 and 3500.
+
+2004-06-09 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.13) (+29 -3)
+ src/main/printers.xml (1.42.2.26) (+2 -2)
+
+ DesignJet 2500 is 36" wide and the DesignJet 3500 is 54" wide.
+
+2004-06-05 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.105) (+64 -77)
+ README (1.91.2.53) (+19 -17)
+ configure.in.in (1.103.2.75) (+2 -2)
+ debian/README.Debian (1.22.2.33) (+1 -1)
+
+ Prep for 4.2.7
+
+2004-05-27 <rleigh@sourceforge.net>
+
+ Files: src/main/gimpprint.m4 (1.6.2.2) (+1 -1)
+
+ Properly quote macro definition to prevent automake warnings.
+
+2004-05-13 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.104) (+79 -62)
+ README (1.91.2.52) (+9 -9)
+ configure.in.in (1.103.2.74) (+3 -3)
+ debian/README.Debian (1.22.2.32) (+1 -1)
+
+ Increment version and prep for release
+
+2004-05-08 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.18) (+44 -32)
+
+ 855685 escputil does not return status for C84
+
+2004-05-01 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.73) (+2 -2)
+ po/hu.po (1.1) ( )
+ po/hu.po (1.1.2.1) (+3175 -0)
+
+ Add Hungarian translation
+
+2004-04-25 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.11) (+651 -571)
+ po/nl.po (1.1.2.40) (+72 -72)
+ po/sk.po (1.1.2.47) (+617 -572)
+
+ Updated translations
+
+2004-04-20 <rlk@sourceforge.net>
+
+ Files: po/uk.po (1.1.2.2) (+622 -537)
+
+ Updated Ukrainian .po file
+
+2004-04-19 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.30.2.51) (+0 -0)
+
+ More po updates
+
+2004-04-19 <rlk@sourceforge.net>
+
+ Files: po/de.po (1.1.2.36) (+869 -784)
+ po/en_GB.po (1.80.2.51) (+0 -0)
+ po/nl.po (1.1.2.39) (+854 -648)
+
+ More po updates
+
+2004-04-19 <rlk@sourceforge.net>
+
+ Files: doc/README.maintaining (1.8.2.1) (+6 -1)
+
+ Update the wget command
+
+2004-04-18 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.50) (+0 -0)
+ po/sv.po (1.30.2.50) (+0 -0)
+
+ PO updates
+
+2004-04-17 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.72) (+2 -2)
+ po/cs.po (1.1.2.10) (+574 -740)
+ po/da.po (1.14.2.44) (+593 -777)
+ po/de.po (1.1.2.35) (+585 -764)
+ po/el.po (1.1.2.41) (+646 -1224)
+ po/en_GB.po (1.80.2.49) (+689 -1108)
+ po/es.po (1.1.2.33) (+766 -1217)
+ po/fr.po (1.21.2.44) (+504 -797)
+ po/ja.po (1.1.2.24) (+517 -726)
+ po/nb.po (1.1) ( )
+ po/nb.po (1.1.2.1) (+2603 -0)
+ po/nl.po (1.1.2.38) (+635 -857)
+ po/pl.po (1.5.2.43) (+795 -1310)
+ po/sk.po (1.1.2.46) (+1127 -1378)
+ po/sv.po (1.30.2.49) (+553 -722)
+ po/uk.po (1.1) ( )
+ po/uk.po (1.1.2.1) (+3352 -0)
+
+ Add Ukrainian and Norwegian/Bokmaal translations
+
+2004-04-13 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.9) (+394 -379)
+ po/da.po (1.14.2.43) (+394 -379)
+ po/de.po (1.1.2.34) (+394 -379)
+ po/el.po (1.1.2.40) (+394 -379)
+ po/en_GB.po (1.80.2.48) (+395 -380)
+ po/es.po (1.1.2.32) (+394 -379)
+ po/fr.po (1.21.2.43) (+394 -379)
+ po/ja.po (1.1.2.23) (+394 -379)
+ po/nl.po (1.1.2.37) (+394 -379)
+ po/no.po (1.21.2.44) (+394 -379)
+ po/pl.po (1.5.2.42) (+394 -379)
+ po/pt.po (1.1.2.32) (+394 -379)
+ po/sk.po (1.1.2.45) (+394 -379)
+ po/sv.po (1.30.2.48) (+395 -380)
+
+ Gimp-Print 4.2.7-pre1 release
+
+2004-04-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.45) (+3 -3)
+
+ Further adjust the margins
+
+2004-04-11 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.103) (+79 -16)
+ README (1.91.2.51) (+4 -1)
+
+ Prep for 4.2.7-pre1
+
+2004-04-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.44) (+5 -5)
+
+ Improve margins on some printers.
+
+2004-04-11 <rleigh@sourceforge.net>
+
+ Files: m4/stp_gimp.m4 (1.5.2.1) (+206 -88)
+
+ Check for both gimptool-1.2 and gimptool.
+
+2004-04-11 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.71) (+13 -4)
+
+ Check for both gimptool-1.2 and gimptool.
+ Check that gimptool is exactly version 1.2.x.
+
+2004-04-11 <rleigh@sourceforge.net>
+
+ Files: m4/stp_gimp.m4 (1.5) (+4 -4)
+
+ Check for both gimptool-1.2 and gimptool
+ Check that the version of gimptool is exactly 1.2.x.
+ Make sure that only the numeric parts of `cups-config --version` are used
+ when checking the version number.
+
+2004-04-05 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.70) (+5 -4)
+
+ Fix some problems with the gimp 1.2 stuff
+
+2004-04-05 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.50) (+19 -18)
+ debian/README.Debian (1.22.2.31) (+1 -1)
+
+ Prep for Gimp-Print 4.2.7-pre1 release
+
+2004-04-05 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.102) (+142 -82)
+
+ Prep for 4.2.7-pre1 release.
+
+2004-04-01 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.69) (+2 -4)
+
+ Remove spurious error exit
+
+2004-03-31 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.68) (+9 -1)
+
+ Add $INTLLIBS to $GIMPPRINT_LIBS, so "gimpprint-config --libs" works on
+ systems which use libintl.
+
+2004-03-26 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.15) (+6 -4)
+
+ Complete the change to 1-based page numbers.
+
+2004-03-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.26.2.6) (+89 -23)
+
+ 919224 Postscript driver fails in non-US locale with a PPD file
+
+ Fix is to reset the locale around all calls to scanf. Still awaiting
+ testing by the user who reported it.
+
+2004-03-19 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.67) (+3 -3)
+
+ Increment version
+
+2004-03-10 <rleigh@sourceforge.net>
+
+ Files: src/main/gimpprint.m4 (1.6.2.1) (+1 -0)
+
+ Correctly prototype strdup(3). This fixes a segfault on the ia64 platform.
+
+2004-03-03 <davehill@sourceforge.net>
+
+ Files: NEWS (1.68.2.101) (+2 -0)
+ src/foomatic/foomatic-printermap (1.23.2.38) (+74 -2)
+
+ Added HP LaserJet 1012, Brother HL-1440. Fixed foomatic-printermap for
+ printers added a while ago!
+
+2004-03-02 <tylerb@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.14) (+4 -3)
+
+ changed page logging to be 1-based
+
+2004-03-01 <tylerb@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.13) (+4 -3)
+
+ fixed bug 907765; CUPS filter progress meter reports incorrect page number
+
+2004-03-01 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.100) (+13 -0)
+ src/escputil/escputil.c (1.39.2.17) (+2 -1)
+ src/foomatic/foomatic-printermap (1.23.2.37) (+7 -0)
+ src/main/print-escp2-data.c (1.15.4.43) (+351 -1)
+ src/main/printers.xml (1.42.2.25) (+58 -2)
+
+ Support Epson Stylus Photo R300 and friends. Tested at all resolutions
+ in color.
+
+2004-02-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.99) (+4 -0)
+ src/foomatic/foomatic-printermap (1.23.2.36) (+2 -0)
+ src/main/printers.xml (1.42.2.24) (+23 -1)
+
+ Add Epson CX5300/5400
+
+2004-02-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.42) (+5 -5)
+
+ Fix horizontal offset for C84 and C64.
+
+2004-02-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.21) (+5 -1)
+
+ Add Super B0 and Super A0 paper sizes.
+
+2004-02-10 <rleigh@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.12) (+28 -2)
+
+ Add warning and workaround for broken psnup print jobs.
+
+2004-01-11 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.42) (+13 -13)
+ po/de.po (1.1.2.33) (+13 -13)
+ po/el.po (1.1.2.39) (+13 -13)
+ po/en_GB.po (1.80.2.47) (+14 -14)
+ po/es.po (1.1.2.31) (+13 -13)
+ po/fr.po (1.21.2.42) (+13 -13)
+ po/ja.po (1.1.2.22) (+13 -13)
+ po/nl.po (1.1.2.36) (+13 -13)
+ po/no.po (1.21.2.43) (+13 -13)
+ po/pl.po (1.5.2.41) (+13 -13)
+ po/pt.po (1.1.2.31) (+13 -13)
+ po/sk.po (1.1.2.44) (+13 -13)
+ po/sv.po (1.30.2.47) (+14 -14)
+
+ Gimp-Print 4.2.6 release
+
+2004-01-11 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.8) (+13 -13)
+
+ Gimp-Print 4.2.6 release
+
+2004-01-11 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.98) (+1 -1)
+
+ Update release date for 4.2.6.
+
+2003-12-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.97) (+1 -1)
+
+ Fix the projected release date for 4.2.6.
+
+2003-12-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.96) (+1 -2)
+
+ Correct the comment.
+
+2003-12-24 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.12) (+5 -4)
+
+ rastertoprinter also needs to be linked statically.
+
+2003-12-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.95) (+69 -0)
+ configure.in.in (1.103.2.66) (+11 -2)
+ src/cups/Makefile.am (1.45.2.11) (+6 -2)
+
+ 865253 genppd may not generate new PPD files (4.2)
+
+2003-12-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.94) (+75 -4)
+
+ Update list of PCL printers.
+
+2003-12-18 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.65) (+3 -3)
+
+ Update for 4.2.6
+
+2003-12-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.93) (+116 -126)
+ README (1.91.2.49) (+17 -17)
+ debian/README.Debian (1.22.2.30) (+7 -6)
+
+ Prep for 4.2.6
+
+2003-12-17 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.14) (+4 -18)
+
+ Generate the *PCFileName as STPnnnnn.PPD, per latest proposal accepted
+ by the group.
+
+2003-12-13 <rleigh@sourceforge.net>
+
+ Files: man/gimpprint-resolutions.7.in (1.1.6.5) (+1 -2)
+
+ Small markup fix reported by Eric Raymond.
+
+2003-12-07 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.46) (+22 -126)
+
+ Update British English translation for 4.2.6-rc2.
+
+2003-12-07 <rlk@sourceforge.net>
+
+ Files: debian/README.building (1.3.4.3) (+5 -4)
+ src/foomatic/foomatic-generator.in (1.14.4.15) (+2 -2)
+
+ Build instruction update.
+
+2003-12-07 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.28.2.4) (+7 -9)
+
+ 789622 Install Failure Solaris 8
+
+2003-12-06 <rlk@sourceforge.net>
+
+ Files: po/ja.po (1.1.2.21) (+31 -26)
+ po/nl.po (1.1.2.35) (+31 -26)
+ po/no.po (1.21.2.42) (+31 -26)
+ po/pl.po (1.5.2.40) (+31 -26)
+ po/pt.po (1.1.2.30) (+31 -26)
+ po/sk.po (1.1.2.43) (+31 -26)
+ po/sv.po (1.30.2.46) (+32 -27)
+
+ Gimp-Print 4.2.6-rc2
+
+2003-12-06 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.7) (+31 -26)
+ po/da.po (1.14.2.41) (+31 -26)
+ po/de.po (1.1.2.32) (+31 -26)
+ po/el.po (1.1.2.38) (+31 -26)
+ po/en_GB.po (1.80.2.45) (+32 -27)
+ po/es.po (1.1.2.30) (+31 -26)
+ po/fr.po (1.21.2.41) (+31 -26)
+
+ Gimp-Print 4.2.6-rc2
+
+2003-12-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.92) (+1 -1)
+
+ Prep for 4.2.6-rc2.
+
+2003-12-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.91) (+26 -2)
+ README (1.91.2.48) (+9 -9)
+ configure.in.in (1.103.2.64) (+2 -2)
+ debian/README.Debian (1.22.2.29) (+1 -1)
+
+ Prep for Gimp-Print 4.2.6-rc2
+
+2003-12-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.24) (+16 -16)
+ src/main/print-escp2.h (1.7.4.9) (+5 -5)
+ src/main/print-weave.c (1.36.4.3) (+2 -3)
+ test/unprint.c (1.22.4.2) (+9 -9)
+
+ Change "microweave" to "interleave"
+
+2003-12-02 <rlk@sourceforge.net>
+
+ Files: doc/new-printer.texi (1.5.2.1) (+32 -21)
+ doc/users_guide/gimp.sgml (1.1.2.2) (+6 -6)
+ man/gimpprint-resolutions.7.in (1.1.6.4) (+21 -21)
+ po/cs.po (1.1.2.6) (+28 -28)
+ po/da.po (1.14.2.40) (+28 -28)
+ po/de.po (1.1.2.31) (+28 -28)
+ po/el.po (1.1.2.37) (+14 -14)
+ po/en_GB.po (1.80.2.44) (+29 -29)
+ po/es.po (1.1.2.29) (+28 -28)
+ po/fr.po (1.21.2.40) (+28 -28)
+ po/ja.po (1.1.2.20) (+28 -28)
+ po/nl.po (1.1.2.34) (+14 -14)
+ po/no.po (1.21.2.41) (+14 -14)
+ po/pl.po (1.5.2.39) (+14 -14)
+ po/pt.po (1.1.2.29) (+14 -14)
+ po/sk.po (1.1.2.42) (+28 -28)
+ po/sv.po (1.30.2.45) (+15 -15)
+ src/ghost/README (1.55.2.32) (+20 -20)
+ src/main/print-escp2-data.c (1.15.4.41) (+23 -23)
+
+ Change "microweave" to "interleave"
+
+2003-12-02 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.11) (+8 -5)
+
+ Don't set media source, media type, and ink type if the supplied
+ values are empty.
+
+2003-12-02 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.63) (+2 -2)
+
+ Fix a problem with VPATH builds introduced in 4.2.6-rc1 (from Roger
+ Leigh).
+
+2003-11-28 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.42.2.23) (+3 -3)
+
+ The CX-6300 and 6400 appear to be based on the C84, not the C64.
+
+2003-11-23 <rlk@sourceforge.net>
+
+ Files: m4/stp_gimp.m4 (1.4) (+1 -1)
+
+ Standardize on "Gimp-Print" capitalization throughout the package.
+
+2003-11-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.20) (+3 -1)
+
+ Add European 10x15 cm
+
+2003-11-15 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.5) (+1 -1)
+ po/da.po (1.14.2.39) (+1 -1)
+ po/de.po (1.1.2.30) (+1 -1)
+ po/el.po (1.1.2.36) (+1 -1)
+ po/en_GB.po (1.80.2.43) (+2 -2)
+ po/es.po (1.1.2.28) (+1 -1)
+ po/fr.po (1.21.2.39) (+1 -1)
+ po/ja.po (1.1.2.19) (+1 -1)
+ po/nl.po (1.1.2.33) (+1 -1)
+ po/no.po (1.21.2.40) (+1 -1)
+ po/pl.po (1.5.2.38) (+1 -1)
+ po/pt.po (1.1.2.28) (+1 -1)
+ po/sk.po (1.1.2.41) (+1 -1)
+ po/sv.po (1.30.2.44) (+2 -2)
+
+ Gimp-Print 4.2.6-rc1 release
+
+2003-11-15 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.90) (+20 -2)
+ README (1.91.2.47) (+17 -17)
+ configure.in.in (1.103.2.62) (+2 -2)
+ debian/README.Debian (1.22.2.28) (+6 -6)
+
+ Prep for 4.2.6-rc1
+
+2003-11-14 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.40) (+5 -5)
+
+ Don't try to use extra nozzles on older printers.
+
+2003-11-02 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.42) (+2 -2)
+ po/es.po (1.1.2.27) (+1 -1)
+ po/fr.po (1.21.2.38) (+1 -1)
+ po/ja.po (1.1.2.18) (+1 -1)
+ po/nl.po (1.1.2.32) (+1 -1)
+ po/no.po (1.21.2.39) (+1 -1)
+ po/pl.po (1.5.2.37) (+1 -1)
+ po/pt.po (1.1.2.27) (+1 -1)
+ po/sk.po (1.1.2.40) (+1 -1)
+ po/sv.po (1.30.2.43) (+2 -2)
+
+ Gimp-Print 4.2.6-pre3 release
+
+2003-11-02 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.4) (+1 -1)
+ po/da.po (1.14.2.38) (+1 -1)
+ po/de.po (1.1.2.29) (+1 -1)
+ po/el.po (1.1.2.35) (+1 -1)
+
+ Gimp-Print 4.2.6-pre3 release
+
+2003-11-01 <rlk@sourceforge.net>
+
+ Files: po/el.po (1.1.2.34) (+401 -333)
+ po/en_GB.po (1.80.2.41) (+402 -334)
+ po/es.po (1.1.2.26) (+401 -333)
+ po/fr.po (1.21.2.37) (+401 -333)
+ po/ja.po (1.1.2.17) (+401 -333)
+ po/nl.po (1.1.2.31) (+401 -333)
+ po/no.po (1.21.2.38) (+401 -333)
+ po/pl.po (1.5.2.36) (+401 -333)
+ po/pt.po (1.1.2.26) (+401 -333)
+ po/sk.po (1.1.2.39) (+401 -333)
+ po/sv.po (1.30.2.42) (+402 -334)
+ src/escputil/escputil.c (1.39.2.16) (+5 -1)
+ src/foomatic/foomatic-printermap (1.23.2.35) (+4 -0)
+ src/ghost/README (1.55.2.31) (+4 -0)
+ src/main/print-escp2-data.c (1.15.4.39) (+2 -2)
+ src/main/printers.xml (1.42.2.22) (+41 -1)
+
+ Add Stylus C44/C43 and prep for 4.2.6-pre3
+
+2003-11-01 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.89) (+28 -3)
+ po/cs.po (1.1.2.3) (+401 -333)
+ po/da.po (1.14.2.37) (+401 -333)
+ po/de.po (1.1.2.28) (+401 -333)
+
+ Add Stylus C44/C43 and prep for 4.2.6-pre3
+
+2003-11-01 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.61) (+2 -2)
+
+ Bump version.
+
+2003-10-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.71.2.9) (+14 -2)
+
+ Fix 668342 per Peter Missel (he's having CVS troubles)
+
+2003-10-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.88) (+18 -0)
+ src/escputil/escputil.c (1.39.2.15) (+9 -1)
+ src/foomatic/foomatic-printermap (1.23.2.34) (+6 -0)
+ src/main/printers.xml (1.42.2.21) (+64 -1)
+
+ Add Epson Stylus CX-3100, CX-5100, CX-6300, CX-6400, CX-8300, CX-8400.
+
+2003-10-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.23) (+3 -3)
+ src/main/print-lexmark.c (1.65.2.9) (+3 -3)
+ src/main/print-pcl.c (1.47.4.12) (+3 -3)
+
+ Allocate zero-filled memory for the input and output buffers.
+
+2003-10-01 <rleigh@sourceforge.net>
+
+ Files: src/printdef/printdefy.y (1.7.4.1) (+7 -2)
+
+ Correct the yyerror() prototype and add some missing ';'s that bison warned about.
+
+2003-09-22 <tylerb@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.13) (+86 -3)
+
+ added Mac OS X-specific group ordering
+
+2003-09-22 <tylerb@sourceforge.net>
+
+ Files: NEWS (1.68.2.87) (+15 -0)
+
+ new PPD directory on Mac OS X when using the installer package
+
+2003-09-21 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.86) (+10 -0)
+ src/escputil/escputil.c (1.39.2.14) (+3 -1)
+ src/foomatic/foomatic-printermap (1.23.2.33) (+3 -0)
+ src/main/print-escp2-data.c (1.15.4.38) (+95 -4)
+ src/main/printers.xml (1.42.2.20) (+34 -1)
+
+ Preliminary support for Epson Stylus C63/C64 and PX-V500
+
+2003-09-16 <rlk@sourceforge.net>
+
+ Files: po/cs.po (1.1.2.2) (+607 -529)
+ po/da.po (1.14.2.36) (+504 -489)
+ po/de.po (1.1.2.27) (+631 -540)
+ po/el.po (1.1.2.33) (+503 -487)
+ po/en_GB.po (1.80.2.40) (+504 -492)
+ po/es.po (1.1.2.25) (+504 -489)
+ po/fr.po (1.21.2.36) (+504 -489)
+ po/ja.po (1.1.2.16) (+504 -489)
+ po/nl.po (1.1.2.30) (+504 -489)
+ po/no.po (1.21.2.37) (+504 -489)
+ po/pl.po (1.5.2.35) (+504 -489)
+ po/pt.po (1.1.2.25) (+504 -489)
+ po/sk.po (1.1.2.38) (+504 -489)
+ po/sv.po (1.30.2.41) (+613 -532)
+
+ Gimp-Print 4.2.6-pre2 release
+
+2003-09-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.85) (+23 -8)
+
+ Prep for 4.2.6-pre2
+
+2003-09-16 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.10) (+11 -11)
+
+ 806902 CUPS quality degrades on multi-page jobs (4.2.6-pre1 only)
+
+2003-09-11 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.60) (+2 -2)
+
+ Bumped the version too far in error
+
+2003-09-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.71.2.8) (+126 -286)
+
+ Apply the correct patch.
+
+2003-09-11 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.84) (+7 -5)
+ src/escputil/escputil.c (1.39.2.13) (+3 -1)
+ src/foomatic/foomatic-printermap (1.23.2.32) (+1 -0)
+ src/ghost/README (1.55.2.30) (+3 -0)
+ src/main/print-canon.c (1.71.2.7) (+444 -148)
+ src/main/print-escp2-data.c (1.15.4.37) (+20 -20)
+ src/main/printers.xml (1.42.2.19) (+8 -1)
+
+ Add Epson C83 and C84, Canon S200.
+
+ Patch for Canon S200 courtesy Karsten Festag <karsten.festag at gmx.de>
+
+2003-09-11 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.59) (+2 -2)
+
+ Bump version
+
+2003-09-11 <rlk@sourceforge.net>
+
+ Files: po/de.po (1.1.2.26) (+425 -524)
+
+ Updated translation
+
+2003-09-11 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.31) (+2 -0)
+ src/main/print-escp2-data.c (1.15.4.36) (+194 -6)
+ src/main/printers.xml (1.42.2.18) (+23 -1)
+
+ Add Epson Stylus C83 and C84
+
+2003-08-25 <rleigh@sourceforge.net>
+
+ Files: src/main/print-color.c (1.26.2.3) (+2 -1)
+
+ Add memset prototype (string.h).
+
+2003-08-24 <rleigh@sourceforge.net>
+
+ Files: man/ijsgimpprint.1.in (1.1.2.5) (+11 -9)
+
+ Fold examples to display correctly on 80 col terminals and printers.
+
+2003-08-22 <rleigh@sourceforge.net>
+
+ Files: man/cups-calibrate.8.in (1.2.8.2) (+5 -5)
+ man/escputil.1.in (1.4.4.5) (+11 -11)
+ man/gimpprint-color.7.in (1.1.6.2) (+11 -11)
+ man/gimpprint-config.1.in (1.2.8.2) (+15 -15)
+ man/gimpprint-dithers.7.in (1.1.6.2) (+11 -11)
+ man/gimpprint-imagetypes.7.in (1.2.4.2) (+11 -11)
+ man/gimpprint-inktypes.7.in (1.1.6.2) (+11 -11)
+ man/gimpprint-mediasizes.7.in (1.1.6.3) (+13 -13)
+ man/gimpprint-mediasources.7.in (1.1.6.2) (+11 -11)
+ man/gimpprint-mediatypes.7.in (1.1.6.2) (+11 -11)
+ man/gimpprint-models.7.in (1.1.6.4) (+203 -203)
+ man/gimpprint-resolutions.7.in (1.1.6.3) (+11 -11)
+ man/gimpprint.3.in (1.1.10.3) (+13 -13)
+ man/ijsgimpprint.1.in (1.1.2.4) (+38 -38)
+
+ Update all manual pages to correctly distinguish between hyphens and
+ en-dashes/minus signs. This is required to allow copy/paste in a
+ unicode locale, where hyphens are not represented as a '-'.
+
+2003-07-31 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.10.4.5) (+1 -1)
+
+ Update Roger's email address
+
+2003-07-12 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.120.2.3) (+4 -38)
+ configure.in.in (1.103.2.58) (+22 -89)
+ include/gimp-print/Makefile.am (1.2.6.1) (+2 -2)
+ po/POTFILES.in (1.10.4.3) (+0 -4)
+ src/cups/Makefile.am (1.45.2.10) (+2 -2)
+ src/main/Makefile.am (1.27.4.2) (+4 -11)
+
+ Don't link with libm on OSX.
+ Remove libm from _DEPENDENCIES, fixing dependency breakage.
+ Fix Foomatic breakage: libgimpprint should /not/ be installed in /usr/share/foomatic.
+ Remove unused GIMP source tree integration support.
+
+2003-07-08 <rleigh@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.12) (+27 -26)
+
+ Use non-blocking I/O with a 10 sec timeout, to prevent hanging when
+ reading from non-responsive printers.
+
+2003-06-17 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.11) (+9 -9)
+
+ Revert previous fix pending further investigation.
+
+2003-06-17 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.10) (+9 -9)
+
+ The "different A4 margins" does not apply to LaserJets. (Bruce Webster)
+
+2003-05-12 <davehill@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.30) (+1 -1)
+
+ Over-zealously changed HP LJII to a IIP!
+
+2003-05-11 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.12) (+14 -17)
+
+ Back out changes to DefaultOutputOrder until we figure out how to
+ determine it correctly.
+
+2003-05-10 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.9) (+13 -7)
+
+ Don't add nonexistent channels. Doesn't actually matter for 4.2, but
+ is tidier.
+
+2003-05-09 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.83) (+24 -1)
+
+ Update
+
+2003-05-09 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.82) (+24 -9)
+ src/foomatic/foomatic-printermap (1.23.2.29) (+291 -289)
+
+ Update the printer map
+
+2003-05-09 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.11) (+13 -2)
+
+ 735493 CUPS PPD files lacking *OutputOrder
+
+2003-05-07 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.28) (+15 -4)
+
+ Added new laser printer models.
+
+2003-05-04 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.57) (+2 -2)
+ po/cs.po (1.1) ( )
+ po/cs.po (1.1.2.1) (+3348 -0)
+
+ Add Czech translation
+
+2003-04-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.26.2.5) (+8 -1)
+
+ 729918 Postscript family driver fails in non-US locale
+
+2003-04-25 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.15) (+13 -0)
+ debian/control.in (1.16.2.16) (+2 -2)
+
+ Update Debian packaging for 4.2.6
+
+2003-04-20 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.19) (+3 -1)
+
+ Add Engineering C paper size
+
+2003-04-19 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.30.2.40) (+52 -120)
+
+ Updated Swedish translation
+
+2003-04-18 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.56) (+2 -2)
+
+ Bump version
+
+2003-04-18 <rlk@sourceforge.net>
+
+ Files: po/el.po (1.1.2.32) (+293 -276)
+ po/en_GB.po (1.80.2.39) (+293 -277)
+ po/es.po (1.1.2.24) (+292 -276)
+ po/fr.po (1.21.2.35) (+292 -276)
+ po/ja.po (1.1.2.15) (+292 -276)
+ po/nl.po (1.1.2.29) (+292 -276)
+ po/no.po (1.21.2.36) (+292 -276)
+ po/pl.po (1.5.2.34) (+292 -276)
+ po/pt.po (1.1.2.24) (+292 -276)
+ po/sk.po (1.1.2.37) (+292 -276)
+ po/sv.po (1.30.2.39) (+293 -277)
+
+ Gimp-Print 4.2.6-pre1 release
+
+2003-04-18 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.35) (+292 -276)
+ po/de.po (1.1.2.25) (+292 -276)
+
+ Gimp-Print 4.2.6-pre1 release
+
+2003-04-18 <tillkamppeter@sourceforge.net>
+
+ Files: NEWS (1.68.2.81) (+1 -1)
+
+ Fixed typo.
+
+2003-04-18 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.15) (+2 -1)
+
+ Distribute old printer ID map.
+
+2003-04-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.80) (+30 -2)
+ README (1.91.2.46) (+10 -10)
+ configure.in.in (1.103.2.55) (+3 -3)
+ debian/README.Debian (1.22.2.27) (+1 -1)
+
+ Prep for Gimp-Print 4.2.6-pre1
+
+2003-04-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.79) (+10 -0)
+ src/foomatic/foomatic-printermap (1.23.2.27) (+5 -0)
+ src/main/print-escp2-data.c (1.15.4.35) (+16 -1)
+ src/main/printers.xml (1.42.2.17) (+43 -1)
+
+ Preliminary support for Japanese Epson CL-760, PM-750C, PM-870C,
+ PM-930C, and PM-3700C.
+
+2003-04-11 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.8) (+3 -3)
+
+ Tweaked the DeskJet 340 margins slightly according to the User Manual
+
+2003-04-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.34) (+46 -5)
+
+ Update PM-970C data based on testing.
+
+2003-04-01 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14.4.14) (+0 -1)
+
+ Removed a forgotten surgery tool out of the patient ...
+
+2003-04-01 <tillkamppeter@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.54) (+42 -1)
+ src/foomatic/Makefile.am (1.16.2.14) (+8 -2)
+ src/foomatic/foomatic-generator.in (1.14.4.13) (+30 -3)
+ src/foomatic/foomatic-printermap (1.23.2.26) (+288 -288)
+ src/foomatic/oldprinterids (1.1) ( )
+ src/foomatic/oldprinterids (1.1.2.1) (+640 -0)
+
+ Added support for the new clear-text printer IDs of Foomatic 3.0. Legacy support for the old numerical IDs is included.
+
+2003-03-31 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.78) (+10 -5)
+ src/cups/genppd.c (1.36.2.10) (+3 -2)
+ src/foomatic/foomatic-printermap (1.23.2.25) (+2 -0)
+ src/ghost/README (1.55.2.29) (+2 -0)
+ src/main/print-escp2-data.c (1.15.4.33) (+3 -3)
+ src/main/print-escp2-data.c (1.15.4.32) (+16 -1)
+ src/main/printers.xml (1.42.2.16) (+17 -1)
+
+ Add support for Epson PM-970C (to 2880x1440) and Stylus Photo 900
+
+2003-02-19 <davehill@sourceforge.net>
+
+ Files: src/main/printers.xml (1.42.2.15) (+9 -1)
+
+ The LaserJet IIP series can do TIFF compression so added
+ them separately. I don't know if the LaserJet II (and all
+ the others that use the pcl-2 driver) can do this, hence
+ separating out the IIP.
+
+2003-02-19 <davehill@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.24) (+3 -3)
+ src/main/print-pcl.c (1.47.4.7) (+35 -1)
+
+ The LaserJet IIP series can do TIFF compression so added
+ them separately. I don't know if the LaserJet II (and all
+ the others that use the pcl-2 driver) can do this, hence
+ separating out the IIP.
+
+2003-02-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.77) (+1 -0)
+
+ List the c50 in the activation sequence list
+
+2003-02-05 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.9) (+78 -12)
+ src/cups/rastertoprinter.c (1.19.4.9) (+119 -110)
+
+ Updated genppd so that the generated PPD files are more conformant:
+
+ - The Product attributes are now (AFPL Ghostscript), (GNU
+ Ghostscript), and (ESP Ghostscript)
+ - The PCFileName attribute is now a unique 8.3 conformant
+ filename (the PPD filenames are unchanged) generated from
+ the driver name.
+ - The ModelName attribute is now the driver long name.
+ - The LanguageLevel attribute now defaults to "3" since all
+ current Ghostscript releases are fully Level 3 capable
+ (the previous default of Level 2 was for Ghostscript
+ 5.50.)
+
+ Updated rastertoprinter with the following changes:
+
+ - Now lookup both the long and short driver names from the
+ PPD ModelName attribute.
+ - The STP variables are allocated before the first page,
+ with all "global" options set once.
+ - The per-page variables are set at the beginning of each
+ page. Previously it was impossible to change the page size
+ or other settings in the middle of a document.
+
+2003-02-01 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.23) (+1 -1)
+
+ Adapted ID of Xerox DocuPrint N4512PS to the new one on linuxprinting.org.
+
+2003-01-28 <davehill@sourceforge.net>
+
+ Files: NEWS (1.68.2.76) (+3 -0)
+ src/foomatic/foomatic-printermap (1.23.2.22) (+3 -0)
+ src/main/printers.xml (1.42.2.14) (+25 -1)
+
+ Added Apple Color StyleWriter 4100 (Deskjet 660C), Color StyleWriter 4500
+ (DJ 690C) and Color StyleWriter 6500 (takes same carts as DJ850).
+ Detective work by: Richard V. Ford <rvf@packeteer.com>
+
+2003-01-28 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.21) (+1 -0)
+ src/ghost/README (1.55.2.28) (+1 -0)
+ src/main/print-escp2-data.c (1.15.4.31) (+16 -1)
+ src/main/printers.xml (1.42.2.13) (+11 -1)
+
+ Add Epson Stylus C50.
+
+2003-01-28 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.75) (+2 -0)
+ src/escputil/escputil.c (1.39.2.11) (+2 -1)
+
+ Add Epson Stylus C50.
+
+2003-01-25 <rlk@sourceforge.net>
+
+ Files: po/ja.po (1.1.2.14) (+140 -141)
+ po/nl.po (1.1.2.28) (+140 -141)
+ po/no.po (1.21.2.35) (+140 -141)
+ po/pl.po (1.5.2.33) (+140 -141)
+ po/pt.po (1.1.2.23) (+140 -141)
+ po/sk.po (1.1.2.36) (+140 -141)
+ po/sv.po (1.30.2.38) (+141 -142)
+
+ Gimp-Print 4.2.5
+
+2003-01-25 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.34) (+140 -141)
+ po/de.po (1.1.2.24) (+140 -141)
+ po/el.po (1.1.2.31) (+138 -140)
+ po/en_GB.po (1.80.2.38) (+143 -141)
+ po/es.po (1.1.2.23) (+140 -141)
+ po/fr.po (1.21.2.34) (+140 -141)
+
+ Gimp-Print 4.2.5
+
+2003-01-25 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.74) (+7 -3)
+ README (1.91.2.45) (+9 -9)
+ configure.in.in (1.103.2.53) (+7 -3)
+ src/cups/epson.c (1.3.2.5) (+166 -121)
+
+ Restore fix for 672850 following discussion.
+
+ Update printer list.
+
+2003-01-24 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.20) (+33 -0)
+
+ Added missing HP inkjets.
+
+2003-01-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.73) (+9 -8)
+
+ Another option for fixing problems with the Epson printer utility.
+
+2003-01-24 <tylerb@sourceforge.net>
+
+ Files: NEWS (1.68.2.72) (+14 -5)
+
+ add note about Epson Printer Utility causing print job failures on Mac OS X
+
+2003-01-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.71) (+38 -24)
+ src/ghost/README (1.55.2.27) (+6 -2)
+
+ Updates
+
+2003-01-24 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.52) (+4 -4)
+
+ Do need to bump interface
+
+2003-01-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.70) (+1 -10)
+ README (1.91.2.44) (+1 -1)
+ configure.in.in (1.103.2.51) (+7 -10)
+ src/cups/epson.c (1.3.2.4) (+121 -166)
+ src/escputil/escputil.c (1.39.2.10) (+26 -26)
+ src/gimp/print.c (1.22.4.4) (+3 -53)
+ src/main/print-util.c (1.53.2.18) (+6 -45)
+
+ Back out problematic and risky code:
+
+ 1) In escputil, code to time out after lack of printer response (this
+ appears to have caused spurious timeouts).
+
+ 2) In the GIMP plugin, code to report errors and messages via g_message
+ rather than stderr (on some systems, causes the GIMP to lock up
+ if a print is interrupted, requiring an "fg" command in the terminal).
+
+ 3) In the Epson CUPS back end, code to read back data without blocking
+ (code requires further testing).
+
+2003-01-24 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.120.2.2) (+2 -2)
+ debian/rules (1.29.2.11) (+3 -3)
+
+ Compute libgimpprint major version correctly
+ Copy updated config.sub and config.guess to the correct location
+
+2003-01-23 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.69) (+13 -12)
+
+ Updates from Tyler
+
+2003-01-23 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.33) (+589 -523)
+ po/de.po (1.1.2.23) (+1438 -1113)
+ po/el.po (1.1.2.30) (+148 -146)
+ po/en_GB.po (1.80.2.37) (+10 -10)
+ po/es.po (1.1.2.22) (+149 -148)
+ po/fr.po (1.21.2.33) (+149 -148)
+ po/ja.po (1.1.2.13) (+149 -148)
+ po/nl.po (1.1.2.27) (+149 -148)
+ po/no.po (1.21.2.34) (+149 -148)
+ po/pl.po (1.5.2.32) (+149 -148)
+ po/pt.po (1.1.2.22) (+592 -492)
+ po/sk.po (1.1.2.35) (+149 -148)
+ po/sv.po (1.30.2.37) (+490 -477)
+
+ Gimp-Print 4.2.5 release
+
+2003-01-23 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.68) (+128 -51)
+ README (1.91.2.43) (+1 -1)
+ configure.in.in (1.103.2.50) (+2 -2)
+ debian/README.Debian (1.22.2.26) (+1 -1)
+
+ Prep for Gimp-Print 4.2.5
+
+2003-01-23 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.32) (+1121 -875)
+ po/de.po (1.1.2.22) (+1118 -1408)
+ po/pt.po (1.1.2.21) (+443 -542)
+ po/sv.po (1.30.2.36) (+378 -396)
+
+ Update translations
+
+2003-01-23 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.8) (+8 -2)
+
+ Avoid problems with CHAR_BIT on Solaris with gcc, per numerous
+ complaints.
+
+2003-01-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.17) (+46 -7)
+
+ Print all messages from verify as a single message block (nicer with
+ the new message printing from the GIMP plugin).
+
+2003-01-22 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.22.4.3) (+58 -6)
+ src/main/print-escp2.c (1.147.2.22) (+4 -2)
+
+ Print messages using g_message rather than printing to stderr (which
+ typically loses messages).
+
+2003-01-22 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.9) (+3 -3)
+
+ Avoid a buffer overflow.
+
+2003-01-17 <davehill@sourceforge.net>
+
+ Files: test/pcl-unprint.c (1.5.6.2) (+62 -19)
+
+ Added parsing of more parameters. Updated "PJL" parsing to handle (but not
+ act on) HPGL commands.
+
+2003-01-15 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.19) (+68 -5)
+
+ Added missing HP DeskJet and OfficeJet printers (DJ6xx, DJ8xx, and DJ9xx series).
+
+2003-01-09 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.67) (+22 -22)
+
+ Sort printer names correctly
+
+2003-01-07 <rleigh@sourceforge.net>
+
+ Files: README (1.91.2.42) (+2 -0)
+
+ Update Debian package descriptions
+
+2003-01-07 <rleigh@sourceforge.net>
+
+ Files: po/ja.po (1.1.2.12) (+1 -1)
+
+ Fix CUPS Language description
+
+2003-01-07 <rleigh@sourceforge.net>
+
+ Files: po/de.po (1.1.2.21) (+1 -1)
+
+ Fix CUPS Language description
+
+2003-01-05 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.13) (+7 -3)
+ src/foomatic/foomatic-generator.in (1.14.4.12) (+69 -2)
+ src/foomatic/printer_margins.c (1.1) ( )
+ src/foomatic/printer_margins.c (1.1.2.1) (+93 -0)
+
+ Support for unprintable margins with Foomatic 2.9.x.
+
+2003-01-04 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.36) (+1 -2)
+
+ ColorLife is an Epson trademark, so is not Anglicised
+
+2003-01-03 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.35) (+194 -236)
+
+ Update translation for 4.2.5
+
+2003-01-03 <rleigh@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.8) (+26 -26)
+
+ Printer readback uses non-blocking I/O to prevent intermittent hanging reads.
+
+2003-01-01 <rleigh@sourceforge.net>
+
+ Files: src/main/gimpprint-config.in (1.5.2.1) (+1 -1)
+
+ Remove INTLLIBS, which won't work portably in shell scripts.
+
+2003-01-01 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.30) (+12 -1)
+ src/main/print-escp2.c (1.147.2.21) (+16 -4)
+ src/main/print-escp2.h (1.7.4.8) (+2 -1)
+
+ Set margins correctly for all roll feed modes
+
+2002-12-23 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.49) (+3 -2)
+
+ Check for fcntl.h, not sys/fcntl.h
+
+2002-12-22 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.48) (+6 -4)
+ src/cups/epson.c (1.3.2.3) (+166 -116)
+
+ Use non-blocking I/O with the epson backend. This prevents reads blocking
+ on the backchannel.
+ Correct ink level calculation.
+
+2002-12-22 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.30.2.35) (+2 -2)
+
+ Gimp-Print 4.2.5-pre2
+
+2002-12-22 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.31) (+1 -1)
+ po/de.po (1.1.2.20) (+1 -1)
+ po/el.po (1.1.2.29) (+1 -1)
+ po/en_GB.po (1.80.2.34) (+2 -2)
+ po/es.po (1.1.2.21) (+1 -1)
+ po/fr.po (1.21.2.32) (+1 -1)
+ po/ja.po (1.1.2.11) (+1 -1)
+ po/nl.po (1.1.2.26) (+1 -1)
+ po/no.po (1.21.2.33) (+1 -1)
+ po/pl.po (1.5.2.31) (+1 -1)
+ po/pt.po (1.1.2.20) (+1 -1)
+ po/sk.po (1.1.2.34) (+1 -1)
+
+ Gimp-Print 4.2.5-pre2
+
+2002-12-22 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.66) (+1 -1)
+ README (1.91.2.41) (+1 -1)
+ debian/README.Debian (1.22.2.25) (+2 -2)
+
+ Prep for 4.2.5-pre2
+
+2002-12-22 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.8) (+5 -5)
+
+ Standardize capitalization
+
+2002-12-18 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14.4.11) (+6 -3)
+
+ Use always "VeryFast" dithering for lasers in the "PrintoutMode" option.
+
+2002-12-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.65) (+12 -9)
+
+ Fix the new foomatic stuff
+
+2002-12-18 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.47) (+5 -5)
+
+ Bump version
+
+2002-12-18 <tillkamppeter@sourceforge.net>
+
+ Files: NEWS (1.68.2.64) (+9 -1)
+ README (1.91.2.40) (+18 -3)
+ configure.in.in (1.103.2.46) (+24 -1)
+ src/foomatic/Makefile.am (1.16.2.12) (+8 -2)
+ src/foomatic/foomatic-generator.in (1.14.4.10) (+505 -5)
+ src/foomatic/foomatic-templates-gs/Brightness.xml (1.1.2.3) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Color.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Contrast.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Cyan.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Density.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Dither.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Gamma.xml (1.1.2.3) (+1 -1)
+ src/foomatic/foomatic-templates-gs/ImageType.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/InkType.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/InputSlot.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Magenta.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/MediaType.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Model.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/PageSize.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/PrintoutMode.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/PrintoutMode.xml (1.1.2.1) (+19 -0)
+ src/foomatic/foomatic-templates-gs/Quality.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Resolution.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Saturation.xml (1.1.2.3) (+1 -1)
+ src/foomatic/foomatic-templates-gs/Yellow.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Brightness.xml (1.1.2.3) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Color.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Contrast.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Cyan.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Density.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Dither.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Gamma.xml (1.1.2.3) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/ImageType.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/InkType.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/InputSlot.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Magenta.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/MediaType.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Model.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/PageSize.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/PrintoutMode.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/PrintoutMode.xml (1.1.2.1) (+19 -0)
+ src/foomatic/foomatic-templates-ijs/Quality.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Resolution.xml (1.1.2.4) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Saturation.xml (1.1.2.3) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/Yellow.xml (1.1.2.2) (+1 -1)
+
+ Added "PrintoutMode" and option grouping to the Foomatic generator (for Foomatic 2.9.x).
+
+2002-12-10 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.14) (+4 -1)
+
+ Add dependency fixes
+
+2002-12-10 <rleigh@sourceforge.net>
+
+ Files: debian/rules (1.29.2.10) (+2 -2)
+
+ Mend documentation symlink creation
+
+2002-12-08 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.30) (+389 -359)
+ po/de.po (1.1.2.19) (+390 -359)
+ po/el.po (1.1.2.28) (+390 -359)
+ po/en_GB.po (1.80.2.33) (+391 -360)
+ po/es.po (1.1.2.20) (+390 -359)
+ po/fr.po (1.21.2.31) (+390 -359)
+ po/ja.po (1.1.2.10) (+390 -359)
+ po/nl.po (1.1.2.25) (+390 -359)
+ po/no.po (1.21.2.32) (+390 -359)
+ po/pl.po (1.5.2.30) (+389 -359)
+ po/pt.po (1.1.2.19) (+390 -359)
+ po/sk.po (1.1.2.33) (+390 -359)
+ po/sv.po (1.30.2.34) (+391 -360)
+
+ 4.2.5-pre1 release
+
+2002-12-08 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.63) (+69 -23)
+ README (1.91.2.39) (+1 -1)
+ debian/README.Debian (1.22.2.24) (+1 -1)
+
+ Prep for 4.2.5-pre1
+
+2002-12-08 <rlk@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.8.2.1) (+16 -2)
+ src/cups/rastertoprinter.c (1.19.4.7) (+113 -106)
+ src/ghost/README (1.55.2.26) (+31 -3)
+ src/ghost/ijsgimpprint.c (1.2.2.15) (+8 -3)
+ src/main/gimp-print-internal.h (1.43.4.4) (+6 -3)
+ src/main/print-canon.c (1.71.2.6) (+4 -2)
+ src/main/print-escp2-data.c (1.15.4.29) (+43 -4)
+ src/main/print-escp2.c (1.147.2.20) (+192 -106)
+ src/main/print-escp2.h (1.7.4.7) (+5 -1)
+ src/main/print-lexmark.c (1.65.2.8) (+4 -3)
+ src/main/print-pcl.c (1.47.4.6) (+4 -2)
+ src/main/print-ps.c (1.26.2.4) (+4 -2)
+ src/main/print-util.c (1.53.2.16) (+38 -4)
+
+ 596538 Epson Stylus Photo 925 etc. paper cutter is not functional
+
+2002-12-08 <rleigh@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.28.2.3) (+9 -7)
+
+ Don't force installation of HTML stylesheet_images/* files, since
+ different versions of db2html may not create them.
+
+2002-12-08 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.13) (+12 -0)
+ debian/control.in (1.16.2.15) (+6 -5)
+ debian/cupsys-driver-gimpprint.install (1.1) ( )
+ debian/cupsys-driver-gimpprint.install (1.1.2.1) (+7 -0)
+ debian/escputil.install (1.1) ( )
+ debian/escputil.install (1.1.2.1) (+2 -0)
+ debian/foomatic-db-gimp-print.install (1.1) ( )
+ debian/foomatic-db-gimp-print.install (1.1.2.1) (+2 -0)
+ debian/gimp1.2-print.install (1.1) ( )
+ debian/gimp1.2-print.install (1.1.2.1) (+3 -0)
+ debian/gimpprint-doc.doc-base (1.1.4.3) (+1 -1)
+ debian/gimpprint-doc.install (1.1) ( )
+ debian/gimpprint-doc.install (1.1.2.1) (+11 -0)
+ debian/gimpprint-locales.install (1.1) ( )
+ debian/gimpprint-locales.install (1.1.2.1) (+1 -0)
+ debian/ijsgimpprint.install (1.1) ( )
+ debian/ijsgimpprint.install (1.1.2.1) (+2 -0)
+ debian/libgimpprint-dev.install (1.1) ( )
+ debian/libgimpprint-dev.install (1.1.2.1) (+8 -0)
+ debian/libgimpprint-doc.install.in (1.1) ( )
+ debian/libgimpprint-doc.install.in (1.1.2.1) (+2 -0)
+ debian/libgimpprint.install (1.1) ( )
+ debian/libgimpprint.install (1.1.2.1) (+2 -0)
+ debian/rules (1.29.2.9) (+37 -38)
+
+ Use debian/build and debian/install instead of debian/gimp-print-build
+ and debian/gimp-print-install, respectively.
+ Use dh_install rather than dh_movefiles. This makes debian/rules
+ slightly cleaner, and debian/install is unchanged after install.
+ Create symlinks for HTML manuals, since different versions of texi2html
+ and db2html create different names.
+ Update version for 4.2.5
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.28) (+3 -75)
+
+ Remove unused resolutions
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.27) (+93 -6)
+
+ More tuning of 950/960 and 2100/2200.
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.7) (+3 -3)
+
+ Stylus Photo 950/960 has four patterns.
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: scripts/autogen.sh (1.16.2.1) (+3 -3)
+
+ 639356 Build system: The version of libtool is too old
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.6) (+3 -3)
+
+ The 2200 has four alignment passes.
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.26) (+2 -2)
+
+ 2200 knows about gray command
+
+2002-12-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.25) (+269 -51)
+
+ Tune the Stylus Photo 2200
+
+2002-12-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.24) (+2 -2)
+
+ Silly typo
+
+2002-12-06 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.5) (+3 -2)
+ src/main/print-escp2-data.c (1.15.4.23) (+334 -100)
+ src/main/print-escp2.c (1.147.2.19) (+11 -9)
+ src/main/print-escp2.h (1.7.4.6) (+4 -1)
+
+ 649253 QUALITY - Epson 950/960 problems in all resolutions
+ 645895 Epson stc640 does not print at >720dpi
+ 599029 Epson: Maximum speed printing not supported on 950, 960
+
+2002-11-30 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.45) (+17 -1)
+ src/gimp/Makefile.am (1.18.4.5) (+2 -28)
+
+ Fix DESTDIR install for the Print plugin
+ This uses gimptool in configure, as on the mainline
+
+2002-11-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.22) (+75 -41)
+ src/main/print-escp2.c (1.147.2.18) (+29 -47)
+ src/main/print-escp2.h (1.7.4.5) (+9 -7)
+
+ Generalize input slot
+
+2002-11-28 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.44) (+3 -3)
+
+ Bump version
+
+2002-11-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.21) (+28 -2)
+ src/main/print-escp2.c (1.147.2.17) (+9 -2)
+
+ More Epson 5000 fixes
+
+2002-11-27 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.20) (+53 -11)
+
+ 625780 Epson Stylus Pro 5000 does not print
+
+2002-11-26 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.29) (+63 -43)
+ po/de.po (1.1.2.18) (+68 -43)
+ po/el.po (1.1.2.27) (+68 -43)
+ po/en_GB.po (1.80.2.32) (+69 -44)
+ po/es.po (1.1.2.19) (+68 -43)
+ po/fr.po (1.21.2.30) (+68 -43)
+ po/ja.po (1.1.2.9) (+68 -43)
+ po/nl.po (1.1.2.24) (+68 -43)
+ po/no.po (1.21.2.31) (+68 -43)
+ po/pl.po (1.5.2.29) (+63 -43)
+ po/pt.po (1.1.2.18) (+68 -43)
+ po/sk.po (1.1.2.32) (+68 -43)
+ po/sv.po (1.30.2.33) (+69 -44)
+
+ Gimp-Print 4.2.4 release
+
+2002-11-26 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.62) (+5 -0)
+ man/gimpprint-mediasizes.7.in (1.1.6.2) (+6 -1)
+ src/ghost/README (1.55.2.25) (+10 -5)
+ src/main/print-util.c (1.53.2.15) (+11 -1)
+
+ Add transverse versions of the CAD paper sizes
+
+2002-11-25 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.61) (+50 -15)
+
+ Likely final 4.2.4 release notes.
+
+2002-11-25 <rlk@sourceforge.net>
+
+ Files: man/gimpprint-models.7.in (1.1.6.3) (+14 -4)
+
+ Update the model list
+
+2002-11-25 <rlk@sourceforge.net>
+
+ Files: man/gimpprint-resolutions.7.in (1.1.6.2) (+6 -4)
+
+ Updates
+
+2002-11-25 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.24) (+41 -39)
+
+ Update Canon printer info
+
+2002-11-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.60) (+229 -122)
+ README (1.91.2.38) (+18 -18)
+ configure.in.in (1.103.2.43) (+2 -2)
+ debian/README.Debian (1.22.2.23) (+6 -7)
+
+ Prep for 4.2.4
+
+2002-11-24 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.14) (+2 -2)
+
+ Fix 22x30 watercolor paper size.
+
+2002-11-24 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.18) (+6 -0)
+
+ Added generic printers and HP LaserJet 4200/4300 to the foomatic-printermap
+
+2002-11-23 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.42.2.12) (+5 -2)
+
+ Fix the CX-5200 entry.
+
+2002-11-23 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.59) (+14 -8)
+ src/foomatic/foomatic-printermap (1.23.2.17) (+2 -0)
+ src/ghost/README (1.55.2.23) (+2 -0)
+ src/main/print-escp2-data.c (1.15.4.19) (+15 -0)
+ src/main/printers.xml (1.42.2.11) (+18 -2)
+ test/run-weavetest (1.10.2.2) (+1 -1)
+
+ Support Epson Stylus CX-3200 and CX-5200 multifunction printers.
+
+ Fix a minor bug in the C82 in color mode (using 60 vs. 59 nozzles).
+
+2002-11-20 <rleigh@sourceforge.net>
+
+ Files: man/cups-calibrate.8.in (1.2.8.1) (+26 -32)
+ man/escputil.1.in (1.4.4.4) (+49 -53)
+ man/gimpprint.3.in (1.1.10.2) (+10 -10)
+ man/ijsgimpprint.1.in (1.1.2.3) (+37 -1052)
+
+ Sync manpages with the mainline
+
+2002-11-20 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.28) (+3 -3)
+ po/de.po (1.1.2.17) (+3 -3)
+ po/el.po (1.1.2.26) (+3 -3)
+ po/en_GB.po (1.80.2.31) (+4 -4)
+ po/es.po (1.1.2.18) (+3 -3)
+ po/fr.po (1.21.2.29) (+3 -3)
+ po/ja.po (1.1.2.8) (+3 -3)
+ po/nl.po (1.1.2.23) (+3 -3)
+ po/no.po (1.21.2.30) (+3 -3)
+ po/pl.po (1.5.2.28) (+3 -3)
+ po/pt.po (1.1.2.17) (+3 -3)
+ po/sk.po (1.1.2.31) (+3 -3)
+ po/sv.po (1.30.2.32) (+4 -4)
+
+ Gimp-Print 4.2.4-rc1 release
+
+2002-11-20 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.58) (+32 -14)
+ README (1.91.2.37) (+9 -9)
+ configure.in.in (1.103.2.42) (+2 -2)
+ debian/README.Debian (1.22.2.22) (+7 -6)
+
+ Prep for 4.2.4-rc1
+
+2002-11-20 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.57) (+18 -0)
+ src/ghost/README (1.55.2.22) (+10 -1)
+
+ List the new DesignJets in the release notes
+
+2002-11-19 <davehill@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.16) (+9 -0)
+ src/main/print-pcl.c (1.47.4.5) (+233 -49)
+ src/main/printers.xml (1.42.2.10) (+74 -2)
+
+ Ported from mainline:
+ Different margins for A4 papersize vs all others.
+ Added more Designjet printers.
+
+2002-11-16 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.4) (+7 -1)
+ src/main/printers.xml (1.42.2.9) (+9 -9)
+
+ Increased density for Laserjets to 1.0 and ensure that density does
+ not exceed 1.0 in the driver.
+
+2002-11-16 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.27) (+1 -1)
+ po/de.po (1.1.2.16) (+1 -1)
+ po/el.po (1.1.2.25) (+1 -1)
+ po/en_GB.po (1.80.2.30) (+2 -2)
+ po/es.po (1.1.2.17) (+1 -1)
+ po/fr.po (1.21.2.28) (+1 -1)
+ po/ja.po (1.1.2.7) (+1 -1)
+ po/nl.po (1.1.2.22) (+1 -1)
+ po/no.po (1.21.2.29) (+1 -1)
+ po/pl.po (1.5.2.27) (+1 -1)
+ po/pt.po (1.1.2.16) (+1 -1)
+ po/sk.po (1.1.2.30) (+1 -1)
+ po/sv.po (1.30.2.31) (+2 -2)
+
+ Gimp-Print 4.2.4-pre2
+
+2002-11-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.56) (+39 -23)
+ README (1.91.2.36) (+1 -1)
+ configure.in.in (1.103.2.41) (+2 -2)
+ debian/README.Debian (1.22.2.21) (+1 -1)
+
+ Gimp-Print 4.2.4-pre2
+
+2002-11-15 <rlk@sourceforge.net>
+
+ Files: man/gimpprint-models.7.in (1.1.6.2) (+2 -1)
+
+ Support Epson MJ-930C
+
+2002-11-14 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-templates-gs/Brightness.xml (1.1.2.2) (+2 -2)
+ src/foomatic/foomatic-templates-gs/Gamma.xml (1.1.2.2) (+2 -2)
+ src/foomatic/foomatic-templates-gs/Saturation.xml (1.1.2.2) (+2 -2)
+ src/foomatic/foomatic-templates-ijs/Brightness.xml (1.1.2.2) (+2 -2)
+ src/foomatic/foomatic-templates-ijs/Gamma.xml (1.1.2.2) (+2 -2)
+ src/foomatic/foomatic-templates-ijs/Saturation.xml (1.1.2.2) (+2 -2)
+
+ Renamed Foomatic options from "Stp..." to "stp...", so that they have the same names as the appropriate options of the native CUPS drivers.
+
+2002-11-11 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.40) (+5 -1)
+ man/Makefile.am (1.6.6.2) (+19 -5)
+ man/gimpprint-color.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-dithers.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-imagetypes.7.in (1.2.4.1) (+1 -1)
+ man/gimpprint-inktypes.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-mediasizes.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-mediasources.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-mediatypes.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-models.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint-resolutions.7.in (1.1.6.1) (+1 -1)
+ man/gimpprint.3.in (1.1.10.1) (+25 -23)
+
+ Add libgimpprint manual pages to the 4.2 branch
+
+2002-11-09 <rleigh@sourceforge.net>
+
+ Files: man/gimpprint-imagetypes.7.in (1.2) (+2 -2)
+
+ Fix a typo
+
+2002-11-09 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.12) (+7 -0)
+ debian/control.in (1.16.2.14) (+2 -2)
+
+ Update version number
+ Update for Standards-Version 3.5.7
+
+2002-11-09 <rleigh@sourceforge.net>
+
+ Files: man/escputil.1.in (1.4.4.3) (+24 -34)
+
+ Document Linux kernel config options for bidirectional parport communication.
+
+2002-11-07 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.7) (+3 -3)
+
+ 631993 Macintosh OS X: Custom page size problems w/some apps
+
+2002-11-07 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.26) (+101 -75)
+ po/de.po (1.1.2.15) (+101 -75)
+ po/el.po (1.1.2.24) (+101 -75)
+ po/en_GB.po (1.80.2.29) (+102 -76)
+ po/es.po (1.1.2.16) (+101 -75)
+ po/fr.po (1.21.2.27) (+101 -75)
+ po/ja.po (1.1.2.6) (+101 -75)
+ po/nl.po (1.1.2.21) (+101 -75)
+ po/no.po (1.21.2.28) (+101 -75)
+ po/pl.po (1.5.2.26) (+101 -75)
+ po/pt.po (1.1.2.15) (+101 -75)
+ po/sk.po (1.1.2.29) (+101 -75)
+ po/sv.po (1.30.2.30) (+102 -76)
+
+ Gimp-Print 4.2.4-pre1 release
+
+2002-11-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.55) (+53 -19)
+ README (1.91.2.35) (+1 -1)
+ configure.in.in (1.103.2.39) (+4 -4)
+ debian/README.Debian (1.22.2.20) (+1 -1)
+ src/foomatic/foomatic-printermap (1.23.2.15) (+1 -0)
+ src/ghost/README (1.55.2.21) (+1 -0)
+ src/main/printers.xml (1.42.2.8) (+9 -1)
+
+ Add support for the Epson MJ-930C
+
+ Prep for 4.2.4-pre1
+
+2002-11-06 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.6) (+3 -3)
+
+ 633910 Epson 1520 ppd bug gimp-print 4.2.3
+
+2002-11-03 <rlk@sourceforge.net>
+
+ Files: scripts/mkchlog (1.2.6.2) (+1 -1)
+
+ Preserve file order in log messages
+
+2002-11-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.71.2.5) (+12 -12)
+
+ 631498 Canon driver does not support A3 page size for large format
+
+2002-10-31 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.16) (+2 -2)
+ src/main/print-escp2.h (1.7.4.4) (+3 -1)
+
+ 630365 Epson Stylus Photo 950: Enlarged image with some 1440/2800
+
+2002-10-31 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.18) (+211 -124)
+
+ 630365 Epson Stylus Photo 950: Enlarged image with some 1440/2800
+
+2002-10-28 <rleigh@sourceforge.net>
+
+ Files: man/gimpprint-color.7.in (1.1) ( )
+ man/gimpprint-dithers.7.in (1.1) ( )
+ man/gimpprint-imagetypes.7.in (1.1) ( )
+ man/gimpprint-inktypes.7.in (1.1) ( )
+ man/gimpprint-mediasizes.7.in (1.1) ( )
+ man/gimpprint-mediasources.7.in (1.1) ( )
+ man/gimpprint-mediatypes.7.in (1.1) ( )
+ man/gimpprint-models.7.in (1.1) ( )
+ man/gimpprint-resolutions.7.in (1.1) ( )
+
+ Split ijsgimpprint(1) into separate manpages, to document libgimpprint
+
+2002-10-27 <rwisi@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.44.4.5) (+2 -2)
+
+ Correction related to Bugs item #628698.
+ Corrected problem in stp_dither_set_light_ink().
+
+2002-10-27 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.65.2.7) (+8 -8)
+
+ Corrected error according Bugs item #628698 (exchanged colors).
+ Corrected also the photo mode.
+
+2002-10-24 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.10.4.4) (+1 -1)
+
+ Update
+
+2002-10-19 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-templates-gs/gimp-print.xml (1.1.2.2) (+1 -1)
+ src/foomatic/foomatic-templates-ijs/gimp-print.xml (1.1.2.2) (+1 -1)
+
+ Security fix: s/-dSAFER/-dPARANOIDSAFER/ for the GhostScript command lines.
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.54) (+1 -1)
+
+ Suggestion from Charles Briscoe-Smith.
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.25) (+1 -1)
+ po/de.po (1.1.2.14) (+1 -1)
+ po/el.po (1.1.2.23) (+1 -1)
+ po/en_GB.po (1.80.2.28) (+2 -2)
+ po/es.po (1.1.2.15) (+1 -1)
+ po/fr.po (1.21.2.26) (+1 -1)
+ po/ja.po (1.1.2.5) (+1 -1)
+ po/nl.po (1.1.2.20) (+1 -1)
+ po/no.po (1.21.2.27) (+1 -1)
+ po/pl.po (1.5.2.25) (+1 -1)
+ po/pt.po (1.1.2.14) (+1 -1)
+ po/sk.po (1.1.2.28) (+1 -1)
+ po/sv.po (1.30.2.29) (+2 -2)
+
+ Gimp-Print 4.2.3 rerelease
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.53) (+5 -0)
+
+ Final update for 4.2.3 rerelease.
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.52) (+1 -1)
+ configure.in.in (1.103.2.38) (+4 -4)
+ src/main/print-escp2-data.c (1.15.4.17) (+4 -4)
+
+ Re-release 4.2.3
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.37) (+4 -4)
+
+ Bump version
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.24) (+1 -1)
+ po/de.po (1.1.2.13) (+1 -1)
+ po/el.po (1.1.2.22) (+1 -1)
+ po/en_GB.po (1.80.2.27) (+2 -2)
+ po/es.po (1.1.2.14) (+1 -1)
+ po/fr.po (1.21.2.25) (+1 -1)
+ po/ja.po (1.1.2.4) (+1 -1)
+ po/nl.po (1.1.2.19) (+1 -1)
+ po/no.po (1.21.2.26) (+1 -1)
+ po/pl.po (1.5.2.24) (+1 -1)
+ po/pt.po (1.1.2.13) (+155 -138)
+ po/sk.po (1.1.2.27) (+1 -1)
+ po/sv.po (1.30.2.28) (+2 -2)
+
+ 4.2.3 release
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.51) (+4 -11)
+ README (1.91.2.34) (+11 -10)
+
+ Final 4.2.3 release notes
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.50) (+17 -1)
+
+ Final prep on the release notes.
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.49) (+7 -7)
+
+ Make page sizes a bit more interesting.
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.48) (+1 -1)
+
+ Updates
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.47) (+28 -5)
+
+ Updates for the release notes.
+
+2002-10-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.16) (+2 -2)
+
+ Fix dot sizes for 7600/9600
+
+2002-10-18 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.33) (+9 -9)
+ configure.in.in (1.103.2.36) (+2 -2)
+ debian/README.Debian (1.22.2.19) (+1 -1)
+
+ Prep for Gimp-Print 4.2.3
+
+2002-10-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.46) (+43 -42)
+
+ Draft release notes for 4.2.3.
+
+2002-10-18 <rlk@sourceforge.net>
+
+ Files: po/pt.po (1.1.2.12) (+187 -244)
+
+ Update
+
+2002-10-18 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14.4.9) (+5 -2)
+
+ Updated Foomatic data generator to support custom page sizes correctly.
+
+2002-10-14 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.45) (+0 -1)
+ po/da.po (1.14.2.23) (+12 -12)
+ po/de.po (1.1.2.12) (+12 -12)
+ po/el.po (1.1.2.21) (+12 -12)
+ po/en_GB.po (1.80.2.26) (+13 -13)
+ po/es.po (1.1.2.13) (+12 -12)
+ po/fr.po (1.21.2.24) (+12 -12)
+ po/ja.po (1.1.2.3) (+12 -12)
+ po/nl.po (1.1.2.18) (+12 -12)
+ po/no.po (1.21.2.25) (+12 -12)
+ po/pl.po (1.5.2.23) (+12 -12)
+ po/pt.po (1.1.2.11) (+12 -12)
+ po/sk.po (1.1.2.26) (+12 -12)
+ po/sv.po (1.30.2.27) (+13 -13)
+
+ Gimp-Print 4.2.3-pre3
+
+2002-10-14 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.44) (+13 -1)
+ README (1.91.2.32) (+1 -1)
+ configure.in.in (1.103.2.35) (+2 -2)
+ debian/README.Debian (1.22.2.18) (+1 -1)
+
+ Advance version
+
+2002-10-13 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.5) (+28 -50)
+
+ Mirror development branch changes by Robert in 4.2 branch.
+
+2002-10-13 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.4) (+62 -5)
+
+ Preliminary fix for custom page size support - we still need to add an
+ API for getting the margins and limits of custom sizes.
+
+2002-10-13 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.22) (+121 -116)
+ po/de.po (1.1.2.11) (+122 -116)
+ po/el.po (1.1.2.20) (+122 -116)
+ po/en_GB.po (1.80.2.25) (+123 -117)
+ po/es.po (1.1.2.12) (+122 -116)
+ po/fr.po (1.21.2.23) (+122 -116)
+ po/ja.po (1.1.2.2) (+126 -118)
+ po/nl.po (1.1.2.17) (+122 -116)
+ po/no.po (1.21.2.24) (+122 -116)
+ po/pl.po (1.5.2.22) (+122 -116)
+ po/pt.po (1.1.2.10) (+122 -116)
+ po/sk.po (1.1.2.25) (+122 -116)
+ po/sv.po (1.30.2.26) (+123 -117)
+
+ 4.2.3-pre2
+
+2002-10-13 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.43) (+24 -3)
+ README (1.91.2.31) (+9 -9)
+ debian/README.Debian (1.22.2.17) (+1 -1)
+ src/ghost/README (1.55.2.20) (+1 -0)
+
+ Prep for 4.2.3-pre2
+
+2002-10-11 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.34) (+2 -2)
+
+ Bump version
+
+2002-10-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.13) (+2 -0)
+
+ Add 22x30 watercolor paper.
+
+2002-10-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.15) (+2 -1)
+
+ Use 8-byte margin command on Stylus Pro printers
+
+2002-10-10 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.15) (+2 -2)
+
+ 597964 Epson 660 wrong margins
+
+ Per Daniele Venzano, the margins in 4.2.2 were correct after all.
+
+2002-10-09 <rleigh@sourceforge.net>
+
+ Files: debian/README.Debian (1.22.2.16) (+9 -7)
+ debian/README.building (1.3.4.2) (+4 -7)
+ debian/control.in (1.16.2.13) (+1 -1)
+ debian/rules (1.29.2.8) (+6 -6)
+
+ Miscellaneous small cleanups and updates
+
+2002-10-09 <rleigh@sourceforge.net>
+
+ Files: man/ijsgimpprint.1.in (1.1.2.2) (+31 -62)
+
+ Remove incorrect .TS H/.TH usage
+
+2002-10-09 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.11) (+10 -0)
+ debian/control.in (1.16.2.12) (+33 -12)
+ debian/gimpprint-doc.doc-base (1.1.4.2) (+1 -1)
+ debian/rules (1.29.2.7) (+2 -2)
+
+ Fix gimpprint-doc doc-base problems
+ Add ijsgimpprint package
+
+2002-10-09 <rleigh@sourceforge.net>
+
+ Files: man/ijsgimpprint.1.in (1.1.2.1) (+1363 -0)
+
+ Add ijsgimpprint manual page
+
+2002-10-09 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.33) (+3 -2)
+ man/Makefile.am (1.6.6.1) (+3 -3)
+ man/ijsgimpprint.1.in (1.1) ( )
+
+ Add ijsgimpprint manual page
+
+2002-10-08 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.14) (+33 -2)
+
+ 620016 IJS driver does not print properly in monochrome
+
+2002-10-07 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.13) (+2 -2)
+
+ 619992 IJS driver prints spurious first line
+
+2002-10-07 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.42) (+105 -104)
+ configure.in.in (1.103.2.32) (+2 -2)
+ po/ja.po (1.1) ( )
+ po/ja.po (1.1.2.1) (+3326 -0)
+ po/sv.po (1.30.2.25) (+19 -36)
+
+ Sort printer names
+
+2002-10-07 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.19) (+0 -1)
+
+ Remove Epson MJ-520C
+
+2002-10-07 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.42.2.7) (+1 -9)
+
+ Remove Epson MJ-520C
+
+2002-10-07 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.14) (+0 -1)
+
+ Remove Epson MJ-520C
+
+2002-10-02 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.41) (+1 -1)
+ po/da.po (1.14.2.21) (+138 -133)
+ po/de.po (1.1.2.10) (+139 -133)
+ po/el.po (1.1.2.19) (+139 -133)
+ po/en_GB.po (1.80.2.24) (+140 -134)
+ po/es.po (1.1.2.11) (+139 -133)
+ po/fr.po (1.21.2.22) (+364 -278)
+ po/nl.po (1.1.2.16) (+139 -133)
+ po/no.po (1.21.2.23) (+139 -133)
+ po/pl.po (1.5.2.21) (+139 -133)
+ po/pt.po (1.1.2.9) (+139 -133)
+ po/sk.po (1.1.2.24) (+139 -133)
+ po/sv.po (1.30.2.24) (+140 -134)
+
+ Gimp-Print 4.2.3-pre1 release
+
+2002-10-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.14) (+1 -3)
+
+ Remove a few things that aren't on the mainline.
+
+2002-10-02 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.40) (+14 -11)
+ README (1.91.2.30) (+6 -6)
+ debian/README.Debian (1.22.2.15) (+1 -1)
+
+ More prep for 4.2.3-pre1
+
+2002-10-02 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.39) (+33 -4)
+ doc/FAQ.html (1.8.2.1) (+1 -1)
+
+ Prep for 4.2.3-pre1
+
+2002-10-02 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.43.4.3) (+4 -2)
+ src/main/print-escp2.c (1.147.2.13) (+88 -11)
+ src/main/print-util.c (1.53.2.12) (+6 -6)
+
+ Debugging: enable embedding of printing information in Epson output.
+
+2002-10-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.14) (+13 -1)
+
+ Add Epson ColorLife paper
+
+2002-09-28 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.38) (+129 -4)
+ README (1.91.2.29) (+38 -132)
+
+ Reorganize the top level doc for clarity.
+
+2002-09-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.12) (+10 -3)
+
+ 615759 C40UX: 360x240 bad horizontal position
+ 615561 Epson C40UX cannot print in B&W and Gray
+
+2002-09-26 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.28) (+526 -496)
+
+ Back out some file corruption.
+
+2002-09-25 <rlk@sourceforge.net>
+
+ Files: po/fr.po (1.21.2.21) (+849 -695)
+
+ Updates from gnome-i18n
+
+2002-09-25 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.37) (+76 -18)
+ README (1.91.2.27) (+541 -574)
+ src/foomatic/foomatic-printermap (1.23.2.13) (+38 -0)
+ src/ghost/README (1.55.2.18) (+37 -0)
+ src/main/print-escp2-data.c (1.15.4.13) (+102 -11)
+ src/main/printers.xml (1.42.2.6) (+312 -1)
+
+ 613384 Epson 7600 no printing
+
+ Add Stylus Photo 825 and various Japanese printer models.
+
+ Add Stylus Photo EX3 and Japanese version of Stylus Photo 950
+ (which uses different inks from the non-Japanese versions).
+
+2002-09-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.12) (+2 -2)
+
+ Finally fix the 660 margins for real (597964)
+
+2002-09-20 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.31) (+4 -4)
+
+ Bump version
+
+2002-09-20 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.11) (+3 -3)
+
+ 604854 Epson 1520 and 3000 print too dark at 1440x720 DPI
+ 597964 Epson 660 wrong margins
+
+2002-09-20 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.10) (+8 -5)
+
+ 604854 Epson 1520 and 3000 print too dark at 1440x720 DPI
+
+2002-09-20 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.10.4.3) (+3 -0)
+
+ Update
+
+2002-09-20 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.6) (+5 -2)
+
+ Patch 611804 Include limits.h for Solaris systems
+
+2002-09-13 <rleigh@sourceforge.net>
+
+ Files: m4/stp_gimp.m4 (1.3) (+29 -1)
+
+ The GIMP print plugin uses DESTDIR and GIMPTOOL correctly
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.20) (+1 -1)
+ po/de.po (1.1.2.9) (+220 -225)
+ po/el.po (1.1.2.18) (+1 -1)
+ po/en_GB.po (1.80.2.23) (+2 -2)
+ po/es.po (1.1.2.10) (+1 -1)
+ po/fr.po (1.21.2.20) (+1 -1)
+ po/nl.po (1.1.2.15) (+1 -1)
+ po/no.po (1.21.2.22) (+1 -1)
+ po/pl.po (1.5.2.20) (+1 -1)
+ po/pt.po (1.1.2.8) (+1 -1)
+ po/sk.po (1.1.2.23) (+1 -1)
+ po/sv.po (1.30.2.23) (+2 -2)
+
+ 4.2.2 release
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.36) (+6 -6)
+
+ Update the OS X wording (prep for 4.2.2)
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.26) (+8 -7)
+
+ Update the OS X wording (prep for 4.2.2)
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.25) (+10 -0)
+
+ Macintosh OS X instructions
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.35) (+11 -1)
+
+ Macintosh OS X instructions
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.34) (+5 -3)
+ README (1.91.2.24) (+9 -7)
+ src/ghost/README (1.55.2.17) (+10 -9)
+
+ Prep for 4.2.2
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.33) (+30 -1)
+
+ Get ready for 4.2.2.
+
+2002-09-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.32) (+374 -1)
+ README (1.91.2.23) (+9 -8)
+ configure.in.in (1.103.2.30) (+2 -2)
+ debian/README.Debian (1.22.2.14) (+9 -8)
+ po/de.po (1.1.2.8) (+451 -496)
+
+ Prep for 4.2.2 release
+
+2002-09-08 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.9) (+2 -2)
+
+ Stylus Color 660 is a series 1999 printer.
+
+2002-09-07 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.5) (+8 -3)
+
+ Fill any empty space at the bottom of the page with white correctly in
+ CMYK mode.
+
+2002-09-05 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.31) (+153 -201)
+
+ Draft release notes for 4.2.1.
+
+2002-09-04 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.19) (+1 -1)
+ po/de.po (1.1.2.7) (+1 -1)
+ po/el.po (1.1.2.17) (+1 -1)
+ po/en_GB.po (1.80.2.22) (+2 -2)
+ po/es.po (1.1.2.9) (+1 -1)
+ po/fr.po (1.21.2.19) (+1 -1)
+ po/nl.po (1.1.2.14) (+1 -1)
+ po/no.po (1.21.2.21) (+1 -1)
+ po/pl.po (1.5.2.19) (+1 -1)
+ po/pt.po (1.1.2.7) (+1 -1)
+ po/sk.po (1.1.2.22) (+1 -1)
+ po/sv.po (1.30.2.22) (+2 -2)
+
+ Gimp-Print 4.2.2-rc3
+
+2002-09-04 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.30) (+7 -3)
+
+ A few more changes
+
+2002-09-04 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.29) (+1 -1)
+ NEWS (1.68.2.28) (+34 -11)
+ README (1.91.2.22) (+31 -15)
+ configure.in.in (1.103.2.29) (+2 -2)
+ debian/README.Debian (1.22.2.13) (+1 -1)
+
+ Typo
+
+2002-09-04 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.8) (+2 -2)
+
+ 597694 Epson 660 wrong margins
+
+2002-09-04 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.4) (+61 -8)
+
+ 600249 gimp-print output too narrow in CUPS
+
+2002-09-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.11) (+2 -1)
+
+ Make sure init.nozzle_separation is set correctly.
+
+2002-09-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.10) (+2 -2)
+
+ 601637 Low resolutions broken
+ 601644 High resolutions broken
+
+2002-08-24 <easysw@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.26.2.3) (+56 -25)
+
+ Fix PS output to conform to the DSC...
+
+2002-08-23 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.18) (+340 -262)
+ po/de.po (1.1.2.6) (+342 -262)
+ po/el.po (1.1.2.16) (+342 -262)
+ po/en_GB.po (1.80.2.21) (+343 -263)
+ po/es.po (1.1.2.8) (+342 -262)
+ po/fr.po (1.21.2.18) (+342 -262)
+ po/nl.po (1.1.2.13) (+342 -262)
+ po/no.po (1.21.2.20) (+342 -262)
+ po/pl.po (1.5.2.18) (+342 -262)
+ po/pt.po (1.1.2.6) (+342 -262)
+ po/sk.po (1.1.2.21) (+342 -262)
+ po/sv.po (1.30.2.21) (+343 -263)
+
+ Gimp-Print 4.2.2-rc2
+
+2002-08-22 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.27) (+34 -2)
+ README (1.91.2.21) (+1 -1)
+ configure.in.in (1.103.2.28) (+2 -2)
+ debian/README.Debian (1.22.2.12) (+1 -1)
+ src/escputil/escputil.c (1.39.2.4) (+17 -1)
+ src/foomatic/foomatic-printermap (1.23.2.12) (+9 -0)
+ src/gimp/print.c (1.22.4.2) (+28 -3)
+ src/main/print-escp2-data.c (1.15.4.7) (+268 -84)
+ src/main/print-escp2.c (1.147.2.9) (+23 -10)
+ src/main/print-escp2.h (1.7.4.3) (+6 -1)
+ src/main/printers.xml (1.42.2.5) (+85 -4)
+
+ 1) Support for Epson Stylus C41, C42, C61, C62, C82; Stylus Photo
+ 830, Stylus Photo 915, Stylus Photo 925.
+
+ 2) Updated escputil to support all new Epson printers.
+
+ 3) More tuning for Epson Stylus Photo 950, 960, 2100, 2200; Stylus
+ Pro 7600, 9600.
+
+ 4) Performance improvement for Epson Stylus Photo 2100 and 2200 at
+ 360 DPI in monochrome, grayscale, and four color modes.
+
+ 5) A problem with the Gimp Print plugin losing track of printer
+ settings on some systems (where lpstat or lpc return two or more
+ descriptive lines for each printer) has been fixed.
+
+ 6) Prep for 4.2.2-rc2.
+
+2002-08-22 <easysw@sourceforge.net>
+
+ Files: po/el.po (1.1.2.15) (+1 -1)
+ po/es.po (1.1.2.7) (+1 -1)
+ po/nl.po (1.1.2.12) (+1 -1)
+ po/sk.po (1.1.2.20) (+1 -1)
+
+ Fix language names for message catalogs (same fixes as for the 4.3 branch)
+
+2002-08-22 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.11) (+3 -3)
+
+ Added "-f" option to calls of "foomatic-kitload" so that old Foomatic data is overwritten wheninstalling the new one.
+
+2002-08-21 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.16) (+116 -62)
+
+ Updates
+
+2002-08-21 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.9) (+2 -1)
+
+ Fix directory positioning in install.
+
+2002-08-14 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.17) (+435 -77)
+ po/de.po (1.1.2.5) (+492 -84)
+ po/el.po (1.1.2.14) (+470 -116)
+ po/en_GB.po (1.80.2.20) (+462 -250)
+ po/es.po (1.1.2.6) (+462 -250)
+ po/fr.po (1.21.2.17) (+494 -153)
+ po/nl.po (1.1.2.11) (+478 -186)
+ po/no.po (1.21.2.19) (+453 -80)
+ po/pl.po (1.5.2.17) (+464 -100)
+ po/pt.po (1.1.2.5) (+461 -249)
+ po/sk.po (1.1.2.19) (+461 -246)
+ po/sv.po (1.30.2.20) (+18 -18)
+
+ Gimp-Print 4.2.2-rc1
+
+2002-08-14 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.26) (+25 -2)
+ README (1.91.2.20) (+8 -7)
+ configure.in.in (1.103.2.27) (+2 -2)
+ debian/README.Debian (1.22.2.11) (+5 -4)
+
+ Prep for Gimp-Print 4.2.2-rc1
+
+2002-08-13 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.65.2.6) (+72 -55)
+
+ Corrected bug 594637.
+
+ Segment faults are happend.
+ Changed some if statements to prevent this.
+
+2002-08-08 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.6) (+5 -5)
+
+ New printers do support grayscale mode; also play it safe with the
+ grayscale nozzles on the 2200.
+
+2002-08-08 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.30.2.19) (+431 -238)
+
+ Updates
+
+2002-08-08 <rlk@sourceforge.net>
+
+ Files: po/POTFILES.in (1.10.4.2) (+1 -0)
+
+ Translate print-escp2-data.c.
+
+2002-08-08 <rlk@sourceforge.net>
+
+ Files: src/gimp/Makefile.am (1.18.4.4) (+3 -6)
+
+ 586960 Gimp Print plugin installs incorrectly on some systems
+
+2002-08-08 <tillkamppeter@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.12) (+46 -7)
+
+ Re-applied patch for switching the locale to "C" during communication with IJS client.
+
+2002-08-07 <tillkamppeter@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.11) (+3 -27)
+
+ Removed last change, the problem is most probably a bug in IJS.
+
+2002-08-06 <tillkamppeter@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.10) (+27 -3)
+
+ Made the IJS interface of GIMP-Print also working with non-english locales.
+
+2002-08-01 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.10) (+12 -8)
+ debian/libgimpprint-doc.doc-base.in (1.1.2.1) (+0 -0)
+ debian/rules (1.29.2.6) (+12 -5)
+
+ Make libgimpprint-doc a virtual package
+ Generate libgimpprint-doc.doc-base to cope with package naming changes
+
+2002-08-01 <rleigh@sourceforge.net>
+
+ Files: debian/libgimpprint-doc.doc-base.in (1.1) ( )
+
+ Make libgimpprint-doc a virtual package
+ Generate libgimpprint-doc.doc-base to cope with package naming changes
+
+2002-07-31 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.26) (+20 -8)
+
+ Check for doc tools even if we're not in maintainer mode; just don't
+ complain if we don't find them.
+
+2002-07-31 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.5) (+22 -6)
+
+ Updates from Thorsten Schnier
+
+2002-07-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.25) (+2 -14)
+
+ More minor change.
+
+2002-07-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.24) (+4 -0)
+
+ More minor change
+
+2002-07-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.23) (+1 -1)
+
+ Minor update
+
+2002-07-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.22) (+11 -1)
+ README (1.91.2.19) (+1 -1)
+ configure.in.in (1.103.2.25) (+2 -2)
+ debian/README.Debian (1.22.2.10) (+1 -1)
+
+ Prep for Gimp-Print 4.2.2-pre4
+
+2002-07-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.4) (+26 -26)
+
+ 510185 Incomplete print to Windows-hosted printers
+
+2002-07-26 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15.4.3) (+18 -7)
+
+ Fixes for Stylus Photo 2100/2200
+
+2002-07-23 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.16) (+22 -27)
+ po/de.po (1.1.2.4) (+100 -91)
+ po/el.po (1.1.2.13) (+26 -28)
+ po/en_GB.po (1.80.2.19) (+26 -28)
+ po/es.po (1.1.2.5) (+25 -27)
+ po/fr.po (1.21.2.16) (+22 -27)
+ po/nl.po (1.1.2.10) (+25 -27)
+ po/no.po (1.21.2.18) (+61 -48)
+ po/pl.po (1.5.2.16) (+22 -27)
+ po/pt.po (1.1.2.4) (+25 -27)
+ po/sk.po (1.1.2.18) (+25 -27)
+ po/sv.po (1.30.2.18) (+79 -78)
+
+ 4.2.2-pre3 release
+
+2002-07-23 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.21) (+20 -16)
+ README (1.91.2.18) (+1 -1)
+ configure.in.in (1.103.2.24) (+30 -28)
+ debian/README.Debian (1.22.2.9) (+1 -1)
+
+ Prep for 4.2.2-pre3
+
+2002-07-23 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.23) (+2 -2)
+
+ Bump version
+
+2002-07-23 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.10.4.2) (+6 -0)
+ NEWS (1.68.2.20) (+76 -16)
+ man/escputil.1.in (1.4.4.2) (+1 -2)
+ man/gimpprint-config.1.in (1.2.8.1) (+1 -2)
+ src/cups/Makefile.am (1.45.2.8) (+8 -6)
+ src/foomatic/foomatic-generator.in (1.14.4.8) (+7 -3)
+ src/foomatic/foomatic-printermap (1.23.2.11) (+7 -0)
+ src/ghost/README (1.55.2.15) (+18 -13)
+ src/ghost/ijsgimpprint.c (1.2.2.9) (+22 -15)
+ src/main/gimp-print-internal.h (1.43.4.2) (+7 -22)
+ src/main/print-dither.c (1.44.4.4) (+85 -78)
+ src/main/print-escp2-data.c (1.15.4.2) (+2356 -1657)
+ src/main/print-escp2.c (1.147.2.8) (+468 -512)
+ src/main/print-escp2.h (1.7.4.2) (+110 -106)
+ src/main/print-lexmark.c (1.65.2.5) (+4 -4)
+ src/main/print-ps.c (1.26.2.2) (+14 -6)
+ src/main/print-util.c (1.53.2.11) (+6 -1)
+ src/main/print-weave.c (1.36.4.2) (+106 -96)
+ src/main/printers.xml (1.42.2.4) (+59 -1)
+ src/testpattern/testpattern.c (1.6.4.1) (+64 -41)
+ src/testpattern/testpattern.h (1.2.6.1) (+38 -18)
+ src/testpattern/testpatternl.l (1.2.6.1) (+2 -1)
+ src/testpattern/testpatterny.y (1.3.2.1) (+44 -21)
+ test/escp2-weavetest.c (1.19.4.2) (+2 -2)
+ test/parse-escp2 (1.5.2.1) (+6 -1)
+ test/unprint.c (1.22.4.1) (+16 -5)
+
+ Merge changes from mainline
+
+2002-07-22 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.18) (+6 -8)
+
+ Update en_GB translation (fuzzy and untranslated strings)
+
+2002-07-22 <rlk@sourceforge.net>
+
+ Files: po/no.po (1.21.2.17) (+55 -93)
+
+ Update
+
+2002-07-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.26.2.2) (+3 -2)
+
+ Zero out the zero mask prior to setting it.
+
+2002-07-20 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.9) (+0 -1)
+
+ Remove incorrect line in changelog
+
+2002-07-07 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.22.4.1) (+4 -6)
+
+ Remove use of asprintf
+
+2002-06-30 <rlk@sourceforge.net>
+
+ Files: po/de.po (1.1.2.3) (+409 -408)
+ po/sv.po (1.30.2.17) (+98 -95)
+
+ Update German and Swedish translations
+
+2002-06-29 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.17) (+24 -9)
+
+ Updates
+
+2002-06-18 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.22) (+2 -2)
+
+ Improve the message if gimp-config fails
+
+2002-06-18 <rlk@sourceforge.net>
+
+ Files: m4/stp_gimp.m4 (1.2) (+1 -1)
+
+ Improve message if gimp-config fails.
+
+2002-06-08 <rleigh@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.10) (+2 -2)
+
+ Clean foomatic-stamp
+
+2002-06-06 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.12) (+18 -1)
+ README (1.46.2.12) (+1 -1)
+ configure.in.in (1.18.2.14) (+42 -19)
+ debian/README.Debian (1.2.2.12) (+1 -1)
+ po/da.po (1.4.2.5) (+18 -13)
+ po/fr.po (1.11.2.5) (+18 -13)
+ po/no.po (1.11.2.5) (+19 -14)
+ po/pl.po (1.4.2.4) (+18 -13)
+ po/sv.po (1.20.2.5) (+20 -15)
+ src/foomatic/Makefile.am (1.4.2.11) (+1 -1)
+
+ Merge with 4.2.2-pre2.
+
+2002-06-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.19) (+1 -1)
+ po/da.po (1.14.2.15) (+18 -13)
+ po/de.po (1.1.2.2) (+297 -262)
+ po/el.po (1.1.2.12) (+18 -13)
+ po/en_GB.po (1.80.2.17) (+20 -15)
+ po/es.po (1.1.2.4) (+19 -14)
+ po/fr.po (1.21.2.15) (+18 -13)
+ po/nl.po (1.1.2.9) (+19 -14)
+ po/no.po (1.21.2.16) (+19 -14)
+ po/pl.po (1.5.2.15) (+18 -13)
+ po/pt.po (1.1.2.3) (+19 -14)
+ po/sk.po (1.1.2.17) (+569 -658)
+ po/sv.po (1.30.2.16) (+20 -15)
+
+ Gimp-Print 4.2.2-pre2.
+
+2002-06-05 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.18) (+18 -1)
+ README (1.91.2.16) (+1 -1)
+ configure.in.in (1.103.2.21) (+2 -2)
+ debian/README.Debian (1.22.2.8) (+1 -1)
+ src/cups/Makefile.am (1.45.2.7) (+3 -1)
+ src/foomatic/Makefile.am (1.16.2.9) (+5 -0)
+ src/ghost/Makefile.am (1.17.2.6) (+1 -0)
+ src/gimp/Makefile.am (1.18.4.3) (+1 -0)
+ src/main/print-canon.c (1.71.2.4) (+4 -6)
+ src/main/print-util.c (1.53.2.10) (+32 -100)
+ src/testpattern/Makefile.am (1.5.4.3) (+1 -0)
+ test/Makefile.am (1.30.2.4) (+2 -0)
+
+ Put _DEPENDENCIES back in Makefile.am; automake doesn't figure them out.
+
+ Fix vasprintf (565092)
+
+ Minor cleanup nit in print-canon.c
+
+ Prepare for 4.2.2-pre2.
+
+2002-06-01 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.8) (+16 -11)
+
+ Handle very large images correctly (don't overflow 32-bit int).
+
+2002-06-01 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.20) (+2 -2)
+ po/de.po (1.1) ( )
+ po/de.po (1.1.2.1) (+2911 -0)
+
+ Add German translation
+
+2002-06-01 <rlk@sourceforge.net>
+
+ Files: po/sk.po (1.1.2.16) (+697 -629)
+
+ Updated Slovak translation.
+
+2002-05-25 <sharkey@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.4.2.10) (+1 -1)
+
+ Sync with 4.2.2-pre1, with -d this time...
+
+2002-05-25 <sharkey@sourceforge.net>
+
+ Files: AUTHORS (1.8.4.3) (+9 -3)
+ NEWS (1.8.2.11) (+130 -7)
+ README (1.46.2.11) (+195 -101)
+ configure.in.in (1.18.2.13) (+51 -12)
+ debian/README.Debian (1.2.2.11) (+7 -7)
+ doc/users_guide/users-guide.sgml (1.2.2.3) (+15 -1869)
+ man/escputil.1.in (1.2.4.3) (+24 -10)
+ po/da.po (1.4.2.4) (+515 -677)
+ po/fr.po (1.11.2.4) (+623 -695)
+ po/no.po (1.11.2.4) (+756 -883)
+ po/pl.po (1.4.2.3) (+543 -679)
+ po/sv.po (1.20.2.4) (+791 -715)
+ src/cups/Makefile.am (1.17.2.12) (+11 -8)
+ src/cups/genppd.c (1.7.2.9) (+32 -49)
+ src/foomatic/Makefile.am (1.4.2.9) (+32 -10)
+ src/foomatic/foomatic-printermap (1.2.2.8) (+48 -0)
+ src/main/print-escp2.c (1.24.2.11) (+481 -3291)
+ src/main/print-pcl.c (1.8.4.8) (+108 -77)
+
+ Sync debian-branch with 4.2.2-pre1.
+
+2002-05-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.71.2.3) (+2 -2)
+
+ media_sources should be const
+
+2002-05-18 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.120.2.1) (+3 -2)
+ debian/changelog (1.35.2.8) (+15 -0)
+ debian/compat (1.1.2.1) (+0 -0)
+ debian/control.in (1.16.2.11) (+142 -69)
+ debian/rules (1.29.2.5) (+45 -24)
+
+ Update packaging to debhelper v4
+ Versioned library development and documentation packages
+ Update package descriptions
+
+2002-05-18 <rleigh@sourceforge.net>
+
+ Files: debian/compat (1.1) ( )
+
+ branches: 1.1.2; 1.1.4;
+ Update packaging to debhelper v4
+ Versioned library development and documentation packages
+ Sync package descriptions with 4.2 branch
+
+2002-05-18 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.6) (+2 -2)
+
+ Fix LINGUAS variable which was not surrounded by $()
+
+2002-05-18 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.5) (+5 -4)
+
+ Fix make install when localised PPDs are disabled
+
+2002-05-18 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.19) (+40 -17)
+
+ Autodetect GIMP, CUPS, IJS and foomatic
+
+2002-05-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.9) (+4 -4)
+
+ Bring over fix for vasprintf from the mainline.
+
+2002-05-15 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.4) (+1 -3)
+ src/foomatic/Makefile.am (1.16.2.8) (+1 -6)
+ src/ghost/Makefile.am (1.17.2.5) (+1 -2)
+ src/gimp/Makefile.am (1.18.4.2) (+1 -2)
+ src/testpattern/Makefile.am (1.5.4.2) (+1 -2)
+ test/Makefile.am (1.30.2.3) (+1 -3)
+
+ Remove _DEPENDENCIES, which are determined by automake
+
+2002-05-11 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.27.2.3) (+4 -4)
+ src/cups/Makefile.am (1.45.2.3) (+9 -17)
+
+ Allow the use of an install-sh with a relative path
+
+2002-05-11 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.14) (+306 -597)
+ po/el.po (1.1.2.11) (+389 -627)
+ po/en_GB.po (1.80.2.16) (+519 -613)
+ po/es.po (1.1.2.3) (+629 -686)
+ po/fr.po (1.21.2.14) (+413 -615)
+ po/nl.po (1.1.2.8) (+440 -612)
+ po/no.po (1.21.2.15) (+335 -606)
+ po/pl.po (1.5.2.14) (+334 -599)
+ po/pt.po (1.1.2.2) (+546 -639)
+ po/sk.po (1.1.2.15) (+515 -612)
+ po/sv.po (1.30.2.15) (+523 -617)
+
+ Gimp-Print 4.2.2-pre1 release
+
+2002-05-11 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.17) (+17 -6)
+ README (1.91.2.15) (+1 -1)
+ configure.in.in (1.103.2.18) (+2 -2)
+ debian/README.Debian (1.22.2.7) (+1 -1)
+ po/es.po (1.1.2.2) (+284 -17)
+ po/pt.po (1.1) ( )
+ po/pt.po (1.1.2.1) (+3237 -0)
+ src/ghost/README (1.55.2.14) (+12 -0)
+
+ Add Portuguese translation.
+
+ Prepare for 4.2.2-pre1.
+
+2002-05-11 <tillkamppeter@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.13) (+3 -2)
+
+ Some corrections of the previous submission.
+
+2002-05-11 <tillkamppeter@sourceforge.net>
+
+ Files: README (1.91.2.14) (+8 -5)
+ src/ghost/README (1.55.2.12) (+10 -9)
+
+ Updates on README files for IJS driver.
+
+2002-05-09 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.17) (+2 -2)
+
+ Minor typo
+
+2002-05-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.8) (+2 -2)
+
+ Do it right.
+
+2002-05-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.7) (+15 -11)
+
+ Check for some null pointers.
+
+2002-05-07 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.10) (+6 -0)
+
+ Added HP OfficeJet, OfficeJet LX, 300, 330, 350, Pro 1150C
+
+2002-05-03 <rlk@sourceforge.net>
+
+ Files: src/ghost/.cvsignore (1.6.4.3) (+3 -0)
+ src/ghost/Makefile.am (1.17.2.4) (+28 -5)
+ src/ghost/contrib.mak.addon.old (1.1.8.1) (+7 -3)
+ src/ghost/devs.mak.addon-5.10 (1.5.6.1) (+7 -3)
+ src/main/.cvsignore (1.4.6.1) (+5 -0)
+ src/main/Makefile.am (1.27.4.1) (+4 -1)
+ src/main/gimp-print-internal.h (1.43.4.1) (+47 -66)
+ src/main/print-canon.c (1.71.2.2) (+56 -62)
+ src/main/print-color.c (1.26.2.1) (+5 -5)
+ src/main/print-dither-matrices.c (1.4.4.1) (+238 -3)
+ src/main/print-dither.c (1.44.4.3) (+1960 -1040)
+ src/main/print-dither.h (1.1.4.1) (+1 -1)
+ src/main/print-escp2-data.c (1.15.4.1) (+1 -1)
+ src/main/print-escp2.c (1.147.2.7) (+460 -3527)
+ src/main/print-escp2.h (1.7.4.1) (+1 -1)
+ src/main/print-lexmark.c (1.65.2.4) (+86 -60)
+ src/main/print-pcl.c (1.47.4.3) (+55 -44)
+ src/main/print-ps.c (1.26.2.1) (+7 -6)
+ src/main/print-util.c (1.53.2.6) (+25 -3)
+ src/main/print-weave.c (1.36.4.1) (+77 -36)
+ src/main/printers.xml (1.42.2.3) (+1 -2)
+ test/Makefile.am (1.30.2.2) (+7 -9)
+ test/escp2-weavetest.c (1.19.4.1) (+3 -2)
+ test/pcl-unprint.c (1.5.6.1) (+24 -14)
+ test/run-testdither (1.3.4.1) (+1 -1)
+ test/testdither.c (1.11.4.1) (+221 -98)
+
+ Merge libgimpprint from the mainline to bring in Even Tone dither
+ and better channel architecture.
+
+2002-05-03 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.13) (+10 -6)
+
+ Some OS X instructions
+
+2002-05-02 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.7) (+6 -0)
+ debian/control.in (1.16.2.10) (+1 -1)
+
+ Move escputil to section utils
+
+2002-05-02 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.16) (+13 -4)
+
+ Fix --enable-debug for GNU CC
+
+2002-04-28 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.12) (+17 -16)
+
+ Bump version
+
+2002-04-28 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.15) (+2 -2)
+ po/es.po (1.1.2.1) (+0 -0)
+
+ Spanish translation
+
+2002-04-28 <rlk@sourceforge.net>
+
+ Files: po/es.po (1.1) ( )
+
+ branches: 1.1.2; 1.1.4;
+ Spanish translation
+
+2002-04-28 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.14) (+4 -4)
+
+ Bump version
+
+2002-04-27 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.13) (+107 -107)
+ po/el.po (1.1.2.10) (+107 -107)
+ po/en_GB.po (1.80.2.15) (+108 -108)
+ po/fr.po (1.21.2.13) (+107 -107)
+ po/nl.po (1.1.2.7) (+107 -107)
+ po/no.po (1.21.2.14) (+107 -107)
+ po/pl.po (1.5.2.13) (+107 -107)
+ po/sk.po (1.1.2.14) (+107 -107)
+ po/sv.po (1.30.2.14) (+107 -107)
+
+ Gimp-Print 4.2.1 Release
+
+2002-04-27 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.16) (+75 -112)
+ README (1.91.2.11) (+21 -14)
+ debian/README.Debian (1.22.2.6) (+7 -7)
+ src/cups/genppd.c (1.36.2.3) (+29 -48)
+ src/ghost/README (1.55.2.11) (+13 -11)
+
+ Gimp-Print 4.2.1 Release
+
+2002-04-25 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.2) (+9 -8)
+ src/escputil/Makefile.am (1.10.2.1) (+3 -2)
+ src/foomatic/Makefile.am (1.16.2.7) (+8 -7)
+ src/ghost/Makefile.am (1.17.2.3) (+3 -2)
+ src/gimp/Makefile.am (1.18.4.1) (+4 -3)
+ src/testpattern/Makefile.am (1.5.4.1) (+3 -2)
+ test/Makefile.am (1.30.2.1) (+8 -4)
+
+ 548844 OS X support
+
+2002-04-20 <rlk@sourceforge.net>
+
+ Files: test/run-weavetest (1.10.2.1) (+6 -6)
+
+ Eliminate bash-specific constructs
+
+2002-04-17 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.9) (+1 -0)
+
+ Added the Sony-IJP-V100.
+
+2002-04-17 <tillkamppeter@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.5) (+12 -12)
+
+ Reverted change of B format short names, it breaks compatibility of CUPS PPDs and Foomatic data to GIMP-Print 4.2.0.
+
+2002-04-17 <tillkamppeter@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.4) (+12 -12)
+
+ Changed short names for the japanese B paper sizes from "Bx" to "JISBx" so that the short names are easier understandable for users and also correctly treated by Foomatic.
+
+2002-04-16 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.8) (+1 -0)
+
+ Added HP 2500CM printer.
+
+2002-04-14 <rlk@sourceforge.net>
+
+ Files: lib/vasprintf.c (1.3.4.1) (+4 -4)
+ src/cups/genppd.c (1.36.2.2) (+4 -2)
+ src/main/print-util.c (1.53.2.3) (+8 -17)
+
+ 543562 Portability issues
+
+2002-04-13 <mtomlinson@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.6) (+81 -3)
+
+ Changed settings for Matte paper on four color printers. Changed ink tunings for the Epson 680/777 printer.
+
+2002-04-12 <mtomlinson@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.15) (+2 -2)
+
+ branches: 1.15.2; 1.15.4; 1.15.6;
+ Change settings for Matte paper and 4 color printers.
+
+2002-04-09 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.13) (+2 -2)
+
+ Bumped GIMPPRINT_INTERFACE_AGE incorrectly.
+
+2002-04-09 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.10) (+81 -51)
+
+ Updates
+
+2002-04-07 <rleigh@sourceforge.net>
+
+ Files: debian/control.in (1.16.2.9) (+1 -1)
+ debian/rules (1.29.2.4) (+3 -3)
+
+ Rename foomatic-db-gimpprint to foomatic-db-gimp-print
+
+2002-04-07 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.15) (+3 -0)
+ man/escputil.1.in (1.4.4.1) (+24 -10)
+ po/da.po (1.14.2.12) (+1 -1)
+ po/el.po (1.1.2.9) (+1 -1)
+ po/en_GB.po (1.80.2.14) (+2 -2)
+ po/fr.po (1.21.2.12) (+1 -1)
+ po/nl.po (1.1.2.6) (+1 -1)
+ po/no.po (1.21.2.13) (+1 -1)
+ po/pl.po (1.5.2.12) (+1 -1)
+ po/sk.po (1.1.2.13) (+1 -1)
+ po/sv.po (1.30.2.13) (+1 -1)
+
+ 4.2.1-pre5 release
+
+2002-04-07 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14.4.7) (+28 -18)
+
+ Modified command line option evaluation to simplify Makefiles calling the foomatic-generator.
+
+2002-04-07 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/utils.sgml (1.2.2.3) (+6 -12)
+
+ Formatting changes from the mainline
+
+2002-04-07 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/utils.sgml (1.2.2.2) (+66 -56)
+
+ Update from the mainline
+
+2002-04-07 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.28.2.2) (+22 -7)
+ doc/users_guide/cups.sgml (1.1.2.1) (+0 -0)
+ doc/users_guide/gfdl.sgml (1.1.2.1) (+0 -0)
+ doc/users_guide/gimp.sgml (1.1.2.1) (+0 -0)
+ doc/users_guide/history.sgml (1.1.2.1) (+0 -0)
+ doc/users_guide/title.sgml (1.1.2.1) (+0 -0)
+ doc/users_guide/users-guide.sgml (1.4.2.3) (+15 -1869)
+ doc/users_guide/utils.sgml (1.2.2.1) (+51 -57)
+
+ Split and update the users guide
+
+2002-04-07 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/utils.sgml (1.2) (+57 -51)
+
+
+
+ Reformatting of the escputil examples. I thought they looked ugly on the
+ right margin when printed.
+
+2002-04-07 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/cups.sgml (1.1) ( )
+ doc/users_guide/gimp.sgml (1.1) ( )
+ doc/users_guide/history.sgml (1.1) ( )
+ doc/users_guide/title.sgml (1.1) ( )
+ doc/users_guide/utils.sgml (1.1) ( )
+
+
+
+ Renamed files to make it easier to deal with multiple versions
+ of the manual. Fixed (I think) the make dist problem in Makefile.am.
+ Updated users-guide.sgml to use new file names for chapter files.
+
+2002-04-07 <rleigh@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.6) (+11 -13)
+
+ Add install-kit rule
+
+2002-04-06 <rlk@sourceforge.net>
+
+ Files: src/ghost/.cvsignore (1.6.4.2) (+2 -0)
+
+ Updates
+
+2002-04-06 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36.2.1) (+3 -3)
+
+ 540307 Syntax error in CloseUI in PPD files
+
+2002-04-06 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.11) (+9 -9)
+ po/el.po (1.1.2.8) (+9 -9)
+ po/en_GB.po (1.80.2.13) (+10 -10)
+ po/fr.po (1.21.2.11) (+9 -9)
+ po/nl.po (1.1.2.5) (+9 -9)
+ po/no.po (1.21.2.12) (+9 -9)
+ po/pl.po (1.5.2.11) (+9 -9)
+ po/sk.po (1.1.2.12) (+9 -9)
+ po/sv.po (1.30.2.12) (+9 -9)
+
+ Gimp-print 4.2.1-pre5 release
+
+2002-04-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.14) (+21 -13)
+
+ 4.2.1-pre5 release
+
+2002-04-06 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.5) (+5 -5)
+ src/foomatic/foomatic-generator.in (1.14.4.6) (+16 -11)
+
+ Let foomatic data go into "gimp-print" and "gimp-print-ijs" sub dirs of "foomatic-db",
+
+2002-04-06 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.4) (+14 -4)
+ src/foomatic/foomatic-generator.in (1.14.4.5) (+13 -10)
+
+ Let Foomatic data for GhostScript and IJS drivers go into separate directories (to simplify Debian packaging).
+
+2002-04-06 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/gfdl.sgml (1.1) ( )
+
+ branches: 1.1.2; 1.1.4;
+
+
+ Added chapter 4, the description of the escputil utility. Chapters now
+ have their own separate files and the entire document is pulled together
+ via the users-guide.sgml file. This necessitated a few Makefile changes.
+
+2002-04-06 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.12) (+2 -2)
+
+ Try -ltermcap on the third round, not -lcurses a second time.
+
+2002-04-04 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.7) (+18 -5)
+
+ 539013 IJS driver must set top left correctly
+
+2002-04-04 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.2) (+2 -2)
+
+ 538500 PCL driver buffer overrun
+
+2002-04-03 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.6) (+15 -5)
+
+ 538497 IJS driver must set paper size name
+
+2002-04-02 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.10) (+112 -111)
+
+ -g is wrong for point size
+
+2002-03-31 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.13) (+12 -1)
+ README (1.91.2.9) (+1 -1)
+ configure.in.in (1.103.2.11) (+2 -2)
+ debian/README.Debian (1.22.2.5) (+1 -1)
+
+ 4.2.1-pre5
+
+2002-03-31 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14.4.4) (+2 -2)
+
+ DeviceGrayscale => DeviceGray
+
+2002-03-31 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.9) (+3 -3)
+
+ DeviceGrayscale => DeviceGray
+
+2002-03-31 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.10) (+16 -16)
+ po/el.po (1.1.2.7) (+16 -16)
+ po/en_GB.po (1.80.2.12) (+17 -17)
+ po/fr.po (1.21.2.10) (+16 -16)
+ po/nl.po (1.1.2.4) (+16 -16)
+ po/no.po (1.21.2.11) (+16 -16)
+ po/pl.po (1.5.2.10) (+16 -16)
+ po/sk.po (1.1.2.11) (+16 -16)
+ po/sv.po (1.30.2.11) (+16 -16)
+
+ Gimp-Print 4.2.1 release
+
+2002-03-31 <tillkamppeter@sourceforge.net>
+
+ Files: NEWS (1.68.2.12) (+4 -1)
+
+ Added requirements for IJS driver to NEWS file.
+
+2002-03-30 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.3) (+4 -2)
+
+ Fix up the directories
+
+2002-03-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.11) (+1 -0)
+
+ One more bug fixed
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.8) (+11 -0)
+
+ Added a hint because of the IJS Foomatic data to the src/ghost/README
+
+2002-03-30 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.5) (+2 -2)
+
+ Match debug output to argument
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-templates-ijs/Resolution.xml (1.1.2.3) (+0 -0)
+
+ Put back in the "Resolution" option for IJS, the "Line Art" image mode does not work without.
+
+2002-03-30 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.4) (+17 -12)
+
+ 537248 IJS driver mis-handles -r option
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-templates-ijs/Resolution.xml (1.1.2.2) (+0 -0)
+
+ Removed GhostScript resolution option from IJS Foomatic data, it is not needed and even messes up the printouts.
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: NEWS (1.68.2.10) (+2 -0)
+
+ Updated NEWS file because of IJS Foomatic data.
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: README (1.91.2.8) (+25 -8)
+
+ Updated Foomatic section of main README, due to IJS.
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.7) (+1 -1)
+
+ Fixed IJS command for the media source: It must be "MediaSource" not "InputSlot".
+
+2002-03-30 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16.2.2) (+8 -2)
+ src/foomatic/foomatic-generator.in (1.14.4.3) (+160 -76)
+ src/foomatic/printer_options.c (1.9.4.1) (+4 -1)
+ src/foomatic/foomatic-templates-gs/Brightness.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Brightness.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/Color.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Color.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Contrast.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Contrast.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/Cyan.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Cyan.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/Density.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Density.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/Dither.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Dither.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Gamma.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Gamma.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/ImageType.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/ImageType.xml (1.1.2.1) (+63 -0)
+ src/foomatic/foomatic-templates-gs/InkType.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/InkType.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/InputSlot.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/InputSlot.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Magenta.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Magenta.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/MediaType.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/MediaType.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Model.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Model.xml (1.1.2.1) (+21 -0)
+ src/foomatic/foomatic-templates-gs/PageSize.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/PageSize.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Quality.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Quality.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Resolution.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Resolution.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-gs/Saturation.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Saturation.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/Yellow.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/Yellow.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-gs/gimp-print.xml (1.1) ( )
+ src/foomatic/foomatic-templates-gs/gimp-print.xml (1.1.2.1) (+43 -0)
+ src/foomatic/foomatic-templates-ijs/Brightness.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Brightness.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/Color.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Color.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Contrast.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Contrast.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/Cyan.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Cyan.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/Density.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Density.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/Dither.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Dither.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Gamma.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Gamma.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/ImageType.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/ImageType.xml (1.1.2.1) (+63 -0)
+ src/foomatic/foomatic-templates-ijs/InkType.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/InkType.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/InputSlot.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/InputSlot.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Magenta.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Magenta.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/MediaType.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/MediaType.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Model.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Model.xml (1.1.2.1) (+21 -0)
+ src/foomatic/foomatic-templates-ijs/PageSize.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/PageSize.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Quality.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Quality.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Resolution.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Resolution.xml (1.1.2.1) (+20 -0)
+ src/foomatic/foomatic-templates-ijs/Saturation.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Saturation.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/Yellow.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/Yellow.xml (1.1.2.1) (+24 -0)
+ src/foomatic/foomatic-templates-ijs/gimp-print.xml (1.1) ( )
+ src/foomatic/foomatic-templates-ijs/gimp-print.xml (1.1.2.1) (+44 -0)
+ src/ghost/ijsgimpprint.c (1.2.2.3) (+3 -3)
+
+ Added Foomatic data generation for the IJS interface of GIMP-Print.
+ Fixed paths of IJS header files in src/ghost/ijsgimpprint.c
+
+2002-03-30 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.6) (+132 -129)
+
+ -g option is used to set papersize in IJS driver.
+
+2002-03-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.9) (+44 -1)
+ README (1.91.2.7) (+1 -1)
+ configure.in.in (1.103.2.10) (+2 -2)
+ debian/README.Debian (1.22.2.4) (+1 -1)
+ po/da.po (1.14.2.9) (+64 -64)
+ po/el.po (1.1.2.6) (+64 -64)
+ po/en_GB.po (1.80.2.11) (+2 -2)
+ po/fr.po (1.21.2.9) (+64 -64)
+ po/nl.po (1.1.2.3) (+386 -699)
+ po/no.po (1.21.2.10) (+64 -64)
+ po/pl.po (1.5.2.9) (+64 -64)
+ po/sk.po (1.1.2.10) (+64 -64)
+ po/sv.po (1.30.2.10) (+65 -65)
+
+ 4.2.1-pre4 release
+
+2002-03-28 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.7) (+7 -0)
+
+ Added new Kyocera laser printers.
+
+2002-03-27 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.44.4.2) (+4 -2)
+
+ Fix very fast dithering (533400).
+
+2002-03-24 <rleigh@sourceforge.net>
+
+ Files: debian/cupsys-driver-gimpprint.postinst (1.1.2.1) (+0 -0)
+
+ Add cupsys-driver-gimpprint postinst script to reload cupsys on configure
+
+2002-03-23 <rleigh@sourceforge.net>
+
+ Files: m4/stp_gimp.m4 (1.1) ( )
+
+ Update build: add new m4 macros
+
+2002-03-22 <mtomlinson@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.14) (+28 -5)
+
+ Calibrated the Epson 680 multishot inks.
+
+2002-03-21 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.6) (+1 -0)
+
+ Added the Okidata OL400e.
+
+2002-03-18 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.80.2.10) (+109 -106)
+
+ Update en_GB translation
+
+2002-03-18 <mtomlinson@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.13) (+3 -3)
+
+ Minor change to ink dot sizes.
+
+2002-03-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.12) (+100 -47)
+ src/main/print-escp2.h (1.7) (+17 -1)
+
+ Put inkname list (three color CMY, six color photo, etc.) into
+ printer list.
+
+2002-03-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.5) (+116 -58)
+
+ Stylus Pro printers cannot print borderless on roll feed paper.
+
+2002-03-17 <rlk@sourceforge.net>
+
+ Files: po/nl.po (1.1.2.2) (+808 -365)
+
+ Updates
+
+2002-03-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.11) (+107 -55)
+ src/main/print-escp2.h (1.6) (+14 -1)
+
+ Roll feed on Stylus Pro printers does not allow borderless printing
+
+2002-03-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.4) (+16 -10)
+ src/main/printers.xml (1.42.2.2) (+4 -1)
+
+ Improve pigment Stylus Pro print quality
+
+2002-03-16 <mtomlinson@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.10) (+58 -2)
+
+ Re-calibrated 680 printer 720x720 mode.
+
+2002-03-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.8) (+2 -2)
+ configure.in.in (1.103.2.9) (+2 -2)
+ po/da.po (1.14.2.8) (+1 -1)
+ po/el.po (1.1.2.5) (+1 -1)
+ po/en_GB.po (1.80.2.9) (+2 -2)
+ po/fr.po (1.21.2.8) (+1 -1)
+ po/nl.po (1.1) ( )
+ po/nl.po (1.1.2.1) (+2919 -0)
+ po/no.po (1.21.2.9) (+57 -37)
+ po/pl.po (1.5.2.8) (+1 -1)
+ po/sk.po (1.1.2.9) (+1076 -893)
+
+ Add Dutch translation.
+
+2002-03-15 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.5) (+9 -0)
+
+ Added some old Epsons and some recent Canons which are (at least more or less) compatible to explicitly supported models.
+
+2002-03-14 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.4) (+19 -0)
+
+ Added several printer models which are compatible to already listed ones.
+
+2002-03-14 <rlk@sourceforge.net>
+
+ Files: src/cups/canon.c (1.3.2.2) (+8 -1)
+ src/cups/epson.c (1.3.2.2) (+10 -3)
+
+ Offer both interrupt-driven and polled parallel ports for BSD.
+ Suggested by Jacob Meuser.
+
+2002-03-14 <rlk@sourceforge.net>
+
+ Files: po/no.po (1.21.2.8) (+287 -292)
+ po/sk.po (1.1.2.8) (+892 -1072)
+ po/sv.po (1.30.2.9) (+19 -15)
+
+ Updated translations
+
+2002-03-11 <easysw@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.3) (+5 -3)
+
+ rastertoprinter didn't write PAGE: comments, so none of the page logging
+ worked in CUPS...
+
+2002-03-06 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.6) (+6 -1)
+ debian/rules (1.29.2.3) (+2 -2)
+
+ Enable library versioning with dh_makeshlibs and update changelog
+
+2002-03-05 <cpbs@sourceforge.net>
+
+ Files: src/cups/canon.c (1.3.2.1) (+29 -22)
+ src/cups/epson.c (1.3.2.1) (+31 -24)
+ src/cups/rastertoprinter.c (1.19.4.2) (+3 -2)
+
+ Fix bug 525779: the epson backend only output data in constant-sized
+ blocks, and the rastertoprinter filter didn't flush its output at
+ end-of-page. Both meant that pages didn't get ejected as soon as
+ they could. Epson fix applied to canon backend too.
+
+2002-03-02 <rleigh@sourceforge.net>
+
+ Files: debian/control.in (1.16.2.8) (+1 -1)
+ debian/cupsys-driver-gimpprint.postrm (1.3.12.1) (+4 -0)
+
+ Fix gs dependency to use postscript-viewer as well
+ Fix cupsys-driver-gimpprint to reload cupsys on configure/removal
+
+2002-03-02 <rleigh@sourceforge.net>
+
+ Files: debian/cupsys-driver-gimpprint.postinst (1.1) ( )
+
+ branches: 1.1.2; 1.1.4;
+ Fix gs dependency
+ Fix cupsys-driver-gimpprint to reload cupsys on configure/removal
+
+2002-03-02 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.7) (+1 -1)
+ po/el.po (1.1.2.4) (+1 -1)
+ po/en_GB.po (1.80.2.8) (+2 -2)
+ po/fr.po (1.21.2.7) (+1 -1)
+ po/no.po (1.21.2.7) (+1 -1)
+ po/pl.po (1.5.2.7) (+1 -1)
+ po/sk.po (1.1.2.7) (+1 -1)
+ po/sv.po (1.30.2.8) (+1 -1)
+
+ 4.2.1-pre3 release
+
+2002-03-02 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.7) (+13 -1)
+ README (1.91.2.6) (+1 -1)
+ debian/README.Debian (1.22.2.3) (+1 -1)
+
+ 4.2.1-pre3 release
+
+2002-03-02 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.8) (+2 -2)
+
+ 4.2.1-pre3
+
+2002-03-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.71.2.1) (+33 -9)
+
+ Latest updates from Peter Missel, should fix a lot of the Canon problems
+
+2002-03-01 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.9) (+40 -40)
+
+ Tune the dot sizes for eventone
+
+2002-02-27 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.6) (+53 -37)
+ po/el.po (1.1.2.3) (+54 -37)
+ po/en_GB.po (1.80.2.7) (+86 -48)
+ po/fr.po (1.21.2.6) (+53 -37)
+ po/no.po (1.21.2.6) (+53 -37)
+ po/pl.po (1.5.2.6) (+53 -37)
+ po/sk.po (1.1.2.6) (+88 -49)
+ po/sv.po (1.30.2.7) (+85 -47)
+
+ Gimp-Print 4.2.1-pre2 release
+
+2002-02-27 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.6) (+2 -0)
+
+ Note escputil simplification.
+
+2002-02-27 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.5) (+1 -1)
+ README (1.91.2.5) (+9 -8)
+ debian/README.Debian (1.22.2.2) (+7 -7)
+
+ 4.2.1-pre2 release
+
+2002-02-27 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.3) (+30 -34)
+
+ Simplify the alignment procedure.
+
+2002-02-26 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.3) (+1 -0)
+
+ Lexmark Z53
+
+2002-02-24 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.2) (+3 -3)
+
+ C80 uses 4 alignment passes
+
+2002-02-23 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.7) (+2 -2)
+
+ Prep for 4.2.1-pre2
+
+2002-02-23 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.4) (+16 -4)
+
+ 4.2.1-pre2 prep and updates
+
+2002-02-23 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.5) (+8 -7)
+
+ Lexmark Z53 works with the Z52 driver.
+
+2002-02-23 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.42.2.1) (+11 -1)
+
+ Lexmark Z53 works with the Z52 driver
+
+2002-02-22 <rlk@sourceforge.net>
+
+ Files: src/ghost/.cvsignore (1.6.4.1) (+1 -0)
+
+ Now need to ignore .deps
+
+2002-02-21 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2.2.2) (+3 -3)
+
+ Typo
+
+2002-02-21 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.6) (+10 -10)
+
+ Don't allow failing AC_PATH_PROG checks to pass incorrectly
+
+2002-02-21 <rleigh@sourceforge.net>
+
+ Files: debian/control.in (1.16.2.7) (+1 -1)
+
+ Add Build-Depends for foomatic-bin
+
+2002-02-20 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.10.4.1) (+9 -3)
+
+ Updates
+
+2002-02-17 <sharkey@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.24.2.4) (+2 -2)
+
+ Debian's version of the Imagemagick convert program's EPS2 driver is
+ still broken and gimp-print still fails to build because of this.
+ (Debian bug #130756) Debian is going into freeze so this needs to be
+ fixed ASAP. Switch to the EPS1 driver instead and prep for
+ immediate release.
+
+2002-02-17 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.5) (+1 -1)
+ po/el.po (1.1.2.2) (+1 -1)
+ po/en_GB.po (1.80.2.6) (+2 -2)
+ po/fr.po (1.21.2.5) (+1 -1)
+ po/no.po (1.21.2.5) (+1 -1)
+ po/pl.po (1.5.2.5) (+1 -1)
+ po/sk.po (1.1.2.5) (+1 -1)
+ po/sv.po (1.30.2.6) (+2 -2)
+
+ 4.2.1 release
+
+2002-02-16 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/users-guide.sgml (1.4.2.2) (+1 -1)
+
+ Don't get too aggressive with bumping the version for a prerelease
+
+2002-02-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.3) (+26 -11)
+
+ Prep for 4.2.1-pre1
+
+2002-02-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.2) (+1 -1)
+ configure.in.in (1.103.2.5) (+2 -2)
+ po/el.po (1.1) ( )
+ po/el.po (1.1.2.1) (+3077 -0)
+ po/en_GB.po (1.80.2.5) (+2 -2)
+ po/sv.po (1.30.2.5) (+46 -32)
+
+ Add Greek, update Swedish and en_GB translations
+
+2002-02-16 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.65.2.3) (+4 -4)
+
+ Corrected error [ #516268 ] Erroneous comparison.
+
+2002-02-16 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.4) (+10 -10)
+ po/en_GB.po (1.80.2.4) (+11 -11)
+ po/fr.po (1.21.2.4) (+10 -10)
+ po/no.po (1.21.2.4) (+10 -10)
+ po/pl.po (1.5.2.4) (+10 -10)
+ po/sk.po (1.1.2.4) (+10 -10)
+ po/sv.po (1.30.2.4) (+10 -10)
+
+ Updated potfile
+
+2002-02-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.2) (+5 -3)
+
+ Update a message
+
+2002-02-16 <rleigh@sourceforge.net>
+
+ Files: README (1.91.2.4) (+2 -1)
+ debian/README.building (1.3.4.1) (+5 -0)
+ debian/changelog (1.35.2.5) (+6 -0)
+
+ Update Debian package version, build notes and README information.
+
+2002-02-16 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.27.2.2) (+4 -2)
+ doc/print-color.txt (1.1) ( )
+ doc/print-color.txt (1.1.2.1) (+1 -0)
+ doc/print-main.txt (1.1) ( )
+ doc/print-main.txt (1.1.2.1) (+1 -0)
+ doc/print-setup.txt (1.1) ( )
+ doc/print-setup.txt (1.1.2.1) (+1 -0)
+
+ Add dummy text figures to manual to stop makeinfo errors.
+
+2002-02-15 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.3) (+10 -10)
+ configure.in.in (1.103.2.4) (+4 -4)
+ debian/README.Debian (1.22.2.1) (+1 -1)
+ doc/users_guide/users-guide.sgml (1.4.2.1) (+1 -1)
+ po/da.po (1.14.2.3) (+1 -1)
+ po/en_GB.po (1.80.2.3) (+2 -2)
+ po/fr.po (1.21.2.3) (+1 -1)
+ po/no.po (1.21.2.3) (+1 -1)
+ po/pl.po (1.5.2.3) (+1 -1)
+ po/sk.po (1.1.2.3) (+1 -1)
+ po/sv.po (1.30.2.3) (+1 -1)
+
+ Bump version
+
+2002-02-15 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68.2.1) (+38 -1)
+
+ Bump version
+
+2002-02-15 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.2) (+33 -11)
+ configure.in.in (1.103.2.3) (+32 -2)
+ po/POTFILES.in (1.10.4.1) (+3 -0)
+ po/da.po (1.14.2.2) (+73 -1)
+ po/en_GB.po (1.80.2.2) (+74 -2)
+ po/fr.po (1.21.2.2) (+73 -1)
+ po/no.po (1.21.2.2) (+73 -1)
+ po/pl.po (1.5.2.2) (+73 -1)
+ po/sk.po (1.1.2.2) (+564 -420)
+ po/sv.po (1.30.2.2) (+73 -1)
+ src/Makefile.am (1.7.4.1) (+1 -1)
+ src/ghost/Makefile.am (1.17.2.2) (+23 -2)
+ src/ghost/README (1.55.2.4) (+240 -42)
+ src/ghost/ijsgimpprint.c (1.2.2.1) (+1 -1)
+
+ Add IJS Ghostscript driver
+
+2002-02-15 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.2) (+24 -24)
+
+ I18N
+
+2002-02-14 <rlk@sourceforge.net>
+
+ Files: src/ghost/ijsgimpprint.c (1.1) ( )
+
+ Move IJS into src/ghost
+
+ Start documenting IJS
+
+2002-02-14 <rlk@sourceforge.net>
+
+ Files: po/sk.po (1.1) ( )
+ po/sk.po (1.1.2.1) (+3063 -0)
+
+ file sk.po was initially added on branch gimp-print-4_2_branch.
+
+2002-02-10 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14.2.1) (+238 -197)
+ po/en_GB.po (1.80.2.1) (+240 -198)
+ po/fr.po (1.21.2.1) (+239 -197)
+ po/no.po (1.21.2.1) (+238 -197)
+ po/pl.po (1.5.2.1) (+238 -197)
+ po/sv.po (1.30.2.1) (+239 -197)
+
+ Updates
+
+2002-02-10 <rlk@sourceforge.net>
+
+ Files: scripts/mkchlog (1.2.6.1) (+96 -4)
+
+ Print only versions on our branch
+
+2002-02-03 <sharkey@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.24.2.3) (+3 -3)
+
+ Apply roger's Makefile.am patch in the users_guide directory to help
+ fix building on arm. Potentially closes #128421.
+
+2002-02-03 <rleigh@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14.4.2) (+1 -1)
+
+ Remove hard-coded template path
+
+2002-02-01 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.2) (+11 -11)
+ debian/changelog (1.35.2.4) (+3 -2)
+ debian/control.in (1.16.2.6) (+14 -0)
+ debian/rules (1.29.2.2) (+3 -2)
+ src/foomatic/Makefile.am (1.16.2.1) (+8 -3)
+ src/foomatic/foomatic-generator.in (1.14.4.1) (+8 -2)
+
+ Fix foomatic VPATH build
+ New Debian package foomatic-db-gimpprint
+
+2002-02-01 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.27.2.1) (+11 -10)
+ doc/users_guide/Makefile.am (1.28.2.1) (+3 -3)
+
+ Fix VPATH build symbolic linking, and clean up
+
+2002-01-31 <rlk@sourceforge.net>
+
+ Files: README (1.91.2.1) (+24 -16)
+
+ Improved Foomatic documentation, from Till.
+
+2002-01-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.3) (+8 -8)
+
+ Allow smaller paper sizes on Stylus Pro printers
+
+2002-01-29 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53.2.1) (+67 -6)
+
+ Perform more sanity checks during parameter verification
+
+2002-01-29 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.17.2.1) (+4 -2)
+ src/ghost/README (1.55.2.3) (+3 -3)
+
+ 507773 Old-style GS build broken
+
+ Also fix minor typos
+
+2002-01-25 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.2) (+1 -1)
+
+ Clean up typo
+
+2002-01-24 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.44.4.1) (+5 -5)
+
+ Free the correct channels.
+
+2002-01-24 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.19.4.1) (+4 -2)
+ src/ghost/gdevstp.c (1.14.2.1) (+3 -1)
+
+ 507767 Parameters not set in CUPS driver
+ 507770 Unset parameters in Ghostscript driver
+
+2002-01-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.2) (+6 -6)
+
+ Fix margins per manuals for old printers
+
+2002-01-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.8) (+6 -6)
+
+ Fix margins
+
+2002-01-21 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47.4.1) (+54 -34)
+
+ Dynamically allocate the comp_buf instead of having it fixed. Fixes crashes
+ when using larger paper sizes in DesignJet.
+
+2002-01-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.7) (+3 -3)
+
+ 5000/5500 take the same paper sizes as the 2000.
+
+2002-01-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.6) (+8 -8)
+
+ Adjust the minimum page sizes for Stylus Pro printers
+
+2002-01-05 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.45.2.1) (+3 -1)
+
+ Warn about rmdir messages that really don't accomplish anything
+
+2002-01-04 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.65.2.2) (+2 -2)
+
+ corrected border of the z42.
+
+2002-01-04 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.5) (+154 -49)
+ src/main/print-escp2.h (1.5) (+7 -2)
+
+ 499200 ESP 1280/1290 need special deinit code
+ 499203 ESP 780/820 have different paper codes
+
+2002-01-04 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147.2.1) (+173 -58)
+
+ 499203 ESP 780/820 have different paper codes
+ 499200 ESP 1280/1290 need special deinit code
+
+2002-01-01 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.3) (+2 -2)
+ debian/control.in (1.16.2.5) (+1 -1)
+
+ Add versioned Replaces for gimpprint-locales from debian-branch
+
+2001-12-30 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.103.2.1) (+2 -2)
+
+ Fix variable name typo for --with-translated-ppds option
+
+2001-12-30 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35.2.2) (+5 -1)
+ debian/control.in (1.16.2.4) (+3 -3)
+
+ Merge debian/control.in fixes from debian-branch
+
+2001-12-27 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.65.2.1) (+4 -1)
+
+ Changes received by Alwin.
+
+ Fixed two major bugs for the Lexmark Z42:
+
+ - The Z42 doesn't choke anymore if the picture isn't aligned to the left
+ of the page.
+
+ - Sometimes there was a lot of black 'binary data' in the picture when
+ printing with ink-type 'four color standard' and output type 'black
+ and white'. (Forgot to specify color-compatibility-mode or full 208
+ nozzles).
+
+2001-12-23 <rlk@sourceforge.net>
+
+ Files: test/run-testdither (1.3) (+6 -3)
+
+ branches: 1.3.2; 1.3.4; 1.3.6;
+ A bit more cleanup work on the dither code.
+
+2001-12-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.h (1.1) ( )
+
+ branches: 1.1.2; 1.1.4; 1.1.6; 1.1.12;
+ Start splitting up the dither code
+
+2001-12-20 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.2) (+2 -0)
+
+ Added the Canon BJC-2100 and Apollo P2200 (they were supported by GIMP-Print 4.0.x).
+
+2001-12-17 <rlk@sourceforge.net>
+
+ Files: test/run-testdither (1.2) (+0 -1)
+
+ Minor improvements
+
+2001-12-16 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.55.2.1) (+9 -9)
+
+ 493772 360dpi is not a valid resolution
+
+2001-12-14 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.h (1.4) (+1 -2)
+ test/run-testdither (1.1) ( )
+
+ Generalize the dither code somewhat.
+
+2001-12-10 <tillkamppeter@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.23.2.1) (+1 -0)
+
+ Added Canon BJC-2010.
+
+2001-12-09 <sharkey@sourceforge.net>
+
+ Files: debian/control.in (1.16.2.3) (+1 -1)
+ debian/gimpprint-doc.doc-base (1.1.4.1) (+1 -1)
+
+ Merge fixes from debian branch.
+
+2001-12-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.4) (+74 -74)
+
+ Start generalizing the dither code to an arbitrary number of
+ subchannels.
+
+2001-12-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.3) (+226 -198)
+ src/main/print-escp2.h (1.3) (+25 -26)
+
+ Put all of the data under one big struct.
+
+2001-12-04 <rleigh@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.39.2.1) (+8 -1)
+
+ Enable gettext (i18n)
+
+2001-12-03 <sharkey@sourceforge.net>
+
+ Files: debian/control.in (1.16.2.2) (+1 -1)
+
+ Sync stable branch with debian branch, build-depend on autoconf and
+ automake.
+
+2001-12-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2-data.c (1.2) (+2544 -0)
+ src/main/print-escp2.h (1.2) (+326 -0)
+
+ Split data and logic in Epson driver
+
+2001-12-01 <rleigh@sourceforge.net>
+
+ Files: debian/.cvsignore (1.5.6.1) (+0 -1)
+ debian/changelog (1.35.2.1) (+12 -0)
+ debian/control.in (1.16.2.1) (+17 -2)
+ debian/rules (1.29.2.1) (+5 -5)
+
+ libgimpprint.postinst: use 'if' instead of 'case', removing a lintian warning
+ New gimpprint-locales package to allow multiple versions of libgimpprint
+ to be installed concurrently
+ Add libgimpprint-doc.doc-base
+
+2001-11-26 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.10) (+428 -896)
+ README (1.46.2.10) (+61 -32)
+ configure.in.in (1.18.2.12) (+35 -28)
+ debian/README.Debian (1.2.2.10) (+8 -8)
+ doc/users_guide/users-guide.sgml (1.2.2.2) (+95 -53)
+ po/da.po (1.4.2.3) (+1 -1)
+ po/fr.po (1.11.2.3) (+1 -1)
+ po/no.po (1.11.2.3) (+1 -1)
+ po/pl.po (1.4.2.2) (+1 -1)
+ po/sv.po (1.20.2.3) (+1 -1)
+ src/cups/Makefile.am (1.17.2.11) (+10 -13)
+ src/foomatic/Makefile.am (1.4.2.8) (+2 -2)
+ src/foomatic/foomatic-printermap (1.2.2.7) (+1 -3)
+ src/main/print-escp2.c (1.24.2.10) (+5 -5)
+
+ Sync debian-branch with 4.2.0
+
+2001-11-24 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.14) (+1 -1)
+ po/en_GB.po (1.80) (+2 -2)
+ po/fr.po (1.21) (+1 -1)
+ po/no.po (1.21) (+1 -1)
+ po/pl.po (1.5) (+1 -1)
+ po/sv.po (1.30) (+1 -1)
+
+ Final updated .po's for 4.2.0.
+
+2001-11-24 <sharkey@sourceforge.net>
+
+ Files: scripts/buildgimpprintdebs (1.2) (+3 -8)
+
+ Radically alter the way debs are built. The upstream source tarball
+ is no longer used at all, instead, build directly from CVS, generate
+ an upstream tarball on the fly using the -U option of cvs-buildpackage,
+ and diff that with the debian branch. The debian/rules now configures
+ in maintainer mode, so the only preprocessing we need to do is to generate
+ debian/control from debian/control.in before starting dpkg-buildpackage.
+
+2001-11-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.68) (+1 -1)
+
+ Set release date.
+
+2001-11-24 <sharkey@sourceforge.net>
+
+ Files: debian/control.in (1.16) (+1 -1)
+
+ Merge with debian-branch. Add build dependencies on imagemagick and
+ docbook-utils.
+
+2001-11-24 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.29) (+6 -7)
+
+ Merge with debian branch. Enable maintainer mode and copy docs
+ from debian/gimp-print-build/doc, not doc.
+
+2001-11-24 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.35) (+2 -7)
+
+ Revert version increase from 4.2.0-2 to 4.2.0-1
+
+2001-11-24 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.34) (+7 -0)
+ debian/rules (1.28) (+2 -2)
+
+ Use PostScript Level 2 PPD files, not Level 3
+
+2001-11-23 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/users-guide.sgml (1.4) (+96 -91)
+ doc/users_guide/figures/cups_admin_model.png (1.2) (+49 -62)
+ doc/users_guide/figures/cups_my_printer.png (1.2) (+33 -68)
+
+ Updates for rev 4.2.0 release
+
+2001-11-23 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.120) (+3 -1)
+
+ 484979 Cannot rebuild configure from tarball
+
+2001-11-23 <sharkey@sourceforge.net>
+
+ Files: configure.in.in (1.103) (+2 -2)
+
+ Sync with debian branch. Accept "dvipdfm" as an alternative to
+ "dvipdf".
+
+2001-11-23 <sharkey@sourceforge.net>
+
+ Files: debian/copyright (1.5) (+2 -2)
+
+ Sync mainline with debian branch. Reformat copyright file to avoid
+ lintian warning.
+
+2001-11-23 <sharkey@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.7.2.8) (+2 -8)
+
+ Check the debian diff more carefully. Somehow, in all the branching
+ and merging, a few lines got duplicated in this file. stp_init was
+ being called twice on the debian branch, and only once on the mainline.
+ Weird. Remove the first call to stp_init, making the debian version
+ of this file identical to the mainline version.
+
+2001-11-23 <rlk@sourceforge.net>
+
+ Files: NEWS (1.67) (+4 -4)
+ README (1.91) (+11 -9)
+
+ Correct lists of translations.
+
+2001-11-22 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/users-guide.sgml (1.3) (+46 -9)
+
+ Insert warning for connecting USB printers with CUPS.
+
+2001-11-22 <rlk@sourceforge.net>
+
+ Files: NEWS (1.66) (+2 -5)
+ src/foomatic/foomatic-printermap (1.23) (+0 -3)
+ src/ghost/README (1.55) (+0 -3)
+ src/main/printers.xml (1.42) (+1 -31)
+
+ Remove support for Lexmark 3200 and Z31 printers, and clones.
+ These do not work per Till and Richard.
+
+2001-11-22 <easysw@sourceforge.net>
+
+ Files: src/cups/README (1.3) (+60 -63)
+
+ Update CUPS README for 4.2 release.
+
+2001-11-22 <rleigh@sourceforge.net>
+
+ Files: debian/README.Debian (1.22) (+1 -1)
+ debian/changelog (1.33) (+6 -0)
+
+ Update debian/changelog, and dates for 4.2.0
+
+2001-11-22 <rlk@sourceforge.net>
+
+ Files: NEWS (1.65) (+431 -896)
+ README (1.90) (+33 -16)
+ configure.in.in (1.102) (+4 -4)
+ debian/README.Debian (1.21) (+7 -7)
+ src/ghost/README (1.54) (+1 -1)
+
+ Prepare for 4.2 release
+
+2001-11-19 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.16) (+2 -2)
+
+ Rebuild Foomatic database if the printermap changes. Reviewed by Till.
+
+2001-11-18 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.9) (+110 -46)
+ README (1.46.2.9) (+712 -206)
+ configure.in.in (1.18.2.11) (+193 -70)
+ debian/README.Debian (1.2.2.9) (+11 -11)
+ doc/users_guide/Makefile.am (1.24.2.2) (+61 -26)
+ doc/users_guide/users-guide.sgml (1.2.2.1) (+0 -0)
+ po/da.po (1.4.2.2) (+244 -244)
+ po/fr.po (1.11.2.2) (+581 -557)
+ po/no.po (1.11.2.2) (+244 -244)
+ po/pl.po (1.4.2.1) (+1 -1)
+ po/sv.po (1.20.2.2) (+244 -244)
+ src/cups/Makefile.am (1.17.2.10) (+39 -11)
+ src/cups/genppd.c (1.7.2.7) (+34 -10)
+ src/foomatic/Makefile.am (1.4.2.7) (+2 -2)
+ src/foomatic/foomatic-printermap (1.2.2.6) (+1 -0)
+ src/main/gimpprint.m4 (1.4.2.2) (+5 -5)
+ src/main/print-escp2.c (1.24.2.9) (+49 -53)
+
+ Update debian branch to RC1 and prep for Debian upload.
+
+2001-11-18 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.22) (+1 -1)
+
+ Correct the foomatic ID of the Z43
+
+2001-11-18 <rwisi@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.21) (+1 -0)
+
+ Added z43
+
+2001-11-18 <rwisi@sourceforge.net>
+
+ Files: src/ghost/README (1.53) (+1 -0)
+
+ Added z43
+
+2001-11-18 <rwisi@sourceforge.net>
+
+ Files: src/main/printers.xml (1.41) (+11 -1)
+
+ Added z43
+
+2001-11-18 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.101) (+32 -25)
+ po/da.po (1.13) (+1 -1)
+ po/en_GB.po (1.79) (+2 -2)
+ po/fr.po (1.20) (+1 -1)
+ po/no.po (1.20) (+1 -1)
+ po/pl.po (1.4) (+1 -1)
+ po/sv.po (1.29) (+1 -1)
+ src/cups/Makefile.am (1.45) (+10 -13)
+
+ 482797 PPD build fails with DESTDIR set
+ 482326 BSD/CUPS installation problem
+
+ Reviewed by Roger Leigh.
+
+2001-11-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.147) (+2 -2)
+
+ Tune matte paper on C80.
+
+2001-11-16 <rlk@sourceforge.net>
+
+ Files: README (1.89) (+1 -1)
+
+ CUPS recommendation
+
+2001-11-16 <rlk@sourceforge.net>
+
+ Files: README (1.88) (+4 -0)
+
+ Note GNU Make requirement
+
+2001-11-14 <rlk@sourceforge.net>
+
+ Files: README (1.87) (+13 -7)
+ src/ghost/README (1.52) (+22 -21)
+ src/main/print-escp2.c (1.146) (+3 -3)
+ src/main/printers.xml (1.40) (+3 -3)
+
+ Improve C80 output
+
+2001-11-13 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.145) (+2 -2)
+
+ 481127 Epson 4pl printers too light at 2880
+
+2001-11-13 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.32) (+1 -1)
+
+ Update Debian revision number
+
+2001-11-12 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.31) (+5 -1)
+ debian/control.in (1.15) (+1 -0)
+ debian/rules (1.27) (+2 -2)
+
+ Update Debian packaging to use the latest configure options
+
+2001-11-12 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.12) (+94 -94)
+ po/en_GB.po (1.78) (+95 -95)
+ po/fr.po (1.19) (+94 -94)
+ po/no.po (1.19) (+94 -94)
+ po/pl.po (1.3) (+94 -94)
+ po/sv.po (1.28) (+94 -94)
+
+ 4.1.99-rc1 release
+
+2001-11-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.64) (+15 -1)
+
+ 4.1.99-rc1 prep
+
+2001-11-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.144) (+32 -35)
+
+ Improve 2880x720.
+
+2001-11-11 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.100) (+1 -3)
+
+ Back out redundant GTK header fix
+
+2001-11-11 <rlk@sourceforge.net>
+
+ Files: README (1.86) (+14 -0)
+
+ CUPS PPD's
+
+2001-11-11 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.36) (+7 -3)
+
+ Make CUPS PPD files be level 2 by default
+
+2001-11-11 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.99) (+22 -1)
+
+ Make CUPS PPD's be level 2 by default.
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.98) (+8 -8)
+
+ Need to check for libz regardless of whether we're using cups-config
+ or not.
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: NEWS (1.63) (+19 -1)
+ README (1.85) (+82 -9)
+ configure.in.in (1.97) (+14 -1)
+ src/cups/Makefile.am (1.44) (+34 -9)
+ src/ghost/README (1.51) (+11 -11)
+
+ Workaround for 470049 Multiple identical drivers in CUPS
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: test/run-weavetest (1.10) (+3 -3)
+
+ Updates for C80
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/users-guide.sgml (1.2) (+1 -1)
+
+ Update release date
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: src/escputil/Makefile.am (1.10) (+2 -2)
+ src/foomatic/Makefile.am (1.15) (+2 -2)
+ src/printdef/Makefile.am (1.8) (+2 -2)
+ test/Makefile.am (1.30) (+2 -2)
+
+ 480357 Makefiles include GIMP_CFLAGS spuriously
+
+2001-11-10 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.96) (+3 -1)
+
+ Fix libgtk1.2 header inclusion with an extra configure check
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: NEWS (1.62) (+0 -17)
+
+ Only keep known limitations in the current release.
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: NEWS (1.61) (+33 -14)
+
+ Updates
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.11) (+121 -121)
+ po/en_GB.po (1.77) (+122 -122)
+ po/fr.po (1.18) (+458 -434)
+ po/no.po (1.18) (+121 -121)
+ po/pl.po (1.2) (+577 -577)
+ po/sv.po (1.27) (+121 -121)
+
+ Update French translation
+
+2001-11-10 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.53) (+23 -19)
+
+ Print a version banner when STP_DEBUG is turned on.
+
+2001-11-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.26) (+10 -4)
+
+ branches: 1.26.2; 1.26.4;
+ Correct comments from Russell Lang <gsview@ghostgum.com.au>. Reviewed
+ by Mike Sweet.
+
+2001-11-08 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.95) (+5 -1)
+ doc/Makefile.am (1.27) (+10 -10)
+ doc/users_guide/Makefile.am (1.28) (+11 -11)
+
+ Clean up rm use (many places need either -rm file or rm -f file):
+
+ 478955 make clean fails
+ 478954 $(RM) fails on BSD
+
+2001-11-08 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.50) (+1 -1)
+
+ Fix an error
+
+2001-11-08 <rlk@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.65) (+3 -3)
+
+ Strip trailing whitespace
+
+2001-11-08 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.64) (+2 -4)
+
+ Corrected Warnings.
+
+2001-11-08 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.94) (+2 -2)
+ po/pl.po (1.1) ( )
+
+ Add Polish translation
+
+2001-11-07 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.10) (+1 -1)
+ po/en_GB.po (1.76) (+15 -14)
+ po/fr.po (1.17) (+1 -1)
+ po/no.po (1.17) (+1 -1)
+ po/sv.po (1.26) (+1 -1)
+
+ Minor updates.
+
+2001-11-06 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.75) (+169 -16)
+
+ Complete British English translation
+
+2001-11-06 <rlk@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.8) (+18 -14)
+
+ branches: 1.8.2; 1.8.6;
+ Comments
+
+2001-11-06 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.9) (+12 -12)
+ po/en_GB.po (1.74) (+13 -13)
+ po/fr.po (1.16) (+12 -12)
+ po/no.po (1.16) (+12 -12)
+ po/sv.po (1.25) (+12 -12)
+ src/cups/Makefile.am (1.43) (+2 -1)
+
+ Print the language for the PPD files as they're generated.
+
+2001-11-06 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.35) (+26 -6)
+
+ Reduce verbosity
+
+2001-11-06 <rlk@sourceforge.net>
+
+ Files: acconfig.h (1.16) (+4 -1)
+ po/da.po (1.8) (+12 -12)
+ po/en_GB.po (1.73) (+13 -13)
+ po/fr.po (1.15) (+12 -12)
+ po/no.po (1.15) (+12 -12)
+ po/sv.po (1.24) (+12 -12)
+ src/cups/Makefile.am (1.42) (+5 -11)
+ src/cups/genppd.c (1.34) (+6 -138)
+ src/main/print-escp2.c (1.143) (+8 -8)
+
+ 1) Undo the genppd stuff; it causes a lot of problems.
+
+ 2) Check for mempcpy in acconfig.h.
+
+ 3) Stylus Pro printers don't use the 1284.4 packet mode command.
+
+2001-11-03 <rlk@sourceforge.net>
+
+ Files: README (1.84) (+141 -42)
+
+ Some more updates.
+
+2001-11-03 <rlk@sourceforge.net>
+
+ Files: README (1.83) (+35 -12)
+
+ A few more updates for distributors, and about 2880x1440 resolution.
+
+2001-11-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.60) (+2 -1)
+
+ Minor update
+
+2001-11-03 <rlk@sourceforge.net>
+
+ Files: README (1.82) (+110 -2)
+
+ Note genppd nonsense
+
+2001-11-03 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.33) (+127 -6)
+
+ Try harder to force linking against GNU gettext library
+
+2001-11-02 <rlk@sourceforge.net>
+
+ Files: NEWS (1.59) (+58 -29)
+ README (1.81) (+1 -1)
+ debian/README.Debian (1.20) (+7 -7)
+ po/da.po (1.7) (+38 -38)
+ po/en_GB.po (1.72) (+39 -39)
+ po/fr.po (1.14) (+38 -38)
+ po/no.po (1.14) (+38 -38)
+ po/sv.po (1.23) (+38 -38)
+
+ Minor updates
+
+2001-11-02 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.20) (+1 -0)
+ src/ghost/README (1.49) (+1 -0)
+ src/main/printers.xml (1.39) (+5 -5)
+
+ Finish adding Lexmark Z42
+
+2001-11-01 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.63) (+3 -143)
+
+ Removed debug output of printer dots as ppm file.
+
+2001-11-01 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.62) (+108 -32)
+
+ Added adaptions for z42 from Alwin Stolk (p.a.stolk@tmx.nl).
+ Only 300 and 600 DPI mode is working.
+ Photo not already adjusted.
+
+2001-11-01 <rwisi@sourceforge.net>
+
+ Files: src/main/printers.xml (1.38) (+12 -1)
+
+ Added z42 adaptions from Alwin Stolk (p.a.stolk@tmx.nl).
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.93) (+4 -1)
+
+ Support --with-readline=only
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: README (1.80) (+387 -287)
+
+ Add section on readline issues, and reorganize.
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.48) (+56 -31)
+
+ 1440x1440 and 2880x720
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.142) (+5 -5)
+
+ Support 2880x1440 (!) on Stylus C80
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: README (1.79) (+19 -11)
+
+ Version bump
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.41) (+4 -2)
+
+ Update from Mike
+
+2001-11-01 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.92) (+140 -62)
+
+ Try harder to link against libreadline (using -lncurses, -lcurses,
+ -ltermcap, and then just -lreadline), and supply a way for the
+ user to either turn off readline or request linking against specific
+ libraries.
+
+ Use cups-config if it exists.
+
+2001-10-31 <rleigh@sourceforge.net>
+
+ Files: README (1.78) (+1 -1)
+ debian/changelog (1.30) (+1 -0)
+ debian/control.in (1.14) (+1 -1)
+
+ Update Debian packaging to Standards-Version 3.5.6.0
+
+2001-10-31 <rleigh@sourceforge.net>
+
+ Files: debian/control.in (1.13) (+1 -1)
+
+ Update to Standards-Version 3.5.2 (really, this time!)
+
+2001-10-31 <rleigh@sourceforge.net>
+
+ Files: README (1.77) (+9 -4)
+ configure.in.in (1.91) (+13 -12)
+ debian/README.Debian (1.19) (+4 -4)
+ debian/changelog (1.29) (+16 -3)
+ debian/control.in (1.12) (+6 -6)
+ debian/rules (1.26) (+2 -3)
+ src/ghost/README (1.47) (+12 -1)
+
+ Update Debian packaging to Standards-Version 3.5.2, and update package
+ descriptions and documentation for stable release.
+ configure.in.in: change order of calling libtool due to new libtool.m4
+ macros
+
+2001-10-31 <rlk@sourceforge.net>
+
+ Files: README (1.76) (+76 -0)
+
+ Packaging information
+
+2001-10-31 <rlk@sourceforge.net>
+
+ Files: doc/FAQ.html (1.8) (+9 -1)
+
+ Common Samba problem
+
+2001-10-30 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.27) (+2 -2)
+
+ Minor typo, to fix VPATH build
+
+2001-10-30 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/.cvsignore (1.4) (+8 -8)
+ doc/users_guide/Makefile.am (1.26) (+6 -6)
+ doc/users_guide/users-guide.sgml (1.1) ( )
+
+ Removed underscores from linkend, ids, and filename per Eric
+
+2001-10-30 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.37) (+7 -7)
+
+ Tweak C70/80 a bit more
+
+2001-10-30 <rlk@sourceforge.net>
+
+ Files: po/.cvsignore (1.8) (+2 -5)
+ po/da.po (1.6) (+1 -1)
+ po/en_GB.po (1.71) (+2 -2)
+ po/fr.po (1.13) (+1 -1)
+ po/no.po (1.13) (+1 -1)
+ po/sv.po (1.22) (+2 -2)
+ scripts/autogen.sh (1.16) (+2 -2)
+ src/main/print-escp2.c (1.141) (+3 -3)
+ src/main/printers.xml (1.36) (+7 -4)
+
+ Retune C80/C70 due to excessive density.
+
+ Minor updates.
+
+2001-10-29 <rlk@sourceforge.net>
+
+ Files: src/cups/canon.c (1.3) (+0 -3)
+ src/cups/epson.c (1.3) (+2 -5)
+
+ Remove unused static variable.
+
+2001-10-28 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.90) (+2 -2)
+
+ Bump version
+
+2001-10-28 <rlk@sourceforge.net>
+
+ Files: scripts/autogen.sh (1.15) (+25 -6)
+
+ Check libtool version; fix some URL's
+
+2001-10-28 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.26) (+36 -12)
+ doc/users_guide/Makefile.am (1.25) (+50 -15)
+
+ Fix VPATH build. Don't build gimpprint.pdf by default.
+
+2001-10-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.140) (+4 -4)
+
+ The Stylus Color apparently has no trouble at all with microweave at
+ 360 DPI.
+
+2001-10-28 <rlk@sourceforge.net>
+
+ Files: doc/.cvsignore (1.6) (+15 -0)
+
+ More files to be ignored
+
+2001-10-28 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.89) (+4 -1)
+ po/da.po (1.5) (+94 -94)
+ po/en_GB.po (1.70) (+13 -13)
+ po/fr.po (1.12) (+94 -94)
+ po/no.po (1.12) (+94 -94)
+ po/sv.po (1.21) (+95 -95)
+ src/cups/Makefile.am (1.40) (+12 -6)
+ src/cups/genppd.c (1.32) (+13 -2)
+
+ Build genppd with included gettext, to permit us to use LANGUAGE
+ to set the language of the PPD files. This gets around any
+ dependencies on what locales happen to be installed at a given
+ site.
+
+2001-10-28 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.25) (+6 -6)
+
+ Minor fixes
+
+2001-10-28 <sharkey@sourceforge.net>
+
+ Files: configure.in.in (1.18.2.10) (+2 -2)
+
+ Accept dvipdfm as a viable alternative to dvipdf.
+
+2001-10-28 <sharkey@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.24.2.1) (+1 -1)
+
+ Add new directory from mainline to debian branch.
+
+2001-10-27 <sharkey@sourceforge.net>
+
+ Files: AUTHORS (1.8.4.2) (+3 -0)
+ NEWS (1.8.2.8) (+159 -28)
+ README (1.46.2.8) (+70 -58)
+ configure.in.in (1.18.2.9) (+116 -24)
+ debian/README.Debian (1.2.2.8) (+5 -3)
+ po/da.po (1.4.2.1) (+0 -0)
+ po/fr.po (1.11.2.1) (+0 -0)
+ po/no.po (1.11.2.1) (+0 -0)
+ po/sv.po (1.20.2.1) (+1 -1)
+ src/cups/Makefile.am (1.17.2.9) (+47 -14)
+ src/cups/genppd.c (1.7.2.6) (+124 -68)
+ src/foomatic/Makefile.am (1.4.2.6) (+5 -4)
+ src/foomatic/foomatic-printermap (1.2.2.5) (+12 -1)
+ src/ghost/.cvsignore (1.3.4.3) (+1 -0)
+ src/main/print-escp2.c (1.24.2.8) (+1694 -1481)
+ src/main/print-pcl.c (1.8.4.7) (+134 -48)
+
+ Sync debian branch with b4.
+
+2001-10-27 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.139) (+2 -2)
+
+ Improve 360x180 draft mode
+
+2001-10-27 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.119) (+2 -2)
+ configure.in.in (1.88) (+2 -2)
+ gimp.m4 (1.4) (+2 -2)
+ debian/control.in (1.11) (+1 -1)
+ debian/copyright (1.4) (+1 -1)
+ doc/FAQ.html (1.7) (+3 -3)
+ doc/Makefile.am (1.24) (+2 -2)
+ doc/README.maintaining (1.8) (+16 -16)
+ doc/dither.texi (1.3) (+1 -1)
+ doc/escp2.texi (1.4) (+3 -3)
+ doc/functions.texi (1.6) (+1 -1)
+ doc/gimpprint.texi (1.6) (+3 -3)
+ doc/gpl.texi (1.2) (+2 -2)
+ doc/integrating.texi (1.2) (+2 -2)
+ doc/programs.texi (1.6) (+3 -3)
+ doc/users_guide/README (1.6) (+9 -10)
+ doc/users_guide/figures/README (1.3) (+1 -1)
+ include/gimp-print/gimp-print.h.in (1.7) (+5 -5)
+ scripts/autogen.sh (1.14) (+2 -2)
+ scripts/gimp.m4 (1.2) (+2 -2)
+ src/cups/command.txt (1.2) (+1 -1)
+ src/cups/genppd.c (1.31) (+5 -5)
+ src/escputil/escputil.c (1.39) (+5 -5)
+ src/ghost/README (1.46) (+9 -9)
+ src/ghost/README.bsd (1.2) (+5 -5)
+ src/ghost/debian-patch (1.3) (+3 -3)
+ src/ghost/gdevstp.c (1.14) (+2 -2)
+ src/main/gimpprint-config.in (1.5) (+2 -2)
+ src/main/gimpprint.m4 (1.6) (+5 -5)
+ src/main/print-canon.c (1.71) (+2 -2)
+ src/main/print-escp2.c (1.138) (+2 -2)
+ src/main/print-lexmark.c (1.61) (+90 -90)
+ src/testpattern/testpatterny.y (1.3) (+6 -6)
+ test/parse-bjc (1.3) (+3 -3)
+ test/parse-escp2 (1.5) (+1 -1)
+
+ Strip trailing whitespace
+
+2001-10-27 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.69) (+603 -582)
+
+ Update en_GB translation escputil strings
+
+2001-10-26 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.137) (+2 -3)
+
+ Improve 720 DPI quality on C80.
+
+2001-10-26 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.4) (+113 -113)
+ po/en_GB.po (1.68) (+114 -114)
+ po/fr.po (1.11) (+113 -113)
+ po/no.po (1.11) (+113 -113)
+ po/sv.po (1.20) (+114 -114)
+
+ Updates
+
+2001-10-25 <rlk@sourceforge.net>
+
+ Files: NEWS (1.58) (+11 -9)
+
+ Updates for beta-4
+
+2001-10-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.136) (+4 -5)
+
+ Improve 720 and 1440x720 on C80.
+
+2001-10-25 <rlk@sourceforge.net>
+
+ Files: NEWS (1.57) (+3 -2)
+
+ Minor update
+
+2001-10-25 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.3) (+1 -1)
+ po/en_GB.po (1.67) (+2 -2)
+ po/fr.po (1.10) (+1 -1)
+ po/no.po (1.10) (+1 -1)
+ po/sv.po (1.19) (+2 -2)
+ src/main/print-escp2.c (1.135) (+26 -7)
+ src/main/printers.xml (1.35) (+4 -1)
+
+ Improve C80 print quality.
+
+ Update translations.
+
+2001-10-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.134) (+13 -34)
+
+ At least partially tune the C80.
+
+2001-10-24 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.60) (+69 -8)
+
+ Corrected problem with page eject.
+
+2001-10-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.56) (+59 -32)
+ README (1.75) (+16 -13)
+ debian/README.Debian (1.18) (+1 -1)
+ src/cups/Makefile.am (1.39) (+2 -2)
+ src/ghost/README (1.45) (+0 -1)
+
+ Prep for beta-4.
+
+ Use LC_PATH rather than LANG for building PPD files.
+
+2001-10-23 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.23) (+20 -12)
+
+ Minor cleanup
+
+2001-10-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.133) (+2 -2)
+
+ Minor error on C80.
+
+2001-10-23 <rlk@sourceforge.net>
+
+ Files: po/da.po (1.2) (+1 -1)
+ po/en_GB.po (1.66) (+6 -9)
+ po/fr.po (1.9) (+1 -1)
+ po/no.po (1.9) (+1 -1)
+ po/sv.po (1.18) (+337 -121)
+
+ Updates
+
+2001-10-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.132) (+3 -3)
+
+ Don't turn off black ink on C80 until we understand it.
+
+2001-10-22 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.22) (+7 -1)
+
+ Note why we override a standard target (mostlyclean-aminfo).
+
+2001-10-22 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.118) (+12 -1)
+
+ Don't require actually rerunning autogen when configure.in.in changes;
+ rebuild configure.in automatically if it is available.
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.21) (+53 -59)
+
+ Build all versions of the manual.
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: po/.cvsignore (1.7) (+1 -0)
+
+ Danish translation
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: doc/new-printer.texi (1.5) (+11 -2)
+
+ branches: 1.5.2; 1.5.8;
+ Updates
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.87) (+2 -2)
+ po/da.po (1.1) ( )
+ po/en_GB.po (1.65) (+2 -2)
+ po/fr.po (1.8) (+1 -1)
+ po/no.po (1.8) (+1 -1)
+ po/sv.po (1.17) (+2 -2)
+
+ Danish translation
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.86) (+32 -20)
+
+ Cleanup
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.131) (+2 -1)
+
+ Comment cleanup
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.64) (+200 -113)
+ po/fr.po (1.7) (+85 -93)
+ po/no.po (1.7) (+85 -93)
+ po/sv.po (1.16) (+86 -104)
+
+ Updates
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.26) (+8 -2)
+
+ branches: 1.26.2; 1.26.4;
+ 473849 Indexed images print incorrectly in color
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: doc/new-printer.texi (1.4) (+12 -12)
+
+ Capitalization
+
+2001-10-21 <rlk@sourceforge.net>
+
+ Files: doc/new-printer.texi (1.3) (+205 -59)
+
+ Updates to Epson stuff.
+
+2001-10-20 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.130) (+148 -117)
+
+ Specify minimum as well as maximum resolutions (to limit C80 to no
+ less than 360x180). Tested by comparing PPD files with and without
+ the change.
+
+2001-10-19 <rleigh@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.24) (+4 -3)
+
+ Remove incorrect html-stamp usage
+
+2001-10-19 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.28) (+2 -1)
+ debian/control.in (1.10) (+14 -1)
+ debian/gimpprint-doc.doc-base (1.1) ( )
+ debian/rules (1.25) (+3 -1)
+
+ New package gimpprint-doc
+
+2001-10-19 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.85) (+1 -2)
+
+ Remove redundant gzip test, restoring make deb target
+
+2001-10-19 <rleigh@sourceforge.net>
+
+ Files: test/Makefile.am (1.29) (+2 -2)
+
+ Disable run-weavetest dependency which breaks make dist
+
+2001-10-19 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.38) (+3 -3)
+
+ Minor typo
+
+2001-10-18 <rlk@sourceforge.net>
+
+ Files: po/.cvsignore (1.6) (+2 -0)
+ po/en_GB.po (1.63) (+5 -7)
+ po/fr.po (1.6) (+4 -6)
+ po/no.po (1.6) (+4 -6)
+ po/sv.po (1.15) (+5 -7)
+
+ Update
+
+2001-10-18 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.37) (+3 -3)
+
+ Message update.
+
+2001-10-18 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.62) (+106 -182)
+ po/fr.po (1.5) (+113 -183)
+ po/no.po (1.5) (+113 -183)
+ po/sv.po (1.14) (+124 -186)
+
+ Updates
+
+2001-10-18 <rlk@sourceforge.net>
+
+ Files: scripts/autogen.sh (1.13) (+20 -23)
+
+ Remove more bash-isms.
+
+2001-10-17 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.36) (+239 -371)
+
+ Clean up i18n and align routines.
+
+2001-10-17 <easysw@sourceforge.net>
+
+ Files: Makefile.am (1.117) (+2 -2)
+ src/escputil/escputil.c (1.35) (+4 -4)
+
+ Build "doc" directory LAST, since it relies on optional dev tools
+ and should not prevent a full build of the code.
+
+ Change help strings from character arrays to a char pointer. You
+ can't initialize an array with a function call...
+
+2001-10-17 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.17) (+2 -2)
+
+ Fix up headers correctly
+
+2001-10-17 <easysw@sourceforge.net>
+
+ Files: scripts/autogen.sh (1.12) (+10 -12)
+
+ Remove bash-isms from the autogen script - use pipes, etc. just like
+ anyone else.
+
+ Make not having a new enough version of GNU gettext 0.10.38 just a
+ warning, since it doesn't affect the normal build process (you just
+ don't want to create a distribution from it...)
+
+2001-10-17 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.16.2.1) (+27 -5)
+ src/main/print-escp2-data.c (1.1) ( )
+ src/main/print-escp2.c (1.129.2.1) (+35 -2824)
+ src/main/print-escp2.h (1.1) ( )
+
+ Split print-escp2.c into two.
+
+2001-10-17 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.61) (+876 -3)
+ po/fr.po (1.4) (+1058 -156)
+ po/no.po (1.4) (+1054 -154)
+ po/sv.po (1.13) (+904 -3)
+ src/escputil/escputil.c (1.34) (+239 -226)
+
+ Mark escputil for i18n.
+
+2001-10-16 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.33) (+2 -1)
+ src/foomatic/foomatic-printermap (1.19) (+1 -0)
+ src/ghost/README (1.44) (+1 -0)
+ src/main/printers.xml (1.34) (+9 -1)
+
+ Preliminary support for Stylus Photo 820.
+
+2001-10-16 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.20) (+31 -30)
+ doc/users_guide/Makefile.am (1.23) (+26 -13)
+
+ Make clean works fully in maintainer mode
+ VPATH builds create symlinks to docs correctly
+
+2001-10-16 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.60) (+97 -92)
+ po/fr.po (1.3) (+156 -199)
+ po/no.po (1.3) (+154 -197)
+ po/sv.po (1.12) (+41 -4)
+
+ Updates
+
+2001-10-16 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.43) (+1 -0)
+
+ Update for pcl-845
+
+2001-10-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.129) (+3 -3)
+
+ Don't use black ink on certain papers on C80.
+
+2001-10-15 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.59) (+475 -389)
+ po/fr.po (1.2) (+199 -156)
+ po/no.po (1.2) (+197 -154)
+ po/sv.po (1.11) (+199 -155)
+ src/foomatic/foomatic-printermap (1.18) (+1 -0)
+ src/gimp/gimp_main_window.c (1.54) (+22 -22)
+ src/main/print-escp2.c (1.128) (+1172 -1218)
+
+ Mark one more message in gimp_main_window for internationalization.
+
+ Cleanup in Epson driver.
+
+ Add capability for different paper definition for different printers
+ in Epson driver (needed to optimize printing on C80).
+
+2001-10-15 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.27) (+2 -2)
+
+ New upstream release
+
+2001-10-15 <rleigh@sourceforge.net>
+
+ Files: scripts/autogen.sh (1.11) (+2 -2)
+
+ Fix line wrapping
+
+2001-10-15 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.38) (+2 -2)
+ src/cups/genppd.c (1.30) (+29 -18)
+
+ Use LANG for language selection
+
+2001-10-15 <rleigh@sourceforge.net>
+
+ Files: test/Makefile.am (1.28) (+6 -1)
+ test/run-weavetest (1.9) (+3 -1)
+
+ Add run-weavetest message and dependency on escp2-weavetest
+
+2001-10-15 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.47) (+5 -5)
+ src/main/printers.xml (1.33) (+9 -1)
+
+ Added Deskjet 845 (USB version of 842). Fixed the comments in print-pcl.c
+ to match printers.xml.
+
+2001-10-15 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.59) (+1 -16)
+
+ Removed unnecessary lines from hue table.
+
+2001-10-15 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.58) (+142 -16)
+
+ Added printer specific hue table.
+
+2001-10-15 <easysw@sourceforge.net>
+
+ Files: po/en_GB.po (1.58) (+1 -1)
+
+ Change English to English-GB for en_GB catalog...
+
+2001-10-15 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.84) (+3 -3)
+ po/en_GB.po (1.57) (+335 -348)
+ po/fr.po (1.1) ( )
+ po/no.po (1.1) ( )
+ po/sv.po (1.10) (+161 -554)
+ src/cups/Makefile.am (1.37) (+2 -2)
+
+ Add and update language catalogs.
+
+ Ensure that catalogs used by genppd are installed where genppd will
+ find them.
+
+2001-10-15 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.29) (+10 -6)
+
+ A few very minor tweaks:
+
+ 1) Include config.h as the first header file included, per suggestion.
+
+ 2) Comment warning translators how they should translate "English".
+
+2001-10-15 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.28) (+16 -12)
+
+ Robert's fix to genppd looks OK...
+
+2001-10-14 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.57) (+2 -2)
+
+ Corrected problem when printing at the end of the page.
+ Especially when weaving was used, the printer was going into confusion because the bottom margin was too small.
+
+2001-10-14 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.127) (+3 -3)
+
+ Fix the zero margin width tweak.
+
+2001-10-14 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.52) (+2 -2)
+
+ Translate papersize (text) names before returning them to the user.
+
+2001-10-13 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.22) (+7 -7)
+ doc/users_guide/README (1.5) (+3 -8)
+
+ Fixed spacing...updated README
+
+2001-10-13 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.116) (+10 -10)
+ doc/Makefile.am (1.19) (+17 -9)
+ doc/programs.texi (1.5) (+8 -0)
+ src/cups/Makefile.am (1.36) (+4 -4)
+ src/foomatic/Makefile.am (1.14) (+3 -3)
+
+ Use more portable $(RM) instead of 'rm -f'
+ Add reference to SGML users guide to Texinfo manual
+
+2001-10-13 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.21) (+21 -19)
+
+ Clean should not remove the pdf or ps version of the manual, to be
+ consistent with how it treats the html manual. It also can't remove
+ the .eps files, unfortunately.
+
+ New veryclean target does remove all of the above.
+
+ Distribute the html timestamp to inhibit rebuilding in the field.
+
+ Add phony targets.
+
+ Remove unused ps.gz target.
+
+2001-10-13 <rleigh@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.20) (+14 -8)
+
+ Add DESTDIR support to install-data-local and uninstall-local
+
+2001-10-12 <rlk@sourceforge.net>
+
+ Files: src/ghost/.cvsignore (1.6) (+1 -0)
+
+ Updates
+
+2001-10-12 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/.cvsignore (1.3) (+1 -0)
+
+ Updates
+
+2001-10-12 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.115) (+4 -1)
+
+ Debian stuff, from Roger.
+
+2001-10-12 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.32) (+2 -1)
+ src/foomatic/foomatic-printermap (1.17) (+1 -0)
+ src/ghost/README (1.42) (+1 -0)
+ src/main/print-pcl.c (1.46) (+117 -42)
+ src/main/printers.xml (1.32) (+9 -1)
+
+ Support the Stylus Scan 2500
+
+ Add minimum paper sizes for HP printers, from Dave Hill. I'm checking
+ this in because this is needed to work around a CUPS bug (see
+ our bug 470240). The symptoms are that when the number of paper
+ sizes exceeds 94 in the DesignJet 750 PPD file CUPS loses
+ track of all printers in the administrative interface.
+
+2001-10-11 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/.cvsignore (1.2) (+1 -0)
+
+ Ignore html directory
+
+2001-10-11 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.19) (+11 -31)
+
+ Eliminate dependency on specific Linux (much less UNIX) distribution.
+ Preprocess source rather than intermediate file.
+
+2001-10-11 <andystewart@sourceforge.net>
+
+ Files: configure.in.in (1.83) (+5 -1)
+ doc/users_guide/Makefile.am (1.18) (+21 -16)
+
+ PDF users guide builds independently of PS docs. Also, XREF and IMAGEDATA errors are gone.
+
+2001-10-11 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.41) (+6 -5)
+
+ Updates
+
+2001-10-10 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.40) (+2 -2)
+ src/gimp/Makefile.am (1.18) (+4 -5)
+ src/main/print-escp2.c (1.126) (+75 -54)
+ src/main/printers.xml (1.31) (+2 -2)
+
+ Rearrange the resolutions on the very old Epson printers a bit.
+
+ Fix a nit in the printer list, and update a few things.
+
+ make clean in src/gimp should not attempt to build anything.
+
+2001-10-10 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.45) (+12 -1)
+
+ Added workround fix for glossy paper on 812 (and others?). If 600x600
+ requested, drop back to Premium paper.
+
+2001-10-10 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.70) (+26 -31)
+
+ Fix from Peter Missel regarding init stuff: "takes care of the model ID and
+ sets the print quality to 0-Normal. That should do as a quick fix for the
+ upcoming release."
+
+2001-10-07 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.56) (+1 -1)
+ po/sv.po (1.9) (+2 -2)
+
+ Updates
+
+2001-10-07 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.17) (+2 -2)
+
+ Need to remove the doc directory on uninstall.
+
+2001-10-07 <rlk@sourceforge.net>
+
+ Files: README (1.74) (+6 -6)
+
+ A few very minor updates.
+
+2001-10-07 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.16) (+12 -6)
+
+ Assorted minor cleanup and bug fixing.
+
+2001-10-07 <rlk@sourceforge.net>
+
+ Files: po/.cvsignore (1.5) (+1 -0)
+ po/en_GB.po (1.55) (+30 -30)
+ po/sv.po (1.8) (+31 -31)
+
+ Ignore change log
+
+2001-10-07 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.54) (+1 -1)
+ po/sv.po (1.7) (+2 -2)
+ scripts/autogen.sh (1.10) (+9 -0)
+
+ Remove generated po/ChangeLog. This file causes problems because
+ autogen.sh prepends an entry to it every time it's run. The file
+ serves no purpose besides keeping the i18n machinery happy; it can
+ be regenerated by autogen.sh (as we're doing).
+
+2001-10-07 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.56) (+18 -5)
+
+ Handle Gray ink type at z52 (could be an option because color an black are in seperate tanks).
+ Inserted a check for illegal ink types.
+
+2001-10-06 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.15) (+1 -7)
+
+ Removed creation of figures directory in users_guide pdf and eps targets
+
+2001-10-06 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.14) (+6 -21)
+ doc/users_guide/README (1.4) (+2 -2)
+ scripts/autogen.sh (1.9) (+27 -11)
+
+ Tweaked doc/users_guide/Makefile.am and added checks for convert and docbook_4 to scripts/autogen.sh
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/.cvsignore (1.1) ( )
+ doc/users_guide/Makefile.am (1.13) (+6 -1)
+ doc/users_guide/figures/.cvsignore (1.1) ( )
+
+ Updates
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.82) (+18 -1)
+ doc/users_guide/Makefile.am (1.12) (+31 -24)
+
+ Add -without-user-guide.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: README (1.73) (+49 -39)
+
+ Cleanup
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.10) (+3 -0)
+ NEWS (1.55) (+61 -41)
+ po/en_GB.po (1.53) (+21 -21)
+ po/sv.po (1.6) (+2420 -1998)
+ scripts/autogen.sh (1.8) (+148 -0)
+ src/ghost/README (1.39) (+8 -4)
+
+ Update some more documentation.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.69) (+99 -9)
+ src/main/printers.xml (1.30) (+25 -1)
+
+ Support for Canon BJC-210, 240, 250, and improvements for BJC-1000.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.125) (+5 -5)
+
+ Another attempt to fix printing at 720 DPI on Stylus Color Pro and
+ friends.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.11) (+3 -3)
+
+ We do need to distribute the .ps file. Sigh.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.10) (+36 -23)
+
+ * List all of the figures explicitly rather than wildcarding
+
+ * Build and distribute HTML and PDF by default
+
+ * Don't export SGML_CATALOG_FILES (especially not incorrect hardcoded
+ path)
+
+ * Create make install
+
+ * Fix directory permissions botched by the toolchain
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.9) (+2 -2)
+
+ maintainer-clean should clear the html stamp
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.81) (+2 -1)
+
+ Look for ps2pdf for documentation.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.16) (+3 -0)
+
+ Add BJC-210, 240, and 250.
+
+2001-10-06 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.14) (+1 -1)
+
+ Print out all missing drivers before exiting.
+
+2001-10-05 <rleigh@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.8) (+8 -2)
+
+ Distribute the PDF manual
+
+2001-10-05 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.114) (+9 -1)
+ doc/Makefile.am (1.18) (+25 -4)
+ doc/users_guide/Makefile.am (1.7) (+87 -44)
+
+ Add new make targets: pdf and docs
+ Distribute user_guide html manual by default
+ Fix user_guide Makefile.am for VPATH builds
+ Remove users_guide/figures symbolic links for the time being for safety
+ Restore doc/Makefile.am VPATH build
+
+2001-10-04 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.124) (+3 -3)
+
+ Allow softweave printing on first generation printers that should
+ support it.
+
+2001-10-04 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.6) (+2 -3)
+
+ Removing Makefile as it is now built by automake
+
+2001-10-04 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.5) (+3 -3)
+ doc/users_guide/README (1.3) (+8 -0)
+
+ *** empty log message ***
+
+2001-10-04 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/Makefile.am (1.4) (+13 -28)
+ doc/users_guide/README (1.2) (+12 -14)
+ doc/users_guide/figures/README (1.2) (+5 -7)
+
+ Updates to Makefile.am, READMEs, and rename orig source file to remove rev
+
+2001-10-03 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.13) (+1 -1)
+
+ Per recent change in configure.in.in.
+
+2001-10-03 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.113) (+6 -6)
+ configure.in.in (1.80) (+7 -7)
+ doc/Makefile.am (1.17) (+4 -4)
+ doc/users_guide/Makefile.am (1.3) (+4 -4)
+
+ Correct program naming, use variables for perl invocation
+
+2001-10-03 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.79) (+2 -1)
+ doc/Makefile.am (1.16) (+3 -1)
+ doc/users_guide/Makefile.am (1.2) (+54 -13)
+
+ Add users_guide to doc/Makefile.am SUBDIRS
+ Automatically generate EPS and PDF images from PNG source
+ Check for ps2pdf
+ Use html-stamp timestamp
+
+2001-10-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.123) (+2 -2)
+
+ These values are presumed better based on Epson output.
+
+2001-10-02 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.78) (+7 -2)
+ doc/users_guide/Makefile.am (1.1) ( )
+
+ Add preliminary support for the new SGML user guide
+
+2001-10-02 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.112) (+10 -1)
+
+ Use standard Makefile formatting
+
+2001-10-02 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/figures/README (1.1) ( )
+ doc/users_guide/figures/cups_admin.png (1.1) ( )
+ doc/users_guide/figures/cups_admin_device.png (1.1) ( )
+ doc/users_guide/figures/cups_admin_make.png (1.1) ( )
+ doc/users_guide/figures/cups_admin_model.png (1.1) ( )
+ doc/users_guide/figures/cups_admin_success.png (1.1) ( )
+ doc/users_guide/figures/cups_config_printer.png (1.1) ( )
+ doc/users_guide/figures/cups_my_printer.png (1.1) ( )
+ doc/users_guide/figures/cups_printers.png (1.1) ( )
+ doc/users_guide/figures/cups_startup.png (1.1) ( )
+ doc/users_guide/figures/gimp-print-gui-1.png (1.1) ( )
+ doc/users_guide/figures/gimp-print-gui.png (1.1) ( )
+ doc/users_guide/figures/gimp-print-new-printer.png (1.1) ( )
+ doc/users_guide/figures/gimp-print-print-color-adjust.png (1.1) ( )
+ doc/users_guide/figures/gimp-print-setup.png (1.1) ( )
+ doc/users_guide/figures/gimp_image.png (1.1) ( )
+ doc/users_guide/figures/gimp_startup.png (1.1) ( )
+
+ Initial checkin of user's guide
+
+2001-10-02 <andystewart@sourceforge.net>
+
+ Files: doc/users_guide/README (1.1) ( )
+
+ Initial checkin of user's guide
+
+2001-10-02 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.31) (+2 -1)
+ src/foomatic/foomatic-printermap (1.15) (+1 -0)
+ src/ghost/README (1.38) (+3 -1)
+ src/main/printers.xml (1.29) (+9 -1)
+
+ Support for Stylus Scan 2000 (really a Stylus Color 740 inside).
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.30) (+3 -1)
+ src/foomatic/foomatic-printermap (1.14) (+2 -0)
+ src/ghost/README (1.37) (+2 -0)
+ src/main/printers.xml (1.28) (+17 -1)
+
+ Nominal support for Epson Stylus C70 and Photo 810.
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: src/testpattern/testpattern.c (1.6) (+5 -1)
+
+ branches: 1.6.4; 1.6.8;
+ Set a reasonable default resolution for use with Postscript driver.
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.52) (+101 -86)
+
+ Updates
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.51) (+3 -2)
+
+ stp_verify_printer_params should catch attempt to use raw CMYK output
+ with test pattern generator.
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.5) (+231 -273)
+
+ Quoted printable is indeed evil.
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.4) (+383 -320)
+
+ Update
+
+2001-10-01 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.29) (+2 -1)
+ src/ghost/README (1.36) (+315 -304)
+ src/main/print-escp2.c (1.122) (+91 -71)
+ src/main/print-util.c (1.50) (+6 -6)
+
+ Improve Epson Stylus C80 support.
+
+ Enable both weaved and unweaved modes for draft modes, for printers
+ with appropriate requirements.
+
+ Improve paper name descriptions.
+
+2001-09-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.68) (+8 -5)
+ src/main/print-lexmark.c (1.55) (+3 -2)
+
+ 466266 Gimp plug-in crashes with BJC-4400 photo
+
+ The problem is when printing with black-only ink, even though the
+ plugin otherwise thinks it's printing in color. The concept of color
+ vs. black and white is currently static for a given printer; this
+ needs to change. Workaround here forces the output into grayscale
+ in this case.
+
+2001-09-30 <rlk@sourceforge.net>
+
+ Files: test/run-weavetest (1.8) (+2 -2)
+
+ Add Stylus C80 printhead setup
+
+2001-09-30 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.27) (+2 -2)
+
+ Wrong printer ID for Stylus C80.
+
+2001-09-29 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.35) (+10 -4)
+
+ Clarification
+
+2001-09-29 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.22) (+64 -61)
+
+ branches: 1.22.4; 1.22.8;
+ More cleanup
+
+2001-09-28 <rlk@sourceforge.net>
+
+ Files: po/sv.po (1.3) (+1977 -2409)
+
+ Updates
+
+2001-09-27 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.26) (+8 -0)
+
+ Update version number
+ Only use C locale ppd files due to their large size
+
+2001-09-25 <rlk@sourceforge.net>
+
+ Files: src/testpattern/testpattern.c (1.5) (+5 -1)
+
+ Comment.
+
+2001-09-25 <rlk@sourceforge.net>
+
+ Files: po/.cvsignore (1.4) (+1 -0)
+
+ Update
+
+2001-09-25 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.51) (+313 -315)
+ po/sv.po (1.2) (+2409 -1968)
+
+ Update
+
+2001-09-25 <rlk@sourceforge.net>
+
+ Files: NEWS (1.54) (+22 -1)
+ README (1.72) (+1 -1)
+ configure.in.in (1.77) (+2 -2)
+ debian/README.Debian (1.17) (+1 -1)
+ src/ghost/README (1.34) (+2 -2)
+
+ Bump version.
+
+2001-09-24 <rlk@sourceforge.net>
+
+ Files: scripts/autogen.sh (1.7) (+16 -9)
+
+ Require gettext 0.10.38 or higher.
+
+2001-09-24 <mitsch@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.53) (+7 -5)
+
+ Align the "Adjust Output..." button with the output type radio buttons.
+
+2001-09-24 <mitsch@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.19) (+185 -189)
+ src/gimp/gimp_main_window.c (1.52) (+1165 -989)
+
+ General GIMP Plug-In GUI cleanup:
+
+ - fixed gimp_help_set_help_data() usage.
+ - some more gimp_table_attach_aligned() instead of manual attaching.
+ - added a notebook for "printer" and "image/output" options.
+ - changed order of widgets in the "position" frame.
+ - re-packed the "scaling" frame (and renamed it to "size").
+ - general spacing/indentation style unification.
+ - stuff...
+
+2001-09-24 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.54) (+25 -20)
+
+ Reduced the bottom border from 36 to 10.
+ Corrected some printf's.
+
+2001-09-24 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.76) (+2 -2)
+ po/sv.po (1.1) ( )
+ src/foomatic/foomatic-printermap (1.13) (+1 -0)
+ src/ghost/gdevstp.c (1.13) (+70 -33)
+ src/main/print-escp2.c (1.121) (+168 -6)
+ src/main/printers.xml (1.26) (+9 -1)
+
+ Add Swedish translation.
+
+ Preliminary support for Epson Stylus C80.
+
+ Tweak bottom margins on some older Epson printers.
+
+ Fix Ghostscript problem that manifested itself when -sPAPERSIZE was
+ specified. The problem was fairly involved. The fix builds on
+ Richard Wisenoecker's fix from earlier today.
+
+2001-09-23 <rwisi@sourceforge.net>
+
+ Files: src/ghost/gdevstp.c (1.12) (+49 -13)
+
+ Corrected problem with ignored user parameters at the method stp_put_params().
+
+2001-09-22 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.51) (+3 -3)
+
+ Empty strings should not be marked for translation.
+
+2001-09-21 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.50) (+80 -80)
+
+ 4.1.99-b2 release.
+
+2001-09-21 <rlk@sourceforge.net>
+
+ Files: NEWS (1.53) (+14 -9)
+
+ Prep for beta 2.
+
+2001-09-21 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.33) (+7 -6)
+
+ Sync up with most current reality.
+
+2001-09-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.120) (+7 -7)
+
+ Fix Stylus Color 660.
+
+2001-09-20 <rlk@sourceforge.net>
+
+ Files: doc/FAQ.html (1.6) (+54 -0)
+
+ Update for StarOffice
+
+2001-09-20 <rlk@sourceforge.net>
+
+ Files: NEWS (1.52) (+3 -1)
+
+ Minor update.
+
+2001-09-20 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.28) (+4 -4)
+
+ Fix up trademark stuff.
+
+2001-09-19 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.25) (+3 -3)
+
+ Updates from Epson.
+
+2001-09-19 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.12) (+1 -1)
+
+ Update from Till Kamppeter
+
+2001-09-19 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.27) (+67 -24)
+
+ Print a simpler banner
+
+2001-09-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.119) (+77 -67)
+
+ Disable microweave altogether on SC440/460.
+
+2001-09-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.25) (+8 -1)
+ src/main/print-escp2.c (1.118) (+4 -4)
+
+ Back out apparently incorrect changes for sc440/640/660.
+
+2001-09-18 <rleigh@sourceforge.net>
+
+ Files: .cvsignore (1.16) (+1 -0)
+
+ Ignore debian-build
+
+2001-09-18 <rleigh@sourceforge.net>
+
+ Files: doc/README.maintaining (1.7) (+7 -1)
+
+ Add comment about version.texi generation
+
+2001-09-18 <rleigh@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.16) (+2 -2)
+
+ Fix gimp-print-intl-internal.h location
+
+2001-09-18 <rleigh@sourceforge.net>
+
+ Files: debian/README.Debian (1.16) (+4 -2)
+ debian/README.building (1.3) (+20 -3)
+ debian/changelog (1.25) (+6 -2)
+ debian/control.in (1.9) (+1 -0)
+ debian/gimp1.2-print.docs (1.5) (+0 -2)
+ debian/rules (1.24) (+7 -3)
+ doc/.cvsignore (1.5) (+3 -0)
+ doc/Makefile.am (1.15) (+2 -4)
+ doc/README.maintaining (1.6) (+9 -1)
+ doc/programs.texi (1.4) (+0 -6)
+
+ Add images to HTML manual
+ Remove duplicated information in SGML/HTML files
+ Update Debian packaging
+
+2001-09-18 <rleigh@sourceforge.net>
+
+ Files: include/Makefile.am (1.2) (+4 -1)
+ samples/Makefile.am (1.3) (+13 -2)
+
+ Add MAINTAINERCLEANFILES and comments
+
+2001-09-18 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.32) (+6 -7)
+ src/main/print-escp2.c (1.117) (+2 -2)
+
+ The SC660 probably isn't too happy doing microweave either.
+
+2001-09-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.116) (+3 -3)
+
+ Eliminate useless microweave modes from sc440/640.
+
+2001-09-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.115) (+38 -35)
+
+ Fix ink drop sizes for Epson 720
+
+2001-09-17 <rleigh@sourceforge.net>
+
+ Files: .cvsignore (1.15) (+1 -0)
+ Makefile.am (1.111) (+11 -6)
+ po/en_GB.po (1.49) (+99 -143)
+ src/cups/Makefile.am (1.35) (+3 -2)
+ src/foomatic/Makefile.am (1.13) (+3 -2)
+ src/ghost/Makefile.am (1.15) (+3 -2)
+ src/gimp/Makefile.am (1.17) (+3 -2)
+ src/main/Makefile.am (1.27) (+3 -2)
+ src/testpattern/Makefile.am (1.5) (+3 -2)
+ test/Makefile.am (1.27) (+3 -2)
+
+ Remove non-portable 'make -C' usage.
+
+2001-09-17 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.75) (+2 -1)
+ doc/Makefile.am (1.14) (+8 -0)
+ doc/programs.texi (1.3) (+27 -20)
+ scripts/epsf.tex (1.1) ( )
+ scripts/texinfo.tex (1.1) ( )
+
+ Added images to texinfo documentation (dvi/ps format only at this time)
+
+2001-09-17 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.21) (+4 -4)
+
+ Composite black should not be quite as dark as true black.
+
+2001-09-17 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.20) (+38 -20)
+
+ Handle weird margins of 480-style printers.
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.51) (+2 -2)
+
+ Minor typo
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.50) (+3 -0)
+
+ Minor change.
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: NEWS (1.49) (+47 -27)
+
+ Minor updates
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.6) (+0 -0)
+
+ Try yet again to fix the ID string!
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.5) (+2 -2)
+
+ Try again to fix the ID string.
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.4) (+2 -2)
+
+ Fix CVS ID string
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.19) (+39 -58)
+
+ Simplify, and try (if not entirely successfully) to improve performance.
+
+2001-09-16 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.13) (+8 -5)
+ doc/introduction.texi (1.4) (+1 -0)
+ doc/programs.texi (1.2) (+250 -3)
+
+ Add print plugin documentation
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.18) (+32 -46)
+
+ Reduce memory use at oversampled resolutions.
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.17) (+687 -629)
+
+ More cleanup.
+
+2001-09-16 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.16) (+430 -329)
+
+ Start cleanup of unprinter
+
+2001-09-14 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.114) (+2 -2)
+
+ Typo!
+
+2001-09-14 <sharkey@sourceforge.net>
+
+ Files: configure.in.in (1.18.2.8) (+2 -2)
+
+ 4.1.99-b1 is broken as far as the debian packaging is concerned. Roger
+ has already fixed this on the main trunk. Merge in the one line of his
+ patches that seems to be the essential element needed for this release.
+
+2001-09-14 <sharkey@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.17.2.8) (+6 -6)
+
+ Remove duplicated call to genppd.
+
+2001-09-14 <sharkey@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.3.2.1) (+19 -121)
+
+ Add include tree to debian branch.
+
+ There's something to be said for having all files in one huge dir...
+
+2001-09-14 <sharkey@sourceforge.net>
+
+ Files: src/testpattern/testpatterny.y (1.2.2.1) (+1 -1)
+
+ Add testpattern directory to debian branch.
+
+2001-09-14 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.26) (+2 -1)
+ src/foomatic/foomatic-printermap (1.11) (+1 -0)
+ src/ghost/README (1.31) (+229 -234)
+ src/main/print-dither.c (1.44) (+20 -14)
+ src/main/print-escp2.c (1.113) (+129 -140)
+ src/main/printers.xml (1.24) (+9 -1)
+
+ Speed up very fast dither slightly.
+
+ Preliminary support for Epson Stylus C60
+
+ Some reorg of Epson densities/drop sizes (mostly to make it easier to read)
+
+2001-09-14 <sharkey@sourceforge.net>
+
+ Files: AUTHORS (1.8.4.1) (+1 -0)
+ NEWS (1.8.2.7) (+161 -1)
+ README (1.46.2.7) (+20 -7)
+ configure.in.in (1.18.2.7) (+102 -76)
+ debian/README.Debian (1.2.2.7) (+1 -1)
+ man/escputil.1.in (1.2.4.2) (+6 -6)
+ po/POTFILES.in (1.3.4.3) (+0 -7)
+ src/cups/Makefile.am (1.17.2.7) (+22 -4)
+ src/cups/genppd.c (1.7.2.5) (+165 -272)
+ src/foomatic/Makefile.am (1.4.2.5) (+15 -4)
+ src/foomatic/foomatic-printermap (1.2.2.4) (+15 -6)
+ src/ghost/.cvsignore (1.3.4.2) (+1 -0)
+ src/main/print-escp2.c (1.24.2.7) (+1022 -652)
+ src/main/print-pcl.c (1.8.4.6) (+264 -176)
+
+ Merge in main trunk changes to bring the debian branch up to the beta1
+ release.
+
+2001-09-11 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.30) (+3 -4)
+
+ Typo
+
+2001-09-10 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.24) (+5 -2)
+ debian/control.in (1.8) (+1 -1)
+
+ Add gettext Build-Depends as we need DESTDIR support
+
+2001-09-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.49) (+3 -3)
+
+ Paper sizes do *not* get localized for comparison.
+
+2001-09-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.48) (+3 -1)
+
+ Print a message if an argument is supplied for a parameter that has no
+ values.
+
+2001-09-09 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.110) (+25 -6)
+ README (1.71) (+7 -8)
+ configure.in.in (1.74) (+16 -8)
+ debian/README.building (1.2) (+35 -14)
+ po/POTFILES.in (1.10) (+5 -0)
+ po/en_GB.po (1.48) (+77 -77)
+ src/Makefile.am (1.7) (+4 -3)
+
+ Fix gimp-dist target
+ New deb target to build Debian packages, and documentation fix
+ Update Debian and I18N info in README
+
+2001-09-09 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.15) (+15 -5)
+
+ Remove arbitrary (and broken) limit on size of a pass.
+
+2001-09-08 <rlk@sourceforge.net>
+
+ Files: NEWS (1.48) (+25 -3)
+ src/cups/Makefile.am (1.34) (+35 -2)
+ src/ghost/README (1.29) (+57 -79)
+ src/main/print-escp2.c (1.112) (+34 -39)
+
+ Reorganize the Epson Stylus resolutions.
+
+2001-09-08 <easysw@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.33) (+6 -9)
+
+ Only build catalog and PPD files once.
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.109) (+2 -2)
+
+ Oder SUBDIRS according to gettext specifications i.e. po is last
+
+2001-09-08 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.43) (+0 -0)
+
+ branches: 1.43.4; 1.43.6;
+ Restore accidentally deleted file.
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.27) (+4 -2)
+
+ Add comments to ambiguous translatable strings
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: src/gimp/print-intl.h (1.2) (+3 -29)
+ src/gimp/print.c (1.22) (+5 -3)
+
+ Update print-intl.h to use standard i18n header
+ query() in print.c calls gimp_plugin_domain_register()
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: po/POTFILES.in (1.9) (+3 -0)
+ po/en_GB.po (1.47) (+48 -27)
+
+ Update en_GB translation
+ Add genppd.c to POTFILE.in
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: src/main/Makefile.am (1.26) (+1 -2)
+ src/main/gimp-print-internal.h (1.42) (+2 -2)
+ src/main/print-canon.c (1.67) (+3 -3)
+ src/main/print-color.c (1.24) (+3 -3)
+ src/main/print-dither-matrices.c (1.4) (+2 -2)
+ src/main/print-dither.c (1.43) (+3 -3)
+ src/main/print-escp2.c (1.111) (+3 -3)
+ src/main/print-lexmark.c (1.53) (+3 -3)
+ src/main/print-pcl.c (1.44) (+3 -3)
+ src/main/print-ps.c (1.25) (+3 -3)
+ src/main/print-util.c (1.47) (+3 -3)
+ src/main/print-version.c (1.6) (+3 -3)
+ src/main/print-weave.c (1.36) (+3 -3)
+
+ All source uses the new i18n header in include/gimp-print
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: include/gimp-print/Makefile.am (1.2) (+2 -2)
+ include/gimp-print/gimp-print-intl-internal.h (1.1) ( )
+ include/gimp-print/gimp-print-intl.h (1.2) (+4 -4)
+ include/gimp-print/gimp-print.h.in (1.3) (+5 -5)
+
+ branches: 1.2.2; 1.2.6;
+ Add internal i18n header and fix header #defines
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.23) (+3 -2)
+ debian/rules (1.23) (+2 -2)
+
+ Use gettext for i18n
+
+2001-09-08 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.73) (+4 -3)
+
+ Fixed AC_OUTPUT order (VPATH build was broken)
+
+2001-09-08 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.50) (+8 -8)
+
+ Clean up the printer scroller, based on suggestion from Eduardo Perez.
+
+2001-09-07 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.72) (+2 -2)
+
+ Minor typo
+
+2001-09-07 <rlk@sourceforge.net>
+
+ Files: NEWS (1.47) (+10 -1)
+ README (1.70) (+1 -1)
+ configure.in.in (1.71) (+2 -2)
+ debian/README.Debian (1.15) (+1 -1)
+ po/.cvsignore (1.3) (+0 -1)
+ po/en_GB.po (1.46) (+115 -91)
+ src/ghost/README (1.28) (+265 -186)
+ src/main/print-escp2.c (1.110) (+98 -68)
+
+ Add 360x180 and 360x240 draft modes for Epson Stylus printers.
+
+ Improve the Ghostscript README.
+
+ Bump the version.
+
+2001-09-07 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.70) (+2 -2)
+
+ Remove the en_TEST translation
+
+2001-09-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.46) (+7 -6)
+
+ Do verify correctly for Postscript driver.
+
+2001-09-06 <easysw@sourceforge.net>
+
+ Files: configure.in.in (1.69) (+52 -9)
+ cups-gimpprint.list.in (1.1) ( )
+ src/cups/Makefile.am (1.32) (+14 -12)
+ src/cups/genppd.c (1.26) (+83 -54)
+
+ Fix default CFLAGS bug and re-add --enable-debug. Otherwise everything
+ defaults to -g, which is pathetically slow.
+
+ Fix the CUPS library detection code so it actually works on systems
+ other than IRIX and Linux.
+
+ Use the list of available translations in the makefile.
+
+ Add (final?) I18N changes to genppd, as well as changes to PPD
+ rule in makefile.
+
+ Add an EPM list file for distributions.
+
+2001-09-05 <rlk@sourceforge.net>
+
+ Files: include/gimp-print/gimp-print.h.in (1.2) (+118 -16)
+
+ Add comments.
+
+2001-09-05 <rlk@sourceforge.net>
+
+ Files: NEWS (1.46) (+0 -1)
+ po/en_GB.po (1.45) (+342 -68)
+ src/gimp/gimp_color_window.c (1.18) (+66 -66)
+ src/gimp/gimp_main_window.c (1.49) (+202 -188)
+ src/gimp/print_gimp.h (1.20) (+2 -4)
+
+ Convert from GTK tooltips to Gimp tooltips.
+
+ Reduce flashing a bit more in the GUI.
+
+2001-09-03 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.44) (+1 -1)
+
+ Updates
+
+2001-09-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.45) (+3 -0)
+
+ One more missed update.
+
+2001-09-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.44) (+27 -0)
+
+ 4.1.99b1 update
+
+2001-09-03 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.27) (+0 -1)
+
+ Canon printers do not support 180 DPI.
+
+2001-09-03 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.43) (+1 -1)
+
+ Final 4.1.99-b1 updates.
+
+2001-09-02 <rlk@sourceforge.net>
+
+ Files: include/.cvsignore (1.2) (+1 -0)
+ src/foomatic/.cvsignore (1.5) (+1 -0)
+
+ Stuff to ignore
+
+2001-09-02 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.108) (+2 -2)
+ configure.in.in (1.68) (+9 -9)
+ include/.cvsignore (1.1) ( )
+ include/Makefile.am (1.1) ( )
+ include/gimp-print/.cvsignore (1.1) ( )
+ include/gimp-print/Makefile.am (1.1) ( )
+ include/gimp-print/gimp-print-intl.h (1.1) ( )
+ include/gimp-print/gimp-print.h.in (1.1) ( )
+ src/Makefile.am (1.6) (+2 -2)
+ src/cups/genppd.c (1.25) (+4 -4)
+ src/cups/rastertoprinter.c (1.19) (+3 -3)
+ src/foomatic/gimp-print-version.c (1.2) (+2 -2)
+ src/foomatic/paper_sizes.c (1.4) (+2 -2)
+ src/foomatic/printer_options.c (1.9) (+2 -2)
+ src/foomatic/printers.c (1.2) (+2 -2)
+ src/foomatic/stp_limits.c (1.2) (+2 -2)
+ src/ghost/Makefile.am (1.14) (+2 -2)
+ src/gimp/print_gimp.h (1.19) (+2 -2)
+ src/main/print-canon.c (1.66) (+2 -2)
+ src/main/print-color.c (1.23) (+2 -2)
+ src/main/print-dither-matrices.c (1.3) (+2 -2)
+ src/main/print-dither.c (1.42) (+2 -2)
+ src/main/print-escp2.c (1.109) (+2 -2)
+ src/main/print-lexmark.c (1.52) (+2 -2)
+ src/main/print-pcl.c (1.43) (+2 -2)
+ src/main/print-ps.c (1.24) (+2 -2)
+ src/main/print-util.c (1.45) (+2 -2)
+ src/main/print-version.c (1.5) (+2 -2)
+ src/main/print-weave.c (1.35) (+2 -2)
+ src/testpattern/testpattern.c (1.4) (+62 -51)
+ test/escp2-weavetest.c (1.19) (+2 -2)
+ test/testdither.c (1.11) (+3 -3)
+
+ Move gimp-print.h such that <gimp-print/gimp-print.h> works both
+ within the source tree and outside it.
+
+2001-09-02 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.10) (+0 -1)
+
+ Remove duplicate
+
+2001-09-01 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.67) (+2 -2)
+ debian/changelog (1.22) (+10 -1)
+ debian/control.in (1.7) (+3 -3)
+ debian/rules (1.22) (+9 -6)
+ doc/functions.texi (1.5) (+2 -2)
+ po/en_GB.po (1.42) (+114 -107)
+ src/main/Makefile.am (1.25) (+1 -2)
+ src/testpattern/Makefile.am (1.4) (+2 -1)
+
+ Apply ABI version patch, including debian packaging
+
+2001-09-01 <rlk@sourceforge.net>
+
+ Files: src/testpattern/testpattern.c (1.3) (+1 -51)
+ src/testpattern/testpattern.sample (1.4) (+114 -3)
+
+ Cleanup and comment.
+
+2001-09-01 <rlk@sourceforge.net>
+
+ Files: src/testpattern/testpattern.sample (1.3) (+5 -1)
+
+ Comments
+
+2001-08-30 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.66) (+2 -2)
+
+ Require Gimp 1.2.
+
+2001-08-30 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.9) (+1 -0)
+ NEWS (1.43) (+37 -1)
+ README (1.69) (+2 -2)
+ configure.in.in (1.65) (+3 -3)
+ debian/README.Debian (1.14) (+1 -1)
+ po/en_GB.po (1.41) (+276 -284)
+ src/ghost/README (1.26) (+24 -21)
+ src/main/Makefile.am (1.24) (+7 -7)
+
+ Bump version.
+
+2001-08-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.34) (+12 -3)
+
+ Produce better output from assertion failures
+
+2001-08-30 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.48) (+2 -2)
+
+ Change "Adjust color" to more accurate "Adjust output"
+
+2001-08-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.44) (+41 -90)
+
+ Clean up parameter verification.
+
+2001-08-29 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.108) (+4 -4)
+
+ Fencepost error with extra rows
+
+2001-08-29 <rlk@sourceforge.net>
+
+ Files: po/POTFILES.in (1.8) (+0 -6)
+
+ Don't translate test sources.
+
+2001-08-28 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.21) (+7 -7)
+
+ Fix handling of parameters from Gimp scripts
+
+2001-08-28 <rleigh@sourceforge.net>
+
+ Files: lib/libprintut.h (1.6) (+3 -1)
+
+ Correct getopt header inclusion if libc provides getopt
+ Use PACKAGE instead of "gimp-print" for gettext domain name
+
+2001-08-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.107) (+7 -5)
+
+ Typos
+
+2001-08-27 <rlk@sourceforge.net>
+
+ Files: src/testpattern/testpattern.sample (1.2) (+1 -1)
+
+ More fallout from version renumbering.
+
+2001-08-27 <rlk@sourceforge.net>
+
+ Files: src/foomatic/printer_options.c (1.8) (+16 -11)
+
+ Fix output type
+
+2001-08-26 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.51) (+296 -232)
+
+ -solved cmy problem (it causes troubles if head_offset of k is !=0 when printing without k).
+ -introduced "ink_parameter" which holds ink specific parameters (no if/then/else code anymore)
+ Hopefully more logical, now.
+ -sorted z52 and 3200 specific stuff
+
+2001-08-26 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.9) (+1 -0)
+
+ More corrections from Till.
+
+2001-08-26 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.8) (+0 -1)
+
+ Correction per Till Kamppeter
+
+2001-08-25 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.25) (+28 -13)
+ src/ghost/gdevstp.c (1.11) (+17 -3)
+ src/main/print-escp2.c (1.106) (+112 -79)
+ src/main/print-util.c (1.43) (+2 -2)
+ src/printdef/printdefy.y (1.7) (+2 -2)
+
+ Support allowing different margins depending upon the printer
+ parameters, such as quality settings. Some Epson printers allow
+ use of more of the page in softweave mode than if the printer
+ does the weaving (e. g. microweave). Fix the top margin
+ for selected Epson printers, such as the 777 (subject of bug
+ 231885), although more printers need to be fixed up.
+
+ Change the default quality to 360 softweave or microweave on all
+ printers that support this, since the quality will be much better
+ at very little or no cost in performance.
+
+2001-08-25 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.12) (+9 -3)
+ src/foomatic/foomatic-generator.in (1.12) (+22 -10)
+ src/foomatic/printer_options.c (1.7) (+7 -5)
+ src/foomatic/printers.c (1.1) ( )
+
+ Cleanup from namestring changes in alpha-3.
+
+2001-08-25 <rlk@sourceforge.net>
+
+ Files: src/foomatic/.cvsignore (1.4) (+1 -0)
+
+ More things to ignore
+
+2001-08-25 <rlk@sourceforge.net>
+
+ Files: src/testpattern/.cvsignore (1.2) (+4 -0)
+
+ More ignorable stuff
+
+2001-08-24 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.105) (+181 -110)
+ src/main/printers.xml (1.23) (+5 -5)
+
+ Try to fix problems with 480/580 at 720 and above DPI.
+
+ Change default 360 DPI mode to microweave on printers that
+ support it, for better quality.
+
+2001-08-23 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.17) (+1 -2)
+ src/gimp/gimp_main_window.c (1.47) (+12 -5)
+
+ Disable tooltips while using the preview window (very distracting
+ to move the mouse around while the huge tooltip is in your face).
+
+2001-08-23 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.46) (+26 -28)
+
+ Clean up some of the dialogs a bit more.
+
+2001-08-23 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.45) (+25 -42)
+
+ More cleanup
+
+2001-08-22 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.44) (+13 -16)
+
+ More cleanup
+
+2001-08-22 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.43) (+58 -79)
+
+ Smooth drawing even more.
+
+2001-08-22 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.16) (+9 -1)
+ src/gimp/gimp_main_window.c (1.42) (+246 -120)
+ src/gimp/print_gimp.h (1.18) (+3 -4)
+
+ Reduce flashing in the GUI.
+
+2001-08-21 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.41) (+53 -1)
+
+ Add about dialog
+
+2001-08-21 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.25) (+8 -7)
+
+ -u isn't for USB, it's for new printer.
+
+2001-08-21 <rlk@sourceforge.net>
+
+ Files: doc/FAQ.html (1.5) (+31 -0)
+
+ Updates
+
+2001-08-20 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.42) (+25 -10)
+
+ Handle resolutions correctly (without trying to parse them)
+
+2001-08-20 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.40) (+3 -2)
+
+ Try yet again to position the printer crawler correctly.
+
+2001-08-20 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.50) (+37 -18)
+
+ adapted to support minimum paper size
+
+2001-08-19 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.12) (+3 -3)
+ src/gimp/gimp_color_window.c (1.15) (+75 -3)
+ src/gimp/gimp_main_window.c (1.39) (+260 -22)
+ src/gimp/print_gimp.h (1.17) (+5 -1)
+ src/main/print-canon.c (1.65) (+8 -4)
+ src/main/print-escp2.c (1.104) (+126 -93)
+ src/main/print-lexmark.c (1.49) (+8 -4)
+ src/main/print-pcl.c (1.41) (+7 -3)
+ src/main/print-ps.c (1.23) (+7 -3)
+ src/main/print-util.c (1.42) (+6 -4)
+
+ Add tooltips in Gimp plugin.
+
+ Add minimum paper size functionality suggested by Mike Sweet.
+
+ Fix SC480 so it will at least print at 720 DPI. It still needs to be
+ fixed correctly, awaiting word from Epson.
+
+ Add additional dependency to doc build.
+
+2001-08-19 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.48) (+324 -311)
+
+ -little rearrangement of code
+ -put lexmark_res_t into lexmark_cap_t struct;
+ Removed supp_res and lexmark_sub_cap_t from cap_t.
+ This should make it a bit more simple.
+ -changed the media_type handling into that of print-escp2.c;
+ This should be more common and all media dependent data is defined in one struct.
+ -changed handling of ink typ
+ changed to structure similar in print-escp2.c (lexmark_inkname_t)
+ handle head_offset with this structure, too. This shold be the solution for the different head offsets depending if photo or black cartridge is used.
+
+ Still troubles with CMY mode. Because of this always CMYK (CcMmYK) will be used.
+
+2001-08-19 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.47) (+13 -15)
+
+ -speed up printing because of little error with bidirectional printing.
+
+2001-08-18 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.46) (+219 -163)
+
+ -Corrected color mode according printhead.
+ -disabled cmy support. use cmyk always. This fixes problems with CUPS.
+ -different head offsets at black
+ I changed the head_offset entries at lexmark_cap_t to two entries. One for standard cartridge and one for photo cartridge. This should reduce the confusion. These offsets are different because the top position of the black ink is different at photo and black cartridge.
+
+2001-08-18 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.38) (+32 -17)
+
+ Adapted suggestions from Kurt Pfeifle
+
+2001-08-16 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.37) (+4 -2)
+
+ Printer list name needs to match text for gimp_plist_callback to work
+ correctly.
+
+2001-08-14 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.31) (+4 -3)
+
+ Fix a few minor problems.
+
+2001-08-14 <rlk@sourceforge.net>
+
+ Files: NEWS (1.42) (+64 -31)
+ README (1.68) (+5 -1)
+ po/en_GB.po (1.40) (+406 -489)
+
+ More release note updates.
+
+2001-08-14 <rlk@sourceforge.net>
+
+ Files: src/testpattern/Makefile.am (1.3) (+2 -2)
+ src/testpattern/testpattern.c (1.2) (+5 -1)
+ src/testpattern/testpattern.h (1.2) (+1 -5)
+ src/testpattern/testpatternl.l (1.2) (+5 -1)
+ src/testpattern/testpatterny.y (1.2) (+5 -1)
+
+ Putting config.h in the header doesn't seem to work...
+
+2001-08-14 <easysw@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.30) (+19 -4)
+ src/cups/genppd.c (1.24) (+99 -52)
+ src/ghost/README (1.24) (+295 -316)
+ src/main/print-util.c (1.41) (+2 -2)
+
+ genppd can now generate multiple languages - just need to update to
+ point gettext at the right message catalog (however that is done)
+
+ Updated the Ghostscript driver README file for the new option values.
+
+ Updated the cups makefile to generate and install mutiple languages.
+
+2001-08-13 <rlk@sourceforge.net>
+
+ Files: acconfig.h (1.15) (+4 -4)
+ configure.in.in (1.64) (+6 -6)
+ lib/libprintut.h (1.5) (+4 -4)
+ lib/vasprintf.c (1.3) (+1 -1)
+ lib/xmalloc.c (1.4) (+3 -3)
+ lib/xmalloc.h (1.5) (+4 -4)
+ man/escputil.1.in (1.4) (+6 -6)
+ po/POTFILES.in (1.7) (+0 -1)
+ src/cups/cups-calibrate.c (1.2) (+2 -2)
+ src/cups/genppd.c (1.23) (+5 -5)
+ src/cups/rastertoprinter.c (1.18) (+3 -3)
+ src/escputil/escputil.c (1.24) (+2 -2)
+ src/foomatic/foomatic-generator.in (1.11) (+32 -32)
+ src/main/print-canon.c (1.64) (+55 -55)
+ src/main/print-escp2.c (1.103) (+184 -121)
+ src/main/print-lexmark.c (1.45) (+36 -36)
+ src/main/print-pcl.c (1.40) (+2 -2)
+ src/main/print-util.c (1.40) (+248 -126)
+ test/Makefile.am (1.26) (+2 -2)
+ test/bjc-unprint.c (1.6) (+30 -30)
+ test/unprint.c (1.14) (+17 -17)
+
+ Clean up in preparation for 4.1.99-a3.
+
+2001-08-13 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.22) (+63 -217)
+ src/cups/rastertoprinter.c (1.17) (+8 -4)
+ src/foomatic/printer_options.c (1.6) (+5 -4)
+ src/gimp/gimp_color_window.c (1.14) (+19 -5)
+ src/gimp/gimp_main_window.c (1.36) (+119 -67)
+ src/gimp/print_gimp.h (1.16) (+8 -8)
+ src/main/print-canon.c (1.63) (+165 -179)
+ src/main/print-dither.c (1.41) (+16 -7)
+ src/main/print-escp2.c (1.102) (+213 -207)
+ src/main/print-lexmark.c (1.44) (+199 -198)
+ src/main/print-pcl.c (1.39) (+132 -96)
+ src/main/print-ps.c (1.22) (+31 -21)
+ src/main/print-util.c (1.39) (+157 -136)
+
+ I18N changes for GIMP-print.
+
+2001-08-13 <rlk@sourceforge.net>
+
+ Files: test/Makefile.am (1.25) (+3 -5)
+
+ escp2-unprint is obsolete.
+
+2001-08-13 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.41) (+13 -4)
+ src/testpattern/Makefile.am (1.2) (+2 -2)
+
+ Nothing here needs libprintut (and libgimpprint should not require
+ linking against it!)
+
+2001-08-12 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.23) (+3 -3)
+
+ Do status command correctly.
+
+2001-08-12 <rlk@sourceforge.net>
+
+ Files: test/.cvsignore (1.5) (+0 -4)
+
+ Testpattern stuff is moved out.
+
+2001-08-12 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.63) (+19 -2)
+ po/en_GB.po (1.39) (+98 -94)
+ src/Makefile.am (1.5) (+2 -2)
+ src/printdef/Makefile.am (1.7) (+2 -1)
+ src/testpattern/.cvsignore (1.1) ( )
+ src/testpattern/Makefile.am (1.1) ( )
+ src/testpattern/testpattern.c (1.1) ( )
+ src/testpattern/testpattern.h (1.1) ( )
+ src/testpattern/testpattern.sample (1.1) ( )
+ src/testpattern/testpatternl.l (1.1) ( )
+ src/testpattern/testpatterny.y (1.1) ( )
+ test/Makefile.am (1.24) (+4 -14)
+
+ Move testpattern generator to its own directory.
+
+2001-08-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.41) (+21 -10)
+
+ Updates
+
+2001-08-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.101) (+16 -14)
+
+ Tweak 6 pl a bit more.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.10) (+2 -2)
+ src/main/print-escp2.c (1.100) (+2 -1)
+ src/main/printers.xml (1.22) (+9 -9)
+
+ Fix up printer names.
+
+ Be pickier in foomatic-generator (error out if something goes wrong)
+
+ Fix comment breakage.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.99) (+4 -7)
+ src/main/print-util.c (1.38) (+20 -1)
+
+ stp_set_printer_defaults()
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.98) (+11 -17)
+
+ Tune 6 pl printers.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: NEWS (1.40) (+21 -3)
+
+ Updates
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.97) (+31 -9)
+
+ Tune STC x80 printers.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.23) (+4 -0)
+
+ Add 360 SW unidirectional.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.22) (+24 -41)
+
+ Fix status command.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.96) (+100 -46)
+
+ 480/580 type printers apparently need exactly the right number of rows
+ printed; printing less than the number of jets apparently causes
+ problems.
+
+2001-08-11 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.38) (+91 -91)
+ src/escputil/escputil.c (1.21) (+8 -8)
+ src/foomatic/foomatic-printermap (1.7) (+5 -2)
+ src/ghost/README (1.22) (+5 -2)
+ src/main/print-escp2.c (1.95) (+84 -7)
+ src/main/print-pcl.c (1.38) (+25 -1)
+ src/main/printers.xml (1.21) (+31 -3)
+
+ Tune C40/C20/480/580 inks.
+
+ Add HP DesignJet 750.
+
+2001-08-10 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.107) (+4 -4)
+
+ Typos
+
+2001-08-10 <rlk@sourceforge.net>
+
+ Files: test/.cvsignore (1.4) (+4 -0)
+ test/Makefile.am (1.23) (+9 -3)
+
+ Read test patterns and such from an input file.
+
+2001-08-09 <rlk@sourceforge.net>
+
+ Files: README (1.67) (+14 -5)
+ doc/FAQ.html (1.4) (+88 -28)
+
+ Some documentation enhancements from Dennis Powell's column on
+ LinuxPlanet.
+
+2001-08-08 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.13) (+94 -64)
+
+ Improve ink constants.
+
+ Better debugging messages.
+
+ Allow specification of form factor for old printers.
+
+2001-08-08 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.14) (+2 -33)
+ configure.in.in (1.62) (+18 -32)
+ debian/rules (1.21) (+1 -2)
+ lib/xmalloc.h (1.4) (+2 -2)
+ po/en_GB.po (1.37) (+55 -55)
+
+ configure.in.in: Fix small bugs in configure.in.in, and upgrade for 2.50 compatibility
+ acconfig.h: remove redundant entries
+
+2001-08-08 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.94) (+65 -45)
+
+ Provisional fix for STC 480/580.
+
+2001-08-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.93) (+29 -13)
+
+ Improve behavior of STC 480/580.
+
+ Stub code to put printer and driver information in the file header;
+ need confirmation from Epson that it's safe before we enable it.
+
+2001-08-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.37) (+2 -2)
+
+ Speed up papersize handling a lot in genppd. This isn't thread-safe,
+ but overall gimp-print isn't thread-safe either. We could make it
+ thread-safe by putting a mutex around this, if we really cared to.
+
+2001-08-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.40) (+14 -2)
+
+ Try to do light ink handling a bit more reasonably in CMYK mode.
+
+2001-08-07 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.12) (+62 -16)
+
+ If base resolution is <720DPI, all old Epson printers should be
+ printing at base resolution (it's only 1440 DPI that needs special
+ hacks).
+
+2001-08-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.22) (+8 -18)
+ test/Makefile.am (1.22) (+7 -3)
+
+ Print a test pattern.
+
+ Make CMYK-16 be completely uncorrected, to make it useful for testing
+ and such.
+
+2001-08-04 <rlk@sourceforge.net>
+
+ Files: src/ghost/gdevstp.c (1.10.2.1) (+34 -3)
+ src/main/print-color.c (1.21.2.1) (+117 -15)
+ src/main/print-util.c (1.36.2.1) (+2 -2)
+
+ First work on custom LUT
+
+2001-08-04 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.40) (+3 -2)
+ src/main/print-canon.c (1.62) (+28 -105)
+ src/main/print-pcl.c (1.37) (+38 -74)
+ src/main/print-util.c (1.36) (+18 -1)
+
+ Use stp_deprintf rather than #ifdef DEBUG. Haven't fixed Lexmark
+ up yet because there's more complicated debugging stuff in there.
+
+2001-08-04 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.39) (+10 -8)
+ src/main/print-escp2.c (1.92) (+11 -9)
+ src/main/print-lexmark.c (1.43) (+4 -4)
+ src/main/print-weave.c (1.33) (+4 -4)
+
+ 447865 print-weave addresses too many print heads
+
+ The problem here is that the weave code defines the head offset to be
+ an array of 8 offsets; everything else uses 7 heads (channels). The
+ Lexmark driver was confusing two different things, but having a
+ different number of head offsets is a sure way to cause confusion.
+
+ Also don't offset the top when printing in black and white only on
+ ESC 480/580. When printing with black-only ink, that printer has a
+ "normal" head.
+
+2001-08-03 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.106) (+26 -9)
+ configure.in.in (1.61) (+53 -30)
+ po/en_GB.po (1.36) (+1 -1)
+ scripts/patch-gimp (1.1) ( )
+ src/Makefile.am (1.4) (+5 -2)
+
+ Patch the gimp distribution a bit more intelligently.
+
+2001-08-03 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.35) (+1 -1)
+ src/cups/Makefile.am (1.29) (+3 -1)
+ src/foomatic/Makefile.am (1.11) (+7 -2)
+
+ Build PPD's and foomatic data during build rather than install.
+
+2001-08-02 <rlk@sourceforge.net>
+
+ Files: NEWS (1.39) (+33 -1)
+ README (1.66) (+1 -1)
+ debian/README.Debian (1.13) (+1 -1)
+
+ Bump version.
+
+2001-08-01 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-printermap (1.6) (+9 -2)
+
+ Updates from Till.
+
+2001-08-01 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.91) (+4 -17)
+ src/main/printers.xml (1.20) (+2 -2)
+
+ Fix the STC500 problem correctly.
+
+2001-08-01 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.34) (+95 -95)
+ src/main/print-escp2.c (1.90) (+16 -3)
+ src/main/printers.xml (1.19) (+2 -2)
+ test/unprint.c (1.11) (+2 -2)
+
+ Fix STC 500.
+
+ Clean up comment.
+
+2001-07-31 <rleigh@sourceforge.net>
+
+ Files: debian/README.building (1.1) ( )
+
+ Update building README
+
+2001-07-31 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.89) (+128 -159)
+
+ Separate printers which understand 4-byte page dimension from those
+ that accept only 2-byte page dimension.
+
+ Remove the special vertical zero-margin code, which was just causing
+ problems.
+
+2001-07-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.36) (+1 -6)
+
+ Fix generation of paper sources for Laserjet 4L.
+
+2001-07-29 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.105) (+5 -2)
+
+ Add working gimp-dist support
+
+2001-07-29 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.21) (+1 -1)
+
+ Update version to 4.1.99-a3-1
+
+2001-07-29 <easysw@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.35) (+55 -6)
+
+ Robert beat me to the default InputSlot bug! :)
+
+ Add missing media sizes from LaserJet drivers (should have them mostly
+ covered now...)
+
+2001-07-29 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.34) (+2 -2)
+
+ Return the correct default for InputSlot.
+
+2001-07-28 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.10) (+51 -13)
+
+ Print a bit more information.
+
+2001-07-28 <rlk@sourceforge.net>
+
+ Files: test/parse-escp2 (1.4) (+5 -1)
+
+ Verbose option
+
+2001-07-28 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.60) (+4 -4)
+ src/cups/rastertoprinter.c (1.16) (+12 -44)
+ src/ghost/gdevstp.c (1.10) (+5 -3)
+ src/gimp/print-image-gimp.c (1.5) (+6 -4)
+ src/main/print-canon.c (1.61) (+3 -2)
+ src/main/print-escp2.c (1.88) (+3 -2)
+ src/main/print-lexmark.c (1.42) (+3 -2)
+ src/main/print-pcl.c (1.33) (+3 -2)
+ src/main/print-ps.c (1.21) (+5 -3)
+
+ Allow image layer to cleanly abort printing. Reviewed by Roger Leigh.
+
+2001-07-27 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.20) (+5 -334)
+
+ Back out ink change code, which will not work without packet mode
+ support.
+
+2001-07-27 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.19) (+44 -6)
+
+ Experimental cartridge changing code
+
+2001-07-26 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.59) (+4 -4)
+ debian/changelog (1.20) (+3 -2)
+ debian/rules (1.20) (+5 -1)
+ po/en_GB.po (1.33) (+91 -91)
+
+ Put samples/profile.jpg into cupsys-driver-gimpprint debian package
+
+2001-07-24 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.87) (+2 -2)
+
+ 480/580 should support draft mode printing.
+
+2001-07-24 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.86) (+6 -2)
+
+ Fix 480/580 positioning for real (from Jason Pearce).
+
+2001-07-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.85) (+5 -2)
+
+ Adjust 980 densities per Thomas Tonino and Brad Bosch.
+
+2001-07-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.84) (+25 -25)
+
+ Stylus Photo 1270 (and very likely every printer using the 1999
+ command set) can print more than 44" long.
+
+2001-07-23 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.6) (+93 -2)
+ README (1.46.2.6) (+42 -31)
+ configure.in.in (1.18.2.6) (+42 -7)
+ debian/README.Debian (1.2.2.6) (+1 -1)
+ lib/vasprintf.c (1.1.4.1) (+3 -3)
+ src/cups/Makefile.am (1.17.2.6) (+1 -1)
+ src/cups/genppd.c (1.7.2.4) (+398 -181)
+ src/foomatic/Makefile.am (1.4.2.4) (+8 -4)
+ src/foomatic/foomatic-printermap (1.2.2.3) (+6 -0)
+ src/main/print-escp2.c (1.24.2.6) (+151 -35)
+ src/main/print-pcl.c (1.8.4.5) (+26 -14)
+
+ Merge in alpha 2 from the mainline.
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: test/.cvsignore (1.3) (+1 -0)
+
+ More things that should be ignored.
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: src/foomatic/.cvsignore (1.3) (+1 -0)
+ src/ghost/.cvsignore (1.5) (+1 -0)
+
+ Something else that needs to be ignored.
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: src/cups/.cvsignore (1.4) (+1 -0)
+
+ More stuff to ignore.
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: doc/.cvsignore (1.4) (+5 -0)
+
+ A few more files we want to ignore.
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: samples/.cvsignore (1.1) ( )
+
+ .cvsignore
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.21) (+35 -19)
+
+ More minor updates.
+
+2001-07-22 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.20) (+6 -9)
+
+ No longer supports 180x120.
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.32) (+1 -1)
+
+ Update
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.21) (+3 -3)
+
+ Const correctness
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: NEWS (1.38) (+7 -16)
+ src/escputil/escputil.c (1.18) (+16 -7)
+
+ 480/580 ink change definitely will not work yet.
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: NEWS (1.37) (+6 -1)
+ README (1.65) (+5 -5)
+ samples/Makefile.am (1.2) (+2 -2)
+ src/main/printers.xml (1.18) (+3 -23)
+
+ Remove duplicate Stylus C20/C40 entries.
+
+ Minor cleanup, prep for 4.1.99-a2.
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.104) (+2 -2)
+ NEWS (1.36) (+27 -11)
+ configure.in.in (1.58) (+19 -2)
+ po/en_GB.po (1.31) (+90 -98)
+ samples/Makefile.am (1.1) ( )
+ samples/colorbars4.png (1.1) ( )
+ samples/colorsweep.png (1.1) ( )
+ samples/profile.jpg (1.1) ( )
+ src/cups/Makefile.am (1.28) (+2 -2)
+
+ Create new samples directory containing various sample images.
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.83) (+3 -5)
+
+ Fix up draft mode on new printers.
+
+2001-07-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.82) (+11 -10)
+
+ Fix certain printers that don't handle ESC(K correctly.
+
+ Improve edge printing for zero-margin printers.
+
+2001-07-20 <easysw@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.27) (+2 -2)
+ src/main/print-color.c (1.21) (+107 -69)
+
+ First run of color conversion optimizations, to improve performance
+ significantly on some systems.
+
+ Add CUPS driver profile image.
+
+2001-07-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.35) (+5 -4)
+ README (1.64) (+9 -2)
+ po/en_GB.po (1.30) (+2 -2)
+ src/ghost/README (1.19) (+368 -196)
+
+ Update some README's.
+
+2001-07-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.81) (+7 -1)
+
+ Try (again) to fix zero margin printing.
+
+2001-07-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.20) (+11 -3)
+
+ Scale CMYK by density, too.
+
+2001-07-18 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.19) (+1 -1)
+
+ Change upstream version to correct format
+
+2001-07-18 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.29) (+242 -242)
+
+ updates
+
+2001-07-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.34) (+26 -7)
+
+ Updates
+
+2001-07-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.33) (+7 -0)
+ configure.in.in (1.57) (+4 -1)
+ lib/libprintut.h (1.4) (+5 -2)
+ lib/vasprintf.c (1.2) (+3 -3)
+ src/cups/genppd.c (1.20) (+3 -3)
+ src/escputil/escputil.c (1.17) (+14 -3)
+ src/foomatic/foomatic-printermap (1.5) (+2 -0)
+ src/main/print-canon.c (1.60) (+9 -3)
+ src/main/print-dither.c (1.39) (+12 -25)
+ src/main/print-escp2.c (1.80) (+3 -1)
+ src/main/print-util.c (1.35) (+5 -1)
+ src/main/printers.xml (1.17) (+41 -1)
+
+ Initial support for Epson C20 and C40 printers.
+
+ All printers should now default to 300 or 360 DPI, rather than draft mode.
+
+ CMYK dithering does not add the black back into the colors.
+
+ Check for stdarg/varargs as part of configure process, rather than
+ relying on __STDC__ macro.
+
+ CUPS driver defaults to line art rather than photo color for performance
+ (and correctness).
+
+ Epson driver sets resolution correctly if printing softweave at less
+ than printer resolution.
+
+2001-07-17 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.19) (+133 -93)
+ src/cups/rastertoprinter.c (1.15) (+159 -108)
+ src/main/print-util.c (1.34) (+4 -4)
+
+ Conditionally write stpInkType option.
+
+ Fallback on PPD defaults for STP options.
+
+ Fix missing const from a few functions in print-util.c.
+
+2001-07-17 <easysw@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.16) (+2 -4)
+
+ printer_name wasn't being used...
+
+ index() is a BSD function; use the ANSI strchr() function instead.
+
+2001-07-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.19) (+249 -6)
+
+ Make solid color mode really distinct from line art and from photo mode.
+
+2001-07-17 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.18) (+62 -21)
+ src/main/print-pcl.c (1.32) (+13 -2)
+ src/main/print-util.c (1.33) (+9 -138)
+
+ Restore constness.
+
+ Set up numeric options in PPD files correctly.
+
+ Remove more dead (or not-yet-alive) code.
+
+ Set PCL printers to default to 300 DPI.
+
+2001-07-17 <easysw@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.20) (+2 -2)
+
+ Fix ps_ascii85() - missing file argument...
+
+2001-07-16 <easysw@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.59) (+2 -2)
+ src/main/print-escp2.c (1.79) (+3 -3)
+ src/main/print-lexmark.c (1.41) (+4 -4)
+ src/main/print-ps.c (1.19) (+13 -1)
+ src/main/print-util.c (1.32) (+25 -29)
+
+ Fix compiler warnings and GCCisms.
+
+2001-07-16 <easysw@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.17) (+257 -121)
+ src/cups/rastertoprinter.c (1.14) (+151 -22)
+
+ CUPS driver updates.
+
+2001-07-16 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.15) (+712 -78)
+
+ Untested commands for 480/580 head alignment and cartridge change.
+
+2001-07-15 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.9) (+7 -7)
+
+ Finish fixing color/outputtype
+
+2001-07-15 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.35) (+30 -45)
+
+ Tighten things up in the GUI some...
+
+2001-07-15 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.11) (+0 -0)
+
+ Fix debian packaging (remove README.dither from libgimpprint-dev.docs)
+ Fix HTML manual generation (only regenerate if out of date, or if building
+ in a separate tree
+ Add PostScript documentation option ('make ps')
+ Increment Debian changelog
+
+2001-07-15 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.103) (+4 -1)
+ configure.in.in (1.56) (+10 -6)
+ debian/changelog (1.18) (+2 -1)
+ doc/Makefile.am (1.10) (+40 -15)
+ src/main/Makefile.am (1.23) (+2 -2)
+
+ Fix debian packaging (remove README.dither from libgimpprint-dev.docs)
+ Fix HTML manual generation (only regenerate if out of date, or if building
+ in a separate tree
+ Add PostScript documentation option ('make ps')
+ Increment Debian changelog
+
+2001-07-15 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.8) (+1 -1)
+ src/foomatic/printer_options.c (1.5) (+8 -8)
+
+ OutputType should have been named Color.
+
+2001-07-15 <sharkey@sourceforge.net>
+
+ Files: doc/appendices.texi (1.4) (+3 -0)
+
+ Add chapter and intex tags. (Merge from debian branch.)
+
+2001-07-15 <sharkey@sourceforge.net>
+
+ Files: debian/control.in (1.6) (+2 -2)
+ debian/libgimpprint-dev.docs (1.4) (+0 -1)
+ debian/rules (1.19) (+4 -5)
+
+ Sync mainline branch with changes made on debian branch.
+
+2001-07-15 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.28) (+408 -391)
+
+ Updates
+
+2001-07-15 <rlk@sourceforge.net>
+
+ Files: NEWS (1.32) (+10 -6)
+
+ Update the foomatic data.
+
+2001-07-15 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.10) (+8 -4)
+ src/foomatic/foomatic-generator.in (1.7) (+41 -8)
+ src/foomatic/foomatic-printermap (1.4) (+4 -0)
+ src/foomatic/printer_options.c (1.4) (+17 -6)
+ src/foomatic/stp_limits.c (1.1) ( )
+
+ Fix up options for the current state of the world.
+
+2001-07-14 <rlk@sourceforge.net>
+
+ Files: NEWS (1.31) (+9 -3)
+
+ Shift-drag on the preview.
+
+2001-07-14 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.34) (+68 -38)
+
+ Shift-drag in the GIMP plugin constrains the image to vertical or
+ horizontal motion only.
+
+2001-07-14 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.11) (+1 -1)
+
+ Add support for version numbers containing a "-".
+
+2001-07-14 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.10) (+2 -1)
+
+ Quick fix. Copy out of doc, rather than debian/gimp-print-build/doc
+ when installing the html manual. This is a little weird, but I don't
+ have time to investigate this further and Rager has been rather quiet
+ lately.
+
+2001-07-14 <rlk@sourceforge.net>
+
+ Files: NEWS (1.30) (+23 -6)
+ src/ghost/README (1.18) (+4 -0)
+ src/main/print-escp2.c (1.78) (+129 -20)
+ src/main/printers.xml (1.16) (+35 -1)
+
+ Very preliminary support for the Epson Stylus Pro 10000.
+
+ Explicit support for the Epson Stylus Photo 875/785/895 (no driver
+ changes are required).
+
+2001-07-14 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.38) (+4 -2)
+ src/main/print-weave.c (1.32) (+9 -5)
+
+ Allocate enough (extra) buffer space required for Stylus Photo 480/580
+ type printers.
+
+2001-07-14 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.33) (+135 -70)
+
+ Add vertical center and horizontal center buttons.
+
+ Reorganize some GUI elements.
+
+2001-07-13 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.31) (+8 -8)
+
+ Spell out "inch".
+
+2001-07-11 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.9) (+3 -1)
+
+ Ignore ESCP/2 set printhead speed command.
+
+2001-07-11 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.6) (+7 -6)
+
+ From Till Kamppeter:
+
+ 1. The driver's name in the Foomatic database is "gimp-print", some
+ options refer to "gimp-print-4.1.99-a2"
+
+ 2. Some choices begin with "gimp-print-4.1.99-a2-..." and references to
+ them only with "gimp-print-..." (or vice-versa, I do not remember
+ exactly)
+
+ 3. The paper sizes were not read correctly out of the "paper_sizes"
+ shell program. Once the pipe symbol for the command was missing (which
+ made the source code being read), and second, the way how the lines were
+ evaluated didn't support option names with spaces.
+
+2001-07-10 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.5) (+43 -1)
+ README (1.46.2.5) (+7 -7)
+ configure.in.in (1.18.2.5) (+6 -5)
+ debian/README.Debian (1.2.2.5) (+7 -6)
+ doc/Makefile.am (1.1.2.3) (+25 -11)
+ doc/new-printer.texi (1.2.2.1) (+0 -0)
+ src/cups/Makefile.am (1.17.2.5) (+2 -8)
+ src/main/print-dither.c (1.10.4.5) (+88 -52)
+ src/main/print-escp2.c (1.24.2.5) (+7 -5)
+
+ Merging 4.1.99-a1 into the debian branch.
+
+2001-07-10 <sharkey@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.17.2.4) (+2 -2)
+
+ Temporary workaround for Debian bug #99781. Unset LD_PRELOAD prior to
+ running genppd. This change should stay on the debian-branch branch
+ only as it only effects building Debian packages while running under
+ fakeroot. It's probably harmless, but better safe than sorry.
+
+2001-07-10 <rlk@sourceforge.net>
+
+ Files: NEWS (1.29) (+27 -2)
+ README (1.63) (+4 -4)
+ configure.in.in (1.55) (+3 -3)
+ debian/README.Debian (1.12) (+1 -1)
+
+ Bump version.
+
+2001-07-10 <rlk@sourceforge.net>
+
+ Files: doc/functions.texi (1.4) (+120 -52)
+
+ Add some documentation.
+
+2001-07-10 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.30) (+3 -2)
+
+ Allow use of black and white printing on black and white printers
+ (only grayscale was allowed).
+
+2001-07-10 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.20) (+3 -3)
+
+ Should use stp_allocate_vars() rather than
+ stp_allocate_copy(stp_default_vars()).
+
+2001-07-10 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.32) (+35 -23)
+
+ Move mouse properly in PPI mode.
+
+2001-07-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.31) (+2 -2)
+
+ Fix a typo that causes a very quick seg fault. I wonder why this
+ hadn't happened before; I suppose it's the extra debugging stuff I put
+ in that caused something to be used that hadn't been used before.
+
+2001-07-06 <rlk@sourceforge.net>
+
+ Files: README (1.62) (+14 -2)
+
+ Must reinstall PPD files after upgrading gimp-print.
+
+2001-07-06 <rlk@sourceforge.net>
+
+ Files: README (1.61) (+9 -17)
+ configure.in.in (1.54) (+12 -1)
+ src/ghost/Makefile.am (1.13) (+3 -2)
+ src/ghost/README (1.17) (+97 -57)
+ src/ghost/contrib.mak.addon.in (1.1) ( )
+ src/ghost/contrib.mak.addon.old (1.1) ( )
+ src/ghost/gdevstp.c (1.9) (+5 -1)
+ src/main/gimp-print-internal.h (1.37) (+2 -4)
+ src/main/print-canon.c (1.58) (+8 -8)
+ src/main/print-dither.c (1.38) (+2 -1)
+ src/main/print-lexmark.c (1.40) (+11 -9)
+ src/main/print-pcl.c (1.31) (+14 -13)
+ src/main/print-util.c (1.29) (+11 -11)
+
+ Fix some warnings from Ghostscript 6.51.
+
+ New method of building Ghostscript driver by linking against libgimpprint.
+
+2001-07-06 <gandy@sourceforge.net>
+
+ Files: src/main/printers.xml (1.15) (+2 -2)
+
+ Fixed bjc-7000 gamma as suggested by Bodo Huckestein
+
+2001-07-06 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.57) (+2 -2)
+
+ New density for the BJC7000 in 300x300 (as suggested by Bodo Huckestein)
+
+2001-07-06 <rlk@sourceforge.net>
+
+ Files: NEWS (1.28) (+43 -1)
+ README (1.60) (+7 -7)
+ configure.in.in (1.53) (+5 -4)
+ debian/README.Debian (1.11) (+7 -6)
+ po/en_GB.po (1.27) (+190 -189)
+
+ 4.1.99-a1 (4.2 alpha 1) release.
+
+2001-07-05 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.9) (+3 -2)
+
+ End users are not expected to have texinfo2html.
+
+2001-07-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.30) (+5 -4)
+
+ More debugging info.
+
+2001-07-05 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.8) (+10 -5)
+
+ Error out if any Texinfo files are missing.
+
+2001-07-05 <rlk@sourceforge.net>
+
+ Files: doc/Makefile.am (1.7) (+2 -3)
+
+ types.texi no longer exists; clean up a typo
+
+2001-07-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.37) (+38 -12)
+
+ Performance tweaks.
+
+2001-07-05 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.6) (+1 -1)
+ doc/appendices.texi (1.3) (+1 -1)
+ doc/escp2.texi (1.3) (+3 -3)
+ doc/functions.texi (1.3) (+215 -350)
+ doc/gimpprint.texi (1.5) (+2 -3)
+ doc/indices.texi (1.3) (+2 -2)
+ doc/integrating.texi (1.1) ( )
+ doc/introduction.texi (1.3) (+2 -2)
+ doc/new-printer.texi (1.2) (+3 -3)
+ doc/using.texi (1.3) (+0 -193)
+ doc/weave.texi (1.3) (+3 -3)
+
+ Split using.texi into integrating.texi
+ Move type descriptions into functions.texi
+ Re-order functions
+ Correct node pointers
+
+2001-07-05 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.56) (+101 -44)
+
+ Some more additions to the experimental stuff
+
+ Deactivated 6color printing for the 8200 (still too bugy, we leave that
+ for the development versions)
+
+2001-07-03 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.55) (+131 -2)
+
+ BJC8200: New attempt to make 1200x1200 work with 6colors and DMT
+
+ New experimental stuff for a fundamental change in print-mode definitions
+ (no sweat, it's all #ifdef-ed -- no need to risk anything before the next
+ release ;-)
+
+2001-07-03 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.54) (+2 -2)
+ src/main/printers.xml (1.14) (+2 -2)
+
+ New density and gamma value for the BJC7000 (as suggested by Bodo Huckestein)
+
+2001-07-03 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.53) (+37 -37)
+
+ Added comments to density and bpp entries in printer definitions to make
+ things easier.
+
+2001-07-02 <rleigh@sourceforge.net>
+
+ Files: doc/dither.texi (1.2) (+501 -0)
+ doc/introduction.texi (1.2) (+17 -19)
+
+ Move README.dither into Texinfo manual
+
+2001-07-02 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.13) (+2 -5)
+ configure.in.in (1.52) (+2 -2)
+
+ Remove redundant #defines
+ Remove -ansi from GNUCFLAGS
+
+2001-07-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.52) (+3 -3)
+
+ Fix typo
+
+2001-07-02 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.51) (+17 -1)
+ src/main/printers.xml (1.13) (+2 -2)
+
+ Added printer definition for BJC85 based on BJC4400 (that was used for the
+ BJC85 sofar) to allow for different ink definitions lateron.
+
+2001-07-02 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.50) (+6 -2)
+
+ Rather interpret a resolution "NDPI" as "NDPIxNDPI" instead of messing up.
+
+2001-07-02 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.49) (+12 -12)
+
+ Changed k_upper value for the high quality papers from .9 to .999 as
+ suggested by Robert to fix the mixed black to pure black transition problems
+
+2001-07-02 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.48) (+8 -8)
+
+ Fixed missing DMT modes of some of the models.
+
+2001-07-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.36) (+52 -42)
+
+ Improve print quality with fast and very fast dither in 6-color mode.
+
+2001-07-02 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.31) (+2 -2)
+
+ Silly typo that crept in earlier.
+
+2001-07-01 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.14) (+40 -22)
+
+ Use stdarg for remote mode commands.
+
+2001-07-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.13) (+48 -57)
+ src/gimp/gimp_main_window.c (1.30) (+222 -329)
+ src/gimp/print.c (1.19) (+5 -13)
+ src/gimp/print_gimp.h (1.15) (+5 -2)
+
+ Clean up the duplication between vars and the printer list. This may
+ allow us to further simplify the logic in gimp_main_window.c; that
+ needs some investigation.
+
+2001-07-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.29) (+177 -172)
+
+ Split up preview update.
+
+2001-07-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.12) (+28 -8)
+ src/gimp/gimp_main_window.c (1.28) (+490 -551)
+ src/gimp/print_gimp.h (1.14) (+4 -1)
+
+ Clean up UI initialization.
+
+2001-07-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.27) (+29 -17)
+
+ Use the drawing window more generously.
+
+2001-07-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.26) (+3 -1)
+
+ Preserve the custom page size when switching printers.
+
+2001-06-30 <rlk@sourceforge.net>
+
+ Files: src/main/print-version.c (1.4) (+1 -3)
+
+ No need for unistd.h here.
+
+2001-06-30 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.9) (+1 -3)
+
+ Remove the call to "dh_testversion 2". This is deprecated. Since
+ we builddepend on debhelper >= 2 anyway, it's also entirely unnecessary.
+
+2001-06-30 <sharkey@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.24.2.4) (+803 -337)
+ src/main/print-pcl.c (1.8.4.4) (+195 -135)
+ src/main/print-weave.c (1.12.4.3) (+61 -41)
+ test/Makefile.am (1.9.2.4) (+16 -6)
+ test/unprint.c (1.2.4.2) (+17 -1)
+
+ Merge in 4.1.10 for the 4.1.10-1 debian release.
+
+2001-06-30 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.4) (+111 -1)
+ README (1.46.2.4) (+17 -10)
+ configure.in.in (1.18.2.4) (+68 -106)
+ debian/README.Debian (1.2.2.4) (+1 -1)
+ debian/rules (1.2.2.8) (+2 -1)
+ doc/Makefile.am (1.1.2.2) (+33 -2)
+ po/POTFILES.in (1.3.4.2) (+1 -0)
+ src/cups/Makefile.am (1.17.2.3) (+39 -29)
+ src/cups/genppd.c (1.7.2.3) (+84 -97)
+ src/foomatic/Makefile.am (1.4.2.3) (+33 -13)
+ src/foomatic/foomatic-printermap (1.2.2.2) (+6 -0)
+ src/gimp/print.c (1.4.4.4) (+141 -252)
+ src/main/gimp-print-internal.h (1.15.4.4) (+70 -36)
+ src/main/print-dither.c (1.10.4.4) (+1015 -2504)
+
+ Merge in 4.1.10 for the 4.1.10-1 debian release.
+
+2001-06-24 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.26) (+2 -8)
+
+ Change from `foreign' to `gnu' as cups/ no longer has a separate configure.in
+
+2001-06-24 <rleigh@sourceforge.net>
+
+ Files: doc/using.texi (1.2) (+1 -1)
+
+ Fix typo in AM_PATH_GIMPPRINT definition
+
+2001-06-19 <ttonino@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.77) (+5 -1)
+
+ Added Ilford heavy paper, which applies to both satin and glossy papers
+ with 238 gms weight. This paper does not like pure black and is sensitive
+ to receiving too much ink.
+
+2001-06-19 <ttonino@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.29) (+2 -2)
+
+ Edited typo or search and replace bogosity.
+
+2001-06-19 <easysw@sourceforge.net>
+
+ Files: escputil.c (1.15.2.3) (+3 -1)
+ print-escp2.c (1.265.2.4) (+2 -2)
+
+ Fix init commands for 680/777 (wasn't sending packet mode init command
+ for USB interface...)
+
+ Add 680 and 777 to model list in escputil.
+
+2001-06-17 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.102) (+2 -2)
+ debian/libgimpprint-dev.docs (1.3) (+0 -3)
+
+ Fix debian/control.in parsing in Makefile.am dist-hook rule
+ Remove files from debian/libgimpprint-dev.docs that no longer exist
+ Update debian/README.building.from.CVS to give more accurate details
+
+2001-06-16 <rleigh@sourceforge.net>
+
+ Files: doc/Makefile.am (1.5) (+1 -2)
+ doc/appendices.texi (1.2) (+5 -4)
+ doc/escp2.texi (1.2) (+14 -8)
+ doc/functions.texi (1.2) (+2 -1)
+ doc/indices.texi (1.2) (+1 -1)
+ doc/new-printer.texi (1.1) ( )
+ doc/weave.texi (1.2) (+69 -38)
+
+ Move README.new-printer into Texinfo manual as an appendix
+
+2001-06-16 <rleigh@sourceforge.net>
+
+ Files: doc/.cvsignore (1.3) (+0 -1)
+ doc/Makefile.am (1.4) (+15 -5)
+ doc/appendices.texi (1.1) ( )
+ doc/copying.texi (1.1) ( )
+ doc/dither.texi (1.1) ( )
+ doc/escp2.texi (1.1) ( )
+ doc/functions.texi (1.1) ( )
+ doc/gimpprint.texi (1.4) (+21 -1295)
+ doc/indices.texi (1.1) ( )
+ doc/introduction.texi (1.1) ( )
+ doc/overview.texi (1.1) ( )
+ doc/problems.texi (1.1) ( )
+ doc/programs.texi (1.1) ( )
+ doc/using.texi (1.1) ( )
+ doc/weave.texi (1.1) ( )
+ po/en_GB.po (1.26) (+211 -211)
+
+ Move README.escp2 and README.weave into the Texinfo manual
+ Split Texinfo manual into separate files for ease of maintaining
+
+2001-06-14 <rlk@sourceforge.net>
+
+ Files: test/run-weavetest (1.7) (+7 -1)
+
+ Run quietly by default.
+
+2001-06-14 <rlk@sourceforge.net>
+
+ Files: test/Makefile.am (1.21) (+2 -2)
+
+ run-weavetest is part of tests
+
+2001-06-14 <rleigh@sourceforge.net>
+
+ Files: test/Makefile.am (1.20) (+3 -1)
+
+ Add 'make check' support
+
+2001-06-14 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.36) (+4 -2)
+ src/main/print-escp2.c (1.76) (+2 -3)
+ src/main/print-weave.c (1.28) (+110 -72)
+
+ Further reduce memory consumption, particularly at high resolution.
+
+2001-06-14 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.25) (+3 -3)
+
+ Move the preview correctly when using button 2.
+
+2001-06-13 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.47) (+16 -13)
+
+ * canon_init_printer now produces the same init sequences as version 1.12
+ except for the models BJC-6000, -6100, -6200 (which should work), the
+ BJC-6500 (in non-DMT mode), the BJC-7000 (only pagemargins) and our most
+ favourite, the BJC-8200 (still highly alpha, most propably not working,
+ etc)
+ * reactivated the 300x300 mode for the BJC-8200
+
+2001-06-12 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.11) (+2 -1)
+ src/gimp/gimp_main_window.c (1.24) (+35 -7)
+ src/gimp/print_gimp.h (1.13) (+2 -8)
+
+ Use the correct printer defaults rather than simply the first
+ option in the set.
+
+2001-06-10 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.75) (+2 -3)
+
+ Correct (?) ESC 980 inks in 2880x720 mode.
+
+2001-06-10 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.8) (+49 -19)
+
+ Speed things up in common cases.
+
+ Correct handling of 4-color inks for Epson mode.
+
+2001-06-10 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.7) (+15 -9)
+
+ Inline the most critical functions.
+
+2001-06-10 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.6) (+15 -13)
+
+ Do output more efficiently.
+
+2001-06-10 <rlk@sourceforge.net>
+
+ Files: test/unprint.c (1.5) (+82 -43)
+
+ Handle new command set.
+
+2001-06-10 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.17) (+2 -2)
+
+ Update debian package version
+
+2001-06-09 <rlk@sourceforge.net>
+
+ Files: NEWS (1.27) (+5 -2)
+ README (1.59) (+1 -1)
+ configure.in.in (1.51) (+3 -3)
+ debian/README.Debian (1.10) (+1 -1)
+ po/en_GB.po (1.25) (+1 -1)
+ src/main/print-weave.c (1.27) (+16 -7)
+
+ Gimp-Print 4.1.10 release
+
+2001-06-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.26) (+8 -5)
+
+ Fix more sizing bugs in the weave code.
+
+2001-06-09 <rlk@sourceforge.net>
+
+ Files: NEWS (1.26) (+17 -1)
+ README (1.58) (+1 -1)
+ configure.in.in (1.50) (+3 -3)
+ debian/README.Debian (1.9) (+1 -1)
+ src/main/gimp-print-internal.h (1.35) (+7 -5)
+ src/main/print-weave.c (1.25) (+23 -15)
+
+ Fix crash/possible data corruption in weave code. Under certain
+ circumstances, the weave code isn't allocating enough memory for
+ certain temporary buffers. Verified with Electric Fence.
+
+ Prep for 4.1.9 emergency release.
+
+2001-06-08 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.24) (+4 -4)
+
+ .
+
+2001-06-08 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.12) (+8 -10)
+
+ Build more correctly.
+
+2001-06-08 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.74) (+3 -3)
+
+ Set default density/black to plain paper settings.
+
+2001-06-08 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.73) (+18 -16)
+
+ Don't try to use a paper type that may be nonexistent.
+
+2001-06-08 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.18) (+3 -50)
+
+ Clean up some dead code.
+
+2001-06-08 <rlk@sourceforge.net>
+
+ Files: NEWS (1.25) (+12 -8)
+ po/en_GB.po (1.23) (+87 -87)
+
+ Note improvements in color.
+
+2001-06-07 <rlk@sourceforge.net>
+
+ Files: NEWS (1.24) (+5 -0)
+
+ Start prep for 4.1.8.
+
+2001-06-07 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.23) (+81 -26)
+ src/main/print-escp2.c (1.72) (+61 -34)
+ src/printdef/printdefy.y (1.6) (+3 -3)
+
+ Eliminate flashing in the UI when moving the preview image against
+ the borders of the page; also reduce (and hopefully eliminate) any
+ risk of the preview window locking up. If it does lock up, it can
+ be freed by operating any other control.
+
+ Do some color tuning for paper types.
+
+ Eliminate a warning from printdef.
+
+2001-06-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.18) (+2 -2)
+
+ Use "correct" vars in stp_choose_colorfunc.
+
+2001-06-04 <rleigh@sourceforge.net>
+
+ Files: .cvsignore (1.14) (+1 -0)
+ debian/.cvsignore (1.5) (+1 -0)
+ doc/.cvsignore (1.2) (+3 -0)
+ src/main/.cvsignore (1.4) (+1 -0)
+
+ Update .cvsignore
+
+2001-06-04 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.101) (+2 -2)
+ acconfig.h (1.12) (+1 -4)
+ configure.in.in (1.49) (+1 -5)
+ po/en_GB.po (1.22) (+172 -172)
+
+ Remove GIMP_PRINT_MAINT from configure.in.in
+ Fix sed parsing of debian/changelog in Makefile.am
+
+2001-06-04 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.48) (+1 -14)
+ po/en_GB.po (1.21) (+1 -1)
+ src/cups/Makefile.am (1.25) (+2 -2)
+ src/printdef/printdefy.y (1.5) (+4 -1)
+
+ Remove CUPS_CFLAGS
+ Add prototypes to printdefy.y
+
+2001-06-03 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.47) (+2 -2)
+ src/cups/canon.c (1.2) (+1 -1)
+ src/cups/commandtoepson.c (1.2) (+3 -3)
+ src/cups/epson.c (1.2) (+3 -3)
+ src/cups/genppd.c (1.16) (+3 -3)
+ src/escputil/escputil.c (1.13) (+41 -45)
+ src/foomatic/paper_sizes.c (1.3) (+1 -12)
+ src/foomatic/printer_options.c (1.3) (+2 -2)
+ src/gimp/gimp_color_window.c (1.10) (+12 -2)
+ src/gimp/gimp_main_window.c (1.22) (+4 -4)
+ src/gimp/print.c (1.17) (+6 -5)
+ src/gimp/print_gimp.h (1.12) (+5 -1)
+ src/main/print-canon.c (1.46) (+22 -22)
+ src/main/print-color.c (1.18) (+5 -1)
+ src/main/print-dither.c (1.35) (+12 -9)
+ src/main/print-escp2.c (1.71) (+94 -94)
+ src/main/print-lexmark.c (1.39) (+29 -24)
+ src/main/print-pcl.c (1.30) (+3 -3)
+ src/main/print-ps.c (1.17) (+3 -3)
+ src/main/print-util.c (1.28) (+39 -39)
+ src/main/print-weave.c (1.24) (+3 -3)
+ src/printdef/printdefl.l (1.2) (+16 -3)
+ src/printdef/printdefy.y (1.4) (+4 -4)
+ test/bjc-unprint.c (1.5) (+4 -4)
+ test/pcl-unprint.c (1.5) (+35 -35)
+ test/testdither.c (1.10) (+4 -4)
+
+ Fix a lot of warnings.
+
+ Improve color quality on plain paper with Epson printers.
+
+2001-06-03 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.100) (+2 -2)
+ acconfig.h (1.11) (+3 -9)
+ configure.in.in (1.46) (+31 -64)
+ src/cups/Makefile.am (1.24) (+13 -4)
+ src/escputil/Makefile.am (1.9) (+2 -2)
+ src/escputil/escputil.c (1.12) (+14 -6)
+ src/foomatic/Makefile.am (1.9) (+3 -3)
+ src/gimp/Makefile.am (1.16) (+2 -2)
+ src/gimp/print.c (1.16) (+6 -6)
+ src/gimp/print_gimp.h (1.11) (+3 -2)
+ src/main/Makefile.am (1.22) (+3 -3)
+ src/main/gimp-print-internal.h (1.34) (+6 -2)
+ src/printdef/Makefile.am (1.6) (+2 -2)
+ test/Makefile.am (1.19) (+3 -3)
+ test/bjc-unprint.c (1.4) (+19 -1)
+ test/escp2-weavetest.c (1.18) (+2 -2)
+ test/pcl-unprint.c (1.4) (+13 -2)
+ test/testdither.c (1.9) (+11 -11)
+ test/unprint.c (1.4) (+17 -1)
+
+ Remove CFLAGS debugging and optimisation code from configure.in.in
+ Add missing function prototypes for all functions (except printdef)
+
+2001-06-03 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.20) (+62 -62)
+
+ Updates
+
+2001-06-03 <rlk@sourceforge.net>
+
+ Files: doc/print-main.png (1.2) (+65 -26)
+
+ Update the screen shot.
+
+2001-06-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.23) (+36 -5)
+
+ Latest updates
+
+2001-06-03 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.8) (+2 -2)
+
+ Minor typo
+
+2001-06-03 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.21) (+101 -9)
+
+ Abort an image move operation (with the mouse in the preview window)
+ if another mouse button is pressed.
+
+ The middle mouse button moves the image in increments of the image
+ size.
+
+2001-06-02 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.19) (+140 -140)
+ test/Makefile.am (1.18) (+2 -2)
+
+ Back out distributing test/mixed-color-1bit.ppm wrongly
+
+2001-06-02 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.9) (+1 -3)
+
+ Enable and disable only the things that need to be enabled/disabled.
+
+2001-06-02 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.45) (+30 -29)
+ man/Makefile.am (1.6) (+9 -1)
+ src/cups/Makefile.am (1.23) (+25 -24)
+ src/escputil/Makefile.am (1.8) (+13 -1)
+ src/foomatic/Makefile.am (1.7) (+29 -9)
+ src/ghost/Makefile.am (1.11) (+10 -2)
+ src/gimp/Makefile.am (1.15) (+17 -5)
+ src/main/Makefile.am (1.21) (+23 -2)
+ src/printdef/Makefile.am (1.5) (+10 -1)
+ test/Makefile.am (1.17) (+13 -3)
+
+ Remove conditional compilation definitions out of configure.in into
+ individual Makefiles. Checks are still in configure.in.
+
+2001-06-02 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.99) (+2 -2)
+ po/en_GB.po (1.18) (+407 -258)
+
+ Make debian/changelog parsing safer
+
+2001-06-02 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.33) (+3 -15)
+ src/main/print-canon.c (1.45) (+13 -1)
+ src/main/print-escp2.c (1.70) (+18 -7)
+ src/main/print-weave.c (1.23) (+7 -7)
+
+ Remove the last hard-coded size limits in the core.
+
+2001-06-02 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.10) (+2 -1)
+
+ make clean needs to do print-dither-matrices.c, also.
+
+2001-06-02 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.34) (+253 -661)
+
+ More cleanup.
+
+2001-06-02 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.8) (+20 -1)
+ src/gimp/gimp_main_window.c (1.20) (+5 -1)
+ src/gimp/print_gimp.h (1.10) (+4 -2)
+
+ Disable color-specific sliders in monochrome modes.
+
+2001-06-01 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.44) (+2 -2)
+
+ Build test/testdither with the rest of test/
+
+2001-06-01 <rlk@sourceforge.net>
+
+ Files: scripts/mkchlog (1.2) (+2 -0)
+
+ Strip trailing whitespace.
+
+2001-06-01 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.5) (+1 -1)
+ src/foomatic/foomatic-printermap (1.3) (+6 -0)
+
+ Have the ID's for Stylus Pro printers.
+
+2001-06-01 <rlk@sourceforge.net>
+
+ Files: NEWS (1.22) (+18 -6)
+ README (1.57) (+5 -3)
+ configure.in.in (1.43) (+1 -2)
+ po/POTFILES.in (1.6) (+1 -0)
+ src/cups/genppd.c (1.15) (+83 -94)
+ src/escputil/escputil.c (1.11) (+7 -1)
+ src/foomatic/foomatic-generator.in (1.4) (+1 -1)
+ src/ghost/Makefile.am (1.9) (+2 -2)
+ src/ghost/README (1.16) (+146 -70)
+ src/ghost/devs.mak.addon-5.10 (1.5) (+4 -0)
+ src/gimp/gimp_color_window.c (1.7) (+28 -47)
+ src/gimp/gimp_main_window.c (1.19) (+14 -39)
+ src/gimp/print.c (1.15) (+2 -4)
+ src/gimp/print_gimp.h (1.9) (+44 -2)
+ src/main/Makefile.am (1.20) (+2 -1)
+ src/main/gimp-print-internal.h (1.32) (+47 -21)
+ src/main/print-canon.c (1.44) (+8 -2)
+ src/main/print-dither-matrices.c (1.2) (+61 -0)
+ src/main/print-dither.c (1.33) (+981 -2046)
+ src/main/print-escp2.c (1.69) (+393 -161)
+ src/main/print-lexmark.c (1.38) (+6 -3)
+ src/main/print-pcl.c (1.29) (+7 -1)
+ src/main/print-ps.c (1.16) (+7 -1)
+ src/main/print-util.c (1.27) (+65 -3)
+ src/main/printers.xml (1.12) (+50 -0)
+ test/testdither.c (1.8) (+78 -74)
+
+ Remove check for random function that is no longer used.
+
+ Major cleanup of dither code:
+
+ * Put all of the working data into channels rather than ad hoc CMYK
+ variables.
+
+ * Generalize the dither matrix stuff a bit.
+
+ * Split out dither matrices into their own (new) source file.
+
+ Add support for Epson Stylus Pro printers (untested!).
+
+ Speed up genppd significantly.
+
+ TEMPORARILY remove check for missing drivers in foomatic install.
+ This needs to be restored when we get ID's for the Stylus Pros.
+
+ Finally fix a thorny bug in the GUI that caused options to sometimes
+ be ignored and may have caused crashes (the problem was memory being
+ freed out from under something due to a GUI callback).
+
+ Gray out the paper size entry boxes when they are inactive (when
+ standard page sizes are in use).
+
+ Add paper size entries for roll papers.
+
+ Other miscellaneous cleanup of the GUI.
+
+ Renumber the channels so that black is guaranteed to be channel 0.
+ This simplifies a lot of stuff in the dither code.
+
+ Check that parameters have actually been verified at print time.
+
+ Fix testdither program.
+
+2001-06-01 <rlk@sourceforge.net>
+
+ Files: README (1.55.2.1) (+5 -3)
+
+ Strengthen the language a bit.
+
+2001-06-01 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.3.4.1) (+1 -1)
+
+ Until the Foomatic database is fixed up, don't die because of missing
+ Stylus Pro entries.
+
+2001-06-01 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.16.2.1) (+545 -377)
+
+ Remove a bit more unnecessary stuff.
+
+2001-05-31 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.41.2.1) (+1 -2)
+
+ More cleanup of the dither code.
+
+2001-05-30 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.42) (+18 -9)
+ src/foomatic/Makefile.am (1.6) (+4 -4)
+ src/main/Makefile.am (1.19) (+2 -2)
+ src/main/gimpprint-config.in (1.4) (+1 -1)
+ test/Makefile.am (1.16) (+2 -2)
+
+ Fix library linking problems by use of GIMPPRINT_DEPLIBS
+ Remove duplicate library for --libs in gimpprint-config.in
+
+2001-05-29 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.8.2.1) (+2 -2)
+ src/main/print-dither-matrices.c (1.1) ( )
+
+ Much more cleanup of dither code.
+
+2001-05-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.68.2.9) (+8 -8)
+
+ Start cleaning up the mess in print-dither.
+
+2001-05-28 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.43.2.2) (+7 -1)
+ src/main/print-escp2.c (1.68.2.8) (+8 -1)
+ src/main/print-lexmark.c (1.37.2.1) (+6 -3)
+ src/main/print-ps.c (1.15.2.1) (+7 -1)
+ src/main/print-util.c (1.26.2.2) (+55 -3)
+
+ Verify in the drivers that the parameters have been checked prior to
+ attempting to print.
+
+2001-05-27 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.43.2.1) (+2 -2)
+
+ Use stp_free rather than free everywhere.
+
+2001-05-27 <rlk@sourceforge.net>
+
+ Files: test/Makefile.am (1.15.2.1) (+3 -3)
+
+ Fix link line for escp2-weavetest.
+
+ Fix testdither to comply with new API.
+
+2001-05-27 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.98) (+5 -1)
+ README (1.56) (+1 -1)
+ debian/changelog (1.16) (+6 -0)
+ po/en_GB.po (1.17) (+397 -378)
+
+ Automatically generate debian/changelog during 'make dist'
+
+2001-05-27 <rlk@sourceforge.net>
+
+ Files: NEWS (1.21.2.2) (+14 -6)
+ src/cups/genppd.c (1.14.2.1) (+83 -94)
+ src/main/print-escp2.c (1.68.2.7) (+5 -2)
+ src/main/print-util.c (1.26.2.1) (+11 -1)
+
+ Much better support for roll-feed paper.
+
+ The Gimp plugin now grays out page width & height boxes when they
+ can't be modified.
+
+2001-05-27 <rlk@sourceforge.net>
+
+ Files: NEWS (1.21.2.1) (+10 -6)
+ src/ghost/README (1.15.2.4) (+135 -105)
+ src/main/print-escp2.c (1.68.2.6) (+187 -106)
+
+ Disable softweave on Stylus Pro printers per Mike Sweet recommendation.
+
+2001-05-26 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.15.2.3) (+28 -14)
+ src/main/print-escp2.c (1.68.2.5) (+7 -1)
+
+ Add additional default modes for Stylus Pro series.
+
+2001-05-26 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.15.2.2) (+34 -8)
+
+ Document additional resolutions for Stylus Pro printers.
+
+2001-05-26 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.68.2.4) (+23 -1)
+ src/main/printers.xml (1.11.2.3) (+2 -0)
+
+ Add additional microweave modes.
+
+ Add ID string to printers.xml.
+
+2001-05-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.68.2.3) (+2 -2)
+
+ Set the dot sizes correctly (per the manual) on Stylus Pro printers.
+
+2001-05-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.68.2.2) (+13 -7)
+ src/main/printers.xml (1.11.2.2) (+1 -1)
+
+ Some fixes
+
+2001-05-25 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.15.2.1) (+6 -0)
+ src/main/print-escp2.c (1.68.2.1) (+165 -58)
+ src/main/printers.xml (1.11.2.1) (+48 -0)
+
+ Stylus Pro mods
+
+2001-05-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.43) (+19 -31)
+
+ Don't copy variable block incorrectly.
+
+2001-05-20 <rlk@sourceforge.net>
+
+ Files: NEWS (1.21) (+29 -5)
+ README (1.55) (+13 -8)
+ configure.in.in (1.41) (+4 -4)
+ src/cups/genppd.c (1.14) (+2 -3)
+ src/ghost/README (1.15) (+25 -18)
+ src/ghost/gdevstp.c (1.8) (+7 -1)
+ src/gimp/gimp_main_window.c (1.18) (+41 -36)
+ src/gimp/print-image-gimp.c (1.4) (+5 -5)
+ src/gimp/print.c (1.14) (+66 -66)
+ src/gimp/print_gimp.h (1.8) (+2 -4)
+ src/main/print-canon.c (1.42) (+19 -16)
+ src/main/print-color.c (1.17) (+21 -25)
+ src/main/print-dither.c (1.32) (+6 -18)
+ src/main/print-escp2.c (1.68) (+7 -6)
+ src/main/print-lexmark.c (1.37) (+57 -59)
+ src/main/print-pcl.c (1.28) (+16 -17)
+ src/main/print-ps.c (1.15) (+4 -4)
+ src/main/print-util.c (1.26) (+5 -1)
+
+ Remove Gimp back compatibility code (this now requires the Gimp 1.2
+ or very close to it).
+
+ Move the monochrome option from image type to output type, as part
+ of an overall start on rationalizing the options.
+
+2001-05-20 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.17) (+68 -50)
+
+ Convert printer list to combo.
+
+2001-05-19 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.16) (+152 -43)
+ src/gimp/print.c (1.13) (+66 -131)
+ src/gimp/print_gimp.h (1.7) (+4 -1)
+
+ Capability to add a new printer
+
+2001-05-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.67) (+2 -2)
+
+ Try to tweak PGPP a bit more.
+
+2001-05-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.41) (+50 -50)
+ src/main/print-color.c (1.16) (+4 -5)
+ src/main/print-escp2.c (1.66) (+230 -71)
+ src/main/print-lexmark.c (1.36) (+50 -50)
+ src/main/print-pcl.c (1.27) (+50 -50)
+ src/main/print-util.c (1.25) (+3 -10)
+
+ Change the hue mapping so that the values are expressed as the delta
+ from the correct value. That makes it possible to compose values
+ easily.
+
+ Try to tune Epson premium glossy photo paper. What a bear!
+
+2001-05-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.65) (+41 -17)
+
+ Try to improve color quality for premium glossy. More to come.
+
+2001-05-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.64) (+9 -3)
+
+ Attempt to fix vertical zero margin mode.
+
+2001-05-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.26) (+4 -4)
+
+ Fix symbol names
+
+2001-05-16 <rlk@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.35) (+4 -4)
+
+ Fix up symbol names
+
+2001-05-15 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.40) (+47 -47)
+ src/main/print-color.c (1.15) (+18 -7)
+ src/main/print-dither.c (1.31) (+2 -12)
+ src/main/print-escp2.c (1.63) (+34 -25)
+ src/main/print-lexmark.c (1.34) (+108 -54)
+ src/main/print-pcl.c (1.25) (+108 -54)
+
+ Tweak the color code to try to improve transitions in very dark areas.
+ In particular, very dark gray/black, and nearly pure saturated colors,
+ should be improved somewhat. This may be a bit too dark overall.
+
+ Also, tweak red and green.
+
+2001-05-15 <rlk@sourceforge.net>
+
+ Files: src/gimp/Makefile.am (1.14) (+5 -6)
+
+ The GNU Make 'export' construct is not portable.
+
+2001-05-14 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.62) (+31 -35)
+
+ Try to further improve reds.
+
+2001-05-12 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.13) (+2 -3)
+ src/gimp/gimp_color_window.c (1.6) (+2 -1)
+ src/gimp/gimp_main_window.c (1.15) (+3 -4)
+ src/gimp/print.c (1.12) (+4 -2)
+ src/main/gimp-print-internal.h (1.31) (+10 -2)
+ src/main/print-canon.c (1.39) (+54 -52)
+ src/main/print-color.c (1.14) (+6 -6)
+ src/main/print-dither.c (1.30) (+14 -14)
+ src/main/print-escp2.c (1.61) (+5 -6)
+ src/main/print-lexmark.c (1.33) (+76 -77)
+ src/main/print-pcl.c (1.24) (+36 -35)
+ src/main/print-ps.c (1.14) (+35 -39)
+ src/main/print-util.c (1.24) (+42 -19)
+ src/main/print-weave.c (1.22) (+20 -20)
+
+ Clean up use of stdio all over the place.
+
+ More debugging.
+
+ Remove unnecessary header files from gimp-print.h.
+
+2001-05-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.20) (+8 -3)
+ src/gimp/print-image-gimp.c (1.3) (+17 -14)
+ src/gimp/print.c (1.11) (+3 -3)
+ src/main/gimp-print-internal.h (1.30) (+8 -2)
+ src/main/print-color.c (1.13) (+15 -28)
+ src/main/print-dither.c (1.29) (+52 -49)
+ src/main/print-util.c (1.23) (+42 -9)
+
+ Create a debugging framework rather than #ifdef's everywhere.
+
+2001-05-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.60) (+2 -2)
+
+ Tune PGPP
+
+2001-05-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.59) (+2 -2)
+
+ Fix a broken remote mode command for roll feed paper.
+
+2001-05-12 <rlk@sourceforge.net>
+
+ Files: NEWS (1.19) (+11 -1)
+ README (1.54) (+1 -1)
+ configure.in.in (1.40) (+3 -3)
+ debian/README.Debian (1.8) (+1 -1)
+
+ Bump version.
+
+2001-05-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.58) (+4 -4)
+
+ Fix the definition for enhanced microweave mode (which will eliminate
+ spurious commands intended only for the newest photo printers from
+ being sent to other printers).
+
+2001-05-11 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.39) (+2 -2)
+ debian/changelog (1.15) (+3 -2)
+ debian/control.in (1.5) (+1 -0)
+ debian/rules (1.18) (+2 -1)
+ doc/Makefile.am (1.3) (+4 -3)
+ po/en_GB.po (1.16) (+1 -1)
+
+ configure.in.in: fix incorrect texi2html error message
+ Debian: add new HTML manual to doc-base for libgimpprint-doc
+ doc/Makefile.am: fix html rule to fix VPATH builds
+
+2001-05-09 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.97) (+7 -4)
+ configure.in.in (1.38) (+5 -2)
+ doc/Makefile.am (1.2) (+32 -2)
+ doc/gimpprint.texi (1.3) (+2 -2)
+ po/en_GB.po (1.15) (+1 -1)
+ src/cups/Makefile.am (1.22) (+3 -3)
+
+ Add html generation from Texinfo source
+ Unify dist-hook in all directories
+
+2001-05-09 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.3) (+56 -2)
+ README (1.46.2.3) (+2 -1)
+ configure.in.in (1.18.2.3) (+14 -10)
+ debian/README.Debian (1.2.2.3) (+1 -1)
+ debian/rules (1.2.2.7) (+76 -52)
+ doc/Makefile.am (1.1.2.1) (+1 -1)
+ man/escputil.1.in (1.2.4.1) (+25 -0)
+ src/cups/Makefile.am (1.17.2.2) (+23 -8)
+ src/cups/genppd.c (1.7.2.2) (+49 -16)
+ src/foomatic/Makefile.am (1.4.2.2) (+12 -7)
+ src/ghost/.cvsignore (1.3.4.1) (+1 -0)
+ src/gimp/print.c (1.4.4.3) (+10 -4)
+ src/main/gimp-print-internal.h (1.15.4.3) (+3 -3)
+ src/main/print-dither.c (1.10.4.3) (+1190 -570)
+ src/main/print-escp2.c (1.24.2.3) (+667 -660)
+ src/main/print-pcl.c (1.8.4.3) (+269 -93)
+ test/Makefile.am (1.9.2.3) (+2 -5)
+
+ Merge 4.1.7, prepare for 4.1.7-1 debs.
+
+2001-05-09 <sharkey@sourceforge.net>
+
+ Files: debian/control.in (1.4) (+1 -1)
+
+ Add flex to build depends on the mainline too.
+
+2001-05-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.22) (+2 -2)
+
+ Fix rather silly "initialization".
+
+2001-05-09 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.57) (+12 -12)
+
+ Improve blues
+
+2001-05-06 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.37) (+7 -7)
+ lib/.cvsignore (1.5) (+4 -1)
+ man/.cvsignore (1.3) (+1 -0)
+ man/Makefile.am (1.5) (+2 -2)
+ man/cups-calibrate.8.in (1.2) (+36 -3)
+ man/escputil.1.in (1.3) (+25 -0)
+ man/gimpprint-config.1.in (1.2) (+38 -9)
+ man/gimpprint.3.in (1.1) ( )
+ src/cups/Makefile.am (1.21) (+2 -2)
+ src/escputil/Makefile.am (1.7) (+3 -5)
+ src/foomatic/Makefile.am (1.5) (+2 -5)
+ src/ghost/.cvsignore (1.4) (+1 -0)
+ src/gimp/Makefile.am (1.13) (+3 -5)
+ src/main/.cvsignore (1.3) (+1 -0)
+ src/main/Makefile.am (1.18) (+2 -4)
+ src/printdef/Makefile.am (1.4) (+2 -4)
+ test/Makefile.am (1.15) (+2 -4)
+
+ Update all .cvsignore files
+ I18n fix: Link the the print plugin with $(INTLLIBS)
+ Add manpage man/gimpprint.3.in, and update debian packaging
+ Small Makefile.am cleanup (AM_CPPFLAGS removed)
+
+2001-05-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.56) (+17 -17)
+
+ Improve red and magenta somewhat.
+
+2001-05-06 <rleigh@sourceforge.net>
+
+ Files: README (1.53) (+1 -0)
+
+ Update Debian package summary (add libgimpprint-doc)
+
+2001-05-05 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.96) (+4 -4)
+ configure.in.in (1.36) (+2 -2)
+ src/cups/Makefile.am (1.20) (+17 -7)
+ src/ghost/Makefile.am (1.8) (+6 -2)
+
+ Fix Makefile portability problems to work with Solaris and IRIX make.
+
+2001-05-04 <rlk@sourceforge.net>
+
+ Files: NEWS (1.18) (+13 -9)
+
+ Note fix to 404260
+
+2001-05-04 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.35) (+2 -2)
+ lib/Makefile.am (1.4) (+1 -4)
+
+ Fix gettext header inclusion
+
+2001-05-04 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.14) (+2 -0)
+
+ Fix broken entry
+
+2001-05-03 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.95) (+2 -2)
+ debian/changelog (1.13) (+6 -0)
+ debian/control.in (1.3) (+11 -0)
+ debian/rules (1.17) (+70 -49)
+ doc/gimpprint.texi (1.2) (+1 -2)
+ po/en_GB.po (1.14) (+186 -196)
+
+ Add Debian package libgimpprint-doc, and update debian/rules and
+ debian/control.
+ Update debian/changelog for 4.1.7
+ Fix bad direntry in gimpprint.text
+
+2001-05-03 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.94) (+2 -2)
+ configure.in.in (1.34) (+8 -7)
+ doc/.cvsignore (1.1) ( )
+ doc/Makefile.am (1.1) ( )
+ doc/gimpprint.texi (1.1) ( )
+ doc/gpl.texi (1.1) ( )
+ src/foomatic/.cvsignore (1.2) (+2 -0)
+ src/main/gimpprint-config.in (1.3) (+1 -1)
+
+ Add Texinfo documentation (gimmprint.texi)
+ Correct typo in gimpprint-config.in
+ Add Makefile.am to doc/
+ Use uniform prototype style in gimp-print.h.in, without tabs to enable
+ easy inclusion in Texinfo files.
+
+2001-05-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.17) (+52 -2)
+ README (1.52) (+1 -1)
+ configure.in.in (1.33) (+3 -3)
+ debian/README.Debian (1.7) (+1 -1)
+
+ Prep for 4.1.7.
+
+2001-05-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.55) (+14 -2)
+
+ Print correctly if no ink type parameter is specified.
+
+2001-05-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.12) (+36 -24)
+ src/main/print-dither.c (1.28) (+380 -123)
+
+ Some possibly useful debugging code
+
+2001-05-03 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.13) (+22 -2)
+
+ More comprehensive debugging information
+
+2001-05-03 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.12) (+10 -2)
+
+ Don't output the Custom paper size, which is useless here
+
+2001-05-02 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.14) (+19 -32)
+ src/main/print-dither.c (1.27) (+312 -433)
+ src/main/print-escp2.c (1.54) (+3 -3)
+
+ Improve black transition on variable dot size printers.
+
+ Remove adaptive random and random floyd-steinberg algorithms, which
+ appear to have no advantages whatsoever over their hybrid counterparts.
+
+ Split out ordered print_color function to simplify it some. This will
+ probably reduce the executable a bit and the working set by a little
+ when ordered dither is used.
+
+2001-05-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.10) (+3 -3)
+
+ Display the plugin name correctly
+
+2001-05-01 <rleigh@sourceforge.net>
+
+ Files: src/main/print-util.c (1.21) (+10 -4)
+
+ Only initialise some things once
+
+2001-05-01 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.23) (+78 -55)
+
+ Changed the blank line removal to leave the first blank line in place,
+ this is apparently needed for some broken printers. Made "blank line
+ removal" configurable per-printer & turned it on for all printers that
+ support compression.
+
+ Turned on compression (and blank line removal) for the DJ340, DJ400, DJ500
+ as my documentation says it is supported.
+
+ Changed PCL_STP_PRINTER_TIFF back to PCL_PRINTER_TIFF (over zealous
+ search and destroy!).
+
+2001-04-30 <sharkey@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.4.2.1) (+2 -10)
+ src/foomatic/foomatic-printermap (1.2.2.1) (+0 -0)
+
+ Forgot to use -d in the cvs update, so the new foomatic directory didn't
+ get picked up before. :(
+
+2001-04-30 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.2) (+45 -8)
+ README (1.46.2.2) (+52 -4)
+ configure.in.in (1.18.2.2) (+51 -25)
+ debian/README.Debian (1.2.2.2) (+1 -1)
+ po/POTFILES.in (1.3.4.1) (+3 -3)
+ src/Makefile.am (1.1.4.1) (+2 -2)
+ src/gimp/print.c (1.4.4.2) (+4 -69)
+ src/main/Makefile.am (1.13.4.2) (+2 -2)
+ src/main/gimp-print-internal.h (1.15.4.2) (+45 -19)
+ src/main/print-dither.c (1.10.4.2) (+1254 -506)
+ src/main/print-escp2.c (1.24.2.2) (+508 -492)
+ src/main/print-pcl.c (1.8.4.2) (+41 -31)
+ src/main/print-weave.c (1.12.4.2) (+272 -271)
+ test/Makefile.am (1.9.2.2) (+2 -6)
+
+ Finally get around to syncing debian-branch with 4.1.6.
+
+2001-04-29 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.26) (+15 -26)
+
+ Fix problem with excessive ink in adaptive mode.
+
+ Turn off debug code that was accidentally left on.
+
+2001-04-29 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.29) (+3 -3)
+ src/main/print-canon.c (1.38) (+2 -24)
+ src/main/print-dither.c (1.25) (+37 -29)
+ src/main/print-escp2.c (1.53) (+1 -29)
+ src/main/print-lexmark.c (1.32) (+29 -39)
+ src/main/print-pcl.c (1.22) (+1 -2)
+ src/main/print-util.c (1.20) (+5 -5)
+
+ Finally (!) fix the transitions in ordered dither for real. This
+ allows us to use ordered dither very high up in the range in
+ adaptive hybrid (use error diffusion only in very dark regions).
+ The result is somewhat smoother toning in dark midranges on
+ 6-color printers. It may run a bit faster and use less ink, too.
+
+2001-04-29 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.19) (+6 -1)
+
+ Add correct dependencies on libgimpprint.
+
+2001-04-28 <rlk@sourceforge.net>
+
+ Files: src/ghost/gdevstp.c (1.7) (+2 -1)
+
+ Add call to stp_init()
+
+2001-04-27 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.93) (+3 -5)
+ configure.in.in (1.32) (+5 -2)
+ debian/rules (1.16) (+7 -4)
+ po/en_GB.po (1.13) (+366 -418)
+ src/cups/genppd.c (1.11) (+8 -2)
+ src/cups/rastertoprinter.c (1.12) (+9 -2)
+ src/escputil/Makefile.am (1.6) (+1 -2)
+ src/gimp/Makefile.am (1.12) (+1 -2)
+ src/gimp/print.c (1.9) (+8 -2)
+ src/main/Makefile.am (1.17) (+1 -2)
+ src/main/print-util.c (1.19) (+13 -2)
+ src/printdef/Makefile.am (1.3) (+1 -2)
+ test/Makefile.am (1.14) (+1 -2)
+ test/escp2-weavetest.c (1.17) (+7 -1)
+ test/testdither.c (1.7) (+7 -2)
+
+ src/main/print-util.c: new function stp_init()
+ Use stp_init in all code linked with libgimpprint
+ Small Makefile fixes
+
+2001-04-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.52) (+485 -556)
+
+ Simplify a lot of logic.
+
+2001-04-22 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.13) (+16 -0)
+ src/main/print-dither.c (1.24) (+937 -450)
+ src/main/print-escp2.c (1.51) (+84 -47)
+
+ Enable composite gray (no black ink) printing on Epson printers as an
+ additional option.
+
+2001-04-22 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.10) (+35 -16)
+ src/foomatic/printer_options.c (1.2) (+29 -4)
+ src/ghost/gdevstp.c (1.6) (+3 -2)
+ src/gimp/gimp_color_window.c (1.5) (+57 -56)
+ src/gimp/gimp_main_window.c (1.14) (+100 -116)
+ src/main/print-canon.c (1.37) (+103 -14)
+ src/main/print-escp2.c (1.50) (+64 -18)
+ src/main/print-lexmark.c (1.31) (+97 -14)
+ src/main/print-pcl.c (1.21) (+107 -8)
+ src/main/print-ps.c (1.13) (+70 -8)
+ src/main/print-util.c (1.18) (+185 -2)
+
+ Clean up the architecture for defaults; propagate it to the Foomatic
+ and CUPS data generators.
+
+ Don't allow printing in color on black-only printers.
+
+2001-04-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.12) (+1 -4)
+
+ Remove some useless code
+
+2001-04-21 <rlk@sourceforge.net>
+
+ Files: src/foomatic/paper_sizes.c (1.2) (+2 -2)
+
+ Remove unused variable.
+
+2001-04-21 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.31) (+2 -2)
+
+ Handle the Foomatic stuff more correctly.
+
+2001-04-21 <rlk@sourceforge.net>
+
+ Files: src/foomatic/Makefile.am (1.4) (+11 -3)
+ src/foomatic/foomatic-generator.in (1.3) (+10 -10)
+ src/foomatic/gimp-print-version.c (1.1) ( )
+ src/foomatic/paper_sizes.c (1.1) ( )
+
+ Extract data correctly from the library rather than trying to parse
+ source files.
+
+2001-04-21 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.20) (+103 -48)
+ test/pcl-unprint.c (1.3) (+29 -3)
+
+ Added "Blank line removal" to PCL driver. This should speed up output
+ with large areas of vertical blank space. Modified pcl-unprint to
+ cope with this change!
+
+2001-04-19 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.8) (+3 -3)
+
+ Get rid of a somewhat bogus warning.
+
+2001-04-19 <rlk@sourceforge.net>
+
+ Files: lib/libprintut.h (1.3) (+3 -3)
+
+ Fix declarations (that very few people use)
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.49) (+2 -2)
+
+ Typo
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.48) (+71 -60)
+
+ Vertical zero-margin mode
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.11) (+5 -1)
+
+ Don't have VERSION and RELEASE_DATE when compiling the Ghostscript driver.
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: NEWS (1.16) (+41 -8)
+
+ Prep for 4.1.6.
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: README (1.51) (+4 -1)
+
+ Note absolute requirement for Gimp 1.2.
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.11) (+0 -10)
+
+ Improve quality of Stylus Photo x[789]0.
+
+2001-04-15 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.30) (+2 -2)
+
+ Removed debugging printouts.
+ See prev. version for comments.
+
+2001-04-15 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.29) (+17 -16)
+
+ Found and corrected an heavy bug when printing with 300x600 DPI.
+ Corrected density correction for the different resolutions.
+
+2001-04-15 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.47) (+41 -85)
+
+ Improve 870 etc. colors
+
+2001-04-13 <rlk@sourceforge.net>
+
+ Files: src/main/print-ps.c (1.10) (+3 -2)
+
+ Update ID string in output
+
+2001-04-12 <sharkey@sourceforge.net>
+
+ Files: configure.in.in (1.30) (+10 -22)
+
+ Change some newlines to spaces in the AC_OUTPUT macro. It should be
+ possible to deliminate fields using any whitespace, but gettext
+ 0.10.36 requires spaces around po/Makefile.in.
+
+ Rather than makeing one huge line of text, use mixed delimination, with
+ five reasonably sized lines. This should work as long as po/Makefile.in
+ is *not* the first or last file on a line. (Documented in a comment.)
+
+ Ugh.
+
+2001-04-12 <rlk@sourceforge.net>
+
+ Files: po/POTFILES.in (1.5) (+0 -2)
+ po/en_GB.po (1.12) (+242 -237)
+
+ EOL Gimp 1.0 support
+
+2001-04-12 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.29) (+2 -2)
+ src/gimp/Makefile.am (1.11) (+1 -3)
+ src/gimp/print.c (1.7) (+2 -69)
+ src/gimp/print_gimp.h (1.6) (+1 -13)
+
+ EOL Gimp 1.0 support
+
+2001-04-10 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.36) (+3 -3)
+
+ Bugfix for a segmentation violation
+
+2001-04-10 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.35) (+3 -3)
+
+ Another bgfix to the bitoffset function
+
+2001-04-10 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.34) (+3 -3)
+
+ Bugfix for the bitoffset function
+
+2001-04-09 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.28) (+13 -34)
+
+ Removed warnings,
+ corrected passing of private data to flush_pass().
+
+2001-04-09 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.28) (+3 -3)
+
+ Bump version
+
+2001-04-09 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.33) (+2 -2)
+
+ Better intensity values for the bjc6000
+
+2001-04-08 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.27) (+178 -131)
+
+ Added support for photo cartridge and unidirectional printing.
+
+2001-04-08 <rlk@sourceforge.net>
+
+ Files: README (1.50) (+27 -6)
+
+ Updated installation instructions from Grant.
+
+2001-04-07 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.13) (+9 -7)
+
+ Don't free up strings used by a gtk_combo.
+
+2001-04-07 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.28) (+4 -4)
+ src/main/print-dither.c (1.23) (+56 -56)
+
+ Rename stp_dither_get_{first,last}_bit to stp_dither_get_{first,last}_position.
+
+2001-04-06 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.27) (+6 -8)
+ src/main/print-canon.c (1.32) (+4 -2)
+ src/main/print-dither.c (1.22) (+266 -305)
+ src/main/print-escp2.c (1.46) (+3 -2)
+ src/main/print-lexmark.c (1.26) (+10 -10)
+ src/main/print-pcl.c (1.19) (+9 -7)
+
+ Create separate channel structs for each channel in the dither.
+
+2001-04-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.21) (+6 -4)
+
+ Improve quality of fast dithering, particularly on plain paper
+
+2001-04-04 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.26) (+4 -2)
+ src/main/print-dither.c (1.20) (+128 -17)
+ src/main/print-util.c (1.17) (+150 -118)
+
+ Add capability for different margins for different paper sizes.
+ to address feature request ID 409612.
+
+ Dither code records first and last bit in each row that has any ink.
+ This can be used for various optimizations.
+
+2001-04-03 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.25) (+38 -17)
+
+ Added support for B&W.
+ Photo cartridge is NOT already supported !!!
+
+2001-04-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.19) (+44 -31)
+
+ Improve (I presume) output quality in raw CMYK mode.
+
+2001-04-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.11) (+83 -1)
+ src/main/print-dither.c (1.18) (+664 -1)
+ src/main/print-util.c (1.16) (+2 -2)
+
+ Hacked-up raw CMYK output!
+
+2001-04-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.45) (+5 -8)
+
+ Fix up 720x360
+
+2001-04-03 <rlk@sourceforge.net>
+
+ Files: debian/README.Debian (1.6) (+1 -1)
+
+ Bump version
+
+2001-04-02 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.24) (+605 -1019)
+
+ Some major changes:
+ -replaced weaving by the gimp one
+ -added new resolutions (e.g. 2400x1200 DPI)
+ -added line length check
+
+2001-04-01 <rlk@sourceforge.net>
+
+ Files: NEWS (1.15) (+5 -1)
+ README (1.49) (+1 -1)
+ po/en_GB.po (1.11) (+197 -177)
+ src/ghost/README (1.12) (+68 -32)
+ src/main/print-canon.c (1.31) (+3 -1)
+ src/main/print-dither.c (1.17) (+14 -9)
+ src/main/print-escp2.c (1.44) (+179 -99)
+ src/main/print-lexmark.c (1.23) (+2 -1)
+ src/main/print-pcl.c (1.18) (+2 -1)
+ src/main/print-weave.c (1.21) (+168 -221)
+
+ Bump version.
+
+ Some performance improvements.
+
+2001-04-01 <rlk@sourceforge.net>
+
+ Files: src/Makefile.am (1.3) (+2 -2)
+
+ Rebuild gimp-print.h first.
+
+2001-04-01 <rlk@sourceforge.net>
+
+ Files: src/foomatic/foomatic-generator.in (1.2) (+20 -12)
+ src/foomatic/foomatic-printermap (1.2) (+162 -7)
+
+ Updated printer list from Till Kamppeter.
+
+ Don't allow installation with missing printers. We need to test this
+ during package generation time to make sure users don't get nasty
+ surprises.
+
+ Print useful diagnostics on all die statements.
+
+2001-03-31 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_color_window.c (1.4) (+7 -6)
+ src/gimp/gimp_main_window.c (1.12) (+9 -9)
+ src/gimp/print.c (1.6) (+4 -2)
+ src/main/gimp-print-internal.h (1.25) (+3 -3)
+ src/main/print-canon.c (1.30) (+6 -4)
+ src/main/print-color.c (1.10) (+819 -660)
+ src/main/print-dither.c (1.16) (+249 -265)
+ src/main/print-escp2.c (1.43) (+6 -4)
+ src/main/print-lexmark.c (1.22) (+39 -37)
+ src/main/print-pcl.c (1.17) (+6 -4)
+ src/main/print-ps.c (1.9) (+7 -5)
+ src/main/print-util.c (1.15) (+19 -32)
+ src/printdef/printdef.h (1.5) (+7 -1)
+ test/.cvsignore (1.2) (+1 -0)
+
+ Stage 1 CMYK conversion: switch the color core over to using CMY
+ where the output device is CMY or CMYK. This does not move the
+ CMYK computation (black generation) out of the dither code, and
+ neither does it allow raw CMYK input.
+
+2001-03-31 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.9.2.3) (+7 -7)
+
+ Bug fixes
+
+2001-03-31 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.5.4.1) (+4 -2)
+ src/main/print-canon.c (1.29.2.2) (+6 -5)
+ src/main/print-color.c (1.9.2.2) (+242 -175)
+ src/main/print-escp2.c (1.42.2.2) (+6 -5)
+ src/main/print-lexmark.c (1.21.2.2) (+39 -38)
+ src/main/print-ps.c (1.8.2.1) (+7 -5)
+ src/main/print-util.c (1.14.2.2) (+15 -35)
+
+ Intermediate step
+
+2001-03-31 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.29.2.1) (+2 -1)
+ src/main/print-color.c (1.9.2.1) (+686 -594)
+ src/main/print-escp2.c (1.42.2.1) (+2 -1)
+ src/main/print-lexmark.c (1.21.2.1) (+2 -1)
+ src/main/print-util.c (1.14.2.1) (+11 -4)
+
+ Let's try again with CMY(K)...
+
+2001-03-26 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.24) (+14 -4)
+ src/main/print-canon.c (1.29) (+2 -2)
+ src/main/print-escp2.c (1.42) (+3 -2)
+ src/main/print-pcl.c (1.16) (+2 -2)
+ src/main/print-weave.c (1.20) (+26 -8)
+ test/escp2-weavetest.c (1.16) (+3 -2)
+
+ Add a pack function to the generalized weave.
+
+2001-03-26 <rlk@sourceforge.net>
+
+ Files: README (1.48) (+24 -0)
+ src/main/gimp-print-internal.h (1.23) (+25 -10)
+ src/main/print-escp2.c (1.41) (+3 -2)
+ src/main/print-weave.c (1.19) (+70 -34)
+ test/escp2-weavetest.c (1.15) (+3 -2)
+
+ Generalize the horizontal width and zero-fill code.
+
+ Foomatic instructions in the README.
+
+2001-03-24 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.10) (+96 -96)
+ src/foomatic/Makefile.am (1.3) (+2 -2)
+
+ Fix up foomatic some more.
+
+2001-03-24 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.27) (+21 -2)
+ po/POTFILES.in (1.4) (+3 -1)
+ src/foomatic/Makefile.am (1.2) (+18 -2)
+
+ Fix up foomatic stuff; we just need the last little bits of data.
+
+2001-03-24 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.26) (+16 -1)
+ src/Makefile.am (1.2) (+2 -2)
+ src/foomatic/.cvsignore (1.1) ( )
+ src/foomatic/Makefile.am (1.1) ( )
+ src/foomatic/foomatic-generator.in (1.1) ( )
+ src/foomatic/foomatic-printermap (1.1) ( )
+ src/foomatic/printer_options.c (1.1) ( )
+ test/Makefile.am (1.13) (+2 -6)
+
+ Start adding foomatic back in.
+
+2001-03-24 <rlk@sourceforge.net>
+
+ Files: debian/changelog (1.11.2.1) (+8 -0)
+ debian/control.in (1.1.2.2) (+1 -1)
+ debian/rules (1.8.2.2) (+17 -11)
+ po/en_GB.po (1.6.2.2) (+68 -68)
+ src/ghost/README (1.10.2.1) (+6 -2)
+ src/main/print-canon.c (1.18.2.2) (+549 -78)
+ src/main/print-escp2.c (1.37.2.5) (+89 -77)
+ src/main/print-lexmark.c (1.18.2.2) (+197 -32)
+ src/main/print-util.c (1.11.2.3) (+7 -7)
+
+ Merge up from mainline
+
+2001-03-24 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.37.2.4) (+2 -2)
+
+ Intermediate state
+
+2001-03-24 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.11) (+6 -2)
+ src/gimp/gimp_main_window.c (1.11) (+7 -7)
+ src/main/print-color.c (1.9) (+19 -19)
+ src/main/print-dither.c (1.15) (+19 -10)
+ src/main/print-escp2.c (1.40) (+2 -2)
+
+ Cleanup in the Gimp driver
+
+ Cleanup last remnant "hsv" to hsl
+
+ More safety checks in the dither code
+
+ Disable microweave on the ESC 440.
+
+2001-03-23 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.28) (+23 -20)
+
+ Fixed a memory bug in the new 3-bit folder
+
+2001-03-21 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.27) (+128 -14)
+ test/bjc-unprint.c (1.3) (+19 -16)
+
+ New attempt at getting control of the BJC-8200: Use bit pattern 3/2/3 when
+ stuffing the sizes of three pixels into one byte - the 8200 seems to want
+ it this way.
+ Fixed minor bugs in bjc-unprint.
+
+2001-03-20 <sharkey@sourceforge.net>
+
+ Files: scripts/buildgimpprintdebs (1.1) ( )
+
+ branches: 1.1.2; 1.1.6;
+ Handy script for building Gimp Print debian packages for use with
+ cvs-buildpackage. Care should be used when running this script as
+ it assumes that the directory you're running in is the top of the
+ gimp-print source tree and that the copy is a scratch directory (it
+ will delete some files).
+
+2001-03-20 <sharkey@sourceforge.net>
+
+ Files: debian/changelog (1.12) (+8 -0)
+ debian/cupsys-driver-gimpprint.docs (1.4) (+0 -1)
+ debian/rules (1.15) (+4 -7)
+
+ Merge in changes from Debian branch. Not much is changed, except the
+ NEWS file is used in place of the ChangeLog file.
+
+2001-03-20 <sharkey@sourceforge.net>
+
+ Files: debian/.cvsignore (1.4) (+9 -0)
+
+ Resurrect .cvsignore, and add a few more entries, too.
+
+ This should have been resurrected a log time ago, but I missed it because
+ is began with a ".".
+
+2001-03-19 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.26) (+2 -2)
+ src/main/print-canon.c (1.25) (+35 -7)
+
+ Turn off debug mode
+
+2001-03-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.14) (+2 -2)
+
+ Fix custom paper size.
+
+2001-03-16 <rleigh@sourceforge.net>
+
+ Files: debian/control.in (1.2) (+1 -1)
+
+ Add alternative dependency on ESP cups packages for cupsys-driver-gimpprint
+
+2001-03-16 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.6) (+24 -15)
+
+ Merge in Roger's changes from the mainline, except don't even try to build
+ or install the ChangeLog file. Use the NEWS file as the change log instead.
+
+2001-03-15 <cpbs@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.39) (+91 -79)
+
+ Clean up whitespace.
+ Correct nozzle_spacing comment.
+ Add extra_feed per-printer parameter and use it.
+
+2001-03-13 <rleigh@sourceforge.net>
+
+ Files: debian/rules (1.14) (+17 -8)
+ po/en_GB.po (1.9) (+68 -68)
+
+ Restore CVS build. Call autogen.sh properly.
+
+2001-03-12 <rleigh@sourceforge.net>
+
+ Files: debian/rules (1.13) (+2 -4)
+
+ Remove dependency on configure.in.in
+
+2001-03-12 <rleigh@sourceforge.net>
+
+ Files: debian/rules (1.12) (+4 -4)
+
+ Fix autogen.sh not being run in debian/rules
+
+2001-03-12 <rleigh@sourceforge.net>
+
+ Files: debian/rules (1.11) (+4 -2)
+
+ Run autogen.sh safely
+
+2001-03-12 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.24) (+391 -62)
+
+ Added HSL correction copying from espc2 driver as suggested by Robert
+
+2001-03-12 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.23) (+5 -5)
+
+ Readded resolution 720x360 for models BJC-50 BJC-55 BJC-80 BJC-85 BJC-4400
+
+2001-03-11 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.21) (+197 -32)
+
+ Corrected page border at Z52.
+ Renamed "Photo test mode" to "Check/Clean nozzles".
+ Started to change the weaving (not finished !!)
+
+2001-03-10 <rleigh@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.22) (+2 -6)
+ src/main/print-util.c (1.13) (+6 -6)
+
+ Simplify vasprintf conditional compilation
+
+2001-03-10 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.15) (+10 -5)
+
+ Switch the color mode to monochrome when printing to a black & white printer.
+
+2001-03-10 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.91.2.1) (+23 -10)
+ configure.in.in (1.24.2.1) (+6 -2)
+ debian/control.in (1.1.2.1) (+0 -0)
+ debian/rules (1.8.2.1) (+15 -12)
+ po/en_GB.po (1.6.2.1) (+96 -96)
+ src/main/print-canon.c (1.18.2.1) (+348 -288)
+ src/main/print-color.c (1.7.2.3) (+6 -6)
+ src/main/print-escp2.c (1.37.2.3) (+13 -13)
+ src/main/print-lexmark.c (1.18.2.1) (+16 -26)
+ src/main/print-ps.c (1.7.2.1) (+12 -12)
+ src/main/print-util.c (1.11.2.2) (+25 -10)
+
+ Intermediate merge up with mainline
+
+2001-03-09 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.10) (+2 -1)
+ configure.in.in (1.25) (+6 -2)
+ src/main/Makefile.am (1.16) (+2 -2)
+ src/main/gimp-print-internal.h (1.21) (+7 -2)
+ src/main/print-canon.c (1.22) (+11 -11)
+ src/main/print-color.c (1.8) (+6 -6)
+ src/main/print-dither.c (1.14) (+14 -14)
+ src/main/print-escp2.c (1.38) (+13 -13)
+ src/main/print-lexmark.c (1.20) (+11 -11)
+ src/main/print-pcl.c (1.14) (+17 -17)
+ src/main/print-ps.c (1.8) (+12 -12)
+ src/main/print-util.c (1.12) (+25 -10)
+ src/main/print-weave.c (1.18) (+16 -16)
+
+ Added stp_malloc to print-util.c; all libgimpprint functions use it
+ libgimpprint no longer depends on libprintut.la
+
+2001-03-08 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.92) (+23 -10)
+ debian/rules (1.10) (+8 -5)
+ po/en_GB.po (1.8) (+96 -96)
+
+ ChangeLog generating is more strict
+ Debian packaging requires ChangeLog, and will package ChangeLog
+
+2001-03-07 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.21) (+200 -189)
+
+ Major code cleanup, debugging turned off, removed/renamed most of the ink
+ definitions. Printing on canon models should be back to the stage before
+ yesterday's changes but w/ better infrastructure, allowing for 1/2/3bit
+ printing in CMYK/CcMmYK. Time to really adjust the inkdefinitions now.
+
+2001-03-06 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.20) (+221 -183)
+
+ Added support for more than 2bit/pixel to canon driver.
+
+ Implemented the exact left offset by bitwise shifting of the print-data.
+
+ Revised ink-management to allow for 4/6/7 color inks @ 1/2/3 bit.
+ NOTE!! This change most propably breaks printing on some if not all of
+ the canon models (on the other side, colors haven't been too good
+ anyway...) for the moment.
+
+2001-03-06 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.19) (+15 -4)
+
+ Added feature "CANON_CAP_ACKSHORT"
+ BJC8200: Uses new feature, try to use 3 bit for drop sizes instead of 2
+
+2001-03-06 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.7.2.2) (+49 -48)
+ src/main/print-escp2.c (1.37.2.2) (+107 -107)
+
+ More intermediate work on cmyk-ification.
+
+2001-03-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-color.c (1.7.2.1) (+251 -296)
+ src/main/print-escp2.c (1.37.2.1) (+240 -241)
+ src/main/print-util.c (1.11.2.1) (+2 -2)
+
+ Ongoing work on CMYK
+
+2001-03-05 <rleigh@sourceforge.net>
+
+ Files: debian/control.in (1.1) ( )
+ debian/rules (1.9) (+10 -10)
+ lib/xmalloc.c (1.3) (+4 -4)
+ po/en_GB.po (1.7) (+1 -1)
+
+ branches: 1.1.2; 1.1.4;
+ Automagically generate debian/control
+ tidy lib/xmalloc.c
+
+2001-03-05 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.19) (+6 -16)
+
+ Removed dead code ("empty" variable).
+
+2001-03-05 <sharkey@sourceforge.net>
+
+ Files: NEWS (1.8.2.1) (+49 -3)
+ README (1.46.2.1) (+4 -42)
+ configure.in.in (1.18.2.1) (+41 -17)
+ debian/README.Debian (1.2.2.1) (+1 -1)
+ doc/README.maintaining (1.5.2.1) (+1 -1)
+ src/cups/Makefile.am (1.17.2.1) (+2 -2)
+ src/cups/genppd.c (1.7.2.1) (+48 -37)
+ src/gimp/print.c (1.4.4.1) (+240 -254)
+ src/main/Makefile.am (1.13.4.1) (+2 -2)
+ src/main/gimp-print-internal.h (1.15.4.1) (+34 -20)
+ src/main/gimpprint.m4 (1.4.2.1) (+1 -1)
+ src/main/print-dither.c (1.10.4.1) (+28 -27)
+ src/main/print-escp2.c (1.24.2.1) (+548 -577)
+ src/main/print-pcl.c (1.8.4.1) (+148 -141)
+ src/main/print-weave.c (1.12.4.1) (+135 -93)
+ src/printdef/printdefy.y (1.1.4.1) (+9 -10)
+ test/Makefile.am (1.9.2.1) (+8 -3)
+ test/unprint.c (1.2.4.1) (+3 -3)
+
+ Update the debian branch to the 4.1.5 release.
+
+2001-03-05 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.18) (+5 -4)
+
+ More bjc8200-related stuff
+
+2001-03-05 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.17) (+3 -2)
+
+ Attempt to fix the bjc8200-problem
+
+2001-03-05 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.16) (+5 -3)
+ test/parse-bjc (1.2) (+1 -1)
+
+ *** empty log message ***
+
+2001-03-05 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.10) (+2 -2)
+
+ Fix a silly typo
+
+2001-03-05 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.15) (+20 -17)
+
+ Removed "static int empty" from canon_write_line()
+
+2001-03-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.37) (+25 -2)
+
+ More 980 tweaks from Brad Bosch.
+
+2001-03-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.36) (+228 -285)
+
+ Reorganize how the dot sizes and densities are listed to make it easier
+ to change things for multiple printers.
+
+2001-03-04 <rlk@sourceforge.net>
+
+ Files: NEWS (1.14) (+18 -13)
+
+ 4.1.5 release
+
+2001-03-04 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.10) (+18 -25)
+
+ Previous change is not working properly in all cases -- back out.
+
+2001-03-04 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.9) (+26 -19)
+
+ If resolution is invalid, pick printer default rather than current
+ resolution on the list.
+
+2001-03-04 <wollvieh@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.35) (+11 -8)
+
+ fixed a bug causing a null-pointer access when paper type was undefined.
+
+2001-03-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.13) (+2 -2)
+
+ Fix a few remnants of the old directory structure.
+
+2001-03-03 <rlk@sourceforge.net>
+
+ Files: NEWS (1.12) (+4 -1)
+ po/en_GB.po (1.6) (+173 -173)
+ src/main/print-escp2.c (1.34) (+7 -7)
+
+ Update for the Stylus Color 900/980.
+
+ Update 4.1.5 release notes.
+
+2001-03-03 <sharkey@sourceforge.net>
+
+ Files: debian/changelog (1.11) (+3 -2)
+
+ Since I'm not uploading 4.1.4, the ITP bug closure notice should be moved
+ up to 4.1.5-1.
+
+2001-03-02 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.8) (+12 -4)
+
+ Merge in changes from the debian-branch to reduce the number of hard-coded
+ version numbers.
+
+2001-03-02 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.5) (+2 -2)
+
+ Remove the last hard-coded version number from the rules file. Read it
+ from dpkg-parsechangelog output instead.
+
+2001-03-02 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.4) (+12 -4)
+
+ Rename libgimprint<version> files to just libgimpprint files and create
+ symlinks in debian rules.
+
+ Reduce the number of places where the version number is hard coded. This
+ still isn't perfect, but it's better.
+
+2001-03-02 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.20) (+18 -12)
+ src/main/print-canon.c (1.14) (+139 -139)
+ src/main/print-dither.c (1.13) (+22 -21)
+ src/main/print-escp2.c (1.33) (+96 -95)
+ src/main/print-lexmark.c (1.18) (+68 -68)
+ src/main/print-pcl.c (1.13) (+73 -73)
+ src/main/print-ps.c (1.7) (+3 -3)
+ src/main/print-util.c (1.11) (+8 -6)
+ src/main/print-version.c (1.3) (+2 -2)
+ src/main/print-weave.c (1.17) (+84 -78)
+
+ More rigor about const-ness, static data, and such.
+
+ Add a driver-private data member to stp_internal_vars_t; its
+ accessors are in gimp-print-internal.h, since it's not exposed
+ outside the library.
+
+ Somewhat against my better judgement (in terms of doing two
+ things in one commit), Tommy's latest PCL patch.
+
+2001-03-01 <gandy@sourceforge.net>
+
+ Files: test/bjc-unprint.c (1.2) (+21 -0)
+
+ branches: 1.2.2; 1.2.4;
+ Added copyright information
+
+2001-03-01 <gandy@sourceforge.net>
+
+ Files: configure.in.in (1.24) (+2 -2)
+ test/Makefile.am (1.12) (+4 -2)
+ test/bjc-unprint.c (1.1) ( )
+
+ Added bjc-unprint.c to convert Canon-BJC printjobs to one xbm per color channel
+
+2001-03-01 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.32) (+86 -278)
+ src/main/print-weave.c (1.16) (+4 -4)
+ test/escp2-weavetest.c (1.14) (+2 -2)
+ test/run-weavetest (1.6) (+1 -1)
+
+ Use the softweave code to do single row ("microweave") as well as
+ multi-row printing. Includes unit tests.
+
+2001-02-28 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.91) (+2 -2)
+
+ Distribute debian directory with 'dist-hook'
+
+2001-02-28 <sharkey@sourceforge.net>
+
+ Files: debian/changelog (1.10) (+10 -1)
+ debian/gimp1.2-print.docs (1.4) (+0 -4)
+ debian/libgimpprint-dev.docs (1.2) (+6 -0)
+ debian/rules (1.7) (+3 -8)
+
+ Merge changes made on the debian branch into the mainline.
+
+2001-02-28 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.3) (+2 -3)
+
+ Avoid duplicate installation of documentation and use absolute paths for
+ dh_shlibdeps.
+
+2001-02-28 <gandy@sourceforge.net>
+
+ Files: test/parse-bjc (1.1) ( )
+
+ * Added parse-bjc (a modified parse-escp) to view Canon-BJC print files
+ As default, only the header and the footer of the printjob are printed,
+ without file-offsets. Setting the environmentvariable OFFS=1 will result
+ in offsets printed at the beginning of each line, GRX=1 will lead to
+ printing of the graphics data.
+
+2001-02-28 <rlk@sourceforge.net>
+
+ Files: po/en_GB.po (1.5) (+253 -255)
+ src/main/gimp-print-internal.h (1.19) (+3 -2)
+ src/main/print-weave.c (1.15) (+47 -11)
+ test/escp2-weavetest.c (1.13) (+43 -17)
+ test/run-weavetest (1.5) (+1 -1)
+
+ Generalize the weave code a bit more: handle cases where the oversampling
+ exceeds the number of jets, as long as the horizontal oversampling does
+ not exceed the number of jets.
+
+2001-02-27 <sharkey@sourceforge.net>
+
+ Files: debian/libgimpprint-dev.docs (1.1) ( )
+ debian/rules (1.2.2.2) (+3 -7)
+
+ file libgimpprint-dev.docs was initially added on branch debian-branch.
+
+2001-02-27 <gandy@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.13) (+308 -130)
+
+ * Completely rewritten canon_init_printer() to make things much clearer
+ and easier to extend.
+ * Attempt to fix problem with 8200 6color-printing (had a 4color ink-definition)
+ * Always print with 2bits on a 8200 model (for the time being)
+
+2001-02-27 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.31) (+7 -7)
+
+ Reduce a glitch in the blues on the 870, and strengthen magenta on all
+ printers.
+
+2001-02-27 <rlk@sourceforge.net>
+
+ Files: NEWS (1.11) (+4 -0)
+
+ Note fix for 404206.
+
+2001-02-27 <rlk@sourceforge.net>
+
+ Files: test/Makefile.am (1.11) (+4 -1)
+
+ Do dependencies.
+
+2001-02-27 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.30) (+22 -1)
+
+ Fix the ink types, which I managed to break badly for variable dot
+ size printers when I added the 120 dpi resolutions.
+
+2001-02-26 <rlk@sourceforge.net>
+
+ Files: test/parse-escp2 (1.3) (+9 -23)
+
+ Simplify the command table
+
+2001-02-26 <rlk@sourceforge.net>
+
+ Files: test/parse-escp2 (1.2) (+58 -2)
+
+ Handle remote mode commands
+
+2001-02-25 <sharkey@sourceforge.net>
+
+ Files: debian/README.Debian (1.5) (+0 -0)
+ debian/changelog (1.9) (+0 -0)
+ debian/copyright (1.3) (+0 -0)
+ debian/cupsys-driver-gimpprint.docs (1.3) (+0 -0)
+ debian/cupsys-driver-gimpprint.postrm (1.3) (+0 -0)
+ debian/escputil.docs (1.3) (+0 -0)
+ debian/gimp1.2-print.docs (1.3) (+0 -0)
+ debian/gimp1.2-print.postrm (1.4) (+0 -0)
+ debian/gimp1.2-print.preinst (1.4) (+0 -0)
+ debian/rules (1.6) (+0 -0)
+
+ Return the debian directory to what it was on February 22 8:00 AM EST
+ before I removed it.
+
+2001-02-25 <rleigh@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.12) (+5 -5)
+
+ Tag papersizes for translation
+
+2001-02-25 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.11) (+3 -3)
+ src/escputil/escputil.c (1.9) (+2 -2)
+ src/ghost/gdevstp.c (1.5) (+2 -2)
+ src/gimp/gimp_main_window.c (1.8) (+4 -4)
+ src/main/gimp-print-internal.h (1.18) (+3 -3)
+ src/main/print-canon.c (1.12) (+20 -423)
+ src/main/print-color.c (1.7) (+3 -3)
+ src/main/print-dither.c (1.12) (+3 -3)
+ src/main/print-lexmark.c (1.17) (+139 -139)
+ src/main/print-pcl.c (1.11) (+3 -3)
+ src/main/print-util.c (1.10) (+8 -8)
+ src/main/print-weave.c (1.14) (+12 -12)
+ src/main/quickmatrix257.h (1.2) (+2 -2)
+ src/main/ran.367.179.h (1.2) (+2 -2)
+ src/main/ran.509.131.h (1.2) (+2 -2)
+ src/printdef/printdefy.y (1.3) (+3 -3)
+ test/escp2-weavetest.c (1.12) (+4 -4)
+ test/testdither.c (1.6) (+3 -3)
+ test/unprint.c (1.3) (+3 -3)
+
+ Strip trailing whitespace from all source files for general hygiene.
+
+ Remove unused inks from Canon driver. The actual ink definitions
+ used in future Canon printers will probably not resemble the Epson
+ inks they were patterned after.
+
+2001-02-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.29) (+145 -43)
+
+ Adjust HSL values for specific paper types. Currently we only perform
+ the adjustment for plain paper and similar types. It may be
+ overadjusted for good (but not photo) quality inkjet paper.
+
+2001-02-24 <rleigh@sourceforge.net>
+
+ Files: src/main/Makefile.am (1.15) (+2 -2)
+
+ Fix print-printers.c dependency
+
+2001-02-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.10) (+31 -0)
+
+ Start the 4.1.5 release notes.
+
+2001-02-24 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.17) (+3 -3)
+ src/main/print-escp2.c (1.28) (+12 -11)
+ test/escp2-weavetest.c (1.11) (+2 -4)
+ test/run-weavetest (1.4) (+4 -1)
+
+ Improve print quality on plain paper with Epson printers.
+
+ Fix a minor error in a declaration (should be harmless due to the
+ declaration of the rest of the object).
+
+ Test single-jet weaving.
+
+ Don't trip an error for certain out of bounds cases in the test run.
+
+2001-02-24 <davehill@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.10) (+4 -4)
+
+ Moved call to stp_dither() so it gets called for *all* printer types!
+
+2001-02-24 <wollvieh@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.27) (+14 -3)
+
+ 480 support: fixed a bottom of page problem.
+
+2001-02-24 <rleigh@sourceforge.net>
+
+ Files: doc/README.maintaining (1.5) (+259 -60)
+
+ Add configure information
+
+2001-02-24 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.23) (+3 -3)
+ src/cups/genppd.c (1.9) (+44 -37)
+ src/cups/rastertoprinter.c (1.10) (+46 -47)
+ src/ghost/README (1.10) (+1 -1)
+ src/ghost/gdevstp.c (1.4) (+159 -236)
+ src/gimp/gimp_color_window.c (1.3) (+69 -69)
+ src/gimp/gimp_main_window.c (1.7) (+270 -274)
+ src/gimp/print.c (1.5) (+240 -254)
+ src/gimp/print_gimp.h (1.5) (+2 -2)
+ src/main/Makefile.am (1.14) (+2 -2)
+ src/main/gimp-print-internal.h (1.16) (+15 -8)
+ src/main/print-canon.c (1.11) (+79 -74)
+ src/main/print-color.c (1.6) (+88 -87)
+ src/main/print-dither.c (1.11) (+5 -5)
+ src/main/print-escp2.c (1.26) (+190 -166)
+ src/main/print-lexmark.c (1.16) (+90 -89)
+ src/main/print-pcl.c (1.9) (+75 -68)
+ src/main/print-ps.c (1.6) (+49 -45)
+ src/main/print-util.c (1.9) (+452 -110)
+ src/main/print-weave.c (1.13) (+2 -2)
+ src/main/printers.xml (1.10) (+1 -1)
+ src/printdef/printdef.h (1.4) (+63 -2)
+ src/printdef/printdefy.y (1.2) (+7 -8)
+
+ Convert the interface to the internal data structures to be
+ procedural (via accessors and mutators) rather than data, to
+ eliminate reliance on the layout of structs. This enables a
+ consistent ABI, allows arbitrary length string fields, error
+ checking, and saves space.
+
+ Fix the page dimensions of some older Epson printers.
+
+2001-02-24 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.9.2.1) (+1 -1)
+ src/ghost/gdevstp.c (1.3.2.1) (+160 -237)
+ src/main/print-escp2.c (1.25.2.6) (+26 -12)
+ src/main/print-ps.c (1.5.2.5) (+2 -2)
+ src/main/print-util.c (1.8.2.7) (+23 -28)
+ src/main/printers.xml (1.9.2.1) (+1 -1)
+
+ Adapt the Ghostscript driver to the new API.
+
+ Fix up printer dimensions in Epson driver.
+
+ Fix a few stupid bugs in print-util.c related to the new API.
+
+2001-02-23 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.10.2.4) (+2 -1)
+ src/main/print-escp2.c (1.25.2.5) (+2 -1)
+ src/main/print-lexmark.c (1.15.2.4) (+2 -1)
+ src/main/print-ps.c (1.5.2.4) (+2 -1)
+
+ Make verify function be printer-specific.
+
+2001-02-22 <sharkey@sourceforge.net>
+
+ Files: debian/.cvsignore (1.3) (+0 -0)
+
+ Really, I mean it now, remove this file from the main trunk!
+
+2001-02-22 <sharkey@sourceforge.net>
+
+ Files: debian/README.Debian (1.4) (+0 -0)
+ debian/changelog (1.8) (+0 -0)
+ debian/copyright (1.2) (+0 -0)
+ debian/cupsys-driver-gimpprint.docs (1.2) (+0 -0)
+ debian/cupsys-driver-gimpprint.postrm (1.2) (+0 -0)
+ debian/escputil.docs (1.2) (+0 -0)
+ debian/gimp1.2-print.docs (1.2) (+0 -0)
+ debian/gimp1.2-print.postrm (1.3) (+0 -0)
+ debian/gimp1.2-print.preinst (1.3) (+0 -0)
+ debian/rules (1.5) (+1 -1)
+
+ Remove Debian specific files from the main trunk.
+
+2001-02-22 <sharkey@sourceforge.net>
+
+ Files: debian/rules (1.2.2.1) (+11 -6)
+
+ Merge in the latest rules file from the main trunk.
+
+2001-02-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.25.2.4) (+2 -2)
+
+ Some tuning for Epson matte paper
+
+2001-02-22 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.8.2.6) (+29 -14)
+
+ Get the print plugin working
+
+2001-02-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.8.2.5) (+28 -1)
+
+ Fix up the new version of the Gimp plugin; clean up a few other things.
+
+2001-02-21 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.90) (+15 -2)
+ configure.in.in (1.22) (+13 -1)
+ po/en_GB.po (1.4) (+118 -98)
+
+ Added 'gimp-dist' target to package for the GIMP
+
+2001-02-21 <cpbs@sourceforge.net>
+
+ Files: man/.cvsignore (1.2) (+2 -0)
+ po/.cvsignore (1.2) (+2 -0)
+ src/main/.cvsignore (1.2) (+1 -0)
+
+ Ignore a few new generated files.
+
+2001-02-21 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.10.2.3) (+16 -14)
+ src/main/print-escp2.c (1.25.2.3) (+10 -9)
+ src/main/print-lexmark.c (1.15.2.3) (+17 -14)
+ src/main/print-ps.c (1.5.2.3) (+9 -7)
+ src/main/print-util.c (1.8.2.4) (+57 -18)
+
+ Clean up paper sizes in the same way.
+
+2001-02-21 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.8.2.2) (+35 -32)
+ src/main/print-canon.c (1.10.2.2) (+12 -12)
+ src/main/print-escp2.c (1.25.2.2) (+48 -39)
+ src/main/print-lexmark.c (1.15.2.2) (+18 -18)
+ src/main/print-ps.c (1.5.2.2) (+9 -9)
+ src/main/print-util.c (1.8.2.3) (+48 -30)
+
+ Hide stp_printer_t in the same way we hid stp_vars_t.
+
+2001-02-21 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.7) (+6 -0)
+ debian/rules (1.4) (+3 -3)
+ scripts/autogen.sh (1.6) (+5 -1)
+
+ Bump debian version
+ Make scripts/autogen.sh aclocal magic portable
+
+2001-02-20 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.20.2.1) (+3 -3)
+ src/cups/genppd.c (1.8.2.1) (+23 -19)
+ src/main/print-util.c (1.8.2.2) (+6 -1)
+
+ Bump binary version info.
+
+ Fix a few bugs.
+
+ Convert CUPS programs, run genppd to smoke test.
+
+2001-02-20 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.10.2.1) (+54 -52)
+ src/main/print-color.c (1.5.2.1) (+88 -87)
+ src/main/print-escp2.c (1.25.2.1) (+132 -133)
+ src/main/print-lexmark.c (1.15.2.1) (+58 -61)
+ src/main/print-ps.c (1.5.2.1) (+31 -30)
+ src/main/print-util.c (1.8.2.1) (+318 -75)
+
+ New print variable setup, on temporary branch
+
+2001-02-19 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.21) (+1 -4)
+ doc/README.maintaining (1.4) (+112 -7)
+ scripts/autogen.sh (1.5) (+3 -1)
+
+ Fix AM_PATH_GIMPPRINT duplication bug
+ Update build scripts documentation
+
+2001-02-19 <rleigh@sourceforge.net>
+
+ Files: doc/README.maintaining (1.3) (+2 -2)
+
+ Fix typo
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.9) (+4 -1)
+ README (1.47) (+4 -42)
+ configure.in.in (1.20) (+3 -3)
+ debian/README.Debian (1.3) (+1 -1)
+ doc/README.maintaining (1.2) (+10 -0)
+
+ Clean up the build instructions slightly.
+
+ Bump the version pointer.
+
+2001-02-19 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.9) (+7 -3)
+ autogen.sh (1.3) (+1 -1)
+ configure.in.in (1.19) (+28 -13)
+ debian/rules (1.3) (+8 -3)
+ doc/README.maintaining (1.1) ( )
+ src/cups/Makefile.am (1.18) (+2 -2)
+ src/cups/genppd.c (1.8) (+6 -2)
+ src/cups/rastertoprinter.c (1.9) (+6 -2)
+ src/gimp/Makefile.am (1.10) (+3 -2)
+ src/gimp/print_gimp.h (1.4) (+5 -1)
+ src/main/gimpprint.m4 (1.5) (+1 -1)
+ test/Makefile.am (1.10) (+2 -2)
+ test/escp2-weavetest.c (1.10) (+5 -1)
+ test/testdither.c (1.5) (+6 -2)
+
+ --disable-libgimpprint will use installed headers, and supplied CFLAGS and
+ LIBS variables from AM_PATH_LIBGIMPPRINT
+ gimp-print.h is dynamically generated, to embed versioning details; we also
+ remove version details from config.h
+ debian/rules: regenerate configure if configure.in (or.in.in) are modified
+ add package name to autogen.sh
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.25) (+4 -4)
+
+ Newest Stylus Photo printers can print to the edge on all sides.
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: gimp.m4 (1.3) (+0 -0)
+
+ Add gimp.m4 here to allow autogen/aclocal to run where gimp is not installed
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.18) (+2 -1)
+
+ Need aclocal -I src/main
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.7) (+1 -2)
+
+ Ghostscript doesn't have its own ChangeLog
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.17) (+1 -2)
+
+ CUPS directory doesn't have its own change log
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: configure.in.in (1.17) (+3 -1)
+ scripts/autogen.sh (1.4) (+1 -1)
+
+ Allow aclocal to find gimpprint.m4
+
+2001-02-19 <rlk@sourceforge.net>
+
+ Files: NEWS (1.8) (+11 -2)
+ README (1.46) (+36 -0)
+
+ Update with latest Debian and internationalization, for 4.1.4 release.
+
+2001-02-18 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.16) (+2 -2)
+
+ Make --disable-libgimpprint use current source version in check
+
+2001-02-18 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.15) (+7 -2)
+ src/main/Makefile.am (1.13) (+2 -2)
+ src/main/gimpprint.m4 (1.4) (+5 -5)
+
+ Enable --disable-libgimpprint (link with previously installed version)
+ Update gimppprint.m4 (help message alignment fixed)
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.8) (+2 -1)
+ src/ghost/README (1.9) (+1 -0)
+ src/main/print-escp2.c (1.24) (+2 -2)
+ src/main/printers.xml (1.9) (+9 -0)
+
+ Stylus Photo 780 is US name for 790.
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.7) (+3 -1)
+ src/ghost/README (1.8) (+2 -0)
+ src/main/print-escp2.c (1.23) (+15 -1)
+ src/main/printers.xml (1.8) (+10 -0)
+ test/run-weavetest (1.3) (+15 -11)
+
+ Support for the Stylus Color 580 as well as the 480.
+
+ Speed up weave test by removing cases that we know we don't care
+ about.
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.95.2.1) (+2 -1)
+
+ Eliminate any possibility of black speckling in white areas (from
+ mainline).
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: NEWS (1.7) (+48 -0)
+
+ Initial release notes for 4.1.4 (Debian and internationalization need
+ to be filled in).
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: debian/README.Debian (1.2) (+1 -1)
+
+ Bump version
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.22) (+6 -6)
+ src/main/print-util.c (1.8) (+92 -1)
+
+ Tune 980 and, to some degree, 900
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.10) (+2 -1)
+
+ branches: 1.10.2; 1.10.4;
+ Eliminate bogus black speckling in areas with zero black component.
+
+2001-02-18 <wollvieh@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.15) (+3 -9)
+ src/main/print-escp2.c (1.21) (+39 -6)
+ src/main/print-weave.c (1.12) (+21 -26)
+ test/escp2-weavetest.c (1.9) (+13 -2)
+
+ branches: 1.15.2; 1.15.4;
+ changed head-offset initialization
+
+2001-02-18 <rlk@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.11) (+43 -17)
+ test/escp2-weavetest.c (1.8) (+158 -81)
+ test/run-weavetest (1.2) (+14 -28)
+
+ Performance improvements in the test suite itself and in the weave
+ code. The performance improvement in the weave code will have only
+ modest effect on performance on even the biggest image; however it
+ will improve the performance of the test suite substantially.
+
+2001-02-17 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.8) (+2 -1)
+ configure.in.in (1.14) (+35 -28)
+ src/cups/Makefile.am (1.16) (+4 -4)
+ src/ghost/Makefile.am (1.6) (+2 -2)
+ src/gimp/Makefile.am (1.9) (+4 -4)
+ src/main/Makefile.am (1.12) (+5 -13)
+ src/main/gimpprint-config.in (1.2) (+5 -2)
+ src/main/print-version.c (1.2) (+2 -1)
+ test/Makefile.am (1.9) (+5 -5)
+
+ Updated build scripts (in future, will allow conditional manpage install)
+ Added cupsys dependency to cupsys-driver-gimpprint
+ Updated versioning scheme (and added some documentation)
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.7) (+4 -0)
+
+ Some printer updates
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/main/print-canon.c (1.10) (+14 -1)
+
+ branches: 1.10.2; 1.10.4;
+ Add nominal support for Canon BJC6500
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.14) (+2 -6)
+ src/main/printers.xml (1.7) (+37 -6)
+
+ Clean up dead declaration
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/gimp/print.c (1.4) (+2 -26)
+
+ branches: 1.4.2; 1.4.4;
+ Remove dead support for wrting old printrc format
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.8) (+3 -3)
+
+ Clean up potential buffer overflow
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/ghost/gdevstp.c (1.3) (+8 -4)
+
+ branches: 1.3.2; 1.3.4;
+ Clean up potential buffer overflows
+
+2001-02-17 <rwisi@sourceforge.net>
+
+ Files: src/main/printers.xml (1.6) (+11 -0)
+
+ Added Lexmark Z31 to the list (not tested, received comment that the 3200 driver is working with the Z31)
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.13) (+8 -23)
+
+ Remove a few more bogon declarations
+
+2001-02-17 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.12) (+4 -10)
+
+ Remove spurious declarations
+
+2001-02-17 <wollvieh@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.11) (+39 -11)
+ src/main/print-escp2.c (1.20) (+64 -11)
+ src/main/print-weave.c (1.10) (+153 -115)
+ src/main/printers.xml (1.5) (+9 -9)
+ test/escp2-weavetest.c (1.7) (+3 -2)
+
+ added stylus color 480 support
+
+2001-02-17 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.13) (+7 -3)
+
+ Modify library versioning scheme to use sensible major number
+
+2001-02-16 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.12) (+2 -1)
+ debian/changelog (1.6) (+3 -2)
+ debian/rules (1.2) (+1 -0)
+ man/Makefile.am (1.4) (+3 -3)
+ man/cups-calibrate.8.in (1.1) ( )
+
+ Debian build is lintian-clean and uses the right library versioning scheme.
+ Added cups-calibrate man page.
+
+2001-02-15 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.6) (+2 -1)
+ src/ghost/README (1.6) (+1 -0)
+ src/main/print-escp2.c (1.19) (+2 -2)
+ src/main/printers.xml (1.4) (+9 -0)
+
+ Add Stylus Photo 1280 (appears to be a synonym for 1290).
+
+2001-02-14 <easysw@sourceforge.net>
+
+ Files: README (1.35.2.6) (+1 -1)
+
+ Added new drivers to Ghostscript README.
+
+ Update to v4.0.5 for new release in near future.
+
+2001-02-14 <rlk@sourceforge.net>
+
+ Files: src/ghost/devs.mak.addon-5.10 (1.4) (+2 -0)
+
+ branches: 1.4.4; 1.4.10;
+ Add warning about how to use this file.
+
+2001-02-14 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.5) (+33 -27)
+
+ Some updates
+
+2001-02-14 <rlk@sourceforge.net>
+
+ Files: acconfig.h (1.7) (+3 -1)
+ configure.in.in (1.11) (+2 -1)
+ src/main/print-canon.c (1.9) (+2 -2)
+ src/main/print-escp2.c (1.18) (+10 -3)
+ src/main/print-lexmark.c (1.15) (+2 -2)
+
+ Improve printing quality for variable dot size, 4 color printers.
+ This may be particularly noticeable at highly asymmetric resolutions,
+ such as 2880x720.
+
+ Add 1440x360 modes to Epson printers. These are only enabled if
+ maintainer mode is enabled.
+
+2001-02-13 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.5) (+5 -3)
+ debian/cupsys-driver-gimpprint.postrm (1.1) ( )
+ debian/gimp1.2-print.postrm (1.2) (+1 -1)
+ debian/gimp1.2-print.preinst (1.2) (+1 -1)
+
+ Fixed cupsys-driver-gimpprint postrm
+ Fixed gimp1.2-print dependencies
+ Add pointer to main ChangeLog from po/ChangeLog
+
+2001-02-13 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.5) (+33 -65)
+
+ Concentrate status readback in one place
+
+2001-02-13 <rlk@sourceforge.net>
+
+ Files: doc/FAQ.html (1.3) (+1 -1)
+
+ Typo
+
+2001-02-13 <rlk@sourceforge.net>
+
+ Files: src/escputil/escputil.c (1.4) (+4 -4)
+
+ Make prompts a bit more obvious
+
+2001-02-13 <rlk@sourceforge.net>
+
+ Files: acconfig.h (1.6) (+2 -1)
+ configure.in.in (1.10) (+2 -1)
+ src/escputil/escputil.c (1.3) (+42 -7)
+
+ Speed up escputil by using poll if available.
+
+2001-02-12 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.9) (+5 -3)
+ debian/.cvsignore (1.2) (+0 -2)
+ debian/rules (1.1) ( )
+
+ Add debian/rules, debian/control and update debian/.cvsignore
+ Add error message to cups library checks in configure.in.in
+ Remove redundant cups/.cvsignore
+
+2001-02-12 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.17) (+29 -28)
+
+ Updates for ESC 980 from Bradley A. Bosch <brad@lachman.com>
+
+ Rename MODEL_INIT_900 to MODEL_INIT_NEW
+
+2001-02-11 <rleigh@sourceforge.net>
+
+ Files: debian/changelog (1.4) (+5 -2)
+
+ Fix cupsys-driver-gimpprint conffiles
+
+2001-02-11 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.4) (+1 -0)
+ src/main/gimp-print-internal.h (1.10) (+13 -2)
+ src/main/print-dither.c (1.9) (+128 -51)
+ src/main/print-escp2.c (1.16) (+2 -2)
+ src/main/printers.xml (1.3) (+8 -0)
+
+ Permit use of external dither matrix
+
+ Add new Epson 83 printer -- appears to be more or less a clone of the
+ 880?
+
+2001-02-11 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.9) (+8 -15)
+ src/main/print-canon.c (1.8) (+3 -8)
+ src/main/print-dither.c (1.8) (+49 -38)
+ src/main/print-escp2.c (1.15) (+3 -8)
+ src/main/print-lexmark.c (1.14) (+3 -15)
+ src/main/print-pcl.c (1.8) (+3 -12)
+
+ Create a single dither function that decides what to do, rather than
+ each driver having to make the same decision.
+
+2001-02-10 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.8) (+2 -2)
+ man/gimpprint-config.1.in (1.1) ( )
+ src/main/gimpprint.m4 (1.3) (+25 -23)
+
+ configure.in.in: fix test typo
+ debian/README.building.from.CVS: updated build instructions
+ src/main/gimpprint.m4: updated names and error reporting
+ Add man/gimpprint-config.1.in
+
+2001-02-10 <rlk@sourceforge.net>
+
+ Files: test/escp2-weavetest.c (1.6) (+33 -27)
+
+ Fix problems called out by latest gcc
+
+2001-02-10 <rleigh@sourceforge.net>
+
+ Files: debian/README.Debian (1.1) ( )
+ debian/changelog (1.3) (+14 -0)
+ debian/copyright (1.1) ( )
+ debian/cupsys-driver-gimpprint.docs (1.1) ( )
+ debian/escputil.docs (1.1) ( )
+ debian/gimp1.2-print.docs (1.1) ( )
+ debian/gimp1.2-print.postrm (1.1) ( )
+ debian/gimp1.2-print.preinst (1.1) ( )
+
+ Added new debian packaging
+
+2001-02-10 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.7) (+6 -3)
+ man/Makefile.am (1.3) (+3 -3)
+ man/escputil.1.in (1.2) (+1 -1)
+ po/en_GB.po (1.3) (+22 -11)
+ scripts/autogen.sh (1.3) (+1 -1)
+ src/main/Makefile.am (1.11) (+2 -2)
+ src/main/gimpprint.m4 (1.2) (+1 -0)
+
+ Added gimpprint-config manpage
+ Updated escputil.1.in to automatically add the release date and version
+ Updated gimpprint.m4
+
+2001-02-10 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.14) (+117 -48)
+
+ Tentative improvement for 2880 dpi on ESC 980.
+
+ Name all printer attributes to ease transition to acquiring them
+ from external source.
+
+2001-02-10 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.89) (+5 -5)
+
+ Do 'make all' before doing any of the make install variants.
+
+ Use 4-digit years for make snapshot
+
+2001-02-09 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.88) (+5 -2)
+ acconfig.h (1.5) (+9 -1)
+ configure.in.in (1.6) (+107 -21)
+ lib/.cvsignore (1.4) (+4 -4)
+ po/en_GB.po (1.2) (+202 -101)
+ src/main/Makefile.am (1.10) (+23 -2)
+ src/main/gimpprint-config.in (1.1) ( )
+ src/main/gimpprint.m4 (1.1) ( )
+ src/main/print-canon.c (1.7) (+26 -18)
+ src/main/print-dither.c (1.7) (+3 -3)
+ src/main/print-escp2.c (1.13) (+11 -11)
+ src/main/print-lexmark.c (1.13) (+13 -12)
+ src/main/print-pcl.c (1.7) (+4 -4)
+ src/main/print-util.c (1.7) (+5 -5)
+ src/main/print-version.c (1.1) ( )
+
+ Translated most of src/main
+ Added gimpprint.m4 and gimpprint-config
+ Added library versioning code to configure.in.in and src/main/Makefile.am
+ Added src/main/print-version.c for versioning variables
+
+2001-02-08 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.5) (+2 -2)
+
+ Add en_GB and en_TEST translations
+
+2001-02-07 <rleigh@sourceforge.net>
+
+ Files: po/en_GB.po (1.1) ( )
+
+ Add en_GB and en_TEST translations
+
+2001-02-07 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.3) (+67 -62)
+
+ Update with latest modes
+
+2001-02-07 <rlk@sourceforge.net>
+
+ Files: doc/FAQ.html (1.2) (+45 -13)
+
+ Updates
+
+2001-02-07 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.87) (+2 -2)
+ src/main/print-weave.c (1.9) (+1 -3)
+
+ Rebuild change log slightly faster
+
+2001-02-07 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.12) (+96 -97)
+
+ 180x120 and 360x120 modes for ultra quick & dirty prints
+
+2001-02-05 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.11) (+4 -4)
+
+ STP 2000P is 13" wide, not 8.5 (bug #131044)
+
+2001-02-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.265.2.3) (+2 -2)
+
+ STP 2000P is 13" wide, not 8.5 (bug #131044)
+
+2001-02-04 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.150.2.2) (+2 -2)
+
+ Update the Epson roll paper size
+
+2001-02-04 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.265.2.2) (+6 -6)
+
+ Support longer paper in newer printers
+
+2001-02-04 <rlk@sourceforge.net>
+
+ Files: src/main/print-escp2.c (1.10) (+6 -6)
+
+ Fix up maximum page length for many printers.
+
+2001-02-04 <sharkey@sourceforge.net>
+
+ Files: scripts/make-deb.sh (1.2) (+8 -6)
+
+ Fix paths and targets for new dir structure and build methods.
+
+2001-02-04 <sharkey@sourceforge.net>
+
+ Files: src/ghost/debian-patch (1.2) (+4 -6)
+
+ Changes needed for compatibility with Debian gs5.10-11.
+
+2001-02-03 <rleigh@sourceforge.net>
+
+ Files: lib/.cvsignore (1.3) (+5 -0)
+ lib/libprintut.h (1.2) (+8 -1)
+ src/cups/Makefile.am (1.15) (+4 -4)
+ src/escputil/Makefile.am (1.5) (+2 -2)
+ src/main/print-color.c (1.5) (+1 -5)
+ src/main/print-dither.c (1.6) (+1 -5)
+ src/main/print-escp2.c (1.9) (+1 -5)
+ src/main/print-util.c (1.6) (+1 -5)
+ src/main/print-weave.c (1.8) (+1 -5)
+ test/Makefile.am (1.8) (+5 -5)
+
+ Updated makefiles to properly link with libintl and libprintut.la
+ Removed inline checks from src/main/*.c
+
+2001-02-03 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.12) (+94 -22)
+
+ -corrected border
+ -made jet offset correction more flexible
+
+2001-02-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.11) (+1 -5)
+
+ Remove a couple of unused variables
+
+2001-02-03 <rlk@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.5) (+7 -3)
+ src/main/gimp-print-internal.h (1.8) (+6 -2)
+
+ Let Ghostscript at least compile on a GNU system for now until we
+ fix up asprintf.
+
+2001-02-03 <rlk@sourceforge.net>
+
+ Files: test/escp2-weavetest.c (1.5) (+2 -2)
+
+ New output API
+
+2001-02-03 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.7) (+14 -3)
+ src/ghost/gdevstp.c (1.2) (+12 -2)
+ src/gimp/print.c (1.3) (+14 -3)
+ src/main/gimp-print-internal.h (1.7) (+14 -6)
+ src/main/print-canon.c (1.6) (+58 -60)
+ src/main/print-escp2.c (1.8) (+102 -105)
+ src/main/print-lexmark.c (1.10) (+47 -51)
+ src/main/print-pcl.c (1.6) (+109 -110)
+ src/main/print-ps.c (1.5) (+58 -59)
+ src/main/print-util.c (1.5) (+75 -19)
+ src/main/print-weave.c (1.7) (+18 -18)
+
+ Convert direct printing to a file descriptor to print to an output
+ object passed in from the application.
+
+2001-02-03 <rlk@sourceforge.net>
+
+ Files: src/main/print-dither.c (1.5) (+2 -2)
+
+ Advance the pointer correctly in grayscale mode when the source
+ resolution is better than the output resolution.
+
+2001-02-03 <rlk@sourceforge.net>
+
+ Files: src/ghost/devs.mak.addon-5.10 (1.3) (+10 -10)
+
+ Turn off i18n for Ghostscript.
+
+2001-02-02 <rleigh@sourceforge.net>
+
+ Files: lib/.cvsignore (1.2) (+1 -0)
+ src/cups/Makefile.am (1.14) (+3 -3)
+ src/gimp/Makefile.am (1.8) (+4 -1)
+ test/Makefile.am (1.7) (+4 -4)
+
+ All executables that link with libgimpprint are linked with $(INTLLIBS),
+ except print, which has gettext provided by the GIMP
+
+2001-02-02 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.6) (+3 -3)
+
+ branches: 1.6.2; 1.6.4;
+ g_malloc, not g_xmalloc
+
+2001-02-02 <rleigh@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.6) (+3 -3)
+
+ Include libprintut.h header
+
+2001-02-02 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.4) (+3 -2)
+ lib/Makefile.am (1.3) (+5 -12)
+ lib/libprintut.h (1.1) ( )
+ lib/xmalloc.c (1.2) (+31 -10)
+ lib/xmalloc.h (1.3) (+13 -3)
+ src/cups/Makefile.am (1.13) (+4 -3)
+ src/cups/genppd.c (1.7) (+60 -56)
+ src/cups/rastertoprinter.c (1.5) (+3 -3)
+ src/escputil/Makefile.am (1.4) (+2 -2)
+ src/escputil/escputil.c (1.2) (+6 -5)
+ src/gimp/Makefile.am (1.7) (+2 -2)
+ src/gimp/gimp_color_window.c (1.2) (+3 -2)
+ src/gimp/gimp_main_window.c (1.5) (+5 -4)
+ src/gimp/print-image-gimp.c (1.2) (+4 -3)
+ src/gimp/print.c (1.2) (+6 -5)
+ src/main/Makefile.am (1.9) (+2 -2)
+ src/main/gimp-print-internal.h (1.6) (+3 -3)
+ test/Makefile.am (1.6) (+2 -1)
+ test/escp2-weavetest.c (1.4) (+9 -8)
+ test/pcl-unprint.c (1.2) (+16 -15)
+ test/testdither.c (1.4) (+3 -2)
+ test/unprint.c (1.2) (+8 -41)
+
+ Replace all use of malloc with xmalloc in libprintut.la
+ Link all necessary programs with libprintut.la
+ Add gettext support to genppd (preliminary)
+ Tag translatable strings in genppd.c
+
+2001-02-02 <stevek@sourceforge.net>
+
+ Files: src/main/Makefile.am (1.8) (+2 -1)
+
+ add gimp-print-intl-internal.h to SOURCES in Makefile.am
+ (caused file to be omitted from make dist tarball).
+
+2001-02-01 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.8) (+3 -0)
+ src/gimp/gimp_main_window.c (1.4) (+11 -32)
+
+ Remove last real vestiges of linear mode.
+
+ Reduce UI flashing when switching printers.
+
+2001-02-01 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.68.2.1) (+2 -2)
+
+ Set Image Scale now works correctly when image scaling was previously
+ in percent mode (from mainline)
+
+2001-02-01 <rlk@sourceforge.net>
+
+ Files: src/gimp/gimp_main_window.c (1.3) (+2 -2)
+
+ Set Image Scale now works correctly when image scaling was previously
+ in percent mode.
+
+2001-02-01 <rlk@sourceforge.net>
+
+ Files: src/ghost/README (1.2) (+1 -0)
+
+ Add Compaq IJ750 as alias for Lexmark 3200
+
+2001-02-01 <rlk@sourceforge.net>
+
+ Files: src/main/printers.xml (1.2) (+10 -0)
+
+ Add Compaq IJ750 as alias for Lexmark 3200
+
+2001-01-31 <stevek@sourceforge.net>
+
+ Files: po/POTFILES.in (1.3) (+1 -1)
+ src/gimp/gimp_main_window.c (1.2) (+9 -2)
+ src/main/Makefile.am (1.7) (+2 -2)
+ src/main/print-escp2.c (1.7) (+18 -3)
+
+ po/POTFILES: comment out print-version.c, which doesn't exist.
+
+ src/main/Makefile.am: Add -lm to link for libgimpprint.so (for pow()).
+
+ src/gimp/(gtk|gimp)_main_window.c: Force preview refresh on additional
+ callbacks that may affect preview.
+
+ src/main/print-escp2.c: Use zero vertical margin for roll-feed printing.
+
+2001-01-31 <rleigh@sourceforge.net>
+
+ Files: lib/xmalloc.h (1.2) (+3 -5)
+ src/main/Makefile.am (1.6) (+2 -2)
+ src/main/gimp-print-internal.h (1.5) (+6 -2)
+ src/main/print-canon.c (1.5) (+11 -11)
+ src/main/print-color.c (1.4) (+6 -6)
+ src/main/print-dither.c (1.4) (+14 -14)
+ src/main/print-escp2.c (1.6) (+25 -25)
+ src/main/print-lexmark.c (1.9) (+11 -11)
+ src/main/print-pcl.c (1.5) (+17 -17)
+ src/main/print-ps.c (1.4) (+12 -12)
+ src/main/print-weave.c (1.6) (+16 -16)
+
+ Add src/main/gimp-print-intl-internal.h
+ Change all instances of malloc to xmalloc in src/main/*.c
+
+2001-01-31 <rleigh@sourceforge.net>
+
+ Files: configure.in.in (1.3) (+7 -1)
+ lib/Makefile.am (1.2) (+13 -2)
+ po/POTFILES.in (1.2) (+1 -0)
+ src/main/Makefile.am (1.5) (+2 -1)
+ src/main/print-canon.c (1.4) (+58 -57)
+ src/main/print-color.c (1.3) (+2 -1)
+ src/main/print-dither.c (1.3) (+9 -8)
+ src/main/print-escp2.c (1.5) (+53 -52)
+ src/main/print-lexmark.c (1.8) (+58 -57)
+ src/main/print-pcl.c (1.4) (+54 -53)
+ src/main/print-ps.c (1.3) (+2 -1)
+ src/main/print-util.c (1.4) (+116 -115)
+ src/main/print-weave.c (1.5) (+2 -1)
+
+ Tagged translatable strings in src/main/*.c
+ Make a PIC utility library in lib/libprintut-pic.la
+ Link libgimpprint with the utility library
+
+2001-01-30 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.86) (+4 -4)
+ src/cups/Makefile.am (1.12) (+2 -2)
+ src/gimp/Makefile.am (1.6) (+2 -2)
+ test/Makefile.am (1.5) (+2 -2)
+
+ Replace 'make' with '$(MAKE)' for portability.
+
+2001-01-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.6) (+4 -1)
+ README (1.45) (+1 -1)
+ configure.in.in (1.2) (+2 -2)
+
+ Bump version.
+
+2001-01-30 <rlk@sourceforge.net>
+
+ Files: NEWS (1.5) (+2 -0)
+
+ 4.1.3 release
+
+2001-01-29 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.13) (+2 -0)
+
+ ChangeLog and configure.in are generated now
+
+2001-01-29 <rlk@sourceforge.net>
+
+ Files: src/main/print-weave.c (1.4) (+2 -2)
+
+ initialize_weave_params can be static
+
+2001-01-29 <rlk@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.7) (+8 -5)
+
+ Mark things static if they aren't used outside of the Lexmark driver.
+
+2001-01-29 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.4) (+196 -2)
+ src/main/print-canon.c (1.3) (+1 -8)
+ src/main/print-escp2.c (1.4) (+38 -936)
+ src/main/print-lexmark.c (1.6) (+1 -7)
+ src/main/print-weave.c (1.3) (+774 -3)
+ test/Makefile.am (1.4) (+2 -3)
+ test/escp2-weavetest.c (1.3) (+16 -10)
+
+ Migrate all of the weave stuff (except for driver-dependent output
+ function) to print-weave.c.
+
+2001-01-29 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.85) (+12 -1)
+ src/gimp/Makefile.am (1.5) (+3 -1)
+ src/main/print-escp2.c (1.3) (+74 -80)
+ test/Makefile.am (1.3) (+5 -1)
+ test/escp2-weavetest.c (1.2) (+2 -2)
+
+ Make src/gimp/print depend on libgimpprint
+
+ Allow separate installation of each component
+
+ Prepare to move more weave code into print-weave.c.
+
+2001-01-28 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.5) (+140 -47)
+
+ Unidirectional/bidirectional printing is can be selected together with the resolution.
+
+2001-01-27 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.4) (+22 -15)
+
+ Introduced correction for Lexmark 3200 from Daniel.
+
+2001-01-26 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.11) (+17 -5)
+
+ Install header in pkgincludedir
+ Remove empty installation directories
+
+2001-01-26 <rlk@sourceforge.net>
+
+ Files: autogen.sh (1.2) (+1 -1)
+ configure.in.in (1.1) ( )
+ scripts/autogen.sh (1.2) (+4 -0)
+
+ Generate change log purely on the fly (don't commit it at all).
+
+ Set date at autogen time, not configure time (so release date
+ means release date, not user build date).
+
+2001-01-25 <rleigh@sourceforge.net>
+
+ Files: man/Makefile.am (1.2) (+2 -2)
+ src/cups/Makefile.am (1.10) (+20 -13)
+
+ Tidy up cups install, by using automake variables for automated
+ installation. This leaved just ppd file installation in install-data-local
+
+2001-01-25 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.9) (+9 -12)
+
+ Clean up cups build and install
+
+2001-01-25 <rleigh@sourceforge.net>
+
+ Files: src/escputil/Makefile.am (1.3) (+2 -1)
+ src/main/Makefile.am (1.4) (+3 -3)
+ src/main/gimp-print-internal.h (1.3) (+5 -9)
+
+ Restore VPATH build
+ Add Build-Depends to debian package
+
+2001-01-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-pcl.c (1.3) (+3 -3)
+
+ Missing static declarations
+
+2001-01-25 <rlk@sourceforge.net>
+
+ Files: src/main/gimp-print-internal.h (1.2) (+191 -2)
+
+ Split internal things (dither, mostly) into gimp-print-internal.h.
+
+ C++-protect header files.
+
+2001-01-25 <rlk@sourceforge.net>
+
+ Files: src/main/print-util.c (1.3) (+26 -21)
+
+ Avoid a spurious seg fault if someone supplies a non-empty string to a
+ parameter that has no options on a given printer.
+
+2001-01-24 <rwisi@sourceforge.net>
+
+ Files: src/main/print-lexmark.c (1.3) (+7 -4)
+
+ Corrected printing problem with CUPS.
+ Problem is that lexmark_printhead_type() returns an incorrect value because CUPS seems not to specify an ink_type.
+ Actually just a work around.
+
+ Additionally the unsupported resolution of 2400 DPI is removed from the MMI.
+
+2001-01-24 <rleigh@sourceforge.net>
+
+ Files: src/cups/.cvsignore (1.3) (+1 -1)
+ src/ghost/.cvsignore (1.3) (+1 -0)
+
+ Update .cvsignore
+
+2001-01-24 <rleigh@sourceforge.net>
+
+ Files: README (1.44) (+0 -6)
+
+ Removed redundant make target instructions from README
+
+2001-01-24 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.8) (+2 -2)
+
+ Fix mkinstalldirs location for ppd files
+
+2001-01-24 <rleigh@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.7) (+2 -2)
+
+ Fix automake conditional
+
+2001-01-24 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.6) (+3 -3)
+ src/cups/cups-calibrate.c (1.1) ( )
+
+ Rename cups_calibrate to cups-calibrate.
+
+2001-01-24 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.5) (+7 -3)
+
+ Install the real executables, not the dummy ones.
+
+2001-01-24 <rlk@sourceforge.net>
+
+ Files: NEWS (1.4) (+7 -1)
+ README (1.43) (+32 -6)
+ acconfig.h (1.4) (+4 -1)
+ src/cups/README (1.2) (+1 -29)
+ src/escputil/Makefile.am (1.2) (+2 -3)
+ src/gimp/Makefile.am (1.4) (+2 -3)
+ src/main/Makefile.am (1.3) (+2 -3)
+ src/printdef/Makefile.am (1.2) (+2 -3)
+ test/Makefile.am (1.2) (+2 -3)
+
+ Update README's
+
+ Move RELEASE_DATE into config.h rather than on the compile line.
+
+2001-01-24 <rlk@sourceforge.net>
+
+ Files: src/cups/Makefile.am (1.4) (+2 -2)
+ src/cups/genppd.c (1.6) (+5 -5)
+
+ Set the version number on PPD files to match the gimp-print version.
+
+2001-01-24 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.7) (+23 -13)
+
+ Update the list of authors.
+
+2001-01-24 <rlk@sourceforge.net>
+
+ Files: acconfig.h (1.3) (+3 -1)
+ src/cups/Makefile.am (1.3) (+13 -13)
+ src/cups/genppd.c (1.5) (+3 -2)
+ src/ghost/Makefile.am (1.4) (+7 -3)
+ src/ghost/devs.mak.addon-5.10 (1.2) (+9 -9)
+
+ 1) Set HAVE_LIBZ correctly, so genppd compresses them (CUPS seems to
+ get surprisingly unhappy if it finds uncompressed .ppd files).
+ genppd also needs to include config.h for this to work, and the
+ CUPS makefile needs to set the -I flags correctly.
+
+ 2) CUPS prefix should default to /usr, not to whatever the prefix
+ normally is (Mike, please check).
+
+ 3) Rename calibrate to cups_calibrate.
+
+ 4) Generate the ppd's at install time, not at compile time (they're
+ part of the data). This one's arguable.
+
+ 5) Set cups_libdir and cups_datadir separately.
+
+ 6) cups_calibrate *should* get installed according to the prefix.
+
+ 7) Treat calibrate.ppm as just part of the data (don't treat it
+ specially; that makes the install do weird things).
+
+ 8) Install the .ppd files in the right place (datadir, not libdir).
+
+ 9) The Ghostscript driver needs both gdevstp-print.h and
+ gdevstp-print-internal.h. Also fix the header file name munging.
+
+2001-01-23 <rleigh@sourceforge.net>
+
+ Files: src/gimp/Makefile.am (1.3) (+5 -5)
+
+ Fix gimp install
+
+2001-01-23 <rleigh@sourceforge.net>
+
+ Files: src/cups/.cvsignore (1.2) (+9 -0)
+ src/ghost/.cvsignore (1.2) (+14 -0)
+ src/printdef/.cvsignore (1.1) ( )
+ test/.cvsignore (1.1) ( )
+
+ Added .cvsignore
+
+2001-01-23 <rleigh@sourceforge.net>
+
+ Files: .cvsignore (1.12) (+3 -0)
+ lib/.cvsignore (1.1) ( )
+ man/.cvsignore (1.1) ( )
+ po/.cvsignore (1.1) ( )
+ scripts/.cvsignore (1.1) ( )
+ src/.cvsignore (1.1) ( )
+ src/cups/.cvsignore (1.1) ( )
+ src/escputil/.cvsignore (1.1) ( )
+ src/ghost/.cvsignore (1.1) ( )
+ src/gimp/.cvsignore (1.1) ( )
+ src/main/.cvsignore (1.1) ( )
+
+ Added .cvsignore
+
+2001-01-23 <rleigh@sourceforge.net>
+
+ Files: .cvsignore (1.11) (+4 -16)
+ src/cups/Makefile.am (1.2) (+4 -3)
+ src/gimp/Makefile.am (1.2) (+5 -2)
+ src/main/Makefile.am (1.2) (+2 -1)
+ src/main/gimp-print-internal.h (1.1) ( )
+ src/printdef/printdef.h (1.3) (+1 -2)
+ test/testdither.c (1.3) (+2 -3)
+
+ Fix cups install, libgimpprint headers
+
+2001-01-23 <rlk@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.4) (+2 -3)
+
+ Nothing outside of libgimpprint should include gimp-print-internal.h.
+
+2001-01-23 <rlk@sourceforge.net>
+
+ Files: src/cups/rastertoprinter.c (1.4) (+2 -3)
+
+ Nothing outside of libgimpprint should include gimp-print-internal.h.
+
+2001-01-23 <rlk@sourceforge.net>
+
+ Files: src/gimp/print_gimp.h (1.3) (+1 -2)
+
+ Nothing outside of src/main should include gimp-print-internal.h.
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: src/ghost/Makefile.am (1.3) (+2 -2)
+
+ Fix ghost header and build all test programs except testdither
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.3) (+4 -3)
+ src/cups/rastertoprinter.c (1.3) (+4 -3)
+ src/gimp/print_gimp.h (1.2) (+3 -2)
+ src/main/print-canon.c (1.2) (+3 -2)
+ src/main/print-color.c (1.2) (+3 -2)
+ src/main/print-dither.c (1.2) (+3 -2)
+ src/main/print-escp2.c (1.2) (+3 -2)
+ src/main/print-lexmark.c (1.2) (+3 -2)
+ src/main/print-pcl.c (1.2) (+3 -2)
+ src/main/print-ps.c (1.2) (+3 -2)
+ src/main/print-util.c (1.2) (+3 -2)
+ src/main/print-weave.c (1.2) (+3 -2)
+ src/printdef/printdef.h (1.2) (+3 -2)
+ test/testdither.c (1.2) (+4 -3)
+
+ Split print.h into gimp-print.h and gimp-print-internal.h
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: README (1.42) (+5 -2)
+
+ Updated CVS build instructions
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: gimp.m4 (1.2) (+0 -0)
+
+ Remove gimp.m4 (now in scripts)
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: src/cups/genppd.c (1.2) (+3 -3)
+ src/cups/rastertoprinter.c (1.2) (+3 -3)
+
+ Modified to work with new build
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: po/POTFILES.in (1.1) ( )
+ src/ghost/COPYING (1.1) ( )
+ src/ghost/Makefile.am (1.2) (+1 -3)
+ src/ghost/README (1.1) ( )
+ src/ghost/README.bsd (1.1) ( )
+ src/ghost/debian-patch (1.1) ( )
+ src/ghost/debian-patch-stp (1.1) ( )
+ src/ghost/devs.mak.addon-5.10 (1.1) ( )
+ src/ghost/gdevstp.c (1.1) ( )
+
+ Moved ghostscript files under src/ghost. Added po/POTFILES.in
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: src/cups/COPYING (1.1) ( )
+ src/cups/README (1.1) ( )
+ src/cups/calibrate.ppm (1.1) ( )
+ src/cups/canon.c (1.1) ( )
+ src/cups/command.txt (1.1) ( )
+ src/cups/command.types (1.1) ( )
+ src/cups/commandtocanon.c (1.1) ( )
+ src/cups/commandtoepson.c (1.1) ( )
+ src/cups/epson.c (1.1) ( )
+ src/cups/genppd.c (1.1) ( )
+ src/cups/rastertoprinter.c (1.1) ( )
+ src/cups/commands/CleanAll.cmd (1.1) ( )
+ src/cups/commands/PrintAligmentPage.cmd (1.1) ( )
+ src/cups/commands/PrintSelfTestPage.cmd (1.1) ( )
+ src/cups/commands/ReportLevels.cmd (1.1) ( )
+ src/cups/commands/SetAlignment.cmd (1.1) ( )
+
+ Moved cups/* under src/cups
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: COPYING (1.3) (+1 -60)
+ NEWS (1.3) (+74 -62)
+ doc/FAQ.html (1.1) ( )
+ doc/print-color.png (1.1) ( )
+ doc/print-main.png (1.1) ( )
+ doc/print-setup.png (1.1) ( )
+
+ Moved documentation
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.2) (+3 -0)
+ scripts/autogen.sh (1.1) ( )
+ scripts/gettext.m4 (1.1) ( )
+ scripts/gimp.m4 (1.1) ( )
+ scripts/lcmessage.m4 (1.1) ( )
+ scripts/libtool.m4 (1.1) ( )
+ scripts/make-deb.sh (1.1) ( )
+ scripts/mkchlog (1.1) ( )
+ scripts/progtest.m4 (1.1) ( )
+
+ Move scripts under scripts. Add m4 macros (may be outdated)
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: print.h (1.106) (+2 -2)
+
+ Moved headers under src/include
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: printdef.h (1.6) (+1 -1)
+ printdefl.l (1.6) (+1 -1)
+ printdefy.y (1.19) (+1 -1)
+ src/printdef/printdef.h (1.1) ( )
+ src/printdef/printdefl.l (1.1) ( )
+ src/printdef/printdefy.y (1.1) ( )
+
+ Moved printdef sources under src/printdef
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: print-canon.c (1.114) (+1 -1)
+ print-color.c (1.12) (+1 -1)
+ print-dither.c (1.119) (+1 -1)
+ print-escp2.c (1.306) (+1 -1)
+ print-lexmark.c (1.22) (+1 -1)
+ print-pcl.c (1.113) (+1 -1)
+ print-ps.c (1.56) (+1 -1)
+ print-util.c (1.162) (+1 -1)
+ print-weave.c (1.12) (+1 -1)
+ quickmatrix257.h (1.5) (+1 -1)
+ ran.367.179.h (1.4) (+1 -1)
+ ran.509.131.h (1.4) (+1 -1)
+ src/main/print-canon.c (1.1) ( )
+ src/main/print-color.c (1.1) ( )
+ src/main/print-dither.c (1.1) ( )
+ src/main/print-escp2.c (1.1) ( )
+ src/main/print-lexmark.c (1.1) ( )
+ src/main/print-pcl.c (1.1) ( )
+ src/main/print-ps.c (1.1) ( )
+ src/main/print-util.c (1.1) ( )
+ src/main/print-weave.c (1.1) ( )
+ src/main/printers.xml (1.1) ( )
+ src/main/quickmatrix257.h (1.1) ( )
+ src/main/ran.367.179.h (1.1) ( )
+ src/main/ran.509.131.h (1.1) ( )
+
+ Moved libgimpprint sources under src/main
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: escp2-unprint.c (1.6) (+1 -1)
+ escp2-weavetest.c (1.19) (+1 -1)
+ pcl-unprint.c (1.19) (+2 -2)
+ printer_options.c (1.8) (+1 -1)
+ testdither.c (1.6) (+2 -2)
+ unprint.c (1.45) (+1 -1)
+ test/cyan-sweep.tif (1.1) ( )
+ test/escp2-weavetest.c (1.1) ( )
+ test/parse-escp2 (1.1) ( )
+ test/pcl-unprint.c (1.1) ( )
+ test/run-weavetest (1.1) ( )
+ test/testdither.c (1.1) ( )
+ test/unprint.c (1.1) ( )
+
+ Moved test programs under test
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: escputil.c (1.27) (+1 -1)
+ man/escputil.1.in (1.1) ( )
+ src/escputil/escputil.c (1.1) ( )
+
+ Moved escputil to src/escputil and man
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: gimp_color_window.c (1.25) (+1 -1)
+ gimp_main_window.c (1.80) (+1 -1)
+ gtk_color_window.c (1.26) (+1 -1)
+ gtk_main_window.c (1.64) (+1 -1)
+ print-image-gimp.c (1.11) (+2 -2)
+ print-intl.h (1.2) (+1 -1)
+ print.c (1.137) (+2 -2)
+ print_gimp.h (1.31) (+1 -1)
+ src/gimp/gimp_color_window.c (1.1) ( )
+ src/gimp/gimp_main_window.c (1.1) ( )
+ src/gimp/print-image-gimp.c (1.1) ( )
+ src/gimp/print-intl.h (1.1) ( )
+ src/gimp/print.c (1.1) ( )
+ src/gimp/print_gimp.h (1.1) ( )
+
+ Moved gimp-print plugin under src/gimp
+
+2001-01-22 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.84) (+63 -226)
+ autogen.sh (1.1) ( )
+ lib/Makefile.am (1.1) ( )
+ lib/alloca.c (1.1) ( )
+ lib/getopt.c (1.1) ( )
+ lib/getopt.h (1.1) ( )
+ lib/getopt1.c (1.1) ( )
+ lib/pathmax.h (1.1) ( )
+ lib/strcspn.c (1.1) ( )
+ lib/vasprintf.c (1.1) ( )
+ lib/xgetcwd.c (1.1) ( )
+ lib/xmalloc.c (1.1) ( )
+ lib/xmalloc.h (1.1) ( )
+ man/Makefile.am (1.1) ( )
+ src/Makefile.am (1.1) ( )
+ src/cups/Makefile.am (1.1) ( )
+ src/escputil/Makefile.am (1.1) ( )
+ src/ghost/Makefile.am (1.1) ( )
+ src/gimp/Makefile.am (1.1) ( )
+ src/main/Makefile.am (1.1) ( )
+ src/printdef/Makefile.am (1.1) ( )
+ test/Makefile.am (1.1) ( )
+
+ Added build scripts and new directories
+
+2001-01-20 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.79) (+41 -32)
+ gtk_main_window.c (1.63) (+24 -15)
+ print-canon.c (1.113) (+29 -18)
+ print-escp2.c (1.305) (+20 -9)
+ print-lexmark.c (1.21) (+37 -23)
+ print-pcl.c (1.112) (+22 -12)
+ print-ps.c (1.55) (+21 -10)
+ print-util.c (1.161) (+7 -7)
+ print.c (1.136) (+4 -3)
+ print.h (1.105) (+15 -91)
+ printdefy.y (1.18) (+27 -76)
+ printer_options.c (1.7) (+2 -2)
+
+ Create printfuncs_t that encapsulates all of the printer-specific
+ functions.
+
+ Clean up const everywhere. Everything now compiles without warnings
+ (except for a few strays that aren't related to const-ness).
+
+ Add gdevstp-print.h to the mak.addon files.
+
+2001-01-20 <ttonino@sourceforge.net>
+
+ Files: gimp_main_window.c (1.78) (+6 -5)
+
+ Fixed custom paper size setting in metric mode. Values were divided
+ instead of multiplied by 2.54, and a multiply was missing for width.
+
+2001-01-20 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.24) (+11 -5)
+ gimp_main_window.c (1.77) (+3 -3)
+ gtk_color_window.c (1.25) (+10 -10)
+ print-dither.c (1.118) (+39 -26)
+ print-util.c (1.160) (+4 -4)
+ print.h (1.104) (+4 -4)
+
+ Change stp_dither_algo_names to function interface.
+
+2001-01-20 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.112) (+3 -3)
+
+ Make a few more things static.
+
+2001-01-20 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.111) (+12 -12)
+ print-escp2.c (1.304) (+13 -13)
+ print-image-gimp.c (1.10) (+90 -48)
+ print-lexmark.c (1.20) (+14 -14)
+ print-pcl.c (1.111) (+12 -12)
+ print-ps.c (1.54) (+15 -15)
+ print-util.c (1.159) (+20 -20)
+ print.c (1.135) (+3 -3)
+ print.h (1.103) (+69 -71)
+ print_gimp.h (1.30) (+9 -2)
+ printer_options.c (1.6) (+1 -93)
+
+ Convert Image to true polymorphic stp_image_t.
+
+ Add bjc-55 and bjc-85 as aliases for bjc-2000 per Till Kamppeter.
+
+2001-01-19 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.23) (+5 -5)
+ gimp_main_window.c (1.76) (+17 -17)
+ gtk_color_window.c (1.24) (+4 -4)
+ gtk_main_window.c (1.62) (+7 -7)
+ print-canon.c (1.110) (+34 -34)
+ print-color.c (1.11) (+4 -4)
+ print-dither.c (1.117) (+56 -56)
+ print-escp2.c (1.303) (+34 -34)
+ print-lexmark.c (1.19) (+40 -37)
+ print-pcl.c (1.110) (+34 -34)
+ print-ps.c (1.53) (+10 -10)
+ print-util.c (1.158) (+27 -26)
+ print-weave.c (1.11) (+5 -5)
+ print.c (1.134) (+16 -16)
+ print.h (1.102) (+50 -50)
+ printdefy.y (1.17) (+5 -5)
+ printer_options.c (1.5) (+3 -3)
+ testdither.c (1.5) (+37 -37)
+
+ More renaming with stp_ prefix
+
+2001-01-16 <rlk@sourceforge.net>
+
+ Files: printdefy.y (1.16) (+2 -2)
+
+ Make printer_count static too.
+
+2001-01-16 <rlk@sourceforge.net>
+
+ Files: printdefy.y (1.15) (+2 -2)
+
+ Make the printer list static to print-util.c.
+
+2001-01-15 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.18) (+2 -2)
+ escputil.c (1.26) (+5 -5)
+ gimp_color_window.c (1.22) (+7 -7)
+ gimp_main_window.c (1.75) (+15 -15)
+ gtk_color_window.c (1.23) (+6 -6)
+ gtk_main_window.c (1.61) (+6 -6)
+ print-canon.c (1.109) (+50 -50)
+ print-color.c (1.10) (+17 -17)
+ print-dither.c (1.116) (+9 -9)
+ print-escp2.c (1.302) (+246 -220)
+ print-lexmark.c (1.18) (+17 -17)
+ print-pcl.c (1.109) (+44 -44)
+ print-ps.c (1.52) (+16 -16)
+ print-util.c (1.157) (+30 -30)
+ print.c (1.133) (+32 -32)
+ print.h (1.101) (+95 -87)
+ printdef.h (1.5) (+2 -2)
+ printdefy.y (1.14) (+4 -4)
+ printer_options.c (1.4) (+2 -2)
+ testdither.c (1.4) (+8 -8)
+
+ Rename all data types declared in print.h to have 'stp_' prefix.
+
+2001-01-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.301) (+4 -4)
+
+ One more 7 color fix
+
+ Increase the compression buffer size for 2880 DPI.
+
+2001-01-14 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.300) (+11 -10)
+
+ Free dark yellow if it exists.
+
+2001-01-08 <easysw@sourceforge.net>
+
+ Files: print-escp2.c (1.265.2.1) (+12 -2)
+
+ Stylus Color 680/777 support in 4.0.x tree.
+
+2001-01-07 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.83) (+2 -1)
+
+ Turnf off FORCE_ACLOCAL hack
+
+2001-01-07 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.82) (+1 -1)
+
+ Put change log in correct location
+
+2001-01-06 <rlk@sourceforge.net>
+
+ Files: README (1.41) (+1 -1)
+
+ Note new autoheader requirement.
+
+2001-01-06 <rleigh@sourceforge.net>
+
+ Files: acconfig.h (1.1) ( )
+
+ Add acconfig.h to generate config.h.in with autoheader
+
+2001-01-05 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.25) (+3 -3)
+
+ Emergency fix to configure to allow config.h to be created.
+
+2001-01-05 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.24) (+3 -1)
+ print-escp2.c (1.299) (+15 -2)
+
+ Add Stylus Photo 890
+
+2001-01-04 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.298) (+14 -1)
+
+ Support the Stylus Photo 1290
+
+2001-01-03 <rwisi@sourceforge.net>
+
+ Files: print-lexmark.c (1.17) (+1207 -463)
+
+ Several things:
+ -) correct calculation of page offsets
+ -) corrected error at bidirectional printing
+ -) better density adaptation
+ -) support of resolutionspecific parameters
+ -) some testing code. First, printing bars of pure color and lines to see offset between colors. Second, the file /xx.ppm will be created when debug mode is on. This is the image used for printing.
+ -) bidirectional printing is now configurable
+ -) added support for the Lexm. 3200 received from Daniel Gordini (Thank's to him !!)
+
+2001-01-03 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.81) (+4 -4)
+ escp2-unprint.c (1.5) (+4 -1)
+ escp2-weavetest.c (1.17) (+4 -1)
+ escputil.c (1.23) (+4 -1)
+ gimp_color_window.c (1.21) (+2 -2)
+ gimp_main_window.c (1.74) (+2 -2)
+ gtk_color_window.c (1.22) (+4 -1)
+ gtk_main_window.c (1.60) (+4 -1)
+ pcl-unprint.c (1.18) (+5 -2)
+ print-canon.c (1.108) (+4 -1)
+ print-color.c (1.9) (+4 -2)
+ print-dither.c (1.115) (+4 -2)
+ print-escp2.c (1.297) (+4 -1)
+ print-image-gimp.c (1.9) (+3 -3)
+ print-lexmark.c (1.16) (+4 -3)
+ print-pcl.c (1.108) (+4 -1)
+ print-ps.c (1.51) (+4 -1)
+ print-util.c (1.156) (+4 -2)
+ print-weave.c (1.10) (+4 -1)
+ print.c (1.132) (+3 -3)
+ printer_options.c (1.3) (+4 -1)
+ testdither.c (1.3) (+5 -3)
+ unprint.c (1.44) (+4 -1)
+
+ Added global header (config.h) support
+ Added support for gimp plugin install in home directories
+
+2001-01-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.296) (+3 -3)
+
+ A couple more instances of the 7-color problem. These won't matter
+ until we support the PM-900C.
+
+2001-01-02 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.73) (+15 -5)
+
+ Update the page size boxes when units change.
+
+2001-01-01 <rlk@sourceforge.net>
+
+ Files: README (1.40) (+3 -1)
+ escp2-unprint.c (1.4) (+15 -15)
+ gimp_main_window.c (1.72) (+161 -14)
+ pcl-unprint.c (1.17) (+21 -21)
+ print-canon.c (1.107) (+24 -24)
+ print-dither.c (1.114) (+68 -68)
+ print-escp2.c (1.295) (+23 -22)
+ print-lexmark.c (1.15) (+98 -98)
+ print-pcl.c (1.107) (+48 -48)
+ print-ps.c (1.50) (+13 -13)
+ print-util.c (1.155) (+12 -7)
+ print-weave.c (1.9) (+72 -72)
+ print.c (1.131) (+8 -2)
+ print.h (1.100) (+21 -21)
+ unprint.c (1.43) (+18 -18)
+
+ Support custom paper sizes in the Gimp plugin. It's possible that
+ the Ghostscript and CUPS drivers will just work; it's also possible
+ that they don't even need these changes.
+
+ Fix the mishmash of "length" and "height" to all be "height" when
+ referring to the long/vertical dimension of a page.
+
+ Fix a nasty little bug in the Epson driver.
+
+2000-12-31 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.80) (+33 -24)
+
+ Enable VPATH build with $(top_srcdir) and $(srcdir)
+
+2000-12-31 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.294) (+55 -4)
+
+ First cut at roll feed printing for ESP 870/1270 from Steve Kann
+ <stevek@stevek.com>
+
+2000-12-30 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.106) (+3 -2)
+ print-color.c (1.8) (+43 -16)
+ print-escp2.c (1.293) (+141 -43)
+ print-lexmark.c (1.14) (+2 -2)
+ print-pcl.c (1.106) (+2 -2)
+ print-ps.c (1.49) (+3 -3)
+ print.h (1.99) (+4 -3)
+
+ Saturation adjustments in addition to hue and luminosity.
+
+2000-12-30 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.71) (+11 -8)
+ gtk_main_window.c (1.59) (+5 -5)
+
+ Size correctly for extremely tiny images.
+
+2000-12-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.292) (+210 -143)
+
+ Tune (somewhat) the 870/1270.
+
+ Prep for release 4.0.2.
+
+2000-12-24 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.105) (+1 -2)
+ print-color.c (1.7) (+2 -2)
+ print-dither.c (1.113) (+8 -3)
+ print-escp2.c (1.291) (+19 -20)
+ print-lexmark.c (1.13) (+1 -2)
+ print-pcl.c (1.105) (+1 -2)
+ print-ps.c (1.48) (+1 -2)
+ print.c (1.130) (+3 -3)
+ print.h (1.98) (+135 -9)
+
+ More color tweaking for Epson printers.
+
+ Comments in print.h.
+
+ Remove copies argument to print function; nothing implements it, and
+ this isn't really the right place to do it.
+
+2000-12-23 <rleigh@sourceforge.net>
+
+ Files: escputil.c (1.22) (+1 -30)
+
+ Removed old commented-out code
+
+2000-12-23 <rlk@sourceforge.net>
+
+ Files: README (1.39) (+1 -1)
+ print-escp2.c (1.290) (+29 -29)
+ print-lexmark.c (1.12) (+29 -29)
+ print-pcl.c (1.104) (+29 -29)
+
+ Improve color some more
+
+2000-12-22 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.21) (+2 -2)
+
+ Typo here
+
+2000-12-22 <rleigh@sourceforge.net>
+
+ Files: Makefile.am (1.79) (+2 -0)
+ escputil.c (1.20) (+101 -27)
+
+ Added GNU readline support to escputil
+
+2000-12-22 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.289) (+5 -5)
+
+ Fix STC 640/660.
+
+2000-12-22 <rlk@sourceforge.net>
+
+ Files: print-color.c (1.6) (+3 -1)
+ print-escp2.c (1.288) (+41 -41)
+ print-lexmark.c (1.11) (+73 -72)
+ print-pcl.c (1.103) (+73 -72)
+
+ Improve (I hope) color rendition a bit more...
+
+2000-12-21 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.112) (+2 -2)
+
+ Fix problem with hollow letters and the like.
+
+2000-12-21 <rlk@sourceforge.net>
+
+ Files: print-color.c (1.5) (+33 -33)
+ print-escp2.c (1.287) (+41 -41)
+
+ Try to improve color rendition a bit more.
+
+2000-12-21 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.111) (+45 -55)
+
+ Try to attack some overflow problems.
+
+2000-12-20 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.286) (+59 -59)
+
+ Some tuning based on Gareth Watts's results.
+
+2000-12-18 <rlk@sourceforge.net>
+
+ Files: README (1.38) (+0 -6)
+
+ Prep for 4.1.0 release
+
+2000-12-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.285) (+2 -1)
+
+ Add 720 micoweave unidirectional
+
+2000-12-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.284) (+2 -1)
+
+ Add 180 unidirectional
+
+2000-12-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.283) (+109 -71)
+
+ Prepare Epson driver for future 7 color printer(s).
+
+ Add S450 as alias for Canon bjc-6000
+
+2000-12-17 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.110) (+18 -18)
+ print-escp2.c (1.282) (+361 -518)
+
+ Generate dither matrices more correctly.
+
+ Revamp ink type stuff heavily in Epson driver.
+
+2000-12-16 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.109) (+26 -3)
+
+ Look a little better in very fast mode, at least at square resolutions.
+
+2000-12-16 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.108) (+77 -115)
+
+ More cleanup of the dither code.
+
+2000-12-16 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.104) (+12 -11)
+ print-dither.c (1.107) (+235 -345)
+ print-escp2.c (1.281) (+9 -9)
+ print-lexmark.c (1.10) (+5 -5)
+ print-pcl.c (1.102) (+9 -7)
+ print-util.c (1.154) (+2 -2)
+ print.h (1.97) (+20 -44)
+
+ Start collapsing the per-color data structures and functions in
+ the dither code into arrays.
+
+2000-12-14 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.78) (+9 -4)
+ README (1.37) (+1 -1)
+ print-dither.c (1.106) (+54 -52)
+ print-escp2.c (1.280) (+31 -23)
+
+ Add higher quality 360 DPI printing modes.
+
+ Try to improve ordered dither on 6 color printers.
+
+2000-12-11 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.105) (+74 -99)
+
+ Fix up use of black vs. composite grayscale in fast dither mode.
+
+2000-12-10 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.104) (+78 -5)
+
+ More opportunities for blank line elimination
+
+2000-12-10 <rlk@sourceforge.net>
+
+ Files: printdefy.y (1.13) (+6 -1)
+
+ Fix up describe_resolution member.
+
+2000-12-10 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.103) (+2 -2)
+ print-escp2.c (1.279) (+2 -2)
+
+ Turn off debug messages by default on Canon driver.
+
+ Minor update to glossy film in Epson driver.
+
+2000-12-10 <rlk@sourceforge.net>
+
+ Files: print-lexmark.c (1.9) (+11 -1)
+ print-pcl.c (1.101) (+18 -1)
+ print-ps.c (1.47) (+14 -1)
+ print.h (1.96) (+19 -3)
+
+ Add describe_resolution "member" function to printer_t
+
+2000-12-10 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.102) (+11 -1)
+ print-escp2.c (1.278) (+24 -1)
+
+ Add describe_resolution "member" function to printer_t
+
+2000-12-09 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.277) (+8 -7)
+
+ Add premium luster photo paper.
+
+2000-12-09 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.77) (+1 -1)
+ print-escp2.c (1.276) (+21 -21)
+
+ Change some resolution names in Epson driver.
+
+ Put a copy of the GPL in the top level distribution.
+
+2000-12-08 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.103) (+472 -227)
+ print-escp2.c (1.275) (+41 -36)
+
+ Finally figured out how to do error diffusion on black ink with color
+ printing! I'm not entirely sure what didn't work before.
+
+ Improve printing quality on 4 pl printers at 1440x720 dpi.
+
+ Add a whole slew of additional unidirectional resolutions to
+ get better print quality with halfway decent speed.
+
+2000-12-04 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.102) (+9 -11)
+ quickmatrix257.h (1.4) (+6006 -5953)
+ ran.367.179.h (1.3) (+5974 -6591)
+ ran.509.131.h (1.3) (+6063 -6668)
+
+ Prescale the dither matrices to [0..65535] to allow storing them
+ as unsigned short arrays in the binary, to substantially reduce
+ binary size.
+
+2000-12-04 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.101) (+7 -1)
+
+ Actually do the black density.
+
+2000-12-04 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.100) (+16 -1)
+ print-pcl.c (1.100) (+53 -1)
+ print.h (1.95) (+3 -2)
+
+ Actually add luminosity lookup to PCL driver.
+
+ Add black density to allow setting density of black independent of
+ color in color mode.
+
+ Don't forcibly set optimization level in configure if user has
+ specified something else.
+
+2000-12-03 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.70) (+2 -2)
+ print-canon.c (1.101) (+2 -2)
+ print-color.c (1.4) (+57 -27)
+ print-dither.c (1.99) (+76 -39)
+ print-escp2.c (1.274) (+65 -12)
+ print-lexmark.c (1.8) (+54 -2)
+ print-pcl.c (1.99) (+2 -2)
+ print-ps.c (1.46) (+3 -3)
+ print.h (1.94) (+3 -3)
+
+ Use luminosity adjustment to further improve color.
+
+2000-11-30 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.100) (+40 -58)
+
+ * Enabled handling of media base density
+ * Some basic adjustments for the bjc6200 model
+
+2000-11-29 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.99) (+11 -11)
+
+ Added some documentation regarding print-canon.c
+
+2000-11-29 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.98) (+1133 -128)
+
+ * Completely revised the ink handling (which was in fact inexistent sofar)
+ by heavily copying from print-escp2.c
+ This way the output can now be adjusted on a per-model-basis as described
+ in README.new-printers
+
+ * TODO: - adjust all supported printers and choose the appropriate inktype
+ - find a way to handle 3color and 7color printers
+ - some code-cleanups
+
+2000-11-28 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.19) (+25 -3)
+ print-color.c (1.3) (+3 -31)
+
+ Hue adjustment does nothing useful in solid colors mode.
+
+ Retry reading from printer in escputil for better reliability.
+
+2000-11-27 <rlk@sourceforge.net>
+
+ Files: README (1.35.2.5) (+1 -1)
+ print-util.c (1.150.2.1) (+2 -2)
+
+ Fix posterization at low saturation.
+
+ Release 4.0.4 for emergency configure problem (bug 116313 popped up
+ again due to my system upgrade).
+
+2000-11-27 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.97) (+2 -2)
+
+ Fix for bjc7000 bottom margin problem provided by Bodo Huckestein
+
+2000-11-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.273) (+307 -101)
+ print-lexmark.c (1.7) (+2 -2)
+ print-pcl.c (1.98) (+2 -2)
+
+ Tweak the hue map a bit more
+
+ Add support for 1440 dpi vertical resolution to Epson driver (in
+ case anyone wants to experiment with this).
+
+2000-11-25 <rlk@sourceforge.net>
+
+ Files: print-color.c (1.2) (+3 -6)
+ print-dither.c (1.98) (+11 -2)
+ print-escp2.c (1.272) (+65 -27)
+ print-lexmark.c (1.6) (+36 -12)
+ print-pcl.c (1.97) (+36 -12)
+
+ Increase the resolution of the hue mapper
+
+ Tweak Epson printers
+
+ Fix transition issues in dither code
+
+2000-11-23 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.271) (+11 -11)
+
+ Tweak the hue adjustments.
+
+2000-11-22 <rlk@sourceforge.net>
+
+ Files: README (1.35.2.4) (+1 -1)
+
+ Prep for 4.0.3
+
+2000-11-21 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.97) (+14 -5)
+
+ Make dither_set_black_levels do something useful.
+
+2000-11-20 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.96) (+32 -2)
+
+ Try to address purple problem here, too.
+
+2000-11-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.270) (+34 -36)
+
+ Minor code cleanup
+
+2000-11-19 <rlk@sourceforge.net>
+
+ Files: print-lexmark.c (1.5) (+31 -4)
+
+ Color correction
+
+2000-11-19 <rlk@sourceforge.net>
+
+ Files: print-lexmark.c (1.4) (+19 -15)
+
+ Cleanup
+
+2000-11-19 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.96) (+2 -93)
+ print-escp2.c (1.269) (+33 -915)
+ print-pcl.c (1.95) (+3 -84)
+ print-weave.c (1.8) (+881 -1)
+ print.h (1.93) (+37 -11)
+
+ Split out all the bit twiddling functions into print-weave.c.
+
+2000-11-19 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.76) (+6 -4)
+ print-color.c (1.1) ( )
+ print-util.c (1.153) (+2 -1537)
+
+ Split print-util into print-util.c and print-color.c.
+
+2000-11-19 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.69) (+2 -2)
+ print-canon.c (1.95) (+2 -2)
+ print-escp2.c (1.268) (+32 -2)
+ print-lexmark.c (1.3) (+2 -2)
+ print-pcl.c (1.94) (+2 -2)
+ print-ps.c (1.45) (+4 -3)
+ print-util.c (1.152) (+84 -30)
+ print.h (1.92) (+9 -3)
+
+ Hue mapping to improve color
+
+2000-11-18 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.87.2.2) (+37 -2)
+
+ Per Dave Hill, the 1200C cannot print CMYK, only CMY or K.
+
+2000-11-18 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.93) (+5 -0)
+
+ Divided density by 2 for 840 CRET mode. This is Robert's version of
+ Tommy's latest patch.
+
+2000-11-18 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.92) (+37 -2)
+
+ Although the 1200C has CMYK ink, it cannot use K at the same time as
+ CMY! Split it off from the 1600 (which *may* be able to do this). Thanks
+ to Dieter Schollmeyer for noting this.
+
+2000-11-18 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.18) (+4 -2)
+ print-escp2.c (1.267) (+14 -3)
+ print-util.c (1.151) (+3 -1)
+
+ 1) Support for the Stylus Photo 790 (new printer on the Epson HK web site,
+ not currently on the US site). Also list the 680, which appears to
+ be the 777.
+
+ 2) In update_cmyk in print-util.c, don't bail out if it's all black.
+ However, there may be another error which I need to look at.
+
+2000-11-18 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.75) (+4 -3)
+ print-dither.c (1.96) (+9 -1)
+ print-escp2.c (1.266) (+326 -210)
+ ran.509.131.h (1.2) (+22 -0)
+
+ Support 2880x720
+
+2000-11-18 <mitsch@sourceforge.net>
+
+ Files: print.c (1.129) (+6 -2)
+
+ To make copying files to gimpcvs easier, check for INIT_I18N_UI
+ and use that macro instead of INIT_LOCALE if it exists.
+
+ Fixes #122731
+
+2000-11-17 <mitsch@sourceforge.net>
+
+ Files: print.c (1.128.2.1) (+6 -2)
+
+ To make copying files to gimpcvs easier, check for INIT_I18N_UI
+ and use that macro instead of INIT_LOCALE if it exists.
+
+ Fixes #122731
+
+2000-11-12 <rwisi@sourceforge.net>
+
+ Files: print-lexmark.c (1.2) (+37 -42)
+
+ Corrected error in print-lexmark.c at photo prints.
+
+2000-11-12 <rwisi@sourceforge.net>
+
+ Files: Makefile.am (1.74) (+1 -0)
+ print-lexmark.c (1.1) ( )
+ print.h (1.91) (+14 -2)
+ printdefy.y (1.12) (+12 -1)
+
+ Added support for Lexmark Z52.
+
+2000-11-12 <sharkey@sourceforge.net>
+
+ Files: debian/changelog (1.2) (+6 -0)
+
+ Bump the revision number up to 4.0.2.
+
+2000-11-11 <ttonino@sourceforge.net>
+
+ Files: ran.509.131.h (1.1) ( )
+
+ Generated new matrix for printers with 4:1 resolution, for example 2880x720
+ DPI.
+
+2000-11-06 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.89.2.3) (+2 -2)
+
+ Fixed malformed debugmessage
+
+2000-11-06 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.94) (+2 -2)
+
+ Fixed malformed debug message
+
+2000-11-04 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.89.2.2) (+8 -2)
+
+ 121601 Canon driver fails with no specified InkType
+
+2000-11-04 <rlk@sourceforge.net>
+
+ Files: README (1.35.2.3) (+1 -1)
+
+ 121169 Ghostscript driver prints second+ pages incorrectly
+ 121170 CUPS driver produces incorrect color balance/density
+
+2000-11-02 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.70.2.3) (+1 -1)
+
+ Need the source for the man page, not the man page itself, at top level.
+
+2000-10-31 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.73) (+2 -1)
+
+ Copy escputil man page to Ghost directory
+
+2000-10-31 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.70.2.2) (+5 -1)
+
+ escputil man page
+
+2000-10-31 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.10) (+1 -0)
+ Makefile.am (1.72) (+3 -0)
+
+ escputil man page
+
+2000-10-29 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.91) (+15 -13)
+
+ Latest version of Tommy's CRET patch.
+ Changed 810/812/842 and 895 printers to the 840 CRET driver.
+
+2000-10-29 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.71) (+1 -1)
+ escputil.c (1.17) (+2 -2)
+ print-pcl.c (1.90) (+2 -2)
+
+ Bring over a few fixes from 4.0+
+
+2000-10-29 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.70.2.1) (+1 -1)
+ README (1.35.2.2) (+4 -4)
+ escputil.c (1.15.2.2) (+2 -2)
+
+ 119667 INSTALL file is out of date
+ 119668 escputil will not compile on non-GNU system
+ 119669 escputil in Ghostscript in 4.0.0 is obsolete.
+ Bump version.
+
+2000-10-24 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.89.2.1) (+2 -2)
+
+ Fixed a bug leading to wrong horizontal offsets when xdpi != ydpi
+
+2000-10-24 <rlk@sourceforge.net>
+
+ Files: README (1.35.2.1) (+6 -7)
+
+ Prep for 4.0.0
+
+2000-10-23 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.87.2.1) (+2 -2)
+
+ 116840 LaserJet 4 can do 600 DPI
+
+2000-10-23 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.89) (+45 -6)
+
+ Updated to latest version of Tommy's patch, plus fixed 8xx C-RET.
+
+2000-10-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.93) (+2 -2)
+
+ Fixed small bug leading to wrong horizontal offsets for xdpi != ydpi
+
+2000-10-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.92) (+8 -2)
+
+ Changed fallback behaviour for unspecified inktypes: CMYK, CMY or K are
+ used if available. This makes color printing with cups possible even with
+ missing InkType specifications.
+
+2000-10-21 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.16) (+2 -1)
+
+ 117385 escputil doesn't work with old printers if -m is specified
+
+2000-10-21 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.15.2.1) (+2 -1)
+
+ 117385 escputil doesn't work with old printers if -m is specified
+
+2000-10-20 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.91) (+11 -1)
+
+ Added support for the Canon BJC-6200 -- Mostly functional, quite good output
+
+2000-10-20 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.90) (+12 -1)
+
+ Added support for Canon BJC-30 as suggested by Tim Hanham
+
+2000-10-20 <rlk@sourceforge.net>
+
+ Files: README (1.36) (+6 -11)
+ print-pcl.c (1.88) (+40 -8)
+
+ Tommy Schultz Lassen's CRET patch; initialize 4.1 branch
+
+2000-10-19 <rlk@sourceforge.net>
+
+ Files: README (1.35) (+24 -5)
+
+ 4.0.0rc1 prep
+
+2000-10-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.265) (+6 -6)
+
+ 116864 Part of bottom edge goes onto second page (still)
+
+2000-10-17 <rlk@sourceforge.net>
+
+ Files: gimp.m4 (1.1) ( )
+
+ A (hopefully) safe gimp.m4 for use with aclocal
+
+2000-10-17 <rlk@sourceforge.net>
+
+ Files: print-weave.c (1.7) (+2 -2)
+
+ Remove C++ comment
+
+2000-10-16 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.87) (+8 -2)
+
+ 116841 LaserJet 4 output offset upwards
+
+2000-10-14 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.86) (+3 -3)
+
+ 116840 LaserJet 4 can do 600 DPI
+ cpbs code review comment
+
+2000-10-14 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.15) (+4 -4)
+
+ 116851 escputil has unnecessary GNU getopt dependency
+
+2000-10-14 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.70) (+1 -1)
+ escputil.c (1.14) (+4 -2)
+ gimp_main_window.c (1.68) (+14 -1)
+ gtk_main_window.c (1.58) (+14 -1)
+ print.c (1.128) (+21 -6)
+
+ Proposed fixes for:
+
+ 116840 LaserJet 4 can do 600 DPI
+ 116842 bsearch not called correctly
+ 116843 cups files not getting cleaned properly
+ 116846 scaling doesn't reload properly in PPI mode
+ 116851 escputil has unnecessary GNU library dependency
+
+2000-10-12 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.67) (+4 -2)
+
+ 116696: gcc dependency
+
+2000-10-12 <easysw@sourceforge.net>
+
+ Files: print-util.c (1.150) (+3 -4)
+
+ Changed /'s in size names to dashes - /'s not compatible with PPD files...
+
+ Removed duplicate 8x12 size entry (caused off-by-one problems in GUI
+ interfaces)
+
+ Added support for image type option (default to continuous/photo)
+
+2000-10-12 <rlk@sourceforge.net>
+
+ Files: README (1.34) (+1 -1)
+
+ Prep for 4.0b3
+
+2000-10-11 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.69) (+21 -0)
+
+ Warning in regards bug 116313
+
+2000-10-11 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.68) (+1 -1)
+
+ Description about how to build GhostScript under BSD
+
+2000-10-10 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.89) (+14 -9)
+
+ 116092 Bad bjc-7000 specifications
+
+2000-10-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.264) (+8 -8)
+ print-util.c (1.149) (+13 -1)
+
+ 115794 ESC 480 doesn't print
+ 116113 print-escp2.c requires #include <sys/types.h> (not really)
+ 116286 Some PCL paper sizes listed in print-pcl but not print-util
+
+2000-10-04 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.66) (+4 -1)
+ gtk_color_window.c (1.21) (+2 -2)
+ gtk_main_window.c (1.57) (+4 -1)
+ print.c (1.127) (+4 -3)
+
+ 115959: dither algorithm isn't set for new printers
+ 115960: parameters are set incorrectly when a new printer is added.
+
+2000-10-04 <mitsch@sourceforge.net>
+
+ Files: gimp_main_window.c (1.65) (+2 -2)
+
+ s/gtk_container_border_width/gtk_container_set_border_width/
+
+2000-10-04 <mitsch@sourceforge.net>
+
+ Files: gimp_color_window.c (1.20) (+73 -67)
+ gimp_main_window.c (1.64) (+345 -314)
+ print-image-gimp.c (1.8) (+7 -2)
+ print.c (1.126) (+7 -2)
+
+ - added some #ifdef's to make copying over to gimp easier
+ - added some prototypes
+ - g* types at some places and minimal changes (not changing the logic)
+
+2000-10-03 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.148) (+2 -1)
+
+ Epson 4x6 photo paper is really 4.25x6.875
+
+2000-10-02 <rlk@sourceforge.net>
+
+ Files: README (1.33) (+3 -3)
+
+ Minor updates
+
+2000-10-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.263) (+2 -2)
+
+ Attempt to fix 115794 microweave in addition to softweave modes.
+
+2000-10-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.262) (+3 -3)
+
+ Attempt to fix 115794
+
+2000-10-01 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.85) (+50 -1)
+
+ Created new model "901" for large format 900 series printers. Moved
+ DJ 1220C into it. [Bruce Burden]
+
+2000-10-01 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.147) (+2 -2)
+
+ 115774: photo mode default saturation is excessive. It appears from
+ tests on my wedding photo and on the car photo that the saturation
+ boost is in fact harmful.
+
+2000-09-30 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.146) (+3 -3)
+
+ Fix 4A paper size.
+
+2000-09-30 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.145) (+47 -25)
+
+ 115513:
+
+ Restore the paper sizes per Mike Sweet. Use a fuzzy match in
+ get_papersize_by_size.
+
+2000-09-29 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.144) (+41 -25)
+
+ Fix 115513:
+
+ 1) In Ghostscript driver, attempt to convert from page size back to
+ named size.
+
+ 2) Fix some named sizes to correspond precisely with Ghostscript sizes.
+
+ 3) Use case-insensitive string comparison to match paper size names.
+
+2000-09-28 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.88) (+6 -1)
+ print-dither.c (1.95) (+6 -1)
+ print-escp2.c (1.261) (+6 -5)
+ print-pcl.c (1.84) (+6 -1)
+ print-ps.c (1.44) (+6 -1)
+ print-util.c (1.143) (+6 -1)
+ print-weave.c (1.6) (+6 -1)
+ print.h (1.90) (+4 -13)
+
+ Remove unnecessary includes and warn that no non-standard files may
+ be included in any of these source files.
+
+2000-09-27 <rlk@sourceforge.net>
+
+ Files: print-weave.c (1.5) (+6 -2)
+
+ 115512: print-weave.c uses illegal C construct
+
+2000-09-27 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.83) (+16 -17)
+
+ Changed fallback if 600x600 is used on a printer that only supports it
+ in mono: It used to change to 300x300 colour, now it changes to 600x600
+ mono. [BUG #115178]
+
+2000-09-24 <rlk@sourceforge.net>
+
+ Files: README (1.32) (+3 -0)
+
+ Instructions for building the CUPS driver from CVS.
+
+2000-09-23 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.13) (+24 -11)
+
+ Improve documentation.
+
+ In the last alignment pass, request that a fresh sheet of paper be
+ inserted rather than the same sheet.
+
+2000-09-23 <rlk@sourceforge.net>
+
+ Files: README (1.31) (+4 -2)
+ gimp_main_window.c (1.63) (+2 -2)
+ print.c (1.125) (+2 -11)
+
+ 115171: Plugin does not restore image size correctly in PPI mode.
+
+2000-09-23 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.12) (+55 -3)
+
+ Attempt to autodetect printer model for alignment.
+
+2000-09-23 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.11) (+191 -225)
+
+ 115066: Alignment fails on 660
+
+ Remove the -l and -o (new and old series printers) and replace with -m
+ (requiring specification of a printer model).
+
+2000-09-23 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.260) (+2 -2)
+
+ 115152: Print dot setting is incorrect at 360 softweave on 720.
+
+2000-09-22 <ttonino@sourceforge.net>
+
+ Files: Matgen/quickaspect.c (1.1) ( )
+
+ Allows generation of matrices for non-square pixels
+
+2000-09-22 <ttonino@sourceforge.net>
+
+ Files: Matgen/quickdistance.c (1.3) (+3 -0)
+
+ Placed code in the public domain.
+
+2000-09-22 <ttonino@sourceforge.net>
+
+ Files: Matgen/dither-distance.c (1.2) (+3 -1)
+
+ Placed code in the public domain.
+
+2000-09-21 <easysw@sourceforge.net>
+
+ Files: Makefile.am (1.67) (+1 -0)
+
+ Added missing command.types and calibrate.ppm to Makefile.am.
+
+2000-09-20 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.66) (+2 -1)
+
+ Need one more file in the CUPS distribution
+
+2000-09-20 <rlk@sourceforge.net>
+
+ Files: README (1.30) (+6 -9)
+
+ 4.0b1
+
+2000-09-18 <easysw@sourceforge.net>
+
+ Files: print-escp2.c (1.259) (+2 -2)
+
+ Updated print densities for 2000P; the previous ones were just a little
+ low, so I bumped them by 20%.
+
+ Updated configure script and makefile to correctly figure out the right
+ configuration directory for CUPS.
+
+ Updated the makefile again to use .SILENT and the echos, but added a
+ set of echos at the beginning to show the compiler and options that are
+ being used. This is much cleaner than a 3+ line listing for each source
+ file in a make log for those extra-long autoconf CFLAGS lines.
+
+ Fixed include file nonsense; all needed include files should be there now,
+ and all duplicates removed.
+
+2000-09-17 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.82) (+59 -2)
+
+ Split LaserJet 5 and 6 from LaserJet 4 (they support 600x600dpi).
+ Split LaserJet 5Si from 4V, 4Si (same).
+ These are internal model number changes only - no external effect.
+
+2000-09-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.258) (+2 -2)
+
+ ESC 740 is a narrow printer
+
+2000-09-17 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.81) (+20 -23)
+
+ The "Deskjet 800 saga...
+
+ Removed the "Deskjet 800 series" entry in printers.xml. Replaced
+ it with separate entries for all the 8xx printers, pointing
+ at the 800 driver or the 601 driver. THIS REMOVES THE "pcl-800"
+ DRIVER!
+
+ Moved the 1220C from the 1100/1120 driver to the 900 driver.
+
+ Renamed the extra resolutions in the 900 driver to correspond to
+ Mike's Docs, then disabled them (cos they don't work).
+
+ Changed PCL_RES_600_600_MONO to PCL_RES_600_600 for the 2000/2500.
+
+ Added the PhotoSmart P1000/P1100 (pcl-P1000, pcl-P1100) to point at
+ the 900 driver. DO not get confused between "pcl-1100" (DJ 1100C) and
+ "pcl-P1100" (PhotoSmart 1100)!
+
+ Removed PCL_COLOR_CMYK4 (C-RET) from 900 driver (it was a guess!).
+
+ Bug Fixes:
+
+ Added PCL_PAPERSOURCE_STANDARD to DJ340.
+
+ Removed duplicate PCL_RES_600_600_MONO from 800 driver.
+
+ Shuffled Deskjet 520 entry in printers.xml to put it in order.
+
+2000-09-17 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.16) (+5 -4)
+
+ Remove compiler warning about "id".
+
+2000-09-17 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.65) (+7 -5)
+ README (1.29) (+6 -0)
+ print-dither.c (1.94) (+2 -2)
+ print-util.c (1.142) (+234 -10)
+
+ Display the thumbnail/placement widgets correctly in monochrome mode.
+ A nice side effect is that we get significantly improved performance
+ in monochrome mode at least in some cases.
+
+ Put escputil in the Ghostscript distribution also.
+
+2000-09-17 <rlk@sourceforge.net>
+
+ Files: print.c (1.124) (+14 -8)
+
+ Don't "initialize" the file driver if it's not a legal driver type.
+
+2000-09-17 <rlk@sourceforge.net>
+
+ Files: print.c (1.123) (+3 -2)
+
+ One more little bit of initialization
+
+2000-09-17 <rlk@sourceforge.net>
+
+ Files: print.c (1.122) (+85 -41)
+
+ Change how the plugin decides if it already knows about a printer.
+ It used to do it by the command, but that just causes confusion out
+ the wazoo. Now do it by printer name.
+
+2000-09-17 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.64) (+1 -1)
+ README (1.28) (+9 -2)
+ gimp_color_window.c (1.19) (+7 -4)
+ gimp_main_window.c (1.62) (+60 -15)
+ print-escp2.c (1.257) (+2 -2)
+ print-util.c (1.141) (+11 -6)
+ print.c (1.121) (+272 -71)
+
+ Be more specific about which signals to disconnect when updating combo
+ boxes -- this fixes some odd behaviour whereby the item selected in the
+ combo's drop-down box didn't match the text in the combo's entry field.
+
+ Update the orientation menu and the dither combo when the plugin starts
+ and whenever a different printer is selected. Update the driver setup
+ dialog when a different printer is selected.
+
+ Fix the saturation control to remove a discontinuity at around
+ saturation=1.225. (ssat was getting square-rooted whether or not a
+ second dose of saturation would be applied.)
+
+ Change printrc file format to be keyword-value pairs. Can read old
+ printrc files and convert them to new format.
+
+ Adjust paper tuning constants for Premium Glossy paper.
+
+ Above changes all per Charles Briscoe-Smith <cpbs@sourceforge.net>
+
+ Update README and release notes.
+
+ Update documentation per Daniel Egger.
+
+2000-09-16 <easysw@sourceforge.net>
+
+ Files: print-dither.c (1.93) (+86 -113)
+ testdither.c (1.2) (+39 -19)
+
+ Added configure check for random() and a new option --enable-debug.
+
+ Simple optimizations to the dithering and color separation code.
+ (generate_cmy, update_cmyk, print_*, and dither_*); maybe a 5%
+ speedup right now on average...
+
+ Added no-image option for testdither.
+
+ Added new very fast dither to generated PPD files...
+
+2000-09-16 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.63) (+3 -0)
+
+ Add documentation to the release
+
+2000-09-16 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.61) (+2 -2)
+
+ Enlarge the Center Image button.
+
+2000-09-16 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.60) (+2 -1)
+
+ Update the thumbnail when the image type changes
+
+2000-09-16 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.18) (+24 -74)
+ gimp_main_window.c (1.59) (+2 -5)
+ print-dither.c (1.92) (+165 -132)
+
+ Add very fast dither mode and slighty speed up fast mode.
+
+ Change dither algorithm menu into combo.
+
+2000-09-16 <cpbs@sourceforge.net>
+
+ Files: gimp_color_window.c (1.17) (+40 -76)
+ gimp_main_window.c (1.58) (+142 -171)
+
+ Make the thumbnail in the size/position preview track changes in colour
+ controls.
+
+ Turn a few more option-menus into combo boxes.
+
+2000-09-15 <cpbs@sourceforge.net>
+
+ Files: print.c (1.120) (+6 -3)
+
+ When reading the printrc and adding printers, do not search through any
+ printers which have been added to the end of the list since the list
+ was qsort()ed.
+
+2000-09-15 <rlk@sourceforge.net>
+
+ Files: print.c (1.119) (+3 -2)
+ print.h (1.89) (+2 -8)
+
+ print.h should not need unistd.h; only print.c needs that.
+
+2000-09-15 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.6) (+2 -0)
+ print-dither.c (1.91) (+28 -24)
+ print-escp2.c (1.256) (+3 -3)
+
+ Fix up dot sizes for 3 pl dots on ESC 900
+
+ Slight speedup in dithering.
+
+ Bump the version number.
+
+2000-09-15 <easysw@sourceforge.net>
+
+ Files: print-util.c (1.140) (+13 -13)
+
+ Re-fixed media sizes so they match up exactly with the PPD spec and not
+ the original (broken) tables I was using in Print Pro...
+
+2000-09-15 <easysw@sourceforge.net>
+
+ Files: Makefile.am (1.62) (+5 -0)
+ testdither.c (1.1) ( )
+
+ Added simple dither testing program so I/we can fiddle with the
+ dithering code and get some more immediate feedback.
+
+2000-09-15 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.57) (+31 -27)
+ gtk_main_window.c (1.56) (+7 -1)
+ print.c (1.118) (+9 -2)
+
+ Reset to defaults any value that is wildly out of range (to catch old
+ printrc files).
+
+ Do the percent/ppi thing correctly at startup (try yet again!)
+
+2000-09-15 <anikin@sourceforge.net>
+
+ Files: print-dither.c (1.90) (+25 -25)
+ print-util.c (1.139) (+3 -2)
+ print.h (1.88) (+4 -4)
+
+ Fix for a bug in profiling math; converted update_color into a macro
+
+2000-09-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.255) (+3 -3)
+
+ Disable 1440x720 micro on 640/660
+
+2000-09-13 <easysw@sourceforge.net>
+
+ Files: print-escp2.c (1.254) (+446 -394)
+
+ ESC 600, 800, 1520 updates from Robert seem to work well, commited.
+
+ Added ink definitions for 2000P - only 2 levels per ink.
+
+ Rewrote the unpack routines - simpler, faster (I think), and the new
+ ones seem to work on all processors.
+
+2000-09-13 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.138) (+4 -4)
+
+ Make letter be the default paper size.
+
+2000-09-13 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.61) (+1 -0)
+
+ Set up MAINTAINERdir correctly
+
+2000-09-12 <easysw@sourceforge.net>
+
+ Files: print.c (1.117) (+9 -8)
+ print.h (1.87) (+3 -3)
+
+ Allow printer names up to 127 characters.
+
+2000-09-12 <easysw@sourceforge.net>
+
+ Files: escputil.c (1.10) (+15 -31)
+ print-canon.c (1.87) (+7 -7)
+ print-dither.c (1.89) (+5 -5)
+ print-escp2.c (1.253) (+4 -38)
+ print-pcl.c (1.80) (+5 -5)
+ print-ps.c (1.43) (+6 -6)
+ print.c (1.116) (+5 -3)
+ unprint.c (1.42) (+13 -11)
+
+ Fixed some signed character issues in unprint.c - default char type is
+ undefined (signed for some compilers, unsigned for others); added
+ "signed" to the ones that needed it to be sure.
+
+ escputil.c still used the LP_COMMAND and LPR_COMMAND definitions; changed
+ to simple run-time detection.
+
+ Added lots of casts to fix compiler warnings.
+
+ Removed extraneous break statements after return's
+
+ break; break; can just be break;...
+
+ Ink budget was defined as int in some spots, unsigned int in others.
+ Changed to int (signed) in all places since it seems to be OK.
+
+ This hopefully will result in a clean compile (no warnings) on all
+ platforms, less some YY_BREAK warnings I get under IRIX which can't
+ be suppressed from printdefl.l...
+
+2000-09-12 <rlk@sourceforge.net>
+
+ Files: quickmatrix257.h (1.3) (+22 -0)
+ ran.367.179.h (1.2) (+22 -0)
+
+ Add copyright notice
+
+2000-09-12 <rlk@sourceforge.net>
+
+ Files: printdef.h (1.4) (+23 -0)
+
+ Apply the GPL.
+
+2000-09-12 <rlk@sourceforge.net>
+
+ Files: quickmatrix199-2.h (1.3) (+0 -0)
+ quickmatrix199.h (1.3) (+0 -0)
+
+ Remove big unused files from sandboxes (they're still in the repository
+ if needed).
+
+2000-09-11 <rlk@sourceforge.net>
+
+ Files: jmv/README (1.3) (+3 -0)
+
+ Remove some extraneous files to clean up sandboxes.
+
+2000-09-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.252) (+3 -3)
+
+ Drop support for 1440x720 microweave on 740 and 900.
+
+2000-09-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.251) (+9 -8)
+
+ Fix x8 unpack functions
+
+2000-09-11 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.60) (+1 -1)
+
+ Try again
+
+2000-09-11 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.59) (+24 -4)
+
+ Silence a non-useful warning
+
+2000-09-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.250) (+15 -15)
+
+ Backout premature checkin for boosted resolution on some printers
+
+2000-09-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.249) (+8 -4)
+
+ Cannot use 1440 HQ with 900
+
+2000-09-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.248) (+291 -24)
+
+ Try to support ESC 900 3 pl dots
+
+2000-09-10 <easysw@sourceforge.net>
+
+ Files: Makefile.am (1.58) (+0 -5)
+ print.c (1.115) (+101 -58)
+
+ Run-time detection of lpc/lpstat. Still need to add LPRng support to it.
+
+ Updated all of the CUPS driver stuff with the standard GPL and a more-or-
+ less standard banner on each file.
+
+2000-09-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.247) (+79 -59)
+
+ Use super microdot size at 1440x720 on the EX and 700.
+
+2000-09-09 <rlk@sourceforge.net>
+
+ Files: gtk_color_window.c (1.20) (+5 -1)
+ gtk_main_window.c (1.55) (+6 -1)
+ print.c (1.114) (+25 -12)
+ print_gimp.h (1.29) (+5 -1)
+
+ Disable the GTK plugin with Gimp 1.1 except in maintenance mode
+
+2000-09-09 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.5) (+3 -0)
+ Makefile.am (1.57) (+5 -0)
+
+ Add full foomatic support
+
+2000-09-09 <easysw@sourceforge.net>
+
+ Files: print-util.c (1.137) (+7 -2)
+
+ Updated compute_page_parameters to support scaling == 0 (means to scale
+ to the full page regardless of aspect ratio)
+
+ Added ppd target to CUPS makefile to separate PPD generation and genppd
+ linking.
+
+ genppd output PageDimension attributes instead of PaperDimension.
+
+ rastertoprinter was passing the width and length backwards.
+
+ changed rastertoprinter to use a scaling of 0.
+
+2000-09-09 <easysw@sourceforge.net>
+
+ Files: escputil.c (1.9) (+3 -3)
+
+ Updated top-level configuration script to only use GCC options when GCC
+ is being used... -Wall and friends yield interesting (but not useful)
+ error messages from other compilers.
+
+ Reverted the unnecessary changes to the CUPS Makefile.in.
+
+ Updated the README file for the CUPS driver to reflect the current
+ state of affairs.
+
+ Updated the CUPS configure.in file - was checking for g++ instead of
+ gcc.
+
+2000-09-09 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.56) (+1 -0)
+ print.c (1.113) (+11 -2)
+
+ Try to support LPRng
+
+2000-09-09 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.56) (+14 -7)
+ gtk_main_window.c (1.54) (+29 -17)
+
+ Close off the setup and color dialogs correctly when printing.
+
+2000-09-09 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.55) (+4 -4)
+
+ Really stupid hack to try to position the printer driver scroller
+ correctly. This really isn't correct; it needs to find out the
+ additional leading between the lines of text in the scrolling window
+ rather than arbitrarily adding 3.
+
+2000-09-09 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.55) (+4 -1)
+ README (1.27) (+8 -2)
+ printer_options.c (1.2) (+4 -1)
+
+ Add --disable-lp and --disable-lpr options to configure.
+
+ -Wall really belongs in the warnings even in production. The others,
+ maybe not.
+
+ Other minor changes.
+
+2000-09-08 <easysw@sourceforge.net>
+
+ Files: print-util.c (1.136) (+10 -10)
+ printdefy.y (1.11) (+3 -3)
+
+ Fixed international A sizes (wrong values with width and height)
+
+ Changes printers array so it isn't static (needed for genppd, and
+ it doesn't matter for the GS driver or GIMP plug-in)
+
+ Updated genppd to generate PPD files from the driver list.
+
+ Added media size, source, and type to raster driver.
+
+ (hopefully this will be all that is left to make it all work)
+
+2000-09-08 <easysw@sourceforge.net>
+
+ Files: Makefile.am (1.54) (+2 -0)
+
+ Fixed CUPS file generation rules.
+
+ CUPS driver makefile changes.
+
+ Fix to configure script for CUPS drivers.
+
+2000-09-08 <easysw@sourceforge.net>
+
+ Files: escputil.c (1.8) (+2 -2)
+ print.c (1.112) (+3 -3)
+
+ Portability - index() should no longer be used since strchr() is the
+ ANSI C replacement and is available on all current platforms.
+
+2000-09-08 <easysw@sourceforge.net>
+
+ Files: Makefile.am (1.53) (+13 -1)
+
+ Removed hard-coded GCC warning options from automake file...
+
+ Added CUPS source building targets a la Ghostscript driver.
+
+2000-09-07 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.246) (+2 -2)
+
+ Little fix for the 670
+
+2000-09-07 <cpbs@sourceforge.net>
+
+ Files: print-canon.c (1.86) (+2 -2)
+ print-escp2.c (1.245) (+2 -2)
+ print-pcl.c (1.79) (+2 -2)
+
+ Update the progress bar a bit more often. (Useful on slower machines.)
+
+2000-09-07 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.54) (+86 -6)
+
+ Add a live preview of the image's position and size.
+
+2000-09-07 <cpbs@sourceforge.net>
+
+ Files: print-canon.c (1.85) (+1 -3)
+ print-escp2.c (1.244) (+1 -4)
+ print-pcl.c (1.78) (+1 -3)
+ print-ps.c (1.42) (+1 -4)
+ print-util.c (1.135) (+8 -9)
+
+ Fix a segfault with the colour preview by eliminating OUTPUT_GRAY_COLOR.
+ choose_colorfunc() now handles this case internally.
+
+2000-09-07 <cpbs@sourceforge.net>
+
+ Files: .cvsignore (1.9) (+2 -0)
+
+ New executables: printer_options and (for testing purposes) print-weave.
+
+2000-09-06 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.53) (+1 -2)
+ print-dither.c (1.88) (+4 -14)
+ print-escp2.c (1.243) (+1 -2)
+ print-util.c (1.134) (+6 -12)
+ print.h (1.86) (+2 -3)
+
+ Remove error_mix, which was just causing trouble.
+
+ More or less restore the old contrast setup.
+
+ Remove a spurious variable declaration.
+
+2000-09-06 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.242) (+2 -2)
+
+ Fix STC800 margins
+
+2000-09-06 <cpbs@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.16) (+3 -2)
+ print-escp2.c (1.241) (+6 -5)
+ print-weave.c (1.4) (+126 -17)
+ print.h (1.85) (+3 -3)
+
+ Add a "strategy" argument to the weave code. This is currently taken
+ from the use_softweave member of the res_t list. The purpose is to allow
+ different softweave patterns to be used; depending on the circumstances,
+ different weave might be appropriate. (I don't suggest letting the user
+ select a weave, but the driver might do this.)
+
+ At the moment, weave pattern 1 is identical to what we had before. On my
+ 870 in 720 softweave, pattern 4 produces less banding than pattern 1,
+ while patterns 2 and 3 seem to produce more. Pattern 1's banding comes
+ in "waves". Pattern 6 seems to do reasonably well... I think this has
+ something to do with what happens when a row of ink is laid down touching
+ another row which isn't fully dry yet. If this is the case, it's not
+ obvious how to decide which strategy to use in any given situation.
+
+2000-09-05 <cpbs@sourceforge.net>
+
+ Files: print-util.c (1.133) (+14 -7)
+
+ Fix a pair of nasty cut-and-paste bugs which caused the yellow control
+ not to function; the yellow channel was being adjusted by the magenta
+ control instead.
+
+ Change the contrast control a bit. Its effect was rather "sharp" before,
+ so don't cube contrast before applying it. Also, remove the extra
+ contrast reduction which was being done if contrast < 1.0. Finally, fix
+ a bug where "pixel" was being used at one point instead of "temp_pixel".
+
+2000-09-05 <cpbs@sourceforge.net>
+
+ Files: unprint.c (1.41) (+68 -10)
+
+ Handle NULs, EJL and remote mode commands a bit more gracefully.
+ Don't reject a dot size of 0x11 as invalid.
+
+2000-09-05 <cpbs@sourceforge.net>
+
+ Files: gimp_color_window.c (1.16) (+110 -14)
+ gimp_main_window.c (1.52) (+13 -1)
+
+ Add a thumbnail of the image to the top of the colour window and update
+ it in real time to show the effects of the colour adjustment controls.
+ I'm afraid I didn't bother to port it to the GTK ui (call me lazy...)
+
+2000-09-05 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.51) (+62 -15)
+ gtk_main_window.c (1.53) (+51 -13)
+ print-util.c (1.132) (+31 -17)
+ print.h (1.84) (+4 -2)
+
+ Add upside-down and seascape orientations, matching the orientation
+ names used by gv.
+
+2000-09-05 <cpbs@sourceforge.net>
+
+ Files: gtk_color_window.c (1.19) (+2 -2)
+ gtk_main_window.c (1.52) (+1 -31)
+ print-escp2.c (1.240) (+13 -7)
+ print-util.c (1.131) (+2 -2)
+ printdefl.l (1.5) (+2 -2)
+ printdefy.y (1.10) (+2 -2)
+
+ Fix some global replacements which had changed "redistribute" into
+ "cyanistribute".
+
+ Remove stuff in the GTK ui conditionalised on "#ifndef GIMP_1_0".
+ Reasoning is as follows. The GTK ui is there to support gimp 1.0; the
+ gimpui ui is preferred for gimp 1.1/1.2. Therefore, the only reason to
+ use the gtk ui with GIMP_1_0 not defined is for the developers to test
+ it, and in those circumstances we should see as near as possible the
+ same as the gimp 1.0 users see.
+
+ Amend code which decides whether a given resolution is valid for escp2
+ printers to use criteria consistent with the current weave code.
+
+2000-09-05 <sharkey@sourceforge.net>
+
+ Files: print-weave.c (1.3) (+2 -1)
+
+ Add #include <string.h> to declare the type of memcpy. Suggested by
+ Henryk, who notes that its absence can lead to a fatal error on
+ 64 bit platforms.
+
+2000-09-05 <sharkey@sourceforge.net>
+
+ Files: print-canon.c (1.84) (+2 -2)
+
+ Famed Lexmark hacker Henryk Paluch <paluch@kmlinux.fjfi.cvut.cz> notes
+ that:
+
+ va_arg() may not reference char according to compiler
+ error and stdarg(3) man page (char is converted to int
+ when passed through ... prototype).
+
+ He's right. va_arg(3) says va_arg only takes "fully promoted types" and
+ characters must be ints which are then cast to chars.
+
+2000-09-05 <iay@sourceforge.net>
+
+ Files: print-escp2.c (1.239) (+3 -2)
+
+ Print 360dpi softweave modes as dark as we can on the ESC740.
+ Add a new "Photo Quality Glossy Paper" type; same paper feed mechanism
+ as backlight film.
+
+2000-09-05 <rlk@sourceforge.net>
+
+ Files: README (1.26) (+1 -0)
+
+ 4.0a3 release
+
+2000-09-05 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.50) (+2 -37)
+ gtk_main_window.c (1.51) (+1 -31)
+ print-canon.c (1.83) (+2 -10)
+ print-dither.c (1.87) (+74 -57)
+ print-escp2.c (1.238) (+2 -10)
+ print-pcl.c (1.77) (+6 -19)
+ print.h (1.83) (+3 -15)
+
+ Add Fast dither algorithm, and remove fast color and fast grayscale
+ image types.
+
+2000-09-05 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.49) (+41 -7)
+ gtk_main_window.c (1.50) (+18 -2)
+ print-canon.c (1.82) (+10 -5)
+ print-dither.c (1.86) (+140 -115)
+ print-escp2.c (1.237) (+9 -4)
+ print-pcl.c (1.76) (+8 -3)
+ print.h (1.82) (+8 -4)
+ print_gimp.h (1.28) (+1 -8)
+
+ Speed up Fast Color; add Fast Grayscale mode
+
+2000-09-04 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.81) (+13 -15)
+ print-dither.c (1.85) (+84 -21)
+ print-escp2.c (1.236) (+7 -6)
+ print-pcl.c (1.75) (+10 -9)
+ print-util.c (1.130) (+168 -161)
+ print.h (1.81) (+14 -16)
+
+ Do a better job of duplicate line elimination in the dither code. We
+ now get notified by the driver if there are known duplicate lines.
+ This would allow us to put something in the Image layer to optimize
+ out blank lines very early on and save a lot of computation.
+
+ A few point optimizations in the dither code.
+
+ Move the lut_t into the private data of print_util; it isn't actually
+ needed anywhere else. Also hang some stuff off it to optimize the
+ lookup for the photo case.
+
+ Get rid of some potentially dangerous FP equality comparisons in
+ the HSL code. Also avoid the scaling to 1 that both endangers
+ the computation and wastes time.
+
+2000-09-03 <anikin@sourceforge.net>
+
+ Files: print-dither.c (1.84) (+10 -2)
+ print-util.c (1.129) (+9 -28)
+ print.h (1.80) (+41 -7)
+
+ Modified performance instrumentation to use gettimeofday; inlined time sensitive code
+
+2000-09-03 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.4) (+64 -10)
+ gimp_main_window.c (1.48) (+16 -1)
+ gtk_main_window.c (1.49) (+16 -1)
+ print-canon.c (1.80) (+7 -3)
+ print-dither.c (1.83) (+251 -11)
+ print-escp2.c (1.235) (+4 -1)
+ print-pcl.c (1.74) (+13 -5)
+ print.h (1.79) (+4 -2)
+
+ Faster color mode
+
+2000-09-03 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.128) (+2 -2)
+
+ Arithmetic problem
+
+2000-09-03 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.47) (+72 -76)
+ gtk_main_window.c (1.48) (+71 -64)
+ print-util.c (1.127) (+4 -4)
+
+ Don't mix colors in that don't actually exist in the output.
+
+ Improve accuracy of height/width entry, and don't force these entries
+ into PPI mode.
+
+2000-09-03 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.82) (+7 -7)
+ print-escp2.c (1.234) (+48 -48)
+ print-util.c (1.126) (+2 -2)
+ print-weave.c (1.2) (+2 -1)
+ print.h (1.78) (+3 -3)
+
+ Get rid of some warnings.
+
+ Always print to the exact dimensions specified by the user; don't
+ round the scaling down to the nearest percent in compute_page_parameters.
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: README (1.25) (+1 -1)
+
+ Bump version number
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: print-ps.c (1.41) (+3 -3)
+
+ Some things really can't be doubles
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: README (1.24) (+14 -9)
+
+ Clarification
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: escp2-unprint.c (1.3) (+4 -4)
+ gimp_main_window.c (1.46) (+43 -41)
+ gtk_color_window.c (1.18) (+9 -17)
+ gtk_main_window.c (1.47) (+41 -47)
+ print-canon.c (1.79) (+2 -14)
+ print-escp2.c (1.233) (+2 -14)
+ print-image-gimp.c (1.7) (+2 -10)
+ print-pcl.c (1.73) (+2 -19)
+ print-ps.c (1.40) (+5 -19)
+ print-util.c (1.125) (+43 -47)
+ print.c (1.111) (+2 -23)
+ printdefy.y (1.9) (+6 -6)
+
+ Further tuning of color generation. At present, CMY controls can be
+ used to balance grayscale reasonably effectively. The grayscale for
+ the Stylus Photo 870/1270 was tuned with this.
+
+ Change use of floats to doubles for better accuracy (and because
+ floats are always passed as doubles in C, anyway).
+
+ Change GhostScript -sMediaSource to -sInputSlot to conform to PPD
+ standard.
+
+ Nominally support Stylus Color 880 and 980.
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.232) (+3 -3)
+
+ Try dot size 4 for 360 dpi for the 740.
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.231) (+5 -6)
+
+ Try again on the 670. I do not believe the manual; low end printers
+ don't generally have a 48/144 head configuration. Also, it's not a 4
+ pl drop size.
+
+2000-09-02 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.124) (+70 -70)
+
+ Tune the color stuff a bit more
+
+2000-08-31 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.45) (+7 -5)
+
+ Fix bottom/right borders and preview rectangle
+
+2000-08-30 <davehill@sourceforge.net>
+
+ Files: print.c (1.110) (+3 -65)
+ print_gimp.h (1.27) (+10 -1)
+
+ Removed compatability defines. We now define GIMP_ENABLE_COMPAT_CRUFT
+ to turn back on the old API definitions (for now). Changed GIMP_INDEXED
+ to INDEXED for 1.0.4.
+
+2000-08-30 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.123) (+13 -11)
+
+ Expand the range of the CMY controls, and really allow CMY values of 0.
+
+2000-08-29 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.230) (+2 -2)
+
+ Update the STP 720.
+
+2000-08-29 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.52) (+5 -1)
+ printer_options.c (1.1) ( )
+
+ Add printer_options program to generate *-omatic database.
+
+ Update printer tweaking instructions.
+
+2000-08-29 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.229) (+12 -12)
+
+ Fix up 360 dpi mode for first generation variable dot size printers.
+ This is surely wrong for the 2000P at 360 DPI.
+
+2000-08-29 <rlk@sourceforge.net>
+
+ Files: print.c (1.109) (+7 -3)
+
+ Try to make this compile for some older versions of Gimp 1.1.
+
+2000-08-29 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.44) (+3 -3)
+
+ Permit scaling down to lower scale limit, not necessarily just 5%.
+
+2000-08-28 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.122) (+4 -4)
+
+ Allow more CMY boost
+
+2000-08-28 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.228) (+10 -10)
+
+ Single dot size printers should not support 360 softweave
+
+2000-08-28 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.121) (+4 -9)
+
+ Do CMY adjustments correctly (in CMY space, not RGB!)
+
+2000-08-28 <anikin@sourceforge.net>
+
+ Files: print-util.c (1.120) (+42 -1)
+ print.h (1.77) (+24 -2)
+
+ Performance profiling code.
+
+2000-08-28 <anikin@sourceforge.net>
+
+ Files: print-escp2.c (1.227) (+10 -1)
+
+ Performance profiling code.
+
+2000-08-28 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.15) (+82 -59)
+ gimp_main_window.c (1.43) (+12 -8)
+ gtk_color_window.c (1.17) (+134 -112)
+ print-util.c (1.119) (+167 -25)
+ print.c (1.108) (+26 -26)
+ print.h (1.76) (+10 -7)
+ printdefl.l (1.4) (+5 -5)
+ printdefy.y (1.8) (+20 -20)
+
+ Make all color options based on 1.0 rather than on 1.0 or 100. This
+ simplifies things considerably, and allows more precise specification
+ of colors. Also, fix how brightness works.
+
+2000-08-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.226) (+4 -4)
+
+ STC 440/460 (and probably 480) don't have different spacing for the
+ black nozzles.
+
+2000-08-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.225) (+65 -46)
+
+ Some printers apparently have different spacing between black and
+ color nozzles.
+
+2000-08-25 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.14) (+2 -2)
+ gtk_color_window.c (1.16) (+2 -2)
+ print-util.c (1.118) (+12 -6)
+
+ Fix contrast control to do something a lot more reasonable.
+
+2000-08-25 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.72) (+17 -3)
+
+ If the printer supports multiple media sources (trays), the default
+ source is now "Standard", which means "use the printer's default"
+ as if there were no support. This stops the default being "manual
+ feed." Helps in support request 104138.
+
+2000-08-25 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.13) (+17 -1)
+
+ Button to reset all color defaults
+
+2000-08-24 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.12) (+2 -2)
+ print.c (1.107) (+60 -3)
+
+ Update to the new libgimp names. Back compatible in print.c;
+ back compatibility not needed in gimp_color_window.c.
+
+2000-08-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.224) (+18 -18)
+
+ Fix definition of 670 (from visual inspection).
+
+ Add preliminary definition of SP 2000P.
+
+2000-08-24 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.42) (+53 -4)
+
+ Add right and bottom border entries.
+
+2000-08-23 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.223) (+2 -2)
+
+ Tune matte paper settings
+
+2000-08-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.78) (+14 -2)
+
+ Added some debugging messages
+
+2000-08-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.77) (+3 -3)
+
+ Another fix to the 0x61 command - final version.
+
+2000-08-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.76) (+17 -11)
+
+ Moved deinitialization code from end of canon_print to canon_deinit_printer()
+
+ Fixed typo in 0x61 command (printers with deactivated 0x61 command should
+ give it another try)
+
+2000-08-23 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.81) (+10 -3)
+
+ Print all bits in fast black mode, not just the high order bit on
+ variable dot sizes.
+
+2000-08-23 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.75) (+2 -3)
+ print-dither.c (1.80) (+5 -5)
+ print-escp2.c (1.222) (+2 -2)
+ print-pcl.c (1.71) (+2 -3)
+ print-util.c (1.117) (+497 -200)
+ print.h (1.75) (+8 -5)
+
+ Improve color generation performance. Don't recompute color at all if
+ we're reusing a row, and also don't recompute it if the point we're
+ looking at has identical input values to the previous point.
+
+2000-08-23 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.41) (+103 -103)
+
+ Tweak the UI a bit more
+
+2000-08-23 <rlk@sourceforge.net>
+
+ Files: print_gimp.h (1.26) (+3 -3)
+
+ Tweak the print window size again
+
+2000-08-22 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.40) (+50 -31)
+ print_gimp.h (1.25) (+6 -1)
+
+ Rearrange main window further.
+
+2000-08-22 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.39) (+79 -97)
+
+ Reorganize the interface a bit more logically
+
+2000-08-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.221) (+6 -6)
+
+ More printers that 1440x720 microweave doesn't work on.
+
+2000-08-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.220) (+9 -9)
+
+ Take a stab at density for the 600
+
+2000-08-21 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.51) (+1 -1)
+
+ The PDQ and CUPS descriptor files are now completely useless. No
+ sense in distributing them.
+
+2000-08-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.219) (+11 -11)
+
+ Take a stab at optimizing the 800/850/1520/3000 dot sizes
+
+2000-08-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.218) (+2 -2)
+
+ Stylus Color 1520 was incorrectly not set up for 1440x720 mode.
+
+2000-08-20 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.217) (+34 -19)
+
+ Tune black lower & upper constants for various papers.
+
+2000-08-20 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.116) (+1 -8)
+
+ Eugene Anikin has verified that this now works with inlining in egcs 1.1.2.
+
+2000-08-20 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.216) (+51 -44)
+
+ Set default densities more appropriate for different kinds of paper.
+
+2000-08-20 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.215) (+13 -13)
+
+ Enable 180 DPI mode for some Epson printers. This mode is useless on
+ good paper, but on cheapo stock it has its uses.
+
+2000-08-20 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.115) (+4 -5)
+
+ Floating point equality comparisons are pure poison. Thanks to Eugene
+ Anikin <eugene@anikin.com> for spotting this.
+
+2000-08-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.214) (+50 -37)
+
+ Fix positioning on STC 850.
+
+ Remove workaround for setting page length on our old weave code in general.
+ This workaround is very confusing and shouldn't be necessary any more.
+
+ Tweak a few parameters on the 440 and 660.
+
+2000-08-19 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.74) (+5 -5)
+
+ Fix density computation for 1440x720 (suggested by
+ suamor@sourceforge.net)
+
+ Fix debug code (likewise)
+
+2000-08-15 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.50) (+1 -1)
+ README (1.23) (+1 -1)
+
+ Prep for 4.0a2
+
+2000-08-15 <mitsch@sourceforge.net>
+
+ Files: gimp_main_window.c (1.38) (+19 -18)
+
+ Some minor changes to minimize diffs against the version checked
+ into the GIMP source tree.
+
+2000-08-14 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.213) (+71 -8)
+
+ 4 pl printers actually use 6 pl dots at 720 dpi mode.
+
+ Nominally support 180 dpi (never mind that nothing actually uses it yet).
+
+2000-08-14 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.114) (+8 -1)
+
+ egcs 1.1.2 and thereabouts have problems with inlining here.
+
+2000-08-14 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.212) (+513 -149)
+
+ Make ink type selection even more data driven, rather than logic
+ driven.
+
+2000-08-13 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.79) (+3 -3)
+
+ Minor syntax correction
+
+2000-08-13 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.37) (+9 -9)
+ gtk_main_window.c (1.46) (+3 -3)
+
+ Ensure that at least a thin line is always displayed in the preview box
+
+2000-08-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.211) (+10 -7)
+
+ Fine tune 360 softweave
+
+2000-08-13 <rlk@sourceforge.net>
+
+ Files: print.c (1.106) (+12 -3)
+
+ Startup debugability
+
+2000-08-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.210) (+2 -2)
+
+ Fix top margin on ESC 850
+
+2000-08-12 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.78) (+14 -5)
+ print-escp2.c (1.209) (+5 -4)
+ print.h (1.74) (+3 -2)
+
+ Mixing in the error to help determine what to print doesn't work well
+ on ESP EX. Make it configurable.
+
+2000-08-12 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.36) (+25 -13)
+ gtk_main_window.c (1.45) (+22 -10)
+ print-dither.c (1.77) (+31 -16)
+ print-escp2.c (1.208) (+221 -139)
+ print-util.c (1.113) (+5 -5)
+
+ Fix PPI rescale when image is changed from portrait to landscape mode.
+
+ Don't suppress printing of colored ink when black is also printed,
+ when density is high. That turned out to be the cause of lots of
+ problems at 360 DPI and perhaps even at 720 DPI.
+
+ Change the density value used for making print decisions to use part
+ of the error diffusion. This feeds into the dot size computation,
+ and results in smoothing of transition regions.
+
+ Add 360 DPI softweave modes to Epson driver for variable dot size
+ printers. It's not clear that there's any good reason to do this
+ for fixed dot size printers, or if it will even work. It yields
+ substantially improved print quality on variable dot size printers
+ (at least the 870). This needs more testing and tuning.
+
+ Change the criteria for using bidirectional vs. unidirectional printing.
+ On the 870, unidirectional printing is actually smoother than
+ bidirectional, at least in some cases.
+
+ Tune zero-margin mode, and fix it for 360 DPI.
+
+ Reduce saturation/darkness spike in pure red, pure green, and pure
+ blue vicinity, and increase overall saturation to compensate.
+
+ Test more weave modes (in particular, ones required for 360 DPI
+ softweave).
+
+ Update Debian install instructions.
+
+ Use gs_stderr in Ghostscript driver, and print more useful errors.
+
+2000-08-11 <rlk@sourceforge.net>
+
+ Files: print-ps.c (1.39) (+5 -1)
+
+ Protect against someone removing code that only looks redundant.
+
+2000-08-11 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.73) (+5 -1)
+ print-pcl.c (1.70) (+5 -1)
+
+ Protect against someone removing code that only looks redundant.
+
+2000-08-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.207) (+8 -1)
+
+ It is necessary to recompute the image height and width after
+ compute_page_parameters; these will change if the image is rotated.
+
+2000-08-09 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.49) (+20 -10)
+ README (1.22) (+1 -1)
+ print-canon.c (1.72) (+4 -4)
+ print-escp2.c (1.206) (+2 -2)
+ print-pcl.c (1.69) (+2 -2)
+
+ Rename some troublesome option names in HP and Canon drivers.
+
+ Remove spurious 180 DPI mode on Photo EX.
+
+ Prep for 4.0a1
+
+2000-08-09 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.205) (+31 -45)
+
+ More minor tuning
+
+2000-08-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.204) (+7 -7)
+
+ Tweaks for the EX/700
+
+2000-08-08 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.48) (+2 -2)
+
+ Back out accidental change
+
+2000-08-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.203) (+265 -90)
+
+ Use tables to generate dot size and density information rather than
+ heuristics. This makes it possible to pick optimum dot size for each
+ resolution.
+
+ Print correctly to bottom of image in oversampled modes.
+
+2000-08-06 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.47) (+11 -11)
+
+ Make compile lines a bit more compact
+
+2000-08-06 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.71) (+2 -20)
+ print-escp2.c (1.202) (+4 -4)
+ print-image-gimp.c (1.6) (+8 -2)
+ print-pcl.c (1.68) (+2 -1)
+ print-ps.c (1.38) (+2 -1)
+ print.h (1.73) (+3 -2)
+
+ Clean up the Ghostscript driver.
+
+ Rename the oversampled ESCP modes.
+
+2000-08-06 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.46) (+19 -5)
+ README (1.21) (+12 -2)
+ print_gimp.h (1.24) (+2 -2)
+
+ Start preparations for release.
+
+2000-08-06 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.201) (+2 -2)
+
+ Fix for the 640.
+
+2000-08-05 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.45) (+1 -1)
+ gimp_main_window.c (1.35) (+4 -5)
+ gtk_main_window.c (1.44) (+4 -5)
+ print-canon.c (1.70) (+107 -24)
+ print-escp2.c (1.200) (+89 -40)
+ print-pcl.c (1.67) (+29 -7)
+ print-ps.c (1.37) (+31 -14)
+ print-util.c (1.112) (+151 -9)
+ print.c (1.105) (+13 -4)
+ print.h (1.72) (+41 -33)
+ printdefy.y (1.7) (+12 -1)
+
+ Major revamp to the Ghostscript driver. This allows use of all supported
+ printers (not just Epson) with the stp driver. Also, many of the options
+ have changed incompatibly. This change was required in order to better
+ support the driver in the long run.
+
+2000-08-05 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.69.2.5) (+13 -14)
+ print-escp2.c (1.198.2.5) (+13 -14)
+ print-pcl.c (1.66.2.4) (+9 -22)
+ print-ps.c (1.36.2.4) (+13 -30)
+ print-util.c (1.111.2.3) (+30 -12)
+ print.h (1.71.2.4) (+17 -21)
+ printdefy.y (1.6.2.4) (+8 -5)
+
+ Fix the last remaining bugs in the Ghostscript driver revamp.
+
+2000-08-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.199) (+4 -2)
+
+ The ESC 640 claims to use the new command set, and also claims to be a
+ 1440 dpi printer, but it doesn't support the ESC($ command???
+
+2000-08-05 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.34.2.1) (+4 -5)
+ gtk_main_window.c (1.43.2.1) (+4 -5)
+ print-canon.c (1.69.2.4) (+41 -24)
+ print-escp2.c (1.198.2.4) (+19 -8)
+ print-pcl.c (1.66.2.3) (+36 -7)
+ print-ps.c (1.36.2.3) (+39 -10)
+ print-util.c (1.111.2.2) (+29 -9)
+ print.c (1.104.2.2) (+9 -3)
+ print.h (1.71.2.3) (+35 -20)
+ printdefy.y (1.6.2.3) (+5 -1)
+
+ Set page dimensions correctly (?) in Ghostscript
+
+2000-08-05 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.69.2.3) (+3 -7)
+ print-escp2.c (1.198.2.3) (+3 -7)
+ print-pcl.c (1.66.2.2) (+3 -6)
+ print-ps.c (1.36.2.2) (+2 -2)
+ print-util.c (1.111.2.1) (+105 -1)
+ print.c (1.104.2.1) (+6 -3)
+ print.h (1.71.2.2) (+12 -7)
+ printdefy.y (1.6.2.2) (+5 -5)
+
+ Check consistency of print variables before printing.
+
+ Change resolution and dither algorithm to strings rather than numbers.
+
+2000-08-04 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.198.2.2) (+71 -24)
+
+ Support more paper types.
+
+ Split out Stylus Photo 670.
+
+2000-08-04 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.69.2.2) (+43 -1)
+
+ #ifdef out the stderr noise
+
+2000-08-04 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.7) (+49 -18)
+
+ Open the raw printer device write only, not read only (testing?
+ What's testing?).
+
+ Attempt to function on systems without GNU getopt.
+
+2000-08-03 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.6.2.1) (+2 -2)
+
+ We need to open the raw device write only, not read only.
+
+2000-08-03 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.44.2.1) (+1 -1)
+ print-canon.c (1.69.2.1) (+30 -1)
+ print-escp2.c (1.198.2.1) (+1 -3)
+ print-pcl.c (1.66.2.1) (+10 -1)
+ print-ps.c (1.36.2.1) (+6 -1)
+ print.h (1.71.2.1) (+7 -15)
+ printdefy.y (1.6.2.1) (+5 -1)
+
+ Make stp driver work for all supported printers, not just Epson
+
+2000-08-02 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.15) (+14 -7)
+
+ Handle multiple "PJL" commands. Print out everything we see until the
+ next ESC.
+
+2000-08-02 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.66) (+15 -14)
+
+ Fixed the problem with the raster top position being wrong. This was
+ introduced with the use of "compute_page_parameters".
+
+2000-08-02 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.111) (+2 -2)
+
+ Very, very much to my surprise, the new photo mode doesn't require
+ bumping saturation up insanely. Rescale saturation by 1.25 rather
+ than 2.5 works much better on the PDI target.
+
+2000-08-02 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.110) (+5 -3)
+
+ Workaround for a gcc 2.7.2.3 inlining bug
+
+2000-08-02 <rlk@sourceforge.net>
+
+ Files: gtk_color_window.c (1.15) (+1 -2)
+ print-canon.c (1.69) (+2 -2)
+ print-dither.c (1.76) (+3 -3)
+ print-escp2.c (1.198) (+4 -4)
+ print-pcl.c (1.65) (+10 -10)
+ print-ps.c (1.36) (+2 -2)
+ print-util.c (1.109) (+219 -24)
+ print.h (1.71) (+4 -16)
+
+ Put the fast color functions back in for when we use something other
+ than photo mode.
+
+ Declare more functions static to reduce namespace pollution.
+
+ Change #ifdef __GCC__ to #ifdef __GNUC__ around inlining. The correct
+ macro is __GNUC__. This should result in a fairly significant speedup.
+
+2000-08-01 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.15) (+6 -1)
+ print-escp2.c (1.197) (+3 -3)
+ print-util.c (1.108) (+212 -99)
+
+ Improve color and tone rendition substantially. This is not based
+ on anything terribly scientific, but it seems to do a rather good
+ job based on various test images and patterns.
+
+ Disallow certain out of bounds tests.
+
+2000-08-01 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.196) (+3 -3)
+
+ Finer tuning of zero margin
+
+2000-08-01 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.195) (+3 -3)
+
+ Fine tune zero-margin mode
+
+2000-08-01 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.194) (+5 -5)
+
+ Start microweave at the correct vertical position (how many times is
+ this going to get "fixed" and I'll break it in creative ways?)
+
+2000-08-01 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.44) (+1 -1)
+
+ print-weave.c needs to go into Ghostscript driver
+
+2000-07-31 <cpbs@sourceforge.net>
+
+ Files: Makefile.am (1.43) (+1 -0)
+ escp2-weavetest.c (1.14) (+10 -18)
+ print-escp2.c (1.193) (+85 -309)
+ print-weave.c (1.1) ( )
+ print.h (1.70) (+12 -2)
+
+ New weave algorithm. The softweave calculations are now done in
+ print-weave.c. print-escp2.c is modified to call the weave calculation
+ functions as appropriate. Some other related changes require changes
+ to the test code in escp2-weavetest.c. Declarations added to print.h.
+ Unfinished documentation for the algorithm is in README.weave.
+
+2000-07-30 <cpbs@sourceforge.net>
+
+ Files: print-image-gimp.c (1.5) (+5 -6)
+
+ Back out changes made in revision 1.4, which didn't fix anything but
+ broke landscape mode.
+
+2000-07-30 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.192) (+28 -25)
+
+ More constant tuning
+
+2000-07-24 <cpbs@sourceforge.net>
+
+ Files: debian/.cvsignore (1.1) ( )
+
+ *** empty log message ***
+
+2000-07-23 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.75) (+4 -4)
+
+ Make adaptive hybrid be the default dither algorithm
+
+2000-07-23 <rlk@sourceforge.net>
+
+ Files: print-image-gimp.c (1.4) (+6 -5)
+
+ Possible fix for gimp 1.0.4 problems.
+
+2000-07-22 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.34) (+40 -20)
+ gtk_main_window.c (1.43) (+41 -17)
+
+ Complete fix of PPI mode
+
+2000-07-22 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.33) (+14 -4)
+ gtk_main_window.c (1.42) (+16 -2)
+
+ Initialize PPI scale correctly
+
+2000-07-21 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.32) (+46 -10)
+ gtk_main_window.c (1.41) (+47 -10)
+ print-dither.c (1.74) (+3 -3)
+
+ Try to maintain the same image size when switching between PPI and
+ percent. Currently this may be off by one point. This also clamps
+ the PPI range to 5-100% of the paper size, just like the percentage.
+ It means that Set Image Resolution won't work correctly for a really
+ big image, but it's consistent with everything else.
+
+ Try to improve dark grays for variable dot size printers.
+
+2000-07-20 <cpbs@sourceforge.net>
+
+ Files: print-escp2.c (1.191) (+93 -46)
+
+ Add support for zero-margin mode on the STP 870 and 1270. Add some more
+ info gleaned about remote mode commands.
+
+2000-07-20 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.107) (+15 -3)
+
+ Prevent saturation blowout for saturation > 1.0.
+
+2000-07-20 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.190) (+2 -2)
+
+ Test prints of the PDI target really do suggest that the light inks
+ are 1/4 of the dark inks. At 1/3, the skin tones took on a rather
+ strong yellow cast that went away at 1/4.
+
+ The single dot size printers need to be retested, but I suspect they
+ should also be at 1/4 rather than 1/3.
+
+2000-07-20 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.106) (+15 -3)
+
+ Check both dimensions for scaling -- scaling should be for the tighter
+ fitting dimension.
+
+2000-07-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.189) (+7 -2)
+
+ Fine tuning for 4-color variable printers
+
+2000-07-18 <rlk@sourceforge.net>
+
+ Files: README (1.20) (+34 -5)
+ print_gimp.h (1.23) (+2 -2)
+
+ 3.1.9 release
+
+2000-07-18 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.11) (+37 -9)
+ gimp_main_window.c (1.31) (+4 -35)
+ gtk_color_window.c (1.14) (+38 -9)
+ gtk_main_window.c (1.40) (+2 -34)
+ print-dither.c (1.73) (+8 -8)
+ print.c (1.104) (+2 -11)
+
+ Make more stuff static
+
+2000-07-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.188) (+4 -4)
+
+ Fix a name clash with some versions of Ghostscript
+
+2000-07-16 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.30) (+5 -1)
+ gtk_main_window.c (1.39) (+5 -1)
+
+ Maintain correct scaling value across restarts
+
+2000-07-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.187) (+89 -102)
+
+ Improve 720 dpi on 870/860 class printers
+
+2000-07-15 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.6) (+12 -5)
+ print-dither.c (1.72) (+21 -16)
+ print-escp2.c (1.186) (+8 -3)
+ print.h (1.69) (+3 -2)
+
+ More minor tweaks
+
+2000-07-14 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.71) (+2 -2)
+ print-escp2.c (1.185) (+2 -2)
+
+ Minor parameter tweaking
+
+2000-07-14 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.184) (+8 -4)
+
+ Set adaptive level correctly for single dot size 6-color printers.
+
+2000-07-14 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.70) (+12 -3)
+ print-escp2.c (1.183) (+10 -71)
+
+ Improve quality on variable dot size printers, and possibly on others
+ as well:
+
+ 1) Change adaptive thresholding to be hard rather than soft. It now
+ uses a brick wall threshold. To simulate error diffusion properly,
+ we set the error to -(value / 2), which is consistent with normal
+ error diffusion operation.
+
+ 2) Retune the drop size constants. They are now the same as
+ Jean-Marc Verbavatz's constants. However, we only use the smallest
+ droplet size of light ink. This gives very smooth color gradations,
+ while actually using less ink (because we now use the small drop size
+ of dark ink).
+
+ 3) Slightly increase the black threshold for 6-color, variable drop
+ size printers.
+
+ 4) Switch back to linear transition for black.
+
+2000-07-12 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.42) (+1 -1)
+
+ Need to include 367x179 matrix
+
+2000-07-12 <rlk@sourceforge.net>
+
+ Files: README (1.19) (+1 -1)
+ print-escp2.c (1.182) (+1 -4)
+ print_gimp.h (1.22) (+2 -2)
+
+ Allow choice of ink type in Ghostscript driver
+
+2000-07-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.181) (+2 -2)
+
+ Do the ink type correctly
+
+2000-07-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.180) (+34 -14)
+
+ Allow choice of four color vs. six color ink rather than
+ single/variable dot size. Variable dot size is reliable now, and
+ there are real reasons (ink economy, printing highly saturated
+ graphics) to use four color rather than six color ink for certain
+ purposes.
+
+ Tweak 6-color, single dot size printing characteristics.
+
+ Add error checks to weave code.
+
+2000-07-06 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.10) (+2 -2)
+ gtk_color_window.c (1.13) (+2 -2)
+ print-util.c (1.105) (+75 -108)
+
+ Saturation adjustment must be based on HSL (hue-saturation-lightness)
+ space rather than HSV (hue-saturation-value). Now it does the right
+ thing. Also, allow saturation of 0.
+
+2000-07-04 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.64) (+41 -15)
+
+ Split the 540C out from the 500C as it supports more paper sizes
+ including custom paper sizes.
+
+2000-07-03 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.63) (+133 -15)
+
+ Re-added extra supported paper types now that print-util has a bigger
+ list. Changed max size of A3 printers to include 13x19 "Super B" size.
+ Fixed value of "TABLOID".
+
+2000-07-03 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.104) (+13 -2)
+
+ Add standard photographic paper sizes
+
+2000-07-03 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.179) (+181 -97)
+
+ Explicitly break out initialization sequence into discrete steps for
+ clarity.
+
+2000-07-02 <davehill@sourceforge.net>
+
+ Files: gimp_color_window.c (1.9) (+2 -6)
+ gtk_color_window.c (1.12) (+2 -6)
+
+ Correctly retrieve "dither_algorithm" from current printer.
+
+2000-07-02 <davehill@sourceforge.net>
+
+ Files: print.c (1.103) (+22 -23)
+
+ Stop garbage being written into printcap (ppd_file not init'ed mainly)
+ plus other tidy up.
+
+2000-06-30 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.178) (+166 -79)
+
+ Nominally support large paper sizes on many printers.
+
+2000-06-30 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.177) (+2 -2)
+
+ STC 480 doesn't do 1440 DPI.
+
+2000-06-30 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.176) (+10 -3)
+
+ Epson Stylus 480 (non-US model). Very strange printer, with 15 jets.
+ Presumably separation of 8.
+
+ ESC 860/1160 are definitely variable drop size! It's only the 660
+ that isn't.
+
+2000-06-30 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.175) (+8 -1)
+
+ Support for Epson Stylus Photo 720 (overseas model)
+
+2000-06-29 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.29) (+8 -8)
+ gtk_main_window.c (1.38) (+8 -8)
+ print-canon.c (1.68) (+8 -8)
+ print-escp2.c (1.174) (+11 -10)
+ print-pcl.c (1.62) (+14 -14)
+ print-ps.c (1.35) (+11 -11)
+ print-util.c (1.103) (+3 -2)
+ print.h (1.68) (+27 -24)
+
+ Replace the "model" parameter to the parameters(), media_size() and
+ imageable_area() methods in struct printer to a "printer" parameter to
+ reduce the amount of inside knowledge needed to call the driver.
+
+2000-06-29 <cpbs@sourceforge.net>
+
+ Files: printdefy.y (1.6) (+3 -1)
+
+ Declare yylex() to clean up a pesky compiler warning.
+
+2000-06-29 <jmv@sourceforge.net>
+
+ Files: print-canon.c (1.49.2.5) (+1 -1)
+ print-dither.c (1.53.2.8) (+50 -49)
+ print-escp2.c (1.155.2.7) (+92 -72)
+ print-pcl.c (1.52.2.5) (+1 -1)
+ print.h (1.55.2.6) (+2 -2)
+
+ Ink reduction is back in. Improved levels for better transitions.
+ Cleanup.
+
+2000-06-26 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.67) (+11 -1)
+
+ Added model "BJC 4400 photo" from a patch by Alex Butcher
+
+2000-06-26 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.66) (+12 -58)
+
+ removed changes since rev 1.63
+
+2000-06-25 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.69) (+8 -2)
+ print-escp2.c (1.173) (+12 -6)
+ print.h (1.67) (+12 -26)
+
+ Minor cleanup
+
+2000-06-24 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.28) (+3 -11)
+ gtk_main_window.c (1.37) (+3 -11)
+
+ Position printer driver window correctly, thanks to Sven Neuman for
+ the suggestion.
+
+2000-06-24 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.27) (+30 -12)
+ gtk_main_window.c (1.36) (+36 -20)
+ print-util.c (1.102) (+3 -3)
+
+ Eliminate GTK warning on startup.
+
+ Enlarge printer scrolling window, and try to position it correctly on
+ activate. Currently, the scrollbar positions correctly, but the
+ window itself doesn't. GTK bug?
+
+2000-06-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.172) (+9 -11)
+
+ Rename some variables for clarity
+
+2000-06-24 <gandy@sourceforge.net>
+
+ Files: print.c (1.102) (+18 -14)
+
+ Once again, fix a problem with "lpc status" - with plp, a printer occurs
+ right behind the message "Press RETURN to continue...: ". If a line
+ received from "lpc stat" begins with this string, the first occurence of
+ ':' is searched and the string 2 chars behind that ':' is copied to the
+ beginning of the line. This seems to be the most sane fix for me until
+ the printer selection stuff is settled once and for all - and it shouldn't
+ touch the behaviour in other spooling systems.
+
+2000-06-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.65) (+4 -4)
+
+ fix for compile errors introduced with last commit
+
+2000-06-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.64) (+58 -12)
+
+ Preparations to improve color output on the canon printers (might break
+ things till the next commit)
+
+2000-06-23 <jmv@sourceforge.net>
+
+ Files: print-dither.c (1.53.2.7) (+70 -63)
+ print-escp2.c (1.155.2.6) (+71 -69)
+ print.h (1.55.2.5) (+2 -0)
+
+ Several corrections. Black improved. Ordered dithering massively improved
+
+2000-06-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.63) (+3 -1)
+
+ Further fix for the bjc-8200 to use the 6d-command (properly set
+ the printhead, etc) -- set CANON_CAP_CMD6d to test it
+
+2000-06-22 <easysw@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.13) (+27 -28)
+ escputil.c (1.5) (+2 -2)
+ gtk_main_window.c (1.35) (+5 -1)
+ print-dither.c (1.68) (+5 -1)
+ print-escp2.c (1.171) (+6 -2)
+ print-util.c (1.101) (+5 -1)
+
+ Fixes to make things compile under IRIX.
+
+2000-06-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.62) (+23 -8)
+
+ * Added new command for the bjc-8200
+ * Changed order of colors to KYMCymc (hope this fixes problem with the bjc-8200)
+ * Added (experimental) variable dot size support to the bjc-8200
+
+2000-06-22 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.26) (+5 -4)
+ gtk_main_window.c (1.34) (+4 -3)
+ print-dither.c (1.67) (+2 -2)
+ print-escp2.c (1.170) (+5 -5)
+
+ New emulated 1440x2880 oversampled mode -- very slow, extremely smooth,
+ no visible banding at all.
+
+ Don't reset paper size when changing printer. This still isn't entirely
+ correct, since it generates a GTK warning at startup, but it's a cut at
+ it.
+
+2000-06-22 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.4) (+2 -2)
+ gimp_main_window.c (1.25) (+20 -16)
+ gtk_main_window.c (1.33) (+19 -16)
+
+ Do not recenter the image every time the plugin is started up. This
+ happens because the image is recentered every time the media size
+ callback is called, which always happens at startup. We will only
+ recenter if the media size (or orientation) changes from its previous
+ setting.
+
+2000-06-21 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.24) (+122 -51)
+ gtk_main_window.c (1.32) (+22 -24)
+ print_gimp.h (1.21) (+1 -2)
+
+ Merge Charles' UI changes into the Gimp version of the plugin
+
+2000-06-21 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.61) (+4 -3)
+ print-escp2.c (1.169) (+12 -10)
+ print-pcl.c (1.61) (+3 -5)
+ print-ps.c (1.34) (+3 -3)
+ print-util.c (1.100) (+137 -128)
+ print.c (1.101) (+7 -4)
+ print.h (1.66) (+13 -10)
+
+ First stage of moving all color lookup into the print functions.
+ Eventually we will feed the dither routines CMY or CMYK rather than
+ RGB.
+
+2000-06-20 <cpbs@sourceforge.net>
+
+ Files: print-image-gimp.c (1.3) (+16 -42)
+ print.h (1.65) (+3 -3)
+
+ Remove Image_get_col() which is no longer used. Split out Image_reset()
+ from Image_GDrawable_new().
+
+2000-06-20 <cpbs@sourceforge.net>
+
+ Files: gtk_main_window.c (1.31) (+11 -4)
+
+ Drag the preview around in postscript points instead of screen pixels
+ if a button other than the first is used.
+
+2000-06-20 <cpbs@sourceforge.net>
+
+ Files: pcl-unprint.c (1.14) (+4 -3)
+ print-canon.c (1.60) (+2 -2)
+ print-dither.c (1.66) (+2 -2)
+ print-escp2.c (1.168) (+2 -2)
+ print-pcl.c (1.60) (+2 -2)
+ print-ps.c (1.33) (+2 -2)
+ print-util.c (1.99) (+2 -2)
+
+ Replace comments indicating revision histories at the end of source
+ files to refer to the ChangeLog instead.
+
+2000-06-20 <cpbs@sourceforge.net>
+
+ Files: gtk_main_window.c (1.30) (+74 -26)
+
+ To better handle the myriad of paper sizes, change the media size
+ selection into a combo box.
+
+2000-06-20 <cpbs@sourceforge.net>
+
+ Files: gtk_main_window.c (1.29) (+29 -19)
+
+ Make the preview arrow always be 1 inch long. Double the size of
+ the preview, but scale preview to fit the preview area if it wouldn't
+ otherwise; the constant size arrow gives a visual clue as to the actual
+ scaling of the preview.
+
+2000-06-20 <cpbs@sourceforge.net>
+
+ Files: print-util.c (1.98) (+130 -62)
+
+ Added some more paper sizes and corrected some of the existing ones.
+
+2000-06-20 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.23) (+2 -2)
+ gtk_main_window.c (1.28) (+2 -2)
+ print-canon.c (1.59) (+2 -2)
+ print-escp2.c (1.167) (+2 -2)
+ print-pcl.c (1.59) (+2 -2)
+ print-ps.c (1.32) (+2 -2)
+ print.c (1.100) (+7 -12)
+ print.h (1.64) (+8 -11)
+
+ Move color map into vars structure to simplify calling sequence
+
+2000-06-20 <rlk@sourceforge.net>
+
+ Files: printdefy.y (1.5) (+2 -2)
+
+ Declare main() properly.
+
+2000-06-20 <jmv@sourceforge.net>
+
+ Files: gimp_color_window.c (1.6.2.2) (+2 -2)
+ gimp_main_window.c (1.10.2.3) (+101 -28)
+ gtk_color_window.c (1.9.2.2) (+2 -2)
+ gtk_main_window.c (1.14.2.3) (+83 -17)
+ print-dither.c (1.53.2.6) (+21 -16)
+ print-escp2.c (1.155.2.5) (+48 -18)
+ print.c (1.95.2.3) (+18 -9)
+ print.h (1.55.2.4) (+1 -0)
+
+ Fixes several bugs for 1 ink level and 3 ink level printers.
+ Changes to black generation.
+
+2000-06-20 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.22) (+6 -4)
+ gtk_main_window.c (1.27) (+4 -3)
+ print-util.c (1.97) (+62 -62)
+ print.h (1.63) (+9 -2)
+
+ Handle paper size unit correctly for both gimp and gtk.
+
+ Add unit type to paper size (we don't use it yet for anything).
+
+2000-06-19 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.8) (+1 -0)
+
+ Add escputil
+
+2000-06-19 <cpbs@sourceforge.net>
+
+ Files: Makefile.am (1.41) (+4 -2)
+
+ Make "make clean" and "make maintainerclean" clean up more.
+
+2000-06-19 <jmv@sourceforge.net>
+
+ Files: gimp_main_window.c (1.21) (+6 -6)
+
+ Stupid bug fix in adding Unit to gim_main_window
+
+2000-06-19 <jmv@sourceforge.net>
+
+ Files: gimp_color_window.c (1.8) (+3 -3)
+ gimp_main_window.c (1.20) (+66 -7)
+ gtk_color_window.c (1.11) (+3 -3)
+ gtk_main_window.c (1.26) (+13 -7)
+ print.c (1.99) (+20 -11)
+ print.h (1.62) (+3 -2)
+
+ added unit for preview in gimp_main_window.c (blindly). Moved unit to printer settings
+ Improved handling of printrc settings.
+
+2000-06-19 <rlk@sourceforge.net>
+
+ Files: gtk_main_window.c (1.25) (+2 -2)
+
+ make vars_unit static
+
+2000-06-19 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.3) (+1 -2)
+ print-util.c (1.96) (+53 -8)
+
+ Remove duplicate pclose
+
+2000-06-19 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.58) (+12 -2)
+
+ Added Canon BJC-4300
+
+2000-06-19 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.40) (+20 -16)
+
+ small canon update
+
+2000-06-19 <jmv@sourceforge.net>
+
+ Files: gtk_main_window.c (1.24) (+73 -14)
+
+ Included Unit (Inch/Cm) checkboxes
+
+2000-06-18 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.40) (+5 -7)
+ gimp_main_window.c (1.19) (+36 -22)
+ gtk_main_window.c (1.23) (+31 -20)
+ print-canon.c (1.57) (+5 -7)
+ print-dither.c (1.65) (+70 -41)
+ print-escp2.c (1.166) (+5 -6)
+ print-pcl.c (1.58) (+5 -7)
+ print.h (1.61) (+4 -5)
+ ran.367.179.h (1.1) ( )
+
+ Incorporate Thomas Tonino's 367x192 matrix.
+
+ Incorporate Jean-Marc Verbavatz's scrolling viewport code for printer
+ drivers. This finally solves the problem of the overflowing printer
+ list!
+
+2000-06-18 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.64) (+3 -3)
+
+ Minor bug fix
+
+2000-06-18 <jmv@sourceforge.net>
+
+ Files: escp2-unprint.c (1.1.6.1) (+8 -8)
+ escp2-weavetest.c (1.11.2.1) (+2 -2)
+ gimp_color_window.c (1.6.2.1) (+2 -2)
+ gimp_main_window.c (1.10.2.2) (+19 -19)
+ gtk_color_window.c (1.9.2.1) (+7 -7)
+ gtk_main_window.c (1.14.2.2) (+57 -47)
+ pcl-unprint.c (1.12.2.1) (+11 -11)
+ print-canon.c (1.49.2.4) (+138 -138)
+ print-dither.c (1.53.2.5) (+181 -162)
+ print-escp2.c (1.155.2.4) (+437 -234)
+ print-image-gimp.c (1.2.2.2) (+3 -3)
+ print-pcl.c (1.52.2.4) (+61 -61)
+ print-ps.c (1.26.2.2) (+2 -2)
+ print-util.c (1.92.2.2) (+5 -5)
+ print.c (1.95.2.2) (+6 -6)
+ print.h (1.55.2.3) (+3 -3)
+ print_gimp.h (1.15.2.2) (+0 -0)
+ quickmatrix199-2.h (1.1.2.1) (+3466 -3466)
+ quickmatrix199.h (1.1.2.1) (+3466 -3466)
+ quickmatrix257.h (1.1.2.1) (+5951 -5951)
+ unprint.c (1.37.6.2) (+44 -44)
+
+ Merge with 2000-06-17 main repository. gtk "Driver" now shows all printers
+
+2000-06-18 <rlk@sourceforge.net>
+
+ Files: README (1.18) (+1 -1)
+ print_gimp.h (1.20) (+2 -2)
+
+ Print 3.1.7 release
+
+2000-06-18 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.2) (+207 -37)
+
+ Add ink levels and ID string
+
+2000-06-17 <rlk@sourceforge.net>
+
+ Files: print_gimp.h (1.19) (+2 -2)
+
+ Fix the release date
+
+2000-06-17 <rlk@sourceforge.net>
+
+ Files: README (1.17) (+1 -1)
+ print_gimp.h (1.18) (+2 -2)
+
+ 3.1.6 release prep
+
+2000-06-17 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.39) (+11 -10)
+
+ Do not distribute the 199-axis matrices, since we're not currently
+ using them.
+
+2000-06-17 <rlk@sourceforge.net>
+
+ Files: escputil.c (1.1) ( )
+
+ ESCP/2 print head clean, nozzle check, alignment utility.
+
+2000-06-17 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.49.2.3) (+2 -2)
+ print-pcl.c (1.52.2.3) (+2 -2)
+
+ Fix calls to dither_set_density
+
+2000-06-17 <jmv@sourceforge.net>
+
+ Files: Makefile.am (1.36.2.1) (+2 -1)
+ gimp_main_window.c (1.10.2.1) (+168 -121)
+ gtk_main_window.c (1.14.2.1) (+182 -118)
+ print-canon.c (1.49.2.2) (+95 -268)
+ print-dither.c (1.53.2.4) (+1 -8)
+ print-image-gimp.c (1.2.2.1) (+1 -1)
+ print-pcl.c (1.52.2.2) (+98 -335)
+ print-ps.c (1.26.2.1) (+20 -159)
+ print.c (1.95.2.1) (+12 -87)
+ print_gimp.h (1.15.2.1) (+9 -1)
+ unprint.c (1.37.6.1) (+2 -2)
+
+ Branch cleanup
+
+2000-06-17 <jmv@sourceforge.net>
+
+ Files: print-dither.c (1.53.2.3) (+120 -99)
+ print-escp2.c (1.155.2.3) (+21 -21)
+ print-util.c (1.92.2.1) (+134 -2)
+
+ Density based dithering. Improved black generation and color transitions
+
+2000-06-15 <rlk@sourceforge.net>
+
+ Files: escp2-unprint.c (1.2) (+8 -8)
+ escp2-weavetest.c (1.12) (+2 -2)
+ gimp_color_window.c (1.7) (+2 -2)
+ gimp_main_window.c (1.18) (+19 -19)
+ gtk_color_window.c (1.10) (+7 -7)
+ gtk_main_window.c (1.22) (+29 -29)
+ pcl-unprint.c (1.13) (+11 -11)
+ print-canon.c (1.56) (+138 -138)
+ print-dither.c (1.63) (+96 -64)
+ print-escp2.c (1.165) (+18 -18)
+ print-pcl.c (1.57) (+61 -61)
+ print-util.c (1.95) (+4 -4)
+ print.c (1.98) (+6 -6)
+ quickmatrix199-2.h (1.2) (+3466 -3466)
+ quickmatrix199.h (1.2) (+3466 -3466)
+ quickmatrix257.h (1.2) (+5951 -5951)
+ unprint.c (1.39) (+44 -44)
+
+ ccept non-square dither matrices (e. g. for non-square pixels).
+
+ Strip trailing whitespace from everything (minor nit cleanup).
+
+2000-06-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.164) (+33 -23)
+
+ Fix microweave positioning
+
+ Add additional ink drop size for low res printing
+
+2000-06-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.163) (+2 -2)
+
+ Generate smoother output with quadratic sliding
+
+2000-06-15 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.62) (+24 -12)
+
+ Scale quadratically rather than linearly between tones to improve
+ transition regions on 6-color and variable dot size printers.
+
+2000-06-13 <jmv@sourceforge.net>
+
+ Files: print.h (1.55.2.2) (+25 -6)
+
+ JMV's work updated
+
+2000-06-13 <jmv@sourceforge.net>
+
+ Files: print-escp2.c (1.155.2.2) (+335 -344)
+
+ JMV's work for epson 870
+
+2000-06-13 <jmv@sourceforge.net>
+
+ Files: print-dither.c (1.53.2.2) (+786 -551)
+
+ JMV's Work based on print-dither 1.60
+
+2000-06-13 <rlk@sourceforge.net>
+
+ Files: print-image-gimp.c (1.2) (+3 -3)
+ print-ps.c (1.31) (+2 -2)
+ print.h (1.60) (+3 -3)
+
+ Rename Image_get_pluginname to Image_get_appname
+
+2000-06-13 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.61) (+55 -37)
+ print-escp2.c (1.162) (+386 -193)
+
+ Major performance improvements, particularly for typical PostScript
+ rendering applications. The improvements fall into two categories;
+ general improvements in the Epson bit twiddling code, and taking
+ advantage of blank dots and lines to reduce the amount of work that
+ needs to be done.
+
+ More work is there to be done, particularly for error diffusion.
+ Ordered dither is in quite good shape at this point. PostScript
+ rendering may see improvements of about an order of magnitude, give
+ or take. Photographs will not improve very much in rendering
+ performance.
+
+2000-06-13 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.60.2.1) (+55 -37)
+ print-escp2.c (1.161.2.1) (+386 -193)
+
+ In case I have a disk crash...
+
+2000-06-12 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.55) (+25 -21)
+
+ * Fixed small bug introduced in recent changes (code reduction)
+ * Fixed maximum quality printing for the bjc8200
+ * Fixed bug in 6color printing at 1440x720 dpi on the bjc6000
+ * 6color printing should work almost perfect now!
+
+2000-06-12 <cpbs@sourceforge.net>
+
+ Files: print-canon.c (1.54) (+63 -132)
+ print-escp2.c (1.161) (+49 -110)
+ print-pcl.c (1.56) (+90 -206)
+ print-ps.c (1.30) (+14 -33)
+ print-util.c (1.94) (+23 -58)
+ print.h (1.59) (+5 -5)
+
+ Take advantage of the Image layer's new capabilities. Instead of
+ handling landscape-way printing in the driver-specific files,
+ compute_page_parameters() calls Image_rotate_ccw(). Chuck away quite
+ a lot of duplicated code.
+
+ Simplify the landscape decision-making code in compute_page_parameters()
+ to match the code in the GUIs. (Ideally, the decision should be made
+ in one place only, but if the same criteria are used in both cases,
+ that'll do for now. ;) )
+
+2000-06-12 <cpbs@sourceforge.net>
+
+ Files: Makefile.am (1.38) (+1 -0)
+ print-image-gimp.c (1.1) ( )
+ print.c (1.97) (+5 -85)
+ print.h (1.58) (+16 -6)
+ print_gimp.h (1.17) (+8 -1)
+
+ Extract the "Image" layer into its own file. Beef it up to enable the
+ Image ADT to perform rotation, flipping and cropping on the image.
+
+2000-06-11 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.17) (+4 -2)
+ gtk_main_window.c (1.21) (+4 -2)
+ print.c (1.96) (+9 -4)
+
+ Add the name of the image being printed to the print plugin's window
+ title.
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-ps.c (1.29) (+10 -132)
+
+ Factor out common code
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.53) (+10 -123)
+ print-escp2.c (1.160) (+17 -144)
+ print-pcl.c (1.55) (+8 -134)
+ print-util.c (1.93) (+161 -1)
+ print.h (1.57) (+9 -2)
+
+ Factor out common code
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.52) (+6 -1)
+ print-dither.c (1.60) (+22 -10)
+ print-escp2.c (1.159) (+7 -2)
+ print-pcl.c (1.54) (+6 -1)
+ print.h (1.56) (+4 -2)
+
+ Tell dither about pixel aspect ratio. We can't do too much with it
+ right now, since our matrix gets very unhappy if we skip pixels, but
+ it's important information. Raph's code needs it, when we start using
+ it.
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.59) (+56 -43)
+
+ Fiddle with the way matrix offsets are used for cleaner code.
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.58) (+9 -4)
+
+ Free CMYK buffers after dithering complete
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.57) (+133 -78)
+
+ Really split out the CMYK separation.
+
+2000-06-10 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.56) (+160 -112)
+
+ Reorganize dither_cmyk to explicitly break out three steps:
+
+ 1) Compute the basic CMYK separations.
+
+ 2) Update the separations to enhance print quality.
+
+ 3) Dither.
+
+2000-06-09 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.37) (+1 -1)
+
+ Add description of ESCP2 language
+
+2000-06-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.158) (+71 -17)
+
+ Update description of softweave.
+
+ Massive memory savings in many cases (high interleave factor).
+
+2000-06-08 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.55) (+25 -21)
+
+ Rearrange to put all dithering after separation code, to at least
+ symbolize desire to split these two functions.
+
+ Eliminate last function-like macro.
+
+2000-06-06 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.54) (+419 -355)
+ print-escp2.c (1.157) (+130 -29)
+
+ Some performance optimizations in the dither code.
+
+ General cleanup of the matrix handling code in the dither routines.
+
+ Redo the giant softweave comment.
+
+2000-06-06 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.51) (+5 -5)
+
+ Use correct density for light inks (33% instead of 25%)
+
+2000-06-05 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.16) (+2 -2)
+
+ Set scaling correctly if we're using ppi.
+
+2000-06-05 <rlk@sourceforge.net>
+
+ Files: unprint.c (1.38) (+2 -2)
+
+ "Segmentation integrity core contained" is just a bit too cute...
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.15) (+42 -90)
+ gtk_main_window.c (1.20) (+40 -85)
+
+ gtk_main_window.c:
+ gtk_preview_update(): Rewrote the code which decides whether
+ ORIENT_AUTO means ORIENT_LANDSCAPE or ORIENT_PORTRAIT. It's now
+ much simpler, and I believe it gives the same results it did before.
+ New variable, min_ppi_scaling, which could be useful as a limit for
+ the scaling slider.
+
+ gimp_main_window.c:
+ Similar, but untested, changes.
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.14) (+31 -2)
+ gtk_main_window.c (1.19) (+32 -2)
+
+ gtk_main_window.c: Draw an arrow in the preview widget showing which
+ way the top of paper is.
+
+ gimp_main_window.c: Similar, but untested, change.
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.13) (+26 -19)
+ gtk_main_window.c (1.18) (+22 -16)
+
+ gtk_main_window.c: Make "top" and "bottom" be measured from the top of
+ the page instead of the bottom. This simplifies the code somewhat.
+ Incidentally, fix a bug where the paper's left and right margins would
+ be swapped on the preview if the preview was in landscape mode.
+
+ gimp_main_window.c: Comparable, but untested, changes.
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.12) (+56 -2)
+ gtk_main_window.c (1.17) (+74 -6)
+
+ gtk_main_window.c:
+ gtk_create_main_window(): Add "width" and "height" text entry fields.
+ gtk_position_callback(): Make entries in those fields update the
+ scaling slider.
+ gtk_preview_update(): Make changes in the slider update the width and
+ height entries.
+
+ gimp_main_window.c:
+ Similar but untested changes.
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: gtk_main_window.c (1.16) (+2 -2)
+
+ gtk_main_window.c: make the scaling text entry widget do things only
+ when return is pressed, instead of whenever the user changes the value,
+ which was confusing.
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: gimp_main_window.c (1.11) (+15 -12)
+ gtk_main_window.c (1.15) (+15 -12)
+ print_gimp.h (1.16) (+2 -1)
+
+ print_gimp.h: new constant PREVIEW_PPI
+ gtk_main_window.c, gimp_main_window.c: use it
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: print-canon.c (1.50) (+4 -4)
+ print-escp2.c (1.156) (+4 -4)
+ print-pcl.c (1.53) (+4 -4)
+ print-ps.c (1.28) (+4 -4)
+
+ Fix a bug whereby, in landscape mode, the image was positioned as if the
+ left-hand side of the image should be printed at the top of the paper,
+ while the image was rotated as if its right-hand side should be printed
+ at the top of the paper. Now, we always assume the right-hand side of
+ the image belongs at the top of the paper.
+
+2000-06-04 <cpbs@sourceforge.net>
+
+ Files: print-ps.c (1.27) (+4 -2)
+
+ Add a second "%" before "%Creator:". Without this, at least one program
+ (epsffit) wouldn't recognise the "%%BoundingBox:" a few lines further
+ down.
+
+ Fix a bug which printed the image too far left by the width of the
+ left margin.
+
+2000-06-03 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.49.2.1) (+2 -2)
+ print-dither.c (1.53.2.1) (+101 -51)
+ print-escp2.c (1.155.2.1) (+31 -9)
+ print-pcl.c (1.52.2.1) (+2 -2)
+ print.h (1.55.2.1) (+3 -3)
+
+ Put Jean-Marc Verbavatz's stuff on a branch, to make merging easier
+
+2000-06-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.155) (+3 -3)
+
+ Advance paper correctly initially in microweave/360 modes.
+
+2000-06-01 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.53) (+130 -13)
+ print-escp2.c (1.154) (+62 -1)
+ print.h (1.55) (+25 -3)
+
+ Merge Jean-Marc's new functions in, without touching the core
+
+2000-06-01 <jmv@sourceforge.net>
+
+ Files: jmv/README (1.2) (+6 -0)
+
+ *** empty log message ***
+
+2000-05-31 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.52) (+2 -55)
+
+ Flush perturbed ordered dithering; also simplify hybrid F-S.
+
+2000-05-31 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.36) (+4 -1)
+ print_gimp.h (1.15) (+2 -2)
+
+ 3.1.5 release
+
+2000-05-31 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.153) (+4 -2)
+
+ Try to fix density for variable dot size printers.
+
+2000-05-30 <rlk@sourceforge.net>
+
+ Files: print.c (1.95) (+17 -4)
+
+ The monitor process should NOT attempt to clean up after itself. It
+ must exit with _exit() rather than exit() to avoid trying to close
+ down the X server cleanly, which fails because the actual print
+ process has already closed the connection.
+
+2000-05-30 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.49) (+49 -24)
+
+ Borders can now be specified indiviually for each model
+
+2000-05-29 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.48) (+23 -21)
+ print-escp2.c (1.152) (+26 -23)
+ print-pcl.c (1.52) (+25 -23)
+ print-ps.c (1.26) (+8 -7)
+ print-util.c (1.92) (+7 -7)
+ print.h (1.54) (+19 -15)
+
+ Preserve density correctly
+
+2000-05-28 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.47) (+3 -3)
+
+ Fixed density, gamma and black level
+
+2000-05-25 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.51) (+23 -6)
+ print-escp2.c (1.151) (+6 -7)
+ print.h (1.53) (+3 -2)
+
+ Improve adaptive dithering to account for Thomas' new matrices being
+ much better than the previous ones we've used.
+
+2000-05-25 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.10) (+4 -3)
+ gtk_main_window.c (1.14) (+4 -3)
+
+ Use offsets from origin consistently
+
+2000-05-24 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.50) (+12 -7)
+
+ Try to fix a few more overflow problems
+
+2000-05-24 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.49) (+4 -4)
+
+ Fix overflow problems
+
+2000-05-24 <ttonino@sourceforge.net>
+
+ Files: print-dither.c (1.48) (+8 -19)
+
+ Removed superfluous matrix optimizations and chenged 'invert' behaviour.
+
+2000-05-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.150) (+11 -11)
+
+ Expand printable region on newer Epson printers
+
+2000-05-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.149) (+3 -2)
+
+ Save memory on the variable dot size printers.
+
+2000-05-24 <cpbs@sourceforge.net>
+
+ Files: print.c (1.94) (+81 -4)
+
+ Spawn a "monitor" process to kill off lpr if the plugin dies before
+ completing the print. This helps in the case of crashes, and also when
+ the Gimp SIGKILLs the plugin when the user hits "Cancel".
+
+2000-05-24 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.35) (+9 -6)
+ README (1.16) (+1 -1)
+ gimp_main_window.c (1.9) (+3 -3)
+ gtk_main_window.c (1.13) (+3 -4)
+ print-dither.c (1.47) (+47 -7)
+ print-escp2.c (1.148) (+5 -2)
+ print_gimp.h (1.14) (+2 -2)
+ quickmatrix199-2.h (1.1) ( )
+ quickmatrix199.h (1.1) ( )
+ quickmatrix257.h (1.1) ( )
+
+ Incorporate Thomas Tonino's dither matrices.
+
+2000-05-23 <cpbs@sourceforge.net>
+
+ Files: debian/changelog (1.1) ( )
+
+ Added Debianisation files in debian/. subdirectory.
+
+2000-05-23 <jmv@sourceforge.net>
+
+ Files: jmv/README (1.1) ( )
+
+
+ This is experimental stuff for the epson stylus photo 870
+
+2000-05-23 <ttonino@sourceforge.net>
+
+ Files: print-dither.c (1.46) (+13 -9)
+
+ Made density curve smoother. Before, dark areas could could look
+ rather weak. Added more contrast by not subtracting all K from CMY, but
+ a fraction dependent on K level and black limits.
+
+2000-05-23 <ttonino@sourceforge.net>
+
+ Files: print-dither.c (1.45) (+22 -19)
+
+ Black lines in dark colors removed.
+
+2000-05-23 <smiller@sourceforge.net>
+
+ Files: gimp_main_window.c (1.8) (+97 -91)
+
+
+ Patch to use a printable area in preview for gimp gui.
+
+2000-05-22 <ttonino@sourceforge.net>
+
+ Files: print-dither.c (1.44) (+23 -23)
+
+ Black generation revised again. All scaled to actual density now.
+ 'plain paper' setting is really suitable for plain paper now.
+ 'coated' should maybe be split: normal coated and photo style paper
+ coated.
+
+2000-05-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.46) (+47 -21)
+
+ * fixed resolutions list generation (offered unsupported xdpi!=ydpi resolutions
+ for some printers)
+ * added outputmedia "Photo Paper Pro"
+ * enabled 6color printing on models supporting this
+ * trying same dither_set_black_*() calls as in print-escp2.c
+ * trying to fix density problem with xdpi!=ydpi (was way too dark)
+
+2000-05-22 <ttonino@sourceforge.net>
+
+ Files: Matgen/quickdistance.c (1.2) (+45 -4)
+
+ Output format slightky changed. Added parameter sections for 2 useful
+ 199x199 matrices and an (untetsed) 257x257 matrix.
+
+2000-05-21 <ttonino@sourceforge.net>
+
+ Files: print-escp2.c (1.147) (+3 -3)
+
+ Black thresholds adjusted for new black routine.
+
+2000-05-21 <ttonino@sourceforge.net>
+
+ Files: print-dither.c (1.43) (+51 -81)
+
+ Changed black generation so it behaves well with lower values of
+ the thresholds. Even 0.1 and 0.2 as thresholds produce acceptable,
+ if grainy, results.
+
+ Only tested with Epson Stylus Color 600 so far.
+
+2000-05-20 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.42) (+17 -12)
+ print-escp2.c (1.146) (+48 -41)
+
+ Tune ink values for 870.
+
+ Flip flop again on how to handle variable dots with error diffusion.
+ I believe that what I'm now doing is correct, but it needs a better matrix
+ in order to really work properly. Hopefully Thomas Tonino will provide
+ that.
+
+ Use ordered dithering only for black ink, to escape error diffusion
+ artifacts. This may not be a good decision; time will tell. We also
+ need a better matrix for that.
+
+2000-05-19 <smiller@sourceforge.net>
+
+ Files: gtk_main_window.c (1.12) (+117 -98)
+
+
+ Applied patch supplied by Thorsten Schnier for some positioning errors
+ in the gtk gui.
+
+2000-05-18 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.45) (+4 -2)
+
+ Activated the canon BJC 8200 for testing (no idea if it works at all..)
+
+2000-05-18 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.41) (+55 -50)
+ print-escp2.c (1.145) (+4 -20)
+
+ Improve smoothness substantially, at least on variable dot size
+ printers. The previous code used big dots too heavily, with resulting
+ grain.
+
+ This may not be optimal for conventional 4 and 6 color printers. Needs
+ more testing.
+
+2000-05-17 <ttonino@sourceforge.net>
+
+ Files: Matgen/quickdistance.c (1.1) ( )
+
+ New version of dither generation program. Unrelated to patented software.
+ First 4 points for a matrix are set by hand - these 4 do not conflict when
+ matrix is shifted by 100 pixels H and/or V.
+
+ Adds a bit of randomness for every pixel added and runs fairly quick: a few
+ hours makes a 199 by 199 matrix. Should be possible to make a 257 x 257 matrix
+ in reasonable time: more than 64K values!
+
+2000-05-17 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.11) (+3 -2)
+
+ Improve the banner
+
+2000-05-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.144) (+5 -8)
+
+ Fix if first pass doesn't contain any data.
+
+2000-05-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.143) (+155 -203)
+
+ Support x8 weave (for higher quality printing on 360 physical dpi
+ printers). This isn't perfect yet; there are some quality problems
+ that are probably due to a bug somewhere.
+
+ Code cleanup in initialization
+
+2000-05-15 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.12) (+5 -16)
+
+ ESC * o W is called "Driver Configuration". What it *does* is still unknown!
+ (somehow this comment got attached to print-pcl.c even though it had just
+ been checked in so shouldn't have changed!)
+
+2000-05-15 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.51) (+0 -0)
+
+ ESC * o W is called "Driver Configuration". What it *does* is still
+ unknown!
+
+2000-05-15 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.50) (+58 -57)
+
+ Tidied up Resolution selection code. Replaced some constants with
+ sizeof... calculations. DJ1200/1600 are CMYK, not CMY.
+
+2000-05-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.142) (+17 -14)
+
+ Major bug fix for vertical positioning of imaging.
+
+ Tuned up ink colors/drop sizes and black levels for the 870
+
+2000-05-13 <rlk@sourceforge.net>
+
+ Files: pcl-unprint.c (1.11) (+2 -48)
+ print-canon.c (1.44) (+1 -185)
+ print-dither.c (1.40) (+1 -150)
+ print-escp2.c (1.141) (+6 -602)
+ print-pcl.c (1.49) (+1 -286)
+ print-ps.c (1.25) (+1 -182)
+ print-util.c (1.91) (+1 -392)
+
+ Put USB init string into all Canon printers from the 900 on. This needs
+ to be tested.
+
+ Remove all RCS logs from the source code. Since the ChangeLog is
+ automatically generated from the RCS logs, their presence in the files
+ is superfluous.
+
+2000-05-13 <sharkey@sourceforge.net>
+
+ Files: print-escp2.c (1.140) (+15 -3)
+
+ Change the 750 from MODEL_INIT_STANDARD to MODEL_INIT_900. Allows USB to
+ work without bending over backwards.
+
+2000-05-13 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.10) (+53 -11)
+ print-dither.c (1.39) (+199 -59)
+ print-escp2.c (1.139) (+276 -102)
+ print-util.c (1.90) (+17 -13)
+ print.h (1.52) (+5 -2)
+
+ Allow printing to the top edge and much closer to the bottom on Epson
+ printers (major change in the softweave code).
+
+ Performance tweaks in the dither routines and in the color conversion
+ routine (this needs to be ported to the other conversion routines in
+ print-util.c).
+
+ Support for some kind of ink limiting in the dither code. Not clear that
+ this really does very well (it may make things ugly); we may rip it back
+ out.
+
+2000-05-11 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.43) (+7 -4)
+
+ Fix for variable drop size printing
+
+2000-05-06 <rlk@sourceforge.net>
+
+ Files: gtk_color_window.c (1.9) (+2 -2)
+
+ Allow density up to 3
+
+2000-05-06 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.38) (+142 -85)
+
+ Convert UPDATE_DITHER from a macro to a function. This should make it
+ easier to profile this code (it needs it, badly!). We can always make
+ this inline if need be.
+
+ Point optimizations in dither_cmyk.
+
+ Silly bug in hybrid Floyd-Steinberg. It actually looks quite nice
+ now!
+
+2000-05-05 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.10) (+95 -20)
+
+ Cope with DJ690 photo without crashing. It doesn't actually decode them
+ properly (yet).
+
+2000-05-05 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.48) (+214 -29)
+
+ Added DJ690 Photo mode (thanks to Henk Verleye).
+
+2000-05-05 <mitsch@sourceforge.net>
+
+ Files: print.c (1.93) (+4 -4)
+
+ Check for (GIMP_MINOR_VERSION == 0) instead of GIMP_1_0 when deciding
+ where to look for printrc.
+
+2000-05-05 <gandy@sourceforge.net>
+
+ Files: print.c (1.92) (+4 -2)
+
+ printrc_save() now prints a warning if it cannot open the save-file
+
+2000-05-05 <gandy@sourceforge.net>
+
+ Files: print.c (1.91) (+4 -3)
+
+ Small extension to lpstat output parsing to make it work with lprng without
+ breaking anything...
+
+2000-05-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.138) (+6 -3)
+
+ Set ink size
+
+2000-05-05 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.42) (+31 -12)
+
+ Better handling of canon send buffer
+
+2000-05-05 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.37) (+12 -39)
+ print-escp2.c (1.137) (+7 -146)
+
+ Minor cleanup
+
+2000-05-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.136) (+112 -60)
+
+ Optimize out head motion and color commands where possible.
+ We can still optimize out some horizontal movements.
+ Avoid printing color in *pure* black.
+
+2000-05-04 <mitsch@sourceforge.net>
+
+ Files: print.c (1.90) (+27 -32)
+ print_gimp.h (1.13) (+3 -2)
+
+ - Use the new libgimp function gimp_ui_init(). This requires Gimp 1.1.21
+ or better.
+ - Correctly delete the export image if the user canceled the dialog.
+ - Fixed an "unused variable" warning in get_system_printers().
+
+2000-05-04 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.9) (+50 -40)
+ print-canon.c (1.41) (+11 -5)
+ print-escp2.c (1.135) (+37 -20)
+ print-pcl.c (1.47) (+7 -2)
+
+ Improve use of black ink to reduce sharp grain.
+
+ Improve weaving code for some corner cases (this will let us go x8 for some
+ important cases, if we really want to print that slowly).
+
+ Fix ESC 440 softweave
+
+ Fix use of microweave at 360 dpi (microweave should not be used at 360 on
+ any printer).
+
+ Try to improve dither smoothness a bit.
+
+ Fix ink constants for ESP 870
+ from Jean-Marc Verbavatz <verbavatz@ifrance.com>
+
+2000-05-03 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.36) (+8 -2)
+
+ Avoid out of range problems
+
+2000-05-03 <mitsch@sourceforge.net>
+
+ Files: print_gimp.h (1.12) (+2 -2)
+
+ Require Gimp 1.1.16 or better for the "Gimp" ui.
+
+2000-05-02 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.35) (+344 -371)
+ print-escp2.c (1.134) (+58 -9)
+
+ Improved dither code. Deposits significantly less ink than previous version,
+ and gives better saturation.
+
+2000-05-01 <ttonino@sourceforge.net>
+
+ Files: Matgen/dither-distance.c (1.1) ( )
+
+ Code used to create 73dither-distance.i. Initial 3 dots may need improvement.
+ A new version with some randomization is on its way.
+
+2000-04-29 <rlk@sourceforge.net>
+
+ Files: README (1.15) (+1 -1)
+ escp2-weavetest.c (1.8) (+3 -2)
+ print-escp2.c (1.133) (+25 -7)
+ print_gimp.h (1.11) (+2 -2)
+
+ Preliminary support for Stylus Color 760
+
+ Fix one corner case with weave computation (there are lots left!)
+
+ Prep for 3.1.4
+
+2000-04-29 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.34) (+19 -5)
+
+ Improve photo and line art mode
+
+2000-04-29 <rlk@sourceforge.net>
+
+ Files: RedHat/ghostscript-5.50.spec (1.1) ( )
+ RedHat/gimp-print.spec (1.1) ( )
+ RedHat/gs.spec.diff (1.1) ( )
+
+ Spec files for Red Hat RPM's, from Mark Hindess <beanz@uklinux.net>
+
+2000-04-27 <rlk@sourceforge.net>
+
+ Files: print-ps.c (1.24) (+8 -3)
+
+ Fix copyright
+
+2000-04-27 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.33) (+436 -306)
+
+ Comments
+
+2000-04-27 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.32) (+91 -77)
+
+ Add Thomas Tonino's 23x23 matrix
+
+2000-04-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.132) (+32 -8)
+
+ Support glossy film
+
+2000-04-26 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.31) (+12 -13)
+
+ Minor improvements
+
+2000-04-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.131) (+35 -21)
+
+ try again for 660
+
+2000-04-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.130) (+22 -6)
+
+ Try to support Epson 660
+
+2000-04-24 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.30) (+14 -5)
+
+ Give the primary more weight, and the other colors less weight, in the
+ density calculation. The previous weights resulted in too much dark
+ ink mixing in, which caused excessive graininess in some situations.
+
+2000-04-24 <rlk@sourceforge.net>
+
+ Files: gtk_main_window.c (1.11) (+2 -2)
+ print-dither.c (1.29) (+47 -13)
+ print-escp2.c (1.129) (+9 -5)
+
+ fix warning in gtk_main_window.c
+
+ Add perturbed ordered dither (perturbed to break up the fine diagonal
+ lines characteristic of the matrix used).
+
+ Improve transfer function for Epson photo printers (change the
+ constants).
+
+2000-04-23 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.34) (+1 -1)
+
+ Include gs-stp.pdq
+
+2000-04-22 <rlk@sourceforge.net>
+
+ Files: print_gimp.h (1.10) (+2 -2)
+
+ Release 3.1.2
+
+2000-04-22 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.28) (+56 -20)
+
+ Adaptive algorithms. These are the normal random and hybrid Floyd-Steinberg
+ algorithms except in very pale regions, where ordered dithering is used to
+ improve smoothness.
+
+2000-04-22 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.33) (+6 -6)
+ escp2-weavetest.c (1.7) (+3 -3)
+ pcl-unprint.c (1.9) (+21 -10)
+ print-escp2.c (1.128) (+7 -4)
+ printdefy.y (1.4) (+3 -3)
+
+ Code cleanup
+
+2000-04-22 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.27) (+9 -2)
+
+ Break up ordered dither pattern a bit.
+
+ Fix Ghostscript driver slightly
+
+2000-04-22 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.26) (+60 -33)
+
+ Try to vary the randomness -- more random at paler colors.
+
+2000-04-20 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.40) (+7 -6)
+ print-escp2.c (1.127) (+7 -6)
+ print-pcl.c (1.46) (+7 -6)
+
+ Clean up the solid color and line art modes a bit.
+
+2000-04-20 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.6) (+2 -2)
+ gimp_main_window.c (1.7) (+2 -2)
+ gtk_color_window.c (1.8) (+2 -2)
+ gtk_main_window.c (1.10) (+2 -2)
+ print-canon.c (1.39) (+12 -6)
+ print-dither.c (1.25) (+86 -34)
+ print-escp2.c (1.126) (+62 -16)
+ print-pcl.c (1.45) (+9 -5)
+ print-ps.c (1.23) (+8 -3)
+ print-util.c (1.89) (+48 -53)
+ print.c (1.89) (+33 -9)
+ print.h (1.51) (+7 -6)
+ print_gimp.h (1.9) (+1 -2)
+
+ Reduce initial memory footprint.
+
+ Add random Floyd-Steinberg dither.
+
+2000-04-19 <rlk@sourceforge.net>
+
+ Files: gimp_main_window.c (1.6) (+11 -10)
+
+ Fix (somewhat) handling of orientation; also prevent scaling from
+ exceeding 100% (the Gimp toolkit handles these things correctly; the
+ GTK toolkit doesn't, so there were a few port issues).
+
+2000-04-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.125) (+9 -6)
+
+ Try again for 1440 uweave
+
+2000-04-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.124) (+8 -5)
+
+ One more microweave bug
+
+2000-04-18 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.38) (+7 -4)
+ print-dither.c (1.24) (+24 -18)
+ print-escp2.c (1.123) (+23 -20)
+ print-pcl.c (1.44) (+15 -12)
+ print_gimp.h (1.8) (+2 -2)
+
+ Fix incorrect printing for variable drop sizes
+
+2000-04-17 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.23) (+12 -7)
+
+ Better matrix for ordered dither
+
+2000-04-16 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.22) (+6 -2)
+
+ We really do need to randomize the black transition
+
+2000-04-16 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.32) (+4 -1)
+
+ Create change log as part of release
+
+2000-04-16 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.5) (+5 -12)
+ gimp_main_window.c (1.5) (+2 -1)
+ gtk_color_window.c (1.7) (+9 -7)
+ gtk_main_window.c (1.9) (+2 -1)
+ print-canon.c (1.37) (+7 -4)
+ print-dither.c (1.21) (+95 -81)
+ print-escp2.c (1.122) (+20 -9)
+ print-pcl.c (1.43) (+7 -4)
+ print-util.c (1.88) (+13 -2)
+ print.c (1.88) (+97 -225)
+ print.h (1.50) (+18 -14)
+ printdefy.y (1.3) (+3 -2)
+
+ Choice of dithering algorithms
+
+2000-04-16 <mitsch@sourceforge.net>
+
+ Files: gimp_color_window.c (1.4) (+107 -3)
+
+ Added the dither algo option menu (mostly cut & paste from
+ Steve's changes).
+
+2000-04-16 <smiller@sourceforge.net>
+
+ Files: gtk_color_window.c (1.6) (+120 -2)
+ print.c (1.87) (+6 -2)
+
+
+ Added dither option menu to gtk_color_window.c and dither variables
+ to print.c.
+
+2000-04-16 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.36) (+19 -30)
+ print-dither.c (1.20) (+584 -1114)
+ print-escp2.c (1.121) (+249 -48)
+ print-pcl.c (1.42) (+39 -10)
+ print.h (1.49) (+60 -22)
+
+ New dithering code
+
+2000-04-16 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.19.2.6) (+13 -18)
+
+ Final
+
+2000-04-16 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.19.2.5) (+113 -56)
+ print.h (1.48.4.2) (+5 -2)
+
+ More improvements
+
+2000-04-15 <mitsch@sourceforge.net>
+
+ Files: gimp_color_window.c (1.3) (+1 -4)
+ gimp_main_window.c (1.4) (+1 -3)
+ gtk_color_window.c (1.5) (+1 -2)
+ gtk_main_window.c (1.8) (+1 -2)
+ print.c (1.86) (+23 -28)
+ print_gimp.h (1.7) (+7 -6)
+
+ Moved all ui related #include's to print_gimp.h
+
+2000-04-15 <mitsch@sourceforge.net>
+
+ Files: Makefile.am (1.31) (+14 -12)
+ gimp_color_window.c (1.2) (+10 -12)
+ gimp_main_window.c (1.3) (+3 -5)
+ gtk_color_window.c (1.4) (+10 -16)
+ gtk_main_window.c (1.7) (+2 -8)
+ print-intl.h (1.1) ( )
+ print.c (1.85) (+221 -258)
+
+ * Makefile.am
+ * print-intl.h: new file containing preliminary i18n stuff. More to come...
+
+ * gtk_color_window.c
+ * gtk_main_window.c: removed the #ifdefs because these files are now
+ to be compiled with gimp 1.0 _and_ gimp 1.1
+
+ * gimp_color_window.c
+ * gimp_main_window.c
+ * print.c: removed the i18n macros from all files.
+
+ For Gimp 1.1.x there are now 2 menu entries for both versions of the
+ ui. This makes the executable larger, but hm, this is development :-)
+
+ Also had to move the GtkAdjustment definitions to print.c and made
+ them extern in the ui files.
+
+2000-04-14 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.19.2.4) (+95 -11)
+
+ Other dithering options
+
+2000-04-13 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.8) (+323 -209)
+
+ Rewrote the "parser".
+ Only try to decode Configure Raster Data if format is 2.
+ Added descriptions of some extra escape sequences.
+
+2000-04-13 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.41) (+673 -320)
+
+ Added DJ340, DJ400, DJ2000, DJ2500.
+ Added Quick-dry photo & transparency media.
+ Added Media Source selection for Deskjets where supported.
+ 600x600 mono mode is supported in DJ600/800/1100/2000.
+ Some printers don't support "custom" media sizes.
+ Added 1220C to 1120C case (A3 paper size).
+ Removed A6 paper size, it is not supported directly.
+
+ Tidy-up:
+ Removed all papersizes not mentioned in print-utils.c.
+ Fixed coding mistakes in "for" statements.
+ Removed double-strdup in pcl_parameters (memory leak).
+ Added more warning messages.
+
+2000-04-13 <davehill@sourceforge.net>
+
+ Files: gimp_main_window.c (1.2) (+17 -3)
+ gtk_color_window.c (1.3) (+14 -10)
+ gtk_main_window.c (1.6) (+24 -6)
+ print.c (1.84) (+2 -6)
+ print_gimp.h (1.6) (+5 -1)
+
+ Moved define of GIMP_1_0 from print.c to print_gimp.h.
+ Fixed problems where PPD box and browse button appeared when not
+ wanted.
+ Fixed problem with options being carried from one printer to
+ another.
+
+2000-04-13 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.19.2.3) (+17 -10)
+ print-escp2.c (1.120.2.3) (+8 -5)
+
+ Much improved
+
+2000-04-12 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.19.2.2) (+10 -7)
+ print-escp2.c (1.120.2.2) (+197 -10)
+
+ some improvement
+
+2000-04-12 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.119.2.3) (+7 -4)
+
+ Constant hacking
+
+2000-04-11 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.35.4.1) (+16 -30)
+ print-dither.c (1.19.2.1) (+429 -1108)
+ print-escp2.c (1.120.2.1) (+49 -41)
+ print-pcl.c (1.40.4.1) (+24 -10)
+ print.h (1.48.4.1) (+57 -22)
+
+ Yet another dither hack
+
+2000-04-06 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.19) (+7 -4)
+
+ Fix overlap problem
+
+2000-04-04 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.6) (+32 -2)
+
+ print friendly banner
+
+2000-04-04 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.5) (+2 -2)
+ print-escp2.c (1.120) (+44 -25)
+
+ 640-related stuff
+
+2000-03-31 <rlk@sourceforge.net>
+
+ Files: gimp_color_window.c (1.1) ( )
+ gimp_main_window.c (1.1) ( )
+
+ from Mitsch
+
+2000-03-30 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.7) (+3 -0)
+ Makefile.am (1.30) (+11 -9)
+ gtk_color_window.c (1.2) (+27 -27)
+ gtk_main_window.c (1.5) (+69 -69)
+ print.c (1.83) (+12 -6)
+
+ Changes from Mitch
+
+2000-03-29 <rlk@sourceforge.net>
+
+ Files: dither_matrix.c (1.1.2.2) (+0 -0)
+
+ Again: fuck patents!
+
+2000-03-29 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.18.2.2) (+5 -28)
+ print-escp2.c (1.119.2.2) (+7 -4)
+
+ Fuck patents
+
+2000-03-29 <rlk@sourceforge.net>
+
+ Files: dither_matrix.c (1.1) ( )
+ dither_matrix.c (1.1.2.1) (+2573 -0)
+
+ file dither_matrix.c was initially added on branch ordered-dither-branch.
+
+2000-03-29 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.18.2.1) (+374 -5)
+ print-escp2.c (1.119.2.1) (+201 -14)
+
+ Put this in for safety and for people to play with it
+
+2000-03-27 <smiller@sourceforge.net>
+
+ Files: Makefile.am (1.29) (+1 -0)
+ gtk_main_window.c (1.4) (+551 -498)
+ print.c (1.82) (+203 -2002)
+ print_gimp.h (1.5) (+10 -2)
+
+
+ Moved all gui code from print.c to gtk_main_window.c and prefixed all
+ callbacks with 'gtk_'. Added gtk_main_window.c to Makefile.am. Moved
+ a few gui constants from print.c to print_gimp.h. Shortened main gui
+ table to 14 rows.
+
+2000-03-27 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.119) (+139 -141)
+
+ Try again for microweave...
+
+2000-03-27 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.118) (+100 -66)
+
+ Reactivate 1440x720 microweave
+
+2000-03-27 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.28) (+0 -1)
+ gtk_main_window.c (1.3) (+1362 -181)
+ print.c (1.81) (+431 -216)
+ print_gimp.h (1.4) (+1 -9)
+
+ back out changes that do not work
+
+2000-03-26 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.27) (+1 -0)
+ gtk_main_window.c (1.2) (+182 -1363)
+ print.c (1.80) (+218 -433)
+ print_gimp.h (1.3) (+10 -2)
+
+ From Steve Miller <smiller@rni.net>
+
+ I've been unable to connect to sourceforge all afternoon. I'm trying to
+ commit a new print.c, gtk_main_window.c, Makefile.am, and print_gimp.h.
+ I will be unable to try this again until tomorrow, but if you have the
+ opportunity, can you go ahead and do this? I've attached a zipped
+ tarball of the 4 files. I've started the process of transferring gui
+ code from print.c to gtk_main_window.c, and tightened up the table
+ slightly. There are some temporary externs in print.c until I can get
+ everything moved over (may take several temp steps like this one).
+
+2000-03-26 <rlk@sourceforge.net>
+
+ Files: README (1.14) (+4 -0)
+
+ note about ldconfig
+
+2000-03-24 <rlk@sourceforge.net>
+
+ Files: README (1.13) (+6 -0)
+
+ People who install the Gimp from rpm's also need to install gimp-devel.
+
+2000-03-23 <smiller@sourceforge.net>
+
+ Files: Makefile.am (1.26) (+8 -7)
+ print.c (1.79) (+105 -761)
+ print.h (1.48) (+7 -2)
+ print_gimp.h (1.2) (+39 -3)
+
+
+ Added gtk_color_window.c to Makefile.am. Moved color adjust sliders
+ to gtk_color_window, made this a popup dialog and added button
+ to main window. Added ifdefs to headers to prevent multiple
+ inclusions.
+
+2000-03-22 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.25) (+2 -1)
+
+ Fix make dist
+
+2000-03-22 <rlk@sourceforge.net>
+
+ Files: print.c (1.78) (+3 -3)
+
+ release
+
+2000-03-22 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.18) (+7 -4)
+
+ Some more minor dithering fixup
+
+2000-03-21 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.7) (+64 -26)
+
+ Use unsigned when calculating resolutions. Updated some commands.
+
+2000-03-21 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.40) (+42 -4)
+
+ Added Deskjet 9xx series.
+
+2000-03-21 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.4) (+5 -2)
+
+ cleanup
+
+2000-03-21 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.17) (+7 -4)
+
+ dumb typo
+
+2000-03-20 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.6) (+13 -3)
+ print-pcl.c (1.39) (+19 -8)
+
+ Added "Bond" and "Photo" paper types to pcl-unprint and print-pcl.
+ Corrected Depletion output for old Deskjets in print-pcl.
+
+2000-03-20 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.24) (+2 -0)
+ README (1.12) (+1 -1)
+ print-escp2.c (1.117) (+6 -3)
+
+ Try to maintain dependency order of lex on yacc stuff
+
+2000-03-17 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.16) (+40 -47)
+
+ Weaken the horizontal lines
+
+2000-03-17 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.23) (+28 -14)
+ print.c (1.77) (+2662 -175)
+ print.h (1.47) (+27 -19)
+
+ Back out non-functioning changes
+
+2000-03-17 <smiller@sourceforge.net>
+
+ Files: print.h (1.46) (+5 -4)
+
+ *** empty log message ***
+
+2000-03-17 <smiller@sourceforge.net>
+
+ Files: print.h (1.45) (+15 -9)
+
+ *** empty log message ***
+
+2000-03-17 <smiller@sourceforge.net>
+
+ Files: gtk_color_window.c (1.1) ( )
+ gtk_main_window.c (1.1) ( )
+ print.c (1.76) (+202 -2689)
+ print.h (1.44) (+28 -43)
+ print_gimp.h (1.1) ( )
+
+ *** empty log message ***
+
+2000-03-17 <smiller@sourceforge.net>
+
+ Files: Makefile.am (1.22) (+14 -28)
+
+ *** empty log message ***
+
+2000-03-17 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.15) (+232 -346)
+
+ Clean things up a bit to prep for possible dither modifications
+
+2000-03-16 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.14) (+74 -48)
+
+ Scale down randomness as ink level increases
+
+2000-03-14 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.3) (+8 -7)
+ print-escp2.c (1.116) (+57 -28)
+
+ Added 1440x1440 mode
+
+2000-03-13 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.35) (+44 -31)
+ print-dither.c (1.13) (+217 -319)
+ print-escp2.c (1.115) (+23 -7)
+ print-pcl.c (1.38) (+19 -5)
+ print-util.c (1.87) (+8 -5)
+ print.c (1.75) (+32 -12)
+ print.h (1.43) (+5 -2)
+
+ Add monochrome mode
+
+2000-03-11 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.12) (+77 -44)
+
+ Finish the dither job, and fix up the Ghostscript driver
+
+2000-03-11 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.34) (+20 -2)
+ print-dither.c (1.11) (+69 -32)
+ print-escp2.c (1.114) (+45 -17)
+ print-pcl.c (1.37) (+25 -4)
+ print.c (1.74) (+124 -12)
+ print.h (1.42) (+8 -2)
+
+ Significant dither changes; addition of line art/solid color/continuous tone modes
+
+2000-03-10 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.6) (+1 -0)
+
+ Performance optimizations, documentation
+
+2000-03-09 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.5) (+1 -0)
+ Makefile.am (1.21) (+1 -1)
+ print-dither.c (1.10) (+185 -328)
+
+ Performance optimizations, documentation
+
+2000-03-07 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.33) (+135 -132)
+ print-dither.c (1.9) (+39 -31)
+ print-escp2.c (1.113) (+2607 -2602)
+ print-pcl.c (1.36) (+216 -211)
+ print-ps.c (1.22) (+172 -168)
+ print-util.c (1.86) (+765 -760)
+
+ Move CVS history logs to the end of the file
+
+2000-03-07 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.112) (+106 -115)
+
+ A bit more stuff
+
+2000-03-06 <rlk@sourceforge.net>
+
+ Files: escp2-weavetest.c (1.2) (+6 -6)
+ print-escp2.c (1.111) (+114 -138)
+
+ More cleanup stuff
+
+2000-03-06 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.20) (+3 -1)
+ print-canon.c (1.32) (+9 -3)
+ print-escp2.c (1.110) (+9 -4)
+ print-pcl.c (1.35) (+10 -3)
+ print-ps.c (1.21) (+12 -3)
+ print-util.c (1.85) (+34 -32)
+ print.c (1.73) (+4 -5)
+ print.h (1.41) (+11 -10)
+ printdef.h (1.3) (+1 -39)
+ printdefl.l (1.3) (+2 -5)
+ printdefy.y (1.2) (+89 -59)
+
+ more rearrangement
+
+2000-03-05 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.19) (+3 -0)
+ printdef.h (1.2) (+1 -1)
+ printdefl.l (1.2) (+34 -34)
+
+ some cleanup
+
+2000-03-05 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.18) (+18 -7)
+ print-escp2.c (1.109) (+156 -135)
+ print-util.c (1.84) (+10 -116)
+ print.c (1.72) (+5 -5)
+ print.h (1.40) (+26 -12)
+ printdef.l (1.2) (+1 -1)
+ printdef.y (1.2) (+1 -1)
+ printdefl.l (1.1) ( )
+ printdefy.y (1.1) ( )
+
+ Create list of printers externally
+
+2000-03-05 <rlk@sourceforge.net>
+
+ Files: print.c (1.71) (+3 -3)
+
+ Release stuff
+
+2000-03-05 <rlk@sourceforge.net>
+
+ Files: printdef.h (1.1) ( )
+
+ Start of new printer identification
+
+2000-03-05 <rlk@sourceforge.net>
+
+ Files: printdef.l (1.1) ( )
+ printdef.y (1.1) ( )
+
+ Start of new printer identification
+
+2000-03-03 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.108) (+8 -3)
+
+ correct parameters for ESC(D
+
+2000-03-03 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.107) (+6 -3)
+ print-util.c (1.83) (+7 -4)
+
+ Silly bug in rgb_to_gray
+
+2000-03-02 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.82) (+147 -308)
+
+ Clean up conversion functions...again...and fix rgb to gray to do density
+
+2000-03-02 <khk@sourceforge.net>
+
+ Files: print-escp2.c (1.106) (+10 -7)
+
+ Cleaned up some compiler warnings in print-escp2.c
+
+2000-03-02 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.8) (+85 -60)
+
+ Performance, by replacing long long with int
+
+2000-03-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.105) (+15 -48)
+
+ Clean up options a bit
+
+2000-03-01 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.81) (+6 -3)
+
+ fix alpha channel in rgb_to_gray...again
+
+2000-03-01 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.80) (+8 -3)
+
+ fix alpha channel in rgb_to_gray
+
+2000-03-01 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.104) (+18 -16)
+
+ Some ditsy little things
+
+2000-03-01 <rlk@sourceforge.net>
+
+ Files: print.c (1.70) (+8 -7)
+
+ Percent vs. ppi details
+
+2000-03-01 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.103) (+11 -6)
+
+ Handle variable dot size correctly
+
+2000-02-29 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.102) (+63 -31)
+ print-util.c (1.79) (+7 -2)
+
+ 1) Should be able to speed up black printing quite a bit for some models.
+
+ 2) Add support for 1160 (tentative!)
+
+2000-02-29 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.101) (+103 -104)
+
+ Rationalize the printer options a bit
+
+2000-02-29 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.100) (+22 -14)
+
+ Improve printing to the bottom, and do memory allocation the way intended
+
+2000-02-28 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.5) (+122 -63)
+
+ Fixed decoding of "configure data". Added "Custom" to paper sizes.
+ Started changes for multiple levels.
+
+2000-02-28 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.34) (+46 -77)
+
+ Fixed the "configure data" command again!
+
+2000-02-28 <rlk@sourceforge.net>
+
+ Files: print.c (1.69) (+1771 -1141)
+
+ Back out the mainline stuff
+
+2000-02-28 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.7) (+112 -46)
+ print-escp2.c (1.99) (+380 -370)
+ print.h (1.39) (+3 -3)
+
+ Try to improve high resolution quality
+
+2000-02-27 <rlk@sourceforge.net>
+
+ Files: print.c (1.68) (+1180 -1804)
+
+ Experimental print.c from 3.0
+
+2000-02-27 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.37) (+116 -28)
+
+ The major change in this release is the way image cropping is done. Andy
+ originally put some code in write_out which would cut the left and right
+ borders, if there was white space being printed on the left or right side.
+ That was fine, but it neglected the top and bottom. This version will
+ crop all four edges. I also moved the cropping further upstream, into
+ update_page, this way we won't need to allocate RAM we won't need. I
+ also changed the algorithm so that it should run faster. The old one was
+ probably fast enough, but, I'm a bit neurotic when it comes to code I know
+ can be faster...
+
+ This release also fixes a bug in the environment variable handling which
+ caused it to crash if unset, as well as a few other minor things not worth
+ mentioning.
+
+2000-02-27 <khk@sourceforge.net>
+
+ Files: print-ps.c (1.20) (+10 -2)
+
+ Fixed problem with missing linefeed character after options from PPD
+ file. Depending on the format of the option the PostScript file was
+ not conform with the Adobe DSC specification.
+
+2000-02-26 <rlk@sourceforge.net>
+
+ Files: print.c (1.67) (+3 -3)
+
+ copyright
+
+2000-02-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.98) (+62 -47)
+
+ 1) Clean up (and maybe fix???) positioning.
+
+ 2) Fix packing in multi-level code.
+
+2000-02-26 <rlk@sourceforge.net>
+
+ Files: print.c (1.66) (+67 -35)
+
+ 1) Add center button.
+
+ 2) Activate right/bottom entries.
+
+ 3) Use only two digits of precision when printing position, since we're only
+ accurate to 1 point.
+
+ 4) Minor cleanup
+
+2000-02-26 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.31) (+12 -9)
+ print-dither.c (1.6) (+96 -46)
+ print-escp2.c (1.97) (+15 -8)
+ print-pcl.c (1.33) (+12 -8)
+ print-util.c (1.78) (+9 -8)
+ print.h (1.38) (+8 -7)
+
+ Rename dither_{black,cmyk}4 to dither_{black,cmyk}_n, and add argument to specify how levels are to be encoded
+
+2000-02-25 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.32) (+386 -49)
+
+ Added Paper size database to handle more of the new paper sizes
+ added a while ago, anything else is handled as "custom".
+
+2000-02-25 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.96) (+67 -16)
+ print-util.c (1.77) (+11 -2)
+
+ 1) Stylus Color 460 (really a variant 440, at least until I learn otherwise).
+
+ 2) Major optimization for gs driver in particular: elide rows that are blank.
+
+ 3) make variable dot size the default for those printers.
+
+2000-02-24 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.36) (+35 -10)
+
+ * Changed write_output to cut left and right empty borders
+
+2000-02-24 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.35) (+25 -9)
+
+ * Extended parse_canon to respect bpp and vertical color component offsets
+ (previously called delayed lines :-)
+ * all resolutions of the bjc6000 driver get unprinted now but there's still
+ an aspect ratio of 2 for 720x360 dpi and 1440x720 dpi
+
+2000-02-24 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.34) (+28 -21)
+
+ Small cleanups
+
+2000-02-24 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.33) (+13 -8)
+
+ Merge Andy's fixes with mine.
+
+ Set the default value of extraskip based on printer type, 2 for Epsons, 1
+ for Canons.
+
+ Add support for light yellow ink.
+
+ Add Andy to the copyright.
+
+2000-02-24 <rlk@sourceforge.net>
+
+ Files: README (1.11) (+1 -1)
+ print.c (1.65) (+3 -3)
+
+ Bump version number for next release, whenever that may be
+
+2000-02-24 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.39.2.4) (+19 -3)
+ print-pcl.c (1.14.2.2) (+8 -3)
+ print-util.c (1.49.2.3) (+0 -427)
+ print.c (1.38.2.7) (+4 -4)
+
+ 3.0.9 fixes
+
+2000-02-23 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.4) (+270 -60)
+
+ Added more commands to the commans set.
+ Now handles repeated commands that share the same prefix.
+
+2000-02-23 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.31) (+284 -125)
+
+ Replaced all "model ==" code with a capabilities database.
+ According to the ghostscript driver (and the HP windows driver), the
+ "new" end raster graphics command is *rC, not *rbC.
+ Use correct commands to set high quality output if dpi >= 300
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.30) (+9 -6)
+
+ small fix for delayed lines
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: Makefile.am (1.17) (+1 -2)
+ canon-unprint.c (1.3) (+1 -1)
+
+ Removed in favour of unprint.c
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.32) (+40 -20)
+
+ Fixed severe bug in rle_decode() and parse_canon()
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.31) (+3 -2)
+
+ small change to parse_canon()
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.29) (+15 -9)
+ unprint.c (1.30) (+2 -2)
+
+ Fixed a bug in canon_write
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: canon-unprint.c (1.2) (+131 -89)
+ unprint.c (1.29) (+2 -1)
+
+ Merged parse_canon() from unprint into canon-unprint
+
+2000-02-23 <gandy@sourceforge.net>
+
+ Files: unprint.c (1.28) (+258 -2)
+
+ * Added parse_canon()
+ * Added rle_decode()
+ * "UNPRINT=canon ./unprint" will use parse_canon() instead of parse_escp2()
+ * output for canon printfiles is extremely poor
+
+2000-02-23 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.95) (+6 -3)
+ print.c (1.64) (+5 -5)
+
+ Some minor fixes
+
+2000-02-23 <rlk@sourceforge.net>
+
+ Files: print.c (1.38.2.6) (+298 -90)
+
+ 1) New save settings/print/print and save settings buttons.
+
+ 2) Save "file" printer correctly.
+
+ 3) Location boxes/size and place correctly
+
+2000-02-22 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.39.2.3) (+12 -7)
+ print-util.c (1.49.2.2) (+130 -62)
+ print.c (1.38.2.5) (+29 -7)
+
+ 3.0.7
+
+2000-02-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.28) (+7 -3)
+
+ Fixed bug introduced with last commit (thou shall never prettify your source...)
+
+2000-02-22 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.27) (+23 -15)
+
+ Some minor cosmethics
+
+2000-02-22 <rlk@sourceforge.net>
+
+ Files: print.c (1.63) (+4 -5)
+
+ Save state when printing file
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.94) (+9 -4)
+
+ Try again
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.93) (+34 -22)
+
+ Try for the 640
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.5) (+67 -49)
+ print-escp2.c (1.92) (+12 -4)
+ print-util.c (1.76) (+64 -6)
+ print.c (1.62) (+3 -3)
+
+ Important dithering bug fixes:
+
+ 1) Avoid runaway black buildup.
+
+ 2) Some conversion functions weren't doing density
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.3) (+2 -0)
+
+ update
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.16) (+1 -1)
+ pcl-unprint.c (1.3) (+8 -3)
+ print-canon.c (1.26) (+12 -5)
+ print-escp2.c (1.91) (+13 -4)
+ print-util.c (1.75) (+281 -271)
+
+ Minor release prep
+
+2000-02-21 <gandy@sourceforge.net>
+
+ Files: canon-unprint.c (1.1) ( )
+
+ * cloned escp2-unprint.c and replaced parse_escp2() with parse_canon()
+ * only checks for correct syntax but doesn't really read any contents yet
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print.c (1.61) (+8 -2)
+
+ Do not use scale to image for gimp 1.0
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print.c (1.60) (+28 -7)
+
+ Add scale-to-image clicker
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.90) (+11 -5)
+
+ Weird init sequence for newer printers
+
+2000-02-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.89) (+6 -3)
+
+ change softweave sequence for older printers
+
+2000-02-20 <davehill@sourceforge.net>
+
+ Files: pcl-unprint.c (1.2) (+640 -108)
+
+ Now does TIFF compressed files and 2 level colour in CMY
+ or CMYK
+
+2000-02-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.88) (+37 -32)
+
+ Try one more time to fix 740
+
+2000-02-19 <davehill@sourceforge.net>
+
+ Files: print.c (1.59) (+31 -12)
+
+ Another attempt to fix the File printer.
+
+2000-02-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.87) (+48 -57)
+
+ A bit more cleanup to non-softweave
+
+2000-02-19 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.30) (+17 -7)
+
+ Fixed OUTPUT_COLOR vs OUTPUT_GRAY.
+ Fixed number of planes output for DJ600 in 600dpi mode.
+
+2000-02-19 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.27) (+4 -1)
+
+ Add a new veriable to the printer state called "extraskip". This is a
+ multiplicative factor applied to the existing skip factor. It defaults to
+ 2. Currently there is no way to change this.
+
+2000-02-18 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.26) (+9 -4)
+
+ Don't print beyond the bottom margin.
+
+2000-02-18 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.4) (+4 -1)
+
+ minor stuff
+
+2000-02-18 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.15) (+2 -1)
+
+ minor stuff
+
+2000-02-18 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.4) (+18 -13)
+
+ A few more dithering bugs
+
+2000-02-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.86) (+19 -15)
+
+ Try to fix microweave and 360 dpi
+
+2000-02-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.85) (+5 -3)
+
+ Remove debug printf
+
+2000-02-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.84) (+7 -3)
+
+ Update line spacing for ESC900
+
+2000-02-17 <sharkey@sourceforge.net>
+
+ Files: Makefile.am (1.14) (+2 -2)
+
+ Change the name of unprint back to unprint.
+
+2000-02-17 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.25) (+20 -5)
+
+ Add a "-n" flag which allows adjusting the nozzle separation on the command
+ line. "-n8" or "-n 8" will set the nozzle separation to 8/720".
+
+2000-02-17 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.24) (+6 -2)
+
+ Fix a bug in handling uncompressed data bit depth, and add a few more
+ debugging statements.
+
+2000-02-17 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.23) (+110 -96)
+
+ Isolate everything that's escp2-specific into a single function called
+ parse-escp2. This function takes a file descriptor as an argument,
+ and parses the escp2 code in the file, filling the generic page variable
+ with bitmapped data. This should make it easier to unify unprint with
+ canunprint (recently renamed canon-unprint) and pcl-unprint.
+
+ Also change the handling of the color depth a bit to make this a little
+ easier. "bpp" has been added to pstate.
+
+ This new layout of the code is much cleaner than the previous. There
+ was far too much crap in main.
+
+2000-02-17 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.22) (+15 -2)
+
+ Add more verbose GPL description and include string.h.
+
+2000-02-17 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.21) (+0 -0)
+
+ Resurrect unprint.c as it was in revision 1.19.
+
+2000-02-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.83) (+19 -8)
+
+ Yet another try
+
+2000-02-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.82) (+17 -13)
+
+ Another try at the variable dot printers
+
+2000-02-17 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.74) (+11 -4)
+
+ Alpha channel problems
+
+2000-02-17 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.13) (+5 -5)
+ escp2-unprint.c (1.1) ( )
+ escp2-weavetest.c (1.1) ( )
+ pcl-unprint.c (1.1) ( )
+ pclunprint.c (1.2) (+8 -4)
+ unprint.c (1.20) (+1 -1)
+ weavetest.c (1.14) (+1 -1)
+
+ Rename various programs
+
+2000-02-16 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.19) (+23 -15)
+
+ Fix the damn vertical artifacts! This was another case of sloppy
+ arithmetic. The last pixel is the first pixel + (n-1) pixels, not
+ n pixels, where n is the number of pixels in the line.
+
+ Also fix a bug in the ESC r color selection (missing break).
+
+ Also fix a bug in the short form of the set unit command. (horizontal
+ relative units were not being set.)
+
+ Finally, add a byte counter so that errors can be referenced by their
+ position in the file. This is useful for correlating errors with
+ output from parse-escp2.
+
+ This is worth a version 0.9 revision number.
+
+2000-02-16 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.81) (+10 -3)
+
+ narrow-carriage printers can print 14" long, not just 11"
+
+2000-02-16 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.18) (+40 -18)
+
+ Change the way command line arguments are parsed to make it easier to add
+ option flags.
+
+ Add "-u" option flag. -u does two things. It sets the nozzle separation to
+ 1, and it treats all vertical head motion commands as if the argument was
+ to move down pstate.nozzles ticks. For Microweave code, this most likely
+ will have no effect, but for softweave, this essentially "unweaves" the
+ image so that data from each pass appears separately. This is not so
+ useful for image viewing, but can be useful for debugging softweave stuff.
+
+2000-02-16 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.17) (+10 -10)
+
+ Oh, now this looks *MUCH* better. Fixed a bug regarding bit endianness
+ in the pnm writing code.
+
+ Never attribute a bug to Epson without first checking your own code...
+
+2000-02-16 <rlk@sourceforge.net>
+
+ Files: print.c (1.58) (+4 -3)
+
+ version number bump to prep for release
+
+2000-02-16 <rlk@sourceforge.net>
+
+ Files: README (1.10) (+9 -1)
+
+ comments leading up to release...
+
+2000-02-16 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.25) (+32 -7)
+ print-dither.c (1.3) (+10 -6)
+ print-escp2.c (1.80) (+6 -7)
+ print-pcl.c (1.29) (+6 -7)
+ print-ps.c (1.19) (+32 -7)
+ print-util.c (1.73) (+9 -6)
+
+ 1) Use correct convert functions (canon, escp2, pcl, ps).
+
+ 2) Fix gray_to_rgb increment (print-util)
+
+ 3) Fix dither update (print-dither)
+
+2000-02-16 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.12) (+2 -3)
+ print-escp2.c (1.79) (+27 -8)
+ weavetest.c (1.13) (+6 -278)
+
+ Put pclunprint in build, and use actual weave code in weavetest
+
+2000-02-15 <davehill@sourceforge.net>
+
+ Files: print.c (1.57) (+5 -4)
+
+ The File: printer is now initialized, saved and loaded!
+
+2000-02-15 <davehill@sourceforge.net>
+
+ Files: pclunprint.c (1.1) ( )
+
+ Initial version. Only works for mono 2 level uncompressed output
+ (i.e. Deskjet 500)
+
+2000-02-15 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.28) (+33 -2)
+
+ Added fix when (left < 0)
+
+2000-02-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.78) (+34 -7)
+
+ Back out clearly nonfunctional change for 740 family
+
+2000-02-15 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.24) (+6 -3)
+ print-escp2.c (1.77) (+80 -38)
+ print-pcl.c (1.27) (+6 -3)
+ print-ps.c (1.18) (+6 -3)
+ print.c (1.56) (+55 -35)
+
+
+ 1) It wasn't possible to print to the edge of the page (as defined by
+ the printer).
+
+ 2) The page top/bottom/left/right (particularly bottom and right) in
+ the size boxes wasn't displayed accurately (it *had* been coded in
+ 1/10", because that's the units used to print out the pager --
+ really sillyl, that -- now it's all in points, which is more
+ reasonable if still not all that precise).
+
+ 3) The behavior of landscape mode was weird, to say the least.
+
+ 4) Calculating the size based on scaling was also weird -- in portrait
+ mode it just looked at the height of the page vs. the height of the
+ image, and in landscape it just looked at width of the page and
+ height of the image. Now it looks at both axes and scales so that
+ the larger of the two ratios (widths and heights) is set equal to
+ the scale factor. That seems more intuitive to me, at any rate.
+ It avoids flipping between landscape and portrait mode as you
+ rescale the image in auto mode (which seems just plain bizarre to
+ me).
+
+ 5) I changed the escp2 stuff so that the distance from the paper edge
+ will be identical in softweave and in microweave mode. Henryk,
+ that might not quite be what you intended (it's the opposite of
+ what you actually did), but at least microweave and softweave
+ should generate stuff that looks consistent.
+
+2000-02-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.76) (+8 -4)
+
+ Use older-style print command for single bit depth printing
+
+2000-02-14 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.16) (+11 -1)
+
+ Add some code to handle "remote mode" a little more elegantly. Just a little.
+
+2000-02-14 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.15) (+22 -13)
+
+ Put in some handling of multiple dot sizes to make the output look nicer.
+
+ Teach unprint about form feeds.
+
+ Get rid of the last of the compiler warnings.
+
+2000-02-14 <rlk@sourceforge.net>
+
+ Files: README (1.9) (+26 -0)
+
+ warn about gimp.m4
+
+2000-02-14 <rlk@sourceforge.net>
+
+ Files: print.c (1.55) (+7 -2)
+
+ Try to support gimp 1.0
+
+2000-02-14 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.11) (+5 -1)
+
+ make dist
+
+2000-02-14 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.10) (+18 -2)
+ NEWS (1.2) (+86 -1)
+ README (1.8) (+7 -79)
+
+ Clean up configure stuff
+
+2000-02-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.75) (+58 -41)
+
+ More modes in run-weavetest, and attempt to handle column spacing in escp2
+
+2000-02-13 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.14) (+10 -6)
+
+ Fix the bugs that prevented softweave from working properly.
+
+ This is currently hard coded for the 740/750/1200 nozzle separation of
+ 6/720". If you want to run it on output for the printers with a nozzle
+ sep of 8/720, you need to change a line.
+
+ Ideally we need a command line switch to select the model, but, since it's
+ after 1AM that's not going to happen before I go home tonight. At this point
+ we need to decide how much code we want to share between print and
+ unprint. Since unprint is designed to be a check of print, one argument
+ is to keep it completely independent, but, that's more work....
+
+2000-02-13 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.23) (+6 -3)
+
+ Fixed maximum paper size for BJC-6000
+
+2000-02-13 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.22) (+17 -5)
+ print-escp2.c (1.74) (+16 -4)
+ print-pcl.c (1.26) (+18 -4)
+ print-ps.c (1.17) (+16 -4)
+ print-util.c (1.72) (+97 -17)
+ print.h (1.37) (+5 -2)
+
+ Bit of an oops here about printer models; also start on print-gray-using-color mode for better quality
+
+2000-02-13 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.9) (+9 -1)
+ print-escp2.c (1.73) (+13 -6)
+ print-util.c (1.71) (+11 -2)
+
+ Build a Ghostscript driver! No idea if it works yet...
+
+2000-02-12 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.72) (+20 -12)
+
+ Change spacing for newer printers
+
+2000-02-12 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.71) (+8 -5)
+
+ Use Epson sequences more exactly
+
+2000-02-12 <rlk@sourceforge.net>
+
+ Files: unprint.c (1.13) (+5 -3)
+
+ Do not barf on softweave
+
+2000-02-12 <rlk@sourceforge.net>
+
+ Files: print.c (1.54) (+15 -4)
+
+ More accurate printing of measurements
+
+2000-02-12 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.70) (+38 -35)
+
+ One more try
+
+2000-02-11 <rlk@sourceforge.net>
+
+ Files: README (1.6.2.3) (+1 -1)
+ print-escp2.c (1.39.2.2) (+30 -5)
+ print.c (1.38.2.4) (+3 -3)
+
+ print 3.0.6 fixes
+
+2000-02-11 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.12) (+2 -2)
+
+ Fix line wrapping bug. The calculation of the image width should have been
+ right-left+1, not right-left. This version of unprint solves the:
+
+ +----+
+ |\ |
+ | \ |
+ +----+
+
+ image warping problem.
+
+2000-02-11 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.11) (+18 -13)
+
+ Change unprint behavior in response to ESC @ initialization command. If
+ this is found after raster data has been sent, eject the page and quit.
+
+ What was happening was that a trailing ESC @ occuring at the end of some
+ files was resetting the resolution before writing out the data, which was
+ a bad thing.
+
+ Ejecting the page on this command isn't a perfect simulation if ESC @
+ occurs in the middle of the file, but, I'll deal with that later.
+
+2000-02-11 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.10) (+10 -9)
+
+ Add a few ()'s and stuff to get rid of some compiler warnings. There should
+ be no actual changes in this update other than changes to coding style to
+ appease gcc. gcc still complains about some potentially unitialized
+ variable usage, but, that's just gcc being paranoid.
+
+2000-02-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.69) (+5 -3)
+
+ Remove apparently spurious flush command
+
+2000-02-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.68) (+7 -2)
+ print.c (1.53) (+4 -4)
+
+ Fix Epson left margin
+
+2000-02-10 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.9) (+33 -30)
+
+ It works!!! Well, sorta...
+
+ Fixed two bugs in the ink mixing routine, that mostly works now, but, it's
+ far from optimal. Fixed the use of an unitialized variable in merge_line.
+ Fixed a bug in relative vertical motion command interpretation. = -> +=
+ Changed the behavior on unexpected EOF to print out what was read in so
+ far, rather than just quitting.
+
+ Also removed some excessively verbose debugging statements.
+
+ The resulting images do not look good. There's a line length mismatch problem
+ somewhere which makes the images look like this:
+
+ +------+
+ |\ +
+ | \ +
+ +------+
+
+ The lower left triangle contains the right edge of the original image.
+
+ The image is also cut short by the unexpected EOF problem.
+
+ There's still a lot of work left to do, but, this is quite promising.
+
+2000-02-10 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.8) (+3 -1)
+
+ Add canunprint
+
+2000-02-10 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.7) (+1 -7)
+
+ Remove spurious explicit GTK libraries that bloated the installation
+
+2000-02-10 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.6) (+1 -0)
+ print-ps.c (1.16) (+6 -134)
+ print.c (1.52) (+11 -8)
+ weavetest.c (1.12) (+5 -60)
+
+ Turn on warnings
+
+2000-02-10 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.21) (+10 -4)
+
+ initialization
+
+2000-02-10 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.20) (+7 -4)
+ print-escp2.c (1.67) (+7 -3)
+ print-pcl.c (1.25) (+7 -3)
+
+ Fix landscape vs. portrait problem
+
+2000-02-09 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.8) (+18 -2)
+
+ Add a really simple color blending algorithm which makes no use
+ whatsoever of the NDA ink color measurements.
+
+2000-02-09 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.7) (+46 -17)
+
+ Many many bug fixes. The old version of RLE decompression was pretty
+ severely screwed up. It seems fixed in this version. I also added an
+ error check to make sure that the decompressed length is consistant with
+ what one would expect from an m*n pixel matrix.
+
+ Several other random bug fixes were put in place, some dealing with some
+ misconceptions I had about operator precedence regarding the ? operator.
+ That took a while to spot.
+
+ I've also added some excessively verbose debugging statements. These are
+ temporary.
+
+ Something is still pretty snafu with the motion of the virtual print head.
+ It's going way far to the right. Since the virtual paper is infinitely
+ wide (for small values of infinity) this has some interesting effects.
+
+ This version currently does not segfault on input from gimp-print, however
+ it doesn't produce output either. It terminates with an unexpected end
+ of file. Go figure.
+
+2000-02-09 <gandy@sourceforge.net>
+
+ Files: .cvsignore (1.3) (+1 -0)
+
+ Added canunprint to cvs
+
+2000-02-09 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.19) (+7 -5)
+ print-escp2.c (1.66) (+7 -5)
+ print-pcl.c (1.24) (+7 -5)
+ print-ps.c (1.15) (+11 -5)
+ print-util.c (1.70) (+44 -46)
+ print.c (1.51) (+5 -5)
+ print.h (1.36) (+15 -20)
+
+ Put lut inside vars
+
+2000-02-08 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.5) (+3 -1)
+ weavetest.c (1.11) (+142 -350)
+
+ Weave tester
+
+2000-02-08 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.18) (+40 -37)
+
+ Small fix that makes variable drop sizes work (in B/W)
+
+2000-02-08 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.17) (+25 -9)
+
+ Added call to dither_cmyk4()
+
+2000-02-08 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.16) (+169 -79)
+
+ Got support for variable drop sizes ready for testing
+
+2000-02-08 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.15) (+12 -5)
+
+ Next step in supporting variable dot sizes (still experimental)
+
+2000-02-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.65) (+13 -4)
+
+ Correct dot size for variable bits
+
+2000-02-08 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.14) (+115 -79)
+
+ Beginning support for variable drop sizes (experimental stage)
+
+2000-02-08 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.23) (+14 -6)
+ print-util.c (1.69) (+8 -3)
+
+ Deskjet 600C is CMY, the rest of the 6xxC series are CMYK.
+
+2000-02-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.64) (+8 -2)
+
+ Remove spurious init string
+
+2000-02-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.63) (+6 -3)
+
+ Is the separation really 6 lines for the 740? That's very unusual.
+ Usually it's 8 lines. But we shall see...
+
+2000-02-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.62) (+12 -2)
+
+ Some kind of silly magic init string that it appears these printers want.
+
+2000-02-07 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.13) (+201 -58)
+
+ Major code-cleanups, prettified model capabilities
+
+2000-02-07 <rlk@sourceforge.net>
+
+ Files: .cvsignore (1.2) (+9 -0)
+
+ more stuff to be ignored
+
+2000-02-07 <rlk@sourceforge.net>
+
+ Files: print-dither.c (1.2) (+20 -8)
+ print-escp2.c (1.61) (+13 -6)
+
+ Try to improve variable dot stuff
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.60) (+10 -108)
+ print-pcl.c (1.22) (+5 -105)
+ print-ps.c (1.14) (+7 -79)
+ print.h (1.35) (+2 -3)
+
+ 1) Use old methods only for microweave printing.
+
+ 2) remove MAX_DPI from print.h since it's no longer necessary.
+
+ 3) Remove spurious CVS logs that were just clutter.
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.12) (+43 -20)
+
+ Remove calls to non-POSIX strdup
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.59) (+29 -3)
+
+ Choice of variable vs. single drop size for new printers
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.58) (+20 -11)
+
+ Try to fix softweave mode on new printers
+
+2000-02-06 <davehill@sourceforge.net>
+
+ Files: print-pcl.c (1.21) (+11 -5)
+
+ Fixed max paper sizes.
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.57) (+35 -21)
+
+ Try to fix microweave on newer printers...?
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.4) (+1 -0)
+ print-dither.c (1.1) ( )
+ print-util.c (1.68) (+5 -1985)
+
+ Split out dither stuff from print-util
+
+2000-02-06 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.6) (+138 -14)
+
+ Add some (buggy) support for printing on a line we already printed on
+ (needed for interleaving 1440 DPI).
+
+ More debugging messages.
+
+ Support for ESP 700/EX and older ESC ( / command.
+
+ This version probably introduces more bugs than it removes, but add more
+ functionality. I think it's a step forward. I'll try to clean it up a
+ bit more later.
+
+2000-02-06 <sharkey@sourceforge.net>
+
+ Files: print-escp2.c (1.56) (+15 -6)
+
+ Don't cut corners by padding the 32 bit horizontal shifts with 0's in the
+ upper 16 bits. Do the full shifting and masking. This is important when
+ the relative offset is negative.
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.67) (+307 -32)
+ print.h (1.34) (+17 -2)
+
+ Fill in the setter functions for the dither stuff
+
+2000-02-06 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.11) (+14 -10)
+ print-escp2.c (1.55) (+21 -29)
+ print-pcl.c (1.20) (+23 -16)
+ print-util.c (1.66) (+431 -400)
+ print.c (1.50) (+2 -3)
+ print.h (1.33) (+11 -79)
+
+ More work on the generalized dithering parameters stuff. At this point
+ it really looks like a proper object. Also dynamically allocate the error
+ buffers. This segv'd a lot, which forced me to efence it, which was just
+ as well because I found a few problems as a result...
+
+2000-02-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.54) (+18 -4)
+
+ Do horizontal positioning correctly in microweave
+
+2000-02-05 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.65) (+52 -35)
+
+ Minor reorg
+
+2000-02-05 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.64) (+37 -109)
+ print.c (1.49) (+3 -3)
+ print.h (1.32) (+68 -2)
+
+ some more silly problems
+
+2000-02-05 <rlk@sourceforge.net>
+
+ Files: COPYING (1.2) (+339 -1)
+
+ GPL
+
+2000-02-05 <rlk@sourceforge.net>
+
+ Files: AUTHORS (1.2) (+14 -3)
+
+ minor update
+
+2000-02-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.53) (+15 -10)
+ print-util.c (1.63) (+7 -4)
+
+ 1) print-util.c: decrement rather than increment counter!
+
+ 2) print-escp2.c: don't advance the paper a negative (or, with some printers,
+ a very large positive) amount.
+
+2000-02-05 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.5) (+17 -11)
+
+ Change some bugs regarding handling of top and bottom page margins.
+
+ If the printer head moves below the bottom margin, we're supposed to
+ eject the page and start a new one. That's a little tricky with PPM,
+ especially when writing to stdout. I think the best behavior on a
+ page ejection situation is to just write out the PPM with what has
+ been printed so far and just ignore the rest of the data. In other
+ words, unprint will produce a PPM file describing the first page of
+ output for any given escp2 input.
+
+ The only other option would be to write out several PPMs in one file. I
+ was hoping that "pnmcat" would be able to read multiple files from stdin,
+ but that seems not to be the case.
+
+2000-02-04 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.4) (+93 -7)
+
+ Add recognition of monochrome mode selection command. (Doesn't actually
+ do anything, though.) Also add the undocumented 8 byte page format
+ command (prints warning to stderr if found).
+
+ Add the routine which actually writes out the PPM file. (That's useful.)
+
+ Fix a bug in vertical motion.
+
+ This still needs more bounds checking on subscripts. If you specify the
+ page dimensions and then try to print off the page it can segfault.
+
+ Also, the actual CcMmYK -> RGB function doesn't do anything yet, so the
+ PPM file will be all white, if you get one. You're more likely to get a
+ core file, though.
+
+2000-02-04 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.10) (+63 -46)
+ print-util.c (1.62) (+19 -3)
+
+ Models BJC-1000/2000/3000/6000/6100/7000/7100 ready for testing.
+
+2000-02-04 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.52) (+6 -3)
+
+ 1440 dpi stupidity
+
+2000-02-04 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.51) (+21 -13)
+ print-util.c (1.61) (+11 -2)
+
+ Prelim support for 850/860/870/1200; fix stupid bug in ESC(S
+
+2000-02-03 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.9) (+32 -9)
+
+ Preparations for some more printer models (to be continued...)
+
+2000-02-03 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.8) (+53 -87)
+
+ Dirty left-border-treatment leaving an uncertainty of -4..+4 dots
+
+2000-02-03 <sharkey@sourceforge.net>
+
+ Files: AUTHORS (1.1) ( )
+ COPYING (1.1) ( )
+ Makefile.am (1.3) (+11 -5)
+ NEWS (1.1) ( )
+
+ These files are required documentation files for applications using
+ autoconf for configuration. The current versions of these files
+ are just one step removed from "touch filename". They need to be
+ fleshed out, but, they're enough to stop autoconf from complaining.
+
+2000-02-03 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.7) (+8 -14)
+
+ Honours the new ink-type setting
+
+2000-02-03 <rlk@sourceforge.net>
+
+ Files: print-canon.c (1.6) (+19 -8)
+ print.c (1.48) (+122 -49)
+ print.h (1.31) (+4 -3)
+
+ Ink type
+
+2000-02-03 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.50) (+21 -2)
+
+ Don't get too fancy with the new, undocumented ESC(c command
+
+2000-02-02 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.5) (+19 -31)
+
+ Minor cleanups of code and debugging messages
+
+2000-02-02 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.4) (+80 -16)
+
+ Prepared the driver for one of K/CMY/CMYK/CcMmYK/CcMmYy printing
+
+2000-02-02 <gandy@sourceforge.net>
+
+ Files: print.c (1.47) (+5 -4)
+
+ Fixed the plp-lpc-bug producing printer entries ak "Press RETURN to continue..."
+
+2000-02-02 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.3) (+10 -122)
+
+ Removed remnants from the original escp/2 source not needed for BJL
+
+2000-02-02 <gandy@sourceforge.net>
+
+ Files: print-canon.c (1.2) (+210 -117)
+
+ 1) reworked printer capabilities handling
+ 2) initilization sends media type, paper format and printable area
+ 3) works fine with new dithering stuff
+
+2000-02-02 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.60) (+58 -48)
+
+ Add a few more parameters to the dither_t struct.
+
+2000-02-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.49) (+8 -2)
+ print-pcl.c (1.19) (+9 -2)
+ print-util.c (1.59) (+343 -292)
+ print.h (1.30) (+3 -2)
+
+ Move all the constants into members of a struct. This will eventually permit
+ us to use different dithering constants for each printer, or even vary them
+ on the fly. Currently there's a static dither_t that contains constants,
+ but that's the easy part to fix...
+
+2000-02-01 <nicholas@sourceforge.net>
+
+ Files: .cvsignore (1.1) ( )
+
+ Added a .cvsignore file
+
+2000-02-01 <gandy@sourceforge.net>
+
+ Files: Makefile.am (1.2) (+2 -0)
+ print-canon.c (1.1) ( )
+ print-util.c (1.58) (+10 -3)
+ print.h (1.29) (+12 -2)
+
+ Add print-canon.c: Support for the BJC 6000 and possibly others
+
+2000-01-30 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.3) (+43 -17)
+
+ Improve color handling and color selection commands as well as support for
+ two more printer head motion commands.
+
+2000-01-30 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.2) (+54 -10)
+
+ Fix a few obvious C errors (doh!), reduce some debugging output, add some
+ comments and some more code to handle other commands. This version should
+ compile. Really, I mean it this time.
+
+2000-01-29 <sharkey@sourceforge.net>
+
+ Files: unprint.c (1.1) ( )
+
+ This is as much a test of my ability to commit code to the repository as
+ it is to get the code in there.
+
+ This is version 0.001pre-alpha of "unprint" which will eventually read
+ escp2 data and dump a ppm file. This code should compile, nothing fancy,
+ just "gcc -o unprint unprint.c", but it doesn't do anything useful yet.
+
+2000-01-29 <rlk@sourceforge.net>
+
+ Files: print.c (1.46) (+47 -5)
+
+ Separate save and print stuff
+
+2000-01-29 <rlk@sourceforge.net>
+
+ Files: print.c (1.45) (+8 -13)
+
+ Handle orientation change correctly
+
+2000-01-29 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.48) (+239 -208)
+ print-pcl.c (1.18) (+13 -9)
+ print-util.c (1.57) (+26 -3)
+ print.h (1.28) (+6 -4)
+
+ 1) Remove globals from everything except print.c.
+
+ 2) Remove broken 1440x720 and 2880x720 microweave modes.
+
+2000-01-28 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.47) (+7 -3)
+ print-util.c (1.56) (+144 -2)
+ print.c (1.44) (+180 -153)
+ print.h (1.27) (+8 -12)
+
+ Move printers to print-util; also add top/left/bottom/right boxes to the UI
+
+2000-01-25 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.46) (+65 -52)
+ print-pcl.c (1.17) (+33 -19)
+ print-ps.c (1.13) (+21 -16)
+ print-util.c (1.55) (+61 -82)
+ print.h (1.26) (+13 -2)
+
+ 1) Better attempt at supporting newer Epson printers.
+
+ 2) Generalized paper size support.
+
+2000-01-25 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.45) (+97 -33)
+
+ Try to make 440/640/740/900/750/1200 work
+
+2000-01-25 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.44) (+218 -180)
+ print.c (1.43) (+20 -13)
+ weavetest.c (1.10) (+244 -22)
+
+ 1) Weaving code for Stylus Photo 1200 and friends (the multi-bit printers).
+ I don't expect printing to actually work, although it's not impossible that
+ it will.
+
+ 2) Fixed up the save code to be a bit more predictable.
+
+ 3) Bug fixes
+
+2000-01-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.43) (+11 -4)
+ print-util.c (1.54) (+87 -36)
+ print.c (1.42) (+4 -2)
+ print.h (1.25) (+5 -2)
+
+ 1) Add a few more paper sizes.
+
+ 2) Clean up Makefile.standalone.
+
+ 3) Nominal support for Stylus Color 850.
+
+2000-01-21 <rlk@sourceforge.net>
+
+ Files: README (1.7) (+4 -3)
+ print-util.c (1.53) (+155 -2)
+
+ Describe the algorithms in print-util.c.
+
+2000-01-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.42) (+306 -61)
+ print-pcl.c (1.16) (+16 -6)
+ print-util.c (1.52) (+330 -612)
+ print.c (1.41) (+3 -3)
+ print.h (1.24) (+4 -3)
+
+ Print 3.1.0
+
+2000-01-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.41) (+143 -102)
+ print-pcl.c (1.15) (+20 -13)
+ print-util.c (1.51) (+363 -123)
+ print.c (1.40) (+41 -4)
+ print.h (1.23) (+5 -5)
+
+ Much stuff:
+
+ 1) Fixes from 3.0.5
+
+ 2) First cut at enhancing monochrome and four-level printing with stuff from
+ the color print function.
+
+ 3) Preliminary support (pre-support) for 440/640/740/900/750/1200.
+
+2000-01-15 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.14.2.1) (+11 -7)
+ print.c (1.38.2.3) (+40 -3)
+
+ PCL and Gimp 1.0 patches from Dave Hill
+
+2000-01-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.40) (+275 -237)
+ print-util.c (1.50) (+11 -4)
+ print.c (1.39) (+15 -3)
+
+ Intermediate version
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: README (1.6.2.2) (+2 -2)
+ print-util.c (1.49.2.1) (+6 -3)
+
+ Bump version
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print.c (1.38.2.2) (+3 -3)
+
+ Bump version
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: README (1.6.2.1) (+5 -3)
+
+ Updates
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print.c (1.38.2.1) (+3 -3)
+
+ bump version
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.39.2.1) (+6 -3)
+
+ silliness
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.39) (+6 -3)
+
+ bug fix from mainline
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print.c (1.38) (+8 -5)
+
+ Gimp merge
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print.h (1.22) (+15 -2)
+
+ Gimp merge
+
+2000-01-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.1.1.2) (+1546 -257)
+ print-pcl.c (1.1.1.2) (+214 -478)
+ print-ps.c (1.1.1.2) (+217 -126)
+ print-util.c (1.1.1.2) (+2057 -216)
+ print.c (1.1.1.5) (+1393 -368)
+ print.h (1.1.1.2) (+130 -43)
+
+ Update from the Gimp
+
+2000-01-09 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.9) (+37 -13)
+
+ miscellany
+
+2000-01-08 <rlk@sourceforge.net>
+
+ Files: README (1.6) (+4 -5)
+ print-pcl.c (1.14) (+6 -3)
+ print-ps.c (1.12) (+6 -3)
+ print-util.c (1.49) (+22 -19)
+ print.c (1.37) (+3 -3)
+ print.h (1.21) (+3 -3)
+ weavetest.c (1.8) (+26 -13)
+
+ Y2K copyright
+
+2000-01-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.38) (+141 -137)
+
+ Rearrange setup code; more printers to support softweave
+
+2000-01-03 <rlk@sourceforge.net>
+
+ Files: print-ps.c (1.11) (+7 -4)
+
+ Fix from Salvador Pinto Abreu <spa@khromeleque.dmat.uevora.pt>
+
+1999-12-30 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.48) (+29 -36)
+
+ Silly little bug...
+
+1999-12-26 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.47) (+153 -115)
+
+ Performance stuff
+
+1999-12-25 <rlk@sourceforge.net>
+
+ Files: print.c (1.36) (+3 -3)
+
+ version
+
+1999-12-25 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.46) (+24 -100)
+
+ Cleanup
+
+1999-12-25 <rlk@sourceforge.net>
+
+ Files: print.c (1.35) (+32 -22)
+
+ UI tweaks
+
+1999-12-25 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.45) (+5 -5)
+
+ some minor improvement
+
+1999-12-24 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.44) (+41 -33)
+
+ Reduce grain; improve red
+
+1999-12-22 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.43) (+6 -3)
+
+ round length up, not down
+
+1999-12-22 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.42) (+11 -8)
+
+ More constant fiddling
+
+1999-12-22 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.41) (+152 -92)
+
+ Reverse direction each pass
+
+1999-12-20 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.7) (+68 -19)
+
+ Intermediate
+
+1999-12-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.37) (+10 -7)
+
+ Make 'em big enough
+
+1999-12-18 <rlk@sourceforge.net>
+
+ Files: print.c (1.34) (+3 -3)
+
+ Update the version
+
+1999-12-18 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.40) (+6 -3)
+
+ typo
+
+1999-12-18 <rlk@sourceforge.net>
+
+ Files: README (1.5) (+3 -6)
+
+ update
+
+1999-12-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.36) (+24 -6)
+
+ comments, mostly
+
+1999-12-18 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.6) (+58 -1)
+
+ Comments
+
+1999-12-18 <rlk@sourceforge.net>
+
+ Files: print.c (1.33) (+2 -6)
+
+ remove PRINT_LUT
+
+1999-12-12 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.39) (+17 -12)
+
+ Various changes
+
+1999-12-11 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.38) (+11 -6)
+ weavetest.c (1.5) (+49 -26)
+
+ Better matching between cmy/k
+
+ Smoother dither!
+
+1999-12-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.35) (+8 -3)
+
+ hopefully get borders right
+
+1999-12-11 <rlk@sourceforge.net>
+
+ Files: print.c (1.32) (+3 -3)
+
+ Printer name correction
+
+1999-12-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.34) (+7 -4)
+
+ bug fixes
+
+1999-12-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.33) (+182 -236)
+
+ various other print modes
+
+1999-12-11 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.32) (+175 -119)
+
+ Better weaving code -- not absolutely complete yet
+
+1999-12-10 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.4) (+36 -29)
+
+ Looks pretty good, now time to integrate it back...
+
+1999-12-10 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.3) (+38 -11)
+
+ Fixed most of the problems
+
+1999-12-10 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.2) (+63 -45)
+
+ handle vertical subpasses for better weaving
+
+1999-12-10 <rlk@sourceforge.net>
+
+ Files: weavetest.c (1.1) ( )
+
+ .
+
+1999-12-05 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.37) (+6 -3)
+
+ don't want PRINT_LUT in release
+
+1999-12-05 <rlk@sourceforge.net>
+
+ Files: print.c (1.31) (+3 -3)
+
+ Increment version
+
+1999-12-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.31) (+6 -5)
+
+ minor, prep for release
+
+1999-12-05 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.30) (+13 -3)
+ print-util.c (1.36) (+78 -72)
+
+ fencepost
+
+1999-12-04 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.35) (+201 -314)
+
+ better use of light colors
+
+1999-12-02 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.34) (+6 -3)
+
+ .
+
+1999-11-30 <rlk@sourceforge.net>
+
+ Files: print.c (1.30) (+11 -2)
+ print.h (1.20) (+7 -7)
+
+ .
+
+1999-11-29 <rlk@sourceforge.net>
+
+ Files: print.c (1.29) (+23 -2)
+
+ stdplugins-intl.h is not a standard header file
+
+1999-11-25 <rlk@sourceforge.net>
+
+ Files: print.c (1.28) (+44 -33)
+
+ 1.1.12 merge
+
+1999-11-25 <rlk@sourceforge.net>
+
+ Files: print.c (1.1.1.4) (+44 -34)
+
+ .
+
+1999-11-25 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.33) (+91 -23)
+ print.c (1.27) (+6 -6)
+ print.h (1.19) (+3 -3)
+
+ Revamped many controls
+
+1999-11-23 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.29) (+7 -9)
+ print-pcl.c (1.13) (+7 -8)
+ print-ps.c (1.10) (+7 -7)
+ print-util.c (1.32) (+41 -38)
+ print.h (1.18) (+8 -8)
+
+ Rationalize variables, pass 3
+
+1999-11-23 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.28) (+17 -14)
+ print-pcl.c (1.12) (+17 -14)
+ print-ps.c (1.9) (+17 -14)
+ print.c (1.26) (+4 -8)
+ print.h (1.17) (+12 -26)
+
+ Rationalize variables -- pass 2
+
+1999-11-23 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.31) (+41 -45)
+ print.c (1.25) (+199 -254)
+ print.h (1.16) (+39 -9)
+
+ First stage of simplifying the variable stuff
+
+1999-11-16 <rlk@sourceforge.net>
+
+ Files: README (1.4) (+4 -0)
+
+ .
+
+1999-11-16 <rlk@sourceforge.net>
+
+ Files: README (1.3) (+17 -0)
+ print-escp2.c (1.27) (+16 -2)
+
+ Documentation
+
+1999-11-16 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.30) (+23 -20)
+
+ More fine tuning
+
+1999-11-14 <rlk@sourceforge.net>
+
+ Files: README (1.2) (+0 -6)
+
+ contrast
+
+1999-11-14 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.29) (+16 -6)
+ print.c (1.24) (+3 -3)
+
+ Revamped contrast
+
+1999-11-14 <rlk@sourceforge.net>
+
+ Files: README (1.1) ( )
+ print-escp2.c (1.26) (+32 -12)
+ print-util.c (1.28) (+59 -41)
+ print.c (1.23) (+5 -2)
+ print.h (1.15) (+6 -2)
+
+ Final preparations for release to Olof
+
+1999-11-14 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.25) (+46 -8)
+
+ Pseudo-hi-res microweave options
+
+1999-11-14 <rlk@sourceforge.net>
+
+ Files: print.c (1.22) (+5 -4)
+
+ Null-terminate media source entry
+
+1999-11-14 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.27) (+6 -3)
+
+ Mix black in sooner gives better density.
+
+1999-11-13 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.24) (+12 -2)
+
+ Comments on some good settings!
+
+1999-11-13 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.26) (+9 -6)
+
+ Finally! Good settings!
+
+1999-11-12 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.25) (+10 -8)
+
+ More tweaking
+
+1999-11-12 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.24) (+11 -8)
+ print.c (1.21) (+4 -5)
+
+ Stubs for dynamic memory allocation
+
+1999-11-12 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.23) (+6 -20)
+
+ Remove silly spurious stuff
+
+1999-11-12 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.22) (+55 -18)
+
+ Much better black
+
+1999-11-10 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.23) (+185 -180)
+ print-pcl.c (1.11) (+7 -4)
+ print-util.c (1.21) (+55 -29)
+
+ 1440x720 two-pass
+
+1999-11-10 <rlk@sourceforge.net>
+
+ Files: print.h (1.14) (+3 -3)
+
+ Increased horizontal weave
+
+1999-11-08 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.22) (+23 -18)
+
+ Bug fix
+
+1999-11-07 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.21) (+436 -128)
+ print.c (1.20) (+4 -2)
+
+ Support Stylus Photo
+
+ Attempt at 1440 dpi
+
+1999-11-07 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.20) (+24 -20)
+
+ Bug fixes; try to improve dithering slightly
+
+1999-11-04 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.20) (+378 -234)
+
+ Comments! Comments! Comments!
+
+1999-11-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.19) (+50 -54)
+
+ Good weave code
+
+1999-11-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.18) (+5 -843)
+
+ Remove dead code
+
+1999-11-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.17) (+36 -14)
+
+ Support both softweave and microweave
+
+1999-11-02 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.16) (+24 -10)
+
+ Much better weaving code!
+
+1999-11-01 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.15) (+1395 -106)
+
+ First cut at weaving
+
+1999-10-29 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.19) (+53 -36)
+
+ Smoother rendering of darker colors
+
+1999-10-28 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.18) (+181 -109)
+
+ One bug, two effects:
+
+ 1) Handle 4-color correctly (it was treating the 4-color too much like the
+ 6-color).
+
+ 2) An attempt to handle both cases with the same code path led to a
+ discontinuity that depending upon the orientation of a color gradient would
+ lead to either white or dark lines at the point that the dark version of
+ the color would kick in.
+
+1999-10-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.14) (+6 -3)
+ print-util.c (1.17) (+274 -259)
+ print.c (1.19) (+3 -3)
+ print.h (1.13) (+35 -34)
+
+ indentation
+
+1999-10-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.13) (+19 -13)
+ print-pcl.c (1.10) (+21 -15)
+ print-ps.c (1.8) (+13 -7)
+ print-util.c (1.16) (+627 -624)
+ print.h (1.12) (+29 -31)
+
+ Comment out all remaining 16-bit code, and rename 16-bit functions to "standard" names
+
+1999-10-26 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.12) (+76 -66)
+ print-pcl.c (1.9) (+87 -78)
+ print-ps.c (1.7) (+101 -87)
+ print-util.c (1.15) (+41 -37)
+ print.c (1.18) (+121 -29)
+ print.h (1.11) (+55 -47)
+
+ Mostly fix save/load
+
+ Move all gimp, glib, gtk stuff into print.c (take it out of everything else).
+ This should help port it to more general purposes later.
+
+1999-10-25 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.11) (+9 -7)
+ print-pcl.c (1.8) (+9 -7)
+ print-ps.c (1.6) (+9 -7)
+ print-util.c (1.14) (+30 -45)
+ print.c (1.17) (+6 -8)
+ print.h (1.10) (+20 -30)
+
+ 16-bit clean
+
+1999-10-25 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.10) (+6 -3)
+
+ Comment
+
+1999-10-25 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.13) (+5 -318)
+ print.h (1.9) (+2 -8)
+
+ Remove more of the 8-bit code, now that it is tested
+
+1999-10-24 <rlk@sourceforge.net>
+
+ Files: print.c (1.16) (+40 -59)
+
+ Fixed saving of scale
+
+1999-10-24 <rlk@sourceforge.net>
+
+ Files: print.c (1.15) (+314 -25)
+
+ First cut at saving all parameters. Not fully functional
+
+1999-10-23 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.12) (+226 -2)
+ print.c (1.14) (+31 -233)
+ print.h (1.8) (+7 -2)
+
+ Move LUT calculation to print-util
+
+1999-10-23 <rlk@sourceforge.net>
+
+ Files: print.c (1.13) (+111 -16)
+
+ density, other improvements
+
+1999-10-22 <rlk@sourceforge.net>
+
+ Files: print.c (1.12) (+4 -2)
+
+ Don't #define PRINT_LUT in the distribution
+
+1999-10-21 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.9) (+40 -37)
+ print-pcl.c (1.7) (+40 -37)
+ print-ps.c (1.5) (+40 -37)
+ print-util.c (1.11) (+96 -376)
+ print.c (1.11) (+68 -68)
+ print.h (1.7) (+2 -5)
+
+ More progress toward full 16-bit rendering
+
+1999-10-19 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.8) (+13 -10)
+ print-pcl.c (1.6) (+10 -10)
+ print-util.c (1.10) (+122 -256)
+ print.c (1.10) (+6 -16)
+ print.h (1.6) (+5 -9)
+
+ Merge all of the single-level print_cmyk functions
+
+1999-10-18 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.7) (+129 -206)
+ print-util.c (1.9) (+9 -14)
+ print.c (1.9) (+4 -2)
+
+ Add Stylus Photo 700 and switch to printer capabilities
+
+1999-10-17 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.6) (+27 -40)
+ print-pcl.c (1.5) (+28 -25)
+ print-ps.c (1.4) (+29 -21)
+ print-util.c (1.8) (+814 -4)
+ print.h (1.5) (+65 -35)
+
+ 16-bit everything (untested)
+
+1999-10-17 <rlk@sourceforge.net>
+
+ Files: print-pcl.c (1.4) (+5 -349)
+ print-util.c (1.7) (+477 -546)
+ print.h (1.4) (+7 -2)
+
+ Move various dither functions into print-utils.c
+
+1999-10-14 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.5) (+16 -7)
+ print-pcl.c (1.3) (+12 -5)
+ print-ps.c (1.3) (+12 -5)
+ print-util.c (1.6) (+356 -8)
+ print.c (1.8) (+104 -4)
+ print.h (1.3) (+25 -14)
+
+ Saturation
+
+1999-10-07 <rlk@sourceforge.net>
+
+ Files: print.c (1.7) (+52 -13)
+
+ 1.1.10 merge
+
+1999-10-07 <rlk@sourceforge.net>
+
+ Files: print.c (1.1.1.3) (+52 -13)
+
+ gimp 1.1.10
+
+1999-10-06 <rlk@sourceforge.net>
+
+ Files: print.c (1.6) (+214 -125)
+
+ linear LUT mode
+
+1999-10-03 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.4) (+25 -13)
+ print-util.c (1.5) (+50 -20)
+ print.c (1.5) (+5 -5)
+
+ Various improvements
+
+1999-09-18 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.4) (+16 -13)
+
+ A bit more random
+
+1999-09-15 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.3) (+12 -2)
+
+ Remove some stuff that seems to have no effect
+
+1999-09-15 <rlk@sourceforge.net>
+
+ Files: print.c (1.4) (+3 -3)
+
+ fix bogus contrast value
+
+1999-09-14 <rlk@sourceforge.net>
+
+ Files: print-util.c (1.3) (+90 -87)
+
+ Some hoped-for improvements
+
+1999-09-12 <rlk@sourceforge.net>
+
+ Files: print.c (1.3) (+17 -18)
+
+ 1.1.9 merge
+
+1999-09-12 <rlk@sourceforge.net>
+
+ Files: print.c (1.1.1.2) (+17 -18)
+
+ .
+
+1999-09-12 <rlk@sourceforge.net>
+
+ Files: print-escp2.c (1.2) (+259 -24)
+ print-pcl.c (1.2) (+3 -2)
+ print-ps.c (1.2) (+3 -2)
+ print-util.c (1.2) (+1051 -28)
+ print.c (1.2) (+659 -18)
+ print.h (1.2) (+39 -10)
+
+ Current best stuff
+
+1999-09-12 <rlk@sourceforge.net>
+
+ Files: Makefile.am (1.1) ( )
+ print-escp2.c (1.1) ( )
+ print-escp2.c (1.1.1.1) (+0 -0)
+ print-pcl.c (1.1) ( )
+ print-pcl.c (1.1.1.1) (+0 -0)
+ print-ps.c (1.1) ( )
+ print-ps.c (1.1.1.1) (+0 -0)
+ print-util.c (1.1) ( )
+ print-util.c (1.1.1.1) (+0 -0)
+ print.c (1.1) ( )
+ print.c (1.1.1.1) (+0 -0)
+ print.h (1.1) ( )
+ print.h (1.1.1.1) (+0 -0)
+
+ Initial revision
+
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..b42a17a
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,182 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/Makefile.am b/Makefile.am
index 2f2103b..2d06dcc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in
-## $Id: Makefile.am,v 1.120 2001/11/23 20:48:52 rlk Exp $
+## $Id: Makefile.am,v 1.120.2.3 2003/07/12 20:47:44 rleigh Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -27,14 +27,8 @@ MAINT_CHARSET = latin1
## Variables
-NONGIMP_SUBDIRS =
-NONGIMP_DISTDIRS =
-## @-@-@-@-@ NO-GIMP @-@-@-@-@
-NONGIMP_SUBDIRS = test
-NONGIMP_DISTDIRS = debian
-## @-@-@-@-@ YES-GIMP @-@-@-@-@
-SUBDIRS = include intl lib man src samples $(NONGIMP_SUBDIRS) po doc
-DISTDIRS = scripts $(NONGIMP_DISTDIRS)
+SUBDIRS = intl include lib man src samples test po doc
+DISTDIRS = scripts debian
EXTRA_DIST = configure.in.in autogen.sh
@@ -49,7 +43,6 @@ endif
libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck
-## @-@-@-@-@ NO-GIMP @-@-@-@-@
ChangeLog:
@cd $(top_srcdir) ; \
echo `pwd`
@@ -74,11 +67,9 @@ ChangeLog:
exit 1 ; \
fi
-## @-@-@-@-@ YES-GIMP @-@-@-@-@
# Rebuild configure.in from configure.in.in if configure.in.in is available.
# If not, don't do anything.
-
configure.in: configure.in.in
if test -f configure.in.in ; then \
sed "s/XXXRELEASE_DATE=XXX/RELEASE_DATE=\"`date '+%d %b %Y'`\"/" configure.in.in > configure.in ; \
@@ -98,34 +89,15 @@ dist-hook:
done \
fi \
done
-## @-@-@-@-@ NO-GIMP @-@-@-@-@
# Create debian/control
DEBIAN_VERSION=`grep "(" debian/changelog | head -1l | sed "s/^[^(]*(//" | sed "s/).*$$//"` ; \
UPSTREAM_VERSION=`echo $$DEBIAN_VERSION | sed "s/-[^-]*$$//"` ; \
- sed -e "s/#UPSTREAM_VERSION#/$${UPSTREAM_VERSION}/g" <debian/control.in >$(distdir)/debian/control
+ LIBRARY_VERSION=$$(($(LT_CURRENT) - $(LT_AGE))) ; \
+ sed -e "s/#UPSTREAM_VERSION#/$${UPSTREAM_VERSION}/g" -e "s/#LIBRARY_VERSION#/$${LIBRARY_VERSION}/g" <debian/control.in >$(distdir)/debian/control
# Do some extra magic to make a distribution for GIMP CVS
status=0 ; \
- if test -f .gimp-dist ; then \
- $(RM) -r $(distdir)/src/cups $(distdir)/src/foomatic $(distdir)/src/ghost ; \
- $(RM) -r $(distdir)/debian $(distdir)/scripts/* $(distdir)/test ; \
- $(RM) -r $(distdir)/intl $(distdir)/po/Makefile.in.in $(distdir)/po/*.gmo ; \
- $(RM) -r $(distdir)/ABOUT-NLS $(distdir)/INSTALL $(distdir)/aclocal.m4 $(distdir)/config.h.in $(distdir)/configure $(distdir)/cups-gimpprint.list.in $(distdir)/stamp-h.in ; \
- find $(distdir) -name Makefile.in -print | xargs --no-run-if-empty $(RM) ; \
- cd $(distdir) ; \
- $(PERL) ../scripts/patch-gimp configure.in ; \
- $(PERL) ../scripts/patch-gimp Makefile.am ; \
- $(PERL) ../scripts/patch-gimp src/Makefile.am ; \
- $(PERL) ../scripts/patch-gimp po/POTFILES.in ; \
- status=$$? ; \
- cd .. ; \
- $(RM) .gimp-dist ; \
- fi ; \
exit $$status
-gimp-dist:
- touch .gimp-dist
- $(MAKE) dist distdir=$(PACKAGE)-$(VERSION)-GIMP-DIST
-
install-cups: all
cd src/cups ; \
$(MAKE) install
@@ -134,7 +106,6 @@ install-ghost: all
cd src/ghost ; \
$(MAKE) install
-## @-@-@-@-@ YES-GIMP @-@-@-@-@
install-gimp: all
cd src/gimp ; \
$(MAKE) install
@@ -189,8 +160,4 @@ CLEANSCRIPTS = \
CLEANFILES = .gimp-dist .noupdate
MAINTAINERCLEANFILES = ABOUT-NLS INSTALL aclocal.m4 config.h.in configure Makefile.in stamp-h.in $(addprefix scripts/, $(CLEANSCRIPTS))
-## @-@-@-@-@ NO-GIMP @-@-@-@-@
-.PHONY: deb gimp-dist install-cups install-ghost snapshot ChangeLog
-## @-@-@-@-@ YES-GIMP @-@-@-@-@
-
-.PHONY: install-gimp html
+.PHONY: deb gimp-dist install-cups install-ghost snapshot ChangeLog install-gimp html
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..681de60
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,602 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+SUBDIRS = intl include lib man src samples test po doc
+DISTDIRS = scripts debian
+
+EXTRA_DIST = configure.in.in autogen.sh
+
+@MAINTAINER_MODE_TRUE@MAINT_MODE = true
+
+DEBUILD_OPTIONS = -us -uc
+
+CLEANSCRIPTS = config.guess config.sub install-sh ltconfig ltmain.sh missing mkinstalldirs
+
+
+CLEANFILES = .gimp-dist .noupdate
+MAINTAINERCLEANFILES = ABOUT-NLS INSTALL aclocal.m4 config.h.in configure Makefile.in stamp-h.in $(addprefix scripts/, $(CLEANSCRIPTS))
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = cups-gimpprint.list
+DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
+INSTALL Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 config.h.in \
+configure configure.in cups-gimpprint.list.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in
+ cd $(srcdir) && $(ACLOCAL)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+config.h: stamp-h
+ @if test ! -f $@; then \
+ rm -f stamp-h; \
+ $(MAKE) stamp-h; \
+ else :; fi
+stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=config.h \
+ $(SHELL) ./config.status
+ @echo timestamp > stamp-h 2> /dev/null
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/stamp-h.in; \
+ $(MAKE) $(srcdir)/stamp-h.in; \
+ else :; fi
+$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
+
+mostlyclean-hdr:
+
+clean-hdr:
+
+distclean-hdr:
+ -rm -f config.h
+
+maintainer-clean-hdr:
+cups-gimpprint.list: $(top_builddir)/config.status cups-gimpprint.list.in
+ cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ dc_install_base=`cd $(distdir)/=inst && pwd`; \
+ cd $(distdir)/=build \
+ && ../configure --with-included-gettext --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) dist
+ -rm -rf $(distdir)
+ @banner="$(distdir).tar.gz is ready for distribution"; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"
+dist: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+dist-all: distdir
+ -chmod -R a+r $(distdir)
+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+ -rm -rf $(distdir)
+distdir: $(DISTFILES)
+ -rm -rf $(distdir)
+ mkdir $(distdir)
+ -chmod 777 $(distdir)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+all-recursive-am: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile config.h
+all-redirect: all-recursive-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-recursive
+ -rm -f config.status
+
+maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
+ maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f config.status
+
+.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
+install-data-recursive uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+libtool: $(LIBTOOL_DEPS)
+ $(SHELL) ./config.status --recheck
+
+ChangeLog:
+ @cd $(top_srcdir) ; \
+ echo `pwd`
+ if test -f .noupdate ; then \
+ echo "ChangeLog: .noupdate found: NOT updating ChangeLog from CVS" ; \
+ elif test -d CVS ; then \
+ echo "ChangeLog: Updating ChangeLog from CVS" ; \
+ cvs log -N | $(PERL) scripts/mkchlog > ChangeLog.tmp ; \
+ if test -s ChangeLog.tmp ; then \
+ mv ChangeLog.tmp ChangeLog ; \
+ else \
+ echo "ChangeLog: Failed to update ChangeLog ['touch .noupdate' to skip]" ; \
+ $(RM) ChangeLog.tmp ; \
+ exit 1 ; \
+ fi \
+ elif test -s ChangeLog ; then \
+ echo "ChangeLog: This is not a CVS version of GIMP-Print" ; \
+ echo "ChangeLog: Not updating ChangeLog from CVS!" ; \
+ else \
+ echo "ChangeLog: No ChangeLog or ChangeLog of zero size found!" ; \
+ echo "ChangeLog: Failed to update ChangeLog ['touch .noupdate' to skip]" ; \
+ exit 1 ; \
+ fi
+
+# Rebuild configure.in from configure.in.in if configure.in.in is available.
+# If not, don't do anything.
+configure.in: configure.in.in
+ if test -f configure.in.in ; then \
+ sed "s/XXXRELEASE_DATE=XXX/RELEASE_DATE=\"`date '+%d %b %Y'`\"/" configure.in.in > configure.in ; \
+ fi
+
+configure.in.in:
+ true
+
+dist-hook:
+ for dir in $(DISTDIRS) ; do \
+ if test -d $(srcdir)/$$dir ; then \
+ mkdir $(distdir)/$$dir; \
+ for dirfile in $(srcdir)/$$dir/*; do \
+ if test -f $$dirfile ; then \
+ cp -p $$dirfile $(distdir)/$$dir; \
+ fi \
+ done \
+ fi \
+ done
+# Create debian/control
+ DEBIAN_VERSION=`grep "(" debian/changelog | head -1l | sed "s/^[^(]*(//" | sed "s/).*$$//"` ; \
+ UPSTREAM_VERSION=`echo $$DEBIAN_VERSION | sed "s/-[^-]*$$//"` ; \
+ LIBRARY_VERSION=$$(($(LT_CURRENT) - $(LT_AGE))) ; \
+ sed -e "s/#UPSTREAM_VERSION#/$${UPSTREAM_VERSION}/g" -e "s/#LIBRARY_VERSION#/$${LIBRARY_VERSION}/g" <debian/control.in >$(distdir)/debian/control
+# Do some extra magic to make a distribution for GIMP CVS
+ status=0 ; \
+ exit $$status
+
+install-cups: all
+ cd src/cups ; \
+ $(MAKE) install
+
+install-ghost: all
+ cd src/ghost ; \
+ $(MAKE) install
+
+install-gimp: all
+ cd src/gimp ; \
+ $(MAKE) install
+
+docs:
+ cd doc ; \
+ $(MAKE) docs
+
+html:
+ cd doc ; \
+ $(MAKE) html
+
+ps:
+ cd doc ; \
+ $(MAKE) ps
+
+pdf:
+ cd doc ; \
+ $(MAKE) pdf
+
+snapshot:
+ $(MAKE) dist distdir=$(PACKAGE)`date +"%Y%m%d"`
+deb: debian/changelog debian/control debian/rules
+ $(MAKE) dist
+ -$(RM) -r debian-build
+ -mkdir debian-build
+ cd debian-build ; \
+ mv ../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; \
+ tar xfvz $(PACKAGE)_$(VERSION).orig.tar.gz ; \
+ cd $(PACKAGE)-$(VERSION) ; \
+ debuild $(DEBUILD_OPTIONS) ; \
+ cd .. ; \
+ $(RM) -r $(PACKAGE)-$(VERSION)
+
+debian/control:
+ debian/rules debian/control
+
+.PHONY: deb gimp-dist install-cups install-ghost snapshot ChangeLog install-gimp html
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/Matgen/dither-distance.c b/Matgen/dither-distance.c
deleted file mode 100644
index 346840c..0000000
--- a/Matgen/dither-distance.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Dither matrix generation */
-/* This program is written 2000 by Thomas Tonino. */
-/* It is placed in the public domain. */
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <time.h>
-
-#define HSIZE 73
-#define VSIZE 73
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define TRUE 1
-#define FALSE 0
-/* X1, Y1, etc are initial bits to be set in the matrix. Choose well!! */
-#define X1 2
-#define Y1 1
-#define X2 48
-#define Y2 24
-#define X3 24
-#define Y3 49
-
-int main(void)
-{
-int x, y, xd, yd, i, j, bitcount, largehole, largetotal, result[HSIZE*VSIZE];
-float distance, thishole, maximum, total;
-int initial[HSIZE*VSIZE];
-
-/* Set up array with zeroes and a number of 'ones' */
-bitcount=0;
-for ( x=0; x<HSIZE; ++x )
- for ( y=0; y<VSIZE; ++y )
- {
- initial[x+y*HSIZE]=FALSE;
- result[x+y*HSIZE]=0;
- }
-
-initial[X1+Y1*HSIZE]=TRUE;
-result[X1+Y1*HSIZE]=bitcount++;
-initial[X2+Y2*HSIZE]=TRUE;
-result[X2+Y2*HSIZE]=bitcount++;
-initial[X3+Y3*HSIZE]=TRUE;
-result[X3+Y3*HSIZE]=bitcount++;
-
-while (bitcount < VSIZE*HSIZE)
- {
- maximum=0;
-/* Start looking for the largest hole */
- for ( i=0; i<HSIZE; ++i )
- for ( j=0; j<VSIZE; ++j )
- {
- total=0;
-/* check only if it is a hole right now */
- if (initial[i+j*HSIZE]==FALSE)
- {
- for ( x=0; x<HSIZE; ++x )
- for ( y=0; y<VSIZE; ++y )
-/* scan all positions, find distance, munge and add */
- if (initial[x+y*HSIZE]==TRUE)
- {
- xd = abs(x - i);
- yd = abs(y - j);
- if (xd > HSIZE2)
- xd = HSIZE - xd;
- if (yd > VSIZE2)
- yd = VSIZE - yd;
- distance = sqrt(xd*xd+yd*yd);
- total+=(1-1/distance);
- }
- if (total > maximum)
- {
-/* it is the largest so far */
- largetotal = i+j*HSIZE;
- maximum = total;
- }
- }
- }
-/* put a "1" in the largest hole */
- initial[largetotal] = TRUE;
- result[largetotal]=bitcount++;
-
-/* print the result so far */
- for ( i=0; i<HSIZE; ++i )
- {
- for ( j=0; j<VSIZE; ++j )
- if (initial[i+j*HSIZE])
- printf("@");
- else
- printf("-");
-
- printf("\n");
- }
- }
-/* print result */
-printf("\n\n");
-for (j=0; j<HSIZE*VSIZE; ++j)
- printf("%d, ",result[j]);
-printf("\n\n");
-}
diff --git a/Matgen/quickaspect.c b/Matgen/quickaspect.c
deleted file mode 100644
index 4fdcbbf..0000000
--- a/Matgen/quickaspect.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* This code is public domain. */
-/* Written by Thomas Tonino, year 2000 */
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <time.h>
-
-#define TRUE 1
-#define FALSE 0
-
-
-
-/*
-/* 257x257 matrix designed to be shifted 128 pixels right or down
- */
-#if 0
-#define HSIZE 257
-#define VSIZE 257
-#define ASPECT 1
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define X1 0
-#define Y1 0
-#define X2 194
-#define Y2 65
-#define X3 96
-#define Y3 160
-#define X4 145
-#define Y4 209
-#endif
-
-
-
-/*
-/* 73x36 test matrix designed to be shifted 1/3 right or down
- */
-#if 1
-#define HSIZE 73
-#define VSIZE 36
-#define ASPECT 2
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define X1 0
-#define Y1 0
-#define X2 37
-#define Y2 18
-#define X3 67
-#define Y3 21
-#define X4 18
-#define Y4 15
-#endif
-
-
-
-/*
-/* 367x179 matrix designed to be shifted 1/3 right or down
- */
-#if 0
-#define HSIZE 367
-#define VSIZE 179
-#define ASPECT 2
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define X1 0
-#define Y1 0
-#define X2 184
-#define Y2 90
-#define X3 336
-#define Y3 104
-#define X4 92
-#define Y4 75
-#endif
-
-int main(void)
-{
-int bitcount, x, y, initial[HSIZE*VSIZE], result[HSIZE*VSIZE], hsearch, tmp, vsearch;
-int i, j, xp, yp, largetotal;
-double distance, total, maximum;
-srand48(time(NULL));
-bitcount=0;
-for ( x=0; x<HSIZE; ++x )
- for ( y=0; y<VSIZE; ++y )
- {
- initial[x+y*HSIZE]=FALSE;
- result[x+y*HSIZE]=0;
- }
-
-initial[X1+Y1*HSIZE]=TRUE;
-result[X1+Y1*HSIZE]=bitcount++;
-/* initial[X2+Y2*HSIZE]=TRUE;
-result[X2+Y2*HSIZE]=bitcount++;
-initial[X3+Y3*HSIZE]=TRUE;
-result[X3+Y3*HSIZE]=bitcount++;
-initial[X4+Y4*HSIZE]=TRUE;
-result[X4+Y4*HSIZE]=bitcount++; */
-
-while (bitcount < VSIZE*HSIZE)
- {
-/* 6 seems to give good results for multimplier, but smaller values are faster */
- hsearch=3*sqrt(VSIZE*HSIZE)/sqrt(bitcount);
- tmp=3*sqrt(VSIZE*HSIZE)/sqrt((VSIZE*HSIZE+1)-bitcount);
- if (tmp > hsearch)
- hsearch=tmp;
- vsearch=hsearch;
- if ( hsearch > HSIZE2 )
- hsearch = HSIZE2;
- if ( vsearch > VSIZE2 )
- vsearch = VSIZE2;
- maximum=0;
-/* Start looking for the largest hole */
- for ( i=0; i<HSIZE; ++i )
- for ( j=0; j<VSIZE; ++j )
- {
- total=0;
-/* check only if it is a hole right now */
- if (initial[i+j*HSIZE]==FALSE)
- {
- for ( x=-hsearch; x<hsearch; ++x )
- for ( y=-vsearch; y<vsearch; ++y )
-/* scan all positions, in distance v/hsearch from (i.j), munge and add */
- {
- xp = x + i;
- yp = y + j;
- if (xp >= HSIZE)
- xp = xp - HSIZE;
- if (xp < 0)
- xp = xp + HSIZE;
- if (yp >= VSIZE)
- yp = yp - VSIZE;
- if (yp < 0)
- yp = yp + VSIZE;
- if (initial[(xp+yp*HSIZE)]==TRUE)
- {
- distance = (x*x+y*y*ASPECT*ASPECT);
- total+=(1-1/distance);
- }
- else
- total+=1;
- }
-// The below value seems slightly noisy in darker tones, try adding less noise
- total += drand48()/(hsearch);
- if (total > maximum)
- {
-/* it is the largest so far */
- largetotal = i+j*HSIZE;
- maximum = total;
- }
- }
- }
-/* put a "1" in the largest hole */
- initial[largetotal] = TRUE;
- result[largetotal]=bitcount++;
-
-/* print the result so far */
- if ( bitcount % 3 == 0 )
- {
-// printf("%d of %d, scanning a %d size block\n",bitcount,VSIZE*HSIZE,hsearch);
- for ( i=0; i<HSIZE; ++i )
- {
- for ( j=0; j<VSIZE; ++j )
- if (initial[i+j*HSIZE])
- printf("@");
- else
- printf("-");
- for ( j=0; j<VSIZE; ++j )
- if (initial[i+j*HSIZE])
- printf("@");
- else
- printf("-");
- printf("\n");
- }
- }
- }
-/* print result */
-printf("\n\n");
-for (j=0; j<HSIZE*VSIZE; ++j)
- printf("%d, ",result[j]);
-printf("\n\n");
-}
diff --git a/Matgen/quickdistance.c b/Matgen/quickdistance.c
deleted file mode 100644
index 3923f9b..0000000
--- a/Matgen/quickdistance.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* This program is written 2000 by Thomas Tonino. */
-/* It is placed in the public domain. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <time.h>
-
-#define TRUE 1
-#define FALSE 0
-
-/* 199 size matrix designed to be re-used shifted 100 pixels
- * shifted right or down
- */
-#if 0
-#define HSIZE 199
-#define VSIZE 199
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define X1 0
-#define Y1 0
-#define X2 150
-#define Y2 50
-#define X3 75
-#define Y3 124
-#define X4 112
-#define Y4 162
-#endif
-
-/* Another 199 size matrix designed to be re-used shifted 100 pixels
- * shifted right or down - should not interfere with the one above.
- */
-#if 0
-#define HSIZE 199
-#define VSIZE 199
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define X1 38
-#define Y1 38
-#define X2 88
-#define Y2 188
-#define X3 162
-#define Y3 113
-#define X4 1
-#define Y4 150
-#endif
-
-/*
-/* 257x257 matrix designed to be shifted 128 pixels right or down
- */
-#if 1
-#define HSIZE 257
-#define VSIZE 257
-#define HSIZE2 (HSIZE/2)
-#define VSIZE2 (VSIZE/2)
-#define X1 0
-#define Y1 0
-#define X2 194
-#define Y2 65
-#define X3 96
-#define Y3 160
-#define X4 145
-#define Y4 209
-#endif
-int main(void)
-{
-int bitcount, x, y, initial[HSIZE*VSIZE], result[HSIZE*VSIZE], hsearch, tmp, vsearch;
-int i, j, xp, yp, largetotal;
-double distance, total, maximum;
-srand48(time(NULL));
-bitcount=0;
-for ( x=0; x<HSIZE; ++x )
- for ( y=0; y<VSIZE; ++y )
- {
- initial[x+y*HSIZE]=FALSE;
- result[x+y*HSIZE]=0;
- }
-
-initial[X1+Y1*HSIZE]=TRUE;
-result[X1+Y1*HSIZE]=bitcount++;
-initial[X2+Y2*HSIZE]=TRUE;
-result[X2+Y2*HSIZE]=bitcount++;
-initial[X3+Y3*HSIZE]=TRUE;
-result[X3+Y3*HSIZE]=bitcount++;
-initial[X4+Y4*HSIZE]=TRUE;
-result[X4+Y4*HSIZE]=bitcount++;
-
-while (bitcount < VSIZE*HSIZE)
- {
-/* 6 seems to give good results for multimplier, but smaller values are faster */
- hsearch=3*sqrt(VSIZE*HSIZE)/sqrt(bitcount);
- tmp=3*sqrt(VSIZE*HSIZE)/sqrt((VSIZE*HSIZE+1)-bitcount);
- if (tmp > hsearch)
- hsearch=tmp;
- vsearch=hsearch;
- if ( hsearch > HSIZE2 )
- hsearch = HSIZE2;
- if ( vsearch > VSIZE2 )
- vsearch = VSIZE2;
- maximum=0;
-/* Start looking for the largest hole */
- for ( i=0; i<HSIZE; ++i )
- for ( j=0; j<VSIZE; ++j )
- {
- total=0;
-/* check only if it is a hole right now */
- if (initial[i+j*HSIZE]==FALSE)
- {
- for ( x=-hsearch; x<hsearch; ++x )
- for ( y=-vsearch; y<vsearch; ++y )
-/* scan all positions, in distance v/hsearch from (i.j), munge and add */
- {
- xp = x + i;
- yp = y + j;
- if (xp >= HSIZE)
- xp = xp - HSIZE;
- if (xp < 0)
- xp = xp + HSIZE;
- if (yp >= VSIZE)
- yp = yp - VSIZE;
- if (yp < 0)
- yp = yp + VSIZE;
- if (initial[(xp+yp*HSIZE)]==TRUE)
- {
- distance = (x*x+y*y);
- total+=(1-1/distance);
- }
- else
- total+=1;
- }
-// The below value seems slightly noisy in darker tones, try adding less noise
- total += drand48()/(hsearch);
- if (total > maximum)
- {
-/* it is the largest so far */
- largetotal = i+j*HSIZE;
- maximum = total;
- }
- }
- }
-/* put a "1" in the largest hole */
- initial[largetotal] = TRUE;
- result[largetotal]=bitcount++;
-
-/* print the result so far */
- if ( bitcount % 100 == 0 )
- {
- printf("%d of %d, scanning a %d size block\n",bitcount,VSIZE*HSIZE,hsearch);
- for ( i=0; i<HSIZE; ++i )
- {
- for ( j=0; j<VSIZE; ++j )
- if (initial[i+j*HSIZE])
- printf("@");
- else
- printf("-");
- printf("\n");
- }
- }
- }
-/* print result */
-printf("\n\n");
-for (j=0; j<HSIZE*VSIZE; ++j)
- printf("%d, ",result[j]);
-printf("\n\n");
-}
diff --git a/NEWS b/NEWS
index ad67cd8..2dfbf72 100644
--- a/NEWS
+++ b/NEWS
@@ -1,24 +1,1006 @@
- -*- Mode: Text -*-
-
-Gimp-Print 4.2.0, released November 24, 2001, is the latest stable release
-of this package. This release offers numerous improvements over the
-previous stable release, 4.0
+Gimp-Print 4.2.7, released July 15, 2004, is a stable release in the
+Gimp-Print 4.2 series. This is expected to be the last release in the
+4.2 series unless any critical bugs are found or 5.0 is further
+delayed.
+
+Gimp-Print is a suite of printer drivers that may be used with most
+common UNIX print spooling systems, including CUPS, lpr, LPRng, or
+others. These drivers provide high quality printing for UNIX
+(including Macintosh OS X 10.2 and newer) and Linux systems in many
+cases equal to or better than proprietary vendor-supplied drivers, and
+can be used for many of the most demanding printing tasks.
This software includes the Print plug-in for the Gimp, and GhostScript
and CUPS drivers, including Foomatic data.
-The Gimp Print plugin requires the Gimp 1.2.
+The Print plug-in for the GIMP requires the Gimp 1.2. The GIMP 1.3
+and 2.0 are not supported.
+
+The CUPS driver requires CUPS 1.1.9 or higher. 1.1.14 or above is
+highly recommended, as certain translation-related bugs are fixed and
+it is possible to print true CMYK.
+
+The Ghostscript driver requires GNU Ghostscript 5.10, 5.50, 6.51, or any
+later GNU Ghostscript release based on 6.51 (e. g. 6.52). It may also
+be used with GNU Ghostscript 7.05, or with ESP Ghostscript 7.05.
+
+The IJS GhostScript plugin driver requires GNU Ghostscript 6.53 or
+later, ESP Ghostscript 7.05 or later, or APFL GhostScript 7.04 or
+later.
+
+Users of Macintosh OS X 10.2 and above can use this package, as the
+printing system is based on CUPS, which is supported by Gimp-print.
+Note that Macintosh OS X 10.0 and 10.1 (including 10.1.5) cannot use
+this package. We recommend that Macintosh OS X users download the
+precompiled installer package from
+http://gimp-print.sourceforge.net/MacOSX.php3 rather than attempt to
+build this package from source, as using the installer is much
+simpler. We further recommend that Macintosh OS X users install ESP
+GhostScript, to permit printing from Carbon applications (such as most
+Adobe applications) that generate PostScript rather than PDF output.
+Directions for that are also available at
+http://gimp-print.sourceforge.net/MacOSX.php3.
+
+OS X users who have had problems printing to USB-connected printers
+should also consider using the usbtb USB driver described under the
+4.2.7 changes.
+
+Please read the README file for full instructions on installing this
+package from source code.
+
+These release notes contain the following sections:
+
+1) Changes from 4.2.6 to 4.2.7
+2) Changes from 4.2.5 to 4.2.6
+3) Changes from 4.2.4 to 4.2.5
+4) Changes from 4.2.3 to 4.2.4
+5) Changes from 4.2.2 to 4.2.3
+6) Changes from 4.2.1 to 4.2.2
+7) Changes from 4.2.0 to 4.2.1
+8) Overall changes from 4.0 to 4.2
+9) List of supported printers
+10) Printer-specific notes
+
+================================================================
+
+Gimp-Print 4.2.7 contains the following major changes over Gimp-Print
+4.2.6:
+
+* Major bugs fixed:
+
+ 1) Many Macintosh OS X users have reported problems of various kinds
+ with USB-attached printers, including both native USB and
+ parallel printers connected with USB-parallel printers. Symptoms
+ reported include failure to print altogether, inability to print
+ more than one page without rebooting or restarting the print
+ system, and poor performance. These problems are not specific to
+ Gimp-Print.
+
+ We have released a replacement USB backend driver for Macintosh
+ OS X 10.2 and higher that to the best of our knowledge fixes all
+ of these problems. This driver, named "usbtb", is available on
+ the download site at
+ http://sourceforge.net/project/showfiles.php?group_id=1537&package_id=120183.
+ We recommend that all users of OS X 10.2 and above who are having
+ printing problems with USB-attached printers try this driver. In
+ addition to resolving these problems, this driver also also
+ provides textual cues to the system printer queue window to walk
+ the user through recovery from common error conditions, and it
+ also provides ink level reporting for Epson and HP printers that
+ support it.
+
+ This replacement USB backend driver is not specific to
+ Gimp-Print, and may be used with any USB-connected printer with
+ any printer driver under OS X.
+
+ 2) (bug 907765) The CUPS driver now reports pages starting from page
+ 1 rather than page 0 as was previously the case.
+
+ 3) (bug 919224) The Postscript output driver (in the GIMP plugin)
+ now functions correctly in non-US locales when a PPD file is
+ provided.
+
+ 4) (bug 919225) A segmentation violation on the IA64 platform is
+ fixed.
+
+ 5) (bug 972014) A bug in the Postscript output driver causes the
+ GIMP plugin to crash on startup with certain PPD files. This bug
+ is not related to locale. At least certain PPD files from the
+ Epson PIPS drivers are known to result in this problem.
+
+ 6) (bug 919226) The horizontal printing position on the Epson Stylus
+ C63/C64 and C83/C84 printers has been fixed.
+
+ 7) (bug 613054) The CUPS driver now handles, via a workaround,
+ incorrect Postscript generated by some programs. In certain
+ cases, these programs result in the generation of single bit
+ output, rather than 8-bit output as it should. The result was
+ that Gimp-Print printed only a thin band of horizontally
+ compressed output, and it may have crashed in some cases.
+
+ The programs most commonly affected were Adobe InDesign 2.0 and
+ psnup.
+
+ 8) (bug 924862) The package now operates correctly with on Solaris
+ and other systems using an external libintl.
+
+ 9) (bug 929227) Gimp-Print no longer attempts to build (and fail)
+ the Print plugin against the GIMP 2.0. This fix requires a
+ special build procedure in some circumstances; please see item
+ (10) under Exceptions and Workarounds below.
+
+ 10) (bug 855685) escputil now reports ink levels from all known Epson
+ Stylus printers. In addition, ink level reporting is more
+ reliable in general, with fewer timeouts or unparseable output.
+
+ 11) (bug 971832) The HP DesignJet 2500 and 3500 now support correct
+ maximum page widths of 36" and 54" respectively, rather than 44"
+ for both.
+
+ 12) (bug 971833) The PPD files now use the recommended manufacturer
+ names. Previously, certain CUPS applications could display the
+ manufacturer names incorrectly.
+
+
+* New functionality:
+
+ 1) The Epson Stylus Photo R200/R210 and R300/R310 printers, and the
+ RX500 and RX600 multi-function devices, are now supported. These
+ printers have been properly tuned and are fully functional
+ (except for direct printing to CD's). The Epson CX5300 and
+ CX5400 multi-functional devices are also now supported as
+ printers.
+
+ 2) The HP LaserJet 1012 and Brother HL-1440 printers are now
+ supported.
+
+ 3) Super A0 and Super B0 paper sizes are now supported.
+
+ 4) Translations for Hungarian, Ukrainian, and Norwegian/Bokmaal have
+ been added. In addition, other translations have been updated.
+
+
+* Exceptions and Workarounds:
+
+ 1) Mac OS X users who use the Epson Printer Utility (provided by
+ Epson with their standard driver set) to check ink levels and
+ perform maintenance tasks, such as head cleaning or head
+ alignment, may encounter print job failures when attempting to
+ print with the Gimp-Print driver after using the Epson utility.
+ The cause for this failure is currently unknown, but the
+ workaround is to completely power-cycle the printer, after which
+ the Gimp-Print driver should again print normally. Another
+ option is to disable the Epson Printer Utility.
+
+ 2) The new HP DesignJets have not been fully tuned. In particular,
+ there are reports that they print too light. This can be
+ corrected with the Density adjustment (try 1.5~1.7 or
+ thereabouts).
+
+ 3) The list of compatible and potentially compatible Hewlett-Packard
+ printers has been updated with the latest available information.
+ If a particular printer does not work with the recommended
+ driver, we recommend that you try other similar drivers, check
+ the Feature Requests at
+ http://sourceforge.net/tracker/?atid=101537&group_id=1537&func=browse,
+ and if the printer is not listed please file a feature request
+ (via the Submit New button).
+
+ 4) Borderless (full-bleed) printing is not quite correct on the
+ Epson Stylus Photo printers that support it (see bug 621668).
+ Typically, the left or right margin is off by 1 mm or less,
+ resulting in a very fine white strip on that edge.
+
+ 5) Many Canon printers do not print correctly at 720x360 DPI. The
+ workaround is to use 360 or 720 DPI.
+
+ 6) With certain versions of CUPS and in certain configurations, if a
+ new version of Gimp-Print is installed over an existing version
+ genppd will create PPD files based on the older version of
+ Gimp-Print rather than the newer version. This will happen if all
+ of the following are true:
+
+ 1) The cups-config provided by the CUPS driver adds
+ -Wl,rpath=/usr/lib. This is done by some versions of CUPS
+ reportedly because in some cases the runtime linker does not
+ pick up libraries out of /usr/lib. This can be checked by
+ running
+
+ cups-config --libs --ldflags
+
+ and inspecting the output for any mention of "rpath", "RPATH",
+ "RUN_PATH", or the like.
+
+ 2) There is presently a version of Gimp-Print installed in /usr
+ (--prefix=/usr) rather than /usr/local or the like.
+
+ 3) Gimp-Print is built dynamically only (--disable-static)
+
+ Note that in general if you install CUPS into a non-standard
+ location, and install Gimp-Print into the same location, this
+ problem can surface.
+
+ This bug is difficult to detect in a normal build. It does not
+ cause an error to happen during build; the only failure is that
+ some PPD files may not be built or may be built with missing
+ options.
+
+ In this case, the run path embedded in the genppd executable
+ points to the version of Gimp-Print installed in /usr/lib. This
+ run path overrides any attempt by libtool to look in the build
+ directory. The result is that genppd is run against the older
+ version of Gimp-Print. If the new version contains additional
+ features (more printers, etc.) they will not be available to
+ genppd.
+
+ If you wish to use only shared libraries, and do not wish to
+ build static libraries at all, there are three workarounds
+ available:
+
+ 1) Build and install Gimp-Print into /usr (rather than
+ /usr/local) and then rebuild Gimp-Print from scratch. This
+ will install the correct libgimpprint.so in /usr/lib, and in
+ the rebuild genppd will be run against the correct library.
+
+ 2) Remove the old version of Gimp-Print prior to building the new
+ version of Gimp-Print. The important files to remove are
+ anything named /usr/lib/libgimpprint*.
+
+ 3) Edit cups-config to remove the reference to the run path.
+
+ 7) The fix for bug 929227 (Gimp-Print incorrectly attempts to build
+ against GIMP 2.0) requires special build instructions if you are
+ using a very old version of the GIMP 1.2 (versions affected are
+ believed to include 1.2.0, 1.2.1, and 1.2.2). Specifically, you
+ must set GIMPTOOL in the environment to point to the proper
+ version of gimptool when running Gimp-Print's configure script.
+ For example:
+
+ GIMPTOOL=/usr/bin/gimptool ./configure
+
+ The bug fix involves checking for the presence of the GIMP
+ slightly differently from how it was previously done.
+ Previously, Gimp-Print checked for the presence of a program
+ named "gimptool", which provides information about how to build
+ plugins against the GIMP. This worked correctly when only the
+ GIMP 1.2 was installed, but not when the GIMP 2.0 was installed.
+
+ The GIMP 2.0 actually installs a program named "gimptool-2.0",
+ and creates a symbolic link named "gimptool" pointing to it.
+ Later versions of the GIMP 1.2 (1.2.3, 1.2.4, 1.2.5, and any
+ later versions that may be released) similarly create a program
+ named "gimptool-1.2" and a symbolic link named "gimptool".
+ As the configure script prior to this bug fix simply checked for
+ gimptool, it incorrectly detected a gimptool from the GIMP 2.0,
+ which this version of Gimp-Print cannot build against.
+
+ The current configure script checks first for gimptool-1.2 and
+ then for gimptool, and only accepts the use of a GIMP 1.2 version
+ of one of these programs. However, if you have one of the older
+ versions of the GIMP 1.2 installed in a non-standard location,
+ and you use --with-gimp-prefix or --with-gimp-exec-prefix to
+ specify its location, the configure script will not automatically
+ detect the correct location of gimptool, and you must specify it
+ as described above. Note that you must specify a copy of
+ gimptool from the GIMP 1.2, not from the GIMP 2.0. If your copy
+ of the GIMP is installed in a standard location (typically
+ /usr/bin or /usr/local/bin), you do not need to use
+ --with-gimp-prefix or --with-gimp-exec-prefix, and therefore do
+ not need to use this workaround.
+
+ The Gimp-Print and GIMP projects recommend upgrading to a newer
+ revision of the GIMP 1.2 (at the time these release notes are
+ written, the latest version is 1.2.5), which will not require
+ this workaround. This workaround is available in the event that
+ you cannot or do not wish to upgrade your installation of the
+ GIMP.
+
+
+The following bugs have been fixed in Gimp-Print 4.2.7:
+
+613054 Mac OS X: Printing from InDesign 2.0 on OS 10.2.1
+855685 escputil does not return status for C84
+907765 CUPS filter `progress meter' reports incorrect page number
+919224 Postscript driver fails in non-US locale with a PPD file
+919225 segv on ia64 from lack of prototype for strdup
+919226 Incorrect horizontal offset on Epson C64 and C84 printers
+924862 Gimp-print breaks thebuild script of the GIMP 2.0 on Solaris
+929227 Gimp-Print incorrectly attempts to build against GIMP 2.0
+971832 HP DesignJet 2500/3500 have incorrect widths
+971833 CUPS PPD manufacturer names violate spec (4.2)
+972014 eksprx600_610.ppd crashes gimp-print-4.2.6-4
+
+The following bugs are currently open:
+
+470049 CUPS PPD files not translated on all systems
+538097 QUALITY-Canon S400 dark and yellow cast
+549677 Canon BJC-1000 functions incorrectly at 720x360 DPI
+557868 QUALITY-HP DeskJet 560 is washed out
+581168 Canon BJC 250 just spits out pages
+601767 Mac OS X: Canon BJC 2100 does not print multiple pages
+602933 QUALITY-Canon S800 dark and grainy
+614882 QUALITY - Canon BJC-55 is too pale and desaturated
+621668 Epson Stylus full bleed prints have slight margin
+627978 QUALITY: Canon BJC-6500 has magenta cast.
+631937 HP DesignJet Sheet Cutter Problem
+641981 QUALITY: HP DesignJets print too light
+645116 QUALITY: HP DeskJet regression from 4.1.7
+647035 QUALITY: Colors don't match OEM drivers
+662988 HP DeskJet 970Cxi page horizontally squeezed
+672692 Epson photo 700 single page of multi page job
+687656 Paper Positioning Problems Epson 7600
+704334 QUALITY: Epson SP 2100: Green Cast/Dark Colours/Poor Greys
+811062 Reverse printing
+================================================================
+
+Gimp-Print 4.2.6 contains the following major changes over Gimp-Print
+4.2.5:
+
+* Major bugs fixed:
+
+ 1) (bug 627266) The CUPS driver offers an "Autoselect" option for the
+ media source (input slot). This behavior cannot be disabled.
+ Previous versions of Gimp-Print did not handle this option
+ appropriately. This option is now handled appropriately, by
+ treating it as the default input slot for the printer.
+
+ 2) (bug 729918) The PostScript driver (used only in the Print plugin
+ for the GIMP) did not operate correctly if the locale was set to
+ something other than the US English locale.
+
+ 3) (bug 668342) The Canon S-450, and other Canon printers, only
+ printed the first page of a multi-page job if the printer was
+ hosted on a Windows system.
+
+ 4) (bug 842715) The Epson Stylus Color 600, 800, 850, 1520, and 3000
+ failed to print in black and white or grayscale at certain
+ resolutions.
+
+ 5) (bug 865253) In certain cases, the PPD file generator for CUPS
+ may not generate all of the PPD files, or may not generate them
+ correctly. The underlying problem is some versions of CUPS
+ specify a linker command line that forces an old version of the
+ Gimp-Print driver library to be used when building the PPD files.
+
+ This fix works correctly unless --disable-static (to disable
+ building static libraries) is passed on the command line.
+ Normally, only people packaging up Gimp-Print for distribution
+ use this option. If you wish to use this option, please read the
+ Exceptions and Workarounds *carefully* for a full description of
+ the problem along with suggested methods of procedure.
+
+
+* New Functionality:
+
+ 1) A number of newer Epson Stylus printers and multi-function devices
+ are supported. Please see the supported printers list at the
+ bottom of this file for full information on supported printers.
+
+ 2) The Canon S200 is now supported.
+
+ 3) The European 10x15 cm and US Engineering C paper sizes have been
+ added.
+
+ 4) The CUPS driver now offers normal and reversed paper order,
+ permitting printing documents in the correct page order on inkjet
+ and some laser printers.
+
+ 5) A Czech language translation has been added.
+
+
+* Quality improvements:
+
+ 1) Under OS X, the options are grouped more appropriately, making for
+ easier use.
+
+ 2) Some Epson printer resolution names have been changed for clarity.
+ This change does not introduce an incompatibility.
+
+ 3) The escputil command no longer hangs if the printer does not respond.
+
+ 4) Minor speed improvement for the HP LaserJet IIP.
+
+ 5) Minor adjustment to the HP DeskJet 340 margins.
+
+ 6) The PPD files have been audited for conformance to the PPD
+ specification.
+
+
+The following bugs have been fixed in Gimp-Print 4.2.6:
+
+627266 Mac OS X: Autoselect option incorrectly offered
+668342 Canon S-450 prints only one page of a job
+729918 Postscript family driver fails in non-US locale
+735493 CUPS PPD files lacking *OutputOrder
+842715 Epson 600/800/850/1520/3000 fail at certain resolutions BW
+865253 genppd may not generate new PPD files (4.2)
+
+The following bugs have been tested and cannot be reproduced:
+
+764041 CNR: Epson 3000 720x360DPI problem
+828993 CNR: Epson SC 850 using Microweave prints tall characters
+================================================================
+
+Gimp-Print 4.2.5 contains the following major changes over Gimp-Print
+4.2.4:
+
+* Major bugs fixed:
+
+ 1) (bug 625780) The Epson Stylus Pro 5000 now prints.
+
+ 2) (bug 645895) The Epson Stylus Color 640 now prints properly at
+ all resolutions in color, grayscale, and monochrome.
+
+ 3) (bug 639356) The version of libtool used in building the release
+ package has been upgraded to 1.4.3, which fixes compile problems
+ on a few platforms (this is primarily of interest to packagers).
+
+ 4) (bug 659543) escputil now reports the ink levels correctly on the
+ Stylus Photo 950/960 and 2100/2200.
+
+ 5) (bug 672692) A buffer overflow in escputil, which permitted a
+ local privilege escalation if it is installed setuid, has been
+ fixed. Note that Gimp-print does not install escputil setuid,
+ and we do not recommend explicitly setting the setuid bit.
+
+ 6) (bug 672846) A problem compiling rastertoprinter on Solaris with
+ the gcc compiler has been fixed.
+
+ 7) (bug 672850) The Epson back end in CUPS will no longer hang
+ attempting to read back ink levels under some circumstances, and
+ it will also compute the ink levels correctly.
+
+ 8) (bug 646158) DESTDIR now works correctly with make install (this
+ is primarily of interest to packagers).
+
+
+* New Functionality:
+
+ 1) If Foomatic 2.9.x is installed, the Foomatic data will be
+ generated with additional features: Once the options are put into
+ groups ("General", "PrintoutMode", "Adjustment") and a new
+ "PrintoutMode" option will be added, which lets the user choose
+ pre-configurations for common printing tasks, but still adjust
+ the individual options. If an older version of Foomatic is
+ installed, the Foomatic data will stay as before.
+
+ 2) (bug 596538) The automatic paper cutter is now functional on the
+ Epson Stylus Photo 925, 950/960, and 2100/2200.
+
+
+* Quality Improvements:
+
+ 1) The Epson Stylus Photo 950/960/PM-950C and 2100/2200 are now tuned.
+ The 950 and 960 are fully tuned, while the 2100 and 2200 are fully
+ tuned with Photographic Black ink. Matte Black ink on the
+ 2100/2200, and dark yellow ink on the PM-950C, are not tuned at
+ this point.
+
+ 2) The Epson Stylus Photo 950/960/PM-950C and 2100/2200 now support
+ double speed printing at 360 DPI in Four Color Standard mode (in
+ color, grayscale, and monochrome). For this reason, we recommend
+ use of Four Color Standard for printing text and low-resolution
+ graphics on plain paper with these printers.
+
+ 3) Translations for Danish, German, Portuguese, Swedish, and UK
+ English have been updated.
+
+
+* Exceptions and Workarounds:
+
+ 1) There have been a number of reports that printing to a
+ Windows-hosted printer from Macintosh OS X results in only the
+ first page of the job being printed (see bugs 668342 and
+ 672692). In at least some cases, connecting the printer directly
+ to the Macintosh results in correct prints. There is no known
+ workaround short of connecting the printer directly to the
+ Macintosh. Investigation is continuing on this problem.
+
+ 2) There are longstanding reports of problems printing with certain
+ USB-parallel adapters on Macintosh OS X. In particular, many
+ users have reported problems with the Keyspan adapter; we
+ recommend that users having problems try different brands of
+ adapters, and avoid using USB hubs. Please check our
+ web site (http://gimp-print.sourceforge.net/MacOSX.php3) for a
+ link to a user feedback forum regarding these cables.
+
+ 3) Mac OS X users who use the Epson Printer Utility (provided by
+ Epson with their standard driver set) to check ink levels and
+ perform maintenance tasks, such as head cleaning or head
+ alignment, may encounter print job failures when attempting to
+ print with the Gimp-Print driver after using the Epson
+ utility. The cause for this failure is currently unknown, but the
+ workaround is to completely power-cycle the printer, after which
+ the Gimp-Print driver should again print normally. Another
+ option is to disable the Epson Printer Utility.
+
+ 4) The Mac OS X print dialog may offer an "Autoselect" option as the
+ default media source (input slot) on some printers. This option
+ may not be valid and can result in nothing being printed. The
+ workaround is to choose a different setting (explicitly select
+ the input slot you wish to use).
+
+ 5) The new HP DesignJets have not been fully tuned. In particular,
+ there are reports that they print too light. This can be
+ corrected with the Density adjustment (try 1.5~1.7 or
+ thereabouts).
+
+ 6) The list of compatible and potentially compatible Hewlett-Packard
+ printers has been updated with the latest available information.
+ If a particular printer does not work with the recommended
+ driver, we recommend that you try other similar drivers, check
+ the Feature Requests at
+ http://sourceforge.net/tracker/?atid=101537&group_id=1537&func=browse,
+ and if the printer is not listed please file a feature request
+ (via the Submit New button).
+
+ 7) Borderless (full-bleed) printing is not quite correct on the
+ Epson Stylus Photo printers that support it (see bug 621668).
+ Typically, the left or right margin is off by 1 mm or less,
+ resulting in a very fine white strip on that edge. This will not
+ be fixed in 4.2; it is expected to be fixed in 4.3 and beyond.
+ There is no workaround other than trimming the page.
+
+ 8) Many Canon printers do not print correctly at 720x360 DPI. The
+ workaround is to use 360 or 720 DPI.
+
+
+The following bugs have been fixed in Gimp-Print 4.2.5:
+
+596538 Epson Stylus Photo 925 etc. paper cutter is not functional
+599029 Epson: Maximum speed printing not supported on 950, 960
+625780 Epson Stylus Pro 5000 does not print
+639356 Build system: libtool 1.4.2 does not work on all platforms
+641628 QUALITY: Epson Stylus 2200 print quality is low in 7-color
+645895 Epson stc640 does not print at 720dpi and above
+646158 Build:DESTDIR broken in make install in print plugin
+649253 QUALITY - Epson 950/960 problems in all resolutions
+659543 escputil Epson Photo 950 Ink level wrong
+672845 Buffer overflow in escputil
+672846 rastertoprinter does not compile on Solaris with gcc
+672850 Epson back end in CUPS driver can lock up
+================================================================
+
+Gimp-Print 4.2.4 contains the following major changes over Gimp-Print
+4.2.3:
+
+* Major Bugs Fixed:
+
+ 1) (bugs 603702 and 619537) All PCL laser printers (including HP
+ LaserJet and many other printer lines) printed too light (black
+ came out as medium gray).
+
+ 2) (bugs 631993 and 633910) Various problems with the PPD files
+ used by the native CUPS driver worked incorrectly with many
+ applications, leading to failures to print, failures to recognize
+ certain page sizes, and custom page sizes not working correctly
+ have been fixed. To fix these problems, you must reinstall all
+ of your printer queues using Gimp-Print PPD files. To do this,
+ you must delete and re-create the printer queue (merely modifying
+ or configuring the queue will not solve the problem).
+
+ Please see the release notes for 4.2.3 (below) for instructions
+ on using custom page sizes.
+
+ 3) (bug 628698) Lexmark printers produced severely distorted colors
+ in some cases.
+
+ 4) (bug 631498) Canon large-format printers did not support A3 paper
+ size; these printers are now capable of printing on that size
+ paper.
+
+ 5) (no bug number) PCL laser printers now have correct margins on
+ A4-size paper.
+
+ 6) (bug 630365) The Epson Stylus Photo 950 now prints correctly in
+ 1440x1440 and 2880x720 DPI modes. This is not significant new
+ functionality; these modes are actually printed at 2880x1440,
+ which did not have htis problem.
+
+ 7) (no bug number, but related to 628698) 6-color HP printers should
+ now print correctly using all 6 colors.
+
+ 8) (no bug number) The dimensions for 22x30 watercolor paper were
+ incorrect.
+
+
+* New Functionality:
+
+ 1) The following HP DesignJet large-format plotters are now
+ supported: DesignJet 230, 250, 430, 450, 455, 488, 700, 2500, and
+ 3500. Other DesignJet printers may work with one of these
+ drivers.
+
+ 2) The following Epson multi-function devices are now supported as
+ printers: Stylus 3200CX and 5200CX. This project does not
+ support scanners, so we cannot offer any advice on the scanner
+ component of these units.
+
+ 3) The Epson MJ-930C is now supported.
+
+ 4) Various manual pages have been added or updated. See
+ gimpprint(3), ijsgimpprint(1), escputil(1), and cups-calibrate(8)
+ for more information.
+
+ 5) Transverse versions of the US CAD standard paper sizes (ArchA,
+ ArchB, ArchC, ArchD, and ArchE) have been added. This permits
+ printing e. g. ArchD size (24x36) plots on ArchE (36 inch wide)
+ paper.
+
+
+* Exceptions and Workarounds:
+
+ 1) The new HP DesignJets have not been fully tuned. In particular,
+ there are reports that they print too light. This can be
+ corrected with the Density adjustment (try 1.5~1.7 or
+ thereabouts).
+
+ 2) The version of libtool used to build this package, 1.4.2, does
+ not create shared libraries correctly on some platforms (in
+ particular, MIPS and MIPSEL). The workaround is to either build
+ static libraries only (configure --disable-shared), or to
+ regenerate the libtool with libtool 1.4.3. We expect this to be
+ fixed in a future release.
+
+ 3) The Epson Stylus 2200 has not been tuned in 7-color mode, and
+ reports are that quality is subpar in this mode. We recommend
+ using 6-color mode until this is tuned, which we hope to be in
+ the near future.
+
+ 4) There are longstanding reports of problems printing with certain
+ USB-parallel and USB-serial adapters on Macintosh OS X. In
+ particular, many users have reported problems with the Keyspan
+ adapter; we recommend that users having problems try different
+ brands of adapters, and avoid using USB hubs. Please check our
+ web site (http://gimp-print.sourceforge.net) for updates.
+
+ 5) The list of compatible and potentially compatible Hewlett-Packard
+ printers has been updated with the latest available information.
+ If a particular printer does not work with the recommended
+ driver, we recommend that you try other similar drivers, check
+ the Feature Requests at
+ http://sourceforge.net/tracker/?atid=101537&group_id=1537&func=browse,
+ and if the printer is not listed please file a feature request
+ (via the Submit New button).
+
+
+The following bugs have been fixed in Gimp-Print 4.2.4:
+
+603702 QUALITY-HP LaserJet 5L print is too light
+619537 QUALITY - Poor quality w/ Lexmark OprtaE+ and pcl-4
+628698 Lexmark color reversal
+630365 Epson Stylus Photo 950: Enlarged image with some 1440/2800
+631498 Canon driver does not support A3 page size for large format
+631936 HP DesignJet Margin Problems
+631993 Macintosh OS X: Custom page size problems w/some apps
+633910 Epson 1520 ppd bug gimp-print 4.2.3
+================================================================
+
+
+Gimp-Print 4.2.3 contains the following major changes over Gimp-Print
+4.2.2:
+
+
+* Major Bugs Fixed:
+
+ 1) (bug 604854) The Epson Stylus Color 600, 800, 850, 1520, and 3000
+ did not print correctly at 1440x720 DPI (much too dark). These
+ printers now print correctly.
+
+ 2) (bugs 620016 and 619992) Two problems with the IJS driver have
+ been fixed. The first problem is that the IJS driver did not
+ print correctly in grayscale or monochrome; the second is that a
+ spurious fine line was printed at the very top of each page.
+
+ 3) (bug 613384) The Epson Stylus Pro 7600 and 9600 did not print at
+ all. While this printer is not fully tuned, it now prints
+ correctly.
+
+ 4) (bug 621667) Very large prints (longer than about 40" long) on
+ Epson Stylus Pro printers were not printed correctly; the print
+ is typically chopped into many small pieces.
+
+ 5) (bug 615561) The Epson Stylus Color 480 and 580, and C20, C40,
+ C41, and C42 (all variants) did not print in black and white or
+ grayscale. This was a regression in 4.2.2.
+
+ 6) (bug 611804) The CUPS driver did not compile correctly on many
+ platforms other than Linux (this was known to be an issue on
+ Solaris and BSD). This was a regression in 4.2.2.
+
+ 7) (bug 625602) The Stylus Pro 5500, 7000, 7500, 9000, and 9500
+ printed too light at low resolutions. In addition, at 1440x720
+ some of these printers used an overly-large dot size, resulting
+ in more grain than necessary.
+
-The CUPS driver requires CUPS 1.1.9 or higher (1.1.12 or above is
-highly recommended).
+* New Functionality:
-The Ghostscript driver requires Ghostscript 5.10, 5.50, 6.51, or any
-later GNU Ghostscript release based on 6.51 (e. g. 6.52).
+ 1) The native CUPS driver now accepts custom paper sizes with
+ printers that permit this (all Epson printers, and most others).
+ To use this on the lp or lpr command line, use
-Please read the README file for full instructions on building and
-installing this package.
+ -o PageSize=Custom.300x400
-Gimp-Print 4.2 contains the following major changes over Gimp-Print
+ where 300 and 400 should be replaced by the width and height of
+ the page in 1/72" units.
+
+ The width and height can also be specified in inches ("in"), cm,
+ or mm. For example, for 4.5x7.5-inch paper you can specify:
+
+ -o PageSize=Custom.4.5x7.5in
+
+ On Macintosh OS X, custom page sizes may be defined and selected
+ through the Print Manager.
+
+ 2) The Foomatic interface now accepts custom paper sizes with
+ Foomatic 2.0.1.
+
+ This works with all spoolers. Here are sample command lines for
+ all spoolers, for CUPS the syntax is the same as with the native
+ CUPS drivers of GIMP-Print and units are again points ("pt" or
+ nothing), inches ("in"), cm, and mm:
+
+ CUPS: lpr -o PageSize=Custom.500x750mm bigposter.ps
+ LPRng: lpr -Z PageSize=Custom.500x750mm bigposter.ps
+ GNUlpr: lpr -o PageSize=Custom.500x750mm bigposter.ps
+ LPD: lpr -JPageSize=Custom.500x750mm bigposter.ps
+ PPR: ppr -F "*PageSize Custom" -i 500x750mm bigposter.ps
+ PDQ: pdq -oPageSize_Custom -aPageWidth=500
+ -aPageHeight=750 -oPageSizeUnit_mm bigposter.ps
+ No spooler: directomatic -o PageSize=Custom.500x750mm bigposter.ps
+
+ This works with both the GhostScript "stp" and the IJS interface
+ of GIMP-Print.
+
+ 3) A Japanese translation has been added.
+
+ 4) This release contains an ijsgimpprint package for Debian.
+
+
+The following bugs have been fixed in Gimp-Print 4.2.3:
+
+604854 QUALITY-Epson 1520 and 3000 print too dark at 1440x720 DPI
+611804 rastertoprinter.c fails to compile on Solaris
+613384 Epson 7600 no printing
+615561 Epson C40UX cannot print in B&W and Gray
+615759 360x240 bad horizontal position
+619992 IJS driver prints spurious first line
+620016 IJS driver does not print properly in monochrome
+621667 Very large prints on Epson 9500 fail
+622612 CUPS driver forbids custom page sizes
+625602 QUALITY Pale output on Stylus Pro 7500
+================================================================
+
+
+Gimp-Print 4.2.2 contains the following major changes over Gimp-Print
+4.2.1:
+
+
+* Major Bugs Fixed:
+
+ 1) (bug 565092) A Gimp-print driver crash on some systems is fixed.
+ Inspection with a debugger would indicate that the crash was in a
+ routine named `stp_vasprintf'. Whether the driver crashed or not
+ depended upon the precise system software installed.
+
+ 2) (bug 592093) On certain systems primarily in European countries
+ (where the locale was set to a non-US value, such as French,
+ German, or even UK English), the IJS-based Ghostscript driver did
+ not set certain parameters properly. The most obvious effect was
+ that the page size was set incorrectly.
+
+ 3) (bug 510185) On certain Epson printer models (primarily the Epson
+ Stylus Color 740 and newer) hosted on some Windows systems, the
+ last page of jobs was printed incompletely; anywhere between a
+ fraction of an inch and half a page would not be printed. This
+ did not affect all printer models, or all Windows-hosted
+ printers. Whether this happened depended upon the exact printer
+ model, the version of Windows, and the driver features selected
+ on the Windows host (in particular, the status monitor and/or
+ bidirectional communication).
+
+ 4) (bug 594637) The driver for the Lexmark Z52 crashed in certain
+ circumstances.
+
+ 5) (bug 600249) On all printers requiring a right margin greater
+ than zero (which is most printers), the native CUPS driver
+ printed a right margin twice as wide as the margin required by
+ the printer. This resulted in the output being squeezed
+ slightly.
+
+ 6) (bug 599505) When using the Postscript PS2 output in the GIMP
+ Print plugin to print to a CUPS-hosted printer, options selected
+ in the PPD file were ignored.
+
+ 7) (bug 598341) On certain systems, the GIMP Print plugin did not
+ save the printer defaults correctly. This happened on systems
+ where the `lpstat -p -d' command (used to retrieve the list of
+ printers available on the system) produces more than one line
+ listing each printer.
+
+ 8) (bug 554149) The CUPS driver did not install correctly on certain
+ commercial UNIX systems, in particular most Solaris systems.
+
+ 9) (bug 581446) The driver did not print correctly at certain very
+ low resolutions on certain Epson printers in black and white.
+ This prevented fast draft printing from working correctly.
+
+ 10) (bug 565091) The IJS driver failed to print extremely large
+ images (typically very long banners on large format printers).
+
+
+* New Functionality:
+
+ 1) Apple Macintosh OS 10.2 ("Jaguar") is fully supported as of this
+ release.
+
+ 2) The default optimization level with gcc is now -O2 rather than
+ -O. This improves performance somewhat.
+
+ 3) German, Portuguese, and Spanish translations have been added.
+
+ 4) Quad tone grayscale inks, such as the Piezography (TM) inks, are
+ now supported for most Epson Stylus printers. This is not tuned
+ for a particular inkset at this time, so the results will not be
+ of top quality yet. This capability should be considered beta.
+
+ 5) Many new Epson Stylus printers are supported. Please see the
+ complete list of printers at the bottom of these release notes.
+
+
+* Quality Improvements:
+
+ 1) A new dither algorithm, EvenTone, has been added. This algorithm
+ produces superior results for photographs and other
+ continuous-tone images, but in its current form it may not be as
+ well suited for solid color images and line art. This algorithm
+ should be considered beta.
+
+
+* Exceptions and Workarounds:
+
+ 1) On Macintosh OS X, it is not possible to print directly from
+ applications that generate PostScript, such as most Adobe
+ applications. This is because OS X does not include the
+ "rastertops" filter required for CUPS to print PostScript files.
+ The workaround is to generate a Print Preview, and to print from
+ that (Print Preview generates a PDF, which OS X is able to
+ print).
+
+ This limitation is not specific to Gimp-Print. Please check the
+ Gimp-Print web site (http://gimp-print.sourceforge.net) for
+ updates and possible fixes.
+
+ 2) The Epson PM-950C (Japanese version of the Stylus Photo 950/960)
+ does not use the additional dark yellow ink available on that
+ printer.
+
+ 3) Certain older Epson Stylus printers (the Stylus Color 3000 is
+ known; some or all of the 600, 800, 850, and 1520 may also suffer
+ this problem; the Stylus Photo 700 and EX do *not*) print much
+ too dark at 1440x720 DPI. This was reported too late in the
+ cycle to fix for this release. The best workaround is to print
+ at 720 DPI, which will yield only a minor reduction in print
+ quality.
+
+
+The following bugs have been fixed in Gimp-Print 4.2.2:
+
+510185 Incomplete print to Windows-hosted printers
+534059 print dialog - wrong and confusing label (.no translation)
+554149 solaris x86 install error
+565091 IJS driver fails on very large images
+565092 Crash in stp_vasprintf on some systems
+581446 Improper printing at very low resolution (Epson)
+586960 Gimp Print plugin installs incorrectly on some systems
+592093 IJS driver sets page size incorrectly in some non-US locales
+594637 Lexmark Z52 driver crash
+597964 Epson 660 wrong margins
+598341 get_system_printers() problem with duplicate entries
+599505 PS2 printing from GIMP broken with CUPS
+600249 gimp-print output too narrow in CUPS
+================================================================
+
+
+Gimp-Print 4.2.1 contains the following major changes over Gimp-Print
+4.2.0:
+
+
+* Major Bugs Fixed:
+
+ 1) Canon printers should now print with correct scaling at all
+ supported resolutions, and the CMYK printers should print with
+ optimum quality. However, the photo printers (which use special
+ cartridges with light cyan and magenta inks) are currently unable
+ to use the photo cartridges; they are limited to ordinary CMYK
+ printing.
+
+ 2) The escputil command is translated.
+
+ 3) It is now possible to print at all resolutions on large format
+ PCL printers.
+
+ 4) The Ghostscript driver now prints with the same quality as the
+ other drivers at all resolutions on all printers (in 4.2.0, Epson
+ printers printed with poor quality at high resolutions).
+
+ 5) CUPS PPD files should operate correctly with the Adobe PostScript
+ driver (and other PostScript drivers).
+
+ 6) Gimp-Print now builds successfully on Solaris, IRIX, AIX, and
+ Macintosh OS X.
+
+
+* New Functionality:
+
+ 1) A new driver, based on the IJS architecture, is included in this
+ release. This driver is compatible with GNU Ghostscript 6.53 and
+ above, and AFPL Ghostscript 7.04 and above. IJS is a new
+ architecture for Ghostscript drivers; rather than having to build
+ the driver into Ghostscript, the driver runs as a separate
+ process. Foomatic data is provided for this driver.
+
+ 2) New translations for the Slovak, Greek, and Dutch languages are
+ provided.
+
+
+* Quality Improvements:
+
+ 1) Additional tuning has been done for some Epson Stylus printers,
+ in particular the Stylus Pro 5500, 7500, and 9500.
+
+ 2) Epson Stylus Pro printers can now print to letter size (and
+ smaller) paper.
+
+ 3) The Very Fast dither algorithm has been sped up in certain cases.
+
+ 4) Some quality improvements for the Epson 680/777 driver.
+
+
+* Exceptions and Workarounds:
+
+ 1) If you have built and installed the foomatic-db-gimpprint package
+ from any gimp-print 4.2.1-pre* tarball, or from CVS, you will
+ need to manually remove it prior to installing the final 4.2.1
+ debs. This is because it has been renamed to
+ foomatic-db-gimp-print to match the foomatic naming scheme.
+ There is only a guaranteed upgrade path between official releases
+ to avoid unnecessary dependency complexities.
+
+
+The following bugs have been fixed in 4.2.1:
+
+485156 Debian build broken in 4.2.0
+488865 escputil isn't translated
+493772 360dpi is not a valid resolution
+493838 canon print scaling broken
+496813 Z42 issues
+499200 ESP 1280/1290 need special deinit code
+499203 ESP 780/820 have different paper codes
+499299 z42 border
+502713 Restricted resolution on DesignJet
+507767 Parameters not set in CUPS driver
+507770 Unset parameters in Ghostscript driver
+507773 Old-style GS build broken
+516268 Erroneous comparison
+518224 makeinfo fails during build
+521694 CUPS build broken in 4.2.1-pre1
+525779 Buffering bug in epson cups backend
+528922 rastertoprinter doesn't log pages
+533400 Very fast dithering works incorrectly
+537248 IJS driver mis-handles -r option
+537293 IJS/foomatic driver crashes printing grayscale
+538497 IJS driver sets incorrect paper size
+538500 PCL driver crash
+539013 IJS driver mispositions image on page
+540307 Syntax error in CloseUI in PPD files
+543562 Portability issues
+548844 OS X support
+================================================================
+
+
+Gimp-Print 4.2.0 contains the following major changes over Gimp-Print
4.0:
@@ -299,25 +1281,31 @@ Gimp-Print 4.2 contains the following major changes over Gimp-Print
4) The "unprint" program supplied in the test directory is much more
functional and accurate than previously.
-
+================================================================
Supported Printers:
Many variations on these printers are also supported. Generally, the
Epson printers are fully supported, although not fully tuned in all
-cases; the Canon, HP, and Lexmark printers vary. Many printers
-previously supported have greatly improved support.
-
-PostScript level 1
-PostScript level 2
-CANON BJC 30 (NEW)
-CANON BJC 50 (NEW)
-CANON BJC 55 (NEW)
-CANON BJC 80 (NEW)
-CANON BJC 85 (NEW)
-CANON BJC 210 (NEW)
-CANON BJC 240 (NEW)
-CANON BJC 250 (NEW)
+cases; the Canon, HP, and Lexmark printers vary. Printers listed as
+NEW are newly introduced into Gimp-Print 4.2.2.
+
+Please see the printer-specific notes section following the list of
+printers for any instructions specific to your printer.
+
+PostScript level 1 (GIMP Plugin only)
+PostScript level 2 (GIMP Plugin only)
+Apple Color StyleWriter 4100 (same as HP DeskJet 660C)
+Apple Color StyleWriter 4500 (same as HP DeskJet 690C)
+Apple Color StyleWriter 6500 (same as HP Deskjet 850C)
+CANON BJC 30
+CANON BJC 50
+CANON BJC 55
+CANON BJC 80
+CANON BJC 85
+CANON BJC 210
+CANON BJC 240
+CANON BJC 250
CANON BJC 1000
CANON BJC 2000
CANON BJC 3000
@@ -328,40 +1316,57 @@ CANON BJC 6100
CANON BJC 7000
CANON BJC 7100
CANON BJC 8200
-CANON S400 (NEW)
-CANON S450 (NEW)
-CANON S800 (NEW)
-CANON S4500 (NEW)
-EPSON Stylus C20SX (NEW)
-EPSON Stylus C20UX (NEW)
-EPSON Stylus C40SX (NEW)
-EPSON Stylus C40UX (NEW)
-EPSON Stylus C60 (NEW)
-EPSON Stylus C70 (NEW)
-EPSON Stylus C80 (NEW)
+CANON S200 (experimental)
+CANON S400
+CANON S450
+CANON S800
+CANON S4500
+EPSON Stylus C20SX
+EPSON Stylus C20UX
+EPSON Stylus C40SX
+EPSON Stylus C40UX
+EPSON Stylus C41SX
+EPSON Stylus C41UX
+EPSON Stylus C42SX
+EPSON Stylus C42UX
+EPSON Stylus C43SX
+EPSON Stylus C43UX
+EPSON Stylus C44SX
+EPSON Stylus C44UX
+EPSON Stylus C50 (experimental)
+EPSON Stylus C60
+EPSON Stylus C61
+EPSON Stylus C62
+EPSON Stylus C63 (experimental)
+EPSON Stylus C64 (experimental)
+EPSON Stylus C70
+EPSON Stylus C80
+EPSON Stylus C82
+EPSON Stylus C83
+EPSON Stylus C84
EPSON Stylus Color
EPSON Stylus Color Pro
EPSON Stylus Color Pro XL
EPSON Stylus Color 400
EPSON Stylus Color 440
EPSON Stylus Color 460
-EPSON Stylus Color 480 (NEW)
+EPSON Stylus Color 480
EPSON Stylus Color 500
-EPSON Stylus Color 580 (NEW)
+EPSON Stylus Color 580
EPSON Stylus Color 600
EPSON Stylus Color 640
EPSON Stylus Color 660
EPSON Stylus Color 670
-EPSON Stylus Color 680/777 (NEW)
+EPSON Stylus Color 680/777
EPSON Stylus Color 740
EPSON Stylus Color 760
EPSON Stylus Color 800
EPSON Stylus Color 850
EPSON Stylus Color 860
-EPSON Stylus Color 880 (NEW)
-EPSON Stylus Color 83 (NEW)
+EPSON Stylus Color 880
+EPSON Stylus Color 83
EPSON Stylus Color 900
-EPSON Stylus Color 980 (NEW)
+EPSON Stylus Color 980
EPSON Stylus Color 1160
EPSON Stylus Color 1500
EPSON Stylus Color 1520
@@ -369,25 +1374,96 @@ EPSON Stylus Color 3000
EPSON Stylus Photo
EPSON Stylus Photo 700
EPSON Stylus Photo EX
+EPSON Stylus Photo EX3
EPSON Stylus Photo 720
EPSON Stylus Photo 750
-EPSON Stylus Photo 780/785/790 (NEW)
-EPSON Stylus Photo 810/820 (NEW, not verified, expected to work)
+EPSON Stylus Photo 780/785/790
+EPSON Stylus Photo 810/820
+EPSON Stylus Photo 825/830
EPSON Stylus Photo 870/875
-EPSON Stylus Photo 890/895 (NEW)
+EPSON Stylus Photo 890/895
+EPSON Stylus Photo 900 (NEW)
+EPSON Stylus Photo 915
+EPSON Stylus Photo 925
+EPSON Stylus Photo 935
+EPSON Stylus Photo 950
+EPSON Stylus Photo 960
EPSON Stylus Photo 1200
EPSON Stylus Photo 1270
-EPSON Stylus Photo 1280/1290 (NEW)
+EPSON Stylus Photo 1280/1290
EPSON Stylus Photo 2000P
-EPSON Stylus Pro 5000 (NEW, partially functional)
-EPSON Stylus Pro 5500 (NEW, partially functional)
-EPSON Stylus Pro 7000 (NEW, partially functional)
-EPSON Stylus Pro 7500 (NEW, partially functional)
-EPSON Stylus Pro 9000 (NEW, partially functional)
-EPSON Stylus Pro 9500 (NEW, partially functional)
-EPSON Stylus Pro 10000 (NEW, partially functional)
-EPSON Stylus Scan 2000 (NEW)
-EPSON Stylus Scan 2500 (NEW)
+EPSON Stylus Photo 2100
+EPSON Stylus Photo 2200
+EPSON Stylus Photo R200
+EPSON Stylus Photo R300
+EPSON Stylus Photo RX500
+EPSON Stylus Photo RX600
+EPSON Stylus Pro 5000
+EPSON Stylus Pro 5500
+EPSON Stylus Pro 7000
+EPSON Stylus Pro 7500
+EPSON Stylus Pro 7600 (experimental)
+EPSON Stylus Pro 9000
+EPSON Stylus Pro 9500
+EPSON Stylus Pro 9600 (experimental)
+EPSON Stylus Pro 10000
+EPSON Stylus Scan 2000
+EPSON Stylus Scan 2500
+EPSON Stylus CX-3100
+EPSON Stylus CX-3200
+EPSON Stylus CX-5100
+EPSON Stylus CX-5200
+EPSON Stylus CX-5300
+EPSON Stylus CX-5400
+EPSON Stylus CX-6300
+EPSON Stylus CX-6400
+EPSON Stylus CX-8300
+EPSON Stylus CX-8400
+EPSON CL-700
+EPSON CL-750
+EPSON CL-760 (Experimental)
+EPSON EM-900C
+EPSON EM-930C
+EPSON MC-2000
+EPSON MC-5000
+EPSON MC-7000
+EPSON MC-9000
+EPSON MC-10000
+EPSON MJ-930C
+EPSON MJ-5100C
+EPSON MJ-6000C
+EPSON MJ-8000C
+EPSON PM-700C
+EPSON PM-G700
+EPSON PM-730C
+EPSON PM-740C (Experimental)
+EPSON PM-750C
+EPSON PM-D750
+EPSON PM-760C
+EPSON PM-770C
+EPSON PM-780C
+EPSON PM-790PT
+EPSON PM-800C
+EPSON PM-850PT
+EPSON PM-870C (Experimental)
+EPSON PM-880C
+EPSON PM-930C (Experimental)
+EPSON PM-950C
+EPSON PM-970C (experimental)
+EPSON PM-2000C
+EPSON PM-2200C
+EPSON PM-3000C
+EPSON PM-3300C
+EPSON PM-3500C
+EPSON PM-3700C (Experimental)
+EPSON PM-4000PX
+EPSON PM-5000C
+EPSON PM-7000C
+EPSON PM-9000C
+EPSON PM-10000
+EPSON PX-V500 (experimental)
+EPSON PX-7000
+EPSON PX-9000
HP DeskJet 340
HP DeskJet 400
HP DeskJet 500
@@ -399,7 +1475,16 @@ HP DeskJet 560C
HP DeskJet 600/600C (Single Cartridge)
HP DeskJet 600 series (2 Cartridge)
HP DeskJet 690 series (Photo-Ink capable)
-HP DesignJet 750 (NEW)
+HP DesignJet 230 (NEW)
+HP DesignJet 250 (NEW)
+HP DesignJet 430 (NEW)
+HP DesignJet 450 (NEW)
+HP DesignJet 455 (NEW)
+HP DesignJet 488 (NEW)
+HP DesignJet 700 (NEW)
+HP DesignJet 750
+HP DesignJet 2500 (NEW)
+HP DesignJet 3500 (NEW)
HP DeskJet 810C
HP DeskJet 812C
HP DeskJet 840C
@@ -421,6 +1506,7 @@ HP DeskJet 1600C
HP DeskJet 2000 series
HP DeskJet 2500 series
HP LaserJet II series
+HP LaserJet IIP series
HP LaserJet III series
HP LaserJet 4 series
HP LaserJet 4V, 4Si
@@ -428,6 +1514,773 @@ HP LaserJet 5 series
HP LaserJet 5Si
HP LaserJet 6 series
Lexmark 4076
-Lexmark Z42 (NEW)
-Lexmark Z43 (NEW)
-Lexmark Z52 (NEW)
+Lexmark Z42
+Lexmark Z43
+Lexmark Z52
+Lexmark Z53
+
+The following is the complete list of printers believed to be
+compatible with Gimp-print, along with recommended drivers. Some of
+these printers may work only partially; the specified drivers may not
+support the full range of resolutions, paper sizes, media sources,
+etc. that some of these printers may offer.
+
+Printer Name Driver Name Driver Description
+------- ---- ------ ---- ------ -----------
+Apollo P-2100 pcl-690 HP DeskJet 690 series
+Apollo P-2150 pcl-690 HP DeskJet 690 series
+Apollo P-2200 pcl-690 HP DeskJet 690 series
+Apollo P-2250 pcl-690 HP DeskJet 690 series
+Apollo P-2500 pcl-690 HP DeskJet 690 series
+Apollo P-2550 pcl-690 HP DeskJet 690 series
+Apollo P-2600 pcl-690 HP DeskJet 690 series
+Apollo P-2650 pcl-690 HP DeskJet 690 series
+Apple Color StyleWriter 4100 pcl-apple-4100 HP LaserJet II series
+Apple Color StyleWriter 4500 pcl-apple-4500 HP LaserJet II series
+Apple Color StyleWriter 6500 pcl-apple-6500 HP LaserJet II series
+Apple LaserWriter Select 360 pcl-2 HP LaserJet II series
+Brother DCP-1200 pcl-2 HP LaserJet II series
+Brother HL-4Ve pcl-2 HP LaserJet II series
+Brother HL-10h pcl-4 HP LaserJet 4 series
+Brother HL-10V pcl-3 HP LaserJet III series
+Brother HL-630 pcl-2 HP LaserJet II series
+Brother HL-660 pcl-4 HP LaserJet 4 series
+Brother HL-760 pcl-4 HP LaserJet 4 series
+Brother HL-960 pcl-4 HP LaserJet 4 series
+Brother HL-1040 pcl-2 HP LaserJet II series
+Brother HL-1050 pcl-4 HP LaserJet 4 series
+Brother HL-1060 pcl-4 HP LaserJet 4 series
+Brother HL-1070 pcl-4 HP LaserJet 4 series
+Brother HL-1240 pcl-2 HP LaserJet II series
+Brother HL-1250 pcl-4 HP LaserJet 4 series
+Brother HL-1260 pcl-4 HP LaserJet 4 series
+Brother HL-1270N pcl-4 HP LaserJet 4 series
+Brother HL-1440 pcl-4 HP LaserJet 4 series
+Brother HL-1660e pcl-4 HP LaserJet 4 series
+Brother HL-2060 pcl-4 HP LaserJet 4 series
+Brother MFC-6550MC pcl-2 HP LaserJet II series
+Brother MFC-8300 pcl-3 HP LaserJet III series
+Brother MFC-9500 pcl-2 HP LaserJet II series
+Brother MFC-9600 pcl-2 HP LaserJet II series
+Canon BJ-30 bjc-30 CANON BJC 30
+Canon BJC-50 bjc-50 CANON BJC 50
+Canon BJC-55 bjc-55 CANON BJC 55
+Canon BJC-80 bjc-80 CANON BJC 80
+Canon BJC-85 bjc-85 CANON BJC 85
+Canon BJC-210 bjc-210 CANON BJC 210
+Canon BJC-240 bjc-240 CANON BJC 240
+Canon BJC-250 bjc-250 CANON BJC 250
+Canon BJC-1000 bjc-1000 CANON BJC 1000
+Canon BJC-2000 bjc-2000 CANON BJC 2000
+Canon BJC-2010 bjc-2000 CANON BJC 2000
+Canon BJC-2100 bjc-4300 CANON BJC 4300
+Canon BJC-2110 bjc-2000 CANON BJC 2000
+Canon BJC-3000 bjc-3000 CANON BJC 3000
+Canon BJC-4000 bjc-4300 CANON BJC 4300
+Canon BJC-4300 bjc-4300 CANON BJC 4300
+Canon BJC-4400 bjc-4400 CANON BJC 4400 photo
+Canon BJC-6000 bjc-6000 CANON BJC 6000
+Canon BJC-6100 bjc-6100 CANON BJC 6100
+Canon BJC-6200 bjc-6200 CANON BJC 6200
+Canon BJC-6500 bjc-6500 CANON BJC 6500
+Canon BJC-7000 bjc-7000 CANON BJC 7000
+Canon BJC-7100 bjc-7100 CANON BJC 7100
+Canon BJC-8200 bjc-8200 CANON BJC 8200
+Canon GP 335 pcl-4 HP LaserJet 4 series
+Canon LBP-4sx pcl-3 HP LaserJet III series
+Canon LBP-430 pcl-4l HP LaserJet 4L
+Canon LBP-1000 pcl-6 HP LaserJet 6 series
+Canon LBP-1260 pcl-6 HP LaserJet 6 series
+Canon LBP-1760 pcl-6 HP LaserJet 6 series
+Canon S100 bjc-4300 CANON BJC 4300
+Canon S200 bjc-s200 CANON S200
+Canon S300 bjc-s800 CANON S800
+Canon S400 bjc-s400 CANON S400
+Canon S450 bjc-s450 CANON S450
+Canon S500 bjc-8200 CANON BJC 8200
+Canon S600 bjc-8200 CANON BJC 8200
+Canon S630 bjc-8200 CANON BJC 8200
+Canon S800 bjc-s800 CANON S800
+Canon S4500 bjc-s4500 CANON S4500
+Canon imageRunner 330s pcl-4 HP LaserJet 4 series
+Citizen ProJet II pcl-2 HP LaserJet II series
+DEC 1800 pcl-3 HP LaserJet III series
+DEC LN17 pcl-4 HP LaserJet 4 series
+Epson ActionLaser 1100 pcl-3 HP LaserJet III series
+Epson ActionLaser II pcl-2 HP LaserJet II series
+Epson AcuLaser C2000 pcl-4 HP LaserJet 4 series
+Epson AcuLaser C2000PS pcl-4 HP LaserJet 4 series
+Epson AcuLaser C8500 pcl-4 HP LaserJet 4 series
+Epson AcuLaser C8500PS pcl-4 HP LaserJet 4 series
+Epson AcuLaser C8600 pcl-4 HP LaserJet 4 series
+Epson AcuLaser C8600PS pcl-4 HP LaserJet 4 series
+Epson EPL-5200 pcl-3 HP LaserJet III series
+Epson EPL-5200+ pcl-3 HP LaserJet III series
+Epson EPL-5700 pcl-4 HP LaserJet 4 series
+Epson EPL-5700PS pcl-4 HP LaserJet 4 series
+Epson EPL-5800 pcl-4 HP LaserJet 4 series
+Epson EPL-5800PS pcl-4 HP LaserJet 4 series
+Epson EPL-5900 pcl-4 HP LaserJet 4 series
+Epson EPL-5900PS pcl-4 HP LaserJet 4 series
+Epson EPL-6100 pcl-4 HP LaserJet 4 series
+Epson EPL-6100PS pcl-4 HP LaserJet 4 series
+Epson EPL-7100 pcl-2 HP LaserJet II series
+Epson Stylus C20SX escp2-c20sx EPSON Stylus C20SX
+Epson Stylus C20UX escp2-c20ux EPSON Stylus C20UX
+Epson Stylus C40SX escp2-c40sx EPSON Stylus C40SX
+Epson Stylus C40UX escp2-c40ux EPSON Stylus C40UX
+Epson Stylus C41SX escp2-c41sx EPSON Stylus C41SX
+Epson Stylus C41UX escp2-c41ux EPSON Stylus C41UX
+Epson Stylus C42SX escp2-c42sx EPSON Stylus C42SX
+Epson Stylus C42UX escp2-c42ux EPSON Stylus C42UX
+Epson Stylus C43SX escp2-c43sx EPSON Stylus C43SX
+Epson Stylus C43UX escp2-c43ux EPSON Stylus C43UX
+Epson Stylus C44SX escp2-c44sx EPSON Stylus C44SX
+Epson Stylus C44UX escp2-c44ux EPSON Stylus C44UX
+Epson Stylus C50 escp2-c50 EPSON Stylus C50
+Epson Stylus C60 escp2-c60 EPSON Stylus C60
+Epson Stylus C61 escp2-c61 EPSON Stylus C61
+Epson Stylus C62 escp2-c62 EPSON Stylus C62
+Epson Stylus C63 escp2-c63 EPSON Stylus C63
+Epson Stylus C64 escp2-c64 EPSON Stylus C64
+Epson Stylus C70 escp2-c70 EPSON Stylus C70
+Epson Stylus C80 escp2-c80 EPSON Stylus C80
+Epson Stylus C82 escp2-c82 EPSON Stylus C82
+Epson Stylus C83 escp2-c83 EPSON Stylus C83
+Epson Stylus C84 escp2-c84 EPSON Stylus C84
+Epson Stylus Color escp2 EPSON Stylus Color
+Epson Stylus Color I escp2 EPSON Stylus Color
+Epson Stylus Color II escp2 EPSON Stylus Color
+Epson Stylus Color IIs escp2 EPSON Stylus Color
+Epson Stylus Color PRO escp2-pro EPSON Stylus Color Pro
+Epson Stylus Color 400 escp2-400 EPSON Stylus Color 400
+Epson Stylus Color 440 escp2-440 EPSON Stylus Color 440
+Epson Stylus Color 460 escp2-460 EPSON Stylus Color 460
+Epson Stylus Color 480 escp2-480 EPSON Stylus Color 480
+Epson Stylus Color 500 escp2-500 EPSON Stylus Color 500
+Epson Stylus Color 580 escp2-580 EPSON Stylus Color 580
+Epson Stylus Color 600 escp2-600 EPSON Stylus Color 600
+Epson Stylus Color 640 escp2-640 EPSON Stylus Color 640
+Epson Stylus Color 660 escp2-660 EPSON Stylus Color 660
+Epson Stylus Color 670 escp2-670 EPSON Stylus Color 670
+Epson Stylus Color 680 escp2-680 EPSON Stylus Color 680
+Epson Stylus Color 740 escp2-740 EPSON Stylus Color 740
+Epson Stylus Color 760 escp2-760 EPSON Stylus Color 760
+Epson Stylus Color 777 escp2-777 EPSON Stylus Color 777
+Epson Stylus Color 8 3 escp2-83 EPSON Stylus Color 83
+Epson Stylus Color 800 escp2-800 EPSON Stylus Color 800
+Epson Stylus Color 850 escp2-850 EPSON Stylus Color 850
+Epson Stylus Color 860 escp2-860 EPSON Stylus Color 860
+Epson Stylus Color 880 escp2-880 EPSON Stylus Color 880
+Epson Stylus Color 900 escp2-900 EPSON Stylus Color 900
+Epson Stylus Color 980 escp2-980 EPSON Stylus Color 980
+Epson Stylus Color 1160 escp2-1160 EPSON Stylus Color 1160
+Epson Stylus Color 1500 escp2-1500 EPSON Stylus Color 1500
+Epson Stylus Color 1520 escp2-1520 EPSON Stylus Color 1520
+Epson Stylus Color 3000 escp2-3000 EPSON Stylus Color 3000
+Epson Stylus Photo escp2-photo EPSON Stylus Photo
+Epson Stylus Photo 700 escp2-700 EPSON Stylus Photo 700
+Epson Stylus Photo 720 escp2-720 EPSON Stylus Photo 720
+Epson Stylus Photo 750 escp2-750 EPSON Stylus Photo 750
+Epson Stylus Photo 780 escp2-780 EPSON Stylus Photo 780
+Epson Stylus Photo 785 escp2-785 EPSON Stylus Photo 785EPX
+Epson Stylus Photo 790 escp2-790 EPSON Stylus Photo 790
+Epson Stylus Photo 810 escp2-810 EPSON Stylus Photo 810
+Epson Stylus Photo 820 escp2-820 EPSON Stylus Photo 820
+Epson Stylus Photo 825 escp2-825 EPSON Stylus Photo 825
+Epson Stylus Photo 830 escp2-830 EPSON Stylus Photo 830
+Epson Stylus Photo 870 escp2-870 EPSON Stylus Photo 870
+Epson Stylus Photo 875 escp2-875 EPSON Stylus Photo 875
+Epson Stylus Photo 890 escp2-890 EPSON Stylus Photo 890
+Epson Stylus Photo 895 escp2-895 EPSON Stylus Photo 895
+Epson Stylus Photo 900 escp2-ph900 EPSON Stylus Photo 900
+Epson Stylus Photo 915 escp2-915 EPSON Stylus Photo 915
+Epson Stylus Photo 925 escp2-925 EPSON Stylus Photo 925
+Epson Stylus Photo 950 escp2-950 EPSON Stylus Photo 950
+Epson Stylus Photo 960 escp2-960 EPSON Stylus Photo 960
+Epson Stylus Photo 1200 escp2-1200 EPSON Stylus Photo 1200
+Epson Stylus Photo 1270 escp2-1270 EPSON Stylus Photo 1270
+Epson Stylus Photo 1280 escp2-1280 EPSON Stylus Photo 1280
+Epson Stylus Photo 1290 escp2-1290 EPSON Stylus Photo 1290
+Epson Stylus Photo 2000P escp2-2000 EPSON Stylus Photo 2000P
+Epson Stylus Photo 2100 escp2-2100 EPSON Stylus Photo 2100
+Epson Stylus Photo 2200 escp2-2200 EPSON Stylus Photo 2200
+Epson Stylus Photo EX escp2-ex EPSON Stylus Photo EX
+Epson Stylus Photo EX3 escp2-ex3 EPSON Stylus Photo EX3
+Epson Stylus Photo R200 escp2-r200 EPSON Stylus Photo R200
+Epson Stylus Photo R300 escp2-r300 EPSON Stylus Photo R300
+Epson Stylus Photo RX500 escp2-rx500 EPSON Stylus Photo RX500
+Epson Stylus Photo RX600 escp2-rx600 EPSON Stylus Photo RX600
+Epson Stylus Pro 5000 escp2-5000 EPSON Stylus Pro 5000
+Epson Stylus Pro 5500 escp2-5500 EPSON Stylus Pro 5500
+Epson Stylus Pro 7000 escp2-7000 EPSON Stylus Pro 7000
+Epson Stylus Pro 7500 escp2-7500 EPSON Stylus Pro 7500
+Epson Stylus Pro 7600 escp2-7600 EPSON Stylus Pro 7600
+Epson Stylus Pro 9000 escp2-9000 EPSON Stylus Pro 9000
+Epson Stylus Pro 9500 escp2-9500 EPSON Stylus Pro 9500
+Epson Stylus Pro 9600 escp2-9600 EPSON Stylus Pro 9600
+Epson Stylus Pro 10000 escp2-10000 EPSON Stylus Pro 10000
+Epson Stylus Color Pro XL escp2-pro-xl EPSON Stylus Color Pro XL
+Epson Stylus Scan 2000 escp2-scan2000 EPSON Stylus Scan 2000
+Epson Stylus Scan 2500 escp2-scan2500 EPSON Stylus Scan 2500
+Epson Stylus CX3100 escp2-cx3100 EPSON Stylus CX-3100
+Epson Stylus CX3200 escp2-cx3200 EPSON Stylus CX-3200
+Epson Stylus CX5100 escp2-cx5100 EPSON Stylus CX-5100
+Epson Stylus CX5200 escp2-cx5200 EPSON Stylus CX-5200
+Epson Stylus CX5300 escp2-cx5300 EPSON Stylus CX-5300
+Epson Stylus CX5400 escp2-cx5400 EPSON Stylus CX-5400
+Epson Stylus CX6300 escp2-cx6300 EPSON Stylus CX-6300
+Epson Stylus CX6400 escp2-cx6400 EPSON Stylus CX-6400
+Epson Stylus CX8300 escp2-cx8300 EPSON Stylus CX-8300
+Epson Stylus CX8400 escp2-cx8400 EPSON Stylus CX-8400
+Epson CL-700 escp2-cl700 EPSON CL-700
+Epson CL-750 escp2-cl750 EPSON CL-750
+Epson CL-760 escp2-cl760 EPSON CL-760
+Epson EM-900C escp2-em900c EPSON EM-900C
+Epson EM-930C escp2-em930c EPSON EM-930C
+Epson MC-2000 escp2-mc2000 EPSON MC-2000
+Epson MC-5000 escp2-mc5000 EPSON MC-5000
+Epson MC-7000 escp2-mc7000 EPSON MC-7000
+Epson MC-9000 escp2-mc9000 EPSON MC-9000
+Epson MC-10000 escp2-mc10000 EPSON MC-10000
+Epson MJ-930C escp2-mj930c EPSON MJ-930C
+Epson MJ-5100C escp2-mj5100c EPSON MJ-5100C
+Epson MJ-6000C escp2-mj6000c EPSON MJ-6000C
+Epson MJ-8000C escp2-mj8000c EPSON MJ-8000C
+Epson PM-700C escp2-pm700c EPSON PM-700C
+Epson PM-G700 escp2-pmg700 EPSON PM-G700
+Epson PM-730C escp2-pm730c EPSON PM-730C
+Epson PM-740C escp2-pm740c EPSON PM-740C
+Epson PM-750C escp2-pm750c EPSON PM-750C
+Epson PM-D750 escp2-pmd750 EPSON PM-D750
+Epson PM-760C escp2-pm760c EPSON PM-760C
+Epson PM-770C escp2-pm770c EPSON PM-770C
+Epson PM-780C escp2-pm780c EPSON PM-780C
+Epson PM-790PT escp2-pm790pt EPSON PM-790PT
+Epson PM-800C escp2-pm800c EPSON PM-800C
+Epson PM-850PT escp2-pm850pt EPSON PM-850PT
+Epson PM-870C escp2-pm870c EPSON PM-870C
+Epson PM-880C escp2-pm880c EPSON PM-880C
+Epson PM-930C escp2-pm930c EPSON PM-930C
+Epson PM-950C escp2-pm950c EPSON PM-950C
+Epson PM-970C escp2-pm970c EPSON PM-970C
+Epson PM-2000C escp2-pm2000c EPSON PM-2000C
+Epson PM-2200C escp2-pm2200c EPSON PM-2200C
+Epson PM-3000C escp2-pm3000c EPSON PM-3000C
+Epson PM-3300C escp2-pm3300c EPSON PM-3300C
+Epson PM-3500C escp2-pm3500c EPSON PM-3500C
+Epson PM-3700C escp2-pm3700c EPSON PM-3700C
+Epson PM-4000PX escp2-pm4000px EPSON PM-4000PX
+Epson PM-5000C escp2-pm5000c EPSON PM-5000C
+Epson PM-7000C escp2-pm7000c EPSON PM-7000C
+Epson PM-9000C escp2-pm9000c EPSON PM-9000C
+Epson PM-10000 escp2-pm10000 EPSON PM-10000
+Epson PX-V500 escp2-pxv500 EPSON PX-V500
+Epson PX-7000 escp2-px7000 EPSON PX-7000
+Epson PX-9000 escp2-px9000 EPSON PX-9000
+Fujitsu PrintPartner 10V pcl-4 HP LaserJet 4 series
+Fujitsu PrintPartner 16DV pcl-4 HP LaserJet 4 series
+Fujitsu PrintPartner 20W pcl-6 HP LaserJet 6 series
+Fujitsu PrintPartner 8000 pcl-3 HP LaserJet III series
+HP 2000C pcl-2000 HP DeskJet 2000 series
+HP 2500C pcl-2500 HP DeskJet 2500 series
+HP 2500CM pcl-2500 HP DeskJet 2500 series
+HP Business Inkjet 2200 pcl-900 HP DeskJet 900 series
+HP Business Inkjet 2230 pcl-900 HP DeskJet 900 series
+HP Business Inkjet 2250 pcl-900 HP DeskJet 900 series
+HP Business Inkjet 2250TN pcl-900 HP DeskJet 900 series
+HP Business Inkjet 2280 pcl-900 HP DeskJet 900 series
+HP Color Inkjet Printer CP1160 pcl-900 HP DeskJet 900 series
+HP Color Inkjet Printer CP1700 pcl-900 HP DeskJet 900 series
+HP Color LaserJet 5 pcl-3 HP LaserJet III series
+HP Color LaserJet 2500 pcl-4 HP LaserJet 4 series
+HP Color LaserJet 4500 pcl-4 HP LaserJet 4 series
+HP Color LaserJet 4550 pcl-4 HP LaserJet 4 series
+HP Color LaserJet 4600 pcl-4 HP LaserJet 4 series
+HP Color LaserJet 5000 pcl-4 HP LaserJet 4 series
+HP Color LaserJet 5500 pcl-4 HP LaserJet 4 series
+HP Color LaserJet 8550GN pcl-4 HP LaserJet 4 series
+HP DesignJet 230 pcl-desnj-230 HP DesignJet 230
+HP DesignJet 250C pcl-desnj-250 HP DesignJet 250
+HP DesignJet 430 pcl-desnj-430 HP DesignJet 430
+HP DesignJet 450C pcl-desnj-450 HP DesignJet 450
+HP DesignJet 455CA pcl-desnj-455 HP DesignJet 455
+HP DesignJet 488CA pcl-desnj-488 HP DesignJet 488
+HP DesignJet 700 pcl-desnj-700 HP DesignJet 700
+HP DesignJet 750C pcl-750 HP DesignJet 750C
+HP DesignJet 750C Plus pcl-750 HP DesignJet 750C
+HP DesignJet 2500CP pcl-desnj-2500 HP DesignJet 2500
+HP DesignJet 3500CP pcl-desnj-3500 HP DesignJet 3500
+HP DesignJet ColorPro CAD pcl-2500 HP DesignJet ColorPro CAD
+HP DeskJet 340C pcl-340 HP DeskJet 340
+HP DeskJet 400 pcl-400 HP DeskJet 400
+HP DeskJet 400C pcl-540 HP DeskJet 540C
+HP DeskJet 420C pcl-540 HP DeskJet 540C
+HP DeskJet 450 pcl-900 HP DeskJet 900 series
+HP DeskJet 500 pcl-500 HP DeskJet 500
+HP DeskJet 500C pcl-501 HP DeskJet 500C
+HP DeskJet 505J Plus pcl-500 HP DeskJet 500
+HP DeskJet 510 pcl-500 HP DeskJet 500
+HP DeskJet 520 pcl-520 HP DeskJet 520
+HP DeskJet 540C pcl-540 HP DeskJet 540C
+HP DeskJet 550C pcl-550 HP DeskJet 550C
+HP DeskJet 560C pcl-560 HP DeskJet 560C
+HP DeskJet 600 pcl-600 HP DeskJet 600/600C
+HP DeskJet 610C pcl-601 HP DeskJet 690 series
+HP DeskJet 610CL pcl-601 HP DeskJet 690 series
+HP DeskJet 612C pcl-601 HP DeskJet 690 series
+HP DeskJet 640C pcl-601 HP DeskJet 690 series
+HP DeskJet 648C pcl-601 HP DeskJet 690 series
+HP DeskJet 660C pcl-601 HP DeskJet 600 series
+HP DeskJet 670C pcl-601 HP DeskJet 600 series
+HP DeskJet 670TV pcl-601 HP DeskJet 600 series
+HP DeskJet 672C pcl-601 HP DeskJet 600 series
+HP DeskJet 680C pcl-601 HP DeskJet 600 series
+HP DeskJet 682C pcl-601 HP DeskJet 600 series
+HP DeskJet 690C pcl-690 HP DeskJet 690 series
+HP DeskJet 692C pcl-690 HP DeskJet 690 series
+HP DeskJet 693C pcl-690 HP DeskJet 690 series
+HP DeskJet 694C pcl-690 HP DeskJet 690 series
+HP DeskJet 695C pcl-690 HP DeskJet 690 series
+HP DeskJet 697C pcl-690 HP DeskJet 690 series
+HP DeskJet 810C pcl-810 HP DeskJet 810C
+HP DeskJet 812C pcl-812 HP DeskJet 812C
+HP DeskJet 815C pcl-812 HP DeskJet 812C
+HP DeskJet 816C pcl-812 HP DeskJet 812C
+HP DeskJet 825C pcl-845 HP DeskJet 845C
+HP DeskJet 830C pcl-810 HP DeskJet 810C
+HP DeskJet 832C pcl-810 HP DeskJet 810C
+HP DeskJet 840C pcl-840 HP DeskJet 840C
+HP DeskJet 841C pcl-840 HP DeskJet 840C
+HP DeskJet 842C pcl-842 HP DeskJet 842C
+HP DeskJet 843C pcl-842 HP DeskJet 842C
+HP DeskJet 845C pcl-845 HP DeskJet 845C
+HP DeskJet 850C pcl-850 HP DeskJet 850C
+HP DeskJet 855C pcl-855 HP DeskJet 855C
+HP DeskJet 870C pcl-870 HP DeskJet 870C
+HP DeskJet 880C pcl-810 HP DeskJet 810C
+HP DeskJet 882C pcl-810 HP DeskJet 810C
+HP DeskJet 890C pcl-890 HP DeskJet 890C
+HP DeskJet 895C pcl-895 HP DeskJet 895C
+HP DeskJet 916C pcl-900 HP DeskJet 900 series
+HP DeskJet 920C pcl-900 HP DeskJet 900 series
+HP DeskJet 930C pcl-900 HP DeskJet 900 series
+HP DeskJet 932C pcl-900 HP DeskJet 900 series
+HP DeskJet 933C pcl-900 HP DeskJet 900 series
+HP DeskJet 934C pcl-900 HP DeskJet 900 series
+HP DeskJet 935C pcl-900 HP DeskJet 900 series
+HP DeskJet 940C pcl-900 HP DeskJet 900 series
+HP DeskJet 948C pcl-900 HP DeskJet 900 series
+HP DeskJet 950C pcl-900 HP DeskJet 900 series
+HP DeskJet 952C pcl-900 HP DeskJet 900 series
+HP DeskJet 955C pcl-900 HP DeskJet 900 series
+HP DeskJet 957C pcl-900 HP DeskJet 900 series
+HP DeskJet 959C pcl-900 HP DeskJet 900 series
+HP DeskJet 960C pcl-900 HP DeskJet 900 series
+HP DeskJet 970C pcl-900 HP DeskJet 900 series
+HP DeskJet 975C pcl-900 HP DeskJet 900 series
+HP DeskJet 980C pcl-900 HP DeskJet 900 series
+HP DeskJet 990C pcl-900 HP DeskJet 900 series
+HP DeskJet 995C pcl-900 HP DeskJet 900 series
+HP DeskJet 1100C pcl-1100 HP DeskJet 1100C
+HP DeskJet 1120C pcl-1120 HP DeskJet 1120C
+HP DeskJet 1125C pcl-1120 HP DeskJet 1120C
+HP DeskJet 1200C pcl-1200 HP DeskJet 1200C
+HP DeskJet 1220C pcl-1220 HP DeskJet 1220C
+HP DeskJet 1600C pcl-1600 HP DeskJet 1600C
+HP DeskJet 1600CM pcl-1600 HP DeskJet 1600C
+HP DeskJet 3810 pcl-900 HP DeskJet 900 series
+HP DeskJet 3816 pcl-900 HP DeskJet 900 series
+HP DeskJet 3820 pcl-900 HP DeskJet 900 series
+HP DeskJet 3822 pcl-900 HP DeskJet 900 series
+HP DeskJet 5550 pcl-900 HP DeskJet 900 series
+HP DeskJet 5551 pcl-900 HP DeskJet 900 series
+HP DeskJet 6122 pcl-900 HP DeskJet 900 series
+HP DeskJet 6127 pcl-900 HP DeskJet 900 series
+HP DeskJet 9300 pcl-900 HP DeskJet 900 series
+HP E-printer E20 pcl-601 HP DeskJet 600 series
+HP LaserJet 2 pcl-2 HP LaserJet II series
+HP LaserJet 2D pcl-2 HP LaserJet II series
+HP LaserJet 2P pcl-2p HP LaserJet IIP series
+HP LaserJet 2P Plus pcl-2p HP LaserJet IIP series
+HP LaserJet 3 pcl-3 HP LaserJet III series
+HP LaserJet 3D pcl-3 HP LaserJet III series
+HP LaserJet 3P w/ PCL5 pcl-4l HP LaserJet 4L
+HP LaserJet 3P w/PS pcl-3 HP LaserJet III series
+HP LaserJet 4 pcl-4 HP LaserJet 4 series
+HP LaserJet 4 Plus pcl-4 HP LaserJet 4 series
+HP LaserJet 4L pcl-4l HP LaserJet 4L
+HP LaserJet 4M pcl-4 HP LaserJet 4 series
+HP LaserJet 4ML pcl-4 HP LaserJet 4 series
+HP LaserJet 4P pcl-4 HP LaserJet 4 series
+HP LaserJet 4Si pcl-4 HP LaserJet 4 series
+HP LaserJet 4V pcl-4v HP LaserJet 4V, 4Si
+HP LaserJet 5 pcl-5 HP LaserJet 5 series
+HP LaserJet 5L pcl-4 HP LaserJet 4 series
+HP LaserJet 5M pcl-4 HP LaserJet 4 series
+HP LaserJet 5MP pcl-4 HP LaserJet 4 series
+HP LaserJet 5P pcl-5 HP LaserJet 5 series
+HP LaserJet 5Si pcl-5si HP LaserJet 5Si
+HP LaserJet 6 pcl-6 HP LaserJet 6 series
+HP LaserJet 6L pcl-4 HP LaserJet 4 series
+HP LaserJet 6MP pcl-4 HP LaserJet 4 series
+HP LaserJet 6P pcl-4 HP LaserJet 4 series
+HP LaserJet 1012 pcl-5 HP LaserJet 5 series
+HP LaserJet 1100 pcl-6 HP LaserJet 6 series
+HP LaserJet 1100A pcl-6 HP LaserJet 6 series
+HP LaserJet 1150 pcl-6 HP LaserJet 6 series
+HP LaserJet 1200 pcl-6 HP LaserJet 6 series
+HP LaserJet 1220 pcl-6 HP LaserJet 6 series
+HP LaserJet 1300 pcl-6 HP LaserJet 6 series
+HP LaserJet 2100 pcl-6 HP LaserJet 6 series
+HP LaserJet 2100M pcl-6 HP LaserJet 6 series
+HP LaserJet 2200 pcl-6 HP LaserJet 6 series
+HP LaserJet 2300 pcl-6 HP LaserJet 6 series
+HP LaserJet 3200 pcl-6 HP LaserJet 6 series
+HP LaserJet 3200m pcl-6 HP LaserJet 6 series
+HP LaserJet 3200se pcl-6 HP LaserJet 6 series
+HP LaserJet 3300 MFP pcl-6 HP LaserJet 6 series
+HP LaserJet 3310 MFP pcl-6 HP LaserJet 6 series
+HP LaserJet 3320 MFP pcl-6 HP LaserJet 6 series
+HP LaserJet 3320N MFP pcl-6 HP LaserJet 6 series
+HP LaserJet 3330 MFP pcl-6 HP LaserJet 6 series
+HP LaserJet 4000 pcl-6 HP LaserJet 6 series
+HP LaserJet 4050 pcl-6 HP LaserJet 6 series
+HP LaserJet 4100 pcl-6 HP LaserJet 6 series
+HP LaserJet 4200 pcl-6 HP LaserJet 6 series
+HP LaserJet 4300 pcl-6 HP LaserJet 6 series
+HP LaserJet 5000 pcl-6 HP LaserJet 6 series
+HP LaserJet 5100 pcl-6 HP LaserJet 6 series
+HP LaserJet 8000 pcl-6 HP LaserJet 6 series
+HP LaserJet 8100 pcl-6 HP LaserJet 6 series
+HP LaserJet 8150 pcl-6 HP LaserJet 6 series
+HP LaserJet 9000 pcl-6 HP LaserJet 6 series
+HP Mopier 240 pcl-6 HP LaserJet 6 series
+HP Mopier 320 pcl-6 HP LaserJet 6 series
+HP OfficeJet pcl-520 HP DeskJet 520
+HP OfficeJet 300 pcl-520 HP DeskJet 520
+HP OfficeJet 330 pcl-520 HP DeskJet 520
+HP OfficeJet 350 pcl-520 HP DeskJet 520
+HP OfficeJet 500 pcl-601 HP DeskJet 600 series
+HP OfficeJet 520 pcl-601 HP DeskJet 600 series
+HP OfficeJet 570 pcl-601 HP DeskJet 600 series
+HP OfficeJet 580 pcl-601 HP DeskJet 600 series
+HP OfficeJet 590 pcl-601 HP DeskJet 600 series
+HP OfficeJet 600 pcl-601 HP DeskJet 600 series
+HP OfficeJet 610 pcl-601 HP DeskJet 600 series
+HP OfficeJet 625 pcl-601 HP DeskJet 600 series
+HP OfficeJet 630 pcl-601 HP DeskJet 600 series
+HP OfficeJet 635 pcl-601 HP DeskJet 600 series
+HP OfficeJet 700 pcl-690 HP DeskJet 690 series
+HP OfficeJet 710 pcl-690 HP DeskJet 690 series
+HP OfficeJet 720 pcl-690 HP DeskJet 690 series
+HP OfficeJet 725 pcl-690 HP DeskJet 690 series
+HP OfficeJet 5105 pcl-900 HP DeskJet 900 series
+HP OfficeJet 5110 pcl-900 HP DeskJet 900 series
+HP OfficeJet 5110xi pcl-900 HP DeskJet 900 series
+HP OfficeJet 6105 pcl-900 HP DeskJet 900 series
+HP OfficeJet 6110 pcl-900 HP DeskJet 900 series
+HP OfficeJet 7110 pcl-900 HP DeskJet 900 series
+HP OfficeJet 7130 pcl-900 HP DeskJet 900 series
+HP OfficeJet 7140 pcl-900 HP DeskJet 900 series
+HP OfficeJet D125 pcl-900 HP DeskJet 900 series
+HP OfficeJet D135 pcl-900 HP DeskJet 900 series
+HP OfficeJet D145 pcl-900 HP DeskJet 900 series
+HP OfficeJet D155 pcl-900 HP DeskJet 900 series
+HP OfficeJet G55 pcl-900 HP DeskJet 900 series
+HP OfficeJet G85 pcl-900 HP DeskJet 900 series
+HP OfficeJet G95 pcl-900 HP DeskJet 900 series
+HP OfficeJet K60 pcl-900 HP DeskJet 900 series
+HP OfficeJet K60xi pcl-900 HP DeskJet 900 series
+HP OfficeJet K80 pcl-900 HP DeskJet 900 series
+HP OfficeJet K80xi pcl-900 HP DeskJet 900 series
+HP OfficeJet LX pcl-520 HP DeskJet 520
+HP OfficeJet Pro 1150C pcl-850 HP DeskJet 850C
+HP OfficeJet Pro 1170C pcl-890 HP DeskJet 890C
+HP OfficeJet Pro 1175C pcl-890 HP DeskJet 890C
+HP OfficeJet R40 pcl-810 HP DeskJet 810C
+HP OfficeJet R45 pcl-810 HP DeskJet 810C
+HP OfficeJet R60 pcl-810 HP DeskJet 810C
+HP OfficeJet R65 pcl-810 HP DeskJet 810C
+HP OfficeJet R80 pcl-810 HP DeskJet 810C
+HP OfficeJet T45 pcl-810 HP DeskJet 810C
+HP OfficeJet T65 pcl-810 HP DeskJet 810C
+HP OfficeJet V40 pcl-900 HP DeskJet 900 series
+HP OfficeJet V40xi pcl-900 HP DeskJet 900 series
+HP PhotoSmart P100 pcl-900 HP DeskJet 900 series
+HP PhotoSmart P130 pcl-900 HP DeskJet 900 series
+HP PhotoSmart P230 pcl-900 HP DeskJet 900 series
+HP PhotoSmart P1000 pcl-P1000 HP PhotoSmart P1000
+HP PhotoSmart P1100 pcl-P1100 HP PhotoSmart P1100
+HP PhotoSmart P1115 pcl-900 HP DeskJet 900 series
+HP PhotoSmart P1215 pcl-900 HP DeskJet 900 series
+HP PhotoSmart P1218 pcl-900 HP DeskJet 900 series
+HP PhotoSmart P1315 pcl-900 HP DeskJet 900 series
+HP PhotoSmart 7150 pcl-900 HP DeskJet 900 series
+HP PhotoSmart 7345 pcl-900 HP DeskJet 900 series
+HP PhotoSmart 7350 pcl-900 HP DeskJet 900 series
+HP PhotoSmart 7550 pcl-900 HP DeskJet 900 series
+HP PSC 370 pcl-690 HP DeskJet 690 series
+HP PSC 380 pcl-690 HP DeskJet 690 series
+HP PSC 500 pcl-810 HP DeskJet 810C
+HP PSC 750 pcl-900 HP DeskJet 900 series
+HP PSC 950 pcl-900 HP DeskJet 900 series
+HP PSC 950xi pcl-900 HP DeskJet 900 series
+HP PSC 2110 pcl-900 HP DeskJet 900 series
+HP PSC 2150 pcl-900 HP DeskJet 900 series
+HP PSC 2210 pcl-900 HP DeskJet 900 series
+IBM 4019 pcl-2 HP LaserJet II series
+IBM 4029 030 LaserPrinter 10 pcl-3 HP LaserJet III series
+IBM Infoprint 12 pcl-6 HP LaserJet 6 series
+IBM Page Printer 3112 pcl-4 HP LaserJet 4 series
+Infotec 4651 MF pcl-6 HP LaserJet 6 series
+Kyocera F-1010 pcl-2 HP LaserJet II series
+Kyocera FS-600 pcl-4 HP LaserJet 4 series
+Kyocera FS-600 KPDL 2 pcl-4 HP LaserJet 4 series
+Kyocera FS-680 pcl-4 HP LaserJet 4 series
+Kyocera FS-800 pcl-4 HP LaserJet 4 series
+Kyocera FS-1000 pcl-4 HP LaserJet 4 series
+Kyocera FS-1000+ pcl-4 HP LaserJet 4 series
+Kyocera FS-1010 pcl-4 HP LaserJet 4 series
+Kyocera FS-1050 pcl-4 HP LaserJet 4 series
+Kyocera FS-1200 pcl-4 HP LaserJet 4 series
+Kyocera FS-1600 pcl-4 HP LaserJet 4 series
+Kyocera FS-1600+ pcl-4 HP LaserJet 4 series
+Kyocera FS-1700 pcl-4 HP LaserJet 4 series
+Kyocera FS-1700+ pcl-4 HP LaserJet 4 series
+Kyocera FS-1750 pcl-4 HP LaserJet 4 series
+Kyocera FS-1800 pcl-4 HP LaserJet 4 series
+Kyocera FS-1800+ pcl-4 HP LaserJet 4 series
+Kyocera FS-1900 pcl-4 HP LaserJet 4 series
+Kyocera FS-3500 pcl-3 HP LaserJet III series
+Kyocera FS-3600 pcl-4 HP LaserJet 4 series
+Kyocera FS-3600+ pcl-4 HP LaserJet 4 series
+Kyocera FS-3700 pcl-4 HP LaserJet 4 series
+Kyocera FS-3700+ pcl-4 HP LaserJet 4 series
+Kyocera FS-3750 pcl-6 HP LaserJet 6 series
+Kyocera FS-3800 pcl-4 HP LaserJet 4 series
+Kyocera FS-5800C pcl-4 HP LaserJet 4 series
+Kyocera FS-5900C pcl-4 HP LaserJet 4 series
+Kyocera FS-6500 pcl-3 HP LaserJet III series
+Kyocera FS-6500+ pcl-3 HP LaserJet III series
+Kyocera FS-6700 pcl-4 HP LaserJet 4 series
+Kyocera FS-7000 pcl-4 HP LaserJet 4 series
+Kyocera FS-7000+ pcl-4 HP LaserJet 4 series
+Kyocera FS-8000C pcl-4 HP LaserJet 4 series
+Kyocera FS-9000 pcl-4 HP LaserJet 4 series
+Kyocera FS-9100DN pcl-4 HP LaserJet 4 series
+Kyocera FS-9500DN pcl-4 HP LaserJet 4 series
+Kyocera KM-1530 pcl-4 HP LaserJet 4 series
+Kyocera KM-1810 pcl-4 HP LaserJet 4 series
+Kyocera KM-2030 pcl-4 HP LaserJet 4 series
+Kyocera KM-2530 pcl-4 HP LaserJet 4 series
+Kyocera KM-3530 pcl-4 HP LaserJet 4 series
+Kyocera KM-4230 pcl-4 HP LaserJet 4 series
+Kyocera KM-4530 pcl-4 HP LaserJet 4 series
+Kyocera KM-5230 pcl-4 HP LaserJet 4 series
+Kyocera KM-5530 pcl-4 HP LaserJet 4 series
+Kyocera KM-6230 pcl-4 HP LaserJet 4 series
+Lexmark 4076 lexmark-4076 Lexmark 4076
+Lexmark Optra E pcl-4 HP LaserJet 4 series
+Lexmark Optra E+ pcl-4 HP LaserJet 4 series
+Lexmark Valuewriter 300 pcl-2 HP LaserJet II series
+Lexmark Z42 lexmark-z42 Lexmark Z42
+Lexmark Z43 lexmark-z43 Lexmark Z43
+Lexmark Z52 lexmark-z52 Lexmark Z52
+Lexmark Z53 lexmark-z53 Lexmark Z53
+Minolta PagePro 6 pcl-4 HP LaserJet 4 series
+Minolta PagePro 6e pcl-4 HP LaserJet 4 series
+Minolta PagePro 6ex pcl-4 HP LaserJet 4 series
+Minolta PagePro 8 pcl-4 HP LaserJet 4 series
+Minolta PagePro 8L pcl-2 HP LaserJet II series
+Minolta PagePro 1100 pcl-6 HP LaserJet 6 series
+NEC SuperScript 660i pcl-4 HP LaserJet 4 series
+NEC SuperScript 860 pcl-2 HP LaserJet II series
+NEC SuperScript 870 pcl-2 HP LaserJet II series
+NEC SuperScript 1260 pcl-2 HP LaserJet II series
+NEC SuperScript 1800 pcl-4 HP LaserJet 4 series
+Okidata OL400 pcl-2 HP LaserJet II series
+Okidata OL400e pcl-2 HP LaserJet II series
+Okidata OL400ex pcl-2 HP LaserJet II series
+Okidata OL410e pcl-4 HP LaserJet 4 series
+Okidata OL600e pcl-2 HP LaserJet II series
+Okidata OL610e/S pcl-2 HP LaserJet II series
+Okidata OL800 pcl-2 HP LaserJet II series
+Okidata OL810ex pcl-4 HP LaserJet 4 series
+Okidata Okipage 6e pcl-4 HP LaserJet 4 series
+Okidata Okipage 6ex pcl-4 HP LaserJet 4 series
+Okidata Okipage 8p pcl-4 HP LaserJet 4 series
+Okidata Okipage 10e pcl-4 HP LaserJet 4 series
+Okidata Okipage 10ex pcl-4 HP LaserJet 4 series
+Okidata Okipage 14ex pcl-4 HP LaserJet 4 series
+Okidata Super 6e pcl-4l HP LaserJet 4L
+Olivetti JP350S pcl-2 HP LaserJet II series
+Olivetti PG 306 pcl-2 HP LaserJet II series
+PCPI 1030 pcl-2 HP LaserJet II series
+Panasonic KX-P4410 pcl-2 HP LaserJet II series
+Panasonic KX-P4450 pcl-3 HP LaserJet III series
+Panasonic KX-P6150 pcl-2 HP LaserJet II series
+Panasonic KX-P6500 pcl-2 HP LaserJet II series
+Raven LP-410 pcl-2 HP LaserJet II series
+Ricoh Aficio 220 pcl-6 HP LaserJet 6 series
+Ricoh Aficio 401 pcl-4 HP LaserJet 4 series
+Ricoh Aficio 700 pcl-4 HP LaserJet 4 series
+Samsung ML-85 pcl-4 HP LaserJet 4 series
+Samsung ML-4600 pcl-6 HP LaserJet 6 series
+Samsung ML-5000a pcl-4 HP LaserJet 4 series
+Samsung ML-6000 pcl-4 HP LaserJet 4 series
+Samsung ML-6100 pcl-4 HP LaserJet 4 series
+Samsung ML-7000 pcl-6 HP LaserJet 6 series
+Samsung ML-7000N pcl-6 HP LaserJet 6 series
+Samsung ML-7000P pcl-6 HP LaserJet 6 series
+Samsung ML-7050 pcl-6 HP LaserJet 6 series
+Samsung QL-5100A pcl-4 HP LaserJet 4 series
+Samsung QL-6050 pcl-4 HP LaserJet 4 series
+Seiko SpeedJET 200 pcl-2 HP LaserJet II series
+Sharp AR-161 pcl-6 HP LaserJet 6 series
+Sony IJP-V100 pcl-601 HP DeskJet 600 series
+Star LS-04 pcl-2 HP LaserJet II series
+Star LaserPrinter 8 pcl-2 HP LaserJet II series
+Tally MT908 pcl-3 HP LaserJet III series
+Xerox Able 1406 pcl-4 HP LaserJet 4 series
+Xerox DocuPrint C20 pcl-4 HP LaserJet 4 series
+Xerox DocuPrint P8e pcl-4 HP LaserJet 4 series
+Xerox DocuPrint P12 pcl-2 HP LaserJet II series
+Xerox DocuPrint P1202 pcl-6 HP LaserJet 6 series
+Xerox DocuPrint 4508 pcl-4 HP LaserJet 4 series
+Xerox DocuPrint N4512 pcl-4 HP LaserJet 4 series
+Xerox DocuPrint N4512 PS pcl-4 HP LaserJet 4 series
+Xerox Document Centre 400 pcl-4 HP LaserJet 4 series
+Generic PCL 4 Printer pcl-2 HP LaserJet II series
+Generic PCL 5 Printer pcl-4 HP LaserJet 4 series
+Generic PCL 5c Printer pcl-4 HP LaserJet 4 series
+Generic PCL 5e Printer pcl-4 HP LaserJet 4 series
+Generic PCL 6/PCL XL Printer pcl-6 HP LaserJet 6 series
+================================================================
+
+Printer-Specific Notes:
+
+ * The Epson Stylus C70, C80, and C82 will give better results
+ using Three Color Composite printing on Premium Glossy Photo
+ Paper and Premium Semigloss. Epson's proprietary drivers do
+ this on these papers. The black ink is formulated differently
+ from the others, and does not adhere properly to these special
+ papers.
+
+ * The Epson Stylus C70, C80, and C82 appear to support resolutions
+ of 1440x1440 and 2880x1440, but these resolutions may not yield
+ any improvement over 2880x720. Experiments suggest that
+ 1440x1440 yields slightly better results than 2880x720 on Epson
+ Photo Paper, but somewhat inferior results on Premium Glossy
+ Photo Paper. 2880x1440 yields essentially no additional
+ improvement on Photo Paper, and intermediate results on Premium
+ Glossy Photo Paper.
+
+ We expect that 1440x1440 would yield maximum improvement over
+ 2880x720 on line art with very fine detail. It is unlikely that
+ 2880x1440 would yield any significant additional improvement.
+
+ Note that these resolutions are not officially supported by
+ Epson on the C70 and C80, and may not work on all C70 and C80
+ printers.
+
+ * Many Epson printers (specifically, the Epson Stylus Color 740
+ and all newer printers) will not respond to ASCII text without a
+ special "activation" sequence (specifically, this command takes
+ the printers out of "packet mode"). A brand new printer, or one
+ that has been connected to a Windows system, may or may not work
+ in packet mode. Therefore, the common suggestion to test a
+ printer port by sending plain text to it may not work for these
+ printers; failure to print in this fashion is not a positive
+ indication that the printer or the connection is malfunctioning.
+ These printers are, however, able to print plain text *after*
+ the activation sequence is sent.
+
+ A suggestion would be to use the escputil command to print a
+ test pattern:
+
+ escputil -n -u -P printer
+
+ or
+
+ escputil -n -u -r /dev/lp0
+
+ The `-u' option will send the activation sequence. In addition
+ to printing the test pattern (if at least unidirectional
+ communication is set up), this will enable printing plain ASCII
+ text, at least until the printer is powered off (or used under
+ Windows).
+
+ To test bidirectional communication, the command
+
+ escputil -i -u -r /dev/lp0
+
+ is a good choice, as it will print (to the screen) the amount of
+ ink in the printer.
+
+ Note that this activation sequence is both unnecessary and
+ incorrect on older printers.
+
+ The current list of printers for which the activation sequence
+ must be sent is:
+
+ EPSON Stylus C20SX
+ EPSON Stylus C20UX
+ EPSON Stylus C40SX
+ EPSON Stylus C40UX
+ EPSON Stylus C41SX
+ EPSON Stylus C41UX
+ EPSON Stylus C42SX
+ EPSON Stylus C42UX
+ EPSON Stylus C50
+ EPSON Stylus C60
+ EPSON Stylus C61
+ EPSON Stylus C62
+ EPSON Stylus C70
+ EPSON Stylus C80
+ EPSON Stylus C82
+ EPSON Stylus Color 440
+ EPSON Stylus Color 460
+ EPSON Stylus Color 480
+ EPSON Stylus Color 580
+ EPSON Stylus Color 640
+ EPSON Stylus Color 660
+ EPSON Stylus Color 670
+ EPSON Stylus Color 680
+ EPSON Stylus Color 740
+ EPSON Stylus Color 760
+ EPSON Stylus Color 777
+ EPSON Stylus Color 860
+ EPSON Stylus Color 880
+ EPSON Stylus Color 83
+ EPSON Stylus Color 900
+ EPSON Stylus Color 980
+ EPSON Stylus Color 1160
+ EPSON Stylus Photo 720
+ EPSON Stylus Photo 750
+ EPSON Stylus Photo 780/785/790
+ EPSON Stylus Photo 810/820
+ EPSON Stylus Photo 825/830
+ EPSON Stylus Photo 870/875
+ EPSON Stylus Photo 890/895
+ EPSON Stylus Photo 900
+ EPSON Stylus Photo 915
+ EPSON Stylus Photo 925
+ EPSON Stylus Photo 950
+ EPSON Stylus Photo 960
+ EPSON Stylus Photo 1200
+ EPSON Stylus Photo 1270
+ EPSON Stylus Photo 1280/1290
+ EPSON Stylus Photo 2000P
+ EPSON Stylus Photo 2100
+ EPSON Stylus Photo 2200
+ EPSON Stylus Scan 2000
+ EPSON Stylus Scan 2500
+ EPSON Stylus CX-3100
+ EPSON Stylus CX-3200
+ EPSON Stylus CX-5100
+ EPSON Stylus CX-5200
+ EPSON Stylus CX-6300
+ EPSON Stylus CX-6400
+ EPSON Stylus CX-8300
+ EPSON Stylus CX-8400
diff --git a/README b/README
index b607d77..2635ec8 100644
--- a/README
+++ b/README
@@ -1,12 +1,23 @@
INTRODUCTION
- This is Gimp-Print version 4.2.0, the first stable release in the
- 4.2 line. Gimp-print is the print facility for the Gimp, and in
- addition a suite of drivers that may be used with common UNIX
- spooling systems using GhostScript or CUPS. These drivers provide
- printing quality for UNIX/Linux in many cases equal to or better
- than proprietary vendor-supplied drivers, and can be used for many
- of the most demanding printing tasks.
+ This is Gimp-Print version 4.2.7, a stable release in the 4.2
+ series. This is expected to be the final release in the 4.2
+ series unless a critical bug is identified or there are further
+ delays in 5.0. Gimp-Print is a suite of printer drivers that may
+ be used with most common UNIX print spooling systems, including
+ CUPS, lpr, LPRng, or others. These drivers provide high quality
+ printing for UNIX (including Macintosh OS X 10.2 and newer) and
+ Linux systems in many cases equal to or better than proprietary
+ vendor-supplied drivers, and can be used for many of the most
+ demanding printing tasks. A complete list of supported printers
+ may be found in the NEWS file.
+
+ This release is backward compatible with other releases of
+ Gimp-Print 4.2 (4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.2.5, and
+ 4.2.6).
+
+ Gimp-Print also includes a plug-in for the GIMP image editor.
+ This plug-in is also distributed with the GIMP.
Please read this README, and the NEWS file carefully! Many things
have changed from previous releases. The package is quite
@@ -22,6 +33,39 @@ INTRODUCTION
KNOWN BUILD ISSUES section below.
+MACINTOSH OS X NOTE
+
+ As of Gimp-Print 4.2.2, this package fully supports Macintosh OS X
+ 10.2. OS X uses CUPS (Common UNIX Printing System) to provide
+ printing services; Gimp-Print works with CUPS to permit high
+ quality, full-featured printing to a wide variety of printers.
+
+ This package requires Macintosh OS X 10.2 or later; it will not
+ work with any 10.0 or 10.1 release (including 10.1.5), or any
+ Macintosh OS prior to OS X.
+
+ We strongly recommend that Macintosh users download the
+ precompiled installer package from
+ http://gimp-print.sourceforge.net/MacOSX.php3 rather than attempt
+ to build this package from source, as using the installer is much
+ simpler.
+
+ We further recommend that Macintosh OS X users install ESP
+ GhostScript, to permit printing from applications (such as most
+ Adobe applications) that generate PostScript rather than PDF
+ output. NOTE THAT WITHOUT THIS PACKAGE, YOU WILL NOT BE ABLE TO
+ PRINT FROM ANY CARBON APPLICATIONS (in particular, many Adobe
+ applications)! Directions for that are also available at
+ http://gimp-print.sourceforge.net/MacOSX.php3.
+
+ Users installing these packages do not need any additional
+ software packages.
+
+ Please read the release notes (the NEWS file) for information on
+ bugs fixed, new features, supported printers, and any specific
+ information related to your printer.
+
+
BASIC INSTALLATION
Gimp-Print includes the following primary components:
@@ -29,9 +73,11 @@ BASIC INSTALLATION
- The core driver, libgimpprint.so
- A user's manual
- A Print plug-in for the GIMP
- - A Ghostscript driver, stp
- A CUPS (Common UNIX Printing System) driver
+ - A standard Ghostscript driver, `stp'
+ - An IJS-based Ghostscript driver
- Support for the Foomatic spooler configuration system
+ - A utility to administer Epson printers, escputil
By default, Gimp-Print builds the Print plugin for the GIMP, the
user's manual, and a utility to perform head cleaning, nozzle
@@ -50,14 +96,27 @@ BASIC INSTALLATION
make
make install
+ If you do not have the GIMP installed (or if you have only the
+ user package installed, and not the development package that most
+ distributions include separately), the attempt to run configure
+ will fail. To build other components (such as the IJS or CUPS
+ drivers) without the GIMP being present, you must use the
+ --without-gimp option to configure.
+
Note: This package requires the use of GNU Make to compile. On
systems with both GNU make and another make installed, GNU make
- may be named `gmake' or `gnumake'
+ may be named `gmake' or `gnumake'. BSD users in particular will
+ need to use 'gmake'.
THE GIMP
- Gimp-print 4.2 requires the Gimp 1.2.
+ Gimp-Print may be used as a plug-in for the GIMP, providing the
+ ability to print images. If you wish to do so, you must use the
+ GIMP 1.2; it is not compatible with the GIMP 1.3 or 2.0. Please
+ read the release notes in addition to this README, as there have
+ been some changes in procedure since Gimp-Print 4.2.6 if you are
+ using certain versions of the GIMP.
To build and install the Gimp Print plug-in:
@@ -66,8 +125,9 @@ THE GIMP
make install
You may optionally specify --with-gimp if you wish to be explicit
- about building the Gimp Print plugin; --with-gimp is implied, so
- you do not actually need to specify it.
+ about building the Gimp Print plugin; --with-gimp is implied if
+ `configure' detects that the GIMP is installed, so you do not
+ actually need to specify it.
This installs the GIMP Print plugin in your system plug-in
directory. If you wish to install it in your personal plugin
@@ -77,11 +137,12 @@ THE GIMP
If you have installed the Gimp as a precompiled package
(e. g. from an RPM), you will need to install the gimp-devel
- package as well as the gimp package. The gimp package as supplied
- in most distributions only contains what's needed to run the Gimp.
- The gimp-devel package contains additional files required to
- actually build new plugins. On some systems, you will also need
- to install gtk-devel and glib-devel packages as well.
+ (sometimes called gimp-developer, or something similar) package as
+ well as the gimp package. The gimp package as supplied in most
+ distributions only contains what's needed to run the Gimp, not the
+ additional files needed to build GIMP-based applications and
+ plugins such as the Print plugin. On some systems, you will also
+ need to install gtk-devel and glib-devel packages as well.
If you have installed the Gimp from source on Linux: after running
make install, you must run ldconfig as root before attempting to
@@ -90,8 +151,12 @@ THE GIMP
CUPS
- Gimp-print 4.2 requires CUPS 1.1.9 or higher. We recommend use of
- 1.1.12; that release of CUPS features better internationalization
+ Gimp-print may be used as a driver under CUPS (Common UNIX
+ Printing System), if your system uses that spooler. Full
+ description of CUPS is beyond the scope of this README file; full
+ information may be found at http://www.cups.org. Gimp-print 4.2
+ requires CUPS 1.1.9 or higher. We recommend use of 1.1.14 or
+ above; that release of CUPS features better internationalization
and fixes some important bugs.
This package includes a CUPS driver that may be built, allowing
@@ -103,24 +168,30 @@ CUPS
make install
/etc/software/init.d/cups restart
- The last command varies with your operating system. It is
- typically /etc/init.d/cups, /etc/rc.d/cups, or even
- /etc/rc.d/init.d/cups.
-
- NOTE: If you are using CUPS 1.1.11 or higher, and you have a
- USB-connected printer, you must have a printer connected to each
- USB port that you plan to use and powered on when you restart
- CUPS. If you do not do so, you will not be able to perform the
- following step (reinstalling the printer), as described below.
+ The last command varies with your operating system; the purpose is
+ to restart the CUPS server (daemon) so that it sees the newly
+ installed driver. It is typically /etc/init.d/cups,
+ /etc/rc.d/cups, or even /etc/rc.d/init.d/cups. Your system may
+ have a different way to restart the CUPS server. OS X uses the
+ following command:
+
+ sudo /System/Library/StartupItems/PrintingServices/PrintingServices.sh restart
+
+ NOTE for Linux (at least) users: If you are using CUPS 1.1.11 or
+ higher, and you have a USB-connected printer, you must have a
+ printer connected to each USB port that you plan to use and
+ powered on when you restart CUPS. If you do not do so, you will
+ not be able to perform the following step (reinstalling the
+ printer), as described below.
Following this, you must reinstall any printers that you are using
Gimp-Print PPD's with. Such printers may be identified in any
CUPS front end (e. g. KUPS, or via the web interface) because they
look something like this:
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(en)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(en)
- If the version number (in this case, 4.2.0) does not match
+ If the version number (in this case, 4.2.7) does not match
the version of Gimp-Print that you are installing, you must use
Modify Printer to force the new PPD file to get installed.
Failure to do so may lead to incorrect output and/or other errors!
@@ -151,22 +222,23 @@ E [21/Nov/2001:17:59:07 +0500] add_printer: bad device-uri attribute 'usb:/dev/u
apparent when you use a CUPS front end to select a PPD file and
you see something like this:
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(en)
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(en)
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(en)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(en)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(en)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(en)
rather than this:
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(en)
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(sv)
- EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.0(fr)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(en)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(sv)
+ EPSON Stylus Photo EX, CUPS+GIMP-print v4.2.7(fr)
you may wish to turn off the translation of PPD files:
./configure --with-cups --without-translated-ppds
- You may also wish to do this to reduce the number of PPD files
- installed on your system
+ You may also wish to do this to greatly reduce the number of PPD
+ files installed on your system, as the number of translations is
+ large and growing.
The PPD files associated with this driver are for Level 2
PostScript. CUPS implements most level 3 PostScript, but there
@@ -186,8 +258,17 @@ E [21/Nov/2001:17:59:07 +0500] add_printer: bad device-uri attribute 'usb:/dev/u
./configure --with-cups --without-gimp
+ If you have installed CUPS as a precompiled package (e. g. it's
+ the standard printing system that your distribution uses), you may
+ need to install a separate development package (typically called
+ "cups-devel" or "cups-developer"). The CUPS package typically
+ installed by most distributions only contains the components
+ needed to run CUPS, not those required to build additional CUPS
+ drivers.
+
We recommend that all users who wish to use this package for
- general purpose printing install CUPS and use that as their
+ general purpose printing install either CUPS or use Foomatic with
+ the IJS driver (both described below) and use that as their
printing system, rather than the traditional lpd or lp systems.
It is much simpler to manage than lpd, and provides an excellent
web-based interface for both administration and use. Please visit
@@ -197,60 +278,112 @@ E [21/Nov/2001:17:59:07 +0500] add_printer: bad device-uri attribute 'usb:/dev/u
FOOMATIC
- This package includes support for the Foomatic meta-driver package.
- This requires the foomatic-xml distribution. Foomatic is available
- from http://www.linuxprinting.org/foomatic.html. It is also available
- in Debian unstable. For best results, use the version in cvs. The
- first version of Foomatic (the one used with Gimp-Print 4.0) is not
- compatible with Gimp-Print 4.2. Note that the Foomatic driver is
- named `stp' in Gimp-Print 4.0; in Gimp-Print 4.2 it is named
- `gimp-print'. The data for the Gimp-Print 4.0 driver is not
- compatible with the 4.2 driver.
+ Gimp-Print includes support for the Foomatic meta-driver package.
+ This requires the foomatic-xml distribution. Foomatic is
+ available from http://www.linuxprinting.org/foomatic.html. It is
+ also available in Debian unstable. For best results, use the
+ version in cvs. The first version of Foomatic (the one used with
+ Gimp-Print 4.0) is not compatible with Gimp-Print 4.2. Note that
+ the Foomatic driver is named `stp' in Gimp-Print 4.0; in
+ Gimp-Print 4.2 it is named `gimp-print' for the Ghostscript
+ ("stp") driver and "gimp-print-ijs" for the IJS driver. The data
+ for the Gimp-Print 4.0 driver is not compatible with the 4.2
+ driver.
+
+ To verify that you have an appropriate version of Foomatic, please
+ run
- To build the Foomatic data, you must run:
+ foomatic-kitload
+
+ or
+
+ /usr/local/sbin/foomatic-kitload (if /usr/local/sbin is not on your PATH).
+
+ Both Foomatic 2.0.x (stable branch) and 2.9.x (development branch,
+ approaching Foomatic 3.0.x) are supported. With Foomatic 2.9.x there
+ are the extra features of heaving an additional "PrintoutMode" option
+ with pre-configurations for common printing tasks and the options
+ being put into different groups ("General", "PrintoutMode",
+ "Adjustment").
+
+ If you don't have Foomatic installed, or the version that is
+ installed is too old, please download the current Foomatic 2.0.x
+ package from
+
+ http://www.linuxprinting.org/download/foomatic/foomatic-current.tar.gz
+
+ and follow the instructions in that package. See
+
+ http://www.linuxprinting.org/foomatic2.9/foomatic.html
+
+ on how to download and install Foomatic 2.9.x.
+
+ After Foomatic is installed, build the Foomatic data as follows:
./configure --with-foomatic
make
make install
- The "make install" step will add the necessary data to your Foomatic
- installation. It will not create the spooler-specific data files; to
- do that, you must follow this procedure:
+ for obtaining the Foomatic data only for the Ghostscript ("stp")
+ driver or
- - examine the output of `foomatic-configure -O', and find the
- foomatic ID for your printer.
+ ./configure --with-ijs --with-foomatic
+ make
+ make install
- - Run foomatic-datafile with that printer ID, the driver name
- 'gimp-print', and the spooler type you wish to use.
- foomatic-datafile -h explains how to run this program. It
- will generate a foomatic filter datafile on stdout.
+ for obtaining the Foomatic data for both the Ghostscript ("stp")
+ driver and the IJS driver (note that this also build the IJS
+ interface itself, so you have to follow the instructions in
+ src/ghost/README, too).
- - This datafile may then be used instead of the ones from the
- linxuprinting.org website. Follow the instructions for your
- spooler from the website to install the data file and filter.
+ The "make install" step will add the necessary data to your
+ Foomatic installation. It must be run as root. It will fail if
+ Foomatic is not installed or your Foomatic is too old. Now you
+ can either set up a queue for your printer with
+ "foomatic-configure" (see USAGE file in the Foomatic package) or
+ generate the printer description file for your spooler (with
+ "foomatic-datafile") and configure your printer as described on
+ the spooler-specific web pages of linuxprinting.org.
Note that it almost never makes sense to build the Foomatic driver
- without also building the Ghostscript driver, even if Foomatic is
- to be used with CUPS (CUPS-o-matic). Please read the instructions
- below in the GHOSTSCRIPT section.
+ without also building the Ghostscript driver or the IJS driver,
+ even if Foomatic is to be used with CUPS (CUPS-O-Matic). Please
+ read the instructions below in the GHOSTSCRIPT section.
If you do not wish to build the Gimp Print plugin, you must run
./configure --with-foomatic --without-gimp
+ or
+
+ ./configure --with-ijs --with-foomatic --without-gimp
+
Please visit http://www.linuxprinting.org/foomatic.html for more
information on Foomatic.
Foomatic provides an alternate interface to CUPS, in addition to
- an interface to lpd and LPRng.
+ an interface to LPD, LPRng, GNUlpr, PDQ, PPR, CPS, and spooler-less
+ printing.
GHOSTSCRIPT
- This package includes a Ghostscript driver that may be built,
+ Gimp-Print 4.2 includes a Ghostscript driver that may be built,
allowing use of this software for general printing purposes. This
- package requires Ghostscript 5.10, 5.50, or 6.51. Later releases
- in the 6.5x GNU Ghostscript branch (e. g. 6.52) should also work.
+ package requires GNU Ghostscript 5.10, 5.50, 6.51, or 6.52. There
+ is a simpler build procedure for GNU Ghostscript 6.53 and 7.05,
+ and for ESP Ghostscript 7.05. In particular, versions of
+ Ghostscript that are not licensed under the GNU General Public
+ License (GPL) are not supported, and this driver may not be
+ distributed with such a version. If you wish to use Gimp-Print
+ with AFPL Ghostscript, you may do so via the IJS-based driver,
+ described below.
+
+ Please read src/ghost/README for more information, including how
+ to build and install it, and available options; the build
+ procedure here merely creates the necessary source files that you
+ must add to your Ghostscript source. The directions vary for
+ different versions of Ghostscript.
We *strongly* recommend that end users not attempt to use this
driver directly. The available options are very complex, and the
@@ -262,117 +395,40 @@ GHOSTSCRIPT
CUPS is very easy to install, configure, and use, and is the
recommended solution.
- Please read src/ghost/README for more information, including how
- to build and install it, and available options; the build
- procedure here merely creates the necessary source files that you
- must add to your Ghostscript source. The directions vary for
- different versions of Ghostscript. Only Ghostscript 5.10, 5.50,
- and 6.51 are currently supported. In particular, versions of
- Ghostscript that are not licensed under the GNU General Public
- License (GPL) are not supported, and this driver may not be
- distributed with such a version.
-
Note that many of the options to the Ghostscript driver are
- incompatible with the options used prior to release 4.1.99-a3.
+ incompatible with the options used prior to release 4.2.0.
Please read src/ghost/README for information on the current
options.
+ This driver will not be developed beyond the 4.2 release series.
+ It will be replaced by the IJS driver, described below.
+
+
+IJS
+
+ Gimp-Print includes an IJS-based Ghostscript driver. As
+ paraphrased from the Ghostscript documentation, IJS is a
+ relatively new initiative to improve the quality and ease of use
+ of inkjet printing with Ghostscript. Using IJS, one can add new
+ drivers, or upgrade existing ones, without recompiling
+ Ghostscript. IJS drivers run as separate processes that
+ communicate with Ghostscript via an IPC channel. As the basic IJS
+ implementation is licensed compatibly with the GPL, and as the
+ driver runs in a separate process from Ghostscript itself, the IJS
+ driver may be used with AFPL Ghostscript (7.04 and above).
-PRINTER-SPECIFIC NOTES:
-
- * The Epson Stylus C70 and C80 may give better results using Three
- Color Composite printing on Premium Glossy Photo Paper and Premium
- Semigloss. Epson's proprietary drivers are thought to do this on
- these papers.
-
- * The Epson Stylus C70 and C80 appear to support resolutions of
- 1440x1440 and 2880x1440, but these resolutions may not yield any
- improvement over 2880x720. Experiments suggest that 1440x1440
- yields slightly better results than 2880x720 on Epson Photo Paper,
- but somewhat inferior results on Premium Glossy Photo Paper.
- 2880x1440 yields essentially no additional improvement on Photo
- Paper, and intermediate results on Premium Glossy Photo Paper.
-
- We expect that 1440x1440 would yield maximum improvement over
- 2880x720 on line art with very fine detail. It is unlikely that
- 2880x1440 would yield any significant additional improvement.
-
- Note that these resolutions are not officially supported by Epson,
- and may not work on all C70 and C80 printers.
-
- * Many Epson printers (specifically, the Epson Stylus Color 740
- and all newer printers) will not respond to ASCII text without a
- special "activation" sequence (specifically, this command takes
- the printers out of "packet mode"). Therefore, the common
- suggestion to test a printer port by sending plain text to it
- will not work for these printers. These printers are, however,
- able to print plain text *after* the activation sequence is
- sent.
-
- A suggestion would be to use the escputil command to print a
- test pattern:
-
- escputil -n -u -P printer
-
- or
-
- escputil -n -u -r /dev/lp0
-
- The `-u' option will send the activation sequence. In addition
- to printing the test pattern (if at least unidirectional
- communication is set up), this will enable printing plain ASCII
- text, at least until the printer is powered off (or used under
- Windows).
-
- To test bidirectional communication, the command
-
- escputil -i -u -r /dev/lp0
-
- is a good choice, as it will print (to the screen) the amount of
- ink in the printer.
-
- Note that this activation sequence is both unnecessary and
- incorrect on older printers.
-
- The current list of printers for which the activation sequence
- must be sent is:
-
- EPSON Stylus C20SX
- EPSON Stylus C20UX
- EPSON Stylus C40SX
- EPSON Stylus C40UX
- EPSON Stylus C60
- EPSON Stylus C70
- EPSON Stylus C80
- EPSON Stylus Color 440
- EPSON Stylus Color 460
- EPSON Stylus Color 480
- EPSON Stylus Color 580
- EPSON Stylus Color 640
- EPSON Stylus Color 660
- EPSON Stylus Color 670
- EPSON Stylus Color 680
- EPSON Stylus Color 740
- EPSON Stylus Color 760
- EPSON Stylus Color 777
- EPSON Stylus Color 860
- EPSON Stylus Color 880
- EPSON Stylus Color 83
- EPSON Stylus Color 900
- EPSON Stylus Color 980
- EPSON Stylus Color 1160
- EPSON Stylus Photo 720
- EPSON Stylus Photo 750
- EPSON Stylus Photo 780/785/790
- EPSON Stylus Photo 810/820
- EPSON Stylus Photo 870/875
- EPSON Stylus Photo 890/895
- EPSON Stylus Photo 1200
- EPSON Stylus Photo 1270
- EPSON Stylus Photo 1280/1290
- EPSON Stylus Photo 2000P
- EPSON Stylus Scan 2000
- EPSON Stylus Scan 2500
+ The basic way to build the IJS driver is
+
+ ./configure --with-ijs [--without-gimp]
+ make
+ make install
+
+ You must have the IJS libraries installed for this to work.
+ Instructions for that are included with GNU Ghostscript 6.53 and
+ beyond, and AFPL Ghostscript 7.04 and beyond.
+
+ Detailed instructions for building and using the IJS driver is
+ described in src/ghost/README.
RECOMMENDED SETTINGS
@@ -483,11 +539,13 @@ KNOWN BUILD ISSUES
as KUPS or http://localhost:631 to display many copies of each
PPD file, all in the English (en) language. In fact, the PPD
files should be translated into Swedish, Polish, Norwegian,
- French, Danish, and British English. With CUPS 1.1.10 and
- lower, there should be two copies of the (en) PPD file, and one
- copy each of (sv), (no), (fr), (pl) and (da). With CUPS 1.1.11
- and above, there should be (en), (en_GB), (sv), (no), (fr),
- (pl), and (da) PPD files.
+ French, Danish, Spanish, Slovakian, Greek, British English,
+ Dutch, German, and Portuguese. With CUPS 1.1.10 and lower,
+ there should be two copies of the (en) PPD file, and one copy
+ each of (sv), (no), (fr), (pl), (da), (sk), (el), (es), (nl),
+ (de), and (pt). With CUPS 1.1.11 and above, there should be
+ (en), (en_GB), (sv), (no), (fr), (pl), (da), (sk), (el), (es),
+ (nl), (de), and (pt) PPD files.
The PPD files are created by a program named "genppd" in the
src/cups directory. This program is called once for each
@@ -501,10 +559,7 @@ KNOWN BUILD ISSUES
ppd/C/pcl-4.ppd.gz:*LanguageVersion: English
ppd/da/pcl-4.ppd.gz:*LanguageVersion: Danish
ppd/en_GB/pcl-4.ppd.gz:*LanguageVersion: English-GB
- ppd/fr/pcl-4.ppd.gz:*LanguageVersion: French
- ppd/no/pcl-4.ppd.gz:*LanguageVersion: Norwegian
- ppd/no/pcl-4.ppd.gz:*LanguageVersion: Polish
- ppd/sv/pcl-4.ppd.gz:*LanguageVersion: Swedish
+ ...
If the PPD file for each language has a different language
version, the genppd program operated correctly. If instead the
@@ -514,10 +569,7 @@ KNOWN BUILD ISSUES
ppd/C/pcl-4.ppd.gz:*LanguageVersion: English
ppd/da/pcl-4.ppd.gz:*LanguageVersion: English
ppd/en_GB/pcl-4.ppd.gz:*LanguageVersion: English
- ppd/fr/pcl-4.ppd.gz:*LanguageVersion: English
- ppd/no/pcl-4.ppd.gz:*LanguageVersion: English
- ppd/no/pcl-4.ppd.gz:*LanguageVersion: English
- ppd/sv/pcl-4.ppd.gz:*LanguageVersion: English
+ ...
the program did not operate correctly.
@@ -636,6 +688,7 @@ PACKAGING
following settings to build the package:
--with-foomatic
+ --with-ijs (distros with GhostScript 6.53 or newer)
--with-user-guide
--with-samples
--with-escputil
@@ -647,6 +700,7 @@ PACKAGING
/usr/lib/libgimpprint.so.1.0 (the core shared library)
/usr/bin/escputil (Epson Stylus utility)
+ /usr/bin/ijsgimpprint (GIMP-Print IJS plug-in driver)
/usr/share/gimp-print/doc/html (HTML documentation)
/usr/share/gimp-print/doc/users-guide.pdf
/usr/share/gimp-print/doc/users-guide.ps
@@ -684,11 +738,12 @@ PACKAGING
test/bjc-unprint; test/parse-escp2; and test/parse-bjc in this
package.
- * Ghostscript should be built with the stp driver using the "new"
- instructions (requiring only gdevstp.c, and linking dynamically
- against libgimpprint). This will allow Ghostscript to operate
- with future 4.2 upgrade releases without requiring
- recompilation.
+ * Ghostscript should be built with the stp driver using either the
+ "new" instructions (requiring only gdevstp.c, and linking
+ dynamically against libgimpprint) for Ghostscript 6.52 or
+ earlier, or the IJS driver for Ghostscript 6.53 or newer. This
+ will allow Ghostscript to operate with future 4.2 upgrade
+ releases without requiring recompilation.
* CUPS packages should include the Gimp-print PPD's in
/usr/share/cups/model, and the following utilities:
@@ -705,22 +760,24 @@ PACKAGING
+ "calibrate.ppm" belongs in /usr/share/cups.
The PPD's packaged with Gimp-print are rather bulky, about 1 MB
- for each language installed. At present, six language
+ for each language installed. At present, twelve language
translations are installed, in addition to the US English
- defaults: GB English, Swedish, Danish, Norwegian, French, and
- Polish. You may wish to install these selectively.
+ defaults: GB English, Swedish, Danish, Norwegian, French,
+ Polish, Slovakian, Greek, Spanish, Dutch, German, and
+ Portuguese. You may wish to install these selectively.
Please see KNOWN BUILD ISSUES above for more discussion about
build issues related to the PPD files.
- * A gimp-print-foomatic package, containing
- src/foomatic/foomatic-db, should be provided to allow people who
- wish to use foomatic to install the corresponding data files.
- The packaging should arrange to call "foomatic-kitload" (or the
- equivalent) on this tree when it is installed.
+ * A gimp-print-foomatic package, containing the
+ src/foomatic/foomatic-db/gimp-print*/ directories, should be
+ provided to allow people who wish to use foomatic to install the
+ corresponding data files. The packaging should arrange to call
+ "foomatic-kitload" (or the equivalent) on this tree when it is
+ installed.
* We recommend that you replace the Print plugin bundled with the
- Gimp (1.2.0~1.2.2) with the Gimp Print plugin in this
+ Gimp (any 1.2 version) with the Gimp Print plugin in this
distribution. There are various ways to do this; you can run
'make gimp-dist' from top level and untar the resulting tarball
into the Gimp source directory prior to building the Gimp, or
@@ -729,6 +786,13 @@ PACKAGING
the older Gimp-Print 4.0 source base; 4.2 supports more printers
with better quality, and has more features than 4.0.
+ We are working with the GIMP development team to replace the
+ current Print plugin (which contains the entire source required
+ to build the driver) with a smaller base containing just the
+ plugin itself. This will allow compatibility with at least all
+ 4.2-based releases of Gimp-Print, allowing upgrading the plugin
+ by simply upgrading the libgimpprint library.
+
* Please read the release notes carefully!
* Distributors (UNIX vendors and Linux distributors) should
@@ -753,6 +817,8 @@ DEBIAN
and SGML documentation that is registered
with doc-base.
cupsys-driver-gimpprint The CUPS driver and PPD files.
+ foomatic-db-gimpprint Foomatic data files for gimp-print drivers.
+ ijsgimpprint Ghostscript IJS server.
libgimpprint1 The libgimpprint library (GIMP-Print core).
libgimpprint-dev Headers, symlinks, m4 macro
(AM_PATH_GIMPPRINT) and gimpprint-config
@@ -761,6 +827,7 @@ DEBIAN
gimpprint-doc User's Guide in HTML and PDF format
libgimpprint-doc Programmer's Guide in Info, DVI and HTML
format.
+ gimpprint-locales Message catalogues for internationalisation.
escputil The escputil printer tool for Epson printers.
The library symlinks will get packaged without any modification needed
diff --git a/RedHat/ghostscript-5.50.spec b/RedHat/ghostscript-5.50.spec
deleted file mode 100644
index 28572b7..0000000
--- a/RedHat/ghostscript-5.50.spec
+++ /dev/null
@@ -1,200 +0,0 @@
-Summary: A PostScript(TM) interpreter and renderer.
-Name: ghostscript
-%define version 5.50
-%define hpdjver 2.6
-%define md2kver 0.2a
-%define gpver 3.1.3
-Version: %{version}
-Release: 1
-License: GPL
-URL: http://gnu-gs.sourceforge.net/
-Group: Applications/Publishing
-Source0: ftp://ftp.cs.wisc.edu/pub/ghost/gnu/gs550/gnu-gs-%{version}.tar.gz
-Source1: ftp://ftp.cs.wisc.edu/pub/ghost/gnu/gs550/gnu-gs-%{version}jpeg.tar.gz
-Source2: http://www.erdw.ethz.ch/~bonk/ftp/gs-driver-distrib/hp8xxs13.zip
-Source3: ftp://ftp.sbs.de/pub/graphics/ghostscript/pcl3/hpdj-%{hpdjver}.tar.gz
-Source4: ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/gs550/ghostscript-%{version}gnu.tar.gz
-Source5: http://plaza26.mbn.or.jp/~higamasa/gdevmd2k/gdevmd2k-%{md2kver}.tar.gz
-Source6: http://lcewww.et.tudelft.nl/~haver/cgi-bin/download/linux/epson740.tgz
-Source7: http://download.sourceforge.net/gimp-print/print-3.1.3.tar.gz
-Patch0: ghostscript-5.50-config.patch
-Patch1: gs5.50-rth.patch
-Patch3: gs5.50-hp8xx.patch
-Patch4: gs5.50-hpdj.patch
-# Location of files used to generate patch 5:
-# http://www.ultranet.com/~setaylor/papers.htm
-Patch5: gs5.50-lexmark5700.patch
-# Location of files used to generate patch 6:
-# http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/
-Patch6: gs5.50-lexmark7000.patch
-Requires: urw-fonts >= 1.1, ghostscript-fonts
-BuildRoot: /var/tmp/ghostscript-root
-
-%description
-Ghostscript is a set of software that provides a PostScript(TM)
-interpreter, a set of C procedures (the Ghostscript library, which
-implements the graphics capabilities in the PostScript language) and
-an interpreter for Portable Document Format (PDF) files. Ghostscript
-translates PostScript code into many common, bitmapped formats, like
-those understood by your printer or screen. Ghostscript is normally
-used to display PostScript files and to print PostScript files to
-non-PostScript printers.
-
-If you need to display PostScript files or print them to
-non-PostScript printers, you should install ghostscript. If you
-install ghostscript, you also need to install the ghostscript-fonts
-package.
-
-%prep
-%setup -q -n gs%{version}
-%setup -q -T -D -a 1 -a 5 -b 4 -n gs%{version}
-ln -s jpeg-6b jpeg
-%patch0 -p1 -b .config
-%patch1 -p1 -b .rth
-# Add support for HP 8xx printers
-%patch3 -p1 -b .hp8xx
-mkdir tmp
-cd tmp
-unzip -a -L %{SOURCE2}
-mv *.c *.h ..
-rm -f *
-# Add upp files for epson 740
-tar xzvf %{SOURCE6}
-mv epson740/*.upp ..
-# Add support for some other HP printers
-tar xzfO %{SOURCE3} hpdj-%{hpdjver}/hpdj.tar | tar xf -
-mv *.c *.h *.1 ..
-cd ..
-cat tmp/contrib.mak-%{version}.add >>contrib.mak
-patch -p0 -z .hpdjauto < tmp/zmedia2.c-%{version}.diff
-%patch4 -p1 -b .hpdj
-%patch5 -p1 -b .lxm
-
-# Add support for ALPS printers
-mv gdevmd2k-%{md2kver}/*.[ch] .
-cat gdevmd2k-%{md2kver}/gdevmd2k.mak-5.50 >>contrib.mak
-perl -pi -e "s/^DEVICE_DEVS6=/DEVICE_DEVS6=md2k.dev md5k.dev /g" unix-gcc.mak
-
-%patch6 -p1 -b .lx7000
-
-# Add gimp-print (stp) driver
-cd tmp
-tar xzvf %{SOURCE7}
-cd print-%{gpver}/Ghost
-cp gdevstp-escp2.c gdevstp-print.h gdevstp-util.c gdevstp-dither.c \
- gdevstp-printers.c gdevstp.c gdevstp.h ../../..
-cat contrib.mak.addon >>../../../contrib.mak
-cp -p README ../../../README.stp
-cd ../../..
-perl -pi -e 's/^DEVICE_DEVS6=/DEVICE_DEVS6=\$(DD)stp.dev /g' unix-gcc.mak
-
-rm -rf tmp
-ln -s unix-gcc.mak Makefile
-
-%build
-# Ugly workaround for a bug in the dj850 driver...
-mkdir obj
-make obj/arch.h
-ln -s obj/arch.h .
-make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" gdevcd8.o
-mv gdevcd8.o obj
-
-%ifarch alpha
-make RPM_OPT_FLAGS="" prefix=/usr
-%else
-make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" prefix=/usr
-%endif
-
-%install
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/usr/{bin,man,doc}
-make install prefix=$RPM_BUILD_ROOT/usr
-ln -sf gs.1.gz $RPM_BUILD_ROOT/usr/man/man1/ghostscript.1.gz
-ln -sf gs $RPM_BUILD_ROOT/usr/bin/ghostscript
-strip -R .comment $RPM_BUILD_ROOT/usr/bin/gs
-cp -p README.stp /usr/doc/ghostscript-%{PACKAGE_VERSION}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-/usr/doc/ghostscript-%{PACKAGE_VERSION}
-/usr/bin/*
-%dir /usr/share/ghostscript
-%dir /usr/share/ghostscript/%{PACKAGE_VERSION}
-/usr/share/ghostscript/%{PACKAGE_VERSION}/*ps
-/usr/share/ghostscript/%{PACKAGE_VERSION}/*upp
-%config /usr/share/ghostscript/%{version}/Fontmap
-/usr/share/ghostscript/%{PACKAGE_VERSION}/examples
-/usr/man/*/*
-
-%changelog
-* Mon Feb 14 2000 Bernhard Rosenkraenzer <bero@redhat.com>
-- 5.50 at last...
-- hpdj 2.6
-- Added 3rd party drivers:
- - Lexmark 5700 (lxm5700m)
- - Alps MD-* (md2k, md5k)
- - Lexmark 2050, 3200, 5700 and 7000 (lex2050, lex3200, lex5700, lex7000)
-
-* Fri Feb 4 2000 Bernhard Rosenkraenzer <bero@redhat.com>
-- rebuild to compress man page
-- fix gs.1 symlink
-
-* Wed Jan 26 2000 Bill Nottingham <notting@redhat.com>
-- add stylus 740 uniprint files
-
-* Thu Jan 13 2000 Preston Brown <pbrown@redhat.com>
-- add lq850 dot matrix driver (#6357)
-
-* Thu Oct 28 1999 Bill Nottingham <notting@redhat.com>
-- oops, include oki182 driver.
-
-* Tue Aug 24 1999 Bill Nottingham <notting@redhat.com>
-- don't optimize on Alpha. This way it works.
-
-* Thu Jul 29 1999 Michael K. Johnson <johnsonm@redhat.com>
-- added hpdj driver
-- changed build to use tar_cat so adding new drivers is sane
-
-* Thu Jul 1 1999 Bill Nottingham <notting@redhat.com>
-- add OkiPage 4w+, HP 8xx drivers
-* Mon Apr 5 1999 Bill Nottingham <notting@redhat.com>
-- fix typo in config patch.
-
-* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
-- auto rebuild in the new build environment (release 6)
-
-* Mon Mar 15 1999 Cristian Gafton <gafton@redhat.com>
-- added patch from rth to fix alignement problems on the alpha.
-
-* Wed Feb 24 1999 Preston Brown <pbrown@redhat.com>
-- Injected new description and group.
-
-* Mon Feb 08 1999 Bill Nottingham <notting@redhat.com>
-- add uniprint .upp files
-
-* Sat Feb 06 1999 Preston Brown <pbrown@redhat.com>
-- fontpath update.
-
-* Wed Dec 23 1998 Preston Brown <pbrown@redhat.com>
-- updates for ghostscript 5.10
-
-* Fri Nov 13 1998 Preston Brown <pbrown@redhat.com>
-- updated to use shared urw-fonts package.
-* Mon Nov 09 1998 Preston Brown <pbrown@redhat.com>
-- turned on truetype (ttf) font support.
-
-* Thu Jul 2 1998 Jeff Johnson <jbj@redhat.com>
-- updated to 4.03.
-
-* Tue May 05 1998 Cristian Gafton <gafton@redhat.com>
-- enabled more printer drivers
-- buildroot
-
-* Mon Apr 27 1998 Prospector System <bugs@redhat.com>
-- translations modified for de, fr, tr
-
-* Mon Mar 03 1997 Erik Troan <ewt@redhat.com>
-- Made /usr/share/ghostscript/3.33/Fontmap a config file.
diff --git a/RedHat/gimp-print.spec b/RedHat/gimp-print.spec
deleted file mode 100644
index 79b1acd..0000000
--- a/RedHat/gimp-print.spec
+++ /dev/null
@@ -1,46 +0,0 @@
-Summary: The gimp-print plugin
-Name: gimp-print
-Version: 3.1.3
-Release: 1
-Copyright: GPL
-Group: Applications/Multimedia
-Source0: http://download.sourceforge.net/gimp-print/print-3.1.3.tar.gz
-BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
-
-%description
-This is the Print plug-in for the Gimp.
-
-This is a development release, and as such, not all printers or
-combinations of options will work. Please check our web site at
-http://gimp-print.sourceforge.net for details about what is and is not
-supported.
-
-%prep
-%setup -q -n print-%{version}
-
-%build
-sh configure
-perl -pi -e 's,-O2,\$(RPM_OPT_FLAGS),' Makefile
-
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/usr/local/bin $RPM_BUILD_ROOT/usr/lib/gimp/1.0/plug-ins
-
-make prefix=$RPM_BUILD_ROOT/usr/local install-binPROGRAMS
-/usr/bin/install -c print $RPM_BUILD_ROOT/usr/lib/gimp/1.0/plug-ins/print
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-/usr/local/bin/escp2-weavetest
-/usr/local/bin/pcl-unprint
-/usr/local/bin/unprint
-/usr/lib/gimp/1.0/plug-ins/print
-
-%changelog
-* Fri Apr 28 2000 Mark Hindess <rpm@beanz.uklinux.net>
-- First attempt at gimp-print rpm
diff --git a/RedHat/gs.spec.diff b/RedHat/gs.spec.diff
deleted file mode 100644
index e8061a3..0000000
--- a/RedHat/gs.spec.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- ghostscript-5.50.spec.orig Fri Apr 28 09:40:44 2000
-+++ ghostscript-5.50.spec Fri Apr 28 10:15:28 2000
-@@ -3,6 +3,7 @@
- %define version 5.50
- %define hpdjver 2.6
- %define md2kver 0.2a
-+%define gpver 3.1.3
- Version: %{version}
- Release: 1
- License: GPL
-@@ -15,6 +16,7 @@
- Source4: ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/gs550/ghostscript-%{version}gnu.tar.gz
- Source5: http://plaza26.mbn.or.jp/~higamasa/gdevmd2k/gdevmd2k-%{md2kver}.tar.gz
- Source6: http://lcewww.et.tudelft.nl/~haver/cgi-bin/download/linux/epson740.tgz
-+Source7: http://download.sourceforge.net/gimp-print/print-3.1.3.tar.gz
- Patch0: ghostscript-5.50-config.patch
- Patch1: gs5.50-rth.patch
- Patch3: gs5.50-hp8xx.patch
-@@ -75,6 +77,17 @@
-
- %patch6 -p1 -b .lx7000
-
-+# Add gimp-print (stp) driver
-+cd tmp
-+tar xzvf %{SOURCE7}
-+cd print-%{gpver}/Ghost
-+cp gdevstp-escp2.c gdevstp-print.h gdevstp-util.c gdevstp-dither.c \
-+ gdevstp-printers.c gdevstp.c gdevstp.h ../../..
-+cat contrib.mak.addon >>../../../contrib.mak
-+cp -p README ../../../README.stp
-+cd ../../..
-+perl -pi -e 's/^DEVICE_DEVS6=/DEVICE_DEVS6=\$(DD)stp.dev /g' unix-gcc.mak
-+
- rm -rf tmp
- ln -s unix-gcc.mak Makefile
-
-@@ -99,6 +112,7 @@
- ln -sf gs.1.gz $RPM_BUILD_ROOT/usr/man/man1/ghostscript.1.gz
- ln -sf gs $RPM_BUILD_ROOT/usr/bin/ghostscript
- strip -R .comment $RPM_BUILD_ROOT/usr/bin/gs
-+cp -p README.stp /usr/doc/ghostscript-%{PACKAGE_VERSION}
-
- %clean
- rm -rf $RPM_BUILD_ROOT
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..a7aa580
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,4583 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+# Do all the work for Automake. This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN(AM_INIT_AUTOMAKE,
+[AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir && pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN(AM_SANITY_CHECK,
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "[$]*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "[$]*" != "X $srcdir/configure conftestfile" \
+ && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "[$]2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+AC_DEFUN(AM_MISSING_PROG,
+[AC_MSG_CHECKING(for working $2)
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if ($2 --version) < /dev/null > /dev/null 2>&1; then
+ $1=$2
+ AC_MSG_RESULT(found)
+else
+ $1="$3/missing $2"
+ AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+AC_DEFUN(AM_CONFIG_HEADER,
+[AC_PREREQ([2.12])
+AC_CONFIG_HEADER([$1])
+dnl When config.status generates a header, we must update the stamp-h file.
+dnl This file resides in the same directory as the config header
+dnl that is generated. We must strip everything past the first ":",
+dnl and everything past the last "/".
+AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
+ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
+<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
+<<am_indx=1
+for am_file in <<$1>>; do
+ case " <<$>>CONFIG_HEADERS " in
+ *" <<$>>am_file "*<<)>>
+ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+ ;;
+ esac
+ am_indx=`expr "<<$>>am_indx" + 1`
+done<<>>dnl>>)
+changequote([,]))])
+
+# Add --enable-maintainer-mode option to configure.
+# From Jim Meyering
+
+# serial 1
+
+AC_DEFUN(AM_MAINTAINER_MODE,
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT($USE_MAINTAINER_MODE)
+ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+# Define a conditional.
+
+AC_DEFUN(AM_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+AC_SUBST($1_FALSE)
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
+
+#serial 1
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+ [
+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+ ]
+)
+
+
+dnl AM_PROG_LEX
+dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+AC_DEFUN(AM_PROG_LEX,
+[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
+AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
+AC_PROG_LEX
+AC_DECL_YYTEXT])
+
+# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
+
+# serial 46 AC_PROG_LIBTOOL
+
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])
+
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+_LT_AC_PROG_ECHO_BACKSLASH
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ AC_PATH_MAGIC
+ fi
+ ;;
+esac
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_SAVE
+ AC_LANG_C
+ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_RESTORE])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one
+ AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
+ [AC_TRY_LINK([],
+ [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
+ DllMain (0, 0, 0);],
+ [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
+
+ case $host/$CC in
+ *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
+ # old mingw systems require "-dll" to link a DLL, while more recent ones
+ # require "-mdll"
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -mdll"
+ AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
+ [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
+ CFLAGS="$SAVE_CFLAGS" ;;
+ *-*-cygwin* | *-*-pw32*)
+ # cygwin systems need to pass --dll to the linker, and not link
+ # crt.o which will require a WinMain@16 definition.
+ lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
+ esac
+ ;;
+ ])
+esac
+
+_LT_AC_LTCONFIG_HACK
+
+])
+
+# AC_LIBTOOL_HEADER_ASSERT
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT],
+[AC_CACHE_CHECK([whether $CC supports assert without backlinking],
+ [lt_cv_func_assert_works],
+ [case $host in
+ *-*-solaris*)
+ if test "$GCC" = yes && test "$with_gnu_ld" != yes; then
+ case `$CC --version 2>/dev/null` in
+ [[12]].*) lt_cv_func_assert_works=no ;;
+ *) lt_cv_func_assert_works=yes ;;
+ esac
+ fi
+ ;;
+ esac])
+
+if test "x$lt_cv_func_assert_works" = xyes; then
+ AC_CHECK_HEADERS(assert.h)
+fi
+])# AC_LIBTOOL_HEADER_ASSERT
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)
+])# _LT_AC_CHECK_DLFCN
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris* | sysv5*)
+ symcode='[[BDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $host_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ symcode='[[ABCDGISTW]]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&AC_FD_CC
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AC_FD_CC
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC
+ fi
+ else
+ echo "$progname: failed program was:" >&AC_FD_CC
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+ global_symbol_to_c_name_address=
+else
+ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
+ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+fi
+if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
+then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+# ---------------------------------
+AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR],
+[# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+ [AC_DIVERT_PUSH(NOTICE)])
+_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X[$]1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "[$]0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+AC_DIVERT_POP
+])# _LT_AC_PROG_ECHO_BACKSLASH
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[if test "$cross_compiling" = yes; then :
+ [$4]
+else
+ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}]
+EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_unknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+AC_DEFUN([_LT_AC_LTCONFIG_HACK],
+[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+need_locks="$enable_libtool_lock"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+if test x"$host" != x"$build"; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case $host_os in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="[$]2"
+
+AC_MSG_CHECKING([for objdir])
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+AC_MSG_RESULT($objdir)
+
+
+AC_ARG_WITH(pic,
+[ --with-pic try to use only PIC/non-PIC objects [default=use both]],
+pic_mode="$withval", pic_mode=default)
+test -z "$pic_mode" && pic_mode=default
+
+# We assume here that the value for lt_cv_prog_cc_pic will not be cached
+# in isolation, and that seeing it set (from the cache) indicates that
+# the associated values are set (in the cache) correctly too.
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+AC_CACHE_VAL(lt_cv_prog_cc_pic,
+[ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_shlib=
+ lt_cv_prog_cc_wl=
+ lt_cv_prog_cc_static=
+ lt_cv_prog_cc_no_builtin=
+ lt_cv_prog_cc_can_build_shared=$can_build_shared
+
+ if test "$GCC" = yes; then
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-static'
+
+ case $host_os in
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # not sure about C++ programs.
+ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_cv_prog_cc_pic='-fno-common'
+ ;;
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_cv_prog_cc_pic=-Kconform_pic
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for PIC flags for the system compiler.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ lt_cv_prog_cc_wl='-Wl,'
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
+ lt_cv_prog_cc_pic='+Z'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ # PIC (with -KPIC) is the default.
+ ;;
+
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+
+ newsos6)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ # All OSF/1 code is PIC.
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_cv_prog_cc_pic='-Kpic'
+ lt_cv_prog_cc_static='-dn'
+ lt_cv_prog_cc_shlib='-belf'
+ ;;
+
+ solaris*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ sunos4*)
+ lt_cv_prog_cc_pic='-PIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Qoption ld '
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ uts4*)
+ lt_cv_prog_cc_pic='-pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_cv_prog_cc_pic='-Kconform_pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ fi
+ ;;
+
+ *)
+ lt_cv_prog_cc_can_build_shared=no
+ ;;
+ esac
+ fi
+])
+if test -z "$lt_cv_prog_cc_pic"; then
+ AC_MSG_RESULT([none])
+else
+ AC_MSG_RESULT([$lt_cv_prog_cc_pic])
+
+ # Check to make sure the pic_flag actually works.
+ AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works])
+ AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
+ AC_TRY_COMPILE([], [], [dnl
+ case $host_os in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then
+ # they create non-PIC objects. So, if there were any warnings, we
+ # assume that PIC is not supported.
+ if test -s conftest.err; then
+ lt_cv_prog_cc_pic_works=no
+ else
+ lt_cv_prog_cc_pic_works=yes
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic_works=yes
+ ;;
+ esac
+ ], [dnl
+ lt_cv_prog_cc_pic_works=no
+ ])
+ CFLAGS="$save_CFLAGS"
+ ])
+
+ if test "X$lt_cv_prog_cc_pic_works" = Xno; then
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_can_build_shared=no
+ else
+ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
+ fi
+
+ AC_MSG_RESULT([$lt_cv_prog_cc_pic_works])
+fi
+
+# Check for any special shared library compilation flags.
+if test -n "$lt_cv_prog_cc_shlib"; then
+ AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries])
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then :
+ else
+ AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure])
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works])
+AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl
+ lt_cv_prog_cc_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
+ AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes])
+ LDFLAGS="$save_LDFLAGS"
+])
+
+# Belt *and* braces to stop my trousers falling down:
+test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
+AC_MSG_RESULT([$lt_cv_prog_cc_static_works])
+
+pic_flag="$lt_cv_prog_cc_pic"
+special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
+wl="$lt_cv_prog_cc_wl"
+link_static_flag="$lt_cv_prog_cc_static"
+no_builtin_flag="$lt_cv_prog_cc_no_builtin"
+can_build_shared="$lt_cv_prog_cc_can_build_shared"
+
+
+# Check to see if options -o and -c are simultaneously supported by compiler
+AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext])
+AC_CACHE_VAL([lt_cv_compiler_c_o], [
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+echo "int some_variable = 0;" > conftest.$ac_ext
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
+compiler_c_o=no
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ lt_cv_compiler_c_o=no
+ else
+ lt_cv_compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&AC_FD_CC
+ lt_cv_compiler_c_o=no
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+])
+compiler_c_o=$lt_cv_compiler_c_o
+AC_MSG_RESULT([$compiler_c_o])
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ AC_MSG_CHECKING([if $compiler supports -c -o file.lo])
+ AC_CACHE_VAL([lt_cv_compiler_o_lo], [
+ lt_cv_compiler_o_lo=no
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ save_objext="$ac_objext"
+ ac_objext=lo
+ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ lt_cv_compiler_o_lo=no
+ else
+ lt_cv_compiler_o_lo=yes
+ fi
+ ])
+ ac_objext="$save_objext"
+ CFLAGS="$save_CFLAGS"
+ ])
+ compiler_o_lo=$lt_cv_compiler_o_lo
+ AC_MSG_RESULT([$compiler_o_lo])
+else
+ compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test "$hard_links" = no; then
+ AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+if test "$GCC" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions])
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
+ compiler_rtti_exceptions=no
+ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ compiler_rtti_exceptions=no
+ else
+ compiler_rtti_exceptions=yes
+ fi
+ ])
+ CFLAGS="$save_CFLAGS"
+ AC_MSG_RESULT([$compiler_rtti_exceptions])
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+fi
+
+# See if the linker supports building shared libraries.
+AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries])
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+old_archive_from_expsyms_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_into_libs=no
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+link_all_deplibs=unknown
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+extract_expsyms_cmds=
+
+case $host_os in
+cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX, the GNU linker is very broken
+ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
+ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
+ test -f $output_objdir/impgen.exe || (cd $output_objdir && \
+ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+ else $CC -o impgen impgen.c ; fi)~
+ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
+
+ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+
+ # cygwin and mingw dlls have different entry points and sets of symbols
+ # to exclude.
+ # FIXME: what about values for MSVC?
+ dll_entry=__cygwin_dll_entry@12
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
+ case $host_os in
+ mingw*)
+ # mingw values
+ dll_entry=_DllMainCRTStartup@12
+ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
+ ;;
+ esac
+
+ # mingw and cygwin differ, and it's simplest to just exclude the union
+ # of the two symbol sets.
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one (in ltdll.c)
+ if test "x$lt_cv_need_dllmain" = "xyes"; then
+ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+ else
+ ltdll_obj=
+ ltdll_cmds=
+ fi
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ # Be careful not to strip the DATA tag left be newer dlltools.
+ export_symbols_cmds="$ltdll_cmds"'
+ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
+
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+ _lt_hint=1;
+ cat $export_symbols | while read symbol; do
+ set dummy \$symbol;
+ case \[$]# in
+ 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+ 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;;
+ *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;;
+ esac;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done;
+ fi~
+ '"$ltdll_cmds"'
+ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
+ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
+ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = yes; then
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # dlltool doesn't understand --whole-archive et. al.
+ whole_archive_flag_spec=
+ ;;
+ *)
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ ;;
+ esac
+ fi
+else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ hardcode_direct=yes
+ archive_cmds=''
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ shared_flag='${wl}-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall can do strange things, so it is better to
+ # generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='${wl}-berok'
+ # This is a bit strange, but is similar to how AIX traditionally builds
+ # it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ allow_undefined_flag='-undefined suppress'
+ ;;
+ *) # Darwin 1.3 on
+ allow_undefined_flag='-flat_namespace -undefined suppress'
+ ;;
+ esac
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes. Also zsh mangles
+ # `"' quotes if we put them in here... so don't!
+ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
+ # We need to add '_' to the symbols in $export_symbols first
+ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ whole_archive_flag_spec='-all_load $convenience'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ case $host_os in
+ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
+ esac
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case "$host_os" in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ #Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ ;;
+
+ solaris*)
+ # gcc --version < 3.0 without binutils cannot create self contained
+ # shared libraries reliably, requiring libgcc.a to resolve some of
+ # the object symbols generated in some cases. Libraries that use
+ # assert need libgcc.a to resolve __eprintf, for example. Linking
+ # a copy of libgcc.a into every shared library to guarantee resolving
+ # such symbols causes other problems: According to Tim Van Holder
+ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
+ # (to the application) exception stack for one thing.
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ case `$CC --version 2>/dev/null` in
+ [[12]].*)
+ cat <<EOF 1>&2
+
+*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
+*** create self contained shared libraries on Solaris systems, without
+*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
+*** -no-undefined support, which will at least allow you to build shared
+*** libraries. However, you may find that when you link such libraries
+*** into an application without using GCC, you have to manually add
+*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
+*** upgrade to a newer version of GCC. Another option is to rebuild your
+*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
+
+EOF
+ no_undefined_flag=
+ ;;
+ esac
+ fi
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5uw7* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+AC_MSG_RESULT([$ld_shlibs])
+test "$ld_shlibs" = no && can_build_shared=no
+
+# Check hardcoding attributes.
+AC_MSG_CHECKING([how to hardcode library paths into programs])
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var"; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+AC_MSG_RESULT([$hardcode_action])
+
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+# PORTME Fill in your ld.so characteristics
+AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}.so$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can
+ # not hardcode correct soname into executable. Probably we can
+ # add versioning support to collect2, so additional links can
+ # be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}.so$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ hardcode_into_libs=yes
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ export_dynamic_flag_spec=-rdynamic
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ need_version=no
+ need_lib_prefix=no
+ case $GCC,$host_os in
+ yes,cygwin*)
+ library_names_spec='$libname.dll.a'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll'
+ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog .libs/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ ;;
+ yes,mingw*)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"`
+ ;;
+ yes,pw32*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ ;;
+ *)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
+ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ *)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ dynamic_linker="$host_os dld.sl"
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+ soname_spec='${libname}${release}.sl$major'
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *) version_type=irix ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case "$host_os" in
+ openbsd2.[[89]] | openbsd2.[[89]].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+os2*)
+ libname_spec='$name'
+ need_lib_prefix=no
+ library_names_spec='$libname.dll $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ hardcode_into_libs=yes
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+ soname_spec='$libname.so.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+# Report the final consequences.
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+AC_LIBTOOL_DLOPEN_SELF
+
+if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+ AC_CACHE_VAL([lt_cv_archive_cmds_need_lc],
+ [$rm conftest*
+ echo 'static int dummy;' > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile); then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_cv_prog_cc_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi])
+ AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc])
+ ;;
+ esac
+fi
+need_lc=${lt_cv_archive_cmds_need_lc-yes}
+
+# The second clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ :
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ test -f Makefile && make "$ltmain"
+fi
+
+if test -f "$ltmain"; then
+ trap "$rm \"${ofile}T\"; exit 1" 1 2 15
+ $rm -f "${ofile}T"
+
+ echo creating $ofile
+
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS SED \
+ AR AR_FLAGS CC LD LN_S NM SHELL \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
+ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
+ old_striplib striplib file_magic_cmd export_symbols_cmds \
+ deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ global_symbol_to_c_name_address \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case $var in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ cat <<__EOF__ > "${ofile}T"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996-2000 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="${SED} -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$need_lc
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# The default C compiler.
+CC=$lt_CC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_pic_flag
+pic_mode=$pic_mode
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$lt_compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "${ofile}T"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ cat <<'EOF' >> "${ofile}T"
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# */
+#
+# #include <stdio.h> /* for printf() */
+# #include <unistd.h> /* for open(), lseek(), read() */
+# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+# #include <string.h> /* for strdup() */
+#
+# /* O_BINARY isn't required (or even defined sometimes) under Unix */
+# #ifndef O_BINARY
+# #define O_BINARY 0
+# #endif
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (dll < 1)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i<nexp; i++)
+# {
+# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+# }
+#
+# return 0;
+# }
+# /* impgen.c ends here */
+
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
+
+ mv -f "${ofile}T" "$ofile" || \
+ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
+ chmod +x "$ofile"
+fi
+
+])# _LT_AC_LTCONFIG_HACK
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case $enableval in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case $enableval in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case $enableval in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_LIBTOOL_PICMODE - implement the --with-pic flag
+# Usage: AC_LIBTOOL_PICMODE[(MODE)]
+# Where MODE is either `yes' or `no'. If omitted, it defaults to
+# `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)])
+
+
+# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="ifelse([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+])
+
+
+# AC_PATH_MAGIC - find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
+AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])
+
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | [[A-Za-z]]:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])
+
+# AC_PROG_LD_GNU -
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ lt_cv_prog_gnu_ld=yes
+else
+ lt_cv_prog_gnu_ld=no
+fi])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])
+
+# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
+[lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+])
+
+# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi4*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin* | mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+ ;;
+ *) # Darwin 1.3 on
+ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ ;;
+ esac
+ ;;
+
+freebsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20*|hpux11*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ irix5* | nonstopux*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ case $host_cpu in
+ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*)
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+openbsd*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+ else
+ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+
+sysv5uw[[78]]* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+])
+
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
+AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/${ac_tool_prefix}nm
+ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ else
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+AC_MSG_RESULT([$NM])
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library and LTDLINCL to the include flags for
+# the libltdl header and adds --enable-ltdl-convenience to the
+# configure arguments. Note that LIBLTDL and LTDLINCL are not
+# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
+# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
+# with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case $enable_ltdl_convenience in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library and LTDLINCL to the include flags for
+# the libltdl header and adds --enable-ltdl-install to the configure
+# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is
+# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
+# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed
+# with '${top_srcdir}/' (note the single quotes!). If your package is
+# not flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ LTDLINCL=
+ fi
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_executable_p="test -f"
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+
+ # Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=$TMPDIR/sed$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+}
+ _max=0
+ _count=0
+ # Add /usr/xpg4/bin/sed as it is typically found on Solaris
+ # along with /bin/sed that truncates output.
+ for _sed in $_sed_list /usr/xpg4/bin/sed; do
+ test ! -f ${_sed} && break
+ cat /dev/null > "$tmp/sed.in"
+ _count=0
+ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in"
+ # Check for GNU sed and select it if it is found.
+ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then
+ lt_cv_path_SED=${_sed}
+ break
+ fi
+ while true; do
+ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
+ mv "$tmp/sed.tmp" "$tmp/sed.in"
+ cp "$tmp/sed.in" "$tmp/sed.nl"
+ echo >>"$tmp/sed.nl"
+ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break
+ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
+ # 40000 chars as input seems more than enough
+ test $_count -gt 10 && break
+ _count=`expr $_count + 1`
+ if test $_count -gt $_max; then
+ _max=$_count
+ lt_cv_path_SED=$_sed
+ fi
+ done
+ done
+ rm -rf "$tmp"
+])
+if test "X$SED" != "X"; then
+ lt_cv_path_SED=$SED
+else
+ SED=$lt_cv_path_SED
+fi
+AC_MSG_RESULT([$SED])
+])
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
+
+# serial 10
+
+dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
+dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). Otherwise, a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored.
+dnl LIBDIR is used to find the intl libraries. If empty,
+dnl the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_WITH_NLS],
+ [AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ INTLLIBS=
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+ CATOBJEXT=NONE
+
+ dnl Add a version number to the cache macros.
+ define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
+ define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
+
+ AC_CHECK_HEADER(libintl.h,
+ [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>
+extern int _nl_msg_cat_cntr;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
+ gt_cv_func_gnugettext_libc=yes,
+ gt_cv_func_gnugettext_libc=no)])
+
+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ gt_cv_func_gnugettext_libintl,
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -lintl $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+extern int _nl_msg_cat_cntr;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
+ gt_cv_func_gnugettext_libintl=yes,
+ gt_cv_func_gnugettext_libintl=no)
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if test "$gt_cv_func_gnugettext_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+ && test "$PACKAGE" != gettext; }; then
+ AC_DEFINE(HAVE_GETTEXT, 1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ dnl If iconv() is in a separate libiconv library, then anyone
+ dnl linking with libintl{.a,.so} also needs to link with
+ dnl libiconv.
+ INTLLIBS="-lintl $LIBICONV"
+ fi
+
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $INTLLIBS"
+ AC_CHECK_FUNCS(dcgettext)
+ LIBS="$gt_save_LIBS"
+
+ dnl Search for GNU msgfmt in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ dnl Search for GNU xgettext in the PATH.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
+
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test "$CATOBJEXT" = "NONE"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ INTLOBJS="\$(GETTOBJS)"
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
+ AC_SUBST(MSGFMT)
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.gmo
+ INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU msgfmt.
+ if test "$GMSGFMT" != ":"; then
+ dnl If it is no GNU msgfmt we define it as : so that the
+ dnl Makefiles still can work.
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found msgfmt program is not GNU msgfmt; ignore it])
+ GMSGFMT=":"
+ fi
+ fi
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+ AC_OUTPUT_COMMANDS(
+ [for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ fi
+ ;;
+ esac
+ done])
+
+
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+
+ dnl These rules are solely for the distribution goal. While doing this
+ dnl we only have to keep exactly one list of the available catalogs
+ dnl in configure.in.
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATALOGS)
+ AC_SUBST(CATOBJEXT)
+ AC_SUBST(GMOFILES)
+ AC_SUBST(INTLLIBS)
+ AC_SUBST(INTLOBJS)
+ AC_SUBST(POFILES)
+ AC_SUBST(POSUB)
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST(DATADIRNAME)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST(INSTOBJEXT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST(GENCAT)
+ ])
+
+dnl Usage: Just like AM_WITH_NLS, which see.
+AC_DEFUN([AM_GNU_GETTEXT],
+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([jm_GLIBC21])dnl
+
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
+getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
+strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
+
+ AM_ICONV
+ AM_LANGINFO_CODESET
+ AM_LC_MESSAGES
+ AM_WITH_NLS([$1],[$2],[$3])
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+ fi
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+ dnl Try to locate is.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+ ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
+
+# serial 2
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ /*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+#serial 2
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([jm_GLIBC21],
+ [
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+ ac_cv_gnu_library_2_1,
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ ac_cv_gnu_library_2_1=yes,
+ ac_cv_gnu_library_2_1=no)
+ ]
+ )
+ AC_SUBST(GLIBC21)
+ GLIBC21="$ac_cv_gnu_library_2_1"
+ ]
+)
+
+#serial AM2
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+
+ AC_ARG_WITH([libiconv-prefix],
+[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
+ for dir in `echo "$withval" | tr : ' '`; do
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
+ done
+ ])
+
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS -liconv"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+ LIBICONV=
+ if test "$am_cv_lib_iconv" = yes; then
+ LIBICONV="-liconv"
+ fi
+ AC_SUBST(LIBICONV)
+])
+
+#serial AM1
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+ [AC_TRY_LINK([#include <langinfo.h>],
+ [char* cs = nl_langinfo(CODESET);],
+ am_cv_langinfo_codeset=yes,
+ am_cv_langinfo_codeset=no)
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
+
+# serial 2
+
+AC_DEFUN([AM_LC_MESSAGES],
+ [if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+ fi])
+
+# Configure paths for GIMP
+# Manish Singh 98-6-11
+# Shamelessly stolen from Owen Taylor
+
+dnl STP_PATH_GIMP([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for GIMP, and define GIMP_CFLAGS and GIMP_LIBS
+dnl
+AC_DEFUN([STP_PATH_GIMP],
+[dnl
+dnl Get the cflags and libraries from the gimptool script
+dnl
+AC_ARG_WITH(gimp-prefix,[ --with-gimp-prefix=PFX Prefix where GIMP is installed (optional)],
+ gimptool_prefix="$withval", gimptool_prefix="")
+AC_ARG_WITH(gimp-exec-prefix,[ --with-gimp-exec-prefix=PFX Exec prefix where GIMP is installed (optional)],
+ gimptool_exec_prefix="$withval", gimptool_exec_prefix="")
+AC_ARG_ENABLE(gimptest, [ --disable-gimptest Do not try to compile and run a test GIMP program],
+ , enable_gimptest=yes)
+
+ if test x$gimptool_exec_prefix != x ; then
+ gimptool_args="$gimptool_args --exec-prefix=$gimptool_exec_prefix"
+ if test x${GIMPTOOL+set} != xset ; then
+ GIMPTOOL=$gimptool_exec_prefix/bin/gimptool-1.2
+ fi
+ fi
+ if test x$gimptool_prefix != x ; then
+ gimptool_args="$gimptool_args --prefix=$gimptool_prefix"
+ if test x${GIMPTOOL+set} != xset ; then
+ GIMPTOOL=$gimptool_prefix/bin/gimptool-1.2
+ fi
+ fi
+
+ AC_PATH_PROGS([GIMPTOOL], [gimptool-1.2 gimptool], no)
+ min_gimp_version=ifelse([$1], ,1.0.0,$1)
+ AC_MSG_CHECKING(for GIMP - version >= $min_gimp_version)
+ no_gimp=""
+ if test "$GIMPTOOL" = "no" ; then
+ no_gimp=yes
+ else
+ GIMP_CFLAGS=`$GIMPTOOL $gimptool_args --cflags`
+ GIMP_LIBS=`$GIMPTOOL $gimptool_args --libs`
+
+ GIMP_CFLAGS_NOUI=`$GIMPTOOL $gimptool_args --cflags-noui`
+ noui_test=`echo $GIMP_CFLAGS_NOUI | sed 's/^\(Usage\).*/\1/'`
+ if test "$noui_test" = "Usage" ; then
+ GIMP_CFLAGS_NOUI=$GIMP_CFLAGS
+ GIMP_LIBS_NOUI=$GIMP_LIBS
+ else
+ GIMP_LIBS_NOUI=`$GIMPTOOL $gimptool_args --libs-noui`
+ fi
+
+ GIMP_DATA_DIR=`$GIMPTOOL $gimptool_args --gimpdatadir`
+ GIMP_PLUGIN_DIR=`$GIMPTOOL $gimptool_args --gimpplugindir`
+ nodatadir_test=`echo $GIMP_DATA_DIR | sed 's/^\(Usage\).*/\1/'`
+ if test "$nodatadir_test" = "Usage" ; then
+ GIMP_DATA_DIR=""
+ GIMP_PLUGIN_DIR=""
+ fi
+
+ gimptool_major_version=`$GIMPTOOL $gimptool_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ gimptool_minor_version=`$GIMPTOOL $gimptool_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ gimptool_micro_version=`$GIMPTOOL $gimptool_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_gimptest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GIMP_CFLAGS"
+ LIBS="$LIBS $GIMP_LIBS"
+dnl
+dnl Now check if the installed GIMP is sufficiently new. (Also sanity
+dnl checks the results of gimptool to some extent
+dnl
+ rm -f conf.gimptest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <libgimp/gimp.h>
+
+#ifndef GIMP_CHECK_VERSION
+#define GIMP_CHECK_VERSION(major, minor, micro) \
+ (GIMP_MAJOR_VERSION > (major) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
+ GIMP_MICRO_VERSION >= (micro)))
+#endif
+
+#if GIMP_CHECK_VERSION(1,1,24)
+GimpPlugInInfo
+#else
+GPlugInInfo
+#endif
+PLUG_IN_INFO =
+{
+ NULL, /* init_proc */
+ NULL, /* quit_proc */
+ NULL, /* query_proc */
+ NULL /* run_proc */
+};
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gimptest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gimp_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gimp_version");
+ exit(1);
+ }
+
+ if (($gimptool_major_version > major) ||
+ (($gimptool_major_version == major) && ($gimptool_minor_version > minor)) ||
+ (($gimptool_major_version == major) && ($gimptool_minor_version == minor) && ($gimptool_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'gimptool --version' returned %d.%d.%d, but the minimum version\n", $gimptool_major_version, $gimptool_minor_version, $gimptool_micro_version);
+ printf("*** of GIMP required is %d.%d.%d. If gimptool is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If gimptool was wrong, set the environment variable GIMPTOOL\n");
+ printf("*** to point to the correct copy of gimptool, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+],, no_gimp=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gimp" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$GIMPTOOL" = "no" ; then
+ echo "*** The gimptool script installed by GIMP could not be found"
+ echo "*** If GIMP was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GIMPTOOL environment variable to the"
+ echo "*** full path to gimptool."
+ else
+ if test -f conf.gimptest ; then
+ :
+ else
+ echo "*** Could not run GIMP test program, checking why..."
+ CFLAGS="$CFLAGS $GIMP_CFLAGS"
+ LIBS="$LIBS $GIMP_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include <libgimp/gimp.h>
+
+#ifndef GIMP_CHECK_VERSION
+#define GIMP_CHECK_VERSION(major, minor, micro) \
+ (GIMP_MAJOR_VERSION > (major) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
+ GIMP_MICRO_VERSION >= (micro)))
+#endif
+
+#if GIMP_CHECK_VERSION(1,1,24)
+GimpPlugInInfo
+#else
+GPlugInInfo
+#endif
+PLUG_IN_INFO =
+{
+ NULL, /* init_proc */
+ NULL, /* quit_proc */
+ NULL, /* query_proc */
+ NULL /* run_proc */
+};
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GIMP or finding the wrong"
+ echo "*** version of GIMP. If it is not finding GIMP, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GIMP was incorrectly installed"
+ echo "*** or that you have moved GIMP since it was installed. In the latter case, you"
+ echo "*** may want to edit the gimptool script: $GIMPTOOL" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GIMP_CFLAGS=""
+ GIMP_LIBS=""
+ GIMP_CFLAGS_NOUI=""
+ GIMP_LIBS_NOUI=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GIMP_CFLAGS)
+ AC_SUBST(GIMP_LIBS)
+ AC_SUBST(GIMP_CFLAGS_NOUI)
+ AC_SUBST(GIMP_LIBS_NOUI)
+ AC_SUBST(GIMP_DATA_DIR)
+ AC_SUBST(GIMP_PLUGIN_DIR)
+ rm -f conf.gimptest
+])
+
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..6f642bf
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,250 @@
+/* config.h.in. Generated automatically from configure.in by autoheader. */
+
+/* Define if using alloca.c. */
+#undef C_ALLOCA
+
+/* Define to empty if the keyword does not work. */
+#undef const
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+ This function is required for alloca.c support on those systems. */
+#undef CRAY_STACKSEG_END
+
+/* Define if you have alloca, as a function or macro. */
+#undef HAVE_ALLOCA
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+#undef HAVE_ALLOCA_H
+
+/* Define if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Define as __inline if that's what the C compiler calls it. */
+#undef inline
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+#undef off_t
+
+/* Define as the return type of signal handlers (int or void). */
+#undef RETSIGTYPE
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+#undef size_t
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+#undef STACK_DIRECTION
+
+/* Define if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define if lex declares yytext as a char * by default, not a char[]. */
+#undef YYTEXT_POINTER
+
+/* Define if libreadline is present */
+#undef HAVE_LIBREADLINE
+
+/* Package locale directory */
+#undef PACKAGE_LOCALE_DIR
+
+/* Define if you have the __argz_count function. */
+#undef HAVE___ARGZ_COUNT
+
+/* Define if you have the __argz_next function. */
+#undef HAVE___ARGZ_NEXT
+
+/* Define if you have the __argz_stringify function. */
+#undef HAVE___ARGZ_STRINGIFY
+
+/* Define if you have the dcgettext function. */
+#undef HAVE_DCGETTEXT
+
+/* Define if you have the feof_unlocked function. */
+#undef HAVE_FEOF_UNLOCKED
+
+/* Define if you have the fgets_unlocked function. */
+#undef HAVE_FGETS_UNLOCKED
+
+/* Define if you have the getcwd function. */
+#undef HAVE_GETCWD
+
+/* Define if you have the getegid function. */
+#undef HAVE_GETEGID
+
+/* Define if you have the geteuid function. */
+#undef HAVE_GETEUID
+
+/* Define if you have the getgid function. */
+#undef HAVE_GETGID
+
+/* Define if you have the getpagesize function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the getuid function. */
+#undef HAVE_GETUID
+
+/* Define if you have the mempcpy function. */
+#undef HAVE_MEMPCPY
+
+/* Define if you have the munmap function. */
+#undef HAVE_MUNMAP
+
+/* Define if you have the nanosleep function. */
+#undef HAVE_NANOSLEEP
+
+/* Define if you have the poll function. */
+#undef HAVE_POLL
+
+/* Define if you have the putenv function. */
+#undef HAVE_PUTENV
+
+/* Define if you have the setenv function. */
+#undef HAVE_SETENV
+
+/* Define if you have the setlocale function. */
+#undef HAVE_SETLOCALE
+
+/* Define if you have the stpcpy function. */
+#undef HAVE_STPCPY
+
+/* Define if you have the strcasecmp function. */
+#undef HAVE_STRCASECMP
+
+/* Define if you have the strchr function. */
+#undef HAVE_STRCHR
+
+/* Define if you have the strdup function. */
+#undef HAVE_STRDUP
+
+/* Define if you have the strtoul function. */
+#undef HAVE_STRTOUL
+
+/* Define if you have the tsearch function. */
+#undef HAVE_TSEARCH
+
+/* Define if you have the usleep function. */
+#undef HAVE_USLEEP
+
+/* Define if you have the xgetcwd function. */
+#undef HAVE_XGETCWD
+
+/* Define if you have the xmalloc function. */
+#undef HAVE_XMALLOC
+
+/* Define if you have the <argz.h> header file. */
+#undef HAVE_ARGZ_H
+
+/* Define if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <nl_types.h> header file. */
+#undef HAVE_NL_TYPES_H
+
+/* Define if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
+
+/* Define if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the <varargs.h> header file. */
+#undef HAVE_VARARGS_H
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Define if maintainer-mode is to be used. */
+#undef HAVE_MAINTAINER_MODE
+
+/* The operating system to build for */
+#undef OSTYPE
+
+/* Define if GNU ld is present. */
+#undef HAVE_GNU_LD
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#undef HAVE_LC_MESSAGES
+
+/* Define to 1 if translation of program messages to the user's native language
+ is requested. */
+#undef ENABLE_NLS
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define if libz is present. */
+#undef HAVE_LIBZ
+
+/* Define if libreadline header is present. */
+#undef HAVE_READLINE_READLINE_H
+
+/* Define if you have the asprintf function. */
+#undef HAVE_ASPRINTF
+
+/* Define if you have the vasprintf function. */
+#undef HAVE_VASPRINTF
+
+/* Define if you have the getopt_long function. */
+#undef HAVE_GETOPT_LONG
+
+/* CUPS data directory. */
+#undef CUPS_DATADIR
+
+/* CUPS PPD PostScript level */
+#undef CUPS_PPD_PS_LEVEL
+
+/* GIMP-Print header to include. */
+#undef INCLUDE_GIMP_PRINT_H
+
+/* Package release date. */
+#undef RELEASE_DATE
+
diff --git a/configure b/configure
new file mode 100755
index 0000000..e67d5c6
--- /dev/null
+++ b/configure
@@ -0,0 +1,11721 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+GIMPPRINT_MAJOR_VERSION=4
+GIMPPRINT_MINOR_VERSION=2
+GIMPPRINT_MICRO_VERSION=7
+GIMPPRINT_EXTRA_VERSION=
+GIMPPRINT_CURRENT_INTERFACE=2
+GIMPPRINT_INTERFACE_AGE=3
+GIMPPRINT_BINARY_AGE=1
+GIMPPRINT_VERSION=$GIMPPRINT_MAJOR_VERSION.$GIMPPRINT_MINOR_VERSION.$GIMPPRINT_MICRO_VERSION$GIMPPRINT_EXTRA_VERSION
+BUILD_GIMP='(automatic)'
+USE_READLINE='yes'
+EXTRA_LIBREADLINE_DEPS=''
+BUILD_CUPS='(automatic)'
+BUILD_TRANSLATED_PPDS='yes'
+USE_LEVEL3_PS='no'
+BUILD_GHOST='no'
+BUILD_FOOMATIC='(automatic)'
+BUILD_FOOMATIC_3='(automatic)'
+BUILD_FOOMATIC_OLDIDS='(automatic)'
+BUILD_IJS='(automatic)'
+BUILD_TEST='no'
+BUILD_TESTPATTERN='no'
+BUILD_ESCPUTIL='yes'
+INSTALL_SAMPLES='yes'
+INSTALL_USER_GUIDE='yes'
+PLUG_IN_PATH='admin-bin'
+ac_help="$ac_help
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer"
+ac_help="$ac_help
+ --with-cups[=PREFIX] build CUPS driver [default=${BUILD_CUPS}, default PREFIX=/usr]"
+ac_help="$ac_help
+ --with-translated-ppds build translated CUPS PPD files [default=${BUILD_TRANSLATED_PPDS}]"
+ac_help="$ac_help
+ --enable-cups-level3-ps Generate PostScript level 3 PPD files [default=no]"
+ac_help="$ac_help
+ --with-ghost build ghostscript driver patch [default=${BUILD_GHOST}]"
+ac_help="$ac_help
+ --with-foomatic build foomatic data files [default=${BUILD_FOOMATIC}]"
+ac_help="$ac_help
+ --with-foomatic3 make use of Foomatic 3.x features [default=${BUILD_FOOMATIC_3}]"
+ac_help="$ac_help
+ --with-foomatic-oldids use old Foomatic printer IDs [default=${BUILD_FOOMATIC_OLDIDS}]"
+ac_help="$ac_help
+ --with-ijs build IJS driver [default=${BUILD_IJS}]"
+ac_help="$ac_help
+ --enable-debug turn on debugging [default=no]"
+ac_help="$ac_help
+ --with-readline turn on readline [default=${USE_READLINE}, default tries -lncurses, -lcurses, -ltermcap]"
+ac_help="$ac_help
+ --with-gimp build GIMP plugin [default=${BUILD_GIMP}]"
+ac_help="$ac_help
+ --with-samples install sample images [default=${INSTALL_SAMPLES}]"
+ac_help="$ac_help
+ --with-user-guide install user guide [default=${INSTALL_USER_GUIDE}]"
+ac_help="$ac_help
+ --enable-escputil build escputil [default=${BUILD_ESCPUTIL}]"
+ac_help="$ac_help
+ --with-testpattern build testpattern generator [default=${BUILD_TESTPATTERN}]"
+ac_help="$ac_help
+ --enable-test build test programs [default=${BUILD_TEST}]"
+ac_help="$ac_help
+ --enable-user-install install GIMP plugin in home directory [default=no]"
+ac_help="$ac_help
+ --enable-shared[=PKGS] build shared libraries [default=yes]"
+ac_help="$ac_help
+ --enable-static[=PKGS] build static libraries [default=yes]"
+ac_help="$ac_help
+ --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
+ac_help="$ac_help
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
+
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+ac_help="$ac_help
+ --disable-libtool-lock avoid locking (might break parallel builds)"
+ac_help="$ac_help
+ --with-pic try to use only PIC/non-PIC objects [default=use both]"
+ac_help="$ac_help
+ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib"
+ac_help="$ac_help
+ --disable-nls do not use Native Language Support"
+ac_help="$ac_help
+ --with-included-gettext use the GNU gettext library included here"
+ac_help="$ac_help
+ --with-gimp-prefix=PFX Prefix where GIMP is installed (optional)"
+ac_help="$ac_help
+ --with-gimp-exec-prefix=PFX Exec prefix where GIMP is installed (optional)"
+ac_help="$ac_help
+ --disable-gimptest Do not try to compile and run a test GIMP program"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=src/main/print-dither.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+ac_aux_dir=
+for ac_dir in scripts $srcdir/scripts; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in scripts $srcdir/scripts" 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+PACKAGE="gimp-print"
+
+
+GIMPPRINT_LIBS="-lgimpprint"
+
+
+ACLOCAL_FLAGS='-I src/main'
+
+
+
+
+
+
+
+
+LT_RELEASE=$GIMPPRINT_MAJOR_VERSION.$GIMPPRINT_MINOR_VERSION
+LT_CURRENT=$GIMPPRINT_CURRENT_INTERFACE
+LT_REVISION=$GIMPPRINT_INTERFACE_AGE
+LT_AGE=$GIMPPRINT_BINARY_AGE
+
+
+
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:826: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+echo "configure:879: checking whether build environment is sane" >&5
+# Just in case
+sleep 1
+echo timestamp > conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftestfile`
+ fi
+ if test "$*" != "X $srcdir/configure conftestfile" \
+ && test "$*" != "X conftestfile $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+ fi
+
+ test "$2" = conftestfile
+ )
+then
+ # Ok.
+ :
+else
+ { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1>&2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1>&6
+if test "$program_transform_name" = s,x,x,; then
+ program_transform_name=
+else
+ # Double any \ or $. echo might interpret backslashes.
+ cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+ rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:936: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=${PACKAGE}
+
+VERSION=${GIMPPRINT_VERSION}
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
+missing_dir=`cd $ac_aux_dir && pwd`
+echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+echo "configure:982: checking for working aclocal" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+ ACLOCAL=aclocal
+ echo "$ac_t""found" 1>&6
+else
+ ACLOCAL="$missing_dir/missing aclocal"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+echo "configure:995: checking for working autoconf" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+ AUTOCONF=autoconf
+ echo "$ac_t""found" 1>&6
+else
+ AUTOCONF="$missing_dir/missing autoconf"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working automake""... $ac_c" 1>&6
+echo "configure:1008: checking for working automake" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (automake --version) < /dev/null > /dev/null 2>&1; then
+ AUTOMAKE=automake
+ echo "$ac_t""found" 1>&6
+else
+ AUTOMAKE="$missing_dir/missing automake"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+echo "configure:1021: checking for working autoheader" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+ AUTOHEADER=autoheader
+ echo "$ac_t""found" 1>&6
+else
+ AUTOHEADER="$missing_dir/missing autoheader"
+ echo "$ac_t""missing" 1>&6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+echo "configure:1034: checking for working makeinfo" >&5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf. Sigh.
+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+ MAKEINFO=makeinfo
+ echo "$ac_t""found" 1>&6
+else
+ MAKEINFO="$missing_dir/missing makeinfo"
+ echo "$ac_t""missing" 1>&6
+fi
+
+
+
+
+
+
+
+ALL_LINGUAS="en_GB sv no fr da pl sk el nl es pt de ja cs nb uk hu"
+
+
+INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_builddir)/include -I\$(top_srcdir)/intl"
+
+
+echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
+echo "configure:1059: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
+
+
+if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ MAINTAINER_MODE=true
+ BUILD_TEST=yes
+ cat >> confdefs.h <<\EOF
+#define HAVE_MAINTAINER_MODE
+EOF
+
+fi
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1097: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+ case $nonopt in
+ NONE)
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+esac
+
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+if test x${host_os} = xlinux-gnu ; then
+ OSTYPE="linux"
+elif test "`echo ${host_os} | sed 's/^\(linux\).*$/\1/'`" = "linux" ; then
+ OSTYPE="linux"
+elif test "`echo ${host_os} | sed 's/^\(irix\).*$/\1/'`" = "irix" ; then
+ OSTYPE="irix"
+elif test "`echo ${host_os} | sed 's/^\(darwin\).*$/\1/'`" = "darwin" ; then
+ OSTYPE="darwin"
+else
+ OSTYPE="${host_os}"
+fi
+cat >> confdefs.h <<\EOF
+#define OSTYPE "${OSTYPE}"
+EOF
+
+
+if test x${host_os} = xdarwin; then
+ LIBM=""
+else
+ LIBM="-lm"
+fi
+
+# Extract the first word of "cups-config", so it can be a program name with args.
+set dummy cups-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1142: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_CUPS_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$CUPS_CONFIG" in
+ /*)
+ ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_CUPS_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+CUPS_CONFIG="$ac_cv_path_CUPS_CONFIG"
+if test -n "$CUPS_CONFIG"; then
+ echo "$ac_t""$CUPS_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "${CUPS_CONFIG}" ; then
+ BUILD_CUPS="no"
+else
+ BUILD_CUPS="yes"
+fi
+echo $ac_n "checking whether to build CUPS driver""... $ac_c" 1>&6
+echo "configure:1180: checking whether to build CUPS driver" >&5
+# Check whether --with-cups or --without-cups was given.
+if test "${with_cups+set}" = set; then
+ withval="$with_cups"
+ case "${withval}" in
+ yes) BUILD_CUPS="yes" ; echo "$ac_t""yes" 1>&6 ; cups_prefix="/usr" ;;
+ no) BUILD_CUPS="no" ; echo "$ac_t""no" 1>&6 ; cups_prefix="/usr" ;;
+ *) if test -d ${withval} ; then
+ BUILD_CUPS="yes"
+ echo "$ac_t""yes (using specified prefix)" 1>&6
+ cups_prefix="${withval}"
+ else
+ echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: ${withval}: no such directory for --with-cups" 1>&2; exit 1; }
+ fi ;;
+ esac
+else
+ echo "$ac_t""${BUILD_CUPS}" 1>&6 ; cups_prefix="${prefix}"
+fi
+
+
+
+
+echo $ac_n "checking whether to build translated CUPS PPD files""... $ac_c" 1>&6
+echo "configure:1204: checking whether to build translated CUPS PPD files" >&5
+# Check whether --with-translated-ppds or --without-translated-ppds was given.
+if test "${with_translated_ppds+set}" = set; then
+ withval="$with_translated_ppds"
+ case "${withval}" in
+ yes) BUILD_TRANSLATED_PPDS="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_TRANSLATED_PPDS="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-translated-ppds" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_TRANSLATED_PPDS}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to use level 3 PostScript""... $ac_c" 1>&6
+echo "configure:1220: checking whether to use level 3 PostScript" >&5
+# Check whether --enable-cups-level3-ppds or --disable-cups-level3-ppds was given.
+if test "${enable_cups_level3_ppds+set}" = set; then
+ enableval="$enable_cups_level3_ppds"
+ case "${enableval}" in
+ yes) USE_LEVEL3_PS=yes ; echo "$ac_t""yes" 1>&6 ;;
+ no) USE_LEVEL3_PS=no ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${enableval} for --enable-cups-level3-ps" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${USE_LEVEL3_PS}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to build ghostscript driver""... $ac_c" 1>&6
+echo "configure:1236: checking whether to build ghostscript driver" >&5
+# Check whether --with-ghost or --without-ghost was given.
+if test "${with_ghost+set}" = set; then
+ withval="$with_ghost"
+ case "${withval}" in
+ yes) BUILD_GHOST="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_GHOST="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-ghost" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_GHOST}" 1>&6
+fi
+
+
+# Extract the first word of "foomatic-configure", so it can be a program name with args.
+set dummy foomatic-configure; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1254: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_FOOMATIC_CONFIGURE'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$FOOMATIC_CONFIGURE" in
+ /*)
+ ac_cv_path_FOOMATIC_CONFIGURE="$FOOMATIC_CONFIGURE" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_FOOMATIC_CONFIGURE="$FOOMATIC_CONFIGURE" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_FOOMATIC_CONFIGURE="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+FOOMATIC_CONFIGURE="$ac_cv_path_FOOMATIC_CONFIGURE"
+if test -n "$FOOMATIC_CONFIGURE"; then
+ echo "$ac_t""$FOOMATIC_CONFIGURE" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "${FOOMATIC_CONFIGURE}" ; then
+ BUILD_FOOMATIC="no"
+else
+ BUILD_FOOMATIC="yes"
+fi
+echo $ac_n "checking whether to build foomatic data files""... $ac_c" 1>&6
+echo "configure:1292: checking whether to build foomatic data files" >&5
+# Check whether --with-foomatic or --without-foomatic was given.
+if test "${with_foomatic+set}" = set; then
+ withval="$with_foomatic"
+ case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_FOOMATIC="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-foomatic" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_FOOMATIC}" 1>&6
+fi
+
+
+# Extract the first word of "foomatic-ppdfile", so it can be a program name with args.
+set dummy foomatic-ppdfile; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1310: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_FOOMATIC_PPDFILE'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$FOOMATIC_PPDFILE" in
+ /*)
+ ac_cv_path_FOOMATIC_PPDFILE="$FOOMATIC_PPDFILE" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_FOOMATIC_PPDFILE="$FOOMATIC_PPDFILE" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_FOOMATIC_PPDFILE="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+FOOMATIC_PPDFILE="$ac_cv_path_FOOMATIC_PPDFILE"
+if test -n "$FOOMATIC_PPDFILE"; then
+ echo "$ac_t""$FOOMATIC_PPDFILE" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "${FOOMATIC_PPDFILE}" ; then
+ BUILD_FOOMATIC_3="no"
+else
+ BUILD_FOOMATIC_3="yes"
+fi
+echo $ac_n "checking whether to make use of Foomatic 3.x features""... $ac_c" 1>&6
+echo "configure:1348: checking whether to make use of Foomatic 3.x features" >&5
+# Check whether --with-foomatic3 or --without-foomatic3 was given.
+if test "${with_foomatic3+set}" = set; then
+ withval="$with_foomatic3"
+ case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; BUILD_FOOMATIC_3="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_FOOMATIC_3="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-foomatic3" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_FOOMATIC_3}" 1>&6
+fi
+
+
+if test "${FOOMATIC_CONFIGURE}" ; then
+ echo $ac_n "checking Foomatic printer IDs""... $ac_c" 1>&6
+echo "configure:1365: checking Foomatic printer IDs" >&5
+ foomatic_libdir=`perl -e 'use Foomatic::Defaults; print "$libdir\n";';`
+ if [ -d $foomatic_libdir/db/source/printer/ ]; then
+ for file in `ls -1 $foomatic_libdir/db/source/printer/`; do
+ if ( grep -q ^${file%.xml} ${srcdir}/src/foomatic/oldprinterids ); then
+ oldids=1
+ echo "$ac_t""Found entry with old Foomatic printer ID!" 1>&6
+ break
+ fi
+ echo -en .
+ done
+ if test -z "${oldids}" ; then
+ echo "$ac_t""No entry with old Foomatic printer ID found!" 1>&6
+ fi
+ else
+ echo "$ac_t""Could't find Foomatic database!" 1>&6
+ fi
+fi
+if test -z "${oldids}" ; then
+ BUILD_FOOMATIC_OLDIDS="no"
+else
+ BUILD_FOOMATIC_OLDIDS="yes"
+fi
+echo $ac_n "checking whether to use the old numerical Foomatic printer IDs""... $ac_c" 1>&6
+echo "configure:1389: checking whether to use the old numerical Foomatic printer IDs" >&5
+# Check whether --with-foomatic-oldids or --without-foomatic-oldids was given.
+if test "${with_foomatic_oldids+set}" = set; then
+ withval="$with_foomatic_oldids"
+ case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; BUILD_FOOMATIC_OLDIDS="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_FOOMATIC_OLDIDS="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-foomatic3" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_FOOMATIC_OLDIDS}" 1>&6
+fi
+
+
+# Extract the first word of "ijs-config", so it can be a program name with args.
+set dummy ijs-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1407: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_IJS_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$IJS_CONFIG" in
+ /*)
+ ac_cv_path_IJS_CONFIG="$IJS_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_IJS_CONFIG="$IJS_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_IJS_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+IJS_CONFIG="$ac_cv_path_IJS_CONFIG"
+if test -n "$IJS_CONFIG"; then
+ echo "$ac_t""$IJS_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "${IJS_CONFIG}" ; then
+ BUILD_IJS="no"
+else
+ BUILD_IJS="yes"
+fi
+echo $ac_n "checking whether to build IJS driver""... $ac_c" 1>&6
+echo "configure:1445: checking whether to build IJS driver" >&5
+# Check whether --with-ijs or --without-ijs was given.
+if test "${with_ijs+set}" = set; then
+ withval="$with_ijs"
+ case "${withval}" in
+ yes) BUILD_IJS="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_IJS="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-ijs" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_IJS}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to turn on debugging in build""... $ac_c" 1>&6
+echo "configure:1461: checking whether to turn on debugging in build" >&5
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+ enableval="$enable_debug"
+ case "${enableval}" in
+ yes) ENABLE_DEBUG="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) ENABLE_DEBUG="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${enableval} for --enable-debug" 1>&2; exit 1; } ;;
+ esac
+else
+ ENABLE_DEBUG="no" ; echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking whether to use readline""... $ac_c" 1>&6
+echo "configure:1477: checking whether to use readline" >&5
+# Check whether --with-readline or --without-readline was given.
+if test "${with_readline+set}" = set; then
+ withval="$with_readline"
+ case "${withval}" in
+ yes) USE_READLINE="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) USE_READLINE="no" ; echo "$ac_t""no" 1>&6 ;;
+ only) USE_READLINE="yes"
+ EXTRA_LIBREADLINE_DEPS=" "
+ echo "$ac_t""yes (using only readline)" 1>&6 ;;
+ *) USE_READLINE="yes"
+ EXTRA_LIBREADLINE_DEPS="${withval}"
+ echo "$ac_t""yes (using extra libraries ${withval})" 1>&6 ;;
+ esac
+else
+ echo "$ac_t""${USE_READLINE}" 1>&6
+fi
+
+
+for ac_prog in gimptool-1.2 gimptool
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1501: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GIMPTOOL_CHECK'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GIMPTOOL_CHECK" in
+ /*)
+ ac_cv_path_GIMPTOOL_CHECK="$GIMPTOOL_CHECK" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GIMPTOOL_CHECK="$GIMPTOOL_CHECK" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GIMPTOOL_CHECK="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+GIMPTOOL_CHECK="$ac_cv_path_GIMPTOOL_CHECK"
+if test -n "$GIMPTOOL_CHECK"; then
+ echo "$ac_t""$GIMPTOOL_CHECK" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$GIMPTOOL_CHECK" && break
+done
+
+if test -z "${GIMPTOOL_CHECK}" ; then
+ BUILD_GIMP="no"
+else
+ # Check we have version 1.2
+ gimptool_check_version=`${GIMPTOOL_CHECK} --version`
+ gimptool_check_major=`echo "$gimptool_check_version" | sed -e 's/\([0-9][0-9]*\).\([0-9][0-9]*\).\([0-9][0-9]*\).*/\1/'`
+ gimptool_check_minor=`echo "$gimptool_check_version" | sed -e 's/\([0-9][0-9]*\).\([0-9][0-9]*\).\([0-9][0-9]*\).*/\2/'`
+ if test "$gimptool_check_major" -eq 1 -a "$gimptool_check_minor" -eq 2; then
+ BUILD_GIMP="yes"
+ else
+ BUILD_GIMP="no"
+ fi
+fi
+echo $ac_n "checking whether to build GIMP plugin""... $ac_c" 1>&6
+echo "configure:1550: checking whether to build GIMP plugin" >&5
+# Check whether --with-gimp or --without-gimp was given.
+if test "${with_gimp+set}" = set; then
+ withval="$with_gimp"
+ case "${withval}" in
+ yes) BUILD_GIMP="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_GIMP="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-gimp" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_GIMP}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to install sample images""... $ac_c" 1>&6
+echo "configure:1566: checking whether to install sample images" >&5
+# Check whether --with-samples or --without-samples was given.
+if test "${with_samples+set}" = set; then
+ withval="$with_samples"
+ case "${withval}" in
+ yes) INSTALL_SAMPLES="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) INSTALL_SAMPLES="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-samples" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${INSTALL_SAMPLES}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to install user guide""... $ac_c" 1>&6
+echo "configure:1582: checking whether to install user guide" >&5
+# Check whether --with-user-guide or --without-user-guide was given.
+if test "${with_user_guide+set}" = set; then
+ withval="$with_user_guide"
+ case "${withval}" in
+ yes) INSTALL_USER_GUIDE="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) INSTALL_USER_GUIDE="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${withval} for --with-user-guide" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${INSTALL_USER_GUIDE}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to build escputil""... $ac_c" 1>&6
+echo "configure:1598: checking whether to build escputil" >&5
+# Check whether --enable-escputil or --disable-escputil was given.
+if test "${enable_escputil+set}" = set; then
+ enableval="$enable_escputil"
+ case "${enableval}" in
+ yes) BUILD_ESCPUTIL="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_ESCPUTIL="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${enableval} for --enable-escputil" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_ESCPUTIL}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to build testpattern generator""... $ac_c" 1>&6
+echo "configure:1614: checking whether to build testpattern generator" >&5
+# Check whether --with-testpattern or --without-testpattern was given.
+if test "${with_testpattern+set}" = set; then
+ withval="$with_testpattern"
+ case "${withval}" in
+ yes) BUILD_TESTPATTERN="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_TESTPATTERN="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${enableval} for --enable-testpattern" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_TESTPATTERN}" 1>&6
+fi
+
+
+echo $ac_n "checking whether to build test programs""... $ac_c" 1>&6
+echo "configure:1630: checking whether to build test programs" >&5
+# Check whether --enable-test or --disable-test was given.
+if test "${enable_test+set}" = set; then
+ enableval="$enable_test"
+ case "${enableval}" in
+ yes) BUILD_TEST="yes" ; echo "$ac_t""yes" 1>&6 ;;
+ no) BUILD_TEST="no" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${enableval} for --enable-test" 1>&2; exit 1; } ;;
+ esac
+else
+ echo "$ac_t""${BUILD_TEST}" 1>&6
+fi
+
+
+echo $ac_n "checking if user install is enabled""... $ac_c" 1>&6
+echo "configure:1646: checking if user install is enabled" >&5
+# Check whether --enable-user-install or --disable-user-install was given.
+if test "${enable_user_install+set}" = set; then
+ enableval="$enable_user_install"
+ case "${enableval}" in
+ yes) PLUG_IN_PATH="bin" ; echo "$ac_t""yes" 1>&6 ;;
+ no) PLUG_IN_PATH="admin-bin" ; echo "$ac_t""no" 1>&6 ;;
+ *) echo "$ac_t""unknown" 1>&6
+ { echo "configure: error: bad value ${enableval} for --enable-user-install" 1>&2; exit 1; } ;;
+ esac
+else
+ PLUG_IN_PATH="admin-bin" ; echo "$ac_t""no" 1>&6
+fi
+
+
+
+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+
+ echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
+echo "configure:1666: checking for strerror in -lcposix" >&5
+ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lcposix $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1674 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strerror();
+
+int main() {
+strerror()
+; return 0; }
+EOF
+if { (eval echo configure:1685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS -lcposix"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+
+for ac_prog in mawk gawk nawk awk
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1712: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_AWK="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+AWK="$ac_cv_prog_AWK"
+if test -n "$AWK"; then
+ echo "$ac_t""$AWK" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$AWK" && break
+done
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1744: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1774: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$CC"; then
+ case "`uname -s`" in
+ *win32* | *WIN32*)
+ # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1825: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="cl"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+ ;;
+ esac
+ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1857: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 1868 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:1873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:1899: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:1904: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1913: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1932: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1975: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:2028: checking whether ln -s works" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+ rm -f conftestdata
+ ac_cv_prog_LN_S="ln -s"
+else
+ ac_cv_prog_LN_S=ln
+fi
+fi
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+for ac_prog in 'bison -y' byacc
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2053: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_YACC="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+YACC="$ac_cv_prog_YACC"
+if test -n "$YACC"; then
+ echo "$ac_t""$YACC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:2084: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 2099 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2105: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 2116 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2122: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+#line 2133 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+missing_dir=`cd $ac_aux_dir && pwd`
+for ac_prog in flex lex
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2169: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$LEX"; then
+ ac_cv_prog_LEX="$LEX" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_LEX="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+LEX="$ac_cv_prog_LEX"
+if test -n "$LEX"; then
+ echo "$ac_t""$LEX" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$LEX" && break
+done
+test -n "$LEX" || LEX=""$missing_dir/missing flex""
+
+# Extract the first word of "flex", so it can be a program name with args.
+set dummy flex; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2202: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$LEX"; then
+ ac_cv_prog_LEX="$LEX" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_LEX="flex"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex"
+fi
+fi
+LEX="$ac_cv_prog_LEX"
+if test -n "$LEX"; then
+ echo "$ac_t""$LEX" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$LEXLIB"
+then
+ case "$LEX" in
+ flex*) ac_lib=fl ;;
+ *) ac_lib=l ;;
+ esac
+ echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
+echo "configure:2236: checking for yywrap in -l$ac_lib" >&5
+ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-l$ac_lib $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2244 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char yywrap();
+
+int main() {
+yywrap()
+; return 0; }
+EOF
+if { (eval echo configure:2255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LEXLIB="-l$ac_lib"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking lex output file root""... $ac_c" 1>&6
+echo "configure:2278: checking lex output file root" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # The minimal lex program is just a single line: %%. But some broken lexes
+# (Solaris, I think it was) want two %% lines, so accommodate them.
+echo '%%
+%%' | $LEX
+if test -f lex.yy.c; then
+ ac_cv_prog_lex_root=lex.yy
+elif test -f lexyy.c; then
+ ac_cv_prog_lex_root=lexyy
+else
+ { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; }
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
+LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
+
+echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
+echo "configure:2299: checking whether yytext is a pointer" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # POSIX says lex can declare yytext either as a pointer or an array; the
+# default is implementation-dependent. Figure out which it is, since
+# not all implementations provide the %pointer and %array declarations.
+ac_cv_prog_lex_yytext_pointer=no
+echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
+ac_save_LIBS="$LIBS"
+LIBS="$LIBS $LEXLIB"
+cat > conftest.$ac_ext <<EOF
+#line 2311 "configure"
+#include "confdefs.h"
+`cat $LEX_OUTPUT_ROOT.c`
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_prog_lex_yytext_pointer=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+rm -f "${LEX_OUTPUT_ROOT}.c"
+
+fi
+
+echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6
+if test $ac_cv_prog_lex_yytext_pointer = yes; then
+ cat >> confdefs.h <<\EOF
+#define YYTEXT_POINTER 1
+EOF
+
+fi
+
+# Extract the first word of "bison", so it can be a program name with args.
+set dummy bison; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2342: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_BISON_PROG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$BISON_PROG" in
+ /*)
+ ac_cv_path_BISON_PROG="$BISON_PROG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_BISON_PROG="$BISON_PROG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_BISON_PROG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+BISON_PROG="$ac_cv_path_BISON_PROG"
+if test -n "$BISON_PROG"; then
+ echo "$ac_t""$BISON_PROG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "yacc", so it can be a program name with args.
+set dummy yacc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2377: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_YACC_PROG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$YACC_PROG" in
+ /*)
+ ac_cv_path_YACC_PROG="$YACC_PROG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_YACC_PROG="$YACC_PROG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_YACC_PROG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+YACC_PROG="$ac_cv_path_YACC_PROG"
+if test -n "$YACC_PROG"; then
+ echo "$ac_t""$YACC_PROG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2412: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$PERL" in
+ /*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_PERL="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+PERL="$ac_cv_path_PERL"
+if test -n "$PERL"; then
+ echo "$ac_t""$PERL" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "convert", so it can be a program name with args.
+set dummy convert; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2447: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_CONVERT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$CONVERT" in
+ /*)
+ ac_cv_path_CONVERT="$CONVERT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_CONVERT="$CONVERT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_CONVERT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+CONVERT="$ac_cv_path_CONVERT"
+if test -n "$CONVERT"; then
+ echo "$ac_t""$CONVERT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${CONVERT} = x ; then
+ echo "configure: warning: PostScript user's guide cannot be regenerated!" 1>&2
+ fi
+fi
+# Extract the first word of "texi2html", so it can be a program name with args.
+set dummy texi2html; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2487: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_TEXI2HTML'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$TEXI2HTML" in
+ /*)
+ ac_cv_path_TEXI2HTML="$TEXI2HTML" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_TEXI2HTML="$TEXI2HTML" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_TEXI2HTML="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+TEXI2HTML="$ac_cv_path_TEXI2HTML"
+if test -n "$TEXI2HTML"; then
+ echo "$ac_t""$TEXI2HTML" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${TEXI2HTML} = x ; then
+ echo "configure: warning: HTML documentation cannot be regenerated!" 1>&2
+ fi
+fi
+# Extract the first word of "dvips", so it can be a program name with args.
+set dummy dvips; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2527: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DVIPS'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$DVIPS" in
+ /*)
+ ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_DVIPS="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+DVIPS="$ac_cv_path_DVIPS"
+if test -n "$DVIPS"; then
+ echo "$ac_t""$DVIPS" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DVIPS} = x ; then
+ echo "configure: warning: PostScript documentation cannot be regenerated!" 1>&2
+ fi
+fi
+# Extract the first word of "db2pdf", so it can be a program name with args.
+set dummy db2pdf; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2567: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DB2PDF'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$DB2PDF" in
+ /*)
+ ac_cv_path_DB2PDF="$DB2PDF" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_DB2PDF="$DB2PDF" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_DB2PDF="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+DB2PDF="$ac_cv_path_DB2PDF"
+if test -n "$DB2PDF"; then
+ echo "$ac_t""$DB2PDF" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PDF} = x ; then
+ echo "configure: warning: PDF user's guide cannot be regenerated!" 1>&2
+ fi
+fi
+for ac_prog in dvipdf dvipdfm
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2609: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DVIPDF'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$DVIPDF" in
+ /*)
+ ac_cv_path_DVIPDF="$DVIPDF" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_DVIPDF="$DVIPDF" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_DVIPDF="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+DVIPDF="$ac_cv_path_DVIPDF"
+if test -n "$DVIPDF"; then
+ echo "$ac_t""$DVIPDF" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$DVIPDF" && break
+done
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DVIPDF} = x ; then
+ echo "configure: warning: PDF documentation cannot be regenerated!" 1>&2
+ fi
+fi
+# Extract the first word of "db2ps", so it can be a program name with args.
+set dummy db2ps; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2652: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DB2PS'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$DB2PS" in
+ /*)
+ ac_cv_path_DB2PS="$DB2PS" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_DB2PS="$DB2PS" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_DB2PS="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+DB2PS="$ac_cv_path_DB2PS"
+if test -n "$DB2PS"; then
+ echo "$ac_t""$DB2PS" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PS} = x ; then
+ echo "configure: warning: PostScript user's guide cannot be regenerated!" 1>&2
+ fi
+fi
+# Extract the first word of "db2html", so it can be a program name with args.
+set dummy db2html; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2692: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DB2HTML'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$DB2HTML" in
+ /*)
+ ac_cv_path_DB2HTML="$DB2HTML" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_DB2HTML="$DB2HTML" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_DB2HTML="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+DB2HTML="$ac_cv_path_DB2HTML"
+if test -n "$DB2HTML"; then
+ echo "$ac_t""$DB2HTML" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PS} = x ; then
+ echo "configure: warning: HTML user's guide cannot be regenerated!" 1>&2
+ fi
+fi
+if test x${BUILD_FOOMATIC} = xyes ; then
+ # Extract the first word of "foomatic-kitload", so it can be a program name with args.
+set dummy foomatic-kitload; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2733: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_FOOMATIC_KITLOAD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$FOOMATIC_KITLOAD" in
+ /*)
+ ac_cv_path_FOOMATIC_KITLOAD="$FOOMATIC_KITLOAD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_FOOMATIC_KITLOAD="$FOOMATIC_KITLOAD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH:/usr/sbin:/usr/local/sbin"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_FOOMATIC_KITLOAD="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+FOOMATIC_KITLOAD="$ac_cv_path_FOOMATIC_KITLOAD"
+if test -n "$FOOMATIC_KITLOAD"; then
+ echo "$ac_t""$FOOMATIC_KITLOAD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test -z "$FOOMATIC_KITLOAD" ; then
+ echo "configure: warning: Cannot find foomatic-kitload; attempt to install foomatic will fail" 1>&2
+ fi
+fi
+
+if test x${BUILD_IJS} = xyes ; then
+ if test -z "$IJS_CONFIG" ; then
+ { echo "configure: error: Cannot find ijs-config; please ensure ijs 0.30 is installed" 1>&2; exit 1; };
+ fi
+ IJS_CFLAGS=`$IJS_CONFIG --cflags`
+ IJS_LIBS=`$IJS_CONFIG --libs`
+fi
+
+# AC_DISABLE_STATIC
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:2791: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2796 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:2807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_cygwin=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:2824: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2829 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:2836: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_mingw32=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_shared=yes
+fi
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval="$enable_static"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_static=yes
+fi
+
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_fast_install=yes
+fi
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:2922: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+ case $nonopt in
+ NONE) build_alias=$host_alias ;;
+ *) build_alias=$nonopt ;;
+ esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
+echo "configure:2951: checking for ld used by GCC" >&5
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
+echo "configure:2981: checking for GNU ld" >&5
+else
+ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+echo "configure:2984: checking for non-GNU ld" >&5
+fi
+if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$ac_t""$LD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
+echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
+echo "configure:3019: checking if the linker ($LD) is GNU ld" >&5
+if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ lt_cv_prog_gnu_ld=yes
+else
+ lt_cv_prog_gnu_ld=no
+fi
+fi
+
+echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
+echo "configure:3036: checking for $LD option to reload object files" >&5
+if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+
+echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
+reload_flag=$lt_cv_ld_reload_flag
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+
+echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
+echo "configure:3048: checking for BSD-compatible nm" >&5
+if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/${ac_tool_prefix}nm
+ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ else
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+
+NM="$lt_cv_path_NM"
+echo "$ac_t""$NM" 1>&6
+
+echo $ac_n "checking for a sed that does not truncate output""... $ac_c" 1>&6
+echo "configure:3086: checking for a sed that does not truncate output" >&5
+if eval "test \"`echo '$''{'lt_cv_path_SED'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_executable_p="test -f"
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+
+ # Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=$TMPDIR/sed$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+}
+ _max=0
+ _count=0
+ # Add /usr/xpg4/bin/sed as it is typically found on Solaris
+ # along with /bin/sed that truncates output.
+ for _sed in $_sed_list /usr/xpg4/bin/sed; do
+ test ! -f ${_sed} && break
+ cat /dev/null > "$tmp/sed.in"
+ _count=0
+ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in"
+ # Check for GNU sed and select it if it is found.
+ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then
+ lt_cv_path_SED=${_sed}
+ break
+ fi
+ while true; do
+ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
+ mv "$tmp/sed.tmp" "$tmp/sed.in"
+ cp "$tmp/sed.in" "$tmp/sed.nl"
+ echo >>"$tmp/sed.nl"
+ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break
+ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
+ # 40000 chars as input seems more than enough
+ test $_count -gt 10 && break
+ _count=`expr $_count + 1`
+ if test $_count -gt $_max; then
+ _max=$_count
+ lt_cv_path_SED=$_sed
+ fi
+ done
+ done
+ rm -rf "$tmp"
+
+fi
+
+if test "X$SED" != "X"; then
+ lt_cv_path_SED=$SED
+else
+ SED=$lt_cv_path_SED
+fi
+echo "$ac_t""$SED" 1>&6
+
+echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6
+echo "configure:3170: checking how to recognise dependent libraries" >&5
+if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi4*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin* | mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+ ;;
+ *) # Darwin 1.3 on
+ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ ;;
+ esac
+ ;;
+
+freebsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20*|hpux11*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ irix5* | nonstopux*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ case $host_cpu in
+ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*)
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+openbsd*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+ else
+ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+
+sysv5uw[78]* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+
+echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+echo "configure:3356: checking for object suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ rm -f conftest*
+echo 'int i = 1;' > conftest.$ac_ext
+if { (eval echo configure:3362: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ for ac_file in conftest.*; do
+ case $ac_file in
+ *.c) ;;
+ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+ esac
+ done
+else
+ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_objext" 1>&6
+OBJEXT=$ac_cv_objext
+ac_objext=$ac_cv_objext
+
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:3382: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+ ac_cv_exeext=.exe
+else
+ rm -f conftest*
+ echo 'int main () { return 0; }' > conftest.$ac_ext
+ ac_cv_exeext=
+ if { (eval echo configure:3392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj) ;;
+ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ else
+ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ rm -f conftest*
+ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+if test $host != $build; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6
+echo "configure:3423: checking command to parse $NM output" >&5
+if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris* | sysv5*)
+ symcode='[BDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $host_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ symcode='[ABCDGISTW]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if { (eval echo configure:3506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { (eval echo configure:3509: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if { (eval echo configure:3560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+ global_symbol_to_c_name_address=
+else
+ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
+ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+fi
+if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
+then
+ echo "$ac_t""failed" 1>&6
+else
+ echo "$ac_t""ok" 1>&6
+fi
+
+for ac_hdr in dlfcn.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3609: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3614 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
+echo "configure:3655: checking for ${ac_tool_prefix}file" >&5
+if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="/usr/bin:$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$ac_t""$MAGIC_CMD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ echo $ac_n "checking for file""... $ac_c" 1>&6
+echo "configure:3717: checking for file" >&5
+if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="/usr/bin:$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$ac_t""$MAGIC_CMD" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3788: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_RANLIB"; then
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3820: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+else
+ RANLIB=":"
+fi
+fi
+
+# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3855: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+ echo "$ac_t""$STRIP" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_STRIP"; then
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3887: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_STRIP="strip"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+ echo "$ac_t""$STRIP" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+else
+ STRIP=":"
+fi
+fi
+
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+ :
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 3936 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:3937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
+echo "configure:3958: checking whether the C compiler needs -belf" >&5
+if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ cat > conftest.$ac_ext <<EOF
+#line 3971 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:3978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ lt_cv_cc_needs_belf=no
+fi
+rm -f conftest*
+ ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+fi
+
+echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+need_locks="$enable_libtool_lock"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+if test x"$host" != x"$build"; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case $host_os in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="$2"
+
+echo $ac_n "checking for objdir""... $ac_c" 1>&6
+echo "configure:4098: checking for objdir" >&5
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+echo "$ac_t""$objdir" 1>&6
+
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+ withval="$with_pic"
+ pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+test -z "$pic_mode" && pic_mode=default
+
+# We assume here that the value for lt_cv_prog_cc_pic will not be cached
+# in isolation, and that seeing it set (from the cache) indicates that
+# the associated values are set (in the cache) correctly too.
+echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6
+echo "configure:4125: checking for $compiler option to produce PIC" >&5
+if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_shlib=
+ lt_cv_prog_cc_wl=
+ lt_cv_prog_cc_static=
+ lt_cv_prog_cc_no_builtin=
+ lt_cv_prog_cc_can_build_shared=$can_build_shared
+
+ if test "$GCC" = yes; then
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-static'
+
+ case $host_os in
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # not sure about C++ programs.
+ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_cv_prog_cc_pic='-fno-common'
+ ;;
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_cv_prog_cc_pic=-Kconform_pic
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for PIC flags for the system compiler.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ lt_cv_prog_cc_wl='-Wl,'
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
+ lt_cv_prog_cc_pic='+Z'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ # PIC (with -KPIC) is the default.
+ ;;
+
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+
+ newsos6)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ # All OSF/1 code is PIC.
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_cv_prog_cc_pic='-Kpic'
+ lt_cv_prog_cc_static='-dn'
+ lt_cv_prog_cc_shlib='-belf'
+ ;;
+
+ solaris*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ sunos4*)
+ lt_cv_prog_cc_pic='-PIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Qoption ld '
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ uts4*)
+ lt_cv_prog_cc_pic='-pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_cv_prog_cc_pic='-Kconform_pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ fi
+ ;;
+
+ *)
+ lt_cv_prog_cc_can_build_shared=no
+ ;;
+ esac
+ fi
+
+fi
+
+if test -z "$lt_cv_prog_cc_pic"; then
+ echo "$ac_t""none" 1>&6
+else
+ echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6
+
+ # Check to make sure the pic_flag actually works.
+ echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6
+echo "configure:4273: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
+ if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
+ cat > conftest.$ac_ext <<EOF
+#line 4280 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:4287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ case $host_os in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then
+ # they create non-PIC objects. So, if there were any warnings, we
+ # assume that PIC is not supported.
+ if test -s conftest.err; then
+ lt_cv_prog_cc_pic_works=no
+ else
+ lt_cv_prog_cc_pic_works=yes
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic_works=yes
+ ;;
+ esac
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ lt_cv_prog_cc_pic_works=no
+
+fi
+rm -f conftest*
+ CFLAGS="$save_CFLAGS"
+
+fi
+
+
+ if test "X$lt_cv_prog_cc_pic_works" = Xno; then
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_can_build_shared=no
+ else
+ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
+ fi
+
+ echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6
+fi
+
+# Check for any special shared library compilation flags.
+if test -n "$lt_cv_prog_cc_shlib"; then
+ echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then :
+ else
+ echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6
+echo "configure:4339: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
+if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ lt_cv_prog_cc_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
+ cat > conftest.$ac_ext <<EOF
+#line 4347 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:4354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ lt_cv_prog_cc_static_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+
+
+# Belt *and* braces to stop my trousers falling down:
+test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
+echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6
+
+pic_flag="$lt_cv_prog_cc_pic"
+special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
+wl="$lt_cv_prog_cc_wl"
+link_static_flag="$lt_cv_prog_cc_static"
+no_builtin_flag="$lt_cv_prog_cc_no_builtin"
+can_build_shared="$lt_cv_prog_cc_can_build_shared"
+
+
+# Check to see if options -o and -c are simultaneously supported by compiler
+echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6
+echo "configure:4381: checking if $compiler supports -c -o file.$ac_objext" >&5
+if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+echo "int some_variable = 0;" > conftest.$ac_ext
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
+compiler_c_o=no
+if { (eval echo configure:4400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ lt_cv_compiler_c_o=no
+ else
+ lt_cv_compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&5
+ lt_cv_compiler_c_o=no
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+
+fi
+
+compiler_c_o=$lt_cv_compiler_c_o
+echo "$ac_t""$compiler_c_o" 1>&6
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6
+echo "configure:4429: checking if $compiler supports -c -o file.lo" >&5
+ if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ lt_cv_compiler_o_lo=no
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ save_objext="$ac_objext"
+ ac_objext=lo
+ cat > conftest.$ac_ext <<EOF
+#line 4440 "configure"
+#include "confdefs.h"
+
+int main() {
+int some_variable = 0;
+; return 0; }
+EOF
+if { (eval echo configure:4447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ lt_cv_compiler_o_lo=no
+ else
+ lt_cv_compiler_o_lo=yes
+ fi
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ ac_objext="$save_objext"
+ CFLAGS="$save_CFLAGS"
+
+fi
+
+ compiler_o_lo=$lt_cv_compiler_o_lo
+ echo "$ac_t""$compiler_o_lo" 1>&6
+else
+ compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6
+echo "configure:4478: checking if we can lock with hard links" >&5
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$ac_t""$hard_links" 1>&6
+ if test "$hard_links" = no; then
+ echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+if test "$GCC" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6
+echo "configure:4497: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
+ compiler_rtti_exceptions=no
+ cat > conftest.$ac_ext <<EOF
+#line 4503 "configure"
+#include "confdefs.h"
+
+int main() {
+int some_variable = 0;
+; return 0; }
+EOF
+if { (eval echo configure:4510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ compiler_rtti_exceptions=no
+ else
+ compiler_rtti_exceptions=yes
+ fi
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ CFLAGS="$save_CFLAGS"
+ echo "$ac_t""$compiler_rtti_exceptions" 1>&6
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+fi
+
+# See if the linker supports building shared libraries.
+echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6
+echo "configure:4537: checking whether the linker ($LD) supports shared libraries" >&5
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+old_archive_from_expsyms_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_into_libs=no
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+link_all_deplibs=unknown
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+extract_expsyms_cmds=
+
+case $host_os in
+cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX, the GNU linker is very broken
+ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
+ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
+ test -f $output_objdir/impgen.exe || (cd $output_objdir && \
+ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+ else $CC -o impgen impgen.c ; fi)~
+ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
+
+ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+
+ # cygwin and mingw dlls have different entry points and sets of symbols
+ # to exclude.
+ # FIXME: what about values for MSVC?
+ dll_entry=__cygwin_dll_entry@12
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
+ case $host_os in
+ mingw*)
+ # mingw values
+ dll_entry=_DllMainCRTStartup@12
+ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
+ ;;
+ esac
+
+ # mingw and cygwin differ, and it's simplest to just exclude the union
+ # of the two symbol sets.
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one (in ltdll.c)
+ if test "x$lt_cv_need_dllmain" = "xyes"; then
+ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+ else
+ ltdll_obj=
+ ltdll_cmds=
+ fi
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ # Be careful not to strip the DATA tag left be newer dlltools.
+ export_symbols_cmds="$ltdll_cmds"'
+ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
+
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+ _lt_hint=1;
+ cat $export_symbols | while read symbol; do
+ set dummy \$symbol;
+ case \$# in
+ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+ 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;;
+ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
+ esac;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done;
+ fi~
+ '"$ltdll_cmds"'
+ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
+ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
+ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = yes; then
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # dlltool doesn't understand --whole-archive et. al.
+ whole_archive_flag_spec=
+ ;;
+ *)
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ ;;
+ esac
+ fi
+else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ hardcode_direct=yes
+ archive_cmds=''
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ shared_flag='${wl}-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall can do strange things, so it is better to
+ # generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='${wl}-berok'
+ # This is a bit strange, but is similar to how AIX traditionally builds
+ # it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag='-undefined suppress'
+ ;;
+ *) # Darwin 1.3 on
+ allow_undefined_flag='-flat_namespace -undefined suppress'
+ ;;
+ esac
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes. Also zsh mangles
+ # `"' quotes if we put them in here... so don't!
+ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
+ # We need to add '_' to the symbols in $export_symbols first
+ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ whole_archive_flag_spec='-all_load $convenience'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ case $host_os in
+ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
+ esac
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ #Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ ;;
+
+ solaris*)
+ # gcc --version < 3.0 without binutils cannot create self contained
+ # shared libraries reliably, requiring libgcc.a to resolve some of
+ # the object symbols generated in some cases. Libraries that use
+ # assert need libgcc.a to resolve __eprintf, for example. Linking
+ # a copy of libgcc.a into every shared library to guarantee resolving
+ # such symbols causes other problems: According to Tim Van Holder
+ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
+ # (to the application) exception stack for one thing.
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ case `$CC --version 2>/dev/null` in
+ [12].*)
+ cat <<EOF 1>&2
+
+*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
+*** create self contained shared libraries on Solaris systems, without
+*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
+*** -no-undefined support, which will at least allow you to build shared
+*** libraries. However, you may find that when you link such libraries
+*** into an application without using GCC, you have to manually add
+*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
+*** upgrade to a newer version of GCC. Another option is to rebuild your
+*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
+
+EOF
+ no_undefined_flag=
+ ;;
+ esac
+ fi
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5uw7* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+echo "$ac_t""$ld_shlibs" 1>&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+# Check hardcoding attributes.
+echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6
+echo "configure:5236: checking how to hardcode library paths into programs" >&5
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var"; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+echo "$ac_t""$hardcode_action" 1>&6
+
+striplib=
+old_striplib=
+echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6
+echo "configure:5264: checking whether stripping libraries is possible" >&5
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+# PORTME Fill in your ld.so characteristics
+echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6
+echo "configure:5278: checking dynamic linker characteristics" >&5
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}.so$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can
+ # not hardcode correct soname into executable. Probably we can
+ # add versioning support to collect2, so additional links can
+ # be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}.so$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ hardcode_into_libs=yes
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ export_dynamic_flag_spec=-rdynamic
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ need_version=no
+ need_lib_prefix=no
+ case $GCC,$host_os in
+ yes,cygwin*)
+ library_names_spec='$libname.dll.a'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog .libs/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ ;;
+ yes,mingw*)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"`
+ ;;
+ yes,pw32*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
+ ;;
+ *)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
+ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ *)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ dynamic_linker="$host_os dld.sl"
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+ soname_spec='${libname}${release}.sl$major'
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *) version_type=irix ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case "$host_os" in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+os2*)
+ libname_spec='$name'
+ need_lib_prefix=no
+ library_names_spec='$libname.dll $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ hardcode_into_libs=yes
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+ soname_spec='$libname.so.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$ac_t""$dynamic_linker" 1>&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+# Report the final consequences.
+echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6
+echo "configure:5689: checking if libtool supports shared libraries" >&5
+echo "$ac_t""$can_build_shared" 1>&6
+
+echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6
+echo "configure:5693: checking whether to build shared libraries" >&5
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$ac_t""$enable_shared" 1>&6
+
+echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6
+echo "configure:5716: checking whether to build static libraries" >&5
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$ac_t""$enable_static" 1>&6
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ *)
+ echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "configure:5757: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5762 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+shl_load();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_shl_load=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "configure:5803: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5811 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load();
+
+int main() {
+shl_load()
+; return 0; }
+EOF
+if { (eval echo configure:5822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "configure:5841: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5846 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+dlopen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_dlopen=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "configure:5887: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ldl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5895 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:5906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
+echo "configure:5925: checking for dlopen in -lsvld" >&5
+ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lsvld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5933 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:5944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+echo "configure:5963: checking for dld_link in -ldld" >&5
+ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-ldld $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5971 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link();
+
+int main() {
+dld_link()
+; return 0; }
+EOF
+if { (eval echo configure:5982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+echo "configure:6038: checking whether a program can dlopen itself" >&5
+if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 6048 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo configure:6109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+echo "configure:6132: checking whether a statically linked program can dlopen itself" >&5
+if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 6142 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo configure:6203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6
+echo "configure:6252: checking whether -lc should be explicitly linked in" >&5
+ if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ $rm conftest*
+ echo 'static int dummy;' > conftest.$ac_ext
+
+ if { (eval echo configure:6259: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_cv_prog_cc_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo configure:6272: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+fi
+
+ echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6
+ ;;
+ esac
+fi
+need_lc=${lt_cv_archive_cmds_need_lc-yes}
+
+# The second clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ :
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ test -f Makefile && make "$ltmain"
+fi
+
+if test -f "$ltmain"; then
+ trap "$rm \"${ofile}T\"; exit 1" 1 2 15
+ $rm -f "${ofile}T"
+
+ echo creating $ofile
+
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS SED \
+ AR AR_FLAGS CC LD LN_S NM SHELL \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
+ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
+ old_striplib striplib file_magic_cmd export_symbols_cmds \
+ deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ global_symbol_to_c_name_address \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case $var in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ cat <<__EOF__ > "${ofile}T"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996-2000 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="${SED} -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$need_lc
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# The default C compiler.
+CC=$lt_CC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_pic_flag
+pic_mode=$pic_mode
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$lt_compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "${ofile}T"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ cat <<'EOF' >> "${ofile}T"
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# */
+#
+# #include <stdio.h> /* for printf() */
+# #include <unistd.h> /* for open(), lseek(), read() */
+# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+# #include <string.h> /* for strdup() */
+#
+# /* O_BINARY isn't required (or even defined sometimes) under Unix */
+# #ifndef O_BINARY
+# #define O_BINARY 0
+# #endif
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (dll < 1)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i<nexp; i++)
+# {
+# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+# }
+#
+# return 0;
+# }
+# /* impgen.c ends here */
+
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
+
+ mv -f "${ofile}T" "$ofile" || \
+ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
+ chmod +x "$ofile"
+fi
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+if test "$ac_cv_prog_gnu_ld" = "yes" ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_GNU_LD
+EOF
+
+fi
+
+
+
+if test x"$enable_static" = xyes; then
+ BUILD_GENPPD_STATIC_TRUE=
+ BUILD_GENPPD_STATIC_FALSE='#'
+else
+ BUILD_GENPPD_STATIC_TRUE='#'
+ BUILD_GENPPD_STATIC_FALSE=
+fi
+
+if test "$enable_static" = no -a "$BUILD_CUPS" = yes ; then
+ echo "configure: warning: --enable-static is disabled, but CUPS is being built." 1>&2
+ echo "configure: warning: This may result in a *SILENTLY* incorrect build." 1>&2
+ echo "configure: warning: Please read the release notes carefully!" 1>&2
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:6883: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+ echo "$ac_t""$RANLIB" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:6911: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6916 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6924: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 6941 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 6959 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 6980 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:6991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+ cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:7015: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7020 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this. */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this. */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this. */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in an arm
+ of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:7069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_const=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+ cat >> confdefs.h <<\EOF
+#define const
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:7090: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat > conftest.$ac_ext <<EOF
+#line 7097 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:7104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_inline=$ac_kw; break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+ inline | yes) ;;
+ no) cat >> confdefs.h <<\EOF
+#define inline
+EOF
+ ;;
+ *) cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+echo $ac_n "checking for off_t""... $ac_c" 1>&6
+echo "configure:7130: checking for off_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7135 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_off_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_off_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_off_t" 1>&6
+if test $ac_cv_type_off_t = no; then
+ cat >> confdefs.h <<\EOF
+#define off_t long
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:7163: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7168 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_size_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+ cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:7198: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7203 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if { (eval echo configure:7210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_header_alloca_h=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:7231: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7236 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:7264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_func_alloca_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_func_alloca_works=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+ # that cause trouble. Some versions do not even contain alloca or
+ # contain a buggy version. If you still want to use their alloca,
+ # use ar to extract alloca.o from them instead of compiling alloca.c.
+ ALLOCA=alloca.${ac_objext}
+ cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:7296: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7301 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "webecray" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_os_cray=yes
+else
+ rm -rf conftest*
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7326: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7331 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:7381: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_c_stack_direction=0
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7389 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
+ {
+ addr = &dummy;
+ return find_stack_direction ();
+ }
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+ exit (find_stack_direction() < 0);
+}
+EOF
+if { (eval echo configure:7408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_stack_direction=1
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_stack_direction=-1
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:7433: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7438 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:7443: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in getpagesize
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7472: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7477 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:7525: checking for working mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_mmap_fixed_mapped=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7533 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+ Here is a matrix of mmap possibilities:
+ mmap private not fixed
+ mmap private fixed at somewhere currently unmapped
+ mmap private fixed at somewhere already mapped
+ mmap shared not fixed
+ mmap shared fixed at somewhere currently unmapped
+ mmap shared fixed at somewhere already mapped
+ For private mappings, we should verify that changes cannot be read()
+ back from the file, nor mmap's back from the file at a different
+ address. (There have been systems where private was not correctly
+ implemented like the infamous i386 svr4.0, and systems where the
+ VM page cache was not coherent with the filesystem buffer cache
+ like early versions of FreeBSD and possibly contemporary NetBSD.)
+ For shared mappings, we should conversely verify that changes get
+ propogated back to all the places they're supposed to be.
+
+ Grep wants private fixed already mapped.
+ The main things grep needs to know about mmap are:
+ * does it exist and is it safe to write into the mmap'd area
+ * how to use it (BSD variants) */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h. */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+# include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h. */
+# ifndef HAVE_SYS_PARAM_H
+# define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+# define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+# ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else /* no EXEC_PAGESIZE */
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif /* no CLSIZE */
+# else /* no NBPG */
+# ifdef NBPC
+# define getpagesize() NBPC
+# else /* no NBPC */
+# ifdef PAGESIZE
+# define getpagesize() PAGESIZE
+# endif /* PAGESIZE */
+# endif /* no NBPC */
+# endif /* no NBPG */
+# endif /* no EXEC_PAGESIZE */
+# else /* no HAVE_SYS_PARAM_H */
+# define getpagesize() 8192 /* punt totally */
+# endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
+#else
+char *malloc();
+#endif
+
+int
+main()
+{
+ char *data, *data2, *data3;
+ int i, pagesize;
+ int fd;
+
+ pagesize = getpagesize();
+
+ /*
+ * First, make a file with some known garbage in it.
+ */
+ data = malloc(pagesize);
+ if (!data)
+ exit(1);
+ for (i = 0; i < pagesize; ++i)
+ *(data + i) = rand();
+ umask(0);
+ fd = creat("conftestmmap", 0600);
+ if (fd < 0)
+ exit(1);
+ if (write(fd, data, pagesize) != pagesize)
+ exit(1);
+ close(fd);
+
+ /*
+ * Next, try to mmap the file at a fixed address which
+ * already has something else allocated at it. If we can,
+ * also make sure that we see the same garbage.
+ */
+ fd = open("conftestmmap", O_RDWR);
+ if (fd < 0)
+ exit(1);
+ data2 = malloc(2 * pagesize);
+ if (!data2)
+ exit(1);
+ data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+ if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_FIXED, fd, 0L))
+ exit(1);
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data2 + i))
+ exit(1);
+
+ /*
+ * Finally, make sure that changes to the mapped area
+ * do not percolate back to the file as seen by read().
+ * (This is a bug on some variants of i386 svr4.0.)
+ */
+ for (i = 0; i < pagesize; ++i)
+ *(data2 + i) = *(data2 + i) + 1;
+ data3 = malloc(pagesize);
+ if (!data3)
+ exit(1);
+ if (read(fd, data3, pagesize) != pagesize)
+ exit(1);
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data3 + i))
+ exit(1);
+ close(fd);
+ unlink("conftestmmap");
+ exit(0);
+}
+
+EOF
+if { (eval echo configure:7673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_func_mmap_fixed_mapped=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+
+fi
+
+
+ echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6
+echo "configure:7697: checking whether we are using the GNU C Library 2.1 or newer" >&5
+if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7702 "configure"
+#include "confdefs.h"
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "Lucky GNU user" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_gnu_library_2_1=yes
+else
+ rm -rf conftest*
+ ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
+
+
+
+fi
+
+echo "$ac_t""$ac_cv_gnu_library_2_1" 1>&6
+
+ GLIBC21="$ac_cv_gnu_library_2_1"
+
+
+
+ for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:7738: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7743 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:7748: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \
+getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
+strdup strtoul tsearch __argz_count __argz_stringify __argz_next
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:7779: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7784 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:7807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+
+ # Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then
+ withval="$with_libiconv_prefix"
+
+ for dir in `echo "$withval" | tr : ' '`; do
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
+ done
+
+fi
+
+
+ echo $ac_n "checking for iconv""... $ac_c" 1>&6
+echo "configure:7847: checking for iconv" >&5
+if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat > conftest.$ac_ext <<EOF
+#line 7855 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <iconv.h>
+int main() {
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+; return 0; }
+EOF
+if { (eval echo configure:7865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_func_iconv=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS -liconv"
+ cat > conftest.$ac_ext <<EOF
+#line 7877 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <iconv.h>
+int main() {
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+; return 0; }
+EOF
+if { (eval echo configure:7887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+
+echo "$ac_t""$am_cv_func_iconv" 1>&6
+ if test "$am_cv_func_iconv" = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ICONV 1
+EOF
+
+ echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
+echo "configure:7908: checking for iconv declaration" >&5
+ if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 7914 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:7933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ am_cv_proto_iconv_arg1=""
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ am_cv_proto_iconv_arg1="const"
+fi
+rm -f conftest*
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+fi
+
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ echo "$ac_t""${ac_t:-
+ }$am_cv_proto_iconv" 1>&6
+ cat >> confdefs.h <<EOF
+#define ICONV_CONST $am_cv_proto_iconv_arg1
+EOF
+
+ fi
+ LIBICONV=
+ if test "$am_cv_lib_iconv" = yes; then
+ LIBICONV="-liconv"
+ fi
+
+
+
+ echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6
+echo "configure:7962: checking for nl_langinfo and CODESET" >&5
+if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 7967 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int main() {
+char* cs = nl_langinfo(CODESET);
+; return 0; }
+EOF
+if { (eval echo configure:7974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_langinfo_codeset=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ am_cv_langinfo_codeset=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$am_cv_langinfo_codeset" 1>&6
+ if test $am_cv_langinfo_codeset = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LANGINFO_CODESET 1
+EOF
+
+ fi
+
+ if test $ac_cv_header_locale_h = yes; then
+ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:7997: checking for LC_MESSAGES" >&5
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 8002 "configure"
+#include "confdefs.h"
+#include <locale.h>
+int main() {
+return LC_MESSAGES
+; return 0; }
+EOF
+if { (eval echo configure:8009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
+
+ fi
+ fi
+ echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
+echo "configure:8030: checking whether NLS is requested" >&5
+ # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+ enableval="$enable_nls"
+ USE_NLS=$enableval
+else
+ USE_NLS=yes
+fi
+
+ echo "$ac_t""$USE_NLS" 1>&6
+
+
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ INTLLIBS=
+
+ if test "$USE_NLS" = "yes"; then
+ cat >> confdefs.h <<\EOF
+#define ENABLE_NLS 1
+EOF
+
+ echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
+echo "configure:8052: checking whether included gettext is requested" >&5
+ # Check whether --with-included-gettext or --without-included-gettext was given.
+if test "${with_included_gettext+set}" = set; then
+ withval="$with_included_gettext"
+ nls_cv_force_use_gnu_gettext=$withval
+else
+ nls_cv_force_use_gnu_gettext=no
+fi
+
+ echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ CATOBJEXT=NONE
+
+
+
+
+ ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
+echo "configure:8072: checking for libintl.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 8077 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:8082: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6
+echo "configure:8099: checking for GNU gettext in libc" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 8104 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+int main() {
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr
+; return 0; }
+EOF
+if { (eval echo configure:8113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ gt_cv_func_gnugettext1_libc=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ gt_cv_func_gnugettext1_libc=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6
+
+ if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
+ echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6
+echo "configure:8129: checking for GNU gettext in libintl" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -lintl $LIBICONV"
+ cat > conftest.$ac_ext <<EOF
+#line 8136 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+int main() {
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr
+; return 0; }
+EOF
+if { (eval echo configure:8145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ gt_cv_func_gnugettext1_libintl=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ gt_cv_func_gnugettext1_libintl=no
+fi
+rm -f conftest*
+ LIBS="$gt_save_LIBS"
+fi
+
+echo "$ac_t""$gt_cv_func_gnugettext1_libintl" 1>&6
+ fi
+
+ if test "$gt_cv_func_gnugettext1_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
+ && test "$PACKAGE" != gettext; }; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
+EOF
+
+
+ if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+ INTLLIBS="-lintl $LIBICONV"
+ fi
+
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $INTLLIBS"
+ for ac_func in dcgettext
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:8178: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 8183 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:8206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ LIBS="$gt_save_LIBS"
+
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8235: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$MSGFMT" in
+ /*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ echo "$ac_t""$MSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8269: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GMSGFMT" in
+ /*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+ echo "$ac_t""$GMSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8306: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$XGETTEXT" in
+ /*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ echo "$ac_t""$XGETTEXT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ CATOBJEXT=.gmo
+ fi
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ if test "$CATOBJEXT" = "NONE"; then
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ INTLOBJS="\$(GETTOBJS)"
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8356: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$MSGFMT" in
+ /*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ echo "$ac_t""$MSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8390: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GMSGFMT" in
+ /*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+ echo "$ac_t""$GMSGFMT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8426: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$XGETTEXT" in
+ /*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ echo "$ac_t""$XGETTEXT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ CATOBJEXT=.gmo
+ INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ if test "$GMSGFMT" != ":"; then
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
+ : ;
+ else
+ echo "$ac_t""found msgfmt program is not GNU msgfmt; ignore it" 1>&6
+ GMSGFMT=":"
+ fi
+ fi
+
+ if test "$XGETTEXT" != ":"; then
+ if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
+ : ;
+ else
+ echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
+ XGETTEXT=":"
+ fi
+ fi
+
+ POSUB=po
+ fi
+
+
+
+ if test "$PACKAGE" = gettext; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ for ac_prog in bison
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:8497: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$INTLBISON"; then
+ ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_INTLBISON="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+INTLBISON="$ac_cv_prog_INTLBISON"
+if test -n "$INTLBISON"; then
+ echo "$ac_t""$INTLBISON" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$INTLBISON" && break
+done
+
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ echo $ac_n "checking version of bison""... $ac_c" 1>&6
+echo "configure:8530: checking version of bison" >&5
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ echo "$ac_t""$ac_prog_version" 1>&6
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+
+ for lang in $ALL_LINGUAS; do
+ GMOFILES="$GMOFILES $lang.gmo"
+ POFILES="$POFILES $lang.po"
+ done
+
+
+
+
+
+
+
+
+
+
+
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ DATADIRNAME=share
+
+
+ INSTOBJEXT=.mo
+
+
+ GENCAT=gencat
+
+
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
+echo "configure:8577: checking for catalogs to be installed" >&5
+ NEW_LINGUAS=
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+ fi
+ done
+ LINGUAS=$NEW_LINGUAS
+ echo "$ac_t""$LINGUAS" 1>&6
+ fi
+
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+
+
+ INTL_LIBTOOL_SUFFIX_PREFIX=
+
+
+
+if test x${USE_INCLUDED_LIBINTL} = xyes ; then
+ :
+else
+ GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} ${INTLLIBS}"
+fi
+
+if test "x${prefix}" = "xNONE"; then
+ cat >> confdefs.h <<EOF
+#define PACKAGE_LOCALE_DIR "${ac_default_prefix}/${DATADIRNAME}/locale"
+EOF
+
+else
+ cat >> confdefs.h <<EOF
+#define PACKAGE_LOCALE_DIR "${prefix}/${DATADIRNAME}/locale"
+EOF
+
+fi
+
+if test "$CC" = "gcc" ; then
+ :
+else
+ if test x$ENABLE_DEBUG = xyes ; then
+ CFLAGS="${CFLAGS:=} -g"
+ else
+ CFLAGS="${CFLAGS:=} -O"
+ fi
+fi
+if test "$CC" = "gcc" ; then
+ GNUCFLAGS="-Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -pedantic"
+fi
+
+
+if test "$USE_READLINE" = yes ; then
+ if test "$EXTRA_LIBREADLINE_DEPS" = "" ; then
+ unset ac_cv_lib_readline_readline
+ echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:8653: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lreadline -lncurses $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8661 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:8672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBREADLINE=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_LIBREADLINE=false
+fi
+
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline -lncurses"
+ EXTRA_LIBREADLINE_DEPS=-lncurses
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 1
+EOF
+
+ else
+ unset ac_cv_lib_readline_readline
+ echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:8703: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lreadline -lcurses $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8711 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:8722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBREADLINE=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_LIBREADLINE=false
+fi
+
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline -lcurses"
+ EXTRA_LIBREADLINE_DEPS=-lcurses
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 1
+EOF
+
+ else
+ unset ac_cv_lib_readline_readline
+ echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:8753: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lreadline -ltermcap $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8761 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:8772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBREADLINE=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_LIBREADLINE=false
+fi
+
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline -ltermcap"
+ EXTRA_LIBREADLINE_DEPS=-ltermcap
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 1
+EOF
+
+ else
+ unset ac_cv_lib_readline_readline
+ echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:8803: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lreadline $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8811 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:8822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBREADLINE=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_LIBREADLINE=false
+fi
+
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 1
+EOF
+
+ else
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 0
+EOF
+
+ fi
+ fi
+ fi
+ fi
+ else
+ unset ac_cv_lib_readline_readline
+ echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:8860: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lreadline ${EXTRA_LIBREADLINE_DEPS} $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8868 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:8879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBREADLINE=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_LIBREADLINE=false
+fi
+
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline ${EXTRA_LIBREADLINE_DEPS}"
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 1
+EOF
+
+ else
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 0
+EOF
+
+ fi
+ fi
+else
+ HAVE_LIBREADLINE=false
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBREADLINE 0
+EOF
+
+fi
+
+echo $ac_n "checking for pow in -lm""... $ac_c" 1>&6
+echo "configure:8922: checking for pow in -lm" >&5
+ac_lib_var=`echo m'_'pow | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lm $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8930 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pow();
+
+int main() {
+pow()
+; return 0; }
+EOF
+if { (eval echo configure:8941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} ${LIBM}"
+ CUPS_LIBS="${CUPS_LIBS} ${LIBM}"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test x${BUILD_CUPS} = xyes ; then
+ echo $ac_n "checking for gzgets in -lz""... $ac_c" 1>&6
+echo "configure:8964: checking for gzgets in -lz" >&5
+ac_lib_var=`echo z'_'gzgets | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lz $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8972 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gzgets();
+
+int main() {
+gzgets()
+; return 0; }
+EOF
+if { (eval echo configure:8983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_LIBZ=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_LIBZ=false
+fi
+
+ if test x${HAVE_LIBZ} = xtrue ; then
+ CUPS_LIBS="${CUPS_LIBS} -lz"
+ LIBS="$LIBS -lz"
+ cat >> confdefs.h <<\EOF
+#define HAVE_LIBZ
+EOF
+
+ fi
+ # Extract the first word of "cups-config", so it can be a program name with args.
+set dummy cups-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:9015: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_CUPS_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$CUPS_CONFIG" in
+ /*)
+ ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_CUPS_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+CUPS_CONFIG="$ac_cv_path_CUPS_CONFIG"
+if test -n "$CUPS_CONFIG"; then
+ echo "$ac_t""$CUPS_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test "x$CUPS_CONFIG" != x; then
+ CUPS_LIBS="`$CUPS_CONFIG --ldflags` `$CUPS_CONFIG --image --libs`"
+ CUPS_CFLAGS="`$CUPS_CONFIG --cflags`"
+ else
+ SAVELIBS="$LIBS"
+ LIBS="$LIBS ${CUPS_LIBS}"
+ echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
+echo "configure:9054: checking for socket in -lsocket" >&5
+ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lsocket $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9062 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char socket();
+
+int main() {
+socket()
+; return 0; }
+EOF
+if { (eval echo configure:9073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ if test x${OSTYPE} != xirix ; then
+ CUPS_LIBS="${CUPS_LIBS} -lsocket"
+ LIBS="$LIBS -lsocket"
+ fi
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ echo $ac_n "checking for gethostbyaddr in -lnsl""... $ac_c" 1>&6
+echo "configure:9097: checking for gethostbyaddr in -lnsl" >&5
+ac_lib_var=`echo nsl'_'gethostbyaddr | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lnsl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9105 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyaddr();
+
+int main() {
+gethostbyaddr()
+; return 0; }
+EOF
+if { (eval echo configure:9116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ if test x${OSTYPE} != xirix ; then
+ CUPS_LIBS="${CUPS_LIBS} -lnsl"
+ LIBS="$LIBS -lnsl"
+ fi
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ ac_safe=`echo "openssl/ssl.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for openssl/ssl.h""... $ac_c" 1>&6
+echo "configure:9142: checking for openssl/ssl.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9147 "configure"
+#include "confdefs.h"
+#include <openssl/ssl.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+
+ SSL="no"
+
+ for libcrypto in \
+ "-lcrypto" \
+ "-lcrypto -lrsaref" \
+ "-lcrypto -lRSAglue -lrsaref"
+ do
+ echo $ac_n "checking for SSL_new in -lssl""... $ac_c" 1>&6
+echo "configure:9177: checking for SSL_new in -lssl" >&5
+ac_lib_var=`echo ssl'_'SSL_new | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lssl $libcrypto $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9185 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char SSL_new();
+
+int main() {
+SSL_new()
+; return 0; }
+EOF
+if { (eval echo configure:9196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ CUPS_LIBS="${CUPS_LIBS} -lssl $libcrypto"
+ SSL="yes"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ if test x$SSL = xyes; then
+ break
+ fi
+ done
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ echo $ac_n "checking for cupsPrintFiles in -lcups""... $ac_c" 1>&6
+echo "configure:9228: checking for cupsPrintFiles in -lcups" >&5
+ac_lib_var=`echo cups'_'cupsPrintFiles | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lcups $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9236 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char cupsPrintFiles();
+
+int main() {
+cupsPrintFiles()
+; return 0; }
+EOF
+if { (eval echo configure:9247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ CUPS_LIBS="${CUPS_LIBS} -lcups"
+else
+ echo "$ac_t""no" 1>&6
+LIBS="$LIBS -lcups"
+ { echo "configure: error: Cannot find CUPS libraries (libcups)" 1>&2; exit 1; }
+fi
+
+ echo $ac_n "checking for cupsRasterOpen in -lcupsimage""... $ac_c" 1>&6
+echo "configure:9270: checking for cupsRasterOpen in -lcupsimage" >&5
+ac_lib_var=`echo cupsimage'_'cupsRasterOpen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lcupsimage -lcups $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9278 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char cupsRasterOpen();
+
+int main() {
+cupsRasterOpen()
+; return 0; }
+EOF
+if { (eval echo configure:9289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ CUPS_LIBS="${CUPS_LIBS} -lcupsimage"
+else
+ echo "$ac_t""no" 1>&6
+{ echo "configure: error: Cannot find CUPS libraries (libcupsimage)" 1>&2; exit 1; }
+fi
+
+ LIBS="$SAVELIBS"
+
+ if test "x${cups_prefix}" != "x/usr" -a "x${cups_prefix}" != x; then
+ CUPS_CFLAGS="-I${cups_prefix}/include"
+ else
+ CUPS_CFLAGS=""
+ fi
+ fi
+fi
+
+if test x${BUILD_GIMP} = xyes -o -n "${BUILD_PACKAGE}" ; then
+ # Check whether --with-gimp-prefix or --without-gimp-prefix was given.
+if test "${with_gimp_prefix+set}" = set; then
+ withval="$with_gimp_prefix"
+ gimptool_prefix="$withval"
+else
+ gimptool_prefix=""
+fi
+
+# Check whether --with-gimp-exec-prefix or --without-gimp-exec-prefix was given.
+if test "${with_gimp_exec_prefix+set}" = set; then
+ withval="$with_gimp_exec_prefix"
+ gimptool_exec_prefix="$withval"
+else
+ gimptool_exec_prefix=""
+fi
+
+# Check whether --enable-gimptest or --disable-gimptest was given.
+if test "${enable_gimptest+set}" = set; then
+ enableval="$enable_gimptest"
+ :
+else
+ enable_gimptest=yes
+fi
+
+
+ if test x$gimptool_exec_prefix != x ; then
+ gimptool_args="$gimptool_args --exec-prefix=$gimptool_exec_prefix"
+ if test x${GIMPTOOL+set} != xset ; then
+ GIMPTOOL=$gimptool_exec_prefix/bin/gimptool-1.2
+ fi
+ fi
+ if test x$gimptool_prefix != x ; then
+ gimptool_args="$gimptool_args --prefix=$gimptool_prefix"
+ if test x${GIMPTOOL+set} != xset ; then
+ GIMPTOOL=$gimptool_prefix/bin/gimptool-1.2
+ fi
+ fi
+
+ for ac_prog in gimptool-1.2 gimptool
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:9364: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GIMPTOOL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GIMPTOOL" in
+ /*)
+ ac_cv_path_GIMPTOOL="$GIMPTOOL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GIMPTOOL="$GIMPTOOL" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GIMPTOOL="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+fi
+GIMPTOOL="$ac_cv_path_GIMPTOOL"
+if test -n "$GIMPTOOL"; then
+ echo "$ac_t""$GIMPTOOL" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$GIMPTOOL" && break
+done
+test -n "$GIMPTOOL" || GIMPTOOL="no"
+
+ min_gimp_version=1.2.0
+ echo $ac_n "checking for GIMP - version >= $min_gimp_version""... $ac_c" 1>&6
+echo "configure:9402: checking for GIMP - version >= $min_gimp_version" >&5
+ no_gimp=""
+ if test "$GIMPTOOL" = "no" ; then
+ no_gimp=yes
+ else
+ GIMP_CFLAGS=`$GIMPTOOL $gimptool_args --cflags`
+ GIMP_LIBS=`$GIMPTOOL $gimptool_args --libs`
+
+ GIMP_CFLAGS_NOUI=`$GIMPTOOL $gimptool_args --cflags-noui`
+ noui_test=`echo $GIMP_CFLAGS_NOUI | sed 's/^\(Usage\).*/\1/'`
+ if test "$noui_test" = "Usage" ; then
+ GIMP_CFLAGS_NOUI=$GIMP_CFLAGS
+ GIMP_LIBS_NOUI=$GIMP_LIBS
+ else
+ GIMP_LIBS_NOUI=`$GIMPTOOL $gimptool_args --libs-noui`
+ fi
+
+ GIMP_DATA_DIR=`$GIMPTOOL $gimptool_args --gimpdatadir`
+ GIMP_PLUGIN_DIR=`$GIMPTOOL $gimptool_args --gimpplugindir`
+ nodatadir_test=`echo $GIMP_DATA_DIR | sed 's/^\(Usage\).*/\1/'`
+ if test "$nodatadir_test" = "Usage" ; then
+ GIMP_DATA_DIR=""
+ GIMP_PLUGIN_DIR=""
+ fi
+
+ gimptool_major_version=`$GIMPTOOL $gimptool_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ gimptool_minor_version=`$GIMPTOOL $gimptool_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ gimptool_micro_version=`$GIMPTOOL $gimptool_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ if test "x$enable_gimptest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $GIMP_CFLAGS"
+ LIBS="$LIBS $GIMP_LIBS"
+ rm -f conf.gimptest
+ if test "$cross_compiling" = yes; then
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9443 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <libgimp/gimp.h>
+
+#ifndef GIMP_CHECK_VERSION
+#define GIMP_CHECK_VERSION(major, minor, micro) \
+ (GIMP_MAJOR_VERSION > (major) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
+ GIMP_MICRO_VERSION >= (micro)))
+#endif
+
+#if GIMP_CHECK_VERSION(1,1,24)
+GimpPlugInInfo
+#else
+GPlugInInfo
+#endif
+PLUG_IN_INFO =
+{
+ NULL, /* init_proc */
+ NULL, /* quit_proc */
+ NULL, /* query_proc */
+ NULL /* run_proc */
+};
+
+int main ()
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ system ("touch conf.gimptest");
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = g_strdup("$min_gimp_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gimp_version");
+ exit(1);
+ }
+
+ if (($gimptool_major_version > major) ||
+ (($gimptool_major_version == major) && ($gimptool_minor_version > minor)) ||
+ (($gimptool_major_version == major) && ($gimptool_minor_version == minor) && ($gimptool_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'gimptool --version' returned %d.%d.%d, but the minimum version\n", $gimptool_major_version, $gimptool_minor_version, $gimptool_micro_version);
+ printf("*** of GIMP required is %d.%d.%d. If gimptool is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If gimptool was wrong, set the environment variable GIMPTOOL\n");
+ printf("*** to point to the correct copy of gimptool, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+
+EOF
+if { (eval echo configure:9506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ no_gimp=yes
+fi
+rm -fr conftest*
+fi
+
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_gimp" = x ; then
+ echo "$ac_t""yes" 1>&6
+ SAVE_GTK_LIBS="$GIMP_LIBS"
+ SAVE_GTK_CFLAGS="$GIMP_CFLAGS"
+ else
+ echo "$ac_t""no" 1>&6
+ if test "$GIMPTOOL" = "no" ; then
+ echo "*** The gimptool script installed by GIMP could not be found"
+ echo "*** If GIMP was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the GIMPTOOL environment variable to the"
+ echo "*** full path to gimptool."
+ else
+ if test -f conf.gimptest ; then
+ :
+ else
+ echo "*** Could not run GIMP test program, checking why..."
+ CFLAGS="$CFLAGS $GIMP_CFLAGS"
+ LIBS="$LIBS $GIMP_LIBS"
+ cat > conftest.$ac_ext <<EOF
+#line 9541 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <libgimp/gimp.h>
+
+#ifndef GIMP_CHECK_VERSION
+#define GIMP_CHECK_VERSION(major, minor, micro) \
+ (GIMP_MAJOR_VERSION > (major) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
+ (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
+ GIMP_MICRO_VERSION >= (micro)))
+#endif
+
+#if GIMP_CHECK_VERSION(1,1,24)
+GimpPlugInInfo
+#else
+GPlugInInfo
+#endif
+PLUG_IN_INFO =
+{
+ NULL, /* init_proc */
+ NULL, /* quit_proc */
+ NULL, /* query_proc */
+ NULL /* run_proc */
+};
+
+int main() {
+ return 0;
+; return 0; }
+EOF
+if { (eval echo configure:9572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GIMP or finding the wrong"
+ echo "*** version of GIMP. If it is not finding GIMP, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means GIMP was incorrectly installed"
+ echo "*** or that you have moved GIMP since it was installed. In the latter case, you"
+ echo "*** may want to edit the gimptool script: $GIMPTOOL"
+fi
+rm -f conftest*
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ GIMP_CFLAGS=""
+ GIMP_LIBS=""
+ GIMP_CFLAGS_NOUI=""
+ GIMP_LIBS_NOUI=""
+ { echo "configure: error: Cannot find GIMP libraries: Please run ldconfig as root" 1>&2; exit 1; }
+ fi
+
+
+
+
+
+
+ rm -f conf.gimptest
+
+fi
+
+# Locate the GIMP plugin directory using libtool
+# Extract directory using --dry-run and sed
+if test x${BUILD_GIMP} = xyes ; then
+ echo $ac_n "checking for GIMP plug-in directory""... $ac_c" 1>&6
+echo "configure:9617: checking for GIMP plug-in directory" >&5
+# create temporary "plug-in" to install
+ touch print
+ chmod 755 print
+ GIMPTOOL_OUTPUT=`$GIMPTOOL --dry-run --install-${PLUG_IN_PATH} print`
+ rm print
+ gimp_plug_indir=`echo "$GIMPTOOL_OUTPUT" | sed -e 's/.* \(.*\)\/print/\1/'`
+ echo "$ac_t""$gimp_plug_indir" 1>&6
+else
+ gimp_plug_indir="$libdir/gimp/1.2/plug-ins"
+fi
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:9630: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9635 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9643: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 9660 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 9678 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9699 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:9710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+ cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+ac_safe=`echo "readline/readline.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for readline/readline.h""... $ac_c" 1>&6
+echo "configure:9735: checking for readline/readline.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9740 "configure"
+#include "confdefs.h"
+#include <readline/readline.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_READLINE_READLINE_H=true
+else
+ echo "$ac_t""no" 1>&6
+HAVE_READLINE_READLINE_H=false
+fi
+
+if test x${HAVE_READLINE_READLINE_H} = xtrue ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_READLINE_READLINE_H
+EOF
+
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ LIBREADLINE_DEPS="-lreadline $EXTRA_LIBREADLINE_DEPS"
+ fi
+fi
+
+for ac_hdr in varargs.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9781: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9786 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in stdarg.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9821: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9826 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in fcntl.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9861: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9866 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9871: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in sys/time.h sys/types.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9901: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9906 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9911: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in time.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9941: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9946 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9951: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9981: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 9986 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_hdr in varargs.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:10021: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10026 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:10031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:10059: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10064 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this. */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this. */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this. */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in an arm
+ of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:10113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_const=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+ cat >> confdefs.h <<\EOF
+#define const
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:10134: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat > conftest.$ac_ext <<EOF
+#line 10141 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:10148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_inline=$ac_kw; break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+ inline | yes) ;;
+ no) cat >> confdefs.h <<\EOF
+#define inline
+EOF
+ ;;
+ *) cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+echo $ac_n "checking for off_t""... $ac_c" 1>&6
+echo "configure:10174: checking for off_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10179 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_off_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_off_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_off_t" 1>&6
+if test $ac_cv_type_off_t = no; then
+ cat >> confdefs.h <<\EOF
+#define off_t long
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:10207: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10212 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_size_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+ cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+echo "configure:10240: checking return type of signal handlers" >&5
+if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10245 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+#undef signal
+#endif
+#ifdef __cplusplus
+extern "C" void (*signal (int, void (*)(int)))(int);
+#else
+void (*signal ()) ();
+#endif
+
+int main() {
+int i;
+; return 0; }
+EOF
+if { (eval echo configure:10262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_signal=void
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_type_signal=int
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_type_signal" 1>&6
+cat >> confdefs.h <<EOF
+#define RETSIGTYPE $ac_cv_type_signal
+EOF
+
+
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:10284: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10289 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if { (eval echo configure:10296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_header_alloca_h=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:10317: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10322 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:10350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_func_alloca_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_func_alloca_works=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+ # that cause trouble. Some versions do not even contain alloca or
+ # contain a buggy version. If you still want to use their alloca,
+ # use ar to extract alloca.o from them instead of compiling alloca.c.
+ ALLOCA=alloca.${ac_objext}
+ cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:10382: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10387 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "webecray" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_os_cray=yes
+else
+ rm -rf conftest*
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:10412: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10417 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+ break
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:10467: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_c_stack_direction=0
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10475 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
+ {
+ addr = &dummy;
+ return find_stack_direction ();
+ }
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+ exit (find_stack_direction() < 0);
+}
+EOF
+if { (eval echo configure:10494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_stack_direction=1
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_stack_direction=-1
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+for ac_func in nanosleep poll usleep
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:10518: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10523 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in xgetcwd xmalloc
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:10573: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10578 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
+fi
+done
+
+
+echo $ac_n "checking for asprintf""... $ac_c" 1>&6
+echo "configure:10628: checking for asprintf" >&5
+if eval "test \"`echo '$''{'ac_cv_func_asprintf'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10633 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char asprintf(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char asprintf();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_asprintf) || defined (__stub___asprintf)
+choke me
+#else
+asprintf();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_asprintf=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_asprintf=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'asprintf`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_ASPRINTF
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="${LIBOBJS} vasprintf.o"
+fi
+
+echo $ac_n "checking for vasprintf""... $ac_c" 1>&6
+echo "configure:10680: checking for vasprintf" >&5
+if eval "test \"`echo '$''{'ac_cv_func_vasprintf'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10685 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char vasprintf(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char vasprintf();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_vasprintf) || defined (__stub___vasprintf)
+choke me
+#else
+vasprintf();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_vasprintf=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_vasprintf=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'vasprintf`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_VASPRINTF
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="${LIBOBJS} vasprintf.o"
+fi
+
+
+echo $ac_n "checking for getopt_long""... $ac_c" 1>&6
+echo "configure:10733: checking for getopt_long" >&5
+if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 10738 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char getopt_long(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char getopt_long();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_getopt_long) || defined (__stub___getopt_long)
+choke me
+#else
+getopt_long();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:10761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_getopt_long=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_getopt_long=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'getopt_long`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_GETOPT_LONG
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="${LIBOBJS} getopt.o getopt1.o"
+fi
+
+
+if test x${BUILD_FOOMATIC} = xyes ; then
+ FOOMATIC_NOINST_BIN='$(FOOMATIC_NOINST_BIN)'
+fi
+
+
+if test x${BUILD_FOOMATIC} = xyes; then
+ BUILD_FOOMATIC_TRUE=
+ BUILD_FOOMATIC_FALSE='#'
+else
+ BUILD_FOOMATIC_TRUE='#'
+ BUILD_FOOMATIC_FALSE=
+fi
+
+if test x${BUILD_FOOMATIC_3} = xyes ; then
+ FOOMATIC_3_NOINST_BIN='$(FOOMATIC_3_NOINST_BIN)'
+fi
+
+
+if test x${BUILD_FOOMATIC_3} = xyes; then
+ BUILD_FOOMATIC_3_TRUE=
+ BUILD_FOOMATIC_3_FALSE='#'
+else
+ BUILD_FOOMATIC_3_TRUE='#'
+ BUILD_FOOMATIC_3_FALSE=
+fi
+
+if test x${BUILD_FOOMATIC_OLDIDS} = xyes ; then
+ FOOMATIC_OLDIDS_NOINST_BIN='$(FOOMATIC_OLDIDS_NOINST_BIN)'
+fi
+
+
+if test x${BUILD_FOOMATIC_OLDIDS} = xyes; then
+ BUILD_FOOMATIC_OLDIDS_TRUE=
+ BUILD_FOOMATIC_OLDIDS_FALSE='#'
+else
+ BUILD_FOOMATIC_OLDIDS_TRUE='#'
+ BUILD_FOOMATIC_OLDIDS_FALSE=
+fi
+
+if test x${BUILD_IJS} = xyes ; then
+ IJS_BIN='$(IJS_BIN)'
+fi
+
+
+if test x${BUILD_IJS} = xyes; then
+ BUILD_IJS_TRUE=
+ BUILD_IJS_FALSE='#'
+else
+ BUILD_IJS_TRUE='#'
+ BUILD_IJS_FALSE=
+fi
+
+if test x${BUILD_CUPS} = xyes ; then
+ CUPS_BIN='$(CUPS_BIN)'
+ CUPS_BACKEND_BIN='$(CUPS_BACKEND_BIN)'
+ CUPS_FILTER_BIN='$(CUPS_FILTER_BIN)'
+ CUPS_NOINST_BIN='$(CUPS_NOINST_BIN)'
+ CUPS_MAN='$(CUPS_MAN)'
+ CUPS_PKG='$(CUPS_PKG)'
+ CUPS_CONF='$(CUPS_CONF)'
+fi
+
+
+if test x${BUILD_CUPS} = xyes; then
+ BUILD_CUPS_TRUE=
+ BUILD_CUPS_FALSE='#'
+else
+ BUILD_CUPS_TRUE='#'
+ BUILD_CUPS_FALSE=
+fi
+
+
+
+if test x${BUILD_TRANSLATED_PPDS} = xyes; then
+ BUILD_TRANSLATED_PPDS_TRUE=
+ BUILD_TRANSLATED_PPDS_FALSE='#'
+else
+ BUILD_TRANSLATED_PPDS_TRUE='#'
+ BUILD_TRANSLATED_PPDS_FALSE=
+fi
+
+if test x${USE_LEVEL3_PS} = xyes ; then
+ CUPS_PPD_PS_LEVEL=3
+else
+ CUPS_PPD_PS_LEVEL=2
+fi
+
+
+
+if test x${USE_LEVEL3_PS} = xyes; then
+ USE_LEVEL3_PS_TRUE=
+ USE_LEVEL3_PS_FALSE='#'
+else
+ USE_LEVEL3_PS_TRUE='#'
+ USE_LEVEL3_PS_FALSE=
+fi
+
+
+
+if test x${BUILD_GHOST} = xyes; then
+ BUILD_GHOST_TRUE=
+ BUILD_GHOST_FALSE='#'
+else
+ BUILD_GHOST_TRUE='#'
+ BUILD_GHOST_FALSE=
+fi
+
+if test x${BUILD_ESCPUTIL} = xyes ; then
+ ESCPUTIL_BIN='$(ESCPUTIL_BIN)'
+ ESCPUTIL_MAN='$(ESCPUTIL_MAN)'
+fi
+
+
+if test x${BUILD_ESCPUTIL} = xyes; then
+ BUILD_ESCPUTIL_TRUE=
+ BUILD_ESCPUTIL_FALSE='#'
+else
+ BUILD_ESCPUTIL_TRUE='#'
+ BUILD_ESCPUTIL_FALSE=
+fi
+
+if test x${BUILD_TEST} = xyes ; then
+ TEST_BIN='$(TEST_BIN)'
+fi
+
+
+if test x${BUILD_TEST} = xyes; then
+ BUILD_TEST_TRUE=
+ BUILD_TEST_FALSE='#'
+else
+ BUILD_TEST_TRUE='#'
+ BUILD_TEST_FALSE=
+fi
+
+if test x${BUILD_TESTPATTERN} = xyes ; then
+ TESTPATTERN_BIN='$(TESTPATTERN_BIN)'
+fi
+
+
+if test x${BUILD_TESTPATTERN} = xyes; then
+ BUILD_TESTPATTERN_TRUE=
+ BUILD_TESTPATTERN_FALSE='#'
+else
+ BUILD_TESTPATTERN_TRUE='#'
+ BUILD_TESTPATTERN_FALSE=
+fi
+
+if test x${BUILD_GIMP} = xyes ; then
+ GIMP_BIN='$(GIMP_BIN)'
+fi
+
+
+if test x${BUILD_GIMP} = xyes; then
+ BUILD_GIMP_TRUE=
+ BUILD_GIMP_FALSE='#'
+else
+ BUILD_GIMP_TRUE='#'
+ BUILD_GIMP_FALSE=
+fi
+
+LIBGIMPPRINT_LIBS="\$(top_builddir)/src/main/libgimpprint.la"
+INCLUDE_GIMP_PRINT_H="\"gimp-print/gimp-print.h\""
+
+if test x${INSTALL_SAMPLES} = xyes ; then
+ SAMPLE_IMAGES='$(SAMPLE_IMAGES)'
+fi
+
+
+if test x${INSTALL_SAMPLES} = xyes; then
+ INSTALL_SAMPLES_TRUE=
+ INSTALL_SAMPLES_FALSE='#'
+else
+ INSTALL_SAMPLES_TRUE='#'
+ INSTALL_SAMPLES_FALSE=
+fi
+
+if test x${INSTALL_USER_GUIDE} = xyes ; then
+ USER_GUIDE='$(USER_GUIDE)'
+fi
+
+
+if test x${INSTALL_USER_GUIDE} = xyes; then
+ INSTALL_USER_GUIDE_TRUE=
+ INSTALL_USER_GUIDE_FALSE='#'
+else
+ INSTALL_USER_GUIDE_TRUE='#'
+ INSTALL_USER_GUIDE_FALSE=
+fi
+
+
+if test x${cups_prefix} = xNONE ; then
+ cups_prefix="/usr"
+fi
+if test x${exec_prefix} = xNONE ; then
+ if test "${cups_prefix}" = "/" ; then
+ cups_exec_prefix="/usr"
+ else
+ cups_exec_prefix="${cups_prefix}"
+ fi
+fi
+if test "${bindir}" = "\${prefix}/bin" -a "${cups_prefix}" = "/" ; then
+ cups_bindir="/usr/bin"
+else
+ cups_bindir="${cups_prefix}/bin"
+fi
+
+if test "x$CUPS_CONFIG" != x; then
+ cups_conf_datadir="`$CUPS_CONFIG --datadir`"
+ cups_conf_serverbin="`$CUPS_CONFIG --serverbin`"
+ cups_conf_serverroot="`$CUPS_CONFIG --serverroot`"
+else
+ if test "${datadir}" = "\${prefix}/share" -a "${cups_prefix}" = "/" ; then
+ cups_conf_datadir="/usr/share/cups"
+ else
+ cups_conf_datadir="${cups_prefix}/share/cups"
+ fi
+ if test "${libdir}" = "\${prefix}/lib" -a "${cups_prefix}" = "/" ; then
+ cups_conf_serverbin="/usr/lib/cups"
+ else
+ cups_conf_serverbin="${cups_prefix}/lib/cups"
+ fi
+ if test "${sysconfdir}" = "\${prefix}/etc"; then
+ if test "${cups_prefix}" = "/usr" ; then
+ cups_conf_serverroot="/etc/cups"
+ else
+ cups_conf_serverroot="${cups_prefix}/etc/cups"
+ fi
+ fi
+fi
+
+
+
+
+if test x${USE_NLS} = xyes; then
+ USE_NLS_TRUE=
+ USE_NLS_FALSE='#'
+else
+ USE_NLS_TRUE='#'
+ USE_NLS_FALSE=
+fi
+
+
+LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'`
+LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/.lo/g'`
+
+cat >> confdefs.h <<EOF
+#define CUPS_DATADIR "$cups_conf_datadir"
+EOF
+
+cat >> confdefs.h <<EOF
+#define CUPS_PPD_PS_LEVEL ${CUPS_PPD_PS_LEVEL}
+EOF
+
+
+cat >> confdefs.h <<EOF
+#define INCLUDE_GIMP_PRINT_H ${INCLUDE_GIMP_PRINT_H}
+EOF
+
+RELEASE_DATE="15 Jul 2004"
+cat >> confdefs.h <<EOF
+#define RELEASE_DATE "${RELEASE_DATE}"
+EOF
+
+
+RM='rm'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+gimpprint_libs="${GIMPPRINT_LIBS} ${GIMPPRINT_DEPLIBS}"
+
+
+
+LIBGIMPPRINT_LIBS="${LIBGIMPPRINT_LIBS}"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "
+Makefile doc/Makefile doc/users_guide/Makefile
+include/Makefile include/gimp-print/Makefile include/gimp-print/gimp-print.h
+intl/Makefile lib/Makefile man/Makefile man/escputil.1
+man/gimpprint.3 man/gimpprint-config.1
+man/gimpprint-color.7 man/gimpprint-dithers.7
+man/gimpprint-imagetypes.7 man/gimpprint-inktypes.7
+man/gimpprint-mediasizes.7 man/gimpprint-mediasources.7
+man/gimpprint-mediatypes.7 man/gimpprint-models.7 man/gimpprint-resolutions.7
+man/ijsgimpprint.1 po/Makefile.in samples/Makefile
+src/Makefile src/escputil/Makefile src/gimp/Makefile
+cups-gimpprint.list man/cups-calibrate.8 src/testpattern/Makefile
+src/cups/Makefile src/foomatic/Makefile test/Makefile
+src/foomatic/foomatic-generator src/ghost/Makefile src/ghost/contrib.mak.addon
+src/main/Makefile src/main/gimpprint-config src/printdef/Makefile
+ config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@GIMPPRINT_MAJOR_VERSION@%$GIMPPRINT_MAJOR_VERSION%g
+s%@GIMPPRINT_MINOR_VERSION@%$GIMPPRINT_MINOR_VERSION%g
+s%@GIMPPRINT_MICRO_VERSION@%$GIMPPRINT_MICRO_VERSION%g
+s%@GIMPPRINT_CURRENT_INTERFACE@%$GIMPPRINT_CURRENT_INTERFACE%g
+s%@GIMPPRINT_INTERFACE_AGE@%$GIMPPRINT_INTERFACE_AGE%g
+s%@GIMPPRINT_BINARY_AGE@%$GIMPPRINT_BINARY_AGE%g
+s%@GIMPPRINT_VERSION@%$GIMPPRINT_VERSION%g
+s%@LT_RELEASE@%$LT_RELEASE%g
+s%@LT_CURRENT@%$LT_CURRENT%g
+s%@LT_REVISION@%$LT_REVISION%g
+s%@LT_AGE@%$LT_AGE%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@ALL_LINGUAS@%$ALL_LINGUAS%g
+s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
+s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
+s%@MAINT@%$MAINT%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@CUPS_CONFIG@%$CUPS_CONFIG%g
+s%@FOOMATIC_CONFIGURE@%$FOOMATIC_CONFIGURE%g
+s%@FOOMATIC_PPDFILE@%$FOOMATIC_PPDFILE%g
+s%@IJS_CONFIG@%$IJS_CONFIG%g
+s%@GIMPTOOL_CHECK@%$GIMPTOOL_CHECK%g
+s%@AWK@%$AWK%g
+s%@CC@%$CC%g
+s%@LN_S@%$LN_S%g
+s%@YACC@%$YACC%g
+s%@LEX@%$LEX%g
+s%@LEXLIB@%$LEXLIB%g
+s%@CPP@%$CPP%g
+s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
+s%@BISON_PROG@%$BISON_PROG%g
+s%@YACC_PROG@%$YACC_PROG%g
+s%@PERL@%$PERL%g
+s%@CONVERT@%$CONVERT%g
+s%@TEXI2HTML@%$TEXI2HTML%g
+s%@DVIPS@%$DVIPS%g
+s%@DB2PDF@%$DB2PDF%g
+s%@DVIPDF@%$DVIPDF%g
+s%@DB2PS@%$DB2PS%g
+s%@DB2HTML@%$DB2HTML%g
+s%@FOOMATIC_KITLOAD@%$FOOMATIC_KITLOAD%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@OBJEXT@%$OBJEXT%g
+s%@EXEEXT@%$EXEEXT%g
+s%@ECHO@%$ECHO%g
+s%@RANLIB@%$RANLIB%g
+s%@STRIP@%$STRIP%g
+s%@LIBTOOL@%$LIBTOOL%g
+s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g
+s%@BUILD_GENPPD_STATIC_TRUE@%$BUILD_GENPPD_STATIC_TRUE%g
+s%@BUILD_GENPPD_STATIC_FALSE@%$BUILD_GENPPD_STATIC_FALSE%g
+s%@ALLOCA@%$ALLOCA%g
+s%@GLIBC21@%$GLIBC21%g
+s%@LIBICONV@%$LIBICONV%g
+s%@USE_NLS@%$USE_NLS%g
+s%@MSGFMT@%$MSGFMT%g
+s%@GMSGFMT@%$GMSGFMT%g
+s%@XGETTEXT@%$XGETTEXT%g
+s%@INTLBISON@%$INTLBISON%g
+s%@BUILD_INCLUDED_LIBINTL@%$BUILD_INCLUDED_LIBINTL%g
+s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g
+s%@CATALOGS@%$CATALOGS%g
+s%@CATOBJEXT@%$CATOBJEXT%g
+s%@GMOFILES@%$GMOFILES%g
+s%@INTLLIBS@%$INTLLIBS%g
+s%@INTLOBJS@%$INTLOBJS%g
+s%@POFILES@%$POFILES%g
+s%@POSUB@%$POSUB%g
+s%@DATADIRNAME@%$DATADIRNAME%g
+s%@INSTOBJEXT@%$INSTOBJEXT%g
+s%@GENCAT@%$GENCAT%g
+s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
+s%@INTL_LIBTOOL_SUFFIX_PREFIX@%$INTL_LIBTOOL_SUFFIX_PREFIX%g
+s%@GNUCFLAGS@%$GNUCFLAGS%g
+s%@GIMPTOOL@%$GIMPTOOL%g
+s%@GIMP_CFLAGS@%$GIMP_CFLAGS%g
+s%@GIMP_LIBS@%$GIMP_LIBS%g
+s%@GIMP_CFLAGS_NOUI@%$GIMP_CFLAGS_NOUI%g
+s%@GIMP_LIBS_NOUI@%$GIMP_LIBS_NOUI%g
+s%@GIMP_DATA_DIR@%$GIMP_DATA_DIR%g
+s%@GIMP_PLUGIN_DIR@%$GIMP_PLUGIN_DIR%g
+s%@LIBOBJS@%$LIBOBJS%g
+s%@PRINT_VASPRINTF@%$PRINT_VASPRINTF%g
+s%@BUILD_FOOMATIC_TRUE@%$BUILD_FOOMATIC_TRUE%g
+s%@BUILD_FOOMATIC_FALSE@%$BUILD_FOOMATIC_FALSE%g
+s%@BUILD_FOOMATIC_3_TRUE@%$BUILD_FOOMATIC_3_TRUE%g
+s%@BUILD_FOOMATIC_3_FALSE@%$BUILD_FOOMATIC_3_FALSE%g
+s%@BUILD_FOOMATIC_OLDIDS_TRUE@%$BUILD_FOOMATIC_OLDIDS_TRUE%g
+s%@BUILD_FOOMATIC_OLDIDS_FALSE@%$BUILD_FOOMATIC_OLDIDS_FALSE%g
+s%@BUILD_IJS_TRUE@%$BUILD_IJS_TRUE%g
+s%@BUILD_IJS_FALSE@%$BUILD_IJS_FALSE%g
+s%@BUILD_CUPS_TRUE@%$BUILD_CUPS_TRUE%g
+s%@BUILD_CUPS_FALSE@%$BUILD_CUPS_FALSE%g
+s%@BUILD_TRANSLATED_PPDS_TRUE@%$BUILD_TRANSLATED_PPDS_TRUE%g
+s%@BUILD_TRANSLATED_PPDS_FALSE@%$BUILD_TRANSLATED_PPDS_FALSE%g
+s%@USE_LEVEL3_PS_TRUE@%$USE_LEVEL3_PS_TRUE%g
+s%@USE_LEVEL3_PS_FALSE@%$USE_LEVEL3_PS_FALSE%g
+s%@BUILD_GHOST_TRUE@%$BUILD_GHOST_TRUE%g
+s%@BUILD_GHOST_FALSE@%$BUILD_GHOST_FALSE%g
+s%@BUILD_ESCPUTIL_TRUE@%$BUILD_ESCPUTIL_TRUE%g
+s%@BUILD_ESCPUTIL_FALSE@%$BUILD_ESCPUTIL_FALSE%g
+s%@BUILD_TEST_TRUE@%$BUILD_TEST_TRUE%g
+s%@BUILD_TEST_FALSE@%$BUILD_TEST_FALSE%g
+s%@BUILD_TESTPATTERN_TRUE@%$BUILD_TESTPATTERN_TRUE%g
+s%@BUILD_TESTPATTERN_FALSE@%$BUILD_TESTPATTERN_FALSE%g
+s%@BUILD_GIMP_TRUE@%$BUILD_GIMP_TRUE%g
+s%@BUILD_GIMP_FALSE@%$BUILD_GIMP_FALSE%g
+s%@INSTALL_SAMPLES_TRUE@%$INSTALL_SAMPLES_TRUE%g
+s%@INSTALL_SAMPLES_FALSE@%$INSTALL_SAMPLES_FALSE%g
+s%@INSTALL_USER_GUIDE_TRUE@%$INSTALL_USER_GUIDE_TRUE%g
+s%@INSTALL_USER_GUIDE_FALSE@%$INSTALL_USER_GUIDE_FALSE%g
+s%@USE_NLS_TRUE@%$USE_NLS_TRUE%g
+s%@USE_NLS_FALSE@%$USE_NLS_FALSE%g
+s%@cups_prefix@%$cups_prefix%g
+s%@cups_exec_prefix@%$cups_exec_prefix%g
+s%@cups_bindir@%$cups_bindir%g
+s%@cups_conf_datadir@%$cups_conf_datadir%g
+s%@cups_conf_serverbin@%$cups_conf_serverbin%g
+s%@cups_conf_serverroot@%$cups_conf_serverroot%g
+s%@CUPS_BIN@%$CUPS_BIN%g
+s%@CUPS_BACKEND_BIN@%$CUPS_BACKEND_BIN%g
+s%@CUPS_FILTER_BIN@%$CUPS_FILTER_BIN%g
+s%@CUPS_PKG@%$CUPS_PKG%g
+s%@CUPS_CONF@%$CUPS_CONF%g
+s%@CUPS_INSTALL@%$CUPS_INSTALL%g
+s%@CUPS_CFLAGS@%$CUPS_CFLAGS%g
+s%@CUPS_LIBS@%$CUPS_LIBS%g
+s%@CUPS_MAN@%$CUPS_MAN%g
+s%@CUPS_PPD_PS_LEVEL@%$CUPS_PPD_PS_LEVEL%g
+s%@CUPS_NOINST_BIN@%$CUPS_NOINST_BIN%g
+s%@FOOMATIC_NOINST_BIN@%$FOOMATIC_NOINST_BIN%g
+s%@FOOMATIC_3_NOINST_BIN@%$FOOMATIC_3_NOINST_BIN%g
+s%@FOOMATIC_OLDIDS_NOINST_BIN@%$FOOMATIC_OLDIDS_NOINST_BIN%g
+s%@FOOMATIC_INSTALL@%$FOOMATIC_INSTALL%g
+s%@IJS_BIN@%$IJS_BIN%g
+s%@IJS_INSTALL@%$IJS_INSTALL%g
+s%@IJS_CFLAGS@%$IJS_CFLAGS%g
+s%@IJS_LIBS@%$IJS_LIBS%g
+s%@TEST_BIN@%$TEST_BIN%g
+s%@TESTPATTERN_BIN@%$TESTPATTERN_BIN%g
+s%@RM@%$RM%g
+s%@ESCPUTIL_BIN@%$ESCPUTIL_BIN%g
+s%@ESCPUTIL_MAN@%$ESCPUTIL_MAN%g
+s%@GIMP_BIN@%$GIMP_BIN%g
+s%@gimp_plug_indir@%$gimp_plug_indir%g
+s%@GIMPPRINT_CFLAGS@%$GIMPPRINT_CFLAGS%g
+s%@GIMPPRINT_LIBS@%$GIMPPRINT_LIBS%g
+s%@GIMPPRINT_DEPLIBS@%$GIMPPRINT_DEPLIBS%g
+s%@gimpprint_cflags@%$gimpprint_cflags%g
+s%@gimpprint_libs@%$gimpprint_libs%g
+s%@INCLUDES@%$INCLUDES%g
+s%@LIBM@%$LIBM%g
+s%@LIBGIMPPRINT_LIBS@%$LIBGIMPPRINT_LIBS%g
+s%@LIBREADLINE_DEPS@%$LIBREADLINE_DEPS%g
+s%@LTLIBOBJS@%$LTLIBOBJS%g
+s%@LTALLOCA@%$LTALLOCA%g
+s%@MAIN_BIN@%$MAIN_BIN%g
+s%@MAIN_DAT@%$MAIN_DAT%g
+s%@MAIN_MAN@%$MAIN_MAN%g
+s%@MAIN_SCR@%$MAIN_SCR%g
+s%@MAINTAINER_CFLAGS@%$MAINTAINER_CFLAGS%g
+s%@PLUG_IN_PATH@%$PLUG_IN_PATH%g
+s%@RELEASE_DATE@%$RELEASE_DATE%g
+s%@SAMPLE_IMAGES@%$SAMPLE_IMAGES%g
+s%@USER_GUIDE@%$USER_GUIDE%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile doc/Makefile doc/users_guide/Makefile
+include/Makefile include/gimp-print/Makefile include/gimp-print/gimp-print.h
+intl/Makefile lib/Makefile man/Makefile man/escputil.1
+man/gimpprint.3 man/gimpprint-config.1
+man/gimpprint-color.7 man/gimpprint-dithers.7
+man/gimpprint-imagetypes.7 man/gimpprint-inktypes.7
+man/gimpprint-mediasizes.7 man/gimpprint-mediasources.7
+man/gimpprint-mediatypes.7 man/gimpprint-models.7 man/gimpprint-resolutions.7
+man/ijsgimpprint.1 po/Makefile.in samples/Makefile
+src/Makefile src/escputil/Makefile src/gimp/Makefile
+cups-gimpprint.list man/cups-calibrate.8 src/testpattern/Makefile
+src/cups/Makefile src/foomatic/Makefile test/Makefile
+src/foomatic/foomatic-generator src/ghost/Makefile src/ghost/contrib.mak.addon
+src/main/Makefile src/main/gimpprint-config src/printdef/Makefile
+"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+ CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h. And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+ ac_lines=`grep -c . conftest.vals`
+ # grep -c gives empty output for an empty file on some AIX systems.
+ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+ # Write a limited-size here document to conftest.frag.
+ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+ echo 'CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+ rm -f conftest.vals
+ mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+
+
+exec_prefix=`eval echo ${exec_prefix}`
+prefix=${prefix}
+
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ fi
+ ;;
+ esac
+ done
+
+
+chmod +x src/main/gimpprint-config
+chmod +x src/foomatic/foomatic-generator
+if test -f src/ghost/contrib.mak.addon ; then
+ sed -e 's;${exec_prefix};'"${exec_prefix};" -e 's;${prefix};'"${prefix};" src/ghost/contrib.mak.addon > src/ghost/contrib.mak.addon.tmp
+ mv src/ghost/contrib.mak.addon.tmp src/ghost/contrib.mak.addon
+fi
+echo "Finished configuring."
+echo "Type 'make' to build the package"
+echo "then 'make install' to install it."
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..96706f9
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,967 @@
+dnl $Id: configure.in.in,v 1.103.2.75 2004/06/05 13:57:00 rlk Exp $
+dnl Copyright (C) 2000 Roger Leigh
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(src/main/print-dither.c)
+AC_CONFIG_AUX_DIR(scripts)
+
+PACKAGE="gimp-print"
+
+dnl In the following, there are a the following variants
+dnl of gimpprint cflags and libs variables
+dnl
+dnl GIMPPRINT_CFLAGS: cflags for compiling libraries and example progs
+dnl GIMPPRINT_LIBS: libraries for linking programs. ONLY to be used
+dnl to generate ${gimpprint_libs}
+dnl GIMPPRINT_DEPLIBS: libraries for linking libraries against
+dnl gimpprint_cflags: cflags to store in gimpprint-config
+dnl gimpprint_libs: libs to store in gimpprint-config
+dnl LIBGIMPPRINT_LIBS libs to link programs IN THIS PACKAGE ONLY against
+
+dnl initial default values
+GIMPPRINT_LIBS="-lgimpprint"
+
+dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
+dnl are available for $ac_help expansion (don't we all *love* autoconf?)
+AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+dnl
+dnl MAKING RELEASES (a step-by-step guide!)
+dnl ===============
+dnl
+dnl Since the last release:
+dnl 1. if only source code (not the interface) has changed, set
+dnl GIMPPRINT_MICRO_VERSION += 1;
+dnl GIMPPRINT_INTERFACE_AGE += 1;
+dnl 2. if any functions have been added, removed, or changed, set
+dnl GIMPPRINT_INTERFACE_AGE = 0;
+dnl GIMPPRINT_CURRENT_INTERFACE += 1;
+dnl 3. if interfaces have been added, set
+dnl GIMPPRINT_BINARY_AGE += 1;
+dnl 4. if interfaces have been removed, set
+dnl GIMPPRINT_BINARY_AGE = 0;
+dnl
+dnl For more detailed information, see the libtool info documentation.
+dnl
+GIMPPRINT_MAJOR_VERSION=4
+GIMPPRINT_MINOR_VERSION=2
+GIMPPRINT_MICRO_VERSION=7
+GIMPPRINT_EXTRA_VERSION=
+GIMPPRINT_CURRENT_INTERFACE=2
+GIMPPRINT_INTERFACE_AGE=3
+GIMPPRINT_BINARY_AGE=1
+GIMPPRINT_VERSION=$GIMPPRINT_MAJOR_VERSION.$GIMPPRINT_MINOR_VERSION.$GIMPPRINT_MICRO_VERSION$GIMPPRINT_EXTRA_VERSION
+dnl
+AC_DIVERT_POP()dnl
+
+ACLOCAL_FLAGS='-I src/main'
+AC_SUBST(GIMPPRINT_MAJOR_VERSION)
+AC_SUBST(GIMPPRINT_MINOR_VERSION)
+AC_SUBST(GIMPPRINT_MICRO_VERSION)
+AC_SUBST(GIMPPRINT_CURRENT_INTERFACE)
+AC_SUBST(GIMPPRINT_INTERFACE_AGE)
+AC_SUBST(GIMPPRINT_BINARY_AGE)
+AC_SUBST(GIMPPRINT_VERSION)
+
+dnl libtool versioning
+LT_RELEASE=$GIMPPRINT_MAJOR_VERSION.$GIMPPRINT_MINOR_VERSION
+LT_CURRENT=$GIMPPRINT_CURRENT_INTERFACE
+LT_REVISION=$GIMPPRINT_INTERFACE_AGE
+LT_AGE=$GIMPPRINT_BINARY_AGE
+AC_SUBST(LT_RELEASE)
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+AC_SUBST(LT_AGE)
+
+dnl Initialize automake stuff.
+AM_INIT_AUTOMAKE(${PACKAGE}, ${GIMPPRINT_VERSION})
+dnl AM_ACLOCAL_INCLUDE(m4)
+
+dnl Specify a configuration file.
+AM_CONFIG_HEADER(config.h)
+
+dnl Available languages (translations)
+ALL_LINGUAS="en_GB sv no fr da pl sk el nl es pt de ja cs nb uk hu"
+AC_SUBST(ALL_LINGUAS)
+
+dnl Compiler options and definitions
+INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_builddir)/include -I\$(top_srcdir)/intl"
+
+dnl Defaults
+dnl figure defaults, prior to $ac_help setup
+AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+BUILD_GIMP='(automatic)'
+USE_READLINE='yes'
+EXTRA_LIBREADLINE_DEPS=''
+BUILD_CUPS='(automatic)'
+BUILD_TRANSLATED_PPDS='yes'
+USE_LEVEL3_PS='no'
+BUILD_GHOST='no'
+BUILD_FOOMATIC='(automatic)'
+BUILD_FOOMATIC_3='(automatic)'
+BUILD_FOOMATIC_OLDIDS='(automatic)'
+BUILD_IJS='(automatic)'
+BUILD_TEST='no'
+BUILD_TESTPATTERN='no'
+BUILD_ESCPUTIL='yes'
+INSTALL_SAMPLES='yes'
+INSTALL_USER_GUIDE='yes'
+PLUG_IN_PATH='admin-bin'
+AC_DIVERT_POP()dnl
+
+AM_MAINTAINER_MODE
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ MAINTAINER_MODE=true
+ BUILD_TEST=yes
+ AC_DEFINE(HAVE_MAINTAINER_MODE,, [Define if maintainer-mode is to be used.])
+fi
+
+dnl Check canonical system/host (a kludge: replace me with something better).
+AC_CANONICAL_HOST
+if test x${host_os} = xlinux-gnu ; then
+ OSTYPE="linux"
+elif test "`echo ${host_os} | sed 's/^\(linux\).*$/\1/'`" = "linux" ; then
+ OSTYPE="linux"
+elif test "`echo ${host_os} | sed 's/^\(irix\).*$/\1/'`" = "irix" ; then
+ OSTYPE="irix"
+elif test "`echo ${host_os} | sed 's/^\(darwin\).*$/\1/'`" = "darwin" ; then
+ OSTYPE="darwin"
+else
+ OSTYPE="${host_os}"
+fi
+AC_DEFINE(OSTYPE, ["${OSTYPE}"], [The operating system to build for])
+
+if test x${host_os} = xdarwin; then
+ LIBM=""
+else
+ LIBM="-lm"
+fi
+
+dnl Command line options.
+AC_PATH_PROG(CUPS_CONFIG, cups-config)
+if test -z "${CUPS_CONFIG}" ; then
+ BUILD_CUPS="no"
+else
+ BUILD_CUPS="yes"
+fi
+AC_MSG_CHECKING([whether to build CUPS driver])
+AC_ARG_WITH(cups,
+[ --with-cups[=PREFIX] build CUPS driver [default=${BUILD_CUPS}, default PREFIX=/usr]],
+ [case "${withval}" in
+ yes) BUILD_CUPS="yes" ; AC_MSG_RESULT([yes]) ; cups_prefix="/usr" ;;
+ no) BUILD_CUPS="no" ; AC_MSG_RESULT([no]) ; cups_prefix="/usr" ;;
+ *) if test -d ${withval} ; then
+ BUILD_CUPS="yes"
+ AC_MSG_RESULT([yes (using specified prefix)])
+ cups_prefix="${withval}"
+ else
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([${withval}: no such directory for --with-cups])
+ fi ;;
+ esac],[AC_MSG_RESULT([${BUILD_CUPS}]) ; cups_prefix="${prefix}"])
+
+
+
+AC_MSG_CHECKING([whether to build translated CUPS PPD files])
+AC_ARG_WITH(translated-ppds,
+[ --with-translated-ppds build translated CUPS PPD files [default=${BUILD_TRANSLATED_PPDS}]],
+ [case "${withval}" in
+ yes) BUILD_TRANSLATED_PPDS="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_TRANSLATED_PPDS="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-translated-ppds]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_TRANSLATED_PPDS}])])
+
+AC_MSG_CHECKING([whether to use level 3 PostScript])
+AC_ARG_ENABLE(cups-level3-ppds,
+[ --enable-cups-level3-ps Generate PostScript level 3 PPD files [default=no]],
+ [case "${enableval}" in
+ yes) USE_LEVEL3_PS=yes ; AC_MSG_RESULT([yes]) ;;
+ no) USE_LEVEL3_PS=no ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${enableval} for --enable-cups-level3-ps]) ;;
+ esac],[AC_MSG_RESULT([${USE_LEVEL3_PS}])])
+
+AC_MSG_CHECKING([whether to build ghostscript driver])
+AC_ARG_WITH(ghost,
+[ --with-ghost build ghostscript driver patch [default=${BUILD_GHOST}]],
+ [case "${withval}" in
+ yes) BUILD_GHOST="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_GHOST="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-ghost]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_GHOST}])])
+
+AC_PATH_PROG(FOOMATIC_CONFIGURE, foomatic-configure)
+if test -z "${FOOMATIC_CONFIGURE}" ; then
+ BUILD_FOOMATIC="no"
+else
+ BUILD_FOOMATIC="yes"
+fi
+AC_MSG_CHECKING([whether to build foomatic data files])
+AC_ARG_WITH(foomatic,
+[ --with-foomatic build foomatic data files [default=${BUILD_FOOMATIC}]],
+ [case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_FOOMATIC="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-foomatic]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_FOOMATIC}])])
+
+AC_PATH_PROG(FOOMATIC_PPDFILE, foomatic-ppdfile)
+if test -z "${FOOMATIC_PPDFILE}" ; then
+ BUILD_FOOMATIC_3="no"
+else
+ BUILD_FOOMATIC_3="yes"
+fi
+AC_MSG_CHECKING([whether to make use of Foomatic 3.x features])
+AC_ARG_WITH(foomatic3,
+[ --with-foomatic3 make use of Foomatic 3.x features [default=${BUILD_FOOMATIC_3}]],
+ [case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; BUILD_FOOMATIC_3="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_FOOMATIC_3="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-foomatic3]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_FOOMATIC_3}])])
+
+if test "${FOOMATIC_CONFIGURE}" ; then
+ AC_MSG_CHECKING([Foomatic printer IDs])
+ foomatic_libdir=`perl -e 'use Foomatic::Defaults; print "$libdir\n";';`
+ if [[ -d $foomatic_libdir/db/source/printer/ ]]; then
+ for file in `ls -1 $foomatic_libdir/db/source/printer/`; do
+ if ( grep -q ^${file%.xml} ${srcdir}/src/foomatic/oldprinterids ); then
+ oldids=1
+ AC_MSG_RESULT([Found entry with old Foomatic printer ID!])
+ break
+ fi
+ echo -en .
+ done
+ if test -z "${oldids}" ; then
+ AC_MSG_RESULT([No entry with old Foomatic printer ID found!])
+ fi
+ else
+ AC_MSG_RESULT([Could't find Foomatic database!])
+ fi
+fi
+if test -z "${oldids}" ; then
+ BUILD_FOOMATIC_OLDIDS="no"
+else
+ BUILD_FOOMATIC_OLDIDS="yes"
+fi
+AC_MSG_CHECKING([whether to use the old numerical Foomatic printer IDs])
+AC_ARG_WITH(foomatic-oldids,
+[ --with-foomatic-oldids use old Foomatic printer IDs [default=${BUILD_FOOMATIC_OLDIDS}]],
+ [case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; BUILD_FOOMATIC_OLDIDS="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_FOOMATIC_OLDIDS="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-foomatic3]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_FOOMATIC_OLDIDS}])])
+
+AC_PATH_PROG(IJS_CONFIG, ijs-config)
+if test -z "${IJS_CONFIG}" ; then
+ BUILD_IJS="no"
+else
+ BUILD_IJS="yes"
+fi
+AC_MSG_CHECKING([whether to build IJS driver])
+AC_ARG_WITH(ijs,
+[ --with-ijs build IJS driver [default=${BUILD_IJS}]],
+ [case "${withval}" in
+ yes) BUILD_IJS="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_IJS="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-ijs]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_IJS}])])
+
+AC_MSG_CHECKING([whether to turn on debugging in build])
+AC_ARG_ENABLE(debug,
+[ --enable-debug turn on debugging [default=no]],
+ [case "${enableval}" in
+ yes) ENABLE_DEBUG="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) ENABLE_DEBUG="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
+ esac],[ENABLE_DEBUG="no" ; AC_MSG_RESULT([no])])
+
+AC_MSG_CHECKING([whether to use readline])
+AC_ARG_WITH(readline,
+[ --with-readline turn on readline [default=${USE_READLINE}, default tries -lncurses, -lcurses, -ltermcap]],
+ [case "${withval}" in
+ yes) USE_READLINE="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) USE_READLINE="no" ; AC_MSG_RESULT([no]) ;;
+ only) USE_READLINE="yes"
+ EXTRA_LIBREADLINE_DEPS=" "
+ AC_MSG_RESULT([yes (using only readline)]) ;;
+ *) USE_READLINE="yes"
+ EXTRA_LIBREADLINE_DEPS="${withval}"
+ AC_MSG_RESULT([yes (using extra libraries ${withval})]) ;;
+ esac],[AC_MSG_RESULT([${USE_READLINE}])])
+
+AC_PATH_PROGS([GIMPTOOL_CHECK], [gimptool-1.2 gimptool])
+if test -z "${GIMPTOOL_CHECK}" ; then
+ BUILD_GIMP="no"
+else
+ # Check we have version 1.2
+ gimptool_check_version=`${GIMPTOOL_CHECK} --version`
+dnl Quote to protect sed regexes
+ [gimptool_check_major=`echo "$gimptool_check_version" | sed -e 's/\([0-9][0-9]*\).\([0-9][0-9]*\).\([0-9][0-9]*\).*/\1/'`]
+ [gimptool_check_minor=`echo "$gimptool_check_version" | sed -e 's/\([0-9][0-9]*\).\([0-9][0-9]*\).\([0-9][0-9]*\).*/\2/'`]
+ if test "$gimptool_check_major" -eq 1 -a "$gimptool_check_minor" -eq 2; then
+ BUILD_GIMP="yes"
+ else
+ BUILD_GIMP="no"
+ fi
+fi
+AC_MSG_CHECKING([whether to build GIMP plugin])
+AC_ARG_WITH(gimp,
+[ --with-gimp build GIMP plugin [default=${BUILD_GIMP}]],
+ [case "${withval}" in
+ yes) BUILD_GIMP="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_GIMP="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-gimp]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_GIMP}])])
+
+AC_MSG_CHECKING([whether to install sample images])
+AC_ARG_WITH(samples,
+[ --with-samples install sample images [default=${INSTALL_SAMPLES}]],
+ [case "${withval}" in
+ yes) INSTALL_SAMPLES="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) INSTALL_SAMPLES="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-samples]) ;;
+ esac],[AC_MSG_RESULT([${INSTALL_SAMPLES}])])
+
+AC_MSG_CHECKING([whether to install user guide])
+AC_ARG_WITH(user-guide,
+[ --with-user-guide install user guide [default=${INSTALL_USER_GUIDE}]],
+ [case "${withval}" in
+ yes) INSTALL_USER_GUIDE="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) INSTALL_USER_GUIDE="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-user-guide]) ;;
+ esac],[AC_MSG_RESULT([${INSTALL_USER_GUIDE}])])
+
+AC_MSG_CHECKING([whether to build escputil])
+AC_ARG_ENABLE(escputil,
+[ --enable-escputil build escputil [default=${BUILD_ESCPUTIL}]],
+ [case "${enableval}" in
+ yes) BUILD_ESCPUTIL="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_ESCPUTIL="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${enableval} for --enable-escputil]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_ESCPUTIL}])])
+
+AC_MSG_CHECKING([whether to build testpattern generator])
+AC_ARG_WITH(testpattern,
+[ --with-testpattern build testpattern generator [default=${BUILD_TESTPATTERN}]],
+ [case "${withval}" in
+ yes) BUILD_TESTPATTERN="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_TESTPATTERN="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${enableval} for --enable-testpattern]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_TESTPATTERN}])])
+
+AC_MSG_CHECKING([whether to build test programs])
+AC_ARG_ENABLE(test,
+[ --enable-test build test programs [default=${BUILD_TEST}]],
+ [case "${enableval}" in
+ yes) BUILD_TEST="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_TEST="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${enableval} for --enable-test]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_TEST}])])
+
+AC_MSG_CHECKING([if user install is enabled])
+AC_ARG_ENABLE(user-install,
+[ --enable-user-install install GIMP plugin in home directory [default=no]],
+ [case "${enableval}" in
+ yes) PLUG_IN_PATH="bin" ; AC_MSG_RESULT([yes]) ;;
+ no) PLUG_IN_PATH="admin-bin" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${enableval} for --enable-user-install]) ;;
+ esac],[PLUG_IN_PATH="admin-bin" ; AC_MSG_RESULT([no])])
+
+
+dnl Honour aclocal flags.
+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+dnl Checks for programs.
+AC_ISC_POSIX
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_YACC
+AM_PROG_LEX
+AC_PATH_PROG(BISON_PROG, bison)
+AC_PATH_PROG(YACC_PROG, yacc)
+AC_PATH_PROG(PERL, perl)
+AC_PATH_PROG(CONVERT, convert)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${CONVERT} = x ; then
+ AC_MSG_WARN([PostScript user's guide cannot be regenerated!])
+ fi
+fi
+AC_PATH_PROG(TEXI2HTML, texi2html)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${TEXI2HTML} = x ; then
+ AC_MSG_WARN([HTML documentation cannot be regenerated!])
+ fi
+fi
+AC_PATH_PROG(DVIPS, dvips)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DVIPS} = x ; then
+ AC_MSG_WARN([PostScript documentation cannot be regenerated!])
+ fi
+fi
+AC_PATH_PROG(DB2PDF, db2pdf)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PDF} = x ; then
+ AC_MSG_WARN([PDF user's guide cannot be regenerated!])
+ fi
+fi
+AC_PATH_PROGS(DVIPDF, dvipdf dvipdfm)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DVIPDF} = x ; then
+ AC_MSG_WARN([PDF documentation cannot be regenerated!])
+ fi
+fi
+AC_PATH_PROG(DB2PS, db2ps)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PS} = x ; then
+ AC_MSG_WARN([PostScript user's guide cannot be regenerated!])
+ fi
+fi
+AC_PATH_PROG(DB2HTML, db2html)
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PS} = x ; then
+ AC_MSG_WARN([HTML user's guide cannot be regenerated!])
+ fi
+fi
+dnl foomatic checks
+if test x${BUILD_FOOMATIC} = xyes ; then
+ AC_PATH_PROG(FOOMATIC_KITLOAD, foomatic-kitload,,$PATH:/usr/sbin:/usr/local/sbin)
+ if test -z "$FOOMATIC_KITLOAD" ; then
+ AC_MSG_WARN(Cannot find foomatic-kitload; attempt to install foomatic will fail)
+ fi
+fi
+
+dnl ijs checks
+if test x${BUILD_IJS} = xyes ; then
+ if test -z "$IJS_CONFIG" ; then
+ AC_MSG_ERROR(Cannot find ijs-config; please ensure ijs 0.30 is installed);
+ fi
+ IJS_CFLAGS=`$IJS_CONFIG --cflags`
+ IJS_LIBS=`$IJS_CONFIG --libs`
+fi
+
+dnl Set up libtool scripts.
+dnl Disable static library building to speed up the build
+dnl MRS: This causes problems with --disable-shared
+# AC_DISABLE_STATIC
+AM_PROG_LIBTOOL
+AC_SUBST(LIBTOOL_DEPS)
+dnl define HAVE_GNU_LD if GNU ld is present
+if test "$ac_cv_prog_gnu_ld" = "yes" ; then
+ AC_DEFINE(HAVE_GNU_LD,, [Define if GNU ld is present.])
+fi
+
+AM_CONDITIONAL(BUILD_GENPPD_STATIC, test x"$enable_static" = xyes)
+
+if test "$enable_static" = no -a "$BUILD_CUPS" = yes ; then
+ AC_MSG_WARN([--enable-static is disabled, but CUPS is being built.])
+ AC_MSG_WARN([This may result in a *SILENTLY* incorrect build.])
+ AC_MSG_WARN([Please read the release notes carefully!])
+fi
+
+dnl GNU gettext checks.
+AM_GNU_GETTEXT
+
+if test x${USE_INCLUDED_LIBINTL} = xyes ; then
+ :
+else
+ GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} ${INTLLIBS}"
+fi
+
+dnl Set PACKAGE_LOCALE_DIR in config.h
+if test "x${prefix}" = "xNONE"; then
+ AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale")
+else
+ AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale")
+fi
+
+dnl Compiler flags
+if test "$CC" = "gcc" ; then
+ :
+else
+ if test x$ENABLE_DEBUG = xyes ; then
+ CFLAGS="${CFLAGS:=} -g"
+ else
+ CFLAGS="${CFLAGS:=} -O"
+ fi
+fi
+if test "$CC" = "gcc" ; then
+ GNUCFLAGS="-Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -pedantic"
+fi
+AC_SUBST(GNUCFLAGS)
+
+dnl Checks for libraries.
+dnl When checking readline, check using extra libraries first.
+dnl We want to protect against the link somehow succeeding, but only
+dnl failing at runtime, as seems to happen on some BSD systems.
+if test "$USE_READLINE" = yes ; then
+ if test "$EXTRA_LIBREADLINE_DEPS" = "" ; then
+ unset ac_cv_lib_readline_readline
+ AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true,
+ HAVE_LIBREADLINE=false, -lncurses)
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline -lncurses"
+ EXTRA_LIBREADLINE_DEPS=-lncurses
+ AC_DEFINE(HAVE_LIBREADLINE, [1])
+ else
+ unset ac_cv_lib_readline_readline
+ AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true,
+ HAVE_LIBREADLINE=false, -lcurses)
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline -lcurses"
+ EXTRA_LIBREADLINE_DEPS=-lcurses
+ AC_DEFINE(HAVE_LIBREADLINE, [1])
+ else
+ unset ac_cv_lib_readline_readline
+ AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true,
+ HAVE_LIBREADLINE=false, -ltermcap)
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline -ltermcap"
+ EXTRA_LIBREADLINE_DEPS=-ltermcap
+ AC_DEFINE(HAVE_LIBREADLINE, [1])
+ else
+ unset ac_cv_lib_readline_readline
+ AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true,
+ HAVE_LIBREADLINE=false)
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ AC_DEFINE(HAVE_LIBREADLINE, [1])
+ else
+ AC_DEFINE(HAVE_LIBREADLINE, [0])
+ fi
+ fi
+ fi
+ fi
+ else
+ unset ac_cv_lib_readline_readline
+ AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true,
+ HAVE_LIBREADLINE=false, ${EXTRA_LIBREADLINE_DEPS})
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ echo " Using -lreadline ${EXTRA_LIBREADLINE_DEPS}"
+ AC_DEFINE(HAVE_LIBREADLINE, [1])
+ else
+ AC_DEFINE(HAVE_LIBREADLINE, [0])
+ fi
+ fi
+else
+ HAVE_LIBREADLINE=false
+ AC_DEFINE(HAVE_LIBREADLINE, [0])
+fi
+
+dnl check for libm, and also add to CUPS LIBS
+AC_CHECK_LIB(m,pow,
+ GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} ${LIBM}"
+ CUPS_LIBS="${CUPS_LIBS} ${LIBM}")
+dnl CUPS library checks
+if test x${BUILD_CUPS} = xyes ; then
+ AC_CHECK_LIB(z,gzgets,
+ HAVE_LIBZ=true, HAVE_LIBZ=false)
+ if test x${HAVE_LIBZ} = xtrue ; then
+ CUPS_LIBS="${CUPS_LIBS} -lz"
+ LIBS="$LIBS -lz"
+ AC_DEFINE(HAVE_LIBZ,, [Define if libz is present.])
+ fi
+ AC_PATH_PROG(CUPS_CONFIG, cups-config)
+ if test "x$CUPS_CONFIG" != x; then
+ dnl Use values from CUPS config...
+ CUPS_LIBS="`$CUPS_CONFIG --ldflags` `$CUPS_CONFIG --image --libs`"
+ CUPS_CFLAGS="`$CUPS_CONFIG --cflags`"
+ else
+ dnl Save current library list...
+ SAVELIBS="$LIBS"
+ LIBS="$LIBS ${CUPS_LIBS}"
+ AC_CHECK_LIB(socket,socket,
+ if test x${OSTYPE} != xirix ; then
+ CUPS_LIBS="${CUPS_LIBS} -lsocket"
+ LIBS="$LIBS -lsocket"
+ fi)
+ AC_CHECK_LIB(nsl,gethostbyaddr,
+ if test x${OSTYPE} != xirix ; then
+ CUPS_LIBS="${CUPS_LIBS} -lnsl"
+ LIBS="$LIBS -lnsl"
+ fi)
+
+ dnl Some OS's need to link against crypto stuff too if CUPS is compiled
+ dnl with crypto support... :(
+ AC_CHECK_HEADER(openssl/ssl.h,
+ dnl Some ELF systems can't resolve all the symbols in libcrypto
+ dnl if libcrypto was linked against RSAREF, and fail to link the
+ dnl test program correctly, even though a correct installation
+ dnl of OpenSSL exists. So we test the linking three times in
+ dnl case the RSAREF libraries are needed.
+
+ SSL="no"
+
+ for libcrypto in \
+ "-lcrypto" \
+ "-lcrypto -lrsaref" \
+ "-lcrypto -lRSAglue -lrsaref"
+ do
+ AC_CHECK_LIB(ssl,SSL_new,
+ [CUPS_LIBS="${CUPS_LIBS} -lssl $libcrypto"
+ SSL="yes"],,
+ $libcrypto)
+
+ if test x$SSL = xyes; then
+ break
+ fi
+ done)
+
+ dnl Require CUPS 1.1...
+ AC_CHECK_LIB(cups,cupsPrintFiles,
+ CUPS_LIBS="${CUPS_LIBS} -lcups",
+ LIBS="$LIBS -lcups"
+ AC_MSG_ERROR([Cannot find CUPS libraries (libcups)]))
+ AC_CHECK_LIB(cupsimage,cupsRasterOpen,
+ CUPS_LIBS="${CUPS_LIBS} -lcupsimage",
+ AC_MSG_ERROR([Cannot find CUPS libraries (libcupsimage)]),
+ -lcups)
+ dnl Restore old library list...
+ LIBS="$SAVELIBS"
+
+ dnl Add CUPS include directory as needed...
+ if test "x${cups_prefix}" != "x/usr" -a "x${cups_prefix}" != x; then
+ CUPS_CFLAGS="-I${cups_prefix}/include"
+ else
+ CUPS_CFLAGS=""
+ fi
+ fi
+fi
+
+dnl GIMP library checks
+if test x${BUILD_GIMP} = xyes -o -n "${BUILD_PACKAGE}" ; then
+ STP_PATH_GIMP(1.2.0,
+ [SAVE_GTK_LIBS="$GIMP_LIBS"
+ SAVE_GTK_CFLAGS="$GIMP_CFLAGS"],
+ AC_MSG_ERROR(Cannot find GIMP libraries: Please run ldconfig as root, make sure gimptool is on your PATH, and if applicable ensure that you have the GIMP, GTK, and GLIB development packages installed.))
+fi
+
+# Locate the GIMP plugin directory using libtool
+# Extract directory using --dry-run and sed
+if test x${BUILD_GIMP} = xyes ; then
+ AC_MSG_CHECKING([for GIMP plug-in directory])
+# create temporary "plug-in" to install
+ touch print
+ chmod 755 print
+ GIMPTOOL_OUTPUT=`$GIMPTOOL --dry-run --install-${PLUG_IN_PATH} print`
+ rm print
+ gimp_plug_indir=`echo "$GIMPTOOL_OUTPUT" | sed -e 's/.* \(.*\)\/print/\1/'`
+ AC_MSG_RESULT([$gimp_plug_indir])
+else
+ gimp_plug_indir="$libdir/gimp/1.2/plug-ins"
+fi
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADER(readline/readline.h,
+ HAVE_READLINE_READLINE_H=true,
+ HAVE_READLINE_READLINE_H=false)
+if test x${HAVE_READLINE_READLINE_H} = xtrue ; then
+ AC_DEFINE(HAVE_READLINE_READLINE_H,, [Define if libreadline header is present.])
+ if test x${HAVE_LIBREADLINE} = xtrue ; then
+ LIBREADLINE_DEPS="-lreadline $EXTRA_LIBREADLINE_DEPS"
+ fi
+fi
+
+AC_CHECK_HEADERS(varargs.h)
+AC_CHECK_HEADERS(stdarg.h)
+AC_CHECK_HEADERS(fcntl.h)
+AC_CHECK_HEADERS(sys/time.h sys/types.h)
+AC_CHECK_HEADERS(time.h)
+AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(varargs.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_INLINE
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+AC_TYPE_SIGNAL
+
+dnl Checks for library functions.
+AC_FUNC_ALLOCA
+dnl [commented out while I find a memcmp.c for lib/] AC_FUNC_MEMCMP
+dnl GNU libc memcmp.c is too glibc-dependent to include.
+AC_CHECK_FUNCS(nanosleep poll usleep)
+dnl The following is used to build a "utility library" in lib/
+AC_REPLACE_FUNCS(xgetcwd xmalloc)
+AC_CHECK_FUNC(asprintf,
+ AC_DEFINE(HAVE_ASPRINTF,, [Define if you have the asprintf function.]),
+ LIBOBJS="${LIBOBJS} vasprintf.o")
+AC_CHECK_FUNC(vasprintf,
+ AC_DEFINE(HAVE_VASPRINTF,, [Define if you have the vasprintf function.]),
+ LIBOBJS="${LIBOBJS} vasprintf.o")
+AC_SUBST(PRINT_VASPRINTF)
+AC_CHECK_FUNC(getopt_long,
+ AC_DEFINE(HAVE_GETOPT_LONG,, [Define if you have the getopt_long function.]),
+ LIBOBJS="${LIBOBJS} getopt.o getopt1.o")
+
+dnl Define what has to be built
+if test x${BUILD_FOOMATIC} = xyes ; then
+ FOOMATIC_NOINST_BIN='$(FOOMATIC_NOINST_BIN)'
+fi
+AM_CONDITIONAL(BUILD_FOOMATIC, test x${BUILD_FOOMATIC} = xyes)
+
+if test x${BUILD_FOOMATIC_3} = xyes ; then
+ FOOMATIC_3_NOINST_BIN='$(FOOMATIC_3_NOINST_BIN)'
+fi
+AM_CONDITIONAL(BUILD_FOOMATIC_3, test x${BUILD_FOOMATIC_3} = xyes)
+
+if test x${BUILD_FOOMATIC_OLDIDS} = xyes ; then
+ FOOMATIC_OLDIDS_NOINST_BIN='$(FOOMATIC_OLDIDS_NOINST_BIN)'
+fi
+AM_CONDITIONAL(BUILD_FOOMATIC_OLDIDS, test x${BUILD_FOOMATIC_OLDIDS} = xyes)
+
+if test x${BUILD_IJS} = xyes ; then
+ IJS_BIN='$(IJS_BIN)'
+fi
+AM_CONDITIONAL(BUILD_IJS, test x${BUILD_IJS} = xyes)
+
+if test x${BUILD_CUPS} = xyes ; then
+ CUPS_BIN='$(CUPS_BIN)'
+ CUPS_BACKEND_BIN='$(CUPS_BACKEND_BIN)'
+ CUPS_FILTER_BIN='$(CUPS_FILTER_BIN)'
+ CUPS_NOINST_BIN='$(CUPS_NOINST_BIN)'
+ CUPS_MAN='$(CUPS_MAN)'
+ CUPS_PKG='$(CUPS_PKG)'
+ CUPS_CONF='$(CUPS_CONF)'
+fi
+AM_CONDITIONAL(BUILD_CUPS, test x${BUILD_CUPS} = xyes)
+
+AM_CONDITIONAL(BUILD_TRANSLATED_PPDS, test x${BUILD_TRANSLATED_PPDS} = xyes)
+
+if test x${USE_LEVEL3_PS} = xyes ; then
+ CUPS_PPD_PS_LEVEL=3
+else
+ CUPS_PPD_PS_LEVEL=2
+fi
+
+AM_CONDITIONAL(USE_LEVEL3_PS, test x${USE_LEVEL3_PS} = xyes)
+
+AM_CONDITIONAL(BUILD_GHOST, test x${BUILD_GHOST} = xyes)
+
+if test x${BUILD_ESCPUTIL} = xyes ; then
+ ESCPUTIL_BIN='$(ESCPUTIL_BIN)'
+ ESCPUTIL_MAN='$(ESCPUTIL_MAN)'
+fi
+AM_CONDITIONAL(BUILD_ESCPUTIL, test x${BUILD_ESCPUTIL} = xyes)
+
+if test x${BUILD_TEST} = xyes ; then
+ TEST_BIN='$(TEST_BIN)'
+fi
+AM_CONDITIONAL(BUILD_TEST, test x${BUILD_TEST} = xyes)
+
+if test x${BUILD_TESTPATTERN} = xyes ; then
+ TESTPATTERN_BIN='$(TESTPATTERN_BIN)'
+fi
+AM_CONDITIONAL(BUILD_TESTPATTERN, test x${BUILD_TESTPATTERN} = xyes)
+
+if test x${BUILD_GIMP} = xyes ; then
+ GIMP_BIN='$(GIMP_BIN)'
+fi
+AM_CONDITIONAL(BUILD_GIMP, test x${BUILD_GIMP} = xyes)
+
+LIBGIMPPRINT_LIBS="\$(top_builddir)/src/main/libgimpprint.la"
+INCLUDE_GIMP_PRINT_H="\"gimp-print/gimp-print.h\""
+
+if test x${INSTALL_SAMPLES} = xyes ; then
+ SAMPLE_IMAGES='$(SAMPLE_IMAGES)'
+fi
+AM_CONDITIONAL(INSTALL_SAMPLES, test x${INSTALL_SAMPLES} = xyes)
+
+if test x${INSTALL_USER_GUIDE} = xyes ; then
+ USER_GUIDE='$(USER_GUIDE)'
+fi
+AM_CONDITIONAL(INSTALL_USER_GUIDE, test x${INSTALL_USER_GUIDE} = xyes)
+
+
+dnl CUPS path setup
+dnl Fix "prefix" variable if it hasn't been specified...
+if test x${cups_prefix} = xNONE ; then
+ cups_prefix="/usr"
+fi
+dnl Fix "exec_prefix" variable if it hasn't been specified...
+if test x${exec_prefix} = xNONE ; then
+ if test "${cups_prefix}" = "/" ; then
+ cups_exec_prefix="/usr"
+ else
+ cups_exec_prefix="${cups_prefix}"
+ fi
+fi
+dnl Fix "bindir" variable if it hasn't been specified...
+if test "${bindir}" = "\${prefix}/bin" -a "${cups_prefix}" = "/" ; then
+ cups_bindir="/usr/bin"
+else
+ cups_bindir="${cups_prefix}/bin"
+fi
+
+dnl Get explicit CUPS directories if possible
+if test "x$CUPS_CONFIG" != x; then
+ cups_conf_datadir="`$CUPS_CONFIG --datadir`"
+ cups_conf_serverbin="`$CUPS_CONFIG --serverbin`"
+ cups_conf_serverroot="`$CUPS_CONFIG --serverroot`"
+else
+dnl Some logical guessing
+ if test "${datadir}" = "\${prefix}/share" -a "${cups_prefix}" = "/" ; then
+ cups_conf_datadir="/usr/share/cups"
+ else
+ cups_conf_datadir="${cups_prefix}/share/cups"
+ fi
+ if test "${libdir}" = "\${prefix}/lib" -a "${cups_prefix}" = "/" ; then
+ cups_conf_serverbin="/usr/lib/cups"
+ else
+ cups_conf_serverbin="${cups_prefix}/lib/cups"
+ fi
+ if test "${sysconfdir}" = "\${prefix}/etc"; then
+ if test "${cups_prefix}" = "/usr" ; then
+ cups_conf_serverroot="/etc/cups"
+ else
+ cups_conf_serverroot="${cups_prefix}/etc/cups"
+ fi
+ fi
+fi
+
+
+AM_CONDITIONAL(USE_NLS, test x${USE_NLS} = xyes)
+
+
+dnl Define LTLIBOBJS
+LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'`
+LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/.lo/g'`
+
+dnl Definitions
+AC_DEFINE_UNQUOTED(CUPS_DATADIR, "$cups_conf_datadir", [CUPS data directory.])
+AC_DEFINE_UNQUOTED(CUPS_PPD_PS_LEVEL, ${CUPS_PPD_PS_LEVEL}, [CUPS PPD PostScript level])
+
+AC_DEFINE_UNQUOTED(INCLUDE_GIMP_PRINT_H, ${INCLUDE_GIMP_PRINT_H}, [GIMP-Print header to include.])
+RELEASE_DATE="15 Jul 2004"
+AC_DEFINE_UNQUOTED(RELEASE_DATE, "${RELEASE_DATE}", [Package release date.])
+
+dnl Some versions of make get very grouchy about $(RM)
+RM='rm'
+
+dnl Substitutions
+AC_SUBST(cups_prefix)
+AC_SUBST(cups_exec_prefix)
+AC_SUBST(cups_bindir)
+AC_SUBST(cups_conf_datadir)
+AC_SUBST(cups_conf_serverbin)
+AC_SUBST(cups_conf_serverroot)
+AC_SUBST(CUPS_BIN)
+AC_SUBST(CUPS_BACKEND_BIN)
+AC_SUBST(CUPS_FILTER_BIN)
+AC_SUBST(CUPS_PKG)
+AC_SUBST(CUPS_CONF)
+AC_SUBST(CUPS_INSTALL)
+AC_SUBST(CUPS_CFLAGS)
+AC_SUBST(CUPS_LIBS)
+AC_SUBST(CUPS_MAN)
+AC_SUBST(CUPS_PPD_PS_LEVEL)
+AC_SUBST(CUPS_NOINST_BIN)
+AC_SUBST(FOOMATIC_NOINST_BIN)
+AC_SUBST(FOOMATIC_3_NOINST_BIN)
+AC_SUBST(FOOMATIC_OLDIDS_NOINST_BIN)
+AC_SUBST(FOOMATIC_INSTALL)
+AC_SUBST(IJS_BIN)
+AC_SUBST(IJS_INSTALL)
+AC_SUBST(IJS_CFLAGS)
+AC_SUBST(IJS_LIBS)
+AC_SUBST(TEST_BIN)
+AC_SUBST(TESTPATTERN_BIN)
+AC_SUBST(RM)
+AC_SUBST(ESCPUTIL_BIN)
+AC_SUBST(ESCPUTIL_MAN)
+AC_SUBST(GIMP_BIN)
+AC_SUBST(GIMP_CFLAGS)
+AC_SUBST(GIMP_LIBS)
+AC_SUBST(gimp_plug_indir)
+AC_SUBST(GIMPPRINT_CFLAGS)
+AC_SUBST(GIMPPRINT_LIBS)
+AC_SUBST(GIMPPRINT_DEPLIBS)
+AC_SUBST(GIMPPRINT_VERSION)
+AC_SUBST(gimpprint_cflags)
+gimpprint_libs="${GIMPPRINT_LIBS} ${GIMPPRINT_DEPLIBS}"
+AC_SUBST(gimpprint_libs)
+AC_SUBST(INCLUDES)
+AC_SUBST(LIBM)
+LIBGIMPPRINT_LIBS="${LIBGIMPPRINT_LIBS}"
+AC_SUBST(LIBGIMPPRINT_LIBS)
+AC_SUBST(LIBREADLINE_DEPS)
+AC_SUBST(LTLIBOBJS)
+AC_SUBST(LTALLOCA)
+AC_SUBST(MAIN_BIN)
+AC_SUBST(MAIN_DAT)
+AC_SUBST(MAIN_MAN)
+AC_SUBST(MAIN_SCR)
+AC_SUBST(MAINTAINER_CFLAGS)
+AC_SUBST(PLUG_IN_PATH)
+AC_SUBST(RELEASE_DATE)
+AC_SUBST(SAMPLE_IMAGES)
+AC_SUBST(USER_GUIDE)
+
+AC_OUTPUT_COMMANDS([],[
+exec_prefix=`eval echo ${exec_prefix}`
+prefix=${prefix}
+])
+
+dnl Output files
+dnl po/Makefile.in *MUST* be surrounded by spaces to work with buggy
+dnl gettext 0.10.36. Do not move this file to the beginning or end
+dnl of a line.
+
+AC_OUTPUT([
+Makefile doc/Makefile doc/users_guide/Makefile
+include/Makefile include/gimp-print/Makefile include/gimp-print/gimp-print.h
+intl/Makefile lib/Makefile man/Makefile man/escputil.1
+man/gimpprint.3 man/gimpprint-config.1
+man/gimpprint-color.7 man/gimpprint-dithers.7
+man/gimpprint-imagetypes.7 man/gimpprint-inktypes.7
+man/gimpprint-mediasizes.7 man/gimpprint-mediasources.7
+man/gimpprint-mediatypes.7 man/gimpprint-models.7 man/gimpprint-resolutions.7
+man/ijsgimpprint.1 po/Makefile.in samples/Makefile
+src/Makefile src/escputil/Makefile src/gimp/Makefile
+cups-gimpprint.list man/cups-calibrate.8 src/testpattern/Makefile
+src/cups/Makefile src/foomatic/Makefile test/Makefile
+src/foomatic/foomatic-generator src/ghost/Makefile src/ghost/contrib.mak.addon
+src/main/Makefile src/main/gimpprint-config src/printdef/Makefile
+],[
+chmod +x src/main/gimpprint-config
+chmod +x src/foomatic/foomatic-generator
+if test -f src/ghost/contrib.mak.addon ; then
+ sed -e 's;${exec_prefix};'"${exec_prefix};" -e 's;${prefix};'"${prefix};" src/ghost/contrib.mak.addon > src/ghost/contrib.mak.addon.tmp
+ mv src/ghost/contrib.mak.addon.tmp src/ghost/contrib.mak.addon
+fi
+echo "Finished configuring."
+echo "Type 'make' to build the package"
+echo "then 'make install' to install it."
+])
diff --git a/configure.in.in b/configure.in.in
index daa688a..8c1f3a9 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -1,4 +1,4 @@
-dnl $Id: configure.in.in,v 1.103 2001/11/23 18:34:44 sharkey Exp $
+dnl $Id: configure.in.in,v 1.103.2.75 2004/06/05 13:57:00 rlk Exp $
dnl Copyright (C) 2000 Roger Leigh
dnl
dnl This program is free software; you can redistribute it and/or modify
@@ -59,11 +59,11 @@ dnl For more detailed information, see the libtool info documentation.
dnl
GIMPPRINT_MAJOR_VERSION=4
GIMPPRINT_MINOR_VERSION=2
-GIMPPRINT_MICRO_VERSION=0
+GIMPPRINT_MICRO_VERSION=7
GIMPPRINT_EXTRA_VERSION=
-GIMPPRINT_CURRENT_INTERFACE=1
-GIMPPRINT_INTERFACE_AGE=0
-GIMPPRINT_BINARY_AGE=0
+GIMPPRINT_CURRENT_INTERFACE=2
+GIMPPRINT_INTERFACE_AGE=3
+GIMPPRINT_BINARY_AGE=1
GIMPPRINT_VERSION=$GIMPPRINT_MAJOR_VERSION.$GIMPPRINT_MINOR_VERSION.$GIMPPRINT_MICRO_VERSION$GIMPPRINT_EXTRA_VERSION
dnl
AC_DIVERT_POP()dnl
@@ -89,12 +89,13 @@ AC_SUBST(LT_AGE)
dnl Initialize automake stuff.
AM_INIT_AUTOMAKE(${PACKAGE}, ${GIMPPRINT_VERSION})
+dnl AM_ACLOCAL_INCLUDE(m4)
dnl Specify a configuration file.
AM_CONFIG_HEADER(config.h)
dnl Available languages (translations)
-ALL_LINGUAS="en_GB sv no fr da pl"
+ALL_LINGUAS="en_GB sv no fr da pl sk el nl es pt de ja cs nb uk hu"
AC_SUBST(ALL_LINGUAS)
dnl Compiler options and definitions
@@ -103,37 +104,25 @@ INCLUDES="${INCLUDES} -I\$(top_srcdir)/include -I\$(top_builddir)/include -I\$(t
dnl Defaults
dnl figure defaults, prior to $ac_help setup
AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
-BUILD_GIMP=yes
-USE_READLINE=yes
+BUILD_GIMP='(automatic)'
+USE_READLINE='yes'
EXTRA_LIBREADLINE_DEPS=''
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
-BUILD_CUPS=no
-BUILD_TRANSLATED_PPDS=yes
-USE_LEVEL3_PS=no
-BUILD_GHOST=no
-BUILD_FOOMATIC=no
-BUILD_TEST=no
-BUILD_TESTPATTERN=no
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
-BUILD_ESCPUTIL=yes
-BUILD_LIBGIMPPRINT=yes
-INSTALL_SAMPLES=yes
-INSTALL_USER_GUIDE=yes
-PLUG_IN_PATH="admin-bin"
+BUILD_CUPS='(automatic)'
+BUILD_TRANSLATED_PPDS='yes'
+USE_LEVEL3_PS='no'
+BUILD_GHOST='no'
+BUILD_FOOMATIC='(automatic)'
+BUILD_FOOMATIC_3='(automatic)'
+BUILD_FOOMATIC_OLDIDS='(automatic)'
+BUILD_IJS='(automatic)'
+BUILD_TEST='no'
+BUILD_TESTPATTERN='no'
+BUILD_ESCPUTIL='yes'
+INSTALL_SAMPLES='yes'
+INSTALL_USER_GUIDE='yes'
+PLUG_IN_PATH='admin-bin'
AC_DIVERT_POP()dnl
-dnl Check if we are a part of the GIMP source tree, or independent
-dnl and adjust defaults accordingly
-AC_MSG_CHECKING([for the presence of the GIMP source tree])
-if test -f ../../gimptool.1.in ; then
- AC_MSG_RESULT([yes])
- GIMP_SOURCE_TREE_SUBDIR=yes
- BUILD_LIBGIMPPRINT=no
-else
- AC_MSG_RESULT([no])
- GIMP_SOURCE_TREE_SUBDIR=no
-fi
-
AM_MAINTAINER_MODE
if test x${USE_MAINTAINER_MODE} = xyes ; then
MAINTAINER_MODE=true
@@ -149,13 +138,26 @@ elif test "`echo ${host_os} | sed 's/^\(linux\).*$/\1/'`" = "linux" ; then
OSTYPE="linux"
elif test "`echo ${host_os} | sed 's/^\(irix\).*$/\1/'`" = "irix" ; then
OSTYPE="irix"
+elif test "`echo ${host_os} | sed 's/^\(darwin\).*$/\1/'`" = "darwin" ; then
+ OSTYPE="darwin"
else
OSTYPE="${host_os}"
fi
AC_DEFINE(OSTYPE, ["${OSTYPE}"], [The operating system to build for])
+if test x${host_os} = xdarwin; then
+ LIBM=""
+else
+ LIBM="-lm"
+fi
+
dnl Command line options.
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
+AC_PATH_PROG(CUPS_CONFIG, cups-config)
+if test -z "${CUPS_CONFIG}" ; then
+ BUILD_CUPS="no"
+else
+ BUILD_CUPS="yes"
+fi
AC_MSG_CHECKING([whether to build CUPS driver])
AC_ARG_WITH(cups,
[ --with-cups[=PREFIX] build CUPS driver [default=${BUILD_CUPS}, default PREFIX=/usr]],
@@ -172,6 +174,8 @@ AC_ARG_WITH(cups,
fi ;;
esac],[AC_MSG_RESULT([${BUILD_CUPS}]) ; cups_prefix="${prefix}"])
+
+
AC_MSG_CHECKING([whether to build translated CUPS PPD files])
AC_ARG_WITH(translated-ppds,
[ --with-translated-ppds build translated CUPS PPD files [default=${BUILD_TRANSLATED_PPDS}]],
@@ -179,7 +183,7 @@ AC_ARG_WITH(translated-ppds,
yes) BUILD_TRANSLATED_PPDS="yes" ; AC_MSG_RESULT([yes]) ;;
no) BUILD_TRANSLATED_PPDS="no" ; AC_MSG_RESULT([no]) ;;
*) AC_MSG_RESULT([unknown])
- AC_MSG_ERROR([bad value ${withval} for --with-translate_ppds]) ;;
+ AC_MSG_ERROR([bad value ${withval} for --with-translated-ppds]) ;;
esac],[AC_MSG_RESULT([${BUILD_TRANSLATED_PPDS}])])
AC_MSG_CHECKING([whether to use level 3 PostScript])
@@ -202,6 +206,12 @@ AC_ARG_WITH(ghost,
AC_MSG_ERROR([bad value ${withval} for --with-ghost]) ;;
esac],[AC_MSG_RESULT([${BUILD_GHOST}])])
+AC_PATH_PROG(FOOMATIC_CONFIGURE, foomatic-configure)
+if test -z "${FOOMATIC_CONFIGURE}" ; then
+ BUILD_FOOMATIC="no"
+else
+ BUILD_FOOMATIC="yes"
+fi
AC_MSG_CHECKING([whether to build foomatic data files])
AC_ARG_WITH(foomatic,
[ --with-foomatic build foomatic data files [default=${BUILD_FOOMATIC}]],
@@ -211,17 +221,82 @@ AC_ARG_WITH(foomatic,
*) AC_MSG_RESULT([unknown])
AC_MSG_ERROR([bad value ${withval} for --with-foomatic]) ;;
esac],[AC_MSG_RESULT([${BUILD_FOOMATIC}])])
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
+
+AC_PATH_PROG(FOOMATIC_PPDFILE, foomatic-ppdfile)
+if test -z "${FOOMATIC_PPDFILE}" ; then
+ BUILD_FOOMATIC_3="no"
+else
+ BUILD_FOOMATIC_3="yes"
+fi
+AC_MSG_CHECKING([whether to make use of Foomatic 3.x features])
+AC_ARG_WITH(foomatic3,
+[ --with-foomatic3 make use of Foomatic 3.x features [default=${BUILD_FOOMATIC_3}]],
+ [case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; BUILD_FOOMATIC_3="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_FOOMATIC_3="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-foomatic3]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_FOOMATIC_3}])])
+
+if test "${FOOMATIC_CONFIGURE}" ; then
+ AC_MSG_CHECKING([Foomatic printer IDs])
+ foomatic_libdir=`perl -e 'use Foomatic::Defaults; print "$libdir\n";';`
+ if [[ -d $foomatic_libdir/db/source/printer/ ]]; then
+ for file in `ls -1 $foomatic_libdir/db/source/printer/`; do
+ if ( grep -q ^${file%.xml} ${srcdir}/src/foomatic/oldprinterids ); then
+ oldids=1
+ AC_MSG_RESULT([Found entry with old Foomatic printer ID!])
+ break
+ fi
+ echo -en .
+ done
+ if test -z "${oldids}" ; then
+ AC_MSG_RESULT([No entry with old Foomatic printer ID found!])
+ fi
+ else
+ AC_MSG_RESULT([Could't find Foomatic database!])
+ fi
+fi
+if test -z "${oldids}" ; then
+ BUILD_FOOMATIC_OLDIDS="no"
+else
+ BUILD_FOOMATIC_OLDIDS="yes"
+fi
+AC_MSG_CHECKING([whether to use the old numerical Foomatic printer IDs])
+AC_ARG_WITH(foomatic-oldids,
+[ --with-foomatic-oldids use old Foomatic printer IDs [default=${BUILD_FOOMATIC_OLDIDS}]],
+ [case "${withval}" in
+ yes) BUILD_FOOMATIC="yes" ; BUILD_FOOMATIC_OLDIDS="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_FOOMATIC_OLDIDS="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-foomatic3]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_FOOMATIC_OLDIDS}])])
+
+AC_PATH_PROG(IJS_CONFIG, ijs-config)
+if test -z "${IJS_CONFIG}" ; then
+ BUILD_IJS="no"
+else
+ BUILD_IJS="yes"
+fi
+AC_MSG_CHECKING([whether to build IJS driver])
+AC_ARG_WITH(ijs,
+[ --with-ijs build IJS driver [default=${BUILD_IJS}]],
+ [case "${withval}" in
+ yes) BUILD_IJS="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) BUILD_IJS="no" ; AC_MSG_RESULT([no]) ;;
+ *) AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([bad value ${withval} for --with-ijs]) ;;
+ esac],[AC_MSG_RESULT([${BUILD_IJS}])])
AC_MSG_CHECKING([whether to turn on debugging in build])
AC_ARG_ENABLE(debug,
[ --enable-debug turn on debugging [default=no]],
[case "${enableval}" in
- yes) CFLAGS="${CFLAGS:=} -g" ; AC_MSG_RESULT([yes]) ;;
- no) CFLAGS="${CFLAGS:=-O}" ; AC_MSG_RESULT([no]) ;;
+ yes) ENABLE_DEBUG="yes" ; AC_MSG_RESULT([yes]) ;;
+ no) ENABLE_DEBUG="no" ; AC_MSG_RESULT([no]) ;;
*) AC_MSG_RESULT([unknown])
AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
- esac],[CFLAGS="${CFLAGS:=-O}" ; AC_MSG_RESULT([no])])
+ esac],[ENABLE_DEBUG="no" ; AC_MSG_RESULT([no])])
AC_MSG_CHECKING([whether to use readline])
AC_ARG_WITH(readline,
@@ -237,6 +312,21 @@ AC_ARG_WITH(readline,
AC_MSG_RESULT([yes (using extra libraries ${withval})]) ;;
esac],[AC_MSG_RESULT([${USE_READLINE}])])
+AC_PATH_PROGS([GIMPTOOL_CHECK], [gimptool-1.2 gimptool])
+if test -z "${GIMPTOOL_CHECK}" ; then
+ BUILD_GIMP="no"
+else
+ # Check we have version 1.2
+ gimptool_check_version=`${GIMPTOOL_CHECK} --version`
+dnl Quote to protect sed regexes
+ [gimptool_check_major=`echo "$gimptool_check_version" | sed -e 's/\([0-9][0-9]*\).\([0-9][0-9]*\).\([0-9][0-9]*\).*/\1/'`]
+ [gimptool_check_minor=`echo "$gimptool_check_version" | sed -e 's/\([0-9][0-9]*\).\([0-9][0-9]*\).\([0-9][0-9]*\).*/\2/'`]
+ if test "$gimptool_check_major" -eq 1 -a "$gimptool_check_minor" -eq 2; then
+ BUILD_GIMP="yes"
+ else
+ BUILD_GIMP="no"
+ fi
+fi
AC_MSG_CHECKING([whether to build GIMP plugin])
AC_ARG_WITH(gimp,
[ --with-gimp build GIMP plugin [default=${BUILD_GIMP}]],
@@ -277,17 +367,6 @@ AC_ARG_ENABLE(escputil,
AC_MSG_ERROR([bad value ${enableval} for --enable-escputil]) ;;
esac],[AC_MSG_RESULT([${BUILD_ESCPUTIL}])])
-AC_MSG_CHECKING([whether to build libgimpprint])
-AC_ARG_ENABLE(libgimpprint,
-[ --enable-libgimpprint build libgimpprint [default=${BUILD_LIBGIMPPRINT}]],
- [case "${enableval}" in
- yes) BUILD_LIBGIMPPRINT="yes" ; AC_MSG_RESULT([yes]) ;;
- no) BUILD_LIBGIMPPRINT="no" ; AC_MSG_RESULT([no]) ;;
- *) AC_MSG_RESULT([unknown])
- AC_MSG_ERROR([bad value ${enableval} for --enable-libgimpprint]) ;;
- esac],[AC_MSG_RESULT([${BUILD_LIBGIMPPRINT}])])
-
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
AC_MSG_CHECKING([whether to build testpattern generator])
AC_ARG_WITH(testpattern,
[ --with-testpattern build testpattern generator [default=${BUILD_TESTPATTERN}]],
@@ -307,7 +386,6 @@ AC_ARG_ENABLE(test,
*) AC_MSG_RESULT([unknown])
AC_MSG_ERROR([bad value ${enableval} for --enable-test]) ;;
esac],[AC_MSG_RESULT([${BUILD_TEST}])])
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
AC_MSG_CHECKING([if user install is enabled])
AC_ARG_ENABLE(user-install,
@@ -335,42 +413,63 @@ AC_PATH_PROG(BISON_PROG, bison)
AC_PATH_PROG(YACC_PROG, yacc)
AC_PATH_PROG(PERL, perl)
AC_PATH_PROG(CONVERT, convert)
-if test x${CONVERT} = x ; then
- AC_MSG_WARN([PostScript user's guide cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${CONVERT} = x ; then
+ AC_MSG_WARN([PostScript user's guide cannot be regenerated!])
+ fi
fi
AC_PATH_PROG(TEXI2HTML, texi2html)
-if test x${TEXI2HTML} = x ; then
- AC_MSG_WARN([HTML documentation cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${TEXI2HTML} = x ; then
+ AC_MSG_WARN([HTML documentation cannot be regenerated!])
+ fi
fi
AC_PATH_PROG(DVIPS, dvips)
-if test x${DVIPS} = x ; then
- AC_MSG_WARN([PostScript documentation cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DVIPS} = x ; then
+ AC_MSG_WARN([PostScript documentation cannot be regenerated!])
+ fi
fi
AC_PATH_PROG(DB2PDF, db2pdf)
-if test x${DB2PDF} = x ; then
- AC_MSG_WARN([PDF user's guide cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PDF} = x ; then
+ AC_MSG_WARN([PDF user's guide cannot be regenerated!])
+ fi
fi
AC_PATH_PROGS(DVIPDF, dvipdf dvipdfm)
-if test x${DVIPDF} = x ; then
- AC_MSG_WARN([PDF documentation cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DVIPDF} = x ; then
+ AC_MSG_WARN([PDF documentation cannot be regenerated!])
+ fi
fi
AC_PATH_PROG(DB2PS, db2ps)
-if test x${DB2PS} = x ; then
- AC_MSG_WARN([PostScript user's guide cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PS} = x ; then
+ AC_MSG_WARN([PostScript user's guide cannot be regenerated!])
+ fi
fi
AC_PATH_PROG(DB2HTML, db2html)
-if test x${DB2PS} = x ; then
- AC_MSG_WARN([HTML user's guide cannot be regenerated!])
+if test x${USE_MAINTAINER_MODE} = xyes ; then
+ if test x${DB2PS} = x ; then
+ AC_MSG_WARN([HTML user's guide cannot be regenerated!])
+ fi
fi
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
dnl foomatic checks
if test x${BUILD_FOOMATIC} = xyes ; then
- AC_CHECK_PROG(FOOMATIC_KITLOAD, foomatic-kitload, foomatic-kitload)
+ AC_PATH_PROG(FOOMATIC_KITLOAD, foomatic-kitload,,$PATH:/usr/sbin:/usr/local/sbin)
if test -z "$FOOMATIC_KITLOAD" ; then
AC_MSG_WARN(Cannot find foomatic-kitload; attempt to install foomatic will fail)
fi
fi
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
+
+dnl ijs checks
+if test x${BUILD_IJS} = xyes ; then
+ if test -z "$IJS_CONFIG" ; then
+ AC_MSG_ERROR(Cannot find ijs-config; please ensure ijs 0.30 is installed);
+ fi
+ IJS_CFLAGS=`$IJS_CONFIG --cflags`
+ IJS_LIBS=`$IJS_CONFIG --libs`
+fi
dnl Set up libtool scripts.
dnl Disable static library building to speed up the build
@@ -382,11 +481,24 @@ dnl define HAVE_GNU_LD if GNU ld is present
if test "$ac_cv_prog_gnu_ld" = "yes" ; then
AC_DEFINE(HAVE_GNU_LD,, [Define if GNU ld is present.])
fi
-
+
+AM_CONDITIONAL(BUILD_GENPPD_STATIC, test x"$enable_static" = xyes)
+
+if test "$enable_static" = no -a "$BUILD_CUPS" = yes ; then
+ AC_MSG_WARN([--enable-static is disabled, but CUPS is being built.])
+ AC_MSG_WARN([This may result in a *SILENTLY* incorrect build.])
+ AC_MSG_WARN([Please read the release notes carefully!])
+fi
dnl GNU gettext checks.
AM_GNU_GETTEXT
+if test x${USE_INCLUDED_LIBINTL} = xyes ; then
+ :
+else
+ GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} ${INTLLIBS}"
+fi
+
dnl Set PACKAGE_LOCALE_DIR in config.h
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale")
@@ -396,6 +508,15 @@ fi
dnl Compiler flags
if test "$CC" = "gcc" ; then
+ :
+else
+ if test x$ENABLE_DEBUG = xyes ; then
+ CFLAGS="${CFLAGS:=} -g"
+ else
+ CFLAGS="${CFLAGS:=} -O"
+ fi
+fi
+if test "$CC" = "gcc" ; then
GNUCFLAGS="-Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -pedantic"
fi
AC_SUBST(GNUCFLAGS)
@@ -424,7 +545,7 @@ if test "$USE_READLINE" = yes ; then
else
unset ac_cv_lib_readline_readline
AC_CHECK_LIB(readline, readline, HAVE_LIBREADLINE=true,
- HAVE_LIBREADLINE=false, -lcurses)
+ HAVE_LIBREADLINE=false, -ltermcap)
if test x${HAVE_LIBREADLINE} = xtrue ; then
echo " Using -lreadline -ltermcap"
EXTRA_LIBREADLINE_DEPS=-ltermcap
@@ -457,11 +578,10 @@ else
AC_DEFINE(HAVE_LIBREADLINE, [0])
fi
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
dnl check for libm, and also add to CUPS LIBS
AC_CHECK_LIB(m,pow,
- GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} -lm"
- CUPS_LIBS="${CUPS_LIBS} -lm")
+ GIMPPRINT_DEPLIBS="${GIMPPRINT_DEPLIBS} ${LIBM}"
+ CUPS_LIBS="${CUPS_LIBS} ${LIBM}")
dnl CUPS library checks
if test x${BUILD_CUPS} = xyes ; then
AC_CHECK_LIB(z,gzgets,
@@ -471,7 +591,7 @@ if test x${BUILD_CUPS} = xyes ; then
LIBS="$LIBS -lz"
AC_DEFINE(HAVE_LIBZ,, [Define if libz is present.])
fi
- AC_PATH_PROG(CUPS_CONFIG,cups-config)
+ AC_PATH_PROG(CUPS_CONFIG, cups-config)
if test "x$CUPS_CONFIG" != x; then
dnl Use values from CUPS config...
CUPS_LIBS="`$CUPS_CONFIG --ldflags` `$CUPS_CONFIG --image --libs`"
@@ -537,26 +657,32 @@ if test x${BUILD_CUPS} = xyes ; then
fi
fi
fi
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
dnl GIMP library checks
if test x${BUILD_GIMP} = xyes -o -n "${BUILD_PACKAGE}" ; then
- if test x$GIMP_SOURCE_TREE_SUBDIR = xyes ; then
- AM_PATH_GTK
- AM_PATH_GLIB
- GIMP_CFLAGS="-I\$(top_srcdir)/../.. \$(GTK_CFLAGS) \$(GLIB_CFLAGS)"
- GIMP_LIBS="\$(GTK_LIBS) \$(GLIB_LIBS) \$(top_builddir)/../../libgimp/libgimp.la \$(top_builddir)/../../libgimp/libgimpui.la"
- else
- AM_PATH_GIMP(1.2.0,
- [SAVE_GTK_LIBS="$GIMP_LIBS"
- SAVE_GTK_CFLAGS="$GIMP_CFLAGS"],
- AC_MSG_ERROR(Cannot find GIMP libraries: Please run ldconfig as root and make sure gimptool is on your PATH.))
- fi
+ STP_PATH_GIMP(1.2.0,
+ [SAVE_GTK_LIBS="$GIMP_LIBS"
+ SAVE_GTK_CFLAGS="$GIMP_CFLAGS"],
+ AC_MSG_ERROR(Cannot find GIMP libraries: Please run ldconfig as root, make sure gimptool is on your PATH, and if applicable ensure that you have the GIMP, GTK, and GLIB development packages installed.))
+fi
+
+# Locate the GIMP plugin directory using libtool
+# Extract directory using --dry-run and sed
+if test x${BUILD_GIMP} = xyes ; then
+ AC_MSG_CHECKING([for GIMP plug-in directory])
+# create temporary "plug-in" to install
+ touch print
+ chmod 755 print
+ GIMPTOOL_OUTPUT=`$GIMPTOOL --dry-run --install-${PLUG_IN_PATH} print`
+ rm print
+ gimp_plug_indir=`echo "$GIMPTOOL_OUTPUT" | sed -e 's/.* \(.*\)\/print/\1/'`
+ AC_MSG_RESULT([$gimp_plug_indir])
+else
+ gimp_plug_indir="$libdir/gimp/1.2/plug-ins"
fi
dnl Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h)
AC_CHECK_HEADER(readline/readline.h,
HAVE_READLINE_READLINE_H=true,
HAVE_READLINE_READLINE_H=false)
@@ -569,6 +695,11 @@ fi
AC_CHECK_HEADERS(varargs.h)
AC_CHECK_HEADERS(stdarg.h)
+AC_CHECK_HEADERS(fcntl.h)
+AC_CHECK_HEADERS(sys/time.h sys/types.h)
+AC_CHECK_HEADERS(time.h)
+AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(varargs.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -581,7 +712,7 @@ dnl Checks for library functions.
AC_FUNC_ALLOCA
dnl [commented out while I find a memcmp.c for lib/] AC_FUNC_MEMCMP
dnl GNU libc memcmp.c is too glibc-dependent to include.
-AC_CHECK_FUNCS(poll)
+AC_CHECK_FUNCS(nanosleep poll usleep)
dnl The following is used to build a "utility library" in lib/
AC_REPLACE_FUNCS(xgetcwd xmalloc)
AC_CHECK_FUNC(asprintf,
@@ -596,12 +727,26 @@ AC_CHECK_FUNC(getopt_long,
LIBOBJS="${LIBOBJS} getopt.o getopt1.o")
dnl Define what has to be built
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
if test x${BUILD_FOOMATIC} = xyes ; then
FOOMATIC_NOINST_BIN='$(FOOMATIC_NOINST_BIN)'
fi
AM_CONDITIONAL(BUILD_FOOMATIC, test x${BUILD_FOOMATIC} = xyes)
+if test x${BUILD_FOOMATIC_3} = xyes ; then
+ FOOMATIC_3_NOINST_BIN='$(FOOMATIC_3_NOINST_BIN)'
+fi
+AM_CONDITIONAL(BUILD_FOOMATIC_3, test x${BUILD_FOOMATIC_3} = xyes)
+
+if test x${BUILD_FOOMATIC_OLDIDS} = xyes ; then
+ FOOMATIC_OLDIDS_NOINST_BIN='$(FOOMATIC_OLDIDS_NOINST_BIN)'
+fi
+AM_CONDITIONAL(BUILD_FOOMATIC_OLDIDS, test x${BUILD_FOOMATIC_OLDIDS} = xyes)
+
+if test x${BUILD_IJS} = xyes ; then
+ IJS_BIN='$(IJS_BIN)'
+fi
+AM_CONDITIONAL(BUILD_IJS, test x${BUILD_IJS} = xyes)
+
if test x${BUILD_CUPS} = xyes ; then
CUPS_BIN='$(CUPS_BIN)'
CUPS_BACKEND_BIN='$(CUPS_BACKEND_BIN)'
@@ -640,38 +785,14 @@ if test x${BUILD_TESTPATTERN} = xyes ; then
TESTPATTERN_BIN='$(TESTPATTERN_BIN)'
fi
AM_CONDITIONAL(BUILD_TESTPATTERN, test x${BUILD_TESTPATTERN} = xyes)
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
if test x${BUILD_GIMP} = xyes ; then
GIMP_BIN='$(GIMP_BIN)'
fi
AM_CONDITIONAL(BUILD_GIMP, test x${BUILD_GIMP} = xyes)
-if test x${BUILD_LIBGIMPPRINT} = xyes ; then
- MAIN_BIN='$(MAIN_BIN)'
- MAIN_DAT='$(MAIN_DAT)'
- MAIN_MAN='$(MAIN_MAN)'
- MAIN_SCR='$(MAIN_SCR)'
- LIBGIMPPRINT_LIBS="\$(top_builddir)/src/main/libgimpprint.la"
- GIMP_PRINT_H="gimp-print.h"
- INCLUDE_GIMP_PRINT_H="\"gimp-print/gimp-print.h\""
-else
- AM_PATH_GIMPPRINT(
- $GIMPPRINT_VERSION,
- [LIBGIMPPRINT_CFLAGS="${GIMPPRINT_CFLAGS}"
- LIBGIMPPRINT_LIBS="${GIMPPRINT_LIBS}"
- INCLUDE_GIMP_PRINT_H="<gimp-print/gimp-print.h>"],
- [AC_MSG_WARN([Cannot find current GIMP-PRINT library: building included libgimpprint])
- MAIN_BIN='$(MAIN_BIN)'
- MAIN_DAT='$(MAIN_DAT)'
- MAIN_MAN='$(MAIN_MAN)'
- MAIN_SCR='$(MAIN_SCR)'
- LIBGIMPPRINT_LIBS="\$(top_builddir)/src/main/libgimpprint.la"
- GIMP_PRINT_H="gimp-print/gimp-print.h"
- INCLUDE_GIMP_PRINT_H="\"gimp-print/gimp-print.h\""]
- )
-fi
-AM_CONDITIONAL(BUILD_LIBGIMPPRINT, test x${BUILD_LIBGIMPPRINT} = xyes)
+LIBGIMPPRINT_LIBS="\$(top_builddir)/src/main/libgimpprint.la"
+INCLUDE_GIMP_PRINT_H="\"gimp-print/gimp-print.h\""
if test x${INSTALL_SAMPLES} = xyes ; then
SAMPLE_IMAGES='$(SAMPLE_IMAGES)'
@@ -683,7 +804,6 @@ if test x${INSTALL_USER_GUIDE} = xyes ; then
fi
AM_CONDITIONAL(INSTALL_USER_GUIDE, test x${INSTALL_USER_GUIDE} = xyes)
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
dnl CUPS path setup
dnl Fix "prefix" variable if it hasn't been specified...
@@ -734,17 +854,14 @@ fi
AM_CONDITIONAL(USE_NLS, test x${USE_NLS} = xyes)
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
dnl Define LTLIBOBJS
LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'`
LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/.lo/g'`
dnl Definitions
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
AC_DEFINE_UNQUOTED(CUPS_DATADIR, "$cups_conf_datadir", [CUPS data directory.])
AC_DEFINE_UNQUOTED(CUPS_PPD_PS_LEVEL, ${CUPS_PPD_PS_LEVEL}, [CUPS PPD PostScript level])
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
AC_DEFINE_UNQUOTED(INCLUDE_GIMP_PRINT_H, ${INCLUDE_GIMP_PRINT_H}, [GIMP-Print header to include.])
XXXRELEASE_DATE=XXX
@@ -754,7 +871,6 @@ dnl Some versions of make get very grouchy about $(RM)
RM='rm'
dnl Substitutions
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
AC_SUBST(cups_prefix)
AC_SUBST(cups_exec_prefix)
AC_SUBST(cups_bindir)
@@ -773,17 +889,22 @@ AC_SUBST(CUPS_MAN)
AC_SUBST(CUPS_PPD_PS_LEVEL)
AC_SUBST(CUPS_NOINST_BIN)
AC_SUBST(FOOMATIC_NOINST_BIN)
+AC_SUBST(FOOMATIC_3_NOINST_BIN)
+AC_SUBST(FOOMATIC_OLDIDS_NOINST_BIN)
AC_SUBST(FOOMATIC_INSTALL)
+AC_SUBST(IJS_BIN)
+AC_SUBST(IJS_INSTALL)
+AC_SUBST(IJS_CFLAGS)
+AC_SUBST(IJS_LIBS)
AC_SUBST(TEST_BIN)
AC_SUBST(TESTPATTERN_BIN)
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
AC_SUBST(RM)
AC_SUBST(ESCPUTIL_BIN)
AC_SUBST(ESCPUTIL_MAN)
AC_SUBST(GIMP_BIN)
AC_SUBST(GIMP_CFLAGS)
AC_SUBST(GIMP_LIBS)
-AC_SUBST(GIMP_PRINT_H)
+AC_SUBST(gimp_plug_indir)
AC_SUBST(GIMPPRINT_CFLAGS)
AC_SUBST(GIMPPRINT_LIBS)
AC_SUBST(GIMPPRINT_DEPLIBS)
@@ -792,7 +913,8 @@ AC_SUBST(gimpprint_cflags)
gimpprint_libs="${GIMPPRINT_LIBS} ${GIMPPRINT_DEPLIBS}"
AC_SUBST(gimpprint_libs)
AC_SUBST(INCLUDES)
-LIBGIMPPRINT_LIBS="${LIBGIMPPRINT_LIBS} ${GIMPPRINT_DEPLIBS}"
+AC_SUBST(LIBM)
+LIBGIMPPRINT_LIBS="${LIBGIMPPRINT_LIBS}"
AC_SUBST(LIBGIMPPRINT_LIBS)
AC_SUBST(LIBREADLINE_DEPS)
AC_SUBST(LTLIBOBJS)
@@ -821,23 +943,24 @@ AC_OUTPUT([
Makefile doc/Makefile doc/users_guide/Makefile
include/Makefile include/gimp-print/Makefile include/gimp-print/gimp-print.h
intl/Makefile lib/Makefile man/Makefile man/escputil.1
-man/gimpprint.3 man/gimpprint-config.1 po/Makefile.in samples/Makefile
+man/gimpprint.3 man/gimpprint-config.1
+man/gimpprint-color.7 man/gimpprint-dithers.7
+man/gimpprint-imagetypes.7 man/gimpprint-inktypes.7
+man/gimpprint-mediasizes.7 man/gimpprint-mediasources.7
+man/gimpprint-mediatypes.7 man/gimpprint-models.7 man/gimpprint-resolutions.7
+man/ijsgimpprint.1 po/Makefile.in samples/Makefile
src/Makefile src/escputil/Makefile src/gimp/Makefile
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
cups-gimpprint.list man/cups-calibrate.8 src/testpattern/Makefile
src/cups/Makefile src/foomatic/Makefile test/Makefile
src/foomatic/foomatic-generator src/ghost/Makefile src/ghost/contrib.mak.addon
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
src/main/Makefile src/main/gimpprint-config src/printdef/Makefile
],[
chmod +x src/main/gimpprint-config
-dnl @-@-@-@-@ NO-GIMP @-@-@-@-@
chmod +x src/foomatic/foomatic-generator
if test -f src/ghost/contrib.mak.addon ; then
sed -e 's;${exec_prefix};'"${exec_prefix};" -e 's;${prefix};'"${prefix};" src/ghost/contrib.mak.addon > src/ghost/contrib.mak.addon.tmp
mv src/ghost/contrib.mak.addon.tmp src/ghost/contrib.mak.addon
fi
-dnl @-@-@-@-@ YES-GIMP @-@-@-@-@
echo "Finished configuring."
echo "Type 'make' to build the package"
echo "then 'make install' to install it."
diff --git a/cups-gimpprint.list.in b/cups-gimpprint.list.in
index c9e2427..5bebfd6 100644
--- a/cups-gimpprint.list.in
+++ b/cups-gimpprint.list.in
@@ -1,5 +1,5 @@
#
-# "$Id$"
+# "$Id: cups-gimpprint.list.in,v 1.1 2001/09/06 20:24:59 easysw Exp $"
#
# EPM list file for CUPS drivers; EPM is available at:
#
@@ -66,5 +66,5 @@ f 0555 root sys $libdir/cups/filter/rastertoprinter src/cups/rastertoprinter
%postinstall /etc/software/init.d/cups restart
#
-# End of "$Id$"
+# End of "$Id: cups-gimpprint.list.in,v 1.1 2001/09/06 20:24:59 easysw Exp $"
#
diff --git a/debian/.cvsignore b/debian/.cvsignore
deleted file mode 100644
index fb63c2b..0000000
--- a/debian/.cvsignore
+++ /dev/null
@@ -1,21 +0,0 @@
-yada
-tmp*
-files*
-substvars
-build-stamp
-depends-stamp
-install-tree-stamp
-patch-stamp
-patch-*-applied
-backup-*
-backdown-*
-control
-gimp-print-build
-gimp1.2-print
-cupsys-driver-gimpprint
-libgimpprint-dev
-libgimpprint-doc.doc-base
-libgimpprint[0-9].[0-9].[0-9]
-escputil
-gimp-print-install
-
diff --git a/debian/README.Debian b/debian/README.Debian
index b871106..332c90c 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -1,16 +1,21 @@
-gimp-print for Debian
+Gimp-Print for Debian
---------------------
-This is Gimp-Print version 4.2.0, the first stable release in the 4.2
-series. Gimp-print is the print facility for the Gimp, and in
-addition a suite of drivers that may be used with common UNIX spooling
-systems using GhostScript or CUPS. These drivers provide printing
-quality for UNIX/Linux on a par with proprietary vendor-supplied
-drivers in many cases, and can be used for many of the most demanding
-printing tasks.
+This is Gimp-Print version 4.2.7, a stable release in the 4.2 series
+and the final planned 4.2 release. Gimp-Print is a suite of printer
+drivers that may be used with common UNIX spooling systems using
+Ghostscript or CUPS. These drivers provide printing quality for
+UNIX/Linux in many cases equal to or better than proprietary
+vendor-supplied drivers, and can be used for many of the most
+demanding printing tasks.
+
+A complete list of supported printers may be found in the NEWS file.
+On Debian GNU/Linux, the NEWS file is called `changelog.gz'.
+
+Gimp-Print also includes the printing facility for the GIMP.
Documentation can be found in the gimpprint-doc package, which covers
the use of libgimpprint-based programs, and the libgimpprint-doc
package, which covers developing programs using libgimpprint.
- -- Roger Leigh <roger@whinlatter.uklinux.net>, Thu, 22 Nov 2001 08:25:26 +0000
+ -- Roger Leigh <roger@whinlatter.uklinux.net>, Wed, 9 Oct 2002 21:19:59 +0100
diff --git a/debian/README.Debian.~1.22.2.32.~ b/debian/README.Debian.~1.22.2.32.~
new file mode 100644
index 0000000..2dd9034
--- /dev/null
+++ b/debian/README.Debian.~1.22.2.32.~
@@ -0,0 +1,21 @@
+Gimp-Print for Debian
+---------------------
+
+This is Gimp-Print version 4.2.7-pre2, a prerelease in the 4.2 series
+and the final planned 4.2 release. Gimp-Print is a suite of printer
+drivers that may be used with common UNIX spooling systems using
+Ghostscript or CUPS. These drivers provide printing quality for
+UNIX/Linux in many cases equal to or better than proprietary
+vendor-supplied drivers, and can be used for many of the most
+demanding printing tasks.
+
+A complete list of supported printers may be found in the NEWS file.
+On Debian GNU/Linux, the NEWS file is called `changelog.gz'.
+
+Gimp-Print also includes the printing facility for the GIMP.
+
+Documentation can be found in the gimpprint-doc package, which covers
+the use of libgimpprint-based programs, and the libgimpprint-doc
+package, which covers developing programs using libgimpprint.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net>, Wed, 9 Oct 2002 21:19:59 +0100
diff --git a/debian/README.building b/debian/README.building
index bb96b4d..bd9e86f 100644
--- a/debian/README.building
+++ b/debian/README.building
@@ -20,7 +20,9 @@ General
Please note the Build-Depends line in debian/control, which lists the
packages needed to be installed in order to build the packages, in
-addition to the standard package building tools.
+addition to the standard package building tools. In particular,
+libijs is not available in Debian stable; you will need to build or
+install libijs from unstable first.
The simplest way to build the packages is the `deb' target:
@@ -78,12 +80,13 @@ $ dpkg-buildpackage -rfakeroot -us -uc
or
$ debuild -us -uc -L -i
-It should build without problems on Debian 3.0 (woody) and unstable,
-but will no longer build on Debian 2.2 (potato) current testing and
-unstable distributions.
+It should build without problems on Debian 3.0 (woody), but will no
+longer build on Debian 2.2 (potato) and current testing (sarge) and
+unstable distributions (sid). For sarge or sid, please use the
+official Debian packages, or apply the Debian patch (.diff.gz).
I hope you like it!
-Roger Leigh <roger@whinlatter.uklinux.net> -- Tue, 18 Sep 2001 17:06:40 +0100
+Roger Leigh <roger@whinlatter.uklinux.net> -- Sat, 06 Dec 2003 16:47:46 +0000
diff --git a/debian/changelog b/debian/changelog
index 2b74e7a..3b6593f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,106 @@
+gimp-print (4.2.7-1) unstable; urgency=low
+
+ * New stable release.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Sun, 13 Jun 2004 22:19:51 +0100
+
+gimp-print (4.2.6-1) unstable; urgency=low
+
+ * New stable release.
+ * Update Standards-Version to 3.5.9.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Fri, 25 Apr 2003 18:22:08 +0100
+
+gimp-print (4.2.5-2) unstable; urgency=low
+
+ * Move libgimpprint-dev to section libdevel.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Tue, 1 Apr 2003 16:40:32 +0100
+
+gimp-print (4.2.5-1) unstable; urgency=low
+
+ * New stable release
+ * Use debian/build and debian/install instead of debian/gimp-print-build
+ and debian/gimp-print-install, respectively.
+ * Use dh_install rather than dh_movefiles. This makes debian/rules
+ slightly cleaner, and debian/install is unchanged after install.
+ * Create symlinks for HTML manuals, since different versions of texi2html
+ and db2html create different names.
+ * Make the dependencies sane (remove incorrect dependencies, and correct
+ dubious ones). foomatic-db-gimp-print now depends only upon foomatic-db
+ and ijsgimpprint.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Tue, 10 Dec 2002 15:24:21 +0000
+
+gimp-print (4.2.4-1) unstable; urgency=low
+
+ * New stable release
+ * Update for Standards-Version 3.5.7
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Sat, 9 Nov 2002 22:55:35 +0000
+
+gimp-print (4.2.3-1) unstable; urgency=low
+
+ * New stable release.
+ * I am the new maintainer of gimp-print for Debian.
+ * New package ijsgimpprint. This provides an IJS server for use
+ with ghostscript.
+ * Fix doc-base problems with gimpprint-doc.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Wed, 9 Oct 2002 13:26:30 +0100
+
+gimp-print (4.2.2-1) unstable; urgency=low
+
+ * New stable release.
+ * Upgrade to debhelper version 4.
+ * Automate library versioning to work for stable and unstable series.
+ LIBRARY_VERSION is the library major version or -UPSTREAM_VERSION.
+ * Update configure regeneration to work with configure.ac.
+ * libgimpprint$(VERSION)-dev provides and conflicts with a virtual
+ package `libgimpprint-dev'.
+ * Remove libgimpprint.postinst as ldconfig is called by debhelper.
+ * Update package descriptions.
+ * Fixed doc-base problems in libgimpprint-doc. The doc-base file is
+ generated with sed to insert the version number.
+ * libgimpprint$(VERSION)-doc provides and conflicts with a virtual
+ package libgimpprint-doc to prevent clashes with gimpprint.info docs.
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Thu, 1 Aug 2002 12:40:26 +0100
+
+gimp-print (4.2.1-2) unstable; urgency=low
+
+ * Move escputil to section utils
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Thu, 2 May 2002 18:34:27 +0100
+
+gimp-print (4.2.1-1) unstable; urgency=low
+
+ * New upstream release
+ * Add postscript-viewer virtual package as an alternative to gs Recommends
+ for cupsys-driver-gimpprint
+ * Reinitialise cupsys after installation or removal of
+ cupsys-driver-gimpprint
+ * Correctly version libgimpprint1 shlibs with -V dh_makeshlibs option
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Wed, 6 Mar 2002 00:05:44 +0000
+
+gimp-print (4.2.0-3) unstable; urgency=low
+
+ * Fix libgimpprint.postinst to use 'if' instead of 'case', removing a
+ lintian warning.
+ * Split out the message catalogues from the libgimpprint package into
+ a new gimpprint-locales package to avoid filename conflicts when
+ multiple libgimpprint versions are installed concurrently.
+ * Add libgimpprint-doc.doc-base (existed for six months, but was never
+ added to CVS!)
+ * Merge fixes from debian-branch:
+ - Fix locales package description (Eric Sharkey)
+ - Change conflicts to replaces (Eric Sharkey)
+ - Fix build dependencies (Eric Sharkey)
+ * New package foomatic-db-gimpprint. Contains foomatic data
+
+ -- Roger Leigh <roger@whinlatter.uklinux.net> Fri, 1 Feb 2002 21:17:36 +0000
+
gimp-print (4.2.0-1) unstable; urgency=low
* New upstream stable release (4.2.0)
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..fc210d5
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,223 @@
+Source: gimp-print
+Section: graphics
+Priority: optional
+Maintainer: Roger Leigh <roger@whinlatter.uklinux.net>
+Standards-Version: 3.5.9
+Build-Depends: libcupsys2-dev, libgimp1.2-dev, libglib1.2-dev, libgtk1.2-dev, libreadline4-dev, libijs-0.34-dev, debhelper (>= 4.0.2), xlibs-dev, zlib1g-dev, flex, gettext (>= 0.10.36-1), texi2html, docbook-utils, imagemagick, autoconf, automake, libtool, bison, foomatic-bin (>= 0.20020131-1)
+
+Package: gimp1.2-print
+Architecture: any
+Depends: ${shlibs:Depends}, gimp1.2
+Recommends: gimpprint-locales (>= ${Source-Version})
+Suggests: gimpprint-doc (>= ${Source-Version})
+Description: The Print plugin for the GIMP
+ This package includes the Print plugin for the GIMP.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: cupsys-driver-gimpprint
+Architecture: any
+Depends: ${shlibs:Depends}, cupsys (>= 1.1.4) | cups (>= 1.1.4)
+Recommends: postscript-viewer | gs (>= 6.51), gimpprint-locales (>= ${Source-Version})
+Suggests: gimpprint-doc (>= ${Source-Version})
+Description: Gimp-Print printer drivers for CUPS
+ This package includes a CUPS driver based on gimp-print.
+ .
+ The CUPS drivers contain all of the files needed to support
+ photo-quality printing on any printer supported by gimp-print. You
+ can find out more about the Common UNIX Printing System ("CUPS"), an
+ IPP-based printing system for UNIX/Linux, at:
+ .
+ http://www.cups.org
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: libgimpprint1-dev
+Architecture: any
+Section: libdevel
+Depends: libgimpprint1 (= ${Source-Version})
+Provides: libgimpprint-dev
+Conflicts: libgimpprint-dev
+Replaces: libgimpprint-dev
+Suggests: libgimpprint1-doc (= ${Source-Version})
+Description: Header files and extras for compiling programs with libgimpprint
+ This package contains the header files for the libgimpprint library,
+ along with a static version of libgimpprint.
+ .
+ Install this package if you wish to develop packages that use
+ libgimpprint.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: libgimpprint1-doc
+Architecture: all
+Section: doc
+Replaces: libgimpprint-doc
+Suggests: libgimpprint1-dev (= ${Source-Version})
+Description: Documentation and example code for the libgimpprint library
+ This package contains lots of info-files, DVI docs and other
+ documentation about the gimpprint library for photo-quality printing.
+ .
+ Install this package if you want to have lots of info about the
+ gimpprint library when you're programming.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: libgimpprint1
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Recommends: gimpprint-locales (>= ${Source-Version})
+Description: Gimp-Print printer drivers - core library
+ This package includes the libgimpprint library, necessary to run
+ gimp1.2-print and cupsys-driver-gimpprint.
+ .
+ It has been split off from the main gimp-print package in order to
+ facilitate easy development for other packages that require it.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: gimpprint-locales
+Architecture: all
+Section: libs
+Replaces: libgimpprint1 (<= 4.2.0-1)
+Description: Locale data files for gimp-print
+ This package contains the i18n files of gimp-print, used by
+ libgimpprint, gimp1.2-print, cupsys-driver-gimpprint and escputil.
+ It will be used by any programs which link with libgimpprint.
+ .
+ They are needed when you want the programs in gimp-print to print
+ their messages in other languages than US English.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: gimpprint-doc
+Architecture: all
+Section: doc
+Suggests: cupsys-driver-gimpprint (>= ${Source-Version}), foomatic-db-gimp-print (>= ${Source-Version}), gimp1.2-print (>= ${Source-Version}), ijsgimpprint (>= ${Source-Version})
+Description: Users' Guide for GIMP-Print and CUPS
+ This package contains a user guide for programs using the
+ libgimpprint library for photographic quality printing. Currently
+ this covers using the Print plugin for the GIMP and the Common Unix
+ Printing System (CUPS).
+ .
+ The documentation is available in both HTML and PDF formats for
+ on-line viewing and hardcopy.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: escputil
+Architecture: any
+Section: utils
+Depends: ${shlibs:Depends}
+Recommends: gimpprint-locales (>= ${Source-Version})
+Description: A maintenance utility for Epson Stylus printers
+ escputil is a utility to clean and align the heads of Epson Stylus
+ printers. It can also check the current ink levels in the printer.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: ijsgimpprint
+Architecture: any
+Section: text
+Depends: ${shlibs:Depends}, gs (>= 6.53) | gs-esp (>= 6.53) | gs-aladdin (>= 7.04)
+Description: Inkjet Server - Ghostscript driver for GIMP-Print
+ This package contains the ijsgimpprint binary which provides
+ Ghostscript with a GIMP-Print driver, supporting all printers
+ supported by libgimpprint.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: foomatic-db-gimp-print
+Architecture: all
+Section: text
+Depends: foomatic-db, ijsgimpprint (>= ${Source-Version})
+Description: Printer/Driver database and print system - gimp-print database
+ Foomatic is a printer and driver database with PPD generator and
+ filter backends for various printing systems from cups over lp* to
+ pdq.
+ .
+ This package contains the database for the gimp-print printer
+ drivers.
+ .
+ This is Gimp-Print version 4.2.7, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
diff --git a/debian/control.in b/debian/control.in
index e7de33f..a77d353 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -1,99 +1,223 @@
Source: gimp-print
Section: graphics
Priority: optional
-Maintainer: Eric Sharkey <sharkey@debian.org>
-Standards-Version: 3.5.6.0
-Build-Depends: libcupsys2-dev, libgimp1.2-dev, libglib1.2-dev, libgtk1.2-dev, libreadline4-dev, debhelper (>= 2.2.18), xlibs-dev, zlib1g-dev, flex, gettext (>= 0.10.36-1), texi2html, docbook-utils, imagemagick
+Maintainer: Roger Leigh <roger@whinlatter.uklinux.net>
+Standards-Version: 3.5.9
+Build-Depends: libcupsys2-dev, libgimp1.2-dev, libglib1.2-dev, libgtk1.2-dev, libreadline4-dev, libijs-0.34-dev, debhelper (>= 4.0.2), xlibs-dev, zlib1g-dev, flex, gettext (>= 0.10.36-1), texi2html, docbook-utils, imagemagick, autoconf, automake, libtool, bison, foomatic-bin (>= 0.20020131-1)
Package: gimp1.2-print
Architecture: any
Depends: ${shlibs:Depends}, gimp1.2
-Suggests: libgimpprint-doc (= ${Source-Version}), gimpprint-doc (= ${Source-Version})
-Description: print plugin for the GIMP
- This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in the 4.2
- line. Gimp-print is the print facility for the Gimp, and in addition
- a suite of drivers that may be used with common UNIX spooling systems
- using GhostScript or CUPS. These drivers provide printing quality for
- UNIX/Linux on a par with proprietary vendor-supplied drivers in many
- cases, and can be used for many of the most demanding printing tasks.
- .
- This package includes the print plugin for the GIMP.
+Recommends: gimpprint-locales (>= ${Source-Version})
+Suggests: gimpprint-doc (>= ${Source-Version})
+Description: The Print plugin for the GIMP
+ This package includes the Print plugin for the GIMP.
+ .
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
Package: cupsys-driver-gimpprint
Architecture: any
Depends: ${shlibs:Depends}, cupsys (>= 1.1.4) | cups (>= 1.1.4)
-Recommends: gs (>= 6.51)
-Suggests: gimpprint-doc (= ${Source-Version})
-Description: gimp-print printer driver for CUPS
- This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in the 4.2
- line. Gimp-print is the print facility for the Gimp, and in addition
- a suite of drivers that may be used with common UNIX spooling systems
- using GhostScript or CUPS. These drivers provide printing quality for
- UNIX/Linux on a par with proprietary vendor-supplied drivers in many
- cases, and can be used for many of the most demanding printing tasks.
- .
+Recommends: postscript-viewer | gs (>= 6.51), gimpprint-locales (>= ${Source-Version})
+Suggests: gimpprint-doc (>= ${Source-Version})
+Description: Gimp-Print printer drivers for CUPS
This package includes a CUPS driver based on gimp-print.
.
The CUPS drivers contain all of the files needed to support
- photo-quality printing on any printer supported by the GIMP
- Print plug-in. You can find out more about the Common UNIX
- Printing System ("CUPS"), an IPP-based printing system for
- UNIX/Linux, at:
+ photo-quality printing on any printer supported by gimp-print. You
+ can find out more about the Common UNIX Printing System ("CUPS"), an
+ IPP-based printing system for UNIX/Linux, at:
+ .
+ http://www.cups.org
.
- http://www.cups.org
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
-Package: libgimpprint-dev
+Package: libgimpprint#LIBRARY_VERSION#-dev
Architecture: any
-Section: devel
-Depends: libgimpprint1 (= ${Source-Version})
-Description: header files for compiling programs with libgimpprint
- This package contains the header files for the gimp-print package, along with
- a static version of libgimpprint.
+Section: libdevel
+Depends: libgimpprint#LIBRARY_VERSION# (= ${Source-Version})
+Provides: libgimpprint-dev
+Conflicts: libgimpprint-dev
+Replaces: libgimpprint-dev
+Suggests: libgimpprint#LIBRARY_VERSION#-doc (= ${Source-Version})
+Description: Header files and extras for compiling programs with libgimpprint
+ This package contains the header files for the libgimpprint library,
+ along with a static version of libgimpprint.
+ .
+ Install this package if you wish to develop packages that use
+ libgimpprint.
.
- Install this package if you wish to develop packages that use libgimpprint.
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
.
- This is the stable 4.2 branch of gimp-print.
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
-Package: libgimpprint-doc
+Package: libgimpprint#LIBRARY_VERSION#-doc
Architecture: all
Section: doc
-Suggests: libgimpprint1 (= ${Source-Version})
-Description: Documentation and example code for the gimpprint library
+Replaces: libgimpprint-doc
+Suggests: libgimpprint#LIBRARY_VERSION#-dev (= ${Source-Version})
+Description: Documentation and example code for the libgimpprint library
This package contains lots of info-files, DVI docs and other
- documentation about the gimpprint library for photo-quality
- printing
+ documentation about the gimpprint library for photo-quality printing.
.
Install this package if you want to have lots of info about the
gimpprint library when you're programming.
+ .
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
-Package: libgimpprint1
+Package: libgimpprint#LIBRARY_VERSION#
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
-Description: library necessary to use gimp-print programs
- This package includes the libgimpprint library, necessary to run gimp1.2-print
- and cupsys-driver-gimpprint.
+Recommends: gimpprint-locales (>= ${Source-Version})
+Description: Gimp-Print printer drivers - core library
+ This package includes the libgimpprint library, necessary to run
+ gimp1.2-print and cupsys-driver-gimpprint.
+ .
+ It has been split off from the main gimp-print package in order to
+ facilitate easy development for other packages that require it.
+ .
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: gimpprint-locales
+Architecture: all
+Section: libs
+Replaces: libgimpprint1 (<= 4.2.0-1)
+Description: Locale data files for gimp-print
+ This package contains the i18n files of gimp-print, used by
+ libgimpprint, gimp1.2-print, cupsys-driver-gimpprint and escputil.
+ It will be used by any programs which link with libgimpprint.
+ .
+ They are needed when you want the programs in gimp-print to print
+ their messages in other languages than US English.
.
- It has been split off from the main gimp-print package in order to facilitate
- easy development for other packages that require it.
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
Package: gimpprint-doc
Architecture: all
Section: doc
-Suggests: libgimpprint1 (= ${Source-Version})
-Description: User Guide for GIMP-Print and CUPS
+Suggests: cupsys-driver-gimpprint (>= ${Source-Version}), foomatic-db-gimp-print (>= ${Source-Version}), gimp1.2-print (>= ${Source-Version}), ijsgimpprint (>= ${Source-Version})
+Description: Users' Guide for GIMP-Print and CUPS
This package contains a user guide for programs using the
libgimpprint library for photographic quality printing. Currently
- this covers using the Print plugin for the GIMP and the Common
- Unix Printing System (CUPS).
+ this covers using the Print plugin for the GIMP and the Common Unix
+ Printing System (CUPS).
+ .
+ The documentation is available in both HTML and PDF formats for
+ on-line viewing and hardcopy.
.
- The documentation is available in both HTML and PDF formats for on-line
- viewing and hardcopy.
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
Package: escputil
Architecture: any
-Section: misc
-Depends: ${shlibs:Depends}, libgimpprint1
-Description: a utility for Epson Stylus printers
- escputil is a utility to clean and align the heads of Epson Stylus printers.
- It can also check the current ink levels in the printer.
+Section: utils
+Depends: ${shlibs:Depends}
+Recommends: gimpprint-locales (>= ${Source-Version})
+Description: A maintenance utility for Epson Stylus printers
+ escputil is a utility to clean and align the heads of Epson Stylus
+ printers. It can also check the current ink levels in the printer.
+ .
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: ijsgimpprint
+Architecture: any
+Section: text
+Depends: ${shlibs:Depends}, gs (>= 6.53) | gs-esp (>= 6.53) | gs-aladdin (>= 7.04)
+Description: Inkjet Server - Ghostscript driver for GIMP-Print
+ This package contains the ijsgimpprint binary which provides
+ Ghostscript with a GIMP-Print driver, supporting all printers
+ supported by libgimpprint.
+ .
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
+
+Package: foomatic-db-gimp-print
+Architecture: all
+Section: text
+Depends: foomatic-db, ijsgimpprint (>= ${Source-Version})
+Description: Printer/Driver database and print system - gimp-print database
+ Foomatic is a printer and driver database with PPD generator and
+ filter backends for various printing systems from cups over lp* to
+ pdq.
+ .
+ This package contains the database for the gimp-print printer
+ drivers.
+ .
+ This is Gimp-Print version #UPSTREAM_VERSION#, a stable release in
+ the 4.2 line.
+ .
+ Gimp-Print is the print facility for the Gimp, and in addition a
+ suite of drivers that may be used with common UNIX spooling systems
+ using GhostScript or CUPS. These drivers provide printing quality
+ for UNIX/Linux on a par with proprietary vendor-supplied drivers in
+ many cases, and can be used for many of the most demanding printing
+ tasks.
diff --git a/debian/cupsys-driver-gimpprint.conffiles b/debian/cupsys-driver-gimpprint.conffiles
deleted file mode 100644
index 2f39cee..0000000
--- a/debian/cupsys-driver-gimpprint.conffiles
+++ /dev/null
@@ -1 +0,0 @@
-/etc/cups/command.types
diff --git a/debian/cupsys-driver-gimpprint.files b/debian/cupsys-driver-gimpprint.files
deleted file mode 100644
index 806c043..0000000
--- a/debian/cupsys-driver-gimpprint.files
+++ /dev/null
@@ -1,6 +0,0 @@
-/etc/cups
-/usr/bin/cups-calibrate
-/usr/lib/cups
-/usr/share/cups/calibrate.ppm
-/usr/share/cups/model/C
-/usr/share/man/man8/cups-calibrate.8
diff --git a/debian/cupsys-driver-gimpprint.install b/debian/cupsys-driver-gimpprint.install
new file mode 100644
index 0000000..09e37b7
--- /dev/null
+++ b/debian/cupsys-driver-gimpprint.install
@@ -0,0 +1,7 @@
+debian/install/etc/cups etc
+debian/install/usr/bin/cups-calibrate usr/bin
+debian/install/usr/lib/cups usr/lib
+debian/install/usr/share/cups/calibrate.ppm usr/share/cups
+debian/install/usr/share/cups/model/C/* usr/share/cups/model/gimp-print
+debian/install/usr/share/man/man8/cups-calibrate.8 usr/share/man/man8
+samples/profile.jpg usr/share/doc/cupsys-driver-gimpprint/samples
diff --git a/debian/libgimpprint.postinst b/debian/cupsys-driver-gimpprint.postinst
index bcd9b98..144bfc9 100644
--- a/debian/libgimpprint.postinst
+++ b/debian/cupsys-driver-gimpprint.postinst
@@ -22,20 +22,14 @@ set -e
# installation fails and the `postinst' is called with `abort-upgrade',
# `abort-remove' or `abort-deconfigure'.
-case "$1" in
- configure)
- ldconfig
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
-
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
+#s/^if\s+\[\s+"\$1"\s+=\s+"configure"\s+\];\s+then\s+ldconfig\b//m;
+
+if [ "$1" = "configure" ]; then /etc/init.d/cupsys reload
+elif [ "$1" = "abort-upgrade" -o "$1" = "abort-remove" -o "$1" = "abort-deconfigure" ]; then :
+else
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+fi
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
diff --git a/debian/cupsys-driver-gimpprint.postrm b/debian/cupsys-driver-gimpprint.postrm
index a4792a2..0f4f897 100644
--- a/debian/cupsys-driver-gimpprint.postrm
+++ b/debian/cupsys-driver-gimpprint.postrm
@@ -16,6 +16,10 @@ set -e
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
# for details, see /usr/doc/packaging-manual/
+if [ "$1" = remove ]; then
+ /etc/init.d/cupsys reload
+fi
+
if [ "$1" = purge ]; then
# Remove /etc/cups if it is empty
rmdir --ignore-fail-on-non-empty /etc/cups
diff --git a/debian/escputil.files b/debian/escputil.files
deleted file mode 100644
index a813ffe..0000000
--- a/debian/escputil.files
+++ /dev/null
@@ -1,2 +0,0 @@
-/usr/bin/escputil
-/usr/share/man/man1/escputil.1
diff --git a/debian/escputil.install b/debian/escputil.install
new file mode 100644
index 0000000..75d88a3
--- /dev/null
+++ b/debian/escputil.install
@@ -0,0 +1,2 @@
+debian/install/usr/bin/escputil usr/bin
+debian/install/usr/share/man/man1/escputil.1 usr/share/man/man1
diff --git a/debian/foomatic-db-gimp-print.install b/debian/foomatic-db-gimp-print.install
new file mode 100644
index 0000000..000d417
--- /dev/null
+++ b/debian/foomatic-db-gimp-print.install
@@ -0,0 +1,2 @@
+debian/install/usr/share/foomatic/db/source/driver/gimp-print-ijs.xml usr/share/foomatic/db/source/driver
+debian/install/usr/share/foomatic/db/source/opt/gimp-print-ijs* usr/share/foomatic/db/source/opt
diff --git a/debian/gimp1.2-print.install b/debian/gimp1.2-print.install
new file mode 100644
index 0000000..a645d02
--- /dev/null
+++ b/debian/gimp1.2-print.install
@@ -0,0 +1,3 @@
+doc/*.html usr/share/doc/gimp1.2-print/html
+doc/*.png usr/share/doc/gimp1.2-print/html
+samples/*.png usr/share/doc/gimp1.2-print/samples
diff --git a/debian/gimpprint-doc.doc-base b/debian/gimpprint-doc.doc-base
index 88693da..5d59948 100644
--- a/debian/gimpprint-doc.doc-base
+++ b/debian/gimpprint-doc.doc-base
@@ -11,5 +11,5 @@ Abstract: The Gimp-Print Top Quality Printer Drivers (hereafter
Section: Apps/Graphics
Format: HTML
-Index: /usr/share/doc/gimpprint-doc/html/book1.html
+Index: /usr/share/doc/gimpprint-doc/html/index.html
Files: /usr/share/doc/gimpprint-doc/html/*
diff --git a/debian/gimpprint-doc.install b/debian/gimpprint-doc.install
new file mode 100644
index 0000000..7df6663
--- /dev/null
+++ b/debian/gimpprint-doc.install
@@ -0,0 +1,11 @@
+debian/install/usr/share/gimp-print/doc/*.pdf usr/share/doc/gimpprint-doc
+debian/install/usr/share/gimp-print/doc/html usr/share/doc/gimpprint-doc
+debian/install/usr/share/man/man7/gimpprint-color.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-dithers.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-imagetypes.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-inktypes.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-mediasizes.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-mediasources.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-mediatypes.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-models.7 usr/share/man/man7
+debian/install/usr/share/man/man7/gimpprint-resolutions.7 usr/share/man/man7
diff --git a/debian/gimpprint-locales.install b/debian/gimpprint-locales.install
new file mode 100644
index 0000000..525d334
--- /dev/null
+++ b/debian/gimpprint-locales.install
@@ -0,0 +1 @@
+debian/install/usr/share/locale usr/share
diff --git a/debian/ijsgimpprint.install b/debian/ijsgimpprint.install
new file mode 100644
index 0000000..daf315b
--- /dev/null
+++ b/debian/ijsgimpprint.install
@@ -0,0 +1,2 @@
+debian/install/usr/bin/ijsgimpprint usr/bin
+debian/install/usr/share/man/man1/ijsgimpprint.1 usr/share/man/man1
diff --git a/debian/libgimpprint-dev.files b/debian/libgimpprint-dev.files
deleted file mode 100644
index a3d7cf3..0000000
--- a/debian/libgimpprint-dev.files
+++ /dev/null
@@ -1,8 +0,0 @@
-usr/bin/gimpprint-config
-usr/lib/libgimpprint.so
-usr/lib/libgimpprint.la
-usr/lib/libgimpprint.a
-usr/include/gimp-print
-usr/share/aclocal/gimpprint.m4
-usr/share/man/man3/gimpprint.3
-usr/share/man/man1/gimpprint-config.1
diff --git a/debian/libgimpprint-dev.install b/debian/libgimpprint-dev.install
new file mode 100644
index 0000000..a569389
--- /dev/null
+++ b/debian/libgimpprint-dev.install
@@ -0,0 +1,8 @@
+debian/install/usr/bin/gimpprint-config usr/bin
+debian/install/usr/lib/libgimpprint.so usr/lib
+debian/install/usr/lib/libgimpprint.la usr/lib
+debian/install/usr/lib/libgimpprint.a usr/lib
+debian/install/usr/include/gimp-print usr/include
+debian/install/usr/share/aclocal/gimpprint.m4 usr/share/aclocal
+debian/install/usr/share/man/man3/gimpprint.3 usr/share/man/man3
+debian/install/usr/share/man/man1/gimpprint-config.1 usr/share/man/man1
diff --git a/debian/libgimpprint-doc.doc-base.in b/debian/libgimpprint-doc.doc-base.in
new file mode 100644
index 0000000..1dabe47
--- /dev/null
+++ b/debian/libgimpprint-doc.doc-base.in
@@ -0,0 +1,15 @@
+Document: libgimpprint#LIBRARY_VERSION#-doc
+Title: The libgimpprint Reference Manual
+Author: The GIMP-Print Project
+Abstract: The gimpprint library routines give programmers an interface to
+ print high quality bitmap images on most modern printers. It includes drivers
+ which provide printing quality for UNIX/Linux on a par with proprietary
+ vendor-supplied drivers in many cases, and can be used for many of the most
+ demanding printing tasks. This manual covers developing programs that use
+ libgimpprint for printing, as well as the programs that are distributed with
+ GIMP-Print.
+Section: Apps/Programming
+
+Format: HTML
+Index: /usr/share/doc/libgimpprint#LIBRARY_VERSION#-doc/html/gimpprint_toc.html
+Files: /usr/share/doc/libgimpprint#LIBRARY_VERSION#-doc/html/*.html
diff --git a/debian/libgimpprint-doc.install.in b/debian/libgimpprint-doc.install.in
new file mode 100644
index 0000000..7ac38f5
--- /dev/null
+++ b/debian/libgimpprint-doc.install.in
@@ -0,0 +1,2 @@
+debian/install/usr/share/gimp-print/doc/gimpprint.ps usr/share/doc/libgimpprint#LIBRARY_VERSION#-doc
+debian/install/usr/share/gimp-print/doc/manual-html/* usr/share/doc/libgimpprint#LIBRARY_VERSION#-doc/html
diff --git a/debian/libgimpprint.files b/debian/libgimpprint.files
deleted file mode 100644
index 5dbe786..0000000
--- a/debian/libgimpprint.files
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib
-usr/share/locale
diff --git a/debian/libgimpprint.install b/debian/libgimpprint.install
new file mode 100644
index 0000000..b9274fe
--- /dev/null
+++ b/debian/libgimpprint.install
@@ -0,0 +1,2 @@
+debian/install/usr/lib/libgimpprint.so.* usr/lib
+debian/install/usr/lib/libgimpprint-* usr/lib
diff --git a/debian/rules b/debian/rules
index 69559e8..e74c27d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,48 +1,73 @@
#!/usr/bin/make -f
# rules to package GIMP-Print
-# $Id: rules,v 1.29 2001/11/24 14:59:46 sharkey Exp $
+# $Id: rules,v 1.29.2.11 2003/01/24 00:08:33 rleigh Exp $
#
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-# This is the debhelper compatability version to use.
-export DH_COMPAT=2
-
# This has to be exported to make some magic below work.
export DH_OPTIONS
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -g
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
# Get upstream version, and define libgimpprint suffix
UPSTREAM_VERSION = $(shell dpkg-parsechangelog | grep ^Version | sed "s/.* //" | sed "s/-[^-]*$$//")
-#LIBRARY_VERSION = $(UPSTREAM_VERSION)
+#LIBRARY_VERSION = -$(UPSTREAM_VERSION)
LIBRARY_VERSION = 1
+autoconfigure: autoconfigure-stamp
+autoconfigure-stamp: debian/control debian/libgimpprint-doc.doc-base debian/libgimpprint-doc.install
+ dh_testdir
+
+ cd debian; \
+ for file in libgimpprint*; do \
+ ln -sf $$file `echo $$file | sed -e 's/libgimpprint/libgimpprint$(LIBRARY_VERSION)/'`; \
+ done
+ rm debian/libgimpprint$(LIBRARY_VERSION)*.in
+ mkdir debian/build; \
+ cd debian/build; \
+ BUILD_PACKAGE=true ../../configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-static --enable-shared --without-gimp --with-cups --with-ijs --with-foomatic --disable-test --without-translated-ppds --disable-cups-level3-ps --enable-maintainer-mode
+ touch autoconfigure-stamp
+
build: build-stamp debian/control
-build-stamp: configure
+build-stamp: autoconfigure-stamp
dh_testdir
-
- cd debian ; \
- ln -sf libgimpprint.files libgimpprint$(LIBRARY_VERSION).files ; \
- ln -sf libgimpprint.postinst libgimpprint$(LIBRARY_VERSION).postinst ; \
- cd .. ; \
- mkdir debian/gimp-print-build ; \
- cd debian/gimp-print-build ; \
- BUILD_PACKAGE=true ../../configure --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-static --enable-shared --without-gimp --with-cups --disable-test --without-translated-ppds --disable-cups-level3-ps --enable-maintainer-mode ; \
- $(MAKE) ; \
- cd src/gimp ; \
+
+ cd debian/build; \
+ $(MAKE); \
+ cd src/gimp; \
$(MAKE) print
touch build-stamp
clean: debian/control
dh_testdir
- rm -f build-stamp
+ rm -f build-stamp autoconfigure-stamp
+
+ -$(MAKE) distclean
+ -test -r /usr/share/misc/config.sub && \
+ cp -f /usr/share/misc/config.sub scripts/config.sub
+ -test -r /usr/share/misc/config.guess && \
+ cp -f /usr/share/misc/config.guess scripts/config.guess
- # Add here commands to clean up after the build process.
- rm -rf debian/gimp-print-build debian/gimp-print-install
+ rm -rf debian/build debian/install
+ rm -rf debian/libgimpprint-doc.doc-base debian/libgimpprint-doc.install
rm -rf debian/libgimpprint$(LIBRARY_VERSION).files
rm -rf debian/libgimpprint$(LIBRARY_VERSION).postinst
-$(MAKE) distclean
+ rm -rf $(CURDIR)/debian/libgimpprint$(LIBRARY_VERSION)*
dh_clean
install: DH_OPTIONS=
@@ -52,13 +77,13 @@ install: build debian/control
dh_clean -k
dh_installdirs
- cd debian/gimp-print-build ; \
- $(MAKE) DESTDIR=`pwd`/../gimp-print-install install
-
+ cd debian/build; \
+ $(MAKE) DESTDIR=`pwd`/../install install
+
scripts/mkinstalldirs debian/gimp1.2-print/usr/lib/gimp/1.2/plug-ins
- /usr/bin/install -c debian/gimp-print-build/src/gimp/.libs/print debian/gimp1.2-print/usr/lib/gimp/1.2/plug-ins/print
-
- dh_movefiles --sourcedir=debian/gimp-print-install
+ /usr/bin/install -c debian/build/src/gimp/.libs/print debian/gimp1.2-print/usr/lib/gimp/1.2/plug-ins/print
+
+ dh_install
# Build architecture-independent files here.
@@ -67,14 +92,14 @@ binary-indep: build install ChangeLog
dh_testroot -i
# dh_installdebconf -i
dh_installdocs -i
- cp debian/gimp-print-build/doc/gimpprint.ps debian/libgimpprint-doc/usr/share/doc/libgimpprint-doc
- cp -r debian/gimp-print-build/doc/manual-html debian/libgimpprint-doc/usr/share/doc/libgimpprint-doc/html
- cd debian/libgimpprint-doc/usr/share/doc/libgimpprint-doc/html ; \
- if test ! -f gimpprint.html ; then \
- ln -s gimpprint_toc.html gimpprint.html ; \
+ cd debian/libgimpprint$(LIBRARY_VERSION)-doc/usr/share/doc/libgimpprint$(LIBRARY_VERSION)-doc/html; \
+ if test ! -f gimpprint.html; then \
+ ln -s gimpprint_toc.html gimpprint.html; \
+ fi
+ cd debian/gimpprint-doc/usr/share/doc/gimpprint-doc/html; \
+ if test ! -f index.html; then \
+ ln -s book1.html index.html; \
fi
- cp debian/gimp-print-build/doc/users_guide/*.pdf debian/gimpprint-doc/usr/share/doc/gimpprint-doc
- cp -r debian/gimp-print-build/doc/users_guide/html debian/gimpprint-doc/usr/share/doc/gimpprint-doc/html
dh_installexamples -i
# dh_installmenu -i
# dh_installlogrotate -i
@@ -84,7 +109,7 @@ binary-indep: build install ChangeLog
# dh_installinit -i
# dh_installcron -i
# dh_installmanpages -i
- dh_installinfo -i -plibgimpprint-doc debian/gimp-print-install/usr/share/info/*
+ dh_installinfo -i -plibgimpprint$(LIBRARY_VERSION)-doc debian/install/usr/share/info/*
dh_undocumented -i
dh_installchangelogs -i NEWS
dh_link -i
@@ -103,13 +128,7 @@ binary-arch: build install ChangeLog
# dh_installdebconf -a
dh_installdocs -a
cp src/cups/README debian/cupsys-driver-gimpprint/usr/share/doc/cupsys-driver-gimpprint/README.cups
- mkdir debian/gimp1.2-print/usr/share/doc/gimp1.2-print/html ; \
- cp doc/*.html doc/*.png debian/gimp1.2-print/usr/share/doc/gimp1.2-print/html ; \
dh_installexamples -a
- mkdir -p debian/gimp1.2-print/usr/share/doc/gimp1.2-print/samples
- cp -r samples/*.png debian/gimp1.2-print/usr/share/doc/gimp1.2-print/samples
- mkdir -p debian/cupsys-driver-gimpprint/usr/share/doc/cupsys-driver-gimpprint/samples
- cp -r samples/profile.jpg debian/cupsys-driver-gimpprint/usr/share/doc/cupsys-driver-gimpprint/samples
# dh_installmenu -a
# dh_installlogrotate -a
# dh_installemacsen -a
@@ -125,7 +144,7 @@ binary-arch: build install ChangeLog
dh_link -a
dh_compress -a
dh_fixperms -a
- dh_makeshlibs -a
+ dh_makeshlibs -a -V
dh_installdeb -a
# dh_perl -a
dh_shlibdeps -a -l`pwd`/debian/libgimpprint$(LIBRARY_VERSION)/usr/lib
@@ -139,34 +158,43 @@ binary: binary-indep binary-arch
ChangeLog: changelog-stamp
changelog-stamp: build
$(MAKE) ChangeLog
-
-# Make sure an/that is up-to-date.
+
+SEDPATTERN = -e "s/\#UPSTREAM_VERSION\#/$(UPSTREAM_VERSION)/g" -e "s/\#LIBRARY_VERSION\#/$(LIBRARY_VERSION)/g"
+
+# Make sure debian/control is up-to-date.
debian/control: debian/changelog debian/control.in
- sed -e "s/#UPSTREAM_VERSION#/$(UPSTREAM_VERSION)/g" <debian/control.in >debian/control
+ sed $(SEDPATTERN) <debian/control.in >debian/control
+
+# Make sure debian/libgimpprint-doc.doc-base is up-to-date.
+debian/libgimpprint-doc.doc-base: debian/changelog debian/libgimpprint-doc.doc-base.in
+ sed $(SEDPATTERN) <debian/libgimpprint-doc.doc-base.in >debian/libgimpprint-doc.doc-base
+
+# Make sure debian/libgimpprint-doc.install is up-to-date.
+debian/libgimpprint-doc.install: debian/changelog debian/libgimpprint-doc.install.in
+ sed $(SEDPATTERN) <debian/libgimpprint-doc.install.in >debian/libgimpprint-doc.install
+
# Make sure that configure is up-to-date.
configure: configure.in scripts/install-sh
- if test -f configure.in ; then \
- if test -f autogen.sh ; then \
- export NOCONFIGURE=TRUE ; \
- /bin/sh autogen.sh ; \
+ if test -f configure.in; then \
+ if test -f autogen.sh; then \
+ export NOCONFIGURE=TRUE; \
+ /bin/sh autogen.sh; \
fi \
fi
-
+
configure.in: configure.in.in
- if test -f configure.in.in ; then \
- if test -f autogen.sh ; then \
- export NOCONFIGURE=TRUE ; \
- /bin/sh autogen.sh ; \
+ if test -f configure.in.in; then \
+ if test -f autogen.sh; then \
+ NOCONFIGURE=TRUE /bin/sh autogen.sh; \
fi \
fi
scripts/install-sh:
- if test -f autogen.sh ; then \
- export NOCONFIGURE=TRUE ; \
- /bin/sh autogen.sh ; \
+ if test -f autogen.sh; then \
+ NOCONFIGURE=TRUE /bin/sh autogen.sh; \
fi
configure.in.in:
-.PHONY: build clean binary-indep binary-arch binary install NEWS
+.PHONY: build clean binary-indep binary-arch binary install autoconfigure NEWS
diff --git a/doc/.cvsignore b/doc/.cvsignore
deleted file mode 100644
index 00d9220..0000000
--- a/doc/.cvsignore
+++ /dev/null
@@ -1,33 +0,0 @@
-manual-html
-html-stamp
-gimpprint.pgs
-version.texi
-gimpprint.info
-gimpprint.info-1
-gimpprint.info-2
-gimpprint.info-3
-gimpprint.info-4
-gimpprint.info-5
-texinfo.tex
-print-color.eps
-print-main.eps
-print-setup.eps
-gimpprint.tocs
-Makefile.in
-Makefile
-stamp-vti
-gimpprint.pg
-gimpprint.pdf
-gimpprint.fn
-gimpprint.vr
-gimpprint.toc
-gimpprint.dvi
-gimpprint.ky
-gimpprint.tp
-gimpprint.ps
-gimpprint.fns
-gimpprint.cp
-gimpprint.log
-gimpprint.cps
-gimpprint.aux
-gimpprint.vrs
diff --git a/doc/FAQ.html b/doc/FAQ.html
index 8d49e23..d3dcdc9 100644
--- a/doc/FAQ.html
+++ b/doc/FAQ.html
@@ -142,7 +142,7 @@ different kinds of paper; you may need to tweak the density and color
settings slightly.
<p>In addition, certain printers don't work well on certain kinds of
-paper. Epson printers work well on Epson printers, but don't work
+paper. Epson printers work well on Epson papers, but don't work
well on many third party papers (particularly the high quality photo
papers made by other vendors). This isn't a conspiracy to lock you
into their paper, it's because they've formulated the paper and ink to
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 9e5e88c..053a189 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.27 2001/11/08 13:15:18 rlk Exp $
+## $Id: Makefile.am,v 1.27.2.3 2002/05/11 23:07:16 rleigh Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -30,7 +30,7 @@ SUBDIRS = users_guide
MANUAL = gimpprint
HTMLDIR = manual-html
-DOCS = $(MANUAL).dvi $(MANUAL).ps html
+DOCS = $(MANUAL).dvi $(MANUAL).ps html-stamp
IMAGES = \
print-color.png \
@@ -39,6 +39,8 @@ IMAGES = \
EPS_IMAGES = $(addsuffix .eps,$(basename $(IMAGES)))
+TEXT_IMAGES = $(addsuffix .txt,$(basename $(IMAGES)))
+
if MAINTAINER_MODE
MAINT_MODE = true
else
@@ -93,7 +95,8 @@ html: html-stamp
html-stamp: $(addprefix $(srcdir)/,$(gimpprint_TEXINFOS) $(info_TEXINFOS))
$(RM) -rf $(HTMLDIR)-tmp
mkdir $(HTMLDIR)-tmp
- for image in $(addprefix $(srcdir)/, $(IMAGES)) ; do \
+ images="$(addprefix $(srcdir)/, $(IMAGES))"; \
+ for image in $$images ; do \
cp -p $$image $(HTMLDIR)-tmp ; \
done
cd $(HTMLDIR)-tmp ; \
@@ -112,26 +115,26 @@ $(MANUAL).pdf: $(MANUAL).dvi
install-data-local: $(STANDARD_TARGETS)
if test -n '$(STANDARD_TARGETS)' ; then \
$(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
- $(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc/manual-html ; \
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc/$(HTMLDIR) ; \
if test -f $(MANUAL).ps ; then \
$(INSTALL_DATA) $(MANUAL).ps $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
elif test -f $(srcdir)/$(MANUAL).ps ; then \
$(INSTALL_DATA) $(srcdir)/$(MANUAL).ps $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
fi ; \
if test -d $(HTMLDIR) ; then \
- cd $(HTMLDIR) ; \
+ HTMLSRCDIR="$(HTMLDIR)" ; \
elif test -d $(srcdir)/$(HTMLDIR) ; then \
- cd $(srcdir)/$(HTMLDIR) ; \
+ HTMLSRCDIR="$(srcdir)/$(HTMLDIR)" ; \
fi ; \
- for file in * ; do \
+ for file in $$HTMLSRCDIR/* ; do \
if test -f $$file ; then \
- $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/manual-html ; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/$(HTMLDIR) ; \
fi ; \
done ; \
fi
dist-hook: html
- for dir in manual-html ; do \
+ for dir in $(HTMLDIR) ; do \
if test -d $(srcdir)/$$dir ; then \
mkdir $(distdir)/$$dir; \
for dirfile in $(srcdir)/$$dir/*; do \
@@ -143,13 +146,13 @@ dist-hook: html
done
CLEAN_MANUALS = \
- $(RM) -rf html-stamp manual-html ; \
+ $(RM) -rf html-stamp $(HTMLDIR) ; \
$(RM) -f $(MANUAL).pdf $(MANUAL).ps $(MANUAL).dvi ; \
$(RM) -f $(EPS_IMAGES)
clean-local:
if test $(srcdir) = '.' -a $(MAINT_MODE) = false ; then \
- echo 'clean-local: Not removing manual-html' ; \
+ echo 'clean-local: Not removing $(HTMLDIR)' ; \
echo 'clean-local: Not removing $(MANUAL).pdf' ; \
echo 'clean-local: Not removing $(MANUAL).ps' ; \
echo 'clean-local: Not removing $(MANUAL).dvi' ; \
@@ -159,7 +162,7 @@ clean-local:
fi
-$(RM) -rf *.tex *.log *.aux *.gz *.out *.junk *.fot
-$(RM) -rf *.ky *.pg *.toc *.tp *.vr *.vrs
- -$(RM) -rf manual-html-tmp
+ -$(RM) -rf $(HTMLDIR)-tmp
veryclean:
$(MAKE) MAINT_MODE=true clean
@@ -185,6 +188,6 @@ mostlyclean-aminfo:
MAINTAINERCLEANFILES = Makefile.in html-stamp
-EXTRA_DIST = $(DOCS) $(IMAGES) $(EPS_IMAGES) html-stamp FAQ.html README.maintaining
+EXTRA_DIST = $(DOCS) $(IMAGES) $(EPS_IMAGES) $(TEXT_IMAGES) FAQ.html README.maintaining
.PHONY: html ps pdf docs clean-manuals
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..01dcff8
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,699 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+SUBDIRS = users_guide
+
+MANUAL = gimpprint
+HTMLDIR = manual-html
+DOCS = $(MANUAL).dvi $(MANUAL).ps html-stamp
+
+IMAGES = print-color.png print-main.png print-setup.png
+
+
+EPS_IMAGES = $(addsuffix .eps,$(basename $(IMAGES)))
+
+TEXT_IMAGES = $(addsuffix .txt,$(basename $(IMAGES)))
+@MAINTAINER_MODE_TRUE@MAINT_MODE = true
+@MAINTAINER_MODE_FALSE@MAINT_MODE = false
+
+USER_GUIDE = $(MANUAL).ps html
+
+STANDARD_TARGETS = @USER_GUIDE@
+@MAINTAINER_MODE_TRUE@ALL_LOCAL_TARGETS = docs
+@MAINTAINER_MODE_FALSE@ALL_LOCAL_TARGETS = $(STANDARD_TARGETS)
+
+info_TEXINFOS = gimpprint.texi
+
+gimpprint_TEXINFOS = overview.texi copying.texi gpl.texi introduction.texi using.texi functions.texi programs.texi problems.texi appendices.texi dither.texi weave.texi escp2.texi new-printer.texi indices.texi integrating.texi version.texi
+
+TEXI2DVIFLAGS = -I $(srcdir)
+
+CLEAN_MANUALS = $(RM) -rf html-stamp $(HTMLDIR) ; $(RM) -f $(MANUAL).pdf $(MANUAL).ps $(MANUAL).dvi ; $(RM) -f $(EPS_IMAGES)
+
+
+MAINTAINERCLEANFILES = Makefile.in html-stamp
+
+EXTRA_DIST = $(DOCS) $(IMAGES) $(EPS_IMAGES) $(TEXT_IMAGES) FAQ.html README.maintaining
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+TEXI2DVI = texi2dvi
+TEXINFO_TEX = $(top_srcdir)/scripts/texinfo.tex
+INFO_DEPS = gimpprint.info
+DVIS = gimpprint.dvi
+TEXINFOS = gimpprint.texi
+DIST_COMMON = $(gimpprint_TEXINFOS) Makefile.am Makefile.in stamp-vti \
+version.texi
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@stamp-vti
+ @:
+
+$(srcdir)/stamp-vti: gimpprint.texi $(top_srcdir)/configure.in
+ @echo "@set UPDATED `$(SHELL) $(top_srcdir)/scripts/mdate-sh $(srcdir)/gimpprint.texi`" > vti.tmp
+ @echo "@set EDITION $(VERSION)" >> vti.tmp
+ @echo "@set VERSION $(VERSION)" >> vti.tmp
+ @cmp -s vti.tmp $(srcdir)/version.texi \
+ || (echo "Updating $(srcdir)/version.texi"; \
+ cp vti.tmp $(srcdir)/version.texi)
+ -@rm -f vti.tmp
+ @cp $(srcdir)/version.texi $@
+
+mostlyclean-vti:
+ -rm -f vti.tmp
+
+clean-vti:
+
+distclean-vti:
+
+maintainer-clean-vti:
+ -@MAINTAINER_MODE_TRUE@rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
+
+gimpprint.info: gimpprint.texi version.texi $(gimpprint_TEXINFOS)
+gimpprint.dvi: gimpprint.texi version.texi $(gimpprint_TEXINFOS)
+
+
+.texi.info:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texi.dvi:
+ TEXINPUTS=$(top_srcdir)/scripts/texinfo.tex:$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texi:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo.info:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.texinfo.dvi:
+ TEXINPUTS=$(top_srcdir)/scripts/texinfo.tex:$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.txi.info:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+
+.txi.dvi:
+ TEXINPUTS=$(top_srcdir)/scripts/texinfo.tex:$$TEXINPUTS \
+ MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.txi:
+ @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
+ cd $(srcdir) \
+ && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+.dvi.ps:
+ $(DVIPS) $< -o $@
+
+install-info-am: $(INFO_DEPS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(infodir)
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ d=$(srcdir); \
+ for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+ if test -f $$d/$$ifile; then \
+ echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
+ $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
+ else : ; fi; \
+ done; \
+ done
+ @$(POST_INSTALL)
+ @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
+ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
+ done; \
+ else : ; fi
+
+uninstall-info:
+ $(PRE_UNINSTALL)
+ @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+ ii=yes; \
+ else ii=; fi; \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ test -z "$ii" \
+ || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
+ done
+ @$(NORMAL_UNINSTALL)
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
+ done
+
+dist-info: $(INFO_DEPS)
+ list='$(INFO_DEPS)'; \
+ for base in $$list; do \
+ d=$(srcdir); \
+ for file in `cd $$d && eval echo $$base*`; do \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file; \
+ done; \
+ done
+
+mostlyclean-aminfo:
+ -rm -f gimpprint.aux gimpprint.cp gimpprint.cps gimpprint.dvi \
+ gimpprint.fn gimpprint.fns gimpprint.ky gimpprint.kys \
+ gimpprint.ps gimpprint.log gimpprint.pg gimpprint.toc \
+ gimpprint.tp gimpprint.tps gimpprint.vr gimpprint.vrs \
+ gimpprint.op gimpprint.tr gimpprint.cv gimpprint.cn
+
+clean-aminfo:
+
+distclean-aminfo:
+
+maintainer-clean-aminfo:
+ cd $(srcdir) && for i in $(INFO_DEPS); do \
+ rm -f $$i; \
+ if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
+ rm -f $$i-[0-9]*; \
+ fi; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = doc
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+info-am: $(INFO_DEPS)
+info: info-recursive
+dvi-am: $(DVIS)
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am: install-info-am install-data-local
+install-data: install-data-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am: uninstall-info
+uninstall: uninstall-recursive
+all-am: Makefile $(INFO_DEPS) all-local
+all-redirect: all-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+ $(mkinstalldirs) $(DESTDIR)$(infodir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-vti mostlyclean-aminfo mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am: clean-vti clean-aminfo clean-tags clean-generic \
+ mostlyclean-am clean-local
+
+clean: clean-recursive
+
+distclean-am: distclean-vti distclean-aminfo distclean-tags \
+ distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am: maintainer-clean-vti maintainer-clean-aminfo \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am maintainer-clean-local
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
+install-info-am uninstall-info mostlyclean-aminfo distclean-aminfo \
+clean-aminfo maintainer-clean-aminfo install-data-recursive \
+uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-local install-data-am install-data install-am \
+install uninstall-am uninstall all-local all-redirect all-am all \
+installdirs-am installdirs mostlyclean-generic distclean-generic \
+clean-generic maintainer-clean-generic clean mostlyclean distclean \
+maintainer-clean
+
+
+@SET_MAKE@
+
+all-local: $(DOCS)
+
+docs: $(DOCS)
+ cd users_guide; $(MAKE) docs
+
+ps: $(MANUAL).ps
+ cd users_guide; $(MAKE) ps
+
+pdf: $(MANUAL).pdf
+ cd users_guide; $(MAKE) pdf
+gimpprint.dvi: $(EPS_IMAGES) $(addprefix $(srcdir)/,$(gimpprint_TEXINFOS) $(info_TEXINFOS))
+ $(TEXI2DVI) $(TEXI2DVIFLAGS) $(srcdir)/gimpprint.texi
+
+%.eps: %.png
+ $(CONVERT) $< EPS2:$@
+
+html: html-stamp
+ cd users_guide; $(MAKE) html
+
+html-stamp: $(addprefix $(srcdir)/,$(gimpprint_TEXINFOS) $(info_TEXINFOS))
+ $(RM) -rf $(HTMLDIR)-tmp
+ mkdir $(HTMLDIR)-tmp
+ images="$(addprefix $(srcdir)/, $(IMAGES))"; \
+ for image in $$images ; do \
+ cp -p $$image $(HTMLDIR)-tmp ; \
+ done
+ cd $(HTMLDIR)-tmp ; \
+ $(TEXI2HTML) -menu -split_node -number -expandinfo \
+ -I ../$(srcdir) ../$(srcdir)/$(MANUAL).texi 2>&1
+ $(RM) -rf $(HTMLDIR)
+ mv $(HTMLDIR)-tmp $(HTMLDIR)
+ touch html-stamp
+
+$(MANUAL).ps: $(MANUAL).dvi
+ TEXPICTS=$(srcdir):. $(DVIPS) $< -o $@
+
+$(MANUAL).pdf: $(MANUAL).dvi
+ TEXPICTS=$(srcdir):. $(DVIPDF) $< $@
+
+install-data-local: $(STANDARD_TARGETS)
+ if test -n '$(STANDARD_TARGETS)' ; then \
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc/$(HTMLDIR) ; \
+ if test -f $(MANUAL).ps ; then \
+ $(INSTALL_DATA) $(MANUAL).ps $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
+ elif test -f $(srcdir)/$(MANUAL).ps ; then \
+ $(INSTALL_DATA) $(srcdir)/$(MANUAL).ps $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
+ fi ; \
+ if test -d $(HTMLDIR) ; then \
+ HTMLSRCDIR="$(HTMLDIR)" ; \
+ elif test -d $(srcdir)/$(HTMLDIR) ; then \
+ HTMLSRCDIR="$(srcdir)/$(HTMLDIR)" ; \
+ fi ; \
+ for file in $$HTMLSRCDIR/* ; do \
+ if test -f $$file ; then \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/$(HTMLDIR) ; \
+ fi ; \
+ done ; \
+ fi
+
+dist-hook: html
+ for dir in $(HTMLDIR) ; do \
+ if test -d $(srcdir)/$$dir ; then \
+ mkdir $(distdir)/$$dir; \
+ for dirfile in $(srcdir)/$$dir/*; do \
+ if test -f $$dirfile ; then \
+ cp -p $$dirfile $(distdir)/$$dir; \
+ fi \
+ done \
+ fi \
+ done
+
+clean-local:
+ if test $(srcdir) = '.' -a $(MAINT_MODE) = false ; then \
+ echo 'clean-local: Not removing $(HTMLDIR)' ; \
+ echo 'clean-local: Not removing $(MANUAL).pdf' ; \
+ echo 'clean-local: Not removing $(MANUAL).ps' ; \
+ echo 'clean-local: Not removing $(MANUAL).dvi' ; \
+ echo 'clean-local: Not removing EPS figures' ; \
+ else \
+ $(CLEAN_MANUALS) ; \
+ fi
+ -$(RM) -rf *.tex *.log *.aux *.gz *.out *.junk *.fot
+ -$(RM) -rf *.ky *.pg *.toc *.tp *.vr *.vrs
+ -$(RM) -rf $(HTMLDIR)-tmp
+
+veryclean:
+ $(MAKE) MAINT_MODE=true clean
+
+maintainer-clean-local:
+ $(CLEAN_MANUALS)
+
+# We duplicate mostlyclean-aminfo here because we do not want to remove
+# the .dvi and .ps files that mostlyclean-aminfo wants to remove. The
+# reason why is that we do not want make clean to force a rebuild of the
+# doc, since users may not have the texinfo tools required to do so.
+# Unfortunately, this generates a warning about overriding commands for
+# mostlyclean-aminfo.
+mostlyclean-aminfo:
+ -$(RM) -f gimpprint.aux gimpprint.cp gimpprint.cps \
+ gimpprint.fn gimpprint.fns gimpprint.ky gimpprint.kys \
+ gimpprint.log gimpprint.pg gimpprint.toc \
+ gimpprint.tp gimpprint.tps gimpprint.vr gimpprint.vrs \
+ gimpprint.op gimpprint.tr gimpprint.cv gimpprint.cn
+
+.PHONY: html ps pdf docs clean-manuals
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/README.maintaining b/doc/README.maintaining
index b8fa393..cbcbd77 100644
--- a/doc/README.maintaining
+++ b/doc/README.maintaining
@@ -48,7 +48,7 @@ that you would like covering, please let me know!
-- Roger Leigh <roger@whinlatter.uklinux.net>
- $Id: README.maintaining,v 1.8 2001/10/27 17:16:37 rlk Exp $
+ $Id: README.maintaining,v 1.8.2.1 2004/04/19 00:01:48 rlk Exp $
1. Integration of the autotools
@@ -559,3 +559,8 @@ gimp.m4 (in /usr/share/aclocal or equivalent) will be incorrect. You
should install the version of gimp.m4 from scripts/ prior to use.
This should only be a problem when building from CVS; the configure
script included in released versions will not have this problem.
+
+
+13. Updating PO files
+
+wget -r -np -nH --cut-dirs=3 --accept '.po' --cache=off http://www.iro.umontreal.ca/translation/maint/gimp-print/ \ No newline at end of file
diff --git a/doc/gimpprint.dvi b/doc/gimpprint.dvi
new file mode 100644
index 0000000..8a291b6
--- /dev/null
+++ b/doc/gimpprint.dvi
Binary files differ
diff --git a/doc/gimpprint.info b/doc/gimpprint.info
new file mode 100644
index 0000000..bf32d40
--- /dev/null
+++ b/doc/gimpprint.info
@@ -0,0 +1,94 @@
+This is gimpprint.info, produced by makeinfo version 4.0 from
+gimpprint.texi.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
+END-INFO-DIR-ENTRY
+
+ This file documents the gimpprint library and associated programs
+used for high quality printing.
+
+ Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
+Krawitz (<rlk@alum.mit.edu>)
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+Indirect:
+gimpprint.info-1: 1086
+gimpprint.info-2: 50090
+gimpprint.info-3: 97464
+gimpprint.info-4: 142317
+gimpprint.info-5: 185904
+
+Tag Table:
+(Indirect)
+Node: Top1086
+Node: Instructions2197
+Node: Copying3918
+Node: Overview24512
+Node: Using libgimpprint25397
+Node: Integrating libgimpprint26721
+Node: gimpprint-config27428
+Node: make29503
+Node: autoconf30090
+Node: automake31773
+Node: Functions33960
+Node: Main functions34957
+Node: stp_vars_t functions36188
+Node: Dither functions49755
+Node: Options functions50090
+Node: Paper functions51096
+Node: Printer functions52501
+Node: Settings functions56361
+Node: Version functions57187
+Node: Programs59480
+Node: The GIMP plugin60109
+Ref: The GIMP plugin-Footnote-169830
+Ref: The GIMP plugin-Footnote-269860
+Ref: The GIMP plugin-Footnote-369905
+Ref: The GIMP plugin-Footnote-469938
+Node: Ghostscript70040
+Node: CUPS70175
+Node: Problems70272
+Ref: Problems-Footnote-171100
+Ref: Problems-Footnote-271149
+Node: Appendices71198
+Node: Dithering71582
+Node: Weaving97161
+Node: Weaving introduction97464
+Node: Weaving algorithms103941
+Node: Simple weaving algorithms106555
+Node: Perfect weaving110315
+Node: Weaving collisions119194
+Node: What is perfect weaving?120618
+Node: Oversampling142317
+Node: ESC/P2151914
+Node: ESC/P2 Introduction152280
+Node: ESC/P2 Standard Commands153602
+Node: ESC/P2 Remote Mode Commands165573
+Node: ESC/P2 Appropriate Remote Commands178224
+Node: New Printer180913
+Node: printers.xml181856
+Node: Driver file184518
+Node: Epson inkjet printers185904
+Node: Tuning Epson printers204261
+Node: Canon inkjet printers211171
+Node: Data Type and Variable Index214629
+Node: Function and Macro Index215791
+Node: Concept Index228976
+
+End Tag Table
diff --git a/doc/gimpprint.info-1 b/doc/gimpprint.info-1
new file mode 100644
index 0000000..2b81ad8
--- /dev/null
+++ b/doc/gimpprint.info-1
@@ -0,0 +1,1100 @@
+This is gimpprint.info, produced by makeinfo version 4.0 from
+gimpprint.texi.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
+END-INFO-DIR-ENTRY
+
+ This file documents the gimpprint library and associated programs
+used for high quality printing.
+
+ Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
+Krawitz (<rlk@alum.mit.edu>)
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: gimpprint.info, Node: Top, Prev: (dir), Up: (dir)
+
+The print plugin for the GIMP and printing library
+**************************************************
+
+ This file documents the libgimpprint library and associated programs
+used for high quality printing. This edition documents version 4.2.7.
+
+ *Note Problems::, for information on how to report problems with
+GIMP-Print.
+
+* Menu:
+
+* Instructions:: How to read this manual.
+* Copying:: Your rights.
+* Overview:: Preliminary information.
+* Using libgimpprint:: Examples of how to use libgimpprint.
+* Integrating libgimpprint:: Using libgimpprint in your own packages.
+* Functions:: libgimpprint function reference.
+* Programs:: Using GIMP-Print programs.
+* Problems:: Reporting bugs.
+* Appendices:: Additional information.
+* Data Type and Variable Index:: Index of data types and variables.
+* Function and Macro Index:: Index of functions and macros.
+* Concept Index:: Index of concepts.
+
+
+File: gimpprint.info, Node: Instructions, Next: Copying, Prev: Top, Up: Top
+
+Preface
+*******
+
+ This manual documents the use of the GIMP-Print package, focusing
+mainly on the libgimpprint library that is the core of GIMP-Print.
+Parts of the manual which describe the use of libgimpprint are aimed
+primarily at programmers, and do assume that the reader is familiar
+with C programming, and using standard programming tools on GNU or UNIX
+systems. Other parts of the manual document the use of the programs
+that make up the GIMP-Print package, and assume no knowledge other than
+the basics of using a shell and editor.
+
+ The best way to learn how to use libgimpprint in your own programs
+is to read the manual from start to finish, using the examples given in
+the text to learn how it works. The bulk of the manual can be used as a
+reference once one understands the basics.
+
+ The manual is split into several parts for the programmer. It starts
+with a simple usage example of how to link a program with libgimpprint,
+then how to integrate this into package build scripts, using `make',
+`autoconf' and `automake'. This is followed by a detailed function
+reference, including descriptions of all the data types used.
+
+ For the end-user, there is a section on all of the programs that come
+with GIMP-Print, including the GIMP `print' plugin, and the CUPS and
+Ghostscript drivers.
+
+ The appendices at the end of the manual detail the dither and weave
+algorithms used in libgimpprint, the ESC/P2 printer control language
+used in Epson printers and how to add support for a new printer to
+libgimpprint.
+
+
+
+ We hope you enjoy using GIMP-Print!
+
+ --The GIMP-Print project
+
+
+File: gimpprint.info, Node: Copying, Next: Overview, Prev: Instructions, Up: Top
+
+GNU GENERAL PUBLIC LICENSE
+**************************
+
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Preamble
+========
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it in
+new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software,
+and (2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 1. This License applies to any program or other work which contains a
+ notice placed by the copyright holder saying it may be distributed
+ under the terms of this General Public License. The "Program",
+ below, refers to any such program or work, and a "work based on
+ the Program" means either the Program or any derivative work under
+ copyright law: that is to say, a work containing the Program or a
+ portion of it, either verbatim or with modifications and/or
+ translated into another language. (Hereinafter, translation is
+ included without limitation in the term "modification".) Each
+ licensee is addressed as "you".
+
+ Activities other than copying, distribution and modification are
+ not covered by this License; they are outside its scope. The act
+ of running the Program is not restricted, and the output from the
+ Program is covered only if its contents constitute a work based on
+ the Program (independent of having been made by running the
+ Program). Whether that is true depends on what the Program does.
+
+ 2. You may copy and distribute verbatim copies of the Program's
+ source code as you receive it, in any medium, provided that you
+ conspicuously and appropriately publish on each copy an appropriate
+ copyright notice and disclaimer of warranty; keep intact all the
+ notices that refer to this License and to the absence of any
+ warranty; and give any other recipients of the Program a copy of
+ this License along with the Program.
+
+ You may charge a fee for the physical act of transferring a copy,
+ and you may at your option offer warranty protection in exchange
+ for a fee.
+
+ 3. You may modify your copy or copies of the Program or any portion
+ of it, thus forming a work based on the Program, and copy and
+ distribute such modifications or work under the terms of Section 1
+ above, provided that you also meet all of these conditions:
+
+ a. You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b. You must cause any work that you distribute or publish, that
+ in whole or in part contains or is derived from the Program
+ or any part thereof, to be licensed as a whole at no charge
+ to all third parties under the terms of this License.
+
+ c. If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display
+ an announcement including an appropriate copyright notice and
+ a notice that there is no warranty (or else, saying that you
+ provide a warranty) and that users may redistribute the
+ program under these conditions, and telling the user how to
+ view a copy of this License. (Exception: if the Program
+ itself is interactive but does not normally print such an
+ announcement, your work based on the Program is not required
+ to print an announcement.)
+
+ These requirements apply to the modified work as a whole. If
+ identifiable sections of that work are not derived from the
+ Program, and can be reasonably considered independent and separate
+ works in themselves, then this License, and its terms, do not
+ apply to those sections when you distribute them as separate
+ works. But when you distribute the same sections as part of a
+ whole which is a work based on the Program, the distribution of
+ the whole must be on the terms of this License, whose permissions
+ for other licensees extend to the entire whole, and thus to each
+ and every part regardless of who wrote it.
+
+ Thus, it is not the intent of this section to claim rights or
+ contest your rights to work written entirely by you; rather, the
+ intent is to exercise the right to control the distribution of
+ derivative or collective works based on the Program.
+
+ In addition, mere aggregation of another work not based on the
+ Program with the Program (or with a work based on the Program) on
+ a volume of a storage or distribution medium does not bring the
+ other work under the scope of this License.
+
+ 4. You may copy and distribute the Program (or a work based on it,
+ under Section 2) in object code or executable form under the terms
+ of Sections 1 and 2 above provided that you also do one of the
+ following:
+
+ a. Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of
+ Sections 1 and 2 above on a medium customarily used for
+ software interchange; or,
+
+ b. Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a
+ medium customarily used for software interchange; or,
+
+ c. Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with
+ such an offer, in accord with Subsection b above.)
+
+ The source code for a work means the preferred form of the work for
+ making modifications to it. For an executable work, complete
+ source code means all the source code for all modules it contains,
+ plus any associated interface definition files, plus the scripts
+ used to control compilation and installation of the executable.
+ However, as a special exception, the source code distributed need
+ not include anything that is normally distributed (in either
+ source or binary form) with the major components (compiler,
+ kernel, and so on) of the operating system on which the executable
+ runs, unless that component itself accompanies the executable.
+
+ If distribution of executable or object code is made by offering
+ access to copy from a designated place, then offering equivalent
+ access to copy the source code from the same place counts as
+ distribution of the source code, even though third parties are not
+ compelled to copy the source along with the object code.
+
+ 5. You may not copy, modify, sublicense, or distribute the Program
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense or distribute the Program is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 6. You are not required to accept this License, since you have not
+ signed it. However, nothing else grants you permission to modify
+ or distribute the Program or its derivative works. These actions
+ are prohibited by law if you do not accept this License.
+ Therefore, by modifying or distributing the Program (or any work
+ based on the Program), you indicate your acceptance of this
+ License to do so, and all its terms and conditions for copying,
+ distributing or modifying the Program or works based on it.
+
+ 7. Each time you redistribute the Program (or any work based on the
+ Program), the recipient automatically receives a license from the
+ original licensor to copy, distribute or modify the Program
+ subject to these terms and conditions. You may not impose any
+ further restrictions on the recipients' exercise of the rights
+ granted herein. You are not responsible for enforcing compliance
+ by third parties to this License.
+
+ 8. If, as a consequence of a court judgment or allegation of patent
+ infringement or for any other reason (not limited to patent
+ issues), conditions are imposed on you (whether by court order,
+ agreement or otherwise) that contradict the conditions of this
+ License, they do not excuse you from the conditions of this
+ License. If you cannot distribute so as to satisfy simultaneously
+ your obligations under this License and any other pertinent
+ obligations, then as a consequence you may not distribute the
+ Program at all. For example, if a patent license would not permit
+ royalty-free redistribution of the Program by all those who
+ receive copies directly or indirectly through you, then the only
+ way you could satisfy both it and this License would be to refrain
+ entirely from distribution of the Program.
+
+ If any portion of this section is held invalid or unenforceable
+ under any particular circumstance, the balance of the section is
+ intended to apply and the section as a whole is intended to apply
+ in other circumstances.
+
+ It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of
+ any such claims; this section has the sole purpose of protecting
+ the integrity of the free software distribution system, which is
+ implemented by public license practices. Many people have made
+ generous contributions to the wide range of software distributed
+ through that system in reliance on consistent application of that
+ system; it is up to the author/donor to decide if he or she is
+ willing to distribute software through any other system and a
+ licensee cannot impose that choice.
+
+ This section is intended to make thoroughly clear what is believed
+ to be a consequence of the rest of this License.
+
+ 9. If the distribution and/or use of the Program is restricted in
+ certain countries either by patents or by copyrighted interfaces,
+ the original copyright holder who places the Program under this
+ License may add an explicit geographical distribution limitation
+ excluding those countries, so that distribution is permitted only
+ in or among countries not thus excluded. In such case, this
+ License incorporates the limitation as if written in the body of
+ this License.
+
+ 10. The Free Software Foundation may publish revised and/or new
+ versions of the General Public License from time to time. Such
+ new versions will be similar in spirit to the present version, but
+ may differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+ Program specifies a version number of this License which applies
+ to it and "any later version", you have the option of following
+ the terms and conditions either of that version or of any later
+ version published by the Free Software Foundation. If the Program
+ does not specify a version number of this License, you may choose
+ any version ever published by the Free Software Foundation.
+
+ 11. If you wish to incorporate parts of the Program into other free
+ programs whose distribution conditions are different, write to the
+ author to ask for permission. For software which is copyrighted
+ by the Free Software Foundation, write to the Free Software
+ Foundation; we sometimes make exceptions for this. Our decision
+ will be guided by the two goals of preserving the free status of
+ all derivatives of our free software and of promoting the sharing
+ and reuse of software generally.
+
+ NO WARRANTY
+
+ 12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
+ WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
+ LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
+ QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
+ SERVICING, REPAIR OR CORRECTION.
+
+ 13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
+ MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+ LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
+ INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+ INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
+ OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
+ OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+=============================================
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
+ Copyright (C) 19YY NAME OF AUTHOR
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ Also add information on how to contact you by electronic and paper
+mail.
+
+ If the program is interactive, make it output a short notice like
+this when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+ type `show w'. This is free software, and you are welcome
+ to redistribute it under certain conditions; type `show c'
+ for details.
+
+ The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License. Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+ You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the program,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright
+ interest in the program `Gnomovision'
+ (which makes passes at compilers) written
+ by James Hacker.
+
+ SIGNATURE OF TY COON, 1 April 1989
+ Ty Coon, President of Vice
+
+ This General Public License does not permit incorporating your
+program into proprietary programs. If your program is a subroutine
+library, you may consider it more useful to permit linking proprietary
+applications with the library. If this is what you want to do, use the
+GNU Library General Public License instead of this License.
+
+Copying summary
+***************
+
+ GIMP-Print is "free"; this means that everyone is free to use it and
+free to redistribute it on a free basis. GIMP-Print is not in the public
+domain; it is copyrighted and there are restrictions on its
+distribution, but these restrictions are designed to permit everything
+that a good cooperating citizen would want to do. What is not allowed is
+to try to prevent others from further sharing any version of GIMP-Print
+that they might get from you.
+
+ Specifically, we want to make sure that you have the right to give
+away copies of GIMP-Print, that you receive source code or else can get
+it if you want it, that you can change GIMP-Print or use pieces of it
+in new free programs, and that you know you can do these things.
+
+ To make sure that everyone has such rights, we have to forbid you to
+deprive anyone else of these rights. For example, if you distribute
+copies of GIMP-Print, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+ Also, for our own protection, we must make certain that everyone
+finds out that there is no warranty for GIMP-Print. If GIMP-Print is
+modified by someone else and passed on, we want their recipients to
+know that what they have is not what we distributed, so that any
+problems introduced by others will no reflect on our reputation.
+
+
+File: gimpprint.info, Node: Overview, Next: Using libgimpprint, Prev: Copying, Up: Top
+
+Overview
+********
+
+ The GIMP-Print package is a collection of programs and a library for
+high quality printing on modern inkjets, including `photographic
+quality' models which offer very high resolutions and several inks.
+
+ META: Short history of the project
+
+ GIMP-Print is the print facility of the "GNU Image Manipulation
+Program" (GIMP). It is in addition a suite of drivers that may be used
+with common UNIX spooling systems using GhostScript or CUPS. These
+drivers provide printing quality for UNIX/Linux on a par with
+proprietary vendor-supplied drivers in many cases, and can be used for
+many of the most demanding printing tasks. The core of GIMP-Print is a
+shared library (libgimpprint) which may be used by any program that
+wishes to produce high-qulaity printed output.
+
+
+File: gimpprint.info, Node: Using libgimpprint, Next: Integrating libgimpprint, Prev: Overview, Up: Top
+
+Using libgimpprint
+******************
+
+ This chapter describes how to write programs that use libgimpprint.
+
+Code prerequisites
+==================
+
+ To use libgimpprint with a program, several steps must be taken:
+
+ 1. Include the master libgimpprint header `<gimp-print/gimp-print.h>.'
+
+ 2. Call `stp_init()'.
+
+ 3. Link with libgimpprint.
+
+ The following is a short example program. It does not do anything
+useful, but it does everything required to link with libgimpprint and
+call other functions from libgimpprint.
+
+ #include <gimp-print/gimp-print.h>
+
+ int
+ main (int argc, char *argv[])
+ {
+ stp_init ();
+ return (0);
+ }
+
+Linking with libgimpprint
+=========================
+
+ To link a program with libgimpprint, then `-lgimpprint' needs to be
+passed to the compiler when linking. For example, to compile and link
+`prog.c' the following commands would be used:
+
+ gcc -c prog.c
+ gcc -o prog -lgimpprint prog.o
+
+ The compiler and linker flags needed may vary depending on the
+options GIMP-Print was configured with when it was built. The
+`gimpprint-config' script will give the correct parameters for the
+local installation (*note gimpprint-config::).
+
+
+File: gimpprint.info, Node: Integrating libgimpprint, Next: Functions, Prev: Using libgimpprint, Up: Top
+
+Integrating libgimpprint
+************************
+
+ This chapter describes how to integrate the compiling and linking of
+programs using libgimpprint with build scripts. Commonly used systems
+include `make', but more commonly `Makefile' files are generated by
+using tools such as `autoconf' and `automake'.
+
+* Menu:
+
+* gimpprint-config:: Getting the correct compiler and linker flags
+* make:: Normal makefiles
+* autoconf:: Macro to automatically check for libgimpprint
+* automake:: Automatically defined variables to use
+
+
+File: gimpprint.info, Node: gimpprint-config, Next: make, Up: Integrating libgimpprint
+
+`gimpprint-config'
+==================
+
+ Depending on the setup of the computer system GIMP-Print was
+installed on, as well as the options passed to `configure' when
+configuring the package when it was built, the `CFLAGS' and `LIBS'
+parameters needed to compile and link programs with libgimpprint may
+vary. To make it simple to determine what these are on any given
+system, the script `gimpprint-config' was created. It's job is to
+output the correct parameters for the setup on your system. The
+following options are available:
+
+ roger@whinlatter:~/gimpprint/devel$ gimpprint-config --help
+ Usage: gimpprint-config [OPTIONS] [LIBRARIES]
+ Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+ Libraries:
+ gimpprint
+
+ The `--prefix' and `--exec-prefix' options are only needed if the
+installed locations of parts of GIMP-Print are different from the
+configured locations. These should never be needed if GIMP-Print was
+properly configured and installed.
+
+ The installed version of GIMP-Print can be obtained with the
+`--version' option:
+
+ roger@whinlatter:~/gimpprint/devel$ gimpprint-config --version
+ 4.2.7
+
+ The correct `CFLAGS' to use can be obtained with the `--cflags'
+option:
+
+ roger@whinlatter:~/gimpprint/devel$ gimpprint-config --cflags
+
+ In this case, there are no special `CFLAGS' required to compile
+programs.
+
+ The correct `LIBS' to use can the obtained with the `--libs' option:
+
+ roger@whinlatter:~/gimpprint/devel$ gimpprint-config --libs
+ -L/usr/lib -lgimpprint -lm
+
+ The command can be used from the shell by enclosing it in backquotes
+``':
+
+ gcc `gimpprint-config --cflags` -c prog.c
+ gcc `gimpprint-config --libs` -o prog prog.o
+
+ However, this is not the way it it typically used. Normally it is
+used in a `Makefile' (*note make::) or by an `m4' macro in a `configure'
+script (*note autoconf::).
+
+
+File: gimpprint.info, Node: make, Next: autoconf, Prev: gimpprint-config, Up: Integrating libgimpprint
+
+`make'
+======
+
+ If you use `make' with your own `Makefile' files, then you are on
+your own. This manual offers no assistance with doing this. Only the
+following suggestion is offered:
+
+ GIMPPRINT_VERSION = $(shell gimpprint-config --version)
+ GIMPPRINT_CFLAGS = $(shell gimpprint-config --cflags)
+ GIMPPRINT_LIBS = $(shell gimpprint-config --libs)
+
+ How you choose to use these variables is entirely up to you. *note
+GNU make: (make)Top, for more information.
+
+
+File: gimpprint.info, Node: autoconf, Next: automake, Prev: make, Up: Integrating libgimpprint
+
+`autoconf'
+==========
+
+ The `autoconf' program produces a Bourne shell script called
+`configure' from a template file called `configure.in'. `configure.in'
+contains both Bourne shell script, and `m4' macros. `autoconf' expands
+the `m4' macros into `real' shell script. The resulting `configure'
+script performs various checks for installed programs, compiler
+characteristics and other system information such as available headers
+and libraries. *note GNU autoconf: (autoconf)Top, for more information.
+
+ GIMP-Print provides an `m4' macro, `AM_PATH_GIMPPRINT', suitable for
+use in a `configure.in'. It defines the environment variables
+`GIMPPRINT_CFLAGS', `GIMPPRINT_LIBS' and `GIMPPRINT_CONFIG'. You can
+optionally specify a minimum version of the library to use, and shell
+script to run if the test suceeds or fails.
+
+ - Macro: AM_PATH_GIMPPRINT ([MINIMUM-VERSION [, ACTION-IF-FOUND [,
+ ACTION-IF-NOT-FOUND]]])
+ Check for an installed version of GIMP-Print greater than or equal
+ to MINIMUM-VERSION.
+
+ ACTION-IF-FOUND is a list of shell commands to run if the check
+ for the library succeeds; ACTION-IF-NOT-FOUND is a list of shell
+ commands to run if the check fails.
+
+ The macro sets the following environment variables:
+ `GIMPPRINT_CFLAGS', `GIMPPRINT_LIBS' and `GIMPPRINT_CONFIG'. It
+ also will substitute them into any `Makefile.in' you specify in
+ `AC_OUTPUT' because it calls `AC_SUBST' for each of them. However,
+ you will probably be using `automake' to generate your
+ `Makefile.in' files (*note automake::).
+
+
+
+File: gimpprint.info, Node: automake, Prev: autoconf, Up: Integrating libgimpprint
+
+`automake'
+==========
+
+ The `automake' program can be used to generate `Makefile.in' files
+suitable for use with a `configure' script generated by `autoconf'. As
+`automake' _requires_ `autoconf', this section will assume the use of a
+`configure' script which uses the `AM_PATH_GIMPPRINT' macro (there is
+little point in _not_ using it!).
+
+ It is highly recommeded that you use GNU `autoconf' and `automake'.
+They will allow you to make your software build on most platforms with
+most compilers. `automake' makes writing complex `Makefile' files very
+easy, by expressing how to build your packages in terms of what files
+are required to build a project and the installation locations of the
+files. It imposes a few limitations over using plain `Makefile' files,
+such as in the use of conditionals, but these problems are vastly
+outweighed by the benefits it brings. It also creates many extra
+targets in the generated `Makefile.in' files such as `dist',
+`distcheck', `clean', `distclean', `maintainer-clean' and `tags', and
+there are many more more available. *note GNU automake: (automake)Top,
+for more information.
+
+ Because `AM_PATH_GIMPPRINT' calls `AC_SUBST' to substitute
+`GIMPPRINT_CFLAGS', `GIMPPRINT_LIBS' and `GIMPPRINT_CONFIG', `automake'
+will automatically set these variables in the `Makefile.in' files it
+generates, requiring no additional effort on your part!
+
+ As in previous examples, we will make a program `prog' from a file
+`prog.c'. This is how one might build write a `Makefile.am' to do this:
+
+ AUTOMAKE_OPTIONS = 1.4 gnu
+ MAINT_CHARSET = latin1
+
+ @SET_MAKE@
+
+ CFLAGS = @CFLAGS@
+
+ INCLUDES = @INCLUDES@ $(GIMPPRINT_CFLAGS)
+
+ bin_PROGRAMS = prog
+ prog_SOURCES = prog.c
+ prog_LDADD = $(GIMPPRINT_LIBS)
+
+ MAINTAINERCLEANFILES = Makefile.in
+
+ That's all there is to it! Please note that this example also
+requires the macro `AC_PROG_MAKE_SET' to be used in `configure.in' and
+the use of `AC_SUBST' to substitute `CFLAGS' and `INCLUDES' where
+`@CFLAGS@' and `@INCLUDES@' are found in the file, respectively.
+
+
+File: gimpprint.info, Node: Functions, Next: Programs, Prev: Integrating libgimpprint, Up: Top
+
+Functions
+*********
+
+ This section of the manual is a complete reference to all of the
+functions comprising libgimpprint, with examples.
+
+ All of the libgimpprint functions can be declared by including the
+master libgimpprint header, `<gimp-print/gimp-print.h>'. This should
+be done in every source file that uses gimpprint functions by putting
+
+ #include <gimp-print/gimp-print.h>
+
+at the top of each file.
+
+* Menu:
+
+* Main functions:: Essential functions every program must call.
+* stp_vars_t functions:: Using stp_vars_t.
+* Dither functions:: Dither algorithms.
+* Options functions:: Options.
+* Paper functions:: Paper size and orientation.
+* Printer functions:: Printer selection.
+* Settings functions:: Getting and changing settings.
+* Version functions:: Getting libgimpprint version information.
+
+
+File: gimpprint.info, Node: Main functions, Next: stp_vars_t functions, Up: Functions
+
+Main functions
+==============
+
+ These functions are essential to the correct functioning of
+libgimpprint. All or most other functions in the library depend
+absolutely upon them. In the case of `stp_init', this function _must_
+be called before any of the other functions in the library.
+
+ - Function: int stp_init (void)
+ This function initialises the libgimpprint library. It must be
+ called before any of the other libgimpprint functions are called.
+ It is responsible for setting up message catalogues (for
+ internationalisation). This function may be called more than once,
+ at any stage during the execution of a program.
+
+ It returns zero on success, nonzero on failure.
+
+ `stp_init' might be used as follows:
+
+ int
+ main (int argc, char **argv)
+ {
+ stp_init();
+
+ ...
+
+ }
+
+ - Function: void * stp_malloc (size_t SIZE)
+ Where SIZE is the amount of memory to allocate (in bytes).
+
+ This function allocates memory. It will always return a pointer to
+ the allocated memory. It will not return on failure.
+
+ It returns a pointer to the allocated memory.
+
+
+File: gimpprint.info, Node: stp_vars_t functions, Next: Dither functions, Prev: Main functions, Up: Functions
+
+`stp_vars_t' functions
+======================
+
+ - Data type: void * stp_vars_t
+ This is an opaque data type, whose structure is not visible to the
+ user. This object contains all of the information about settings
+ for a given printer, such as color (contrast, brightness), the
+ type of printer, the dithering algorithm in use, and so forth.
+ Please see the `stp_set_*' and `stp_get_*' functions below for the
+ accessors and mutators for this data type.
+
+ - Function: stp_vars_t stp_allocate_vars (void)
+ Allocate a new `stp_vars_t' with default settings for all members.
+
+ - Function: void stp_copy_vars (stp_vars_t VD, const stp_vars_t VS)
+ Copy the settings from VS to VD.
+
+ - Function: stp_vars_t stp_allocate_copy (const stp_vars_t VS)
+ Allocate a new `stp_vars_t', copying settings from VS.
+
+ - Function: void stp_free_vars (stp_vars_t VV)
+ Free all resources associated with VV. VV must not be used in any
+ way following this call.
+
+ - Function: const char * stp_get_output_to (const stp_vars_t VV)
+ - Function: void stp_set_output_to (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_output_to_n (stp_vars_t VV, const char *VAL,
+ int BYTES)
+ Get or set the name of the command that this job will be printed
+ to. This is used by front ends; the driver library always prints
+ to a stream provided by the front end and never uses this directly.
+
+ - Function: const char * stp_get_driver (const stp_vars_t VV)
+ - Function: void stp_set_driver (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_driver_n (stp_vars_t VV, const char *VAL, int
+ BYTES)
+ Get or set the name of the driver (the type of printer).
+
+ - Function: const char * stp_get_ppd_file (const stp_vars_t VV)
+ - Function: void stp_set_ppd_file (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_ppd_file_n (stp_vars_t VV, const char *VAL,
+ int BYTES)
+ Get or set the name of the PPD file used by this print job.
+ Normally, only PostScript printers use PPD files.
+
+ - Function: const char * stp_get_resolution (const stp_vars_t VV)
+ - Function: void stp_set_resolution (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_resolution_n (stp_vars_t VV, const char *VAL,
+ int BYTES)
+ Get or set the resolution to be used in this print job. Different
+ drivers support different resolutions, and many drivers support
+ multiple quality settings for a given DPI resolution.
+
+ - Function: const char * stp_get_media_size (const stp_vars_t VV)
+ - Function: void stp_set_media_size (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_media_size_n (stp_vars_t VV, const char *VAL,
+ int BYTES)
+ Get or set the name of the media size (e. g. A3, letter, legal) to
+ be used in this print job.
+
+ - Function: const char * stp_get_media_type (const stp_vars_t VV)
+ - Function: void stp_set_media_type (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_media_type_n (stp_vars_t VV, const char *VAL,
+ int BYTES)
+ Get or set the name of the media type (e. g. plain paper, photo
+ quality inkjet paper) to be used in this print job.
+
+ - Function: const char * stp_get_media_source (const stp_vars_t VV)
+ - Function: void stp_set_media_source (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_media_source_n (stp_vars_t VV, const char
+ *VAL, int BYTES)
+ Get or set the name of the media source (e. g. manual feed, tray
+ A) to be used in this print job.
+
+ - Function: const char * stp_get_ink_type (const stp_vars_t VV)
+ - Function: void stp_set_ink_type (stp_vars_t VV, const char *VAL)
+ - Function: void stp_set_ink_type_n (stp_vars_t VV, const char *VAL,
+ int BYTES)
+ Get or set the name of the ink type (e. g. four color standard, six
+ color photo) to be used in this print job.
+
+ - Function: const char * stp_get_dither_algorithm (const stp_vars_t VV)
+ - Function: void stp_set_dither_algorithm (stp_vars_t VV, const char
+ *VAL)
+ - Function: void stp_set_dither_algorithm_n (stp_vars_t VV, const char
+ *VAL, int BYTES)
+ Get or set the dither algorithm to be used in this print job.
+
+ - Function: int stp_get_output_type (const stp_vars_t VV)
+ - Function: void stp_set_output_type (stp_vars_t VV, int VAL)
+ Get or set the output type (color, grayscale, black and white) for
+ this print job.
+
+ - Function: int stp_get_orientation (const stp_vars_t VV)
+ - Function: void stp_set_orientation (stp_vars_t VV, int VAL)
+ Get or set the paper orientation for this print job.
+
+ - Function: int stp_get_left (const stp_vars_t VV)
+ - Function: void stp_set_left (stp_vars_t VV, int VAL)
+ Get or set the left margin (in 1/72 inch units, or "points") for
+ this print job.
+
+ - Function: int stp_get_top (const stp_vars_t VV)
+ - Function: void stp_set_top (stp_vars_t VV, int VAL)
+ Get or set the top margin (in 1/72 inch units, or "points") for
+ this print job.
+
+ - Function: int stp_get_image_type (const stp_vars_t VV)
+ - Function: void stp_set_image_type (stp_vars_t VV, int VAL)
+ Get or set the image type (line art, continuous tone, solid colors)
+ for this print job.
+
+ - Function: int stp_get_unit (const stp_vars_t VV)
+ - Function: void stp_set_unit (stp_vars_t VV, int VAL)
+ Get or set the base unit (inches or centimeters) for this print
+ job. This is provided for front ends; the package itself uses
+ points as its unit of measurement.
+
+ - Function: int stp_get_page_width (const stp_vars_t VV)
+ - Function: void stp_set_page_width (stp_vars_t VV, int VAL)
+ Get or set the width of the printed region of the page.
+
+ - Function: int stp_get_page_height (const stp_vars_t VV)
+ - Function: void stp_set_page_height (stp_vars_t VV, int VAL)
+ Get or set the height of the printed region of the page.
+
+ - Function: int stp_get_input_color_model (const stp_vars_t VV)
+ - Function: void stp_set_input_color_model (stp_vars_t VV, int VAL)
+ Get or set the color model (currently RGB or CMY) of the input to
+ the driver. Most front ends will use RGB input.
+
+ - Function: int stp_get_output_color_model (const stp_vars_t VV)
+ - Function: void stp_set_output_color_model (stp_vars_t VV, int VAL)
+ Get or set the color model (currently RGB or CMY) of the output of
+ the driver. Most printers will use CMY.
+
+ - Function: float stp_get_scaling (const stp_vars_t VV)
+ - Function: void stp_set_scaling (stp_vars_t VV, float VAL)
+ Get or set the scaling factor of the image. If the scaling factor
+ is greater than 0, it is interpreted as a percent (5.0-100.0 is
+ the valid range) of the printable page region, using the more
+ restrictive axis. For example, if the image to be printed should
+ be 3" (wide) x 2" (high), and the printable page region is
+ 8"x10.5", the scale factor should be 37.5 (3"/8").
+
+ If the scaling is less than zero, it is interpreted as pixels per
+ inch.
+
+ It is likely that in the future this will be migrated into the
+ front end. There is no particular reason why the driver needs to
+ know about this.
+
+ - Function: float stp_get_gamma (const stp_vars_t VV)
+ - Function: void stp_set_gamma (stp_vars_t VV, float VAL)
+ Get or set the gamma of the print job (valid range: 0.1-4.0;
+ default 1.0). Note that this is not the absolute gamma used by
+ the print job; it is scaled by the gamma appropriate for the
+ printer. This is true for all of the numerical parameters.
+
+ - Function: float stp_get_brightness (const stp_vars_t VV)
+ - Function: void stp_set_brightness (stp_vars_t VV, float VAL)
+ Get or set the brightness of the print job (valid range: 0.0-2.0;
+ default: 1.0). Any value other than 1.0 will result in some
+ possible values not being used; if brightness is less than 1.0, no
+ output point will be pure white, and if brightness is greater than
+ 1.0, no output point will be pure black (or cyan, or magenta, or
+ yellow).
+
+ - Function: float stp_get_contrast (const stp_vars_t VV)
+ - Function: void stp_set_contrast (stp_vars_t VV, float VAL)
+ Get or set the contrast of the print job (valid range: 0.0-4.0;
+ default: 1.0). Values less than 1.0 will result in pure white or
+ black not being used (0.0 will make the entire image 50% gray).
+ Values greater than 1.0 do not hard clip; while the contrast in the
+ midtones increases, it only asymptotically approaches the limits.
+
+ - Function: float stp_get_cyan (const stp_vars_t VV)
+ - Function: void stp_set_cyan (stp_vars_t VV, float VAL)
+ Get or set the cyan adjustment of the print job (range: 0.0-4.0;
+ default: 1.0). This currently adjusts the gamma of the cyan
+ curve. It is scaled by the cyan adjustment for the printer model
+ in question.
+
+ - Function: float stp_get_magenta (const stp_vars_t VV)
+ - Function: void stp_set_magenta (stp_vars_t VV, float VAL)
+ Get or set the magenta adjustment of the print job (range:
+ 0.0-4.0; default: 1.0). This currently adjusts the gamma of the
+ magenta curve. It is scaled by the magenta adjustment for the
+ printer model in question.
+
+ - Function: float stp_get_yellow (const stp_vars_t VV)
+ - Function: void stp_set_yellow (stp_vars_t VV, float VAL)
+ Get or set the yellow adjustment of the print job (range: 0.0-4.0;
+ default: 1.0). This currently adjusts the gamma of the yellow
+ curve. It is scaled by the yellow adjustment for the printer
+ model in question.
+
+ - Function: float stp_get_saturation (const stp_vars_t VV)
+ - Function: void stp_set_saturation (stp_vars_t VV, float VAL)
+ Get or set the saturation of the print job (range: 0.0-9.0;
+ default: 1.0). Saturation of 0.0 produces grayscale output using
+ composite (CMY or CMYK, as appropriate for the printer) color.
+
+ - Function: float stp_get_density (const stp_vars_t VV)
+ - Function: void stp_set_density (stp_vars_t VV, float VAL)
+ Get or set the density of the print job (range: 0.0-2.0; default:
+ 1.0). This adjusts the amount of ink deposited in a linear fashion
+ for all channels. It is scaled by the density appropriate for the
+ choice of printer, resolution, paper type, and other factors that
+ the driver may deem appropriate.
+
+ - Function: float stp_get_app_gamma (const stp_vars_t VV)
+ - Function: void stp_set_app_gamma (stp_vars_t VV, float VAL)
+ Get or set the gamma of the input (i. e. what the driving
+ application uses).
+
+ - Function: void * stp_get_lut (const stp_vars_t VV)
+ - Function: void stp_set_lut (stp_vars_t VV, void *VAL)
+ Get or set the color lookup table for the print job. This is
+ useful outside of the library for computing a preview of the
+ printed result. The lookup table itself should be treated as an
+ opaque handle.
+
+ - Function: unsigned char * stp_get_cmap (const stp_vars_t VV)
+ - Function: void stp_set_cmap (stp_vars_t VV, unsigned char *VAL)
+ Get or set the color map for the print job. This is a table of
+ R,G,B values for 8-bit indexed input. This may be moved outside
+ of the library in the future; in this case, the front end would be
+ required to do its own mapping and supply true-color RGB to the
+ driver.
+
+ The following methods are used to perform output and error reporting
+by the driver. The driver supplies a stream of output bytes; the front
+end is responsible for providing methods that accept this output and
+handle it appropriately.
+
+ - Function: stp_outfunc_t stp_get_outfunc (const stp_vars_t VV)
+ - Function: void stp_set_outfunc (const stp_vars_t VV, stp_outfunc_t
+ VAL)
+ - Function: void * stp_get_outdata (const stp_vars_t VV)
+ - Function: void stp_set_outdata (stp_vars_t VV, void *VAL)
+ - Data type: stp_outfunc_t
+ typedef void (*stp_outfunc_t) (void *data,
+ const char *buffer, size_t bytes);
+ Get or set the output function the driver will use. The
+ front end must supply a suitable function for accepting the output
+ data. The `stp_set_outdata' method provides a way of passing an
+ appropriate object to the output function.
+
+ - Function: stp_outfunc_t stp_get_errfunc (const stp_vars_t VV)
+ - Function: void stp_set_errfunc (const stp_vars_t VV, stp_outfunc_t
+ VAL)
+ - Function: void * stp_get_errdata (const stp_vars_t VV)
+ - Function: void stp_set_errdata (stp_vars_t VV, void *VAL)
+ Get or set the error reporting function that the driver will use.
+ This is used to report errors or debugging information, and must be
+ supplied. A typical errfunc will simply print whatever it's
+ passed to stderr.
+
+ /* * hue_map is an array of 49 doubles representing the mapping of
+hue * from (0..6) to (0..6) in increments of .125. The hue_map is in
+CMY space, * so hue=0 is cyan. */ typedef void
+(*stp_convert_t)(const stp_vars_t vars, const unsigned char *in,
+ unsigned short *out, int *zero_mask,
+ int width, int bpp, const unsigned char *cmap,
+ const double *hue_map, const double *lum_map,
+ const double *sat_map);
+
+ - Function: void stp_merge_printvars (stp_vars_t USER, const
+ stp_vars_t PRINT)
+
+ - Function: void stp_allocate_lut (stp_vars_t V, size_t STEPS)
+
+ - Function: void stp_free_lut (stp_vars_t V)
+
+ - Function: void stp_compute_lut (stp_vars_t V, size_t STEPS)
+
+
+File: gimpprint.info, Node: Dither functions, Next: Options functions, Prev: stp_vars_t functions, Up: Functions
+
+Dither functions
+================
+
+ - Function: size_t stp_dither_algorithm_count (void)
+
+ - Function: const char * stp_dither_algorithm_name (int ID)
+
+ - Function: const char * stp_default_dither_algorithm (void)
+
diff --git a/doc/gimpprint.info-2 b/doc/gimpprint.info-2
new file mode 100644
index 0000000..3539915
--- /dev/null
+++ b/doc/gimpprint.info-2
@@ -0,0 +1,1080 @@
+This is gimpprint.info, produced by makeinfo version 4.0 from
+gimpprint.texi.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
+END-INFO-DIR-ENTRY
+
+ This file documents the gimpprint library and associated programs
+used for high quality printing.
+
+ Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
+Krawitz (<rlk@alum.mit.edu>)
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: gimpprint.info, Node: Options functions, Next: Paper functions, Prev: Dither functions, Up: Functions
+
+Options functions
+=================
+
+ - Data type: void * stp_option_t
+ This is an opaque data type, whose structure is not visible to the
+ user.
+
+ - Function: void stp_set_option(stp_vars_t V, const char *NAME, const
+ char *DATA, int BYTES)
+
+ - Function: void stp_clear_option (stp_vars_t V, const char *NAME)
+
+ - Function: void stp_clear_all_options (stp_vars_t V)
+
+ - Function: size_t stp_option_count (const stp_vars_t V)
+
+ - Function: const stp_option_t stp_get_option_by_index (const
+ stp_vars_t V, size_t IDX)
+
+ - Function: const stp_option_t stp_get_option_by_name (const
+ stp_vars_t V, const char *NAME)
+
+ - Function: const char * stp_option_data (const stp_option_t OPTION)
+ *Note*: not null delimited!
+
+ - Function: const char * stp_option_name (const stp_option_t OPTION)
+
+ - Function: size_t stp_option_length (const stp_option_t OPTION)
+
+
+File: gimpprint.info, Node: Paper functions, Next: Printer functions, Prev: Options functions, Up: Functions
+
+Paper functions
+===============
+
+ - Data type: void * stp_papersize_t
+ This is an opaque data type, whose structure is not visible to the
+ user.
+
+ - Data type: stp_papersize_unit_t
+ typedef enum papersize_unit
+ {
+ PAPERSIZE_ENGLISH,
+ PAPERSIZE_METRIC
+ } stp_papersize_unit_t;
+
+ - Function: int stp_known_papersizes (void)
+
+ - Function: const stp_papersize_t stp_get_papersize_by_name (const
+ char *NAME)
+
+ - Function: const stp_papersize_t stp_get_papersize_by_size (int L,
+ int W)
+
+ - Function: const stp_papersize_t stp_get_papersize_by_index (int
+ INDEX)
+
+ - Function: const char * stp_papersize_get_name (const stp_papersize_t
+ PT)
+
+ - Function: unsigned stp_papersize_get_width (const stp_papersize_t PT)
+
+ - Function: unsigned stp_papersize_get_height (const stp_papersize_t
+ PT)
+
+ - Function: unsigned stp_papersize_get_top (const stp_papersize_t PT)
+
+ - Function: unsigned stp_papersize_get_left (const stp_papersize_t PT)
+
+ - Function: unsigned stp_papersize_get_bottom (const stp_papersize_t
+ PT)
+
+ - Function: unsigned stp_papersize_get_right (const stp_papersize_t PT)
+
+ - Function: stp_papersize_unit_t stp_papersize_get_unit (const
+ stp_papersize_t PT)
+
+
+File: gimpprint.info, Node: Printer functions, Next: Settings functions, Prev: Paper functions, Up: Functions
+
+Printer functions
+=================
+
+ - Data type: void * stp_printer_t
+ This is an opaque data type, whose structure is not visible to the
+ user.
+
+ - Function: int stp_known_printers (void)
+
+ - Function: const stp_printer_t stp_get_printer_by_index (int IDX)
+
+ - Function: const char * stp_printer_get_long_name (const
+ stp_printer_t P)
+
+ - Function: const stp_printer_t stp_get_printer_by_long_name (const
+ char *LONG_NAME)
+
+ - Function: const stp_printer_t stp_get_printer_by_driver (const char
+ *DRIVER)
+
+ - Function: int stp_get_printer_index_by_driver (const char *DRIVER)
+
+ - Function: const char * stp_printer_get_driver (const stp_printer_t P)
+
+ - Function: int stp_printer_get_model (const stp_printer_t P)
+
+ - Function: const stp_printfuncs_t * stp_printer_get_printfuncs (const
+ stp_printer_t P)
+
+ - Data type: stp_printfuncs_t
+ typedef struct
+ {
+ char **(*parameters)(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name, int *count);
+ void (*media_size)(const stp_printer_t printer,
+ const stp_vars_t v, int *width,
+ int *height);
+ void (*imageable_area)(const stp_printer_t printer,
+ const stp_vars_t v,
+ int *left, int *right,
+ int *bottom, int *top);
+ void (*limit)(const stp_printer_t printer,
+ const stp_vars_t v,
+ int *width, int *height);
+ void (*print)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+ const char *(*default_parameters)(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name);
+ void (*describe_resolution)(const stp_printer_t printer,
+ const char *resolution,
+ int *x, int *y);
+ int (*verify)(const stp_printer_t p, const stp_vars_t v);
+ } stp_printfuncs_t;
+
+ - Data type: stp_image_t
+ typedef struct stp_image
+ {
+ void (*init)(struct stp_image *image);
+ void (*reset)(struct stp_image *image);
+ void (*transpose)(struct stp_image *image);
+ void (*hflip)(struct stp_image *image);
+ void (*vflip)(struct stp_image *image);
+ void (*crop)(struct stp_image *image,
+ int left, int top, int right,
+ int bottom);
+ void (*rotate_ccw)(struct stp_image *image);
+ void (*rotate_cw)(struct stp_image *image);
+ void (*rotate_180)(struct stp_image *image);
+ int (*bpp)(struct stp_image *image);
+ int (*width)(struct stp_image *image);
+ int (*height)(struct stp_image *image);
+ void (*get_row)(struct stp_image *image,
+ unsigned char *data, int row);
+ const char *(*get_appname)(struct stp_image *image);
+ void (*progress_init)(struct stp_image *image);
+ void (*note_progress)(struct stp_image *image,
+ double current, double total);
+ void (*progress_conclude)(struct stp_image *image);
+ void *rep;
+ } stp_image_t;
+ This is an abstract data type for interfacing with the program
+ which created the image.
+
+ - Function: const stp_vars_t stp_printer_get_printvars (const
+ stp_printer_t P)
+
+
+File: gimpprint.info, Node: Settings functions, Next: Version functions, Prev: Printer functions, Up: Functions
+
+Settings functions
+==================
+
+ - Function: stp_convert_t stp_choose_colorfunc (int OUTPUT_TYPE, int
+ IMAGE_BPP, const unsigned char *CMAP, int *OUT_BPP, const
+ stp_vars_t V)
+
+ - Function: void stp_compute_page_parameters (int PAGE_RIGHT, int
+ PAGE_LEFT, int PAGE_TOP, int PAGE_BOTTOM, double SCALING, int
+ IMAGE_WIDTH, int IMAGE_HEIGHT, stp_image_t *IMAGE, int
+ *ORIENTATION, int *page_width, int *PAGE_HEIGHT, int
+ *OUT_WIDTH, int *OUT_HEIGHT, int *LEFT, int *TOP)
+
+ - Function: const stp_vars_t stp_default_settings (void)
+
+ - Function: const stp_vars_t stp_maximum_settings (void)
+
+ - Function: const stp_vars_t stp_minimum_settings (void)
+
+
+File: gimpprint.info, Node: Version functions, Prev: Settings functions, Up: Functions
+
+Version functions
+=================
+
+ - Function: const char * stp_check_version (unsigned int
+ REQUIRED_MAJOR,
+ unsigned int REQUIRED_MINOR, unsigned int REQUIRED_MICRO)
+
+ This function checks whether the version of libgimpprint that the
+ program is linked with is equal to the version number passed to
+ it. If the version is the same, the function returns `NULL'. If
+ any of the version numbers do not match (i.e. the library version
+ is too old or too new), a string containing a desription of the
+ difference is returned. The first error found is returned. The
+ function checks in the order major, minor, micro.
+
+Version macros
+--------------
+
+ - Macro: GIMPPRINT_CHECK_VERSION (major,minor,micro)
+ This macro returns zero if the version of the libgimpprint headers
+ are greater or equal to the version given as an argument. It
+ returns nonzero if the version of the libgimpprint headers are
+ less than the argument.
+
+ - Macro: GIMPPRINT_MAJOR_VERSION
+
+ - Macro: GIMPPRINT_MINOR_VERSION
+
+ - Macro: GIMPPRINT_MICRO_VERSION
+
+ - Macro: GIMPPRINT_CURRENT_INTERFACE
+
+ - Macro: GIMPPRINT_BINARY_AGE
+
+ - Macro: GIMPPRINT_INTERFACE_AGE
+
+ These macros are integers holding the version numbers. They should be
+used for compile-time checking only. To check version numbers at
+run-time, use the equivalent variables. Note that at present (4.1.x
+development branch) the library interface version numbers are not used.
+
+Version variables
+-----------------
+
+ - Variable: const unsigned int gimpprint_major_version
+
+ - Variable: const unsigned int gimpprint_minor_version
+
+ - Variable: const unsigned int gimpprint_micro_version
+
+ - Variable: const unsigned int gimpprint_current_interface
+
+ - Variable: const unsigned int gimpprint_binary_age
+
+ - Variable: const unsigned int gimpprint_interface_age
+
+ These variables hold the library version numbers. Because the
+version of the library may change on a system using shared libraries,
+these should be used instead of the equivalent macros when checking the
+library version at run-time. Note that library interface version
+numbers are not used in the development branch, but are in the stable
+branch.
+
+
+File: gimpprint.info, Node: Programs, Next: Problems, Prev: Functions, Up: Top
+
+Programs
+********
+
+ This chapter of the manual describes the use of some of the programs
+which use the GIMP-Print library (libgimpprint). Note that there is now
+a user manual in DocBook/SGML format, currently provided in HTML,
+PostScript and PDF formats which is distributed with GIMP-Print. This
+manual currently covers the use of the GIMP Print plugin and CUPS
+drivers.
+
+* Menu:
+
+* The GIMP plugin:: The print plugin for the GIMP
+* Ghostscript:: Printer driver
+* CUPS:: Printer driver
+
+
+File: gimpprint.info, Node: The GIMP plugin, Next: Ghostscript, Prev: Programs, Up: Programs
+
+The GIMP Print plugin
+=====================
+
+ The GIMP Print plugin is the printing facility for the GNU Image
+Manipulation Program(1). This section examines the features offered by
+the Print plugin.
+
+ The main window is divided into five panes:
+
+Preview
+-------
+
+ The Preview pane contains a positioning widget that allows
+interactively positioning the output on the page. It contains an outer
+border, representing the sheet of paper; an inner border, representing
+the printable area of the printer; an arrow, pointing to the top of the
+page (the end that's fed into the printer); and a black rectangle,
+representing the position of the image on the page. The image can be
+moved around on the paper. When the first (left) button is used, the
+image is moved in screen pixels; when any other button is used, the
+image is moved in points(2). The arrow resizes depending upon the
+media size chosen; the shaft of the arrow is always equal to one inch
+on the output.
+
+[Figure not available in Info format]
+
+Printer Settings
+----------------
+
+ The Printer Settings pane contains a dropdown menu for selecting a
+printer to print to. There is a special `printer' named `File' that
+allows you to choose a file to print to, rather than a printer queue.
+The Setup box to the right allows specification of a printer type, a
+PPD file(3), and the command to be used to print. Each distinct
+printer in the Printer list can have different settings applied to it.
+Below that is a combo box allowing choice of media size. The choices
+are constrained to those that the printer supports. Below that are
+dropdown menus for choosing media type (what kind of paper), media
+source (what input tray), ink type, and resolution. All of these
+settings are printer-specific.
+
+[Figure not available in Info format]
+
+Position
+--------
+
+ The Position pane contains various widgets to place the image on the
+paper. These widgets work in conjunction with the Preview pane. At the
+top of the pane is a button to center the image on the paper (not on the
+printable area), and on either side buttons to center vertically and
+horizontally. Below these are four boxes that allow entry of the left,
+top, right, and bottom of the image. These positions are relative to
+the top left of the paper(4). There are two additional boxes that
+allow specification of the right margin and bottom margin if you
+prefer; these are relative to the bottom right corner of the paper.
+Any of these may have values entered into them; the preview image will
+be moved appropriately.
+
+ *Note*: These entries do not resize the image.
+
+ Finally, there is a pick box for orientation (landscape or portrait).
+There is an `Auto' mode that picks the orientation that yields the
+orientation that best matches that of the image to be printed.
+
+Scaling
+-------
+
+ The Scaling pane contains a slider that allows scaling of the image.
+The image can be scaled in either percent of the printable area (*not*
+the page in this case) or pixels per inch (PPI) via a radio button
+below the slider. PPI allows matching image resolution to printer
+resolution. The image may be scaled using either method to between 5
+and 100% of the imageable area. It is not possible to crop with the
+Print plugin. In Percent mode, the image is scaled so that neither
+axis will be longer than the percent of the printable area specified.
+For example, if you print an image at 20%, it will be possible to tile
+the image 5 times on one axis and at least 5 times on the other. To
+the right of the radio button is a button called Set Image Scale. This
+sets the scaling to PPI, and sets the resolution as closely as possible
+to the resolution stored in the image. To the right of the Set Image
+Scale button are two boxes that allow entry of width and height of the
+image. These set the scaling mode to PPI. Specifying one
+automatically sets the other, and the image is repositioned as needed
+to prevent it from falling off the edge of the page.
+
+ To its right is a button group that allows choosing English (inch)
+units or metric (centimeter) units.
+
+Image Settings
+--------------
+
+ The Image Settings pane allows choice of Line Art, Solid Colors, or
+Photograph image type. Line art or Solid Colors should be used for
+graphics containing mostly solid areas of color. They're very similar
+to each other. Photograph mode dithers more slowly, but produces more
+accurate colors. To the right of these three radio buttons is a button
+called Adjust Color. This pops up a new window that controls various
+output quality settings. That will be described separately. Finally,
+there is a choice of Black and White, Color and Monochrome output.
+Monochrome output can be used to print absolute black and white very
+quickly.
+
+Adjust Output
+.............
+
+ The Adjust Output button button pops up a non-modal dialog that
+allows adjustment of various parameters related to the print quality.
+These are independent of the controls within the GIMP itself and only
+affect the print.
+
+[Figure not available in Info format]
+
+ At the top of the window is a thumbnail of the image that changes to
+reflect the color settings of the image. This enables you to get an
+idea of how the image will print out as you adjust settings.
+
+ Below that there are eight sliders:
+
+_Brightness_
+ (0-2.0, default 1.0) Adjust the brightness of the image.
+
+_Contrast_
+ (0-4.0, default 1.0) Adjust the output contrast.
+
+_Cyan, Magenta, Yellow_
+ (0-4.0, default 1.0) Adjust the cyan, magenta, and yellow in the
+ output. These should not normally need to be adjusted very much;
+ even very small adjustments can go quite a long way to restoring
+ color balance.
+
+_Saturation_
+ (0-9.0, default 1.0) Adjust the color brilliance (saturation) of
+ the output. Saturation of 0 means pure gray scale, with no color.
+ Saturation of 9.0 will make just about anything but pure grays
+ brilliantly colored.
+
+_Density_
+ (0.1-2.0, default 1.0) Adjust the density (amount of ink) in the
+ print. The density is automatically corrected for the particular
+ printer, resolution, and in some cases paper choices. If solid
+ black in the input is not solid in the print, the density needs to
+ be increased; if there is excessive ink bleed-through and muddy
+ dark colors, the density should be decreased.
+
+ *Note*: the density will not increase beyond a certain amount no
+ matter what the slider is set to.
+
+_Gamma_
+ (0.1-4.0, default 1.0) Adjust the output gamma. The gamma value is
+ automatically corrected for the choice of printer; this is used if
+ you believe the automatic setting is incorrect.
+
+Dither Algorithm
+................
+
+ There is also a selection box for the dither algorithm to be used in
+the pop-up dialog. There are currently seven choices:
+
+_Adaptive Hybrid_
+ Adaptive Hybrid usually yields the best output quality; it chooses
+ a modified Floyd-Steinberg error diffusion algorithm or ordered
+ dithering depending upon the image characteristics.
+
+_Ordered_
+ Ordered uses a pure ordered dither. It generally yields excellent
+ quality for simple black and white or four color printers without
+ variable drop size or drop modulation; it is not recommended if
+ high quality is desired on six color printers. It is considerably
+ faster than Adaptive Hybrid.
+
+_Fast_
+ Fast also uses a pure ordered dither, but uses a very simple black
+ model and makes no attempt to handle multi-level (6-color,
+ variable drop size, or drop modulation) at all cleanly. It is
+ substantially faster than Ordered dither. The quality tends to be
+ quite poor except on simple four color printers. On three color
+ printers, quality is probably competitive with anything else.
+
+_Very Fast_
+ Very Fast is similar to Fast, except that it uses a very simple
+ dither matrix that can be looked up much more quickly than the
+ matrix used in the Fast dither. For simple pure black and white
+ images dominated by horizontal and vertical lines, this may
+ actually yield the best results; for other types of image, the
+ quality will be poor.
+
+_Adaptive Random_
+ Adaptive Random is similar to Adaptive Hybrid, except that the
+ modifications to the Floyd-Steinberg algorithm are slightly
+ different. This is slower than Adaptive Hybrid on most systems.
+ For some images the quality may be better than Adaptive Hybrid,
+ but generally Adaptive Hybrid should yield slightly superior
+ images.
+
+_Hybrid Floyd-Steinberg_
+ Hybrid Floyd-Steinberg uses the modified Floyd-Steinberg algorithm
+ of Adaptive Hybrid on the entire image. Generally, the results
+ are poor in pale regions.
+
+_Random Floyd-Steinberg_
+ Random Floyd-Steinberg uses the modified Floyd-Steinberg algorithm
+ of Adaptive Random on the entire image. Generally, the results
+ are poor in pale regions.
+
+Action Buttons
+--------------
+
+ The last pane contains four action buttons:
+
+_Print and Save Settings_
+ Immediately print the image (or, if the File printer is chosen,
+ display a file selection window to pick the output file), and save
+ all current settings for all printers.
+
+_Save Settings_
+ Immediately save the settings, and continue working in the Print
+ plugin.
+
+_Print_
+ Immediately print the image (or, if the `File' printer is chosen,
+ display a file selection window to pick the output file), but do
+ not save settings.
+
+_Cancel_
+ Immediately quit without saving settings or printing.
+
+ ---------- Footnotes ----------
+
+ (1) `http://www.gimp.org'
+
+ (2) The output resolution of the plugin.
+
+ (3) For Postscript printers.
+
+ (4) Again, that's relative to the paper corner, not the printable
+area, which is usually smaller.
+
+
+File: gimpprint.info, Node: Ghostscript, Next: CUPS, Prev: The GIMP plugin, Up: Programs
+
+Ghostscript driver
+==================
+
+
+File: gimpprint.info, Node: CUPS, Prev: Ghostscript, Up: Programs
+
+CUPS driver
+===========
+
+
+File: gimpprint.info, Node: Problems, Next: Appendices, Prev: Programs, Up: Top
+
+Reporting Bugs
+**************
+
+ If you find a bug in GIMP-Print or have any suggestions for
+modification or improvement, please send electronic mail to the
+GIMP-Print bug reporting address (1). Include the version number,
+which you can find by running `gimpprint-config --version'. Also
+include in your message the output that the program produced and the
+output you expected, if applicable, otherwise the best description of
+the problem that you can provide.
+
+ If you have other questions, comments or suggestions about
+GIMP-Print, contact the developers via electronic mail to the
+GIMP-Print mailing list (2). They will try to help you out, although
+they may not have time to fix your problems.
+
+ ---------- Footnotes ----------
+
+ (1) <gimp-print-devel@lists.sourceforge.net>
+
+ (2) <gimp-print-devel@lists.sourceforge.net>
+
+
+File: gimpprint.info, Node: Appendices, Next: Data Type and Variable Index, Prev: Problems, Up: Top
+
+Appendices
+**********
+
+* Menu:
+
+* Dithering:: Dither algorithms.
+* Weaving:: Weaving algorithms.
+* ESC/P2:: Epson ESC/P2 printer control language.
+* New Printer:: Adding a new printer to libgimpprint.
+
+
+File: gimpprint.info, Node: Dithering, Next: Weaving, Prev: Appendices, Up: Appendices
+
+Dithering
+*********
+
+ The dithering code in `print-dither.c' attempts to reproduce various
+shades of gray (or all colors) from only a few different inks (black,
+cyan, magenta, yellow, and sometimes light cyan and light magenta).
+The dots can't vary in darkness or size (except for certain special
+printers), and so we need to lay down a certain fraction of dots to
+represent each distinct level.
+
+ This sounds straightforward; in practice, it isn't. Completely
+random distribution of dots (simple probabilistic dithering) would
+create grainy clumps and light spots. The smoothest pattern results
+from an equidistant spacing of dots. Approximating this requires
+sophisticated algorithms. We have two dithering algorithms, an ordered
+dither algorithm that uses a grid (matrix) to decide whether to print,
+and a modified Floyd-Steinberg error diffusion algorithm that uses a
+grid in a slightly different way.
+
+ We currently have three dithering functions:
+
+ 1. `dither_fastblack' produces pure black or white from a pre-dithered
+ input. This is used for two purposes: for printing pure black and
+ white very quickly (e. g. text), and for printing pre-screened
+ monochrome output that was rasterized externally.
+
+ 2. `dither_black' produces black from grayscale input. The new
+ dither_black can produce either a single or multiple levels of
+ black, for printers supporting variable dot size.
+
+ 3. `dither_cmyk' produces 3, 4, 5, 6, or 7 color output (CMY, CMYK,
+ CcMmYK, CcMmYy, CcMmYyK, or any variants). The new routine can
+ handle single or multiple levels of each color.
+
+ There is a choice of dithering algorithms. Four of them are based
+on a basic error diffusion, with a few tweaks of my own. The other one
+is `ordered'. However, they all share the basic operation in common.
+First, the algorithm picks what kind of dot (if there are multiple dot
+sizes and/or tones that may be picked) is the candidate to be printed.
+This decision is made based on the darkness at the point being dithered.
+Then, it decides whether the dot will be printed at all. What this is
+based on depends upon which algorithm family we use. This is all
+described in more detail below.
+
+ Ordered dithering works by comparing the value at a given point with
+the value of a tiled matrix. If the value at the point is greater than
+the value in the matrix, the dot is printed. The matrix should consist
+of a set of evenly spaced points between 0 and the upper limit. The
+choice of matrix is very important for print quality. A good dither
+matrix will emphasize high frequency components, which distributes dots
+evenly with a minimum of clumping. The matrices used here are all
+simple matrices that are expanded recursively to create larger matrices
+with the same kind of even point distribution. This is described below.
+
+ Note that it is important to use different matrices for the two
+sub-operations, because otherwise the choice about whether to print and
+the choice of dot size will be correlated. The usual result is that the
+print is either too dark or too light, but there can be other problems.
+
+ Ordered dithering works quite well on single dot size, four color
+printers. It has not been well tested on four color, variable dot size
+printers. It should be avoided on six color printers.
+
+ Error diffusion works by taking the output error at a given pixel and
+"diffusing" it into surrounding pixels. Output error is the difference
+between the amount of ink output and the input level at each pixel.
+For simple printers, with one or four ink colors and only one dot size,
+the amount of ink output is either 65536 (i. e. full output) or 0 (no
+output). The difference between this and the input level is the error.
+Normal error diffusion adds part of this error to the adjoining pixels
+in the next column and the next row (the algorithm simply scans each
+row in turn, never backing up). The error adds up until it reaches a
+threshold (half of the full output level, or 32768), at which point a
+dot is output, the output is subtracted from the current value, and the
+(now negative) error is diffused similarly.
+
+ Error diffusion works quite well in general, but it tends to generate
+artifacts which usually appear as worm-like lines or areas of anomalous
+density. I have devised some ways, as described below, of ameliorating
+these artifacts.
+
+ There are two sub-classes of error diffusion that we use here,
+`random' and `hybrid'. One of the techniques that we use to ameliorate
+the artifacts is to use a fuzzy threshold rather than the hard
+threshold of half of the output level. Random error diffusion uses a
+pseudo-random number to perturb the threshold, while hybrid error
+diffusion uses a matrix. Hybrid error diffusion worked very poorly in
+3.1.3, and I couldn't figure out why until I found a bug. It now works
+very well.
+
+ There is one additional variant (on both sub-classes), called
+`adaptive hybrid' and `adaptive random'. The adaptive variant takes
+advantage of the fact that the patterns that ordered dithering create
+are less visible at very low densities, while the artifacts created by
+error diffusion are more objectionable at low densities. At low
+densities, therefore, it uses ordered dithering; at higher densities it
+uses error diffusion.
+
+ Handling multiple output levels makes life a bit more complicated.
+In principle, it shouldn't be much harder: simply figure out what the
+ratio between the available output levels is and have multiple
+thresholds. In practice, getting these right involves a lot of trial
+and error. The other thing that's important is to maximize the number
+of dots that have some ink. This will reduce the amount of speckling.
+More on this later.
+
+ The next question: how do we handle black when printing in color?
+Black ink is much darker than colored inks. It's possible to produce
+black by adding some mixture of cyan, magenta, and yellow--in
+principle. In practice, the black really isn't very black, and
+different inks and different papers will produce different color casts.
+However, by using CMY to produce gray, we can output a lot more dots!
+This makes for a much smoother image. What's more, one cyan, one
+magenta, and one yellow dot produce less darkness than one black dot,
+so we're outputting that many more dots. Better yet, with 6 or 7 color
+printers, we have to output even more light ink dots. So Epson Stylus
+Photo printers can produce really smooth grays--if we do everything
+right. The right idea is to use CMY at lower black levels, and
+gradually mix in black as the overall amount of ink increases, so the
+black dots don't really become visible within the ink mass.
+
+ Variable dot sizes are handled by dividing the range between 0 and
+65536 into segments. Each segment can either represent a range in
+which all of one kind of ink (color and/or dot size) is used, with
+varying amounts of ink, or a transition region between inks, in which
+equal numbers of dots are printed but the amount of each ink will be
+adjusted throughout the range. Each range is represented by four
+numbers:
+
+ 1. bottom of the range
+
+ 2. top of the range
+
+ 3. value of the lighter ink
+
+ 4. value of the darker ink
+
+ In addition, the bit patterns and which type of ink are also
+represented, but they don't affect the actual algorithm.
+
+ As mentioned above, the basic algorithm is the same whether we use
+ordered dither or error diffusion. We perform the following steps on
+each color of each pixel:
+
+ 1. Compute the value of the particular color we're printing. This
+ isn't usually the pure CMY value; it's adjusted to improve
+ saturation and to limit the use of black in light toned regions
+ (to avoid speckling).
+
+ 2. Find the range containing this value.
+
+ 3. Compute where this value lies within the range. We scale the
+ endpoints between 0 and 65536 for this purpose. So for example,
+ if the bottom of the range is 10,000 and the top of the range is
+ 20,000, and the value is 12,500, we're 1/4 of the way between the
+ bottom and the top of the range, so our scale point is 16384.
+
+ 4. Compute the "virtual value". The virtual value is the distance
+ between the value of the lighter and the value of the darker ink.
+ So if the value of the light ink is 32768 and the dark ink is
+ 65536, we compute a virtual value scaled appropriately between
+ these two values, which is 40960 in this case.
+
+ 5. Using either error diffusion or ordered dither, the standard
+ threshold is 1/2 of the value (20480 in this case). Using ordered
+ dither, we want to compute a value between 0 and 40960 that we
+ will compare the input value against to decide whether to print.
+ Using pure error diffusion, we would compare the accumulated error
+ against 20480 to decide whether to print. In practice, we use the
+ same matrix method to decide whether to print. The correct amount
+ of ink will be printed this way, but we minimize the squiggly
+ lines characteristic of error diffusion by dithering the threshold
+ in this fashion. A future enhancement will allow us to control
+ the amount of dithering applied to the threshold.
+
+ The matrices were generated by Thomas Tonino <<ttonino@bio.vu.nl>>
+with an algorithm of his devising. The algorithm is designed to
+maximize the spacing between dots at any given density by searching the
+matrix for holes and placing a dot in the largest available hole. It
+requires careful selection of initial points to achieve good results,
+and is very time consuming. For best results, a different matrix must
+be used for modes with 2:1 aspect ratio (e.g. 1440x720) than for 1:1
+(e. g. 720x720). It is essential with any of these matrices that every
+point be used. Skipping points generates low-frequency noise.
+
+ It's essential to use different matrices for deciding whether to
+print and for deciding what color (dark or light) to print. This
+should be obvious; the decision about whether to print at all should be
+as independent as possible from the decision about what color to print,
+because any bias will result in excess light or dark ink being printed,
+shifting the tonal balance. We actually use the same matrices, but we
+shift them vertically and horizontally. Assuming that the matrices are
+not self-correlated, this will yield good results.
+
+ The ranges are computed from a list of ink values (between 0 and 1
+for each possible combination of dot size and ink tone, where the value
+represents the darkness of the ink) and the desired maximum density of
+the ink. This is done in dither_set_ranges, and needs more
+documentation.
+
+ I stated earlier that I've tweaked the basic error diffusion
+algorithm. Here's what I've done to improve it:
+
+ 1. We use a variable threshold to decide when to print, as discussed
+ above. This does two things for us: it reduces the slightly
+ squiggly diagonal lines that are the mark of error diffusion; and
+ it allows us to lay down some ink even in very light areas near
+ the edge of the image. The squiggly lines that error diffusion
+ algorithms tend to generate are caused by the gradual accumulation
+ of error. This error is partially added horizontally and
+ partially vertically. The horizontal accumulation results in a
+ dot eventually being printed. The vertical accumulation results
+ in a dot getting laid down in roughly the same horizontal position
+ in the next row. The diagonal squigglies result from the error
+ being added to pixels one forward and one below the current pixel;
+ these lines slope from the top right to the bottom left of the
+ image.
+
+ Error diffusion also results in pale areas being completely white
+ near the top left of the image (the origin of the printing
+ coordinates). This is because enough error has to accumulate for
+ anything at all to get printed. In very pale areas it takes quite
+ a long time to build up anything printable at all; this results in
+ the bare spots.
+
+ Randomizing the threshold somewhat breaks up the diagonals to some
+ degree by randomizing the exact location that the accumulated
+ output crosses the threshold. It reduces the false white areas by
+ allowing some dots to be printed even when the accumulated output
+ level is very low. It doesn't result in excess ink because the
+ full output level is still subtracted and diffused.
+
+ Excessive randomization leads to blobs at high densities.
+ Therefore, as the density increases, the degree of randomization
+ decreases.
+
+ 2. Alternating scan direction between rows (first row is scanned left
+ to right, second is scanned right to left, and so on). This also
+ helps break up white areas, and it also seems to break up
+ squigglies a bit. Furthermore, it eliminates directional biases
+ in the horizontal direction. This isn't necessary for ordered
+ dither, but it doesn't hurt either.
+
+ 3. Diffusing the error into more pixels. Instead of diffusing the
+ entire error into (X+1, Y) and (X, Y+1), we diffuse it into (X+1,
+ Y), (X+K, Y+1), (X, Y+1), (X-K, Y+1) where K depends upon the
+ output level (it never exceeds about 10 dots, and is greater at
+ higher output levels). This really reduces squigglies and
+ graininess. The amount of this spread can be controlled; for line
+ art, it should be less than for photographs (of course, line art
+ doesn't usually contain much light color, but the *error* value
+ can be small in places!) In addition to requiring more
+ computation, a wide ink spread results in patterning at high dot
+ densities (note that the dot density can be high even in fairly
+ pale regions if multiple dot sizes are in use).
+
+ 4. Don't lay down any colored ink if we're laying down black ink.
+ There's no point; the colored ink won't show. We still pretend
+ that we did for purposes of error diffusion (otherwise excessive
+ error will build up, and will take a long time to clear, resulting
+ in heavy bleeding of ink into surrounding areas, which is very
+ ugly indeed), but we don't bother wasting the ink. How well this
+ will do with variable dot size remains to be seen.
+
+ 5. Oversampling. This is how to print 1440x720 with Epson Stylus
+ printers. Printing full density at 1440x720 will result in excess
+ ink being laid down. The trick is to print only every other dot.
+ We still compute the error as though we printed every dot. It
+ turns out that randomizing which dots are printed results in very
+ speckled output. This can be taken too far; oversampling at
+ 1440x1440 or 1440x2880 virtual resolution results in other
+ problems. However, at present 1440x1440 (which is more accurately
+ called "1440x720 enhanced", as the Epson printers cannot print
+ 1440 rows per inch) does quite well, although it's slow.
+
+ What about multiple output levels? For 6 and 7 color printers,
+simply using different threshold levels has a problem: the pale inks
+have trouble being seen when a lot of darker ink is being printed. So
+rather than just using the output level of the particular color to
+decide which ink to print, we look at the total density (sum of all
+output levels). If the density's high enough, we prefer to use the
+dark ink. Speckling is less visible when there's a lot of ink, anyway.
+I haven't yet figured out what to do for multiple levels of one color.
+
+ You'll note that I haven't quoted a single source on color or
+printing theory. I simply did all of this empirically.
+
+ There are various other tricks to reduce speckling. One that I've
+seen is to reduce the amount of ink printed in regions where one color
+(particularly cyan, which is perceived as the darkest) is very pale.
+This does reduce speckling all right, but it also results in strange
+tonal curves and weird (to my eye) colors.
+
+ Before any dither routine is used, `init_dither()' must be called.
+This takes three arguments: the input width (number of pixels in the
+input), the output width (number of pixels in the output), and a
+`vars_t' structure containing the parameters for the print job.
+
+ `init_dither()' returns a pointer to an opaque object representing
+the dither. This object is passed as the first argument to all of the
+dither-related routines.
+
+ After a page is fully dithered, `free_dither()' must be called to
+free the dither object and perform any cleanup. In the future, this may
+do more (such as flush output). This arrangement permits using these
+routines with programs that create multiple output pages, such as
+GhostScript.
+
+ The dithering routines themselves have a number of control knobs that
+control internal aspects of the dithering process. These knobs are
+accessible via a number of functions that can be called after
+`init_dither()'.
+
+ * `dither_set_density()' takes a double between 0 and 1 representing
+ the desired ink density for printing solid colors. This is used
+ in a number of places in the dithering routine to make decisions.
+
+ * `dither_set_black_density()' takes a double between 0 and 1
+ representing the desired ink density for printing black ink in
+ color printing. This is used to balance black against color ink.
+ By default, this is equal to the density set by
+ `dither_set_density()'. By setting it higher, more black ink will
+ be printed. For example, if the base density is .4 and the black
+ density is .8, twice as much black ink will be printed as would
+ otherwise be called for.
+
+ This is not used when printing in monochrome. When printing
+ monochrome, the base density (`dither_set_density') should be
+ adjusted appropriately.
+
+ * `dither_set_ink_budget()' takes an unsigned number representing the
+ most ink that may be deposited at a given point. This number is
+ arbitrary; the limit is computed by summing the size of each ink
+ dot, which is supplied as a parameter in `dither_set_X_ranges'.
+ By default, there is no limit.
+
+ * `dither_set_black_lower()' takes a double that should be between 0
+ and 1 that represents the lowest density level at which black ink
+ will start to mix in with colored ink to generate grays. The
+ lower this is, the less density is required to use black ink.
+ Setting this too low will result in speckling from black dots,
+ particularly on 6 and 7 color printers. Setting this too high
+ will make it hard to get satisfactory black or may result in sharp
+ transition between blended colors and black. Default: 0.0468.
+
+ It is important to note that since the density scale is never
+ linear (and since this value is adjusted via other things
+ happening during the dithering process) that this does not mean
+ that 95% gray will use any black ink. At this setting, there will
+ be no black ink used until about 50% gray.
+
+ This only applies to color mode.
+
+ This value should be set lower for printers capable of variable dot
+ size, since more dots can be laid down close to each other.
+
+ * `dither_set_black_upper()' takes a double that should be between 0
+ and 1 that represents the highest density level at which colored
+ inks will be mixed to create gray. Setting this too low will
+ result in speckly dark grays because there is not enough ink to
+ fill all the holes, or sharp transition between blended colors and
+ black if it is too close to the value of dither_set_black_upper().
+ Setting this too high will result in poor black and dark tone
+ quality. Default: 0.5. This results in 10% and darker grays
+ being printed with essentially all black.
+
+ This only applies to color mode.
+
+ * `dither_set_black_levels()' takes three doubles that represent the
+ amount of cyan, magenta, and yellow respectively that are blended
+ to create gray. The defaults are 1.0 for each, which is probably
+ too low for most printers. These values are adjusted to create a
+ good gray balance. Setting these too low will result in pale
+ light and midtone grays, with a sharp transition to darker tones
+ as black mixes in. Setting them too high will result in overly
+ dark grays and use of too much ink, possibly creating
+ bleed-through.
+
+ This only applies to color mode.
+
+ * `dither_set_randomizers()' takes four integer values representing
+ the degree of randomness used for cyan, magenta, yellow, and black.
+ This is used to allow some printing to take place in pale areas.
+ Zero is the most random; greater than 8 or so gives very little
+ randomness at all. Defaults are 0 for cyan, magenta, and yellow,
+ and 4 for black. Setting the value for black too low will result
+ in black speckling in pale areas. Setting values too high will
+ result in pale areas getting no ink at all.
+
+ This currently only applies to single dot size in color and black.
+ It should be extended to operate in variable dot size mode,
+ although actually applying it correctly will be tricky.
+
+ * `dither_set_ink_darkness()' takes three doubles representing the
+ contribution to perceived darkness of cyan, magenta, and yellow.
+ This is used to help decide when to switch between light and dark
+ inks in 6 and 7 color printers (with light cyan, light magenta,
+ and possibly light yellow). Setting these too low will result in
+ too much light ink being laid down, creating flat spots in the
+ darkness curves and bleed-through. Setting them too high will
+ result in dark ink being used in pale areas, creating speckle.
+ The defaults are .4 for cyan, .3 for magenta, and .2 for yellow.
+ Dark cyan will show against yellow much more than dark magenta
+ will show against cyan, since the cyan appears much darker than
+ the yellow.
+
+ * `dither_set_light_inks()' takes three doubles between 0 and 1
+ representing the ratio in darkness between the light and dark
+ versions of the inks. Setting these too low will result in too
+ much dark ink being used in pale areas, creating speckling, while
+ setting them too high will result in very smooth texture but too
+ much use of light ink, resulting in flat spots in the density
+ curves and ink bleed-through. There are no defaults. Any light
+ ink specified as zero indicates that there is no light ink for
+ that color.
+
+ This only applies to 6 and 7 color printers in single dot size
+ color mode, and only to those inks which have light versions
+ (usually cyan and magenta).
+
+ * `dither_set_ink_spread()' takes a small integer representing the
+ amount of ink spread in the dither. Larger numbers mean less
+ spread. Larger values are appropriate for line art and solid
+ tones; they will yield sharper transitions but more dither
+ artifacts. Smaller values are more appropriate for photos. They
+ will reduce resolution and sharpness but reduce dither artifacts
+ up to a point. A value of 16 or higher implies minimum ink spread
+ at any resolution no matter what the overdensity. A value of 14
+ is typical for photos on single dot size, 6 color printers. For 4
+ color printers, subtract 1 (more spread; the dots are farther
+ apart). For variable dot size printers, add 1 (more small dots
+ are printed; less spread is desirable).
+
+ * `dither_set_adaptive_divisor()' takes a float representing the
+ transition point between error diffusion and ordered dither if
+ adaptive dithering is used. The float is a fraction of the
+ printing density. For example, if you wish the transition to be
+ at 1/4 of the maximum density (which works well on simple 4-color
+ printers), you would pass .25 here. With six colors and/or with
+ multiple dot sizes, the values should be set lower.
+
+ * `dither_set_transition()' takes a float representing the exponent
+ of the transition curve between light and dark inks/dot sizes. A
+ value less than 1 (typical when using error diffusion) mixes in
+ less dark ink/small dots at lower ends of the range, to reduce
+ speckling. When using ordered dithering, this must be set to 1.
+
+ * `dither_set_X_ranges_simple' (X=`c', `m', `y', or `k') describes
+ the ink choices available for each color. This is useful in
+ typical cases where a four color printer with variable dot sizes
+ is in use. It is passed an array of doubles between (0, 1]
+ representing the relative darkness of each dot size. The dot
+ sizes are assigned bit patterns (and ink quantities, see
+ `dither_set_ink_budget()' above) from 1 to the number of levels.
+ This also requires a density, which is the desired density for this
+ color. This density need not equal the density specified in
+ `dither_set_density()'. Setting it lower will tend to print more
+ dark ink (because the curves are calculated for this color
+ assuming a lower density than is actually supplied).
+
+ * `dither_set_X_ranges' (X=`c', `m', `y', or `k') describes in a
+ more general way the ink choices available for each color. For
+ each possible ink choice, a bit pattern, dot size, value (i. e.
+ relative darkness), and whether the ink is the dark or light
+ variant ink is specified.
+
+ --Robert Krawitz <<rlk@alum.mit.edu>> May 8, 2000
+
+
+File: gimpprint.info, Node: Weaving, Next: ESC/P2, Prev: Dithering, Up: Appendices
+
+Weaving for inkjet printers
+***************************
+
+by Charles Briscoe-Smith and Robert Krawitz.
+
+* Menu:
+
+* Weaving introduction:: Just what is weaving?
+* Weaving algorithms:: How to weave.
+
diff --git a/doc/gimpprint.info-3 b/doc/gimpprint.info-3
new file mode 100644
index 0000000..ad51a1c
--- /dev/null
+++ b/doc/gimpprint.info-3
@@ -0,0 +1,1007 @@
+This is gimpprint.info, produced by makeinfo version 4.0 from
+gimpprint.texi.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
+END-INFO-DIR-ENTRY
+
+ This file documents the gimpprint library and associated programs
+used for high quality printing.
+
+ Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
+Krawitz (<rlk@alum.mit.edu>)
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: gimpprint.info, Node: Weaving introduction, Next: Weaving algorithms, Up: Weaving
+
+Introduction
+============
+
+ The Epson Stylus Color/Photo printers don't have memory to print
+using all of the nozzles in the print head. For example, the Stylus
+Photo 700/EX has 32 nozzles. At 720 dpi, with an 8" wide image, a
+single line requires (8 * 720 * 6 / 8) bytes, or 4320 bytes (because the
+Stylus Photo printers have 6 ink colors). To use 32 nozzles per color
+would require 138240 bytes. It's actually worse than that, though,
+because the nozzles are spaced 8 rows apart. Therefore, in order to
+store enough data to permit sending the page as a simple raster, the
+printer would require enough memory to store 256 rows, or 1105920 bytes.
+Considering that the Photo EX can print 11" wide, we're looking at more
+like 1.5 MB. In fact, these printers are capable of 1440 dpi horizontal
+resolution. This would require 3 MB. The printers actually have
+64K-256K.
+
+ With the newer (740/750 and later) printers it's even worse, since
+these printers support multiple dot sizes; of course, the even newer
+2880x720 printers don't help either.
+
+ Older Epson printers had a mode called "MicroWeave" (tm). In this
+mode, the host fed the printer individual rows of dots, and the printer
+bundled them up and sent them to the print head in the correct order to
+achieve high quality. This MicroWeave mode still works in new printers,
+but in some cases the implementation is very minimal: the printer uses
+exactly one nozzle of each color (the first one). This makes printing
+extremely slow (more than 30 minutes for one 8.5x11" page), although the
+quality is extremely high with no visible banding whatsoever. It's not
+good for the print head, though, since no ink is flowing through the
+other nozzles. This leads to drying of ink and possible permanent
+damage to the print head.
+
+ By the way, although the Epson manual says that microweave mode
+should be used at 720 dpi, 360 dpi continues to work in much the same
+way. At 360 dpi, data is fed to the printer one row at a time on all
+Epson printers. The pattern that the printer uses to print is very
+prone to banding. However, 360 dpi is inherently a low quality mode;
+if you're using it, presumably you don't much care about quality. It
+is possible to do microweave at 360 DPI, with significantly improved
+quality.
+
+ Except for the Stylus Pro printers (5000, 5500, 7000, 7500, 9000,
+9500, and when it's released the 10000), which can do microweave at any
+resolution, printers from roughly the Stylus Color 600 and later do not
+have the capability to do MicroWeave correctly in many cases (some
+printers can do MicroWeave correctly at 720 DPI). Instead, the host
+must arrange the output in the order that it will be sent to the print
+head. This is a very complex process; the jets in the print head are
+spaced more than one row (1/720") apart, so we can't simply send
+consecutive rows of dots to the printer. Instead, we have to pass e.
+g. the first, ninth, 17th, 25th... rows in order for them to print in
+the correct position on the paper. This interleaving process is called
+"soft" weaving.
+
+ This decision was probably made to save money on memory in the
+printer. It certainly makes the driver code far more complicated than
+it would be if the printer could arrange the output. Is that a bad
+thing? Usually this takes far less CPU time than the dithering
+process, and it does allow us more control over the printing process,
+e.g. to reduce banding. Conceivably, we could even use this ability to
+map out bad jets.
+
+ Interestingly, apparently the Windows (and presumably Macintosh)
+drivers for most or all Epson printers still list a "microweave" mode.
+Experiments have demonstrated that this does not in fact use the
+"microweave" mode of the printer. Possibly it does nothing, or it uses
+a different weave pattern from what the non-"microweave" mode does.
+This is unnecessarily confusing, at least for people who write drivers
+who try to explain them to people who don't.
+
+ What makes this interesting is that there are many different ways of
+of accomplishing this goal. The naive way would be to divide the image
+up into groups of 256 rows (for a printer with 32 jets and a separation
+of 8 rows), and print all the mod8=0 rows in the first pass, mod8=1
+rows in the second, and so forth. The problem with this approach is
+that the individual ink jets are not perfectly uniform; some emit
+slightly bigger or smaller drops than others. Since each group of 8
+adjacent rows is printed with the same nozzle, that means that there
+will be distinct streaks of lighter and darker bands within the image
+(8 rows is 1/90", which is visible; 1/720" is not). Possibly worse is
+that these patterns will repeat every 256 rows. This creates banding
+patterns that are about 1/3" wide.
+
+ So we have to do something to break up this patterning.
+
+ Epson does not publish the weaving algorithms that they use in their
+bundled drivers. Indeed, their developer web site
+(http://www.ercipd.com/isv/edr_docs.htm) does not even describe how to
+do this weaving at all; it says that the only way to achieve 720 dpi is
+to use MicroWeave. It does note (correctly) that 1440 dpi horizontal
+can only be achieved by the driver (i. e. in software). The manual
+actually makes it fairly clear how to do this (it requires two passes
+with horizontal head movement between passes), and it is presumably
+possible to do this with MicroWeave.
+
+ The information about how to do this is apparently available under
+non-disclosure agreement (NDA). It's actually easy enough to reverse
+engineer what's inside a print file with a simple Perl script, which is
+supplied with the Gimp-Print distribution as tests/parse-escp2. In any
+event, we weren't particularly interested in the weaving patterns Epson
+used. There are many factors that go into choosing a good weaving
+pattern; we're learning them as we go along. Issues such as drying time
+(giving the ink a few seconds more or less to dry can have highly
+visible effects) affect the quality of the output.
+
+ The Uniprint GhostScript driver has been able to do weaving for a
+long time. It uses patterns that must be specified for each choice of
+resolution and printer. We preferred an algorithmic approach that
+computes a weave pattern for any given choice of inputs. This
+obviously requires extensive testing; we developed a test suite
+specifically for this purpose.
+
+
+File: gimpprint.info, Node: Weaving algorithms, Prev: Weaving introduction, Up: Weaving
+
+Weaving algorithms
+==================
+
+ I considered a few algorithms to perform the weave. The first one I
+devised let me use only (jets-distance_between_jets+1) nozzles, or 25.
+This is OK in principle, but it's slower than using all nozzles. By
+playing around with it some more, I came up with an algorithm that lets
+me use all of the nozzles, except near the top and bottom of the page.
+
+ This still produces some banding, though. Even better quality can be
+achieved by using multiple nozzles on the same line. How do we do
+this? In 1440x720 mode, we're printing two output lines at the same
+vertical position. However, if we want four passes, we have to
+effectively print each line twice. Actually doing this would increase
+the density, so what we do is print half the dots on each pass. This
+produces near-perfect output, and it's far faster than using (pseudo)
+"MicroWeave".
+
+ Yet another complication is how to get near the top and bottom of the
+page. This algorithm lets us print to within one head width of the top
+of the page, and a bit more than one head width from the bottom. That
+leaves a lot of blank space. Doing the weave properly outside of this
+region is increasingly difficult as we get closer to the edge of the
+paper; in the interior region, any nozzle can print any line, but near
+the top and bottom edges, only some nozzles can print. We originally
+handled this by using the naive way mentioned above near the borders,
+and switching over to the high quality method in the interior.
+Unfortunately, this meant that the quality is quite visibly degraded
+near the top and bottom of the page. We have since devised better
+algorithms that allow printing to the extreme top and bottom of the
+region that can physically be printed, with only minimal loss of
+quality.
+
+ Epson does not advertise that the printers can print at the very top
+of the page, although in practice most of them can. The quality is
+degraded to some degree, and we have observed that in some cases not
+all of the dots get printed. Epson may have decided that the
+degradation in quality is sufficient that printing in that region
+should not be allowed. That is a valid decision, although we have
+taken another approach.
+
+* Menu:
+
+* Simple weaving algorithms:: Starting to weave.
+* Perfect weaving:: Improving the weave.
+* Weaving collisions:: Bang!
+* What is perfect weaving?:: What makes a ``perfect'' weave?
+* Oversampling:: Increasing resolution, reducing banding
+
+
+File: gimpprint.info, Node: Simple weaving algorithms, Next: Perfect weaving, Prev: Weaving algorithms, Up: Weaving algorithms
+
+Simple weaving algorithms
+-------------------------
+
+ The initial problem is to calculate the starting position of each
+pass; the row number of the printer's top jet when printing that pass.
+Since we assume the paper cannot be reverse-fed, the print head must,
+for each pass, start either further down the page than the previous
+pass or at the same position. Each pass's start point is therefore at
+a non-negative offset from the previous pass's start point.
+
+ Once we have a formula for the starting row of each pass, we then
+turn that "inside out" to get a formula for the pass number containing
+each row.
+
+ First, let's define how our printer works. We measure vertical
+position on the paper in "rows"; the resolution with which the printer
+can position the paper vertically. The print head contains J ink jets,
+which are spaced S rows apart.
+
+ Consider a very simple case: we want to print a page as quickly as
+possible, and we mostly don't care how sparse the printing is, so long
+as it's fairly even.
+
+ It's pretty obvious how to do this. We make one pass with the print
+head, printing J lines of data, each line S rows after the previous
+one. We then advance the paper by S*J rows and print the next row.
+For example, if J=7 and S=4, this method can be illustrated like this:
+
+ pass number
+ | row number------->
+ | | 111111111122222222223333333333444444444455555555556666666666
+ | 0123456789012345678901234567890123456789012345678901234567890123456789
+ 0 *---*---*---*---*---*---*
+ 1 *---*---*---*---*---*---*
+ 2 \-----------------------/ *---*---*---*---*---*-
+ 7 jets \---/
+ 4 rows offset from one jet to the next
+ \---------------------------/
+ 7*4=28 rows offset from one pass to the next
+
+ In these examples, the vertical axis can be thought of as the time
+axis, with the pass number shown at the left margin, while the row
+number runs horizontally. A `*' shows each row printed by a pass, and
+a row of `-' is used to link together the rows printed by one pass of
+the print head. The first pass is numbered `0' and starts at row 0.
+Each subsequent pass p starts at row p*S*J. Each pass prints J lines,
+each line being S rows after the previous one. (For ease of viewing
+this file on a standard terminal, I'm clipping the examples at column
+80.)
+
+ This method covers the whole page with lines printed evenly S rows
+apart. However, we want to fill in all the other rows with printing to
+get a full-density page (we're ignoring oversampling at this stage).
+Where we have previously printed a single pass, we'll now print a "pass
+block": we print extra passes to fill in the empty rows. A naive
+implementation might look like this:
+
+ 0 *---*---*---*---*---*---*
+ 1 *---*---*---*---*---*---*
+ 2 *---*---*---*---*---*---*
+ 3 *---*---*---*---*---*---*
+ 4 *---*---*---*---*---*---*
+ 5 *---*---*---*---*---*---*
+ 6 *---*---*---*---*---*---*
+ 7 *---*---*---*---*---*---*
+ 8 *---*---*---*---*---*-
+ 9 *---*---*---*---*---*
+ 10 *---*---*---*---*---
+ 11 *---*---*---*---*--
+
+(Now you can see why this process is called "weaving"!)
+
+
+File: gimpprint.info, Node: Perfect weaving, Next: Weaving collisions, Prev: Simple weaving algorithms, Up: Weaving algorithms
+
+Perfect weaving
+---------------
+
+ This simple weave pattern prints every row, but will give conspicuous
+banding patterns for the reasons discussed above.
+
+ Let's start improving this for our simple case. We can reduce
+banding by making sure that any given jet never prints a row too close
+to another row printed by the same jet. This means we want to space the
+rows printed by a given jet evenly down the page. In turn, this
+implies we want to advance the paper by as nearly an equal amount after
+each pass as possible.
+
+ Each pass block prints S*J lines in S passes. The first line
+printed in each pass block is S*J rows lower on the page than the first
+line printed in the previous pass block. Therefore, if we advance the
+paper by J rows between each pass, we can print the right number of
+passes in each block and advance the paper perfectly evenly.
+
+ Here's what this "perfect" weave looks like:
+
+ start of full weave
+ |
+ 0 *---*---*---*---*---*---*
+ 1 *---*---*---*---*---*---*
+ 2 *---*---*---*---*---*---*
+ 3 *---*---*---*---*---*---*
+ 4 *---*---*---*---*---*---*
+ 5 *---*---*---*---*---*---*
+ 6 *---*---*---*---*---*---*
+ 7 *---*---*---*---*---*---*
+ 8 *---*---*---*---*---*-
+ 9 *---*---*---*--
+ 10 *---*---
+ 11 *
+
+ You'll notice that, for the first few rows, this weave is too sparse.
+It is not until the row marked "start of full weave" that every
+subsequent row is printed. We can calculate this start position as
+follows:
+
+ start = (S-1) * (J-1)
+
+ For the moment, we will ignore this problem with the weave. We'll
+consider later how to fill in the missing rows.
+
+ Let's look at a few more examples of perfect weaves:
+
+S=2, J=7, start=(2-1)*(7-1)=6:
+
+ starting row of full weave
+ |
+ 0 *-*-*-*-*-*-*
+ 1 *-*-*-*-*-*-*
+ 2 *-*-*-*-*-*-*
+ 3 *-*-*-*-*-*-*
+ 4 *-*-*-*-*-*-*
+ 5 *-*-*-*-*-*-*
+ 6 *-*-*-*-*-*-*
+ 7 *-*-*-*-*-*-*
+
+S=7, J=2, start=6:
+
+ start
+ |
+ 0 *------*
+ 1 *------*
+ 2 *------*
+ 3 *------*
+ 4 *------*
+ 5 *------*
+ 6 *------*
+ 7 *------*
+ 8 *------*
+ 9 *------*
+
+S=4, J=13, start=36:
+
+ start
+ |
+ 0 *---*---*---*---*---*---*---*---*---*---*---*---*
+ 1 *---*---*---*---*---*---*---*---*---*---*---*---*
+ 2 *---*---*---*---*---*---*---*---*---*---*---*---*
+ 3 *---*---*---*---*---*---*---*---*---*--
+ 4 *---*---*---*---*---*---*-
+ 5 *---*---*---*
+
+S=13, J=4, start=36:
+
+ start
+ |
+ 0 *------------*------------*------------*
+ 1 *------------*------------*------------*
+ 2 *------------*------------*------------*
+ 3 *------------*------------*------------*
+ 4 *------------*------------*------------*
+ 5 *------------*------------*------------*
+ 6 *------------*------------*------------*
+ 7 *------------*------------*------------*
+ 8 *------------*------------*------------*
+ 9 *------------*------------*------------*
+ 10 *------------*------------*-----------
+ 11 *------------*------------*-------
+ 12 *------------*------------*---
+ 13 *------------*------------
+ 14 *------------*--------
+ 15 *------------*----
+ 16 *------------*
+ 17 *---------
+ 18 *-----
+ 19 *-
+
+S=8, J=5, start=28:
+
+ start
+ |
+ 0 *-------*-------*-------*-------*
+ 1 *-------*-------*-------*-------*
+ 2 *-------*-------*-------*-------*
+ 3 *-------*-------*-------*-------*
+ 4 *-------*-------*-------*-------*
+ 5 *-------*-------*-------*-------*
+ 6 *-------*-------*-------*-------*
+ 7 *-------*-------*-------*-------*
+ 8 *-------*-------*-------*-------*
+ 9 *-------*-------*-------*-------*
+ 10 *-------*-------*-------*---
+ 11 *-------*-------*------
+ 12 *-------*-------*-
+ 13 *-------*----
+ 14 *-------
+ 15 *--
+
+S=9, J=5, start=32:
+
+ start
+ |
+ 0 *--------*--------*--------*--------*
+ 1 *--------*--------*--------*--------*
+ 2 *--------*--------*--------*--------*
+ 3 *--------*--------*--------*--------*
+ 4 *--------*--------*--------*--------*
+ 5 *--------*--------*--------*--------*
+ 6 *--------*--------*--------*--------*
+ 7 *--------*--------*--------*--------*
+ 8 *--------*--------*--------*--------*
+ 9 *--------*--------*--------*-----
+ 10 *--------*--------*--------*
+ 11 *--------*--------*----
+ 12 *--------*--------
+ 13 *--------*---
+ 14 *-------
+ 15 *--
+
+S=6, J=7, start=30:
+
+ start
+ |
+ 0 *-----*-----*-----*-----*-----*-----*
+ 1 *-----*-----*-----*-----*-----*-----*
+ 2 *-----*-----*-----*-----*-----*-----*
+ 3 *-----*-----*-----*-----*-----*-----*
+ 4 *-----*-----*-----*-----*-----*-----*
+ 5 *-----*-----*-----*-----*-----*-----*
+ 6 *-----*-----*-----*-----*-----*-----
+ 7 *-----*-----*-----*-----*----
+ 8 *-----*-----*-----*---
+ 9 *-----*-----*--
+ 10 *-----*-
+ 11 *
+
+
+File: gimpprint.info, Node: Weaving collisions, Next: What is perfect weaving?, Prev: Perfect weaving, Up: Weaving algorithms
+
+Weaving collisions
+------------------
+
+ This perfect weave is not possible in all cases. Let's look at
+another example:
+
+S=6, J=4:
+
+ 0 *-----*-----*-----*
+ 1 *-----*-----*-----*
+ 2 *-----*-----*-----*
+ 3 *-----*-----*-----*
+ 4 ^ *-^---*-----*-----*
+ 5 | ^ | *-^---*-----*-----*
+ OUCH! ^ | ^
+ | |
+
+Here we have a collision. Some lines printed in later passes overprint
+lines printed by earlier passes. We can see why by considering which
+row number is printed by a given jet number j (numbered from 0) of a
+given pass, p:
+
+ row(p, j) = p*J + j*S
+
+ Because J=4 and S=6 have a common factor of 2, jet 2 of pass 0
+prints the same row as jet 0 of pass 3:
+
+ row(0, 2) = 0*4 + 2*6 = 12
+ row(3, 0) = 3*4 + 0*6 = 12
+
+ In fact, with this particular weave pattern, jets 0 and 1 of pass
+p+3 always overprint jets 2 and 3 of pass p. We'll represent
+overprinting rows by a `^' in our diagrams, and correct rows by `*':
+
+S=6 J=4:
+
+ 0 *-----*-----*-----*
+ 1 *-----*-----*-----*
+ 2 *-----*-----*-----*
+ 3 ^-----^-----*-----*
+ 4 ^-----^-----*-----*
+ 5 ^-----^-----*-----*
+
+
+File: gimpprint.info, Node: What is perfect weaving?, Next: Oversampling, Prev: Weaving collisions, Up: Weaving algorithms
+
+What makes a "perfect" weave?
+-----------------------------
+
+ So what causes the perfect weave cases to be perfect, and the other
+cases not to be? In all the perfect cases above, S and J are
+relatively prime (i.e. their greatest common divisor (GCD) is 1). As
+we mentioned above, S=6 and J=4 have a common factor, which causes the
+overprinting. Where S and J have a GCD of 1, they have no common
+factor other than 1 and, as a result, no overprinting occurs. If S and
+J are not relatively prime, their common factor will cause overprinting.
+
+ We can work out the greatest common divisor of a pair of natural
+numbers using Euler's algorithm:
+
+ * Start with the two numbers: (e.g.) 9, 24
+
+ * Swap them if necessary so that the larger one comes first: 24, 9
+
+ * Subtract the second number from the first: 15, 9
+
+ * Repeat until the first number becomes smaller: 6, 9
+
+ * Swap the numbers again, so the larger one comes first: 9, 6
+
+ * Subtract again: 3, 6
+
+ * Swap: 6, 3
+
+ * Subtract: 3, 3
+
+ * And again: 0, 3
+
+ * When one of the numbers becomes 0, the other number is the GCD of
+ the two numbers you started with.
+
+ These repeated subtractions can be done with C's `%' operator, so we
+can write this in C as follows:
+
+ unsigned int
+ gcd(unsigned int x, unsigned int y)
+ {
+ if (y == 0)
+ return x;
+ while (x != 0) {
+ if (y > x)
+ swap (&x, &y);
+ x %= y;
+ }
+ return y;
+ }
+
+ `gcd(S,J)' will feature quite prominently in our weaving algorithm.
+
+ If 0 <= j < J, there should only be a single pair (p, j) for any
+given row number. If S and J are not relatively prime, this assumption
+breaks down. (For conciseness, let G=GCD(S,J).)
+
+S=8, J=6, G=2:
+
+ 0 *-------*-------*-------*-------*-------*
+ 1 *-------*-------*-------*-------*-------*
+ 2 *-------*-------*-------*-------*-------*
+ 3 *-------*-------*-------*-------*-------*
+ 4 ^-------^-------^-------*-------*-------*
+ 5 ^-------^-------^-------*-------*-------*
+
+ In this case, jets 0, 1 and 2 of pass p+4 collide with jets 3, 4 and
+5 of pass p.
+
+ How can we calculate these numbers? Suppose we were to print using
+fewer jets, say J/G jets. The greatest common divisor of J/G and S is
+1, enabling a perfect weave. But to get a perfect weave, we also have
+to advance the paper by a factor of G less:
+
+ 0 *-------*-------* - - -
+ 1 *-------*-------* - - -
+ 2 *-------*-------* - - -
+ 3 *-------*-------* - - -
+ 4 *-------*-------* - - -
+ 5 *-------*-------* - - -
+
+ If we left the paper advance alone, we'd get a sparse weave; only one
+row can be printed every G rows:
+
+ 0 *-------*-------* - - -
+ 1 *-------*-------* - - -
+ 2 *-------*-------* - - -
+ 3 *-------*-------* - - -
+ 4 *-------*-------* - - -
+ 5 *-------*-------* - - -
+ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
+ These rows need filling in.
+
+ The rows that would have been printed by the jets we've now omitted
+(shown as `-') are printed by other jets on later passes.
+
+ Let's analyse this. Consider how a pass p could collide with pass
+0. Pass p starts at offset p*J. Pass 0 prints at rows which are
+multiples of S. If p*J is exactly divisible by S, a collision has
+occurred, unless p*J >= J*S (which will happen when we finish a pass
+block).
+
+ So, we want to find p and q such that p*J=q*S and p is minimised.
+Then p is the number of rows before a collision, and q is the number of
+jets in pass 0 which are not involved in the collision. To do this, we
+find the lowest common multiple of J and S, which is L=J*S/G. L/J is
+the number of rows before a collision, and L/S is the number of jets in
+the first pass not involved in the collision.
+
+ Thus, we see that the first J/G rows printed by a given pass are not
+overprinted by any later pass. However, the rest of the rows printed
+by pass p are overprinted by the first J-(J/G) jets of pass p+(S/G).
+We will use C to refer to S/G, the number of rows after which a
+collision occurs.
+
+ Another example:
+
+S=6, J=9, G=3, C=S/G=2:
+
+ 0 *-----*-----*-----*-----*-----*-----*-----*-----*
+ 1 *-----*-----*-----*-----*-----*-----*-----*-----*
+ 2 ^-----^-----^-----^-----^-----^-----*-----*-----*
+ 3 ^-----^-----^-----^-----^-----^-----*-----*-----*
+ 4 ^-----^-----^-----^-----^-----^-----*-----
+ 5 ^-----^-----^-----^-----^-----^--
+ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
+ These rows need filling in.
+
+In this case, the first J-(J/G) = 9-9/3 = 6 jets of pass p+(6/3)=p+2
+collide with the last 6 jets of pass p. Only one row in every G=2 rows
+is printed by this weave.
+
+S=9, J=6, G=3, C=3:
+
+ 0 *--------*--------*--------*--------*--------*
+ 1 *--------*--------*--------*--------*--------*
+ 2 *--------*--------*--------*--------*--------*
+ 3 ^--------^--------^--------^--------*--------*
+ 4 ^--------^--------^--------^--------*--------*
+ 5 ^--------^--------^--------^--------*--------*
+
+Here, the first J-(J/G) = 6-6/3 = 4 jets of pass p+(9/3)=p+3 collide
+with the last 4 jets of pass p.
+
+ Note that, in these overprinting cases, only rows divisible by G are
+ever printed. The other rows, those not divisible by G, are not
+touched by this weave.
+
+ We can modify our weave pattern to avoid overprinting any rows and
+simultaneously fill in the missing rows. Instead of using J alone to
+determine the start of each pass from the previous pass, we adjust the
+starting position of some passes. As mentioned before, we will divide
+the page into pass blocks, with S passes in each block. This ensures
+that the first jet of the first pass in a block prints the row which
+the Jth jet of the first pass of the previous block would have printed,
+if the print head had one extra jet.
+
+ Looking back at an example of a perfect weave, we can divide it into
+pass blocks:
+
+S=7, J=2, G=1:
+
+ imaginary extra jet
+ |
+ 0 *------* * <--start of pass block 0
+ 1 *------* |
+ 2 *------* |
+ 3 *------*|
+ 4 *-----|*
+ 5 *---|--*
+ 6 *-|----*
+ |
+ 7 *------* <--start of pass block 1
+ 8 *------*
+ 9 *------*
+
+ We can now calculate the start of a given pass by reference to its
+pass block. The first pass of pass block b always starts at row
+(b*S*J). The start row of each of the other passes in the block are
+calculated using offsets from this row.
+
+ For the example above, there are 7 passes in each pass block, and
+their offsets are 0, 2, 4, 6, 8, 10 and 12. The next pass block is
+offset S*J=14 rows from the start of the current pass block.
+
+ The simplest way to modify the "perfect" weave pattern to give a
+correct weave in cases where G!=1 is to simply change any offsets which
+would result in a collision, until the collision disappears. Every
+printed row in the weave, as we have shown it up to now, is separated
+from each of its neighbouring printed rows by G blank rows. We will
+add an extra offset to each colliding pass in such a way that we push
+the pass onto these otherwise blank rows.
+
+ We have seen that, unless G=1, the plain weave pattern results in
+each pass colliding with the pass S/G passes before. We will now
+subdivide our pass block into subblocks, each consisting of B=S/G
+passes. There are therefore G subblocks in a pass block.
+
+ For each subblock, the passes in that subblock have a constant offset
+added to them. The offset is different for each subblock in a block.
+There are many ways we can choose the offsets, but the simplest is to
+make the offset equal to the subblock number (starting from 0).
+
+ Thus, the passes in the first subblock in each pass block remain at
+the offsets we've already calculated from J. The passes in the second
+subblock each have 1 added to their offset, the passes in the third
+subblock have 2 added, and so on. Thus, the offset of pass p (numbered
+relative to the start of its pass block) is p*J + floor(p/B).
+
+ This gives us a weave pattern looking like this:
+
+S=6, J=9, G=3, B=2:
+
+ 0 *-----*-----*-----*-----*-----*-----*-----*-----*
+ 1 ^ *-----*-----*-----*-----*-----*-----*-----*-----*
+ 2 | +-> *-----*-----*-----*-----*-----*-----*-----*-----*
+ 3 | | *-----*-----*-----*-----*-----*-----*-----*-----*
+ 4 | | +-> *-----*-----*-----*-----*-----*-----*---
+ 5 | | | *-----*-----*-----*-----*-----*
+ 6 | | | +-> *-----*-----*-----*-----
+ 7 | | | | *-----*-----*--
+ | | | start of pass block 1
+ | | | (offset returns to 0)
+ | | start of subblock 2 (offset 2 rows)
+ | start of subblock 1 (following passes offset by 1 row)
+ start of passblock 0, subblock 0 (pass start calculated as p*J)
+
+S=9, J=6, G=3, B=3:
+
+ 0 *--------*--------*--------*--------*--------*
+ 1 *--------*--------*--------*--------*--------*
+ 2 *--------*--------*--------*--------*--------*
+ 3 *--------*--------*--------*--------*--------*
+ 4 *--------*--------*--------*--------*--------*
+ 5 *--------*--------*--------*--------*--------*
+ 6 *--------*--------*--------*--------*---
+ 7 *--------*--------*--------*------
+ 8 *--------*--------*--------*
+ 9 *--------*--------*-----
+ 10 \---/ *--------*--------
+ 11 small offset *--------*--
+ 12 *----
+
+ This method of choosing offsets for subblocks can result in an
+occasional small offset (as shown above) between one pass and the next,
+particularly when G is large compared to J. For example:
+
+S=8, J=4, G=4, B=2:
+
+ 0 *-------*-------*-------*
+ 1 *-------*-------*-------*
+ 2 *-------*-------*-------*
+ 3 *-------*-------*-------*
+ 4 *-------*-------*-------*
+ 5 *-------*-------*-------*
+ 6 *-------*-------*-------*
+ 7 *-------*-------*-------*
+ 8 *-------*-------*-------*
+ 9 \/ *-------*-------*-------*
+ very small offset!
+
+ We can plot the offset against the subblock number as follows:
+
+ subblock number
+ | offset
+ | |
+ | 0123
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+
+The discontinuity in this plot results in the small offset between
+passes.
+
+ As we said at the beginning, we want the offsets from each pass to
+the next to be as similar as possible. We can fix this by calculating
+the offset for a given subblock b as follows:
+
+ offset(b) = 2*b , if b < ceiling(G/2)
+ = 2*(G-b)-1 , otherwise
+
+ We can visualise this as follows, for G=10:
+
+ 0123456789
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 4 *
+ 5 *
+ 6 *
+ 7 *
+ 8 *
+ 9 *
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 4 *
+ 5 *
+ 6 *
+ 7 *
+ 8 *
+ 9 *
+
+and for G=11:
+
+ 1
+ 01234567890
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 4 *
+ 5 *
+ 6 *
+ 7 *
+ 8 *
+ 9 *
+ 10 *
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 4 *
+ 5 *
+ 6 *
+ 7 *
+ 8 *
+ 9 *
+ 10 *
+
+This gives a weave looking like this:
+
+S=12, J=6, G=6, B=2:
+
+ 0 *-----------*-----------*-----------*-----------*-----------*
+ 1 *-----------*-----------*-----------*-----------*-----------*
+ 2 *-----------*-----------*-----------*-----------*-----------*
+ 3 *-----------*-----------*-----------*-----------*---------
+ 4 *-----------*-----------*-----------*-----------*-
+ 5 *-----------*-----------*-----------*-------
+ 6 *-----------*-----------*-----------*
+ 7 *-----------*-----------*------
+ 8 *-----------*-----------*--
+ 9 *-----------*--------
+ 10 *-----------*----
+ 11 *----------
+ 12 *-----
+
+ This method ensures that the offset between passes is always in the
+range [J-2,J+2].
+
+ (This might seem odd, but it occurs to me that a good weave pattern
+might also make a good score for bell ringers. When church bells are
+rung, a list of "changes" are used. For example, if 8 bells are being
+used, they will, at first, be rung in order: 12345678. If the first
+change is for bells 5 and 6, the bells will then be rung in the order
+12346578. If the second change is 1 and 2, the next notes are 21346578.
+After a long list of changes, the order the bells are rung in can become
+quite complex.
+
+ For a group of bell-ringers to change the order of the notes, they
+must each either delay their bell's next ring, hasten it, or keep it
+the same as the time it takes to ring all the bells once. The length
+of time between each ring of a given bell can only be changed a little
+each time, though; with an ink-jet weave pattern, we want the same to
+apply to the distance between passes.)
+
+ Finally, knowing the number of jets J and their separation S, we can
+calculate the starting row of any given pass p as follows:
+
+ passesperblock = S
+ passblock = floor(p / passesperblock)
+ offsetinpassblock = p - passblock * passesperblock
+ subblocksperblock = gcd(S, J)
+ passespersubblock = S / subblocksperblock
+ subpassblock = floor(offsetinpassblock / passespersubblock)
+ if subpassblock < ceiling(subblocksperblock/2)
+ subblockoffset = 2*subpassblock
+ else
+ subblockoffset = 2*(subblocksperblock-subpassblock)-1
+ startingrow = passblock * S * J + offsetinpassblock * J + subblockoffset
+
+ We can simplify this down to the following:
+
+ subblocksperblock = gcd(S, J)
+ subpassblock = floor((p % S) * subblocksperblock / S)
+ if subpassblock * 2 < subblocksperblock
+ subblockoffset = 2*subpassblock
+ else
+ subblockoffset = 2*(subblocksperblock-subpassblock)-1
+ startingrow = p * J + subblockoffset
+
+ So the row number of jet j of pass p is
+
+ subblocksperblock = gcd(S, J)
+
+ subblockoffset(p)
+ = 2*subpassblock , if subpassblock * 2 < subblocksperblock
+ = 2*(subblocksperblock-subpassblock)-1 , otherwise
+ where
+ subpassblock = floor((p % S) * subblocksperblock / S)
+
+ row(j, p) = p * J + subblockoffset(p) + j * S
+
+ Together with the inequality 0 <= j < J, we can use this definition
+in reverse to calculate the pass number containing a given row, r.
+Working out the inverse definition involves a little guesswork, but one
+possible result is as follows. Given a row, r, which is known to be
+the first row of a pass, we can calculate the pass number as follows:
+
+ subblocksperblock = gcd(S, J)
+ subblockoffset = r % subblocksperblock
+ pass = (r - subblockoffset) / J
+
+ If G==1, we can determine the pass number with this algorithm:
+
+ offset = r % J
+ pass = (r - offset) / J
+ while (offset % S != 0)
+ {
+ pass--
+ offset += J
+ }
+ jet = offset / S
+
+ Generalising, we come up with this algorithm. Given r, S and J:
+
+ G = gcd(S, J)
+ passespersubblock = S/G
+ subblockoffset = r % G
+ subpassblock = subblockoffset / 2 , if subblockoffset % 2 == 0
+ = G - (subblockoffset+1)/2 , otherwise
+ baserow = r - subblockoffset - (subpassblock * passespersubblock * J)
+ offset = baserow % J
+ pass = (baserow - offset) / J
+ while (offset % S != 0)
+ {
+ offset += J
+ pass -= 1
+ }
+ subblockretreat = floor(pass / passespersubblock) % G
+ pass -= subblockretreat * passespersubblock
+ pass += subpassblock * passespersubblock
+ jet = (r - subblockoffset - pass * J) / S
+
+ Let's look at some examples of imperfect but correct weave patterns:
+
+S=6, J=4, GCD=2,
+passesperblock=S=6,
+passespersubblock=S/G=6/2=3:
+
+ 0 *-----*-----*-----*
+ 1 *-----*-----*-----*
+ 2 *-----*-----*-----*
+ 3 *-----*-----*-----*
+ 4 *-----*-----*-----*
+ 5 *-----*-----*-----*
+ 6 *-----*-----*-----*
+ 7 *-----*-----*-----*
+ 8 *-----*-----*-----*
+ 9 *-----*-----*-----*
+ 10 *-----*-----*-----*
+ 11 *-----*-----*-----*
+ 12 *-----*-----*-----*
+ 13 *-----*-----*-----*
+ 14 *-----*-----*-----*
+ 15 *-----*-----*----
+ 16 *-----*-----*
+ 17 *-----*--
+ 18 *-----
+ 19 *-
+
+S=8, J=6, G=2,
+passesperblock=S=8,
+passespersubblock=S/G=8/2=4:
+
+ 0 *-------*-------*-------*-------*-------*
+ 1 *-------*-------*-------*-------*-------*
+ 2 *-------*-------*-------*-------*-------*
+ 3 *-------*-------*-------*-------*-------*
+ 4 *-------*-------*-------*-------*-------*
+ 5 *-------*-------*-------*-------*-------*
+ 6 *-------*-------*-------*-------*-------*
+ 7 *-------*-------*-------*-------*--
+ 8 *-------*-------*-------*-----
+ 9 *-------*-------*-------
+ 10 *-------*-------*-
+ 11 *-------*---
+ 12 *----
+
+S=6, J=12, G=6,
+passesperblock=S=6,
+passespersubblock=S/G=6/6=1:
+
+ 0 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*
+ 1 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*---
+ 2 *-----*-----*-----*-----*-----*-----*-----*-----*-
+ 3 *-----*-----*-----*-----*-----*-----*
+ 4 *-----*-----*-----*-----*--
+ 5 *-----*-----*----
+ 6 *-----
+
+ We have now solved the basic weaving problem. There are two further
+refinements we need to consider: oversampling, and filling in the
+missing rows at the start of the weave.
+
diff --git a/doc/gimpprint.info-4 b/doc/gimpprint.info-4
new file mode 100644
index 0000000..a42b029
--- /dev/null
+++ b/doc/gimpprint.info-4
@@ -0,0 +1,1151 @@
+This is gimpprint.info, produced by makeinfo version 4.0 from
+gimpprint.texi.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
+END-INFO-DIR-ENTRY
+
+ This file documents the gimpprint library and associated programs
+used for high quality printing.
+
+ Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
+Krawitz (<rlk@alum.mit.edu>)
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: gimpprint.info, Node: Oversampling, Prev: What is perfect weaving?, Up: Weaving algorithms
+
+Oversampling
+------------
+
+ By oversampling, we mean printing on the same row more than once.
+There are two reasons for oversampling: to increase the horizontal
+resolution of the printout and to reduce banding.
+
+ Oversampling to increase horizontal resolution is necessary because,
+although the printer might be able to position an ink drop to, for
+example, 1/1440" horizontally, it may not be able to lay down two such
+drops 1/1440" apart. If it can print two drops 1/720" apart, 2x
+oversampling will be necessary to get a 1/1440" horizontal resolution.
+If it can only print two drops 1/360" apart, 4x oversampling will be
+necessary for a 1/1440" horizontal resolution. The printer enforces
+this "drop spacing" by only accepting raster passes with a horizontal
+resolution matching the spacing with which it can print dots, so we
+must print passes at different horizontal positions if we are to obtain
+a higher horizontal resolution. (Another reason it does this may be to
+reduce the amount of memory needed in the printer.)
+
+ Oversampling can also be done to decrease the banding apparent in an
+image. By splitting a row into two or more sets of dots ("lines") and
+printing each line on the same row, but with a different nozzle for
+each line, we can get a smoother print.
+
+ To quantify these two kinds of oversampling, we'll introduce two new
+constants: H shows how many different horizontal offsets we want to
+print at (the "horizontal oversampling") while O shows how many times
+we want to print each row, over and above the number of times necessary
+for horizontal oversampling (the "extra oversampling").
+
+ It is necessary for all the lines printed by a given pass to have the
+same horizontal offset, but there need not be any relation between them
+in terms of extra oversampling. For the moment, however, we will treat
+all oversampling as potentially requiring this alignment; all lines in
+one pass must be derived from the original row data in the same way.
+Thus, we'll assume O=1 for now.
+
+ So, how do we do this oversampling? In fact, it can be done easily:
+advance the paper by a factor of H less between each pass. We'll
+define a new variable, A, to show how much we advance the paper between
+passes. Previously, we'd have defined A=J; we now let A=J/H. This
+also affects our pass blocks. Printing one pass block used to involve
+advancing the paper S*J rows; it now advances the paper S*J/H rows. We
+therefore name a group of H pass blocks a "band". Printing one band
+involves advancing the paper S*J rows, as a pass block did before.
+
+ To keep our weave pattern working correctly, so that overprinting
+does not occur within a pass block, we also have to redefine G as
+GCD(S,A). Here's an example of an oversampled weave pattern:
+
+S=4, J=10, H=2, A=J/H=10/2=5, G=GCD(4,5)=1,
+passesperblock=S=4,
+passespersubblock=S/G=4/1=4:
+
+ 0 *---*---*---*---*---*---*---*---*---*
+ 1 *---*---*---*---*---*---*---*---*---*
+ 2 *---*---*---*---*---*---*---*---*---*
+ 3 *---*---*---*---*---*---*---*---*---*
+ 4 *---*---*---*---*---*---*---*---*---*
+ 5 *---*---*---*---*---*---*---*---*---*
+ 6 *---*---*---*---*---*---*---*---*---*
+ 7 *---*---*---*---*---*---*---*---*---*
+ 8 *---*---*---*---*---*---*---*---*---*
+ 9 *---*---*---*---*---*---*---*---*
+ 10 *---*---*---*---*---*---*---
+ 11 *---*---*---*---*---*--
+ 12 *---*---*---*---*-
+ 13 *---*---*---*
+ 14 *---*---
+ 15 *--
+
+ Now we have to determine which line is printed by each jet on each
+pass. If we number each line generated as we split up a row, we can
+use these numbers. We'll number the lines in our diagram by replacing
+the `*'s with integers in the range [0...H-1].
+
+ Overprinting occurs once per pass block, so we can simply print pass
+block 0 with line 0, pass block 1 with line 1, pass block 2 with line
+2, etc, wrapping to 0 when we've run out of lines:
+
+ 0 0---0---0---0---0---0---0---0---0---0
+ 1 0---0---0---0---0---0---0---0---0---0
+ 2 0---0---0---0---0---0---0---0---0---0
+ 3 0---0---0---0---0---0---0---0---0---0
+ 4 1---1---1---1---1---1---1---1---1---1
+ 5 1---1---1---1---1---1---1---1---1---1
+ 6 1---1---1---1---1---1---1---1---1---1
+ 7 1---1---1---1---1---1---1---1---1---1
+ 8 0---0---0---0---0---0---0---0---0---0
+ 9 0---0---0---0---0---0---0---0---0
+ 10 0---0---0---0---0---0---0---
+ 11 0---0---0---0---0---0--
+ 12 1---1---1---1---1-
+ 13 1---1---1---1
+ 14 1---1---
+ 15 1--
+
+S=4, J=12, H=2, A=J/H=12/2=6, G=GCD(4,6)=2,
+passesperblock=S=4,
+passespersubblock=S/G=4/2=2:
+
+ 0 0---0---0---0---0---0---0---0---0---0---0---0
+ 1 0---0---0---0---0---0---0---0---0---0---0---0
+ 2 0---0---0---0---0---0---0---0---0---0---0---0
+ 3 0---0---0---0---0---0---0---0---0---0---0---0
+ 4 1---1---1---1---1---1---1---1---1---1---1---1
+ 5 1---1---1---1---1---1---1---1---1---1---1---1
+ 6 1---1---1---1---1---1---1---1---1---1---1
+ 7 1---1---1---1---1---1---1---1---1--
+ 8 0---0---0---0---0---0---0---0-
+ 9 0---0---0---0---0---0---
+ 10 0---0---0---0---0
+ 11 0---0---0--
+ 12 1---1-
+
+ But what do we do if J is not an exact multiple of H? This is a
+difficult problem, which I struggled with for quite a few days before
+giving in and taking the easy (but less elegant) way out. The easy
+solution is to round J/H down, then add on the accumulated error at the
+end of each band.
+
+S=4, J=11, H=2 A=floor(J/H)=floor(11/2)=5, G=GCD(4,5),
+passesperblock=S=4,
+passespersubblock=S/G=4/1=4
+
+ Band 0:
+ 0 0---0---0---0---0---0---0---0---0---0---0
+ 1 0---0---0---0---0---0---0---0---0---0---0
+ 2 0---0---0---0---0---0---0---0---0---0---0
+ 3 0---0---0---0---0---0---0---0---0---0---0
+ 4 1---1---1---1---1---1---1---1---1---1---1
+ 5 1---1---1---1---1---1---1---1---1---1---1
+ 6 1---1---1---1---1---1---1---1---1---1---1
+ 7 1---1---1---1---1---1---1---1---1---1---
+
+ Band 1:
+ 8 | 0---0---0---0---0---0---0---0---0-
+ 9 \-----------------------------------------/ 0---0---0---0---0---0---0---0
+ 10 S*J rows 0---0---0---0---0---0---
+ 11 0---0---0---0---0--
+ 12 1---1---1---1-
+ 13 1---1---1
+ 14 1---
+
+ We can calculate the starting row and subpass number of a given pass
+in this scheme as follows:
+
+ A = floor(J / H)
+ subblocksperblock = gcd(S, A)
+ subpassblock = floor((p % S) * subblocksperblock / S)
+ if subpassblock * 2 < subblocksperblock
+ subblockoffset = 2*subpassblock
+ else
+ subblockoffset = 2*(subblocksperblock-subpassblock)-1
+ band = floor(P / (S * H))
+ passinband = P % (S * H)
+ startingrow = band * S * J + passinband * A + subblockoffset
+ subpass = passinband / S
+
+ So the row number of jet j of pass p is
+
+ A = floor(J / H)
+ subblocksperblock = gcd(S, A)
+
+ subblockoffset(p)
+ = 2*subpassblock , if subpassblock * 2 < subblocksperblock
+ = 2*(subblocksperblock-subpassblock)-1 , otherwise
+ where
+ subpassblock = floor((p % S) * subblocksperblock / S)
+
+ band(p) = floor(p / (S * H))
+ passinband(p) = p % (S * H)
+
+ row(j, p) = band(p) * S * J + passinband(p) * A + subblockoffset(p) + j * S
+ row(j, p) = p * J + subblockoffset(p) + j * S
+
+ To be continued....
+
+
+File: gimpprint.info, Node: ESC/P2, Next: New Printer, Prev: Weaving, Up: Appendices
+
+ESC/P2
+******
+
+* Menu:
+
+* ESC/P2 Introduction:: What is ESC/P2
+* ESC/P2 Standard Commands:: Normal ESC/P2 commands
+* ESC/P2 Remote Mode Commands:: Exotic ESC/P2 commands
+* ESC/P2 Appropriate Remote Commands:: Useful remote command sequences
+
+
+File: gimpprint.info, Node: ESC/P2 Introduction, Next: ESC/P2 Standard Commands, Up: ESC/P2
+
+Introduction to ESC/P2
+======================
+
+ This is a description of the ESC/P2 raster commands used by the
+gimp-print plugin and Ghostscript driver, which is a subset of the
+complete command set. The full documents are found on
+<http://www.ercipd.com/isv/edr_docs.htm>. Note that these are *not*
+always correct, and are certainly not complete.
+
+ All ESCP/2 raster commands begin with the `ESC' character (1b hex),
+followed by either one or two command characters and arguments where
+applicable. Older commands generally have one command character. Newer
+commands usually have a `(' (left parenthesis) followed by a command
+character and a byte count for the arguments that follow. The byte
+count is a 16-bit (2 byte) binary integer, in little endian order.
+
+ All arguments listed here are of the form `name[bytes]' where
+`[bytes]' is the number of bytes that comprise the argument. The
+arguments themselves are usually one, two, or four byte integers, always
+little endian (the least significant bits come first). Presumably this
+is to match Intel processors.
+
+ In some cases, the same command sequence identifies different
+versions of the same command, depending upon the number of bytes of
+arguments.
+
+
+File: gimpprint.info, Node: ESC/P2 Standard Commands, Next: ESC/P2 Remote Mode Commands, Prev: ESC/P2 Introduction, Up: ESC/P2
+
+Standard commands
+=================
+
+ - ESC/P2 command: `ESC @'
+ Reset the printer. Discards any output, ejects the existing page,
+ returns all settings to their default. Always use this before
+ printing a page.
+
+ - ESC/P2 command: `ESC (G BC=1 ON1'
+ Turn on graphics mode. ON should be `1' (turn on graphics mode).
+
+ - ESC/P2 command: `ESC (U BC=1 UNIT1'
+ Set basic unit of measurement used by printer. This is expressed
+ in multiples of 1/3600". At 720 DPI, UNIT is `5'; at 360 DPI,
+ UNIT is `10'.
+
+ - ESC/P2 command: `ESC (U BC=5 PAGEUNITS1 VUNIT1 HUNIT1 BASEUNIT2'
+ Set basic units of measurement used by the printer. PAGEUNIT is
+ the unit of page measurement (for commands that set page
+ dimensions and the like). VUNIT is the unit of vertical
+ measurement (for vertical movement commands). HUNIT is the unit
+ of horizontal movement (for horizontal positioning commands). All
+ of these units are expressed in BASEUNIT, which is in reciprocal
+ inches. Typically, BASEUNIT is `1440'. In 720 DPI mode, PAGEUNIT,
+ VUNIT, and HUNIT are all `2'; in 1440x720 DPI mode, PAGEUNIT and
+ VUNIT are normally set to `2'; HUNIT is set to `1'.
+
+ - ESC/P2 command: `ESC (K BC=2 ZERO1 GRAYMODE1'
+ Set color or grayscale mode, on printers supporting an explicit
+ grayscale mode. These printers can be identified because they are
+ advertised as having more black nozzles than nozzles of individual
+ colors. Setting grayscale mode allows use of these extra nozzles
+ for faster printing. GRAYMODE should be `0' or `2' for color, `1'
+ for grayscale. ZERO should always be `0'.
+
+ - ESC/P2 command: `ESC (i BC=1 MICROWEAVE1'
+ If MICROWEAVE is `1', use microweave mode. On older printers,
+ this is used to turn on microweave; on newer printers, it prints
+ one row at a time. All printers support this mode. It should
+ only be used at 720 (or 1440x720) DPI. The Epson Stylus Pro series
+ indicates additional modes:
+
+ `2'
+ "Full-overlap"
+
+ `3'
+ "Four-pass"
+
+ `4'
+ "Full-overlap 2"
+
+ Any of these commands can be used with the high four bits set to
+ either `3' or `0'.
+
+ - ESC/P2 command: `ESC U DIRECTION1'
+ If DIRECTION is `1', print unidirectionally; if `0', print
+ bidirectionally.
+
+ - ESC/P2 command: `ESC (s BC=1 SPEED1'
+ On some older printers, this controls the print head speed. SPEED
+ of `2' is 10 inches/sec; SPEED of `0' or 1 is 20.
+
+ - ESC/P2 command: `ESC (e BC=2 ZERO1 DOTSIZE1'
+ Choose print dotsize. DOTSIZE can take on various values,
+ depending upon the printer. Almost all printers support `0' and
+ `2'. Variable dot size printers allow a value of 16. Other than
+ the value of 16, this appears to be ignored at resolutions of 720
+ DPI and above.
+
+ - ESC/P2 command: `ESC (C BC=2 PAGELENGTH2'
+ - ESC/P2 command: `ESC (C BC=4 PAGELENGTH4'
+ Set the length of the page in "pageunits" (see `ESC (U' above).
+ The second form of the command allows setting of longer page
+ lengths on new printers (these happen to be the printers that
+ support variable dot size).
+
+ - ESC/P2 command: `ESC (c BC=4 TOP2 LENGTH2'
+ - ESC/P2 command: `ESC (c BC=8 TOP4 LENGTH4'
+ Set the vertical page margins of the page in "pageunits" (see `ESC
+ (U' above). The margins are specified as the top of the page and
+ the length of the page. The second form of the command allows
+ setting of longer page lengths on new printers (these happen to be
+ the printers that support variable dot size).
+
+ - ESC/P2 command: `ESC (S BC=8 WIDTH4 LENGTH4'
+ Set the width and length of the printed page region in "pageunits"
+ (see `ESC (U' above).
+
+ - ESC/P2 command: `ESC (v BC=2 ADVANCE2'
+ - ESC/P2 command: `ESC (v BC=4 ADVANCE4'
+ Feed vertically ADVANCE "vertical units" (see `ESC (U' above) from
+ the current print head position.
+
+ - ESC/P2 command: `ESC (V BC=2 ADVANCE2'
+ - ESC/P2 command: `ESC (V BC=4 ADVANCE4'
+ Feed vertically ADVANCE "vertical units" (see `ESC (U' above) from
+ the top margin.
+
+ - ESC/P2 command: `ESC ($ BC=4 OFFSET4'
+ Set horizontal position to OFFSET from the left margin. This
+ command operates on printers of the 740 class and newer (all
+ printers with variable dot size).
+
+ - ESC/P2 command: `ESC $ OFFSET2'
+ Set horizontal position to OFFSET from the left margin. This
+ command operates on printers of the 740 class and newer (all
+ printers with variable dot size).
+
+ - ESC/P2 command: `ESC (\ BC=4 UNITS2 OFFSET2'
+ Set horizontal position to OFFSET from the previous print head
+ position, measured in UNITS. UNITS is measured in inverse inches,
+ and should be set to 1440 in all cases. This operates on all 1440
+ dpi printers that do not support variable dot size.
+
+ - ESC/P2 command: `ESC (/ BC=4 OFFSET4'
+ Set horizontal position to OFFSET from the previous print head
+ position, measured in "horizontal units" (see `ESC (U' above).
+ This operates on all variable dot size printers.
+
+ - ESC/P2 command: `ESC \ OFFSET2'
+ Set horizontal position to OFFSET from the previous print head
+ position, measured in basic unit of measurement (see `ESC (U'
+ above). This is used on all 720 dpi printers, and can also be used
+ on 1440 dpi printers in lower resolutions to save a few bytes.
+ Note that OFFSET may be negative. The range of values for this
+ command is between `-16384' and `16383'.
+
+ - ESC/P2 command: `ESC r COLOR1'
+ - ESC/P2 command: `ESC (r BC=2 DENSITY1 COLOR1'
+ Set the ink color. The first form is used on four-color printers;
+ the second on six-color printers. DENSITY is `0' for dark inks,
+ `1' for light. COLOR is
+
+ `0'
+ black
+
+ `1'
+ magenta
+
+ `2'
+ cyan
+
+ `4'
+ yellow
+
+ This command is not used on variable dot size printers in softweave
+ mode.
+
+ - ESC/P2 command: `ESC . COMPRESS1 VSEP1 HSEP1 LINES1 WIDTH2 DATA...'
+ Print data. COMPRESS signifies the compression mode:
+
+ `0'
+ no compression
+
+ `1'
+ TIFF compression (incorrectly documented as "run length
+ encoded")
+
+ `2'
+ TIFF compression with a special command set.
+
+ VSEP depends upon resolution and printer type. At 360 DPI, it is
+ always `10'. At 720 DPI, it is normally `5'5. On the ESC 600, it
+ is `40' (8 * 5). On some other printers, it varies.
+
+ HSEP1 is `10' at 360 DPI and `5' at 720 or 1440 DPI (1440 DPI
+ cannot be printed in one pass; it is printed in two passes, with
+ the dots separated in each pass by 1/720").
+
+ LINES is the number of lines to be printed. It should be `1' in
+ microweave and 360 DPI. At 720 DPI softweave, it should be the
+ number of lines to be actually printed.
+
+ WIDTH is the number of pixels to be printed in each row.
+ Following this command, a carriage return (`13' decimal, `0A' hex)
+ should be output to return the print head position to the left
+ margin.
+
+ The basic data format is a string of bytes, with data from left to
+ right on the page. Within each byte, the highest bit is first.
+
+ The TIFF compression is implemented as one count byte followed by
+ one or more data bytes. There are two cases:
+
+ 1. If the count byte is `128' or less, it is followed by [count]
+ + 1 data bytes. So if the count byte is `0', it is followed
+ by 1 data byte; if it is `128', it is followed by 129 data
+ bytes.
+
+ 2. If the count byte is greater than 128, it is followed by one
+ byte. This byte is repeated (257 - [count]) times. So if
+ [count] is 129, the next byte is treated as though it were
+ repeated 128 times; if [count] is 255, it is treated as
+ though it were repeated twice.
+
+ - ESC/P2 command: `ESC i COLOR1 COMPRESS1 BITS1 BYTES2 LINES2 DATA...'
+ Print data in the newer printers (that support variable dot size),
+ and Stylus Pro models.
+
+ COLOR is the color:
+
+ `0'
+ black
+
+ `1'
+ magenta
+
+ `2'
+ cyan
+
+ `4'
+ yellow
+
+ `17'
+ light magenta
+
+ `18'
+ light cyan
+
+ COMPRESS signifies the compression mode:
+
+ `0'
+ no compression
+
+ `1'
+ TIFF compression (incorrectly documented as "run length
+ encoded")
+
+ `2'
+ TIFF compression with a special command set.
+
+ BITS is the number of bits per pixel.
+
+ BYTES is the number of bytes wide for each row (ceiling(BITS *
+ width_of_row, 8)). Note that this is different from the `ESC .'
+ command above.
+
+ LINES is the number of lines to be printed. This command is the
+ only way to get variable dot size printing. In variable dot mode,
+ the size of the dots increases as the value (`1', `2', or `3')
+ increases.
+
+ - ESC/P2 command: `ESC (D BC=4 BASE2 VERTICAL1 HORIZONTAL1'
+ Set printer horizontal and vertical spacing. It only applies to
+ variable dot size printers in softweave mode (and possibly other
+ high end printers).
+
+ BASE is the base unit for this command; it must be `14400'.
+
+ VERTICAL is the distance in these units between printed rows; it
+ should be (separation_in_nozzles * BASE / 720).
+
+ HORIZONTAL is the horizontal separation between dots in a row.
+ Depending upon the printer, this should be either (14400 / 720) or
+ (14400 / 360). The Stylus Pro 9000 manual suggests that the
+ settings should match the chosen resolution, but that is
+ apparently not the case (or not always the case) on other printers.
+
+ - ESC/P2 command: `ESC (R BC=8 00 R E M O T E 1'
+ Enters "remote mode". This is a special, undocumented command set
+ that is used to set up various printer options, such as paper feed
+ tray, and perform utility functions such as head cleaning and
+ alignment. It does not appear that anything here is actually
+ required to make the printer print. Our best understanding of
+ what is in a remote command sequence is described in a separate
+ section below.
+
+ - ESC/P2 command: `ESC 01 @EJL [sp] ID\r\n'
+ Return the printer ID. This is considered a remote mode command,
+ although the syntax is that of a conventional command. This
+ returns the following information:
+
+ @EJL ID\r
+ MFG:EPSON;
+ CMD:ESCPL2,BDC;
+ MDL:[printer model];
+ CLS:PRINTER;
+ DES:EPSON [printer model];
+ \f
+
+ After all data has been sent, a form feed byte should be sent.
+
+ All newer Epson printers (STC 440, STP 750) require the following
+command to be sent at least once to enable printing at all. This
+command specifically takes the printer out of the Epson packet mode
+communication protocol (whatever that is) and enables normal data
+transfer. Sending it multiple times is is not harmful, so it is
+normally sent at the beginning of each job:
+
+ ESC 01@EJL[space]1284.4[newline]@EJL[space][space][space][space]
+ [space][newline]ESC@
+
+ The proper sequence of initialization commands is:
+
+ magic command
+ ESC remote mode if needed
+ ESC (G
+ ESC (U
+ ESC (K (if appropriate)
+ ESC (i
+ ESC U (if needed)
+ ESC (s (if appropriate)
+ ESC (e
+ ESC (C
+ ESC (c
+ ESC (S
+ ESC (D (if needed)
+ ESC (V (optional -- this can be accomplished with ESC (v)
+
+ For printing, the proper sequence is:
+
+ ESC (v
+
+and repeat for each color:
+
+ ESC ($ or ESC (\ or ESC \
+ ESC (r or ESC r (if needed--not used with `ESC i' and not needed if the color
+ has not changed from the previous printed line)
+ ESC . or ESC i ...data... [return] (0A hex)
+
+ To terminate a page:
+
+ [formfeed] (0C hex)
+ ESC @
+
+
+File: gimpprint.info, Node: ESC/P2 Remote Mode Commands, Next: ESC/P2 Appropriate Remote Commands, Prev: ESC/P2 Standard Commands, Up: ESC/P2
+
+Remote Mode Commands
+====================
+
+ The following description of remote commands comes out of an
+examination of the sequences used by the printer utilities bundled with
+the Windows drivers for the ESC740, and from other sources (some Epson
+manuals, experimentation, analysis of print files). It is largely
+speculative as these commands are not all documented in the Epson
+documentation we have access to. Generally, newer manuals provide more
+thorough documentation.
+
+ Remote command mode is entered when the printer is sent the following
+sequence:
+
+ ESC (R BC=8 00 R E M O T E 1
+
+ Remote mode commands are then sent, and terminated with the following
+sequence:
+
+ ESC 00 00 00
+
+ All remote mode commands must be sent before the initial `ESC (G'
+command is sent.
+
+ This introductory sequence is then followed by a sequence of
+commands. Each command is constructed as follows:
+
+ * Two ASCII bytes indicating the function
+
+ * A byte count (two bytes, little-endian) for the parameters
+
+ * Binary parameters, if any
+
+ This is a list of all remote commands we have seen:
+
+ - ESC/P2 remote command: `NC BC=2 00 00'
+ Print a nozzle check pattern
+
+ - ESC/P2 remote command: `VI BC=2 00 00'
+ on my 740, prints the following:
+
+ W01286 I02382\r\n
+
+ probably "version information"
+
+ - ESC/P2 remote command: `* AI BC=3 00 00 00'
+ Prints a "printer ID". On one 870, prints the following:
+ 51-51-50-51-49-48\r\n
+
+ The Windows driver has a text entry field where this number can be
+ entered, but its purpose is unknown.
+
+ - ESC/P2 remote command: `* LD BC=0'
+ Load printer defaults from NVRAM, DIP switches, and/or ROM. This
+ apparently does not load factory defaults per se, but any settings
+ that are saved. This is commonly used right at the end of each
+ print job after the `ESC @' printer reset command.
+
+ - ESC/P2 remote command: `* CH BC=2 00 XX'
+ Perform a head cleaning cycle. The heads to clean are determined
+ by parameter XX:
+
+ `00'
+ clean all heads
+
+ `01'
+ clean black head
+
+ `02'
+ clean color heads
+
+ While XX = `00' is probably supported by all printers, XX = `01'
+ and `02' may well not be.
+
+ - ESC/P2 remote command: `* DT BC=3 00 XX 00'
+ Print an alignment pattern. There are three patterns, which are
+ picked via the choice of XX. Pattern `0' is coarse, pattern `1'
+ is medium, and pattern `2' is fine.
+
+ - ESC/P2 remote command: `* DU BC=6 00 XX 00 09 00 YY'
+ Print another alignment pattern. It isn't entirely clear what XX
+ and YY are, but it appears that XX takes on the values `1' and `2'
+ , and YY takes on the values `0' and 1. This may only work on the
+ 580 and/or 480.
+
+ - ESC/P2 remote command: `* DA BC=4 00 XX 00 YY'
+ Set results for the first alignment pattern. XX is the pattern
+ (`1'-`3'); YY is the best choice from the set (`1'-`7' or
+ `1'-`15'). This does not save to NVRAM, so when the printer is
+ powered off, the setting will be lost.
+
+ - ESC/P2 remote command: `* DA BC=6 00 XX 00 YY 09 00'
+ Set results for alternate alignment pattern. XX appears to be the
+ pass, and YY appears to be the optimum pattern. This does not
+ save to NVRAM, so when the printer is powered off, the setting
+ will be lost.
+
+ - ESC/P2 remote command: `* SV BC=0'
+ Save the current settings to NVRAM.
+
+ - ESC/P2 remote command: `* RS BC=1 01'
+ Reset the printer.
+
+ - ESC/P2 remote command: `* IQ BC=1 01'
+ Get ink quantity. This requires direct access to the printer
+ port. The return looks like
+
+ IQ:KKCCMMYY
+
+ or
+
+ IQ:KKCCMMYYccmm
+
+ (for 4-color and 6-color printers respectively), where each pair of
+ digits are hexadecimal representations of percent.
+
+ The following two commands have been observed on an STP 870.
+
+ - ESC/P2 remote command: `* IR BC=2 00 XX'
+ *Function unknown*. This command has been observed on an STP 870
+ with XX=`03' at the start of a job and XX=`02' at the end of a job
+ (where it is followed by an `LD' command). When in roll mode, the
+ values change to XX=`01' at the start of a job and XX=`00' at the
+ end of a job.
+
+ - ESC/P2 remote command: `* FP BC=3 00 XX YY'
+ XX=`00' and YY=`00' selects the printer's normal left margin
+ (about 3mm). XX=`0xb0' and YY=`0xff' selects zero-margin mode,
+ where the left-most print position is shifted to a point about
+ 0.1" to the left of the left-hand edge of the paper, allowing
+ printing up to (and off) the left-hand edge of the paper.
+
+ The commands below are partially documented in the Stylus Pro 9000
+manual. Much of this information is interpreted; none is tested.
+
+ - ESC/P2 remote command: `* SN BC=3 00 XX YY'
+ Select Mechanism Sequence. XX controls which sub-operation is
+ performed. XX=`00' selects the "Feed paper sequence setting". YY
+ can take on the following values (on the STP 870, at any rate):
+
+ `0'
+ default
+
+ `1'
+ plain paper
+
+ `2'
+ postcards
+
+ `3'
+ film (photo quality glossy film, transparencies)
+
+ `4'
+ envelopes
+
+ `5'
+ plain paper (fast load)
+
+ `6'
+ back light film (although this has been observed with
+ heavyweight matte paper)
+
+ `7'
+ matte paper (observed with 360 dpi inkjet paper, and photo
+ quality inkjet paper)
+
+ `8'
+ photo paper
+
+ Experimentation suggests that this setting changes details of how
+ the printers' cut sheet feeder works, presumably to tune it for
+ different types of paper.
+
+ XX=`01' controls the platen gap setting; YY=`00' is the default,
+ YY=`1' or `2' are higher settings.
+
+ XX=`02' controls paper loading speed (YY=`0' is normal, `1' is
+ fast, `2' is slow). It appears that `1' is used when printing on
+ "plain paper", "360dpi ink jet paper" or "ink jet transparencies",
+ and YY=`00' for all other paper type settings.
+
+ XX=`07' controls duplex printing for printers with that capability
+ (YY=0 is default, for non-duplex printing; `1' is front side of
+ the paper, and 2 is back side).
+
+ XX=`09' controls zero margin printing on the printers with the
+ capability of printing zero-margin on all sides (Stylus Photo
+ 780/790, 890, and 1280/1290). YY=`0' is the default; `1' enables
+ zero margin printing.
+
+ - ESC/P2 remote command: `* PP BC=3 00 XX YY'
+ Set Paper Path. XX=`2' indicates manual feed, XX=`3' is for roll
+ paper. YY selects "paper path number".
+
+ - ESC/P2 remote command: `* AC BC=2 00 XX'
+ Set Auto Cutting State. XX=`0' selects auto cutting off, XX=`1'
+ selects auto cutting on, and XX=`2' indicates horizontal print
+ page line on. It appears that with auto cutting on, roll paper is
+ cut automatically at the point a formfeed character is sent. The
+ formfeed character is normally used to eject a page; with this
+ turned on, it also cuts the roll paper. Horizontal print page
+ line on prints a narrow line of black dots at the position the
+ paper should be cut manually.
+
+ - ESC/P2 remote command: `* DR BC=4 00 xx DT2'
+ Set Drying Time. XX=`00' sets the drying time "per scan" (per
+ pass?); XX=`01' sets the drying time per page. DT indicates the
+ drying time, which is in seconds if page mode is used and in
+ milliseconds if scan mode is used. DT must not exceed 3600
+ seconds in per-page mode and 10000 milliseconds in per-scan mode.
+
+ - ESC/P2 remote command: `* IK BC=2 00 XX'
+ Select Ink Type. XX=`00' selects dye ink. Pigment ink is
+ apparently selected by XX=`01'. This probably does not apply to
+ the consumer-grade printers.
+
+ - ESC/P2 remote command: `* PZ BC=2 00 xx'
+ Set Pause After Printing. XX=`00' selects no pause after
+ printing; XX=`01' selects pause after printing. If turned on, the
+ printer is paused after the page is ejected (by the FF byte). If
+ cutting is turned on, the printer is paused *after* the cutting or
+ printing of the horizontal cut line.
+
+ - ESC/P2 remote command: `* EX BC=6 00 00 00 00 0x14 XX'
+ Set Vertical Print Page Line Mode. XX=`00' is off, XX=`01' is on.
+ If turned on, this prints vertical trim lines at the left and
+ right margins.
+
+ - ESC/P2 remote command: `* EX BC=6 00 00 00 00 0x05 XX'
+ Set Roll Paper Mode. If XX is `0', roll paper mode is off; if XX
+ is `1', roll paper mode is on.
+
+ - ESC/P2 remote command: `* EX BC=3 00 XX YY'
+ Appears to be a synonym for the `SN' command described above.
+
+ - ESC/P2 remote command: `* PH BC=2 00 XX'
+ Select Paper Thickness. Set the paper thickness XX in .1 mm
+ units. This must not exceed 0x10 (1.6 mm). If the thickness is
+ set "more than" .6 mm (which probably means "at least" .6 mm,
+ since the other case reads "less than 0.5 mm"), the platen gap is
+ set high irrespective of the `SN' command.
+
+ - ESC/P2 remote command: `* PM BC=2 00 00'
+ *Function unknown*. Used on the STC 3000 at least when using roll
+ feed, and on the STP 870 in all print files analysed to date.
+
+ - ESC/P2 remote command: `* ST BC=2 00 XX'
+ Epson's STP 750/1200 programming guide refers to the `ST' command
+ as "Set printer state reply". If XX is `0' or `2', the printer
+ will not send status replies. If XX is `1' or `3', the printer
+ will send status replies. The status replies consist of state,
+ error codes, ink leve, firmware version, and warning status.
+
+ The actual reply is documented as
+
+ @BDC ST\r
+ ST: xx;
+ [ER: yy;]
+ IQ: n1n2n3n4;
+ [WR: w1,w2...;]
+ RV: zz;
+ AI:CW:02kkccmmyy, MI:mm
+ [TC:tttt;]
+ INK:...;
+ \f
+
+ (`\r' is carriage return; `\n' is newline; `\f' is formfeed.)
+
+ `ST' is the printer status:
+
+ `00'
+ Error
+
+ `01'
+ Self-test
+
+ `02'
+ Busy
+
+ `03'
+ Waiting while printing
+
+ `04'
+ Idle
+
+ `07'
+ Cleaning/filling ink heads
+
+ `08'
+ Not yet initialized/filling heads
+
+ `ER', if provided, is the error status:
+
+ `00'
+ Fatal error
+
+ `01'
+ Interface not selected
+
+ `04'
+ Paper jam
+
+ `05'
+ Out of ink
+
+ `06'
+ Paper out
+
+ `IQ' is the amount of ink left, as a (decimal!) percentage
+ expressed in hexadecimal. The values are black, cyan, magenta, and
+ yellow (presumably 6-color printers supply light cyan and light
+ magenta inks as additional parameters).
+
+ `WR', if provided, is the warning status:
+
+ `10'
+ Black ink low
+
+ `11'
+ Cyan
+
+ `12'
+ Magenta
+
+ `13'
+ Yellow
+
+ `14'
+ Light cyan (presumably)
+
+ `15'
+ Light magenta (presumably)
+
+ `RV' is the firmware revision (one byte ASCII).
+
+ `AI' is actuator information. These are two byte ASCII codes that
+ indicate "ink weight rank ID" of KCMY, respectively.
+
+ `TC', if provided, is the total time of cleaning or ink filling
+ (?).
+
+ `INK:' and `MI' are *not documented*.
+
+ - ESC/P2 remote command: `* SM BC=2 00 XX'
+ Set Status Reply Rate. XX is the repeat interval in seconds. If
+ XX is `0', the status is returned only when the printer's state
+ changes.
+
+ - ESC/P2 remote command: `* ST BC=1 01'
+ Reply Printer Status. The reply is formatted as
+
+ @BDC PS\r\nST:XX;\f
+
+ (`\r' is carriage return; `\n' is newline; `\f' is formfeed). If
+ XX (the reply value) is `0' or `2', automatic status update is
+ disabled; if `1' or `3', it is enabled.
+
+ - ESC/P2 remote command: `* SM BC=1 01'
+ Reply Printer Status Rate. The reply is formatted as
+
+ @BDC PS\r\nST:xx;\f
+
+ (`\r' is carriage return; `\n' is newline; `\f' is formfeed). See
+ `SM BC=2' above for the meaning of the return value.
+
+ - ESC/P2 remote command: `* ?? BC=XX Y[1] ... Y[xx]'
+ Echo Parameters (perhaps better described as Echo Commands). The
+ command string is executed (it would appear from the
+ documentation), and the string sent is returned using a sequence
+ similar to that described in the `ST BC=1' and `SM BC=1' commands.
+ Note that in this case the number of bytes is variable!
+
+ - ESC/P2 remote command: `* SM BC=2 00 02'
+ *Function unknown*. Used on the STC 3000 at least when using roll
+ feed.
+
+
+File: gimpprint.info, Node: ESC/P2 Appropriate Remote Commands, Prev: ESC/P2 Remote Mode Commands, Up: ESC/P2
+
+Appropriate Remote Commands
+===========================
+
+ All of the remote commands described above are wrapped up with the
+usual boilerplate. The files always start with `00 00 00' and the
+"magic" command described above, then two `ESC @'s to reset the
+printer. The remote command sequences come next; if they print anything
+that is usually followed by a `FF' (0C hex) character to feed the page,
+then the file ends with another two `ESC @'s to get back to the ground
+state.
+
+ An alignment sequence goes like this:
+
+ 1. Host uses `DT' to print an alignment sheet
+
+ 2. User eyeballs the sheet to see which is the best aligned pattern.
+
+ 3. Host sends a `DA' command indicating which pattern the user chose
+
+ 4. If the user said "realign", meaning he isn't done yet, go to step 1
+
+ 5. We are done: host sends a `SV' command and exits
+
+ The sequence used (by the STC 3000, at least) to print from the roll
+feed is (with byte count omitted)
+
+ PM 00 00
+ SN 00 00 00
+ EX 00 00 00 00 05 01
+ ST 00 01
+ SM 00 02
+
+ The sequence used by the STP 870 to print on plain paper is
+
+ PM 00 00
+ IR 00 03
+ SN 00 00 01
+ SN 00 01 00
+ SN 00 02 01
+ EX 00 00 00 00 05 00
+ FP 00 00 00
+
+and the job finishes with
+
+ IR 00 02
+ LD
+
+ For different paper type settings on the STP 870, the arguments to
+`SN' vary. The arguments to the first and third `SN' commands are as
+outlined in the description of the `SN' command above; the arguments to
+the second ("platen gap") are `00 01 01' for thick papers ("matte
+paper--heavyweight", "photo paper" and "premium glossy photo paper")
+and `00 01 00' for all others.
+
+ For roll-mode printing, the STP 870's sequence changes as follows.
+`IR''s arguments become `00 01' in the header, and `00 00' after the
+job, and `EX''s last argument changes from `00' to `01'.
+
+ For zero-margin printing on the STP 870, the arguments to `FP' become
+`00 0xb0 0xff'. This moves the origin about 5.5mm to the left, to a
+point one tenth of an inch to the left of the left-hand edge of the
+paper, allowing printing right up to (and beyond) the edge of the
+paper. Some printers (at least the STP 870) include white absorbent
+pads at the left margin position and other positions (89mm and 100mm on
+the STP 870) to soak up ink which misses the edge of the paper.
+Printing off the edge of paper of a width not aligned with a pad could
+result in making a mess of the inside of the printer and ink getting on
+the reverse of the paper.
+
+
+File: gimpprint.info, Node: New Printer, Prev: ESC/P2, Up: Appendices
+
+Adding a new printer
+********************
+
+ This appendix covers adding a new ESCP/2, PCL, or Canon printer.
+Writing a new driver module is not covered.
+
+ The three steps to adding a printer are:
+
+ 1. Add an entry to `printers.xml'
+
+ 2. Add the appropriate code and data to the appropriate driver module
+
+ 3. Tune the printer
+
+ Printer information is stored in two places: in `printers.xml'
+(which contains the list of printer models available to the the
+upper-level application), and in the appropriate driver file
+(`print-escp2.c', `print-pcl.c', or `print-canon.c').
+
+* Menu:
+
+* printers.xml:: File format description.
+* Driver file:: Data structures to use.
+* Epson inkjet printers:: Adding an Epson printer.
+* Tuning Epson printers:: Tweaking settings.
+* Canon inkjet printers:: Adding a Canon printer.
+
+
+File: gimpprint.info, Node: printers.xml, Next: Driver file, Up: New Printer
+
+`printers.xml'
+==============
+
+ `printers.xml' is an XML-like file (there's no formal DTD) that
+contains very simple printer definitions. A typical definition follows:
+
+ <printer name="EPSON Stylus Color 1500" driver="escp2-1500">
+ <color>
+ <model value=2>
+ <gamma value=0.597>
+ <density value=1.0>
+ <language value=escp2>
+ </printer>
+
+ There are other tags that may be present. The only ones that are
+mandatory are `<printer>', `<color>', `<model>', and `<language>'. The
+other optional parameters (gamma and density in this case) can be used
+to adjust control settings. This is probably not the right place for
+them; the printer drivers themselves should contain this information.
+There's probably no good reason for anything but gamma and density to
+be in here. Gamma refers to the printer's gamma factor; density is the
+desired base ink density for the printer. The Epson driver contains
+the density information for each printer at each resolution internally.
+An even better driver would adjust density and possibly even gamma for
+paper type. All the more reason not to have that information here.
+
+ If you really are curious about what tags are permitted, please see
+`printdefl.l'. I deliberately want to make this obscure.
+
+ Anyway, here's the definition of the tags that do matter:
+
+ - `printers.xml' tag: `<printer name="LONGNAME" driver="DRIVERNAME">'
+ This starts the definition of a printer. The LONGNAME should be
+ something human readable; the DRIVERNAME should consist of
+ alphanumerics and hyphens, and be fairly short. The LONGNAME is
+ what will appear in the GUI listing of printers; the DRIVERNAME is
+ what is actually used to key into the list of printers. It is
+ legal to have multiple printers with the same driver name.
+
+ - `printers.xml' tag: `<color>'
+ - `printers.xml' tag: `<nocolor>'
+ Indicates that this printer is capable of color, or is not capable
+ of color respectively
+
+ - `printers.xml' tag: `<model value=INT>'
+ This defines a model number. This is passed into the driver,
+ which may do whatever it cares to with it--index into a table,
+ compute on, or whatever. This need not be unique.
+
+ - `printers.xml' tag: `<language value=TYPE>'
+ This defines what driver module this printer uses. TYPE should be
+ `escp2', `pcl', `canon', or `ps'.
+
+ - `printers.xml' tag: `</printer>'
+ This, of course, closes off a printer definition.
+
+ This is handled very ad-hoc. It's ugly. But it's reasonably easy to
+extend, and it's buzzword-compliant.
+
+
+File: gimpprint.info, Node: Driver file, Next: Epson inkjet printers, Prev: printers.xml, Up: New Printer
+
+The driver file
+===============
+
+ Adding a new printer to a driver module (`print-escp2.c',
+`print-pcl.c', or `print-canon.c'--`print-ps.c' is really ad hoc)
+requires a bit more planning. Each driver is somewhat different, but
+they all generally have a vector of printer definitions, and the code
+does some special casing based on particular printer capabilities. The
+PCL and Canon drivers are quite similar; the Canon driver was actually
+cribbed from the PCL driver, but it then returned the favor.
+
+ The Epson driver is a little bit different. Canon and PCL printers
+have some amount of intelligence; a lot of them have specific ink
+options, and know about specific paper sizes and types, and must be
+told the right thing. Epson printers have somewhat less intelligence
+and will more or less do exactly what the host tells it to do in a
+fairly regular fashion. I actually prefer this; it isn't materially
+more work for the host to compute things like exact paper sizes and
+such, it allows a lot more tweaking, and it may be why Epson has been
+more open with information - the communication protocol doesn't really
+contain very much IP, so they have less reason to keep it secret.
+
+ Someone else will have to fill in the sections about PCL and Canon
+printers.
+
diff --git a/doc/gimpprint.info-5 b/doc/gimpprint.info-5
new file mode 100644
index 0000000..672a377
--- /dev/null
+++ b/doc/gimpprint.info-5
@@ -0,0 +1,872 @@
+This is gimpprint.info, produced by makeinfo version 4.0 from
+gimpprint.texi.
+
+INFO-DIR-SECTION Libraries
+START-INFO-DIR-ENTRY
+* GIMP-Print: (gimpprint). print plugin for the GIMP, and printing library
+END-INFO-DIR-ENTRY
+
+ This file documents the gimpprint library and associated programs
+used for high quality printing.
+
+ Copyright (C) 2001 Michael Sweet (<mike@easysw.com>) and Robert
+Krawitz (<rlk@alum.mit.edu>)
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: gimpprint.info, Node: Epson inkjet printers, Next: Tuning Epson printers, Prev: Driver file, Up: New Printer
+
+Epson inkjet printers
+=====================
+
+ The `model_capabilities' vector in `print-escp2.c' contains one
+entry for each defined printer model. The `model' parameter in
+`printers.xml' is an index into this table.
+
+ In general, the new printers have fewer eccentricities than the older
+printers. That doesn't mean they're simpler, just that they're more
+consistent.
+
+ An `escp2_printer_t' is a C struct defined as follows:
+
+ - Data type: escp2_printer_t
+ typedef struct escp2_printer
+ {
+ model_cap_t flags; /* Bitmask of flags, see below */
+ /*****************************************************************************/
+ int nozzles; /* Number of nozzles per color */
+ int min_nozzles; /* Minimum number of nozzles per color */
+ int nozzle_separation; /* Separation between rows, in 1/360" */
+ int black_nozzles; /* Number of black nozzles (may be extra) */
+ int min_black_nozzles; /* # of black nozzles (may be extra) */
+ int black_nozzle_separation; /* Separation between rows */
+ int fast_nozzles; /* Number of fast nozzles */
+ int min_fast_nozzles; /* # of fast nozzles (may be extra) */
+ int fast_nozzle_separation; /* Separation between rows */
+ /*****************************************************************************/
+ int xres; /* Normal distance between dots in */
+ /* softweave mode (inverse inches) */
+ int enhanced_xres; /* Distance between dots in highest */
+ /* quality modes */
+ int base_separation; /* Basic unit of row separation */
+ int base_resolution; /* Base hardware spacing (above this */
+ /* always requires multiple passes) */
+ int enhanced_resolution;/* Above this we use the */
+ /* enhanced_xres rather than xres */
+ int resolution_scale; /* Scaling factor for ESC(D command */
+ int max_black_resolution; /* Above this resolution, we */
+ /* must use color parameters */
+ /* rather than (faster) black */
+ /* only parameters*/
+ int max_hres;
+ int max_vres;
+ int min_hres;
+ int min_vres;
+ /*****************************************************************************/
+ int max_paper_width; /* Maximum paper width, in points */
+ int max_paper_height; /* Maximum paper height, in points */
+ int min_paper_width; /* Maximum paper width, in points */
+ int min_paper_height; /* Maximum paper height, in points */
+ /* Printer interleave: */
+ int m_left_margin; /* Left margin, points */
+ int m_right_margin; /* Right margin, points */
+ int m_top_margin; /* Absolute top margin, points */
+ int m_bottom_margin; /* Absolute bottom margin, points */
+ /* ROLL FEED: */
+ /* Softweave: */
+ int roll_left_margin; /* Left margin, points */
+ int roll_right_margin; /* Right margin, points */
+ int roll_top_margin; /* Absolute top margin, points */
+ int roll_bottom_margin; /* Absolute bottom margin, points */
+ /* Printer interleave: */
+ int m_roll_left_margin; /* Left margin, points */
+ int m_roll_right_margin; /* Right margin, points */
+ int m_roll_top_margin; /* Absolute top margin, points */
+ int m_roll_bottom_margin; /* Absolute bottom margin, points */
+ /*****************************************************************************/
+ int extra_feed; /* Extra distance the paper can be spaced */
+ /* beyond the bottom margin, in 1/360". */
+ /* (maximum useful value is */
+ /* nozzles * nozzle_separation) */
+ int separation_rows; /* Some printers require funky spacing */
+ /* arguments in interleave mode. */
+ int pseudo_separation_rows;/* Some printers require funky */
+ /* spacing arguments in softweave mode */
+
+ int zero_margin_offset; /* Offset to use to achieve */
+ /* zero-margin printing */
+ int initial_vertical_offset;
+ int black_initial_vertical_offset;
+ int extra_720dpi_separation;
+
+ /*****************************************************************************/
+ const int *dot_sizes; /* Vector of dot sizes for resolutions */
+ const double *densities; /* List of densities for each printer */
+ const escp2_variable_inklist_t *inks; /* Choices of inks for this printer */
+ /*****************************************************************************/
+ const paperlist_t *paperlist;
+ const res_t *reslist;
+ const inklist_t *inklist;
+ /*****************************************************************************/
+ const int *bits;
+ const int *base_resolutions;
+ const input_slot_list_t *input_slots;
+ /*****************************************************************************/
+ const init_sequence_t *preinit_sequence;
+ const init_sequence_t *postinit_remote_sequence;
+ } escp2_printer_t;
+
+ The printer definition block is divided into 8 sections. The first
+section is a set of miscellaneous printer options. These are described
+in the code, and will not be discussed further here.
+
+ The second section describes the number of nozzles and the separation
+between nozzles in base units. The base unit is 1/360" for all
+currently supported printers, but future printers may support a smaller
+base unit.
+
+ Many printers have more black nozzles than nozzles of other colors,
+and when used in black and white mode, it's possible to use these extra
+nozzles, which speeds up printing. As an example, a printer that is
+specified to have 48 cyan, magenta, and yellow nozzles, and 144 black
+nozzles, can use all 144 black nozzles when printing black ink only.
+When printing in color, only 48 nozzles of each color (including black)
+can be used.
+
+ Most printers can print using either the number of nozzles available
+or any smaller number. Some printers require that all of the nozzles
+be used. Those printers will set `min_nozzles' and/or
+`min_black_nozzles' to the same value as `nozzles' and/or
+`black_nozzles'.
+
+ The third section defines basic units of measure for the printer,
+including the standard separation between dots, the base nozzle
+separation, and the minimum and maximum printing resolutions the
+printer supports. Most of these are fairly self-explanatory, but some
+are not obvious.
+
+ Most Epson printers, other than the high-end Stylus Pro models,
+cannot print dots spaced more closely than 1/360" or 1/720" apart (this
+is the setting for `xres'. This is true even for printers that support
+resolutions of 1440 or 2880 DPI. In these cases, the data must be
+printed in 2, 4, or 8 passes. While the printer can position the head
+to a resolution of 1/1440" or 1/2880", the head cannot deposit ink that
+frequently.
+
+ Some printers can only print in their very best quality (using the
+smallest dots available) printing at a lower resolution. For example,
+the Stylus Photo EX can normally print with a dot spacing of 1/720".
+The smallest dot size cannot be printed with a dot spacing of less than
+1/360", however. In this case, we use `enhanced_xres' to specify the
+resolution to be used in this enhanced mode, and `enhanced_resolution'
+to specify the printing resolution above which we use the
+`enhanced_xres'.
+
+ The `resolution_scale' command is used to specify scaling factors
+for the dot separation on newer printers. It should always be 14400
+with current printers.
+
+ The fourth section specifies the minimum and maximum paper sizes, and
+the margins. Some printers allow use of narrower margins when
+softweave is used; both sets of margins are specified.
+
+ There is a convenient `INCH' macro defined to make specification of
+the `max_paper_width' and `max_paper_height' more legible. It
+multiplies 72 by the provided expression to get the appropriate number
+of points. For example, to specify 8.5", `INCH(17/2)' expands to `(72
+* 17/2)', which is evaluated left to right, and hence generates the
+correct value.
+
+ The fifth section specifies some miscellaneous values that are
+required for certain printers. For most printers, the correct values
+are 1 for `separation_rows' and 0 for the others. Very, very few
+printers require (or allow) `separation_rows' to be anything but 1 and
+`pseudo_separation_rows' other than zero. The Stylus Color 1520,
+Stylus Color 800, Stylus Color 850, and (strangely enough to my mind,
+since it's a new printer) Stylus Color 660 seem to be the only
+exceptions.
+
+ The `zero_margin_offset' is used to specify an additional negative
+horizontal offset required to print to the edges of the paper on newer
+Stylus Photo printers. These must be determined empirically; good
+starting values are 100 for 1440 DPI and 50 for 2880 DPI printers. The
+goal is to print to the edge of the page, but not over it.
+
+ The sixth section specifies head offsets for printers that do not
+have the color jets aligned. Certain printers, such as the Stylus Color
+480, have an unusual head arrangement whereby instead of all of the
+colors being aligned vertically, the nozzles are configured in groups.
+These printers are easy to determine; if the normal head offset of zero
+for each color is used, the printing will be vertically out of
+alignment. Most of these printers require specification of a negative
+offset for printing to the top edge of the paper; typically these
+printers do not require such an offset when printing black only.
+
+ The seventh section specifies the most difficult values to tune, the
+dot sizes, printing densities, and ink values (for variable dot size
+enabled printers). These will be described in detail below.
+
+ The last section specifies luminosity, hue, and saturation adjustment
+vectors for the printer, and the paper definitions. These are used to
+adjust the color in Photograph and Solid Colors output modes. These are
+each vectors of 48 (actually 49, as the first value must be duplicated)
+doubles that remap the luminosity, hue, and saturation respectively.
+The hue is calculated, and the value used to interpolate between the two
+closest points in each vector.
+
+ The paper definitions is a set of paper definitions. The paper
+definition contains the name of the paper type, special settings that
+are required for printers to process the paper correctly, and a set of
+adjustment values. These are not currently discussed here.
+
+ The lists of dot sizes and densities contain values for 13 printing
+modes: 120/180 DPI using printer weaving (single row; referred to as
+"interleave") and "soft" weaving (the driver determines the exact
+pattern of dot layout), 360 DPI interleave and softweave, 720x360 DPI
+interleave and softweave, 720 DPI interleave and softweave, 1440x720
+interleave and softweave, 2880x720 interleave and softweave, and
+2880x1440 softweave only.
+
+ For the dot sizes, the value for each element in the vector selects
+the dot size to be used when printing at this (or similar) resolution.
+The dot sizes are determined by consulting the programming manual for
+the printer and experimenting as described below. Current Epson
+printers always use dot sizes less than `16', or `0x10', to indicate
+single dot size (each dot is represented by 1 bit, and it's either
+printed or not), and dot sizes of `16' or greater to indicate variable
+dot size (each dot is represented by 2 bits, and it can either be not
+printed or take on 2 or 3 values, representing the relative size of the
+printed dot). Variable dot sizes permit the use of very small dots
+(which would be too small to fill the page and produce solid black) in
+light areas, while allowing the page to be filled with larger dots in
+darker areas.
+
+ Even single dot size printers can usually produce dots of different
+sizes; it's just illegal to actually try to switch dot size during a
+page. These dots are also much bigger than those used in true variable
+dot size printing.
+
+ A dot size of `-1' indicates that this resolution is illegal for the
+printer in question. Any resolutions that would use this dot size will
+not be presented to the user. A dot size of `-2' indicates that this
+resolution is legal, but that the driver is not to attempt to set any
+dot size. Some very old printers do not support the command to set the
+dot size.
+
+ Most printers support a dot size of `0' as a mode-specific default,
+but it's often a bigger dot than necessary. Printers usually also
+support some dot sizes between `1' and `3'. Usually `1' is the right
+dot size for 720 and 1440 dpi printing, and `3' works best at 360 dpi.
+
+ Variable dot size printers usually support 2 or 3 sets of variable
+dot sizes. Older printers based on a 6 picolitre drop (the 480, 720,
+740, 750, 900, and 1200) support two: mode 16 (0x10 in hexadecimal) for
+normal variable dots at 1440 or 720 dpi, and mode 17 (0x10) for special
+larger dots at 360 dpi. Newer printers based on 4 picolitre drops
+normally support three sizes: `0x10' for 4 pl base drops, `0x11' for 6
+pl base drops, and `0x12' for special large drops. On these printers,
+`0x10' usually works best at 1440x720 and `0x11' works best at 720x720.
+Unfortunately, `0x10' doesn't seem to generate quite enough density at
+720x720, because if it did the output would be very smooth. Perhaps
+it's possible to tweak things....
+
+ The list of densities is a list of base density values for all of the
+above listed modes. "Density" refers to the amount of ink deposited
+when a solid color (or solid black) is printed. So if the density is
+`.5', solid black actually prints only half the possible dots. "Base
+density" refers to the fact that the density value can be scaled in the
+GUI or on the Ghostscript command line. The density value specified
+(which is not made visible to the user) is multiplied by the base
+density to obtain the effective density value. All other things (such
+as ink drop size) remaining the same, doubling the resolution requires
+halving the base density. The base density in the density vector may
+exceed `1', as many paper types require lower density than the base
+driver. The driver ensures that the actual density never exceeds 1.
+
+ Tuning the density should be done on high quality paper (usually
+glossy photo paper). The goal is to find the lowest density value that
+results in solid black (no visible gaps under a fairly high power
+magnifying glass or loupe). If an appropriate density value is found
+for 720 DPI, it could be divided by 2 for 1440x720, by 4 for 2880x720,
+and by 8 for 2880x1440.
+
+ However, for printers that offer a choice of dot size, this may not
+be the best strategy. The best choice for dot size is the smallest dot
+size that allows choosing a density value not greater than 1 that gives
+full coverage. This dot size may be different for different
+resolutions. Tuning variable dot size printers is more complicated;
+the process is described below.
+
+ The last member is a pointer to a structure containing a list of ink
+values for variable dot size (or 6 color) inks. We model variable dot
+size inks as producing a certain "value" of ink for each available dot
+size, where the largest dot size has a value of 1. 6-color inks are
+handled similarly; the light cyan and light magenta inks are treated as
+a fractional ink value. The combination of variable dot size and 6
+color inks, of course, just creates that many more different ink
+choices.
+
+ This structure is actually rather complicated; it contains entries
+for each combination of physical printer resolution (180, 360, 720, and
+1440 dpi), ink colors (4, 6, and 7), and single and variable dot sizes
+(since some printer modes can't handle variable dot size inks). Since
+there's so much data, it's actually a somewhat deeply nested structure:
+
+ An `escp2_printer_t' contains a pointer (essentially, a reference
+rather than a copy) to an `escp2_variable_inklist_t'.
+
+ An `escp2_variable_inklist_t' contains pointers to
+`escp2_variable_inkset_t' structures. There is one such pointer for
+each combination of resolution, dot type, and ink colors as described
+above. Yes, this is rather inflexible.
+
+ An `escp2_variable_inkset_t' contains pointers to
+`escp2_variable_ink_t' structures. There is one such pointer for each
+of the four colors (C, M, Y, and K).
+
+ An `escp2_variable_ink_t' contains a pointer to the actual list of
+ink values (`simple_dither_range_t'), the number of ink values, and a
+density value to be used for computing the transitions. This density
+value is actually a scaling value; it is multiplied by the effective
+density to compute the density to be used for computing the transitions.
+Normally, this value is `1', but in some cases it may be possible to
+get smoother results with a different value (in particular, the single
+dot size 6-color inks work best with the effective density scaled to
+`.75' for this purpose). A lower density lowers the transition points,
+which results in more ink being deposited.
+
+ A `simple_dither_range_t' is a structure containing four values:
+
+ 1. The value of the particular ink
+
+ 2. The bit pattern used to represent the ink
+
+ 3. Whether the ink is light (0) or dark (1), for inks with light and
+ dark variants
+
+ 4. The relative amount of ink actually deposited by this dot (not
+ currently used for much; it can be used for ink reduction
+ purposes, to reduce the amount of ink deposited on the paper).
+
+ These things are interesting as arrays. From an array of
+`simple_dither_range_t''s, the dither code computes transition values
+that it looks up at run time to decide what ink to print, as well as
+whether to print at all.
+
+ *Really* confused now? Yup. You'll probably find it easier to
+simply read the code.
+
+
+File: gimpprint.info, Node: Tuning Epson printers, Next: Canon inkjet printers, Prev: Epson inkjet printers, Up: New Printer
+
+Tuning the printer
+==================
+
+ Now, how do you use all this to tune a printer? There are a number
+of ways to do it; this one is my personal favorite.
+
+ There's a file named `cyan-sweep.tif'. This consists of a thin bar
+of cyan sweeping from white to almost pure cyan, and from pure cyan to
+black. The first thing to do is to pick the appropriate
+`simple_dither_range_t' (or create a whole new
+`escp2_variable_inklist_t') and comment out all but the darkest ink
+(this means you'll be using the largest dots of dark ink). At 8.5"
+width (the width of a letter-size piece of paper), the bar will be 1/8"
+high. Printing it on wider or narrower paper will change the height
+accordingly. Print it width-wise across a piece of photo quality paper
+in line art mode using ordered or adaptive hybrid dither. Do not use
+photographic mode; the colors in photographic mode vary non-linearly
+depending upon the presence of the three color components, while in line
+art mode the colors are much purer. Make sure that all the color
+adjustments are set to defaults (1.0). Use the highest quality version
+of the print mode you're testing to reduce banding and other artifacts.
+This is much easier to do with the Gimp than with Ghostscript.
+
+ At this stage, you want to look for four things:
+
+ 1. The black near the center of the line is solid, but not more so
+ than that.
+
+ 2. The cyan immediately to the left of the black is _almost_ solid.
+
+ 3. The dark cyan at the far right of the page is solid, but not more
+ so. You can try tuning the density so that it isn't quite solid,
+ then nudging up the density until it is.
+
+ 4. Both sweeps sweep smoothly from light to dark. In particular, the
+ dark half of the bar shouldn't visibly change color; it should go
+ smoothly from cyan to black.
+
+ Repeat this stage until you have everything just right. Use the
+positioning entry boxes in the dialog to position each bar exactly 1/8"
+further down the page. Adjacent bars will be touching.
+
+ The next step is to uncomment out the second darkest dot size. If
+you're using variable dots, use the second largest dot size of the dark
+ink rather than the largest dot size of the light ink. This will give
+you two inks.
+
+ When you recompile the plugin, you simply need to copy the new
+executable into the correct place. You do not need to exit and restart
+the Gimp.
+
+ Print another bar adjacent to the first one. Your goal is to match
+the bar using a single dot size as closely as possible. You'll find
+that the dark region of the bar shouldn't change to any great degree,
+but the light half probably will. If the lighter part of the light
+half is too dark, you need to increase the value of the smaller dot; if
+it's too light, you need to decrease the value. The reasoning is that
+if the value is too low, the ink isn't being given enough credit for
+its contribution to the darkness of the ink, and vice versa. Repeat
+until you have a good match. Make sure you let the ink dry fully,
+which will take a few minutes. Wet ink will look too dark. Don't look
+at the paper too closely; hold it at a distance. The extra graininess
+of the largest dot size will probably make it look lighter than it
+should; if you hold it far enough away so that you can't see the dots,
+you'll get a more accurate picture of what's going on.
+
+ After you have what looks like a good match, print another bar using
+only the largest dot size (or dark ink, for single dot size 6-color
+printers). You want to ensure that the bars touching each other look
+identical, or as close as possible to it; your eye won't give you a
+good reading if the bars are separated from each other. You'll
+probably have to repeat the procedure.
+
+ The next step is to comment out all but the largest and third-largest
+dot size, and repeat the procedure. When they match, use all three dot
+sizes of dark ink. Again, the goal is to match the single dot size.
+
+ You'll probably find the match is imperfect. Now you have to figure
+out what region isn't right, which takes some experimentation. Even
+small adjustments can make a noticeable difference in what you see. At
+this stage, it's very important to hold the page far enough from your
+eye; when you use all three dot sizes, the texture will be much more
+even, which sometimes makes it look darker and sometimes lighter.
+
+ After this is calibrated, it's time to calibrate the light ink
+against the dark ink. To do this, comment out all but the large dot
+version of the two inks, and repeat the procedure. This is trickier,
+because the hues of the inks might not be quite identical. Look at the
+dark half of the bar as well as the light half to see that the hue
+really doesn't change as you sweep from cyan to black. Sometimes it's
+easier to judge that way. You may find that it looks blotchy, in which
+case you should switch from ordered dither to adaptive hybrid.
+
+ After you have the light and dark inks calibrated against each other,
+it's time to add everything back in. Usually you don't want to use the
+largest dot size of light ink. These dots will be much larger than the
+small dots of dark ink, but they'll still be lighter. This will cause
+problems when printing mixed colors, since you'll be depositing more
+ink on lighter regions of the page, and you'll probably get strange
+color casts that you can't get rid of in neutral tones. I normally use
+only the smallest one or two dot sizes of light ink.
+
+ After you've tweaked everything, print the color bar with saturation
+set to zero. This will print neutral tones using color inks. Your
+goal here is to look for neutral tonality. If you're using a 6-color
+printer and get a yellow cast, it means that the values for your light
+inks are too high (remember, that means they're getting too much
+credit, so you're not depositing enough cyan and magenta ink, and the
+yellow dominates). If you get a bluish or bluish-purple cast, your
+light inks are too low (you're not giving them enough credit, so too
+much cyan and magenta is deposited, which overwhelms the yellow). Make
+sure you do this on very white, very high grade inkjet paper that's
+designed for 1440x720 dpi or higher; otherwise the ink will spread on
+contact and you'll get values that aren't really true for high grade
+paper. You can, of course, calibrate for low grade paper if that's
+what you're going to use, but that shouldn't be put into the
+distribution.
+
+ You can also fully desaturate this bar inside the Gimp and print it
+as monochrome (don't print the cyan as monochrome; the driver does funny
+things with luminance), for comparison. You'll find it very hard to
+get rid of all color casts.
+
+ There are other ways of tuning printers, but this one works pretty
+well for me.
+
+
+File: gimpprint.info, Node: Canon inkjet printers, Prev: Tuning Epson printers, Up: New Printer
+
+Canon inkjet printers
+=====================
+
+ Basically, a new Canon printer can be added to `print-canon.c' in a
+similar way as described above for the epson inkjet printers. The main
+differences are noted here:
+
+ In general, Canon printers have more "built-in intelligence" than
+Epson printers which results in the fact that the driver only has to
+tell the printing conditions like resolutions, dot sizes, etc. to the
+printer and afterwards transfer the raster data line by line for each
+color used.
+
+ `canon_cap_t' is a C struct defined as follows:
+
+ - Data type: canon_cap_t
+ typedef struct canon_caps {
+ int model; /* model number as used in printers.xml */
+ int max_width; /* maximum printable paper size */
+ int max_height;
+ int base_res; /* base resolution - shall be 150 or 180 */
+ int max_xdpi; /* maximum horizontal resolution */
+ int max_ydpi; /* maximum vertical resolution */
+ int max_quality;
+ int border_left; /* left margin, points */
+ int border_right; /* right margin, points */
+ int border_top; /* absolute top margin, points */
+ int border_bottom; /* absolute bottom margin, points */
+ int inks; /* installable cartridges (CANON_INK_*) */
+ int slots; /* available paperslots */
+ int features; /* special bjl settings */
+ canon_dot_size_t dot_sizes; /* Vector of dot sizes for resolutions */
+ canon_densities_t densities; /* List of densities for each printer */
+ canon_variable_inklist_t *inxs; /* Choices of inks for this printer */
+ } canon_cap_t;
+
+ Since there are Canon printers which print in resolutions of 2^n*150
+dpi (e.g. 300, 600, 1200) and others which support resolutions of
+2^n*180 dpi (e.g. 360, 720, 1440), there's a base resolution (150 or
+180, respectively) given in the `canon_cap_t'. The structs
+`canon_dot_size_t', `canon_densities_t' and `canon_variable_inklist_t'
+refer to resolutions being multiples of the base resolution.
+
+ For the Canon driver, the struct `canon_dot_size_t' holds values for
+a model's capabilities at a given resolution: `-1' if the resolution is
+not supported. `0' if it can be used and `1' if the resolution can be
+used for variable dot size printing.
+
+ In `canon_densities_t' the base densities for each resolution can be
+specified like for an epson printer, the same holds true for
+`canon_variable_inklist_t'. See the descriptions above to learn about
+how to adjust your model's output to yield nice results.
+
+ There's a slight difference though in the way the Canon driver and
+the escp2 driver define their variable inklists: In the Canon driver,
+you need to define an inklist like this:
+
+ static const canon_variable_inklist_t canon_ink_myinks[] =
+ {
+ {
+ 1,4, /* 1bit/pixel, 4 colors */
+ &ci_CMYK_1, &ci_CMYK_1, &ci_CMYK_1,
+ &ci_CMYK_1, &ci_CMYK_1, &ci_CMYK_1,
+ },
+ {
+ 3,4, /* 3bit/pixel, 4 colors */
+ &ci_CMYK_3, &ci_CMYK_3, &ci_CMYK_3,
+ &ci_CMYK_3, &ci_CMYK_3, &ci_CMYK_3,
+ },
+ };
+
+where the `&ci_CMYK_1' and `&ci_CMYK_3' entries are references to a
+previously defined const of type `canon_variable_inkset_t'.
+
+
+File: gimpprint.info, Node: Data Type and Variable Index, Next: Function and Macro Index, Prev: Appendices, Up: Top
+
+Data Type and Variable Index
+****************************
+
+* Menu:
+
+* canon_cap_t: Canon inkjet printers.
+* escp2_printer_t: Epson inkjet printers.
+* gimpprint_binary_age: Version functions.
+* gimpprint_current_interface: Version functions.
+* gimpprint_interface_age: Version functions.
+* gimpprint_major_version: Version functions.
+* gimpprint_micro_version: Version functions.
+* gimpprint_minor_version: Version functions.
+* stp_image_t: Printer functions.
+* stp_option_t: Options functions.
+* stp_outfunc_t: stp_vars_t functions.
+* stp_papersize_t: Paper functions.
+* stp_papersize_unit_t: Paper functions.
+* stp_printer_t: Printer functions.
+* stp_printfuncs_t: Printer functions.
+* stp_vars_t: stp_vars_t functions.
+
+
+File: gimpprint.info, Node: Function and Macro Index, Next: Concept Index, Prev: Data Type and Variable Index, Up: Top
+
+Function and Macro Index
+************************
+
+* Menu:
+
+* * ?? BC=XX Y[1] ... Y[xx]: ESC/P2 Remote Mode Commands.
+* * AC BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * AI BC=3 00 00 00: ESC/P2 Remote Mode Commands.
+* * CH BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * DA BC=4 00 XX 00 YY: ESC/P2 Remote Mode Commands.
+* * DA BC=6 00 XX 00 YY 09 00: ESC/P2 Remote Mode Commands.
+* * DR BC=4 00 xx DT2: ESC/P2 Remote Mode Commands.
+* * DT BC=3 00 XX 00: ESC/P2 Remote Mode Commands.
+* * DU BC=6 00 XX 00 09 00 YY: ESC/P2 Remote Mode Commands.
+* * EX BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
+* * EX BC=6 00 00 00 00 0x05 XX: ESC/P2 Remote Mode Commands.
+* * EX BC=6 00 00 00 00 0x14 XX: ESC/P2 Remote Mode Commands.
+* * FP BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
+* * IK BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * IQ BC=1 01: ESC/P2 Remote Mode Commands.
+* * IR BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * LD BC=0: ESC/P2 Remote Mode Commands.
+* * PH BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * PM BC=2 00 00: ESC/P2 Remote Mode Commands.
+* * PP BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
+* * PZ BC=2 00 xx: ESC/P2 Remote Mode Commands.
+* * RS BC=1 01: ESC/P2 Remote Mode Commands.
+* * SM BC=1 01: ESC/P2 Remote Mode Commands.
+* * SM BC=2 00 02: ESC/P2 Remote Mode Commands.
+* * SM BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * SN BC=3 00 XX YY: ESC/P2 Remote Mode Commands.
+* * ST BC=1 01: ESC/P2 Remote Mode Commands.
+* * ST BC=2 00 XX: ESC/P2 Remote Mode Commands.
+* * SV BC=0: ESC/P2 Remote Mode Commands.
+* </printer>: printers.xml.
+* <color>: printers.xml.
+* <language value=TYPE>: printers.xml.
+* <model value=INT>: printers.xml.
+* <nocolor>: printers.xml.
+* <printer name="LONGNAME" driver="DRIVERNAME">: printers.xml.
+* AM_PATH_GIMPPRINT: autoconf.
+* ESC $ OFFSET2: ESC/P2 Standard Commands.
+* ESC ($ BC=4 OFFSET4: ESC/P2 Standard Commands.
+* ESC (/ BC=4 OFFSET4: ESC/P2 Standard Commands.
+* ESC (\ BC=4 UNITS2 OFFSET2: ESC/P2 Standard Commands.
+* ESC (C BC=2 PAGELENGTH2: ESC/P2 Standard Commands.
+* ESC (C BC=4 PAGELENGTH4: ESC/P2 Standard Commands.
+* ESC (c BC=4 TOP2 LENGTH2: ESC/P2 Standard Commands.
+* ESC (c BC=8 TOP4 LENGTH4: ESC/P2 Standard Commands.
+* ESC (D BC=4 BASE2 VERTICAL1 HORIZONTAL1: ESC/P2 Standard Commands.
+* ESC (e BC=2 ZERO1 DOTSIZE1: ESC/P2 Standard Commands.
+* ESC (G BC=1 ON1: ESC/P2 Standard Commands.
+* ESC (i BC=1 MICROWEAVE1: ESC/P2 Standard Commands.
+* ESC (K BC=2 ZERO1 GRAYMODE1: ESC/P2 Standard Commands.
+* ESC (r BC=2 DENSITY1 COLOR1: ESC/P2 Standard Commands.
+* ESC (R BC=8 00 R E M O T E 1: ESC/P2 Standard Commands.
+* ESC (s BC=1 SPEED1: ESC/P2 Standard Commands.
+* ESC (S BC=8 WIDTH4 LENGTH4: ESC/P2 Standard Commands.
+* ESC (U BC=1 UNIT1: ESC/P2 Standard Commands.
+* ESC (U BC=5 PAGEUNITS1 VUNIT1 HUNIT1 BASEUNIT2: ESC/P2 Standard Commands.
+* ESC (V BC=2 ADVANCE2: ESC/P2 Standard Commands.
+* ESC (v BC=2 ADVANCE2: ESC/P2 Standard Commands.
+* ESC (V BC=4 ADVANCE4: ESC/P2 Standard Commands.
+* ESC (v BC=4 ADVANCE4: ESC/P2 Standard Commands.
+* ESC . COMPRESS1 VSEP1 HSEP1 LINES1 WIDTH2 DATA...: ESC/P2 Standard Commands.
+* ESC 01 @EJL [sp] ID\r\n: ESC/P2 Standard Commands.
+* ESC @: ESC/P2 Standard Commands.
+* ESC \ OFFSET2: ESC/P2 Standard Commands.
+* ESC i COLOR1 COMPRESS1 BITS1 BYTES2 LINES2 DATA...: ESC/P2 Standard Commands.
+* ESC r COLOR1: ESC/P2 Standard Commands.
+* ESC U DIRECTION1: ESC/P2 Standard Commands.
+* GIMPPRINT_BINARY_AGE: Version functions.
+* GIMPPRINT_CHECK_VERSION: Version functions.
+* GIMPPRINT_CURRENT_INTERFACE: Version functions.
+* GIMPPRINT_INTERFACE_AGE: Version functions.
+* GIMPPRINT_MAJOR_VERSION: Version functions.
+* GIMPPRINT_MICRO_VERSION: Version functions.
+* GIMPPRINT_MINOR_VERSION: Version functions.
+* NC BC=2 00 00: ESC/P2 Remote Mode Commands.
+* stp_allocate_copy: stp_vars_t functions.
+* stp_allocate_lut: stp_vars_t functions.
+* stp_allocate_vars: stp_vars_t functions.
+* stp_check_version: Version functions.
+* stp_choose_colorfunc: Settings functions.
+* stp_clear_all_options: Options functions.
+* stp_clear_option: Options functions.
+* stp_compute_lut: stp_vars_t functions.
+* stp_compute_page_parameters: Settings functions.
+* stp_copy_vars: stp_vars_t functions.
+* stp_default_dither_algorithm: Dither functions.
+* stp_default_settings: Settings functions.
+* stp_dither_algorithm_count: Dither functions.
+* stp_dither_algorithm_name: Dither functions.
+* stp_free_lut: stp_vars_t functions.
+* stp_free_vars: stp_vars_t functions.
+* stp_get_app_gamma: stp_vars_t functions.
+* stp_get_brightness: stp_vars_t functions.
+* stp_get_cmap: stp_vars_t functions.
+* stp_get_contrast: stp_vars_t functions.
+* stp_get_cyan: stp_vars_t functions.
+* stp_get_density: stp_vars_t functions.
+* stp_get_dither_algorithm: stp_vars_t functions.
+* stp_get_driver: stp_vars_t functions.
+* stp_get_errdata: stp_vars_t functions.
+* stp_get_errfunc: stp_vars_t functions.
+* stp_get_gamma: stp_vars_t functions.
+* stp_get_image_type: stp_vars_t functions.
+* stp_get_ink_type: stp_vars_t functions.
+* stp_get_input_color_model: stp_vars_t functions.
+* stp_get_left: stp_vars_t functions.
+* stp_get_lut: stp_vars_t functions.
+* stp_get_magenta: stp_vars_t functions.
+* stp_get_media_size: stp_vars_t functions.
+* stp_get_media_source: stp_vars_t functions.
+* stp_get_media_type: stp_vars_t functions.
+* stp_get_option_by_index: Options functions.
+* stp_get_option_by_name: Options functions.
+* stp_get_orientation: stp_vars_t functions.
+* stp_get_outdata: stp_vars_t functions.
+* stp_get_outfunc: stp_vars_t functions.
+* stp_get_output_color_model: stp_vars_t functions.
+* stp_get_output_to: stp_vars_t functions.
+* stp_get_output_type: stp_vars_t functions.
+* stp_get_page_height: stp_vars_t functions.
+* stp_get_page_width: stp_vars_t functions.
+* stp_get_papersize_by_index: Paper functions.
+* stp_get_papersize_by_name: Paper functions.
+* stp_get_papersize_by_size: Paper functions.
+* stp_get_ppd_file: stp_vars_t functions.
+* stp_get_printer_by_driver: Printer functions.
+* stp_get_printer_by_index: Printer functions.
+* stp_get_printer_by_long_name: Printer functions.
+* stp_get_printer_index_by_driver: Printer functions.
+* stp_get_resolution: stp_vars_t functions.
+* stp_get_saturation: stp_vars_t functions.
+* stp_get_scaling: stp_vars_t functions.
+* stp_get_top: stp_vars_t functions.
+* stp_get_unit: stp_vars_t functions.
+* stp_get_yellow: stp_vars_t functions.
+* stp_init: Main functions.
+* stp_known_papersizes: Paper functions.
+* stp_known_printers: Printer functions.
+* stp_malloc: Main functions.
+* stp_maximum_settings: Settings functions.
+* stp_merge_printvars: stp_vars_t functions.
+* stp_minimum_settings: Settings functions.
+* stp_option_count: Options functions.
+* stp_option_data: Options functions.
+* stp_option_length: Options functions.
+* stp_option_name: Options functions.
+* stp_papersize_get_bottom: Paper functions.
+* stp_papersize_get_height: Paper functions.
+* stp_papersize_get_left: Paper functions.
+* stp_papersize_get_name: Paper functions.
+* stp_papersize_get_right: Paper functions.
+* stp_papersize_get_top: Paper functions.
+* stp_papersize_get_unit: Paper functions.
+* stp_papersize_get_width: Paper functions.
+* stp_printer_get_driver: Printer functions.
+* stp_printer_get_long_name: Printer functions.
+* stp_printer_get_model: Printer functions.
+* stp_printer_get_printfuncs: Printer functions.
+* stp_printer_get_printvars: Printer functions.
+* stp_set_app_gamma: stp_vars_t functions.
+* stp_set_brightness: stp_vars_t functions.
+* stp_set_cmap: stp_vars_t functions.
+* stp_set_contrast: stp_vars_t functions.
+* stp_set_cyan: stp_vars_t functions.
+* stp_set_density: stp_vars_t functions.
+* stp_set_dither_algorithm: stp_vars_t functions.
+* stp_set_dither_algorithm_n: stp_vars_t functions.
+* stp_set_driver: stp_vars_t functions.
+* stp_set_driver_n: stp_vars_t functions.
+* stp_set_errdata: stp_vars_t functions.
+* stp_set_errfunc: stp_vars_t functions.
+* stp_set_gamma: stp_vars_t functions.
+* stp_set_image_type: stp_vars_t functions.
+* stp_set_ink_type: stp_vars_t functions.
+* stp_set_ink_type_n: stp_vars_t functions.
+* stp_set_input_color_model: stp_vars_t functions.
+* stp_set_left: stp_vars_t functions.
+* stp_set_lut: stp_vars_t functions.
+* stp_set_magenta: stp_vars_t functions.
+* stp_set_media_size: stp_vars_t functions.
+* stp_set_media_size_n: stp_vars_t functions.
+* stp_set_media_source: stp_vars_t functions.
+* stp_set_media_source_n: stp_vars_t functions.
+* stp_set_media_type: stp_vars_t functions.
+* stp_set_media_type_n: stp_vars_t functions.
+* stp_set_option: Options functions.
+* stp_set_orientation: stp_vars_t functions.
+* stp_set_outdata: stp_vars_t functions.
+* stp_set_outfunc: stp_vars_t functions.
+* stp_set_output_color_model: stp_vars_t functions.
+* stp_set_output_to: stp_vars_t functions.
+* stp_set_output_to_n: stp_vars_t functions.
+* stp_set_output_type: stp_vars_t functions.
+* stp_set_page_height: stp_vars_t functions.
+* stp_set_page_width: stp_vars_t functions.
+* stp_set_ppd_file: stp_vars_t functions.
+* stp_set_ppd_file_n: stp_vars_t functions.
+* stp_set_resolution: stp_vars_t functions.
+* stp_set_resolution_n: stp_vars_t functions.
+* stp_set_saturation: stp_vars_t functions.
+* stp_set_scaling: stp_vars_t functions.
+* stp_set_top: stp_vars_t functions.
+* stp_set_unit: stp_vars_t functions.
+* stp_set_yellow: stp_vars_t functions.
+* VI BC=2 00 00: ESC/P2 Remote Mode Commands.
+
+
+File: gimpprint.info, Node: Concept Index, Prev: Function and Macro Index, Up: Top
+
+Concept Index
+*************
+
+* Menu:
+
+* adding a printer: New Printer.
+* Appendices: Appendices.
+* autoconf: autoconf.
+* automake: automake.
+* bugs: Problems.
+* collisions: Weaving collisions.
+* CUPS driver: CUPS.
+* dither functions: Dither functions.
+* dithering: Dithering.
+* driver file: Driver file.
+* Epson inkjet printers: Epson inkjet printers.
+* ESC/P2: ESC/P2.
+* ESC/P2 introduction: ESC/P2 Introduction.
+* functions: Functions.
+* ghostscript driver: Ghostscript.
+* GIMP Print plugin: The GIMP plugin.
+* gimpprint-config: gimpprint-config.
+* how to read: Instructions.
+* initialising libgimpprint: Main functions.
+* integrating: Integrating libgimpprint.
+* m4 macros: autoconf.
+* main functions: Main functions.
+* make: make.
+* manual, how to read: Instructions.
+* memory allocation: Main functions.
+* new printer: New Printer.
+* options functions: Options functions.
+* oversampling: Oversampling.
+* overview: Overview.
+* paper functions: Paper functions.
+* perfect weave <1>: What is perfect weaving?.
+* perfect weave: Perfect weaving.
+* Print plugin: The GIMP plugin.
+* printer functions: Printer functions.
+* printer, adding: New Printer.
+* printer, tuning: Tuning Epson printers.
+* problems: Problems.
+* programs: Programs.
+* reading: Instructions.
+* settings functions: Settings functions.
+* stp_vars_t functions: stp_vars_t functions.
+* tuning the printer: Tuning Epson printers.
+* using: Using libgimpprint.
+* version functions: Version functions.
+* weaving: Weaving.
+* weaving algorithms: Weaving algorithms.
+* weaving collisions: Weaving collisions.
+
+
diff --git a/doc/gimpprint.ps b/doc/gimpprint.ps
new file mode 100644
index 0000000..060cee9
--- /dev/null
+++ b/doc/gimpprint.ps
@@ -0,0 +1,11226 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
+%%Title: gimpprint.dvi
+%%Pages: 94
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: /usr/bin/dvips gimpprint.dvi -o gimpprint.ps
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.06.11:2047
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
+begin/SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
+CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
+/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
+repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
+
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 600 600 (gimpprint.dvi)
+@start
+%DVIPSBitmapFont: Fa cmsl9 9 41
+/Fa 41 122 df<123C127E12FFA312FEA212380808798715>46 D<1406141E143EEB01FE
+131FEA01FF495AEA03E0C7FCA313015CA513035CA513075CA5130F5CA5131F5CA5133F91
+C7FCA4EBFF80B61280A21500193279B126>49 D<EC3FC0ECFFF0010313FC90380F80FE90
+381E007F0138EB3F804914C049131F16E0485A01F0130FEA03FCA3151FA25BD800E014C0
+90C7123FA2ED7F8016005D5D4A5A4A5A4A5A5D4A5A4A5A023EC7FC5C5C495AEB03C0495A
+49C8FC011E13065B01705B5B485A48485B000FC7123848B512F8485C5AB6FC5DA223327C
+B126>I<15035D5D5D5D5D157E15FE14011403EC077E140EEC0CFC14181430146014E0EB
+01C0EC81F8EB03011306130C131C133849485A136013C0EA01801203EA0700000E495A12
+0C5A5A5A007FB612C0B71280A2C7380FC000A3141FA25DA4143F90381FFFFEA322337CB2
+26>52 D<1670A216F0A21501821503A21507150F82151D15191531A2ED61FE156015C0A2
+EC0180A24A487E821406A25C834A133FA25C147002608002E0131F5C49B6FCA2498191C7
+120F1306A25BA2498116075BA25B01E081160300031507D80FF84A7EB549B512F05BA234
+367DB53A>65 D<90B7FC17E017F8903A03FC0003FE0101EC00FFEF7F800103153F4A15C0
+171FA413075C173FA21880EF7F00010F5D4A495AEE03F84C5AEE1FC091B6C7FC495C9139
+C0007FC0EE0FE0EE03F8707E83013F14004A8083A4137F91C85AA34C5AA2494A5A494A5A
+4C5A4C5AEE7FC000014A485AB748C7FC16F816C032337DB236>I<DB3FE01360912601FF
+FC13E0020FEBFF01913A3FF00F83C09139FF0003C7D903FCEB00EF4948147FD90FE0143F
+495A4948EC1F8049C8FC01FE150F485A00031607485A491600120F5B121FA2485A170648
+4892C7FCA412FF90CBFCA71718A317386C16301770A26C6C5DA26D4A5A001F4B5A6C7E4C
+C7FC6C6C141E6C6C5CD801FE5CD8007FEB01E090393FE00FC0010FB5C8FC010313FC9038
+003FE0333778B437>I<90B77E17F017FC903A03FC0003FE0101EC007FEF3FC00103150F
+4AEC07E018F0EF03F8170118FC13074A140018FEA4130F4A15FFA418FE131F4A1401A418
+FC013F15035C18F8A2EF07F0A2017FED0FE091C8FCEF1FC01880EF3F005F4915FE494A5A
+EE07F04C5AEE3FC000014AB4C7FCB712FC16F093C8FC38337DB23B>I<90B812C0A3D903
+FCC7127F0101150F1707010315034A1401A4170013075C1618A31638010F023013005C16
+7016F0150391B5FC495CA2ECC00715011500A2013F5C4AEC0180A3EF03001600017F5D91
+C81206A2170E170C171C49153C4915381778EE01F8EE07F00001153FB8FC5FA232337DB2
+34>I<90B81280A3D903FCC7FC0101151F170F010315074A1403A4170113075CA21630A3
+010F4AC7FC5CA216E01501150749B55AA3ECC00F15031501013F5C1480A5017F90C9FC91
+CAFCA55B5BA4487EB6FCA25C31337DB232>I<DB3FE01360912601FFFC13E0020FEBFF01
+913A3FF00F83C09139FF0003C7D903FCEB00EF4948147FD90FE0143F495A4948EC1F8049
+C8FC01FE150F485A00031607485A491600120F5B121FA2485A1706484892C7FCA412FF90
+CBFCA50307B512E018C0A292390007FC00705A16077E5FA26C7EA26D140F121F6C6C5D6D
+141F1207D803FC143F6C6C14733A007F8001E3903A3FF00FC1C0010FB51200010301FC90
+C7FC9038003FE0333778B43C>I<90B5D8FC03B512F0A3D903FEC7380FF8006D486E5A17
+0F13034A5DA4171F13074A5DA4173F130F4A5DA491B7FC5B95C7FC02C0C77EA35F133F4A
+5CA41601137F91C75BA416035B495DA400011507B5D8FC03B512F0A33C337DB23A>I<90
+387FFFFE90B5FCA2010113006D5AA213015CA513035CA513075CA5130F5CA5131F5CA513
+3F5CA5137F91C7FCA4497E007F13FEB5FCA21F337EB21C>I<90B6FCA25DD903FEC8FC6D
+5AA213035CA513075CA5130F5CA5131F5CA5133F4A1430A31760A2137F91C812E017C016
+01A21603491580491407160FEE3F0016FF00011407B8FC5EA22C337DB230>76
+D<D9FFFC923801FFFC80600103EFFE000101EE06FC02BF150D1303023FED19F8A26E6C14
+31A2186313070106EEC3F06E7EEF0183EF03031807010E150690260C07E05D170CA21718
+6E6C140F011C1530011803605BA217C06E7E933801801F13380130DA03005BEC00FC1606
+A24C133F01705C0160017E92C7FC5EA25E6001E06D5A49167E5E12016D6DC7FCD80FF801
+1E14FEB5008091387FFFFC151C150C46337CB246>I<D9FFFE91381FFFF0A28001019238
+01FE006FEB00F802BF157001037F021F1560816E7EA26E6C14E0130790260603FC5CA26E
+7E14006F1301010E7F010C02805BED3FC0A2ED1FE01703011CEB0FF0011893C7FCED07F8
+150316FC6F6C5A13380130903800FF06A2EE7F86A2EE3FCE13700160EC1FEC160F17FC16
+07A201E01403495D16011201486C1400D80FF81578B57E1730A23C337DB23A>I<ED7FE0
+913803FFFC91381FC03F91397E000FC002F8EB03E0D903F0EB01F849486D7E4948147E49
+5A49C87E017E168049151F484816C012034848150F18E0485AA2485AA2003F17F0A25B12
+7FA348C9EA1FE0A5EF3FC0A3EF7F80A218005F5F6C15015F4C5A6C7E4C5A6C6C4A5A5F6C
+6C4A5A00074BC7FC6C6C147E6C6CEB01F86C6C495A017FEB0FC090261FC07FC8FC903807
+FFFC010013C0343778B43C>I<90B612FEEEFFC017F0903A03FC0007FC0101EC01FEEE00
+7F0103ED3F805C18C0A2171F173F13075CA31880177F010F16005C17FE4C5A4C5AEE0FE0
+011FEC7FC091B6C7FC16F802C0C9FCA3133F5CA5137F91CAFCA55B5BA41201B512FCA332
+337DB234>I<90B612F8EEFF8017E0903A03FC000FF00101EC03FCEE00FE0103814A8018
+80A2173F177F13075CA318005F010F5D4A495A4C5AEE07E0EE1FC004FFC7FC49B512F816
+E09138C001F86F7E167E82013F814A131FA283A3017F143F91C7FCA549147F49160CA304
+3F131C00011718B500FC011F1338EFE070040713E0C93803FFC09338007F0036357DB239
+>82 D<91390FF0018091387FFE0349B51207903A07F00FCF0090390FC001FF49C7FC013E
+804980A249141E5B0001150EA31203160CA27F93C7FC7F6C7E6D7E14F86CEBFF806D13F8
+15FE011F7F6D80010380D9003F7F14039138003FF0150F1507A21503820018140100385D
+1230A400384A5A12784B5A127C007E4A5A007F4AC7FC6D133ED8FBC05B39F1FC03F839F0
+7FFFE0D8E01F138026C003FEC8FC29377CB42B>I<001FB81280A3903AE003FC007FD900
+01140F003E1607003C130300384A13031230007017001260A214075D5AA4C7000F91C7FC
+5DA5141F5DA5143F5DA5147F92C9FCA55C5CA4EB03FF0007B67EA3313377B237>I<B500
+FC90381FFFF0A3D803FEC73801FE006C48EC00F817701203491560A417E01207495DA416
+01120F495DA41603121F4992C7FCA45E123F491406A4160E160C90C8FC161C16186D1438
+16301670001F5D6D495A000F14036C6C495A6D49C8FC6C6C133C3900FE01F890387FFFE0
+011F1380D903FCC9FC343575B23A>I<B500F0903801FFFCA25ED807FEC8EA7FC06C48ED
+3E00171C00011618173817306D5D12005FA26D4A5AA26D4AC7FC5E16066E5B133F5EA26E
+5BA2011F5C16E05E6E485A130F4BC8FCA2ECF006A201075B151C15186E5A13035DA26E5A
+1301ECFD8014FF92C9FC5C13005CA25C147814701460363576B23A>I<B5D8F00FB59038
+1FFFE0A214E0D807FCC7D87FE0903803FE0049DA3F80EB00F80003611A6062836D021F4A
+5A1201043F4AC7FCA2047F14068304CF5C6C7EDB018F5CA2DB030F5C83DB06075C137F03
+0C5DA20318140105F85BDB30031303028093C8FC013F01605C180603C0140EEFFC0C9126
+818001131C02C1151890261FC3001438183002C61570186002CC903800FEE002EC5DD90F
+F814FF605C95C9FC4A80177E6D5A177C5C177891C8FC6D15304B3576B24F>I<B500F8EC
+FFFEA300030180EC3FE06C90C8EA1F006C161E171C6D6C5C5F6D6C14605F6D6C495A1603
+6D6C49C7FC16065E6D6C5B16386D6C5B16606D6C5B4B5A903800FF034BC8FCEC7F86158C
+EC3FD815F85D6E5A5DA55D143FA592C9FC5CA55C017F13FEA25D373377B23A>89
+D<013FB612FCA39139F80007F802C0EB0FF049C7FC017CEC1FE00178EC3FC00170EC7F80
+01F0ECFF005B4B5A49495A4B5A4848495A4B5AA24B5AC8485A4BC7FC4A5AA24A5A4A5A4A
+5A4A5A4A5AA24A5A4AC8FC495A4948EB0180A2495A495A4948EB0300495A495A5E49C712
+064848140E485A4848141E163E48485C484814FC484813034848131FB7FC5EA22E337CB2
+2F>I<EB07FCEB3FFF9038F80FC03901C003E0D803F07F6D6C7EA248486C7E12035BC8FC
+A21401A2EC7FF8EB07FFEB3FE1EBFF013803F803EA0FF0D81FE05BEA3FC01380007F1560
+EB000748ECE0C05A140FA2141F007F90383BE180EC73E33A1F81E1FF00390FFF81FE3901
+FE007823237CA126>97 D<167EED1FFE16FC153F1501A416F8A41503A216F0A4150714FE
+903907FFC7E090381F81E790387E007749133F4848131F4848130F484814C0120F485AA2
+4848131FA2007F158090C7FCA3153F5A481500A3127E5DA2157E6C14FE14016C13036C6C
+487E2607C00E13F03803E07C3800FFF090393F80FC0027357BB32B>100
+D<EB03FCEB0FFF90383E0FC09038FC03E0D801F813F03803F001D807E013F8380FC00012
+1F5B123F48C7FCA312FEB6FCA248C8FCA35AA51560127E15E0003EEB01C0003FEB03806C
+EB0700380F800E3807E07C3801FFF038003F801D237BA122>I<163C91387F01FF903901
+FFE3CF903907C1FF0F90391F80FC1F90393F007C0E017EEB3E005B153F485AA35D157E5B
+A25D6D5B0000495A90387C03E09038FE0FC02601CFFFC7FC380383F80180C8FCA21207A3
+7F90B57E6C14F015FC6C804880380F800048C7EA3F80003E141F48140F12FC5AA3151F16
+006C143E007C5C6C5C6CEB03F03907E01FC00001B5C7FC38003FF028337FA126>103
+D<EB0380EB0FC0EB1FE0A314C0A2EB070090C7FCAA131FEA07FFA3C67EA3137EA513FE5B
+A512015BA512035BA41207B5FCA313337EB215>105 D<EB03F013FF14E0A2130FA21307
+130F14C0A5131F1480A5133F1400A55B137EA513FE5BA512015BA512035BA41207B51280
+A2140014347EB315>108 D<90260F80FFEB07F82603FF839038C01FFE48903A8F03E078
+1F913B9C01F0E00F8026007FB8D9F9C013C0D93FF0EBFB8002E0EBFF0002C05B02805BA2
+02005BA2490103141F017E4A1480A501FE0107143F494A1400A50001020F5C494A137EA4
+0003021F14FE3D7FFFC3FFFE1FFFF0A2B500C75C3C217EA041>I<90380F80FE3A03FF83
+FF804890388F07E0EC9C0326007FB813F0EB3FF014E014C01480A2140015075B017E14E0
+A4150F13FE4914C0A4151F1201491480A40003143F3A7FFFC7FFFCA2B5FC26217EA02B>
+I<14FF010713C090381F81F090383E00F80178133C4848133E48487FA248481480120F48
+48130FED1FC0123F90C7FCA25AA400FEEC3F80A31600007E5C157EA25D003E5C003F495A
+6C495A6C6C485A6C6C485A2603F03EC7FC3800FFF8EB3FC022237CA126>I<903803E07F
+9039FFE1FFC0489038E781F09138FE00FC26001FF8137E6D5A4A7F17805C161F17C0A213
+1F5CA4163F013F158091C7FCA2167F17005E495C017E495A5E017F13034B5A9039FF800F
+C06E485A9026FCE07EC7FCEC7FF8EC1FC091C9FC1201A25BA41203A25B487EB512C05CA2
+2A3080A02B>I<90383E03E03907FE1FF8143C000FEB71FC38007EE1EB7FC1EC81F815F0
+91C7FCA2137EA213FE5BA512015BA512035BA41207B512C0A31E217EA01E>114
+D<13065BA4131CA25BA2137813F812011203485A381FFFFEB5FCA23803F000A212075BA5
+120F5BA5121FEB8018A41438003F13301300A214706C1360EB80E0380F81C0EBC3803803
+FF00EA00FC172F7AAD1E>116 D<3A7FFF803FFCA2B538007FF8D807F8EB1FC06C48EB0F
+00150E150C7F00015C153815306D5B12005D140101FE5BD97E03C7FCA21406137F6D5A14
+1C141814B0131F14E0A25C130F5C91C8FCA2130626217A9F29>118
+D<3B03FFFC0FFFC014F85A3B003FE007F800010FEB03E0ED0780010791C7FC903803F00E
+6E5A01015B6E5A01005BEC7FC05D6EC8FC81141F4A7E4A7E14E7903801C7F0EB03839038
+0701F8010E7FEB1C00497F0178137ED801F8137F00074A7E267FFC0113FC00FF5BA22A20
+7F9F29>120 D<90B5EB7FF8A248EDFFF026000FF0EB3F806D48EB1E00161C6E13180103
+143816305E8001015C15015E6E48C7FC13001506150EECFE0CEC7E18A25D147F6E5A15E0
+5D5D141F92C8FCA2140E140CA25C143814305CA25CEA3C01007C5BD8FC03C9FC5B130EEA
+701CEA7878EA3FE0EA0F802D30819F29>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmti9 9 1
+/Fb 1 47 df<121C127F12FFA412FE12380808778718>46 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmmi10 10.95 40
+/Fc 40 123 df<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113
+80120313005A120E5A1218123812300B1C798919>59 D<183818FC1703EF0FF8EF3FE0EF
+FF80933803FE00EE0FF8EE3FE0EEFF80DB03FEC7FCED0FF8ED3FE0EDFF80DA03FEC8FCEC
+0FF8EC3FE0ECFF80D903FEC9FCEB0FF8EB3FE0EBFF80D803FECAFCEA0FF8EA3FE0EA7F80
+00FECBFCA2EA7F80EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB0FF8EB03FE903800FF80EC3F
+E0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE923800FF80EE3FE0EE0FF8EE03FE93
+3800FF80EF3FE0EF0FF8EF03FC17001838363678B147>I<ED0180ED03C01507A2168015
+0FA216005DA2151E153EA2153C157CA2157815F8A25D1401A25D1403A25D1407A25D140F
+A24AC7FCA2141E143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A25C130FA2
+91C8FC5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B1207A25B120FA290C9FC
+5AA2121E123EA2123C127CA2127812F8A25A1260225B7BC32D>I<126012F8B4FCEA7FC0
+EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01FF9038007FC0EC1FF0EC07FCEC01FF
+9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE01FF9338007FC0EF1FF0
+EF07F8EF01FCA2EF07F8EF1FF0EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07
+FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CA
+FCEA07FCEA1FF0EA7FC048CBFC12FC1270363678B147>I<17075F84171FA2173F177FA2
+17FFA25E5EA24C6C7EA2EE0E3F161E161C1638A21670A216E0ED01C084ED0380171FED07
+005D150E5DA25D157815705D844A5A170F4A5A4AC7FC92B6FC5CA2021CC7120F143C1438
+4A81A24A140713015C495AA249C8FC5B130E131E4982137C13FED807FFED1FFEB500F001
+07B512FCA219F83E417DC044>65 D<49B712F818FF19E090260001FEC7EA3FF0F007F84B
+6E7E727E850203815D1A80A20207167F4B15FFA3020F17004B5C611803021F5E4B4A5A18
+0FF01FE0023F4B5A4B4A5ADD01FEC7FCEF07F8027FEC7FE092B6C8FC18E092C7EA07F84A
+EC01FE4A6E7E727E727E13014A82181FA213034A82A301075F4A153FA261010F167F4A5E
+18FF4D90C7FC011F5E4A14034D5A013FED1FF04D5A4AECFFC0017F020790C8FCB812FC17
+F094C9FC413E7DBD45>I<DC1FF81307923801FFFE030F9038FF800E923A7FF007E01E4A
+48C7EAF03EDA03FCEC787EDA0FF0EC3CFCDA3FC0141F4A48140F4AC8FC4948ED07F8EB07
+F849481503131F4A16F049481501495A13FF4890C913E05B1203485A19C0485AA2485A95
+C7FC123F5BA2127F5BA312FF5BA590CCFC183CA21838A21878187018F06C6C5E17014D5A
+003F5F6D15074DC7FC001F161E6C6C5D6D5D6C6C5D00034B5AD801FEEC07C06C6C4AC8FC
+D97FC0137E90391FF803F80107B512E0010114809026001FF8C9FC40427BBF41>I<49B9
+12C0A3D9000190C71201F0003F4B151F190F1A80020316075DA314075D1A00A2140F4B13
+07A24D5B021F020E130E4B92C7FC171EA2023F5C5D177CEE01FC4AB55AA3ED800302FF6D
+5A92C7FCA3495D5C19380401147801034B13704A16F093C85AA2010716014A5E18036101
+0F16074A4BC7FCA260011F163E4A157E60013F15014D5A4A140F017F15FFB95AA260423E
+7DBD43>69 D<DC3FF0130E923803FFFE031F9038FF801C923A7FF00FC03C913B01FF0001
+E07CDA07FC903800F0FCDA0FF0EC79F8DA3FC0143F4A48141F4AC8120FD903FC16F0495A
+49481507495A013F17E04A1503495A49C9FC4818C05B1203485A1980485AA2485A95C7FC
+123F5BA2127F5BA312FF5BA3043FB512E0A290C8FC9339001FF800170F60A2171F60A36C
+6C153F60A26C7E177F001F5F7F6C6C15FF00075D6C6C4A90C7FC6C6CEC07BF6CB4EC1F1F
+D97FC0EB7E0F903A1FF803F80E0107B5EAE00601010280C8FC9026001FF8C9FC3F427BBF
+47>71 D<49B6D8C03FB512F81BF01780D900010180C7383FF00093C85B4B5EA2197F1403
+4B5EA219FF14074B93C7FCA260140F4B5DA21803141F4B5DA21807143F4B5DA2180F4AB7
+FC61A20380C7121F14FF92C85BA2183F5B4A5EA2187F13034A5EA218FF13074A93C8FCA2
+5F130F4A5DA21703131F4A5DA2013F1507A24A5D496C4A7EB6D8E01FB512FCA2614D3E7D
+BD4C>I<49B612C05BA2D90001EB800093C7FC5DA314035DA314075DA3140F5DA3141F5D
+A3143F5DA3147F5DA314FF92C8FCA35B5CA313035CA313075CA3130F5CA3131F5CA2133F
+A25CEBFFE0B612E0A32A3E7DBD28>I<92B612E0A39239003FF000161F5FA2163F5FA316
+7F5FA316FF94C7FCA35D5EA315035EA315075EA3150F5EA3151FA25EA2153FA25EA2157F
+A25EA2D80F8013FFEA3FC0486C91C8FCA25CD8FFC05B140301805B49485A00FC5C007049
+5A0078495A0038495A001E017EC9FC380F81FC3803FFE0C690CAFC33407ABD32>I<49B6
+00C090387FFFF896B5FC5FD900010180C7000F130093C813F84B16E01A804FC7FC020316
+3C4B15F84E5AF003C002074B5A4B021FC8FC183E1878020F5D4BEB03E0EF07804DC9FC02
+1F143E4B5B17F04C5A023F1307EDC00F4C7E163F027FEBFFF8ED81EFED83CF92388F87FC
+9138FF9F0792383C03FE15784B6C7E4913E0158092C77F5C01036F7E5C717EA213074A6E
+7EA2717E130F4A6E7EA284011F15035C717E133F855C496C4A13E0B600E0017F13FFA34D
+3E7DBD4D>I<49B612F0A3D900010180C7FC93C8FC5DA314035DA314075DA3140F5DA314
+1F5DA3143F5DA3147F5DA314FF92C9FCA35B5C180C181E0103161C5C183C183813074A15
+78187018F0130F4AEC01E0A21703011FED07C04A140F171F013FED3F8017FF4A1303017F
+021F1300B9FCA25F373E7DBD3E>I<EE3FF00303B5FC92391FC03FC092397E0007E0DA01
+F8EB01F8DA07E06D7E4A48147E023FC87E027EED1F804A16C0D903F8150F494816E0495A
+4948ED07F0A2494816F849C9FC5B48481603A2484817FCA2485A000F17075B121FA25B12
+3F19F84848160FA44848EE1FF0A3F03FE0A390CAEA7FC0A2F0FF80A219004D5A1703604D
+5A6C7E4D5A4D5A003F5F4D5A6C6C4BC7FC17FE6C6C4A5A4C5A6C6CEC07E06C6CEC1FC06C
+6C4A5A6C6C02FEC8FC90393F8003F890390FE01FE00103B5C9FC9038007FF03E427BBF45
+>79 D<DB07FC1338ED3FFF92B5EAC070913A03F807F0F091390FE000F9DA1F80137F4AC7
+EA3FE0027E141F5C4948140F4A15C001031507495AA2010F16805CA3011F1600A38094C7
+FC808014FE90380FFFC015FC6DEBFFC016F86D14FE6D806D81023F800207801400030F7F
+1500163F707E160F1607A2160312075A5F120EA2001E15075FA24C5A123E003F4B5AA26D
+4AC7FC007F157E6D5C6D495AD87DF0495AD8F8FCEB0FE090393F803F8027F01FFFFEC8FC
+D8E00713F839C0007FC035427BBF38>83 D<48B912FCA25A913A0003FE000F01F84A1301
+D807E0EE00F8491307491778000F5D90C7FC001E140FA2001C4B1470123C0038141FA200
+785D1270033F15F000F018E0485DC81600157FA25EA215FFA293C9FCA25CA25DA21403A2
+5DA21407A25DA2140FA25DA2141FA25DA2143FA25DA2147FA214FF497F001FB612FCA25E
+3E3D7FBC35>I<027FB5D88007B512C091B6FCA2020101F8C7EBF8009126007FE0EC7F80
+4C92C7FC033F157C701478616F6C495A4E5A6F6C495A4EC8FC180E6F6C5B606F6C5B6017
+016F6C485A4D5A6F018FC9FC179E17BCEE7FF85F705AA3707EA283163F167FEEF7FCED01
+E7EEC3FEED0383ED070392380E01FF151E4B6C7F5D5D4A486D7E4A5A4A486D7E92C7FC14
+0E4A6E7E5C4A6E7E14F0495A49486E7E1307D91F806E7ED97FC014072603FFE0EC1FFF00
+7F01FC49B512FEB55CA24A3E7EBD4B>88 D<B66C0103B51280A3000101E0C8387FF0006C
+49ED3F80017F94C7FC183C606D6C1570606D6C4A5A17034D5A6D6C4AC8FC170E5F6D6C5C
+17785F6D6C495A5F6E495A6D4AC9FC160E6DEB801E5E5E91387FC0705EEDC1C0EC3FE3ED
+E78003FFCAFC6E5A5D6E5AA25DA25D141FA35D143FA35D147FA392CBFC5CA3495AA3497E
+0007B512FEA3413E7DBD35>I<EC1F80ECFFE0903903F0707090390FC039F890381F801D
+90383F000F017E5C5B00011407485A48485CA2485A001F140F5E485AA2151F007F5D5BA2
+153F00FF92C7FC90C7FCA25D92387E03805AA215FEEDFC07007E0101140014035E6C0107
+130E140E3A1F801C7C1C000F13783A07C1F03E383A01FFC01FF03A007F0007C029297DA7
+30>97 D<EB1FC0EA0FFF5CA2EA003FA291C8FCA25BA2137EA213FEA25BA21201A25BA212
+03A25BEC3F800007EBFFE09038F3C1F849C67E01FE137E4848133E49133F5B491480001F
+141F5B5BED3FC0123FA290C7FCA248147F1680127EA215FF00FE15005AA24A5AA25D1403
+485C1407007C5C4A5A5D003C495A003E49C7FC001E137E6C13F8380783F03803FFC0C648
+C8FC22407CBE27>I<EC07F0EC7FFE903801FC0F903907E0038090390FC001C0D93F8013
+E090387F000701FE131F485A485A16C0485A000F15804990C7FC121F485AA3127F5BA312
+FF90C9FCA6007E1560007F15E01501ED03C06CEC07806DEB0F00001F141E6C6C137C3907
+E001F03901F01FC06CB5C7FCEB1FF023297DA727>I<EE07F0ED03FF17E0A2ED000FA217
+C0A2161FA21780A2163FA21700A25EA2167EA216FEA25EEC1F80ECFFE1903803F0719039
+0FC039F890381F801D90383F000F137E495C00011407485A485A5E485A001F140FA24848
+5CA2151F127F495CA2153F12FF90C790C7FCA25DEE038048147EA215FE1607007ED901FC
+130014035E6C0107130E140E3A1F801C7C1C000F13783A07C1F03E383A01FFC01FF03A00
+7F0007C02C407DBE2F>I<EC1FE0ECFFFC903803F01E90380FC00F90393F800780D97E00
+13C0491303EA03F8120749130748481480121F49130F003FEC1F00153E397F8001FCEC1F
+F090B51280B500F8C7FC90C9FCA45AA616C01501007E1403ED07806CEC0F00151E6C5C6C
+6C13F83907C003E03903E03F802600FFFEC7FCEB3FE022297CA72A>I<163EEEFFC09238
+03E1E0923807C0F0ED0F811687ED1F8F160F153FA217E092387E038093C7FCA45DA51401
+5DA30103B512FCA390260003F0C7FCA314075DA4140F5DA5141F5DA4143F92C8FCA45C14
+7EA414FE5CA413015CA4495AA35CEA1E07127F5C12FF495AA200FE90C9FCEAF81EEA703E
+EA7878EA1FF0EA07C02C537CBF2D>I<EC01F8EC0FFE91383F07879139FC03DF80903801
+F801903903F000FFEB0FE04948EB7F005C133F49C7FC49147E5B000115FEA248485CA215
+011207495CA21503120F495CA21507A25E5B0007140FA24B5A6D133F0003147F000114FF
+6D485B0000EB03DF90387E0F3FEB1FFCD907F090C7FC90C7FC5DA2157EA215FEA25D001C
+1301007F5C4813035D4A5A4A5A48495A00F8017EC8FC387E01FC381FFFE0000390C9FC29
+3B7FA72B>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA2
+91C9FC15FE90397F07FFC091381F03E090397E3801F09138F000F8EBFFE04A7F5C91C7FC
+485AA25BA2484813015E5BA2000714035E5B1507120F5E49130F5E121F031F1370491480
+A2003F023F13F0EE00E090C7FC160148023E13C01603007E1680EE070000FE5DED1F1E48
+EC0FF80038EC03E02C407CBE34>I<143C14FEA21301A314FCEB00701400AD137E3801FF
+803803C7C0EA0703000F13E0120E121C13071238A2EA780F007013C0A2EAF01F14801200
+133F14005B137EA213FE5BA212015B0003130E13F0A20007131EEBE01CA2143CEBC03814
+78147014E013C13803E3C03801FF00EA007C173E7EBC1F>I<ED01C0ED07F0A2150FA316
+E0ED038092C7FCADEC03E0EC0FF8EC3C3EEC701EECE01FEB01C001031480EB0780140049
+133F010E1400131E131C013C5BA290C7127EA215FEA25DA21401A25DA21403A25DA21407
+A25DA2140FA25DA2141FA25DA2143FA292C7FCA25C147EA2001C13FE007F5BEAFF015C49
+5A495A48485A38F81F80D8783EC8FCEA3FF8EA0FE0245081BC25>I<EB07F0EA03FF14E0
+A2EA000FA214C0A2131FA21480A2133FA21400A25BA2137EA213FEA25BA21201A25BA212
+03A25BA21207A25BA2120FA25BA2121FA25BA2123FA290C7FCA25AEB0380127EA212FE13
+0700FC1300A25B130EA2EA7C1C133CEA3E38EA1FF0EA07C014407DBE1B>108
+D<01F8EB0FF0D803FEEB3FFC3A078F80F03E3A0F0F83C01F3B0E07C7800F80001CEBCF00
+02FE80003C5B00385B495A127800705BA200F049131F011F5D00005BA2163F013F92C7FC
+91C7FC5E167E5B017E14FE5EA201FE0101EB03804914F8A203031307000103F013005B17
+0E16E000035E49153C17385F0007913801F1E0496DB45AD801C0023FC7FC31297EA737>
+110 D<EC07F8EC7FFE903901FC0F80903907E007E090390FC003F090393F8001F8EB7F00
+01FEEB00FC485A484814FEA2485A120F5B001F15FF485AA2ED01FE127F5BA2150300FF15
+FC90C7FCA2ED07F8A2ED0FF0A2007E15E0007FEC1FC0ED3F80A26CEC7F006C6C13FC4A5A
+6C6C485A3907E00FC02601F03FC7FC3800FFFCEB1FE028297DA72C>I<D907C013FE903A
+0FF003FF80903A1C7C0F07E0903A383C1C03F0903A783E7801F80170EBF0009026F03FE0
+13FC01E05B4B13FE0001017F147E01C090C7FC147E17FF000313FEA2C75AA201015C17FE
+5CA20103140317FC5CA20107EC07F8A24A14F0160F010F15E0161F17C0EE3F80011F1500
+6E137E5E9138B801F890393FBC03E091389E0FC0DA07FFC7FCEC01F849C9FCA2137EA213
+FEA25BA21201A25BA21203A2B512E0A3303A84A72E>I<91381F800C9138FFE01C903903
+F0707C90390FC0387890391F801CF890383F000F137E4914F000011407485A485A16E048
+5A121F150F484814C0A3007F141F491480A300FF143F90C71300A35D48147EA315FE007E
+495A1403A26C13074A5A381F801D000F13793807C1F33901FFC3F038007F03130014075D
+A3140F5DA3141F5DA2143F147F90381FFFFE5BA2263A7DA729>I<D801F0EB3F80D807FC
+EBFFE03A0F1F03C0F0000E90380F00F8391E0F9E03001C13BC003CEBF807003813F0A226
+781FE013F000709038C001C092C7FC5C12F0133F000090C8FCA35B137EA313FE5BA31201
+5BA312035BA312075BA3120F5BEA038025297EA729>I<EC1FC0ECFFF8903803E03C9038
+07800E90381E0007168049130F49131F153FA201F81400A2151C6D90C7FC7FEBFFE014FE
+90387FFFC06D7F6D13F86D7F13039038001FFE14031400157E000C143E123F487EA248C7
+123CA25D12FC00F05C0070495A0078495A6C495A260F803EC7FC3803FFF838007FC02129
+7CA72B>I<147014FC1301A25CA21303A25CA21307A25CA2130FA25CA2007FB512F0B6FC
+15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA21201A25BA21203A25BA21207
+EC01C013E01403000F1480A2EBC0071500140E141E5C000713385C3803E1E03801FF80D8
+003EC7FC1C3A7EB821>I<137C48B4EC03802603C7C0EB0FC0EA0703000F7F000E151F12
+1C010715801238163FEA780F0070491400A2D8F01F5C5C0000157E133F91C712FEA2495C
+137E150113FE495CA215030001161C4914F0A21507173CEEE038150F031F137800001670
+6D133F017C017313F0017E01E313E0903A3F03C1F1C0903A0FFF007F80D901FCEB1F002E
+297EA734>I<013EEE0380D9FF800107EB0FE02601C3E090381F801FD8038117F0380701
+F0000E153F001E1600D81C03160F003C170700384BEB03E0D87807147E00705B1801D8F0
+0F14FE4A4914C01200131FDA800114034C1480133F140003031407494A1400137EA26001
+FE0107140E495C60A360150F017C5E017E011F14F0705B6D0139495A6D903970F8038090
+280FC0E07C0FC7FC903A03FFC01FFC903A007F0007F03C297EA741>119
+D<02F8130ED903FE131ED90FFF131C49EB803C49EBC0784914F090397E07F1E09038F800
+FF49EB1FC049EB07800001EC0F006C48131E90C75A5D5D4A5A4A5A4A5A4AC7FC143E1478
+5C495A495A495A49C8FC011E14E05B5B4913014848EB03C0485AD807F8EB078048B4131F
+3A1F87E07F00391E03FFFE486C5B00785CD870005B00F0EB7FC048011FC7FC27297DA72A
+>122 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmr9 9 49
+/Fd 49 122 df<EC1FE0ECFFFC903803F01E90390FC00780EB1F8090393F000FC0017E13
+1F5BA2485AED0F8092C7FCA9ED0FC0B7FCA33901F8001F150FB3A6486CEB1FE0267FFFC1
+B5FCA328357FB42B>12 D<123C127EB4FCA21380A2127F123D1201A412031300A25A1206
+120E120C121C5A5A126009177AB315>39 D<123C127EB4FCA21380A2127F123D1201A412
+031300A25A1206120E120C121C5A5A126009177A8715>44 D<123C127E12FFA4127E123C
+08087A8715>46 D<1530157815F8A215F01401A215E01403A215C01407A21580140FA215
+005CA2143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A2495AA291C7FC5BA2
+131E133EA2133C137CA2137813F8A25B1201A25B1203A2485AA25B120FA290C8FC5AA212
+1E123EA2123C127CA2127812F8A25A12601D4B7CB726>I<EB0FE0EB7FFCEBF83E3903E0
+0F803907C007C0EB8003000F14E0391F0001F0A24814F8A2003E1300007E14FCA500FE14
+FEB2007E14FCA56CEB01F8A36C14F0A2390F8003E03907C007C0A23903E00F803900F83E
+00EB7FFCEB0FE01F347DB126>I<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A249
+7E007FB51280A319327AB126>I<EB3FC0EBFFF0000313FC380F80FF391E007F80001CEB
+3FC048EB1FE048130F15F00060130712FC6C14F87E1403A3007E1307123CC7FC15F0A214
+0F15E0EC1FC0A2EC3F801500147E5C495A5C495A495A495A49C7FC133E133C4913185B48
+5A48481330485A48C7FC001C1470001FB512F05A5AB612E0A31D327CB126>I<EB1FE0EB
+FFFC4813FF3907E03F80390F001FC0001EEB0FE0001CEB07F0123F018013F8140313C013
+80A2381F0007C7FC15F0A2EC0FE015C0141FEC3F80EC7E00EB01F8EB7FE014FCEB003FEC
+1FC0EC0FE0EC07F015F8140315FC140115FEA3127EB4FCA415FC48130312780070EB07F8
+6C14F0003C130F001FEB1FE0390FE03F800003B51200C613FCEB1FE01F347DB126>I<EC
+01C0A214031407A2140F141FA2143F147F146F14CF1301EB038F140F1307130E130C131C
+13381330137013E013C0EA0180120313001206120E120C5A123812305A12E0B71280A3C7
+380FC000A94A7E0107B51280A321337EB226>I<000C14C0380FC00F90B5128015005C5C
+14F014C0D80C18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E
+000CEB07E0A2C713F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0F
+C06C131F003C14806CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14
+FE903807FF80011F13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC
+01F04848C7FCA248C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FF
+C003E0018013F0EC01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013
+F8000F14F0EBC0030007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347D
+B126>I<1230123C003FB6FCA34814FEA215FC0070C7123800601430157015E04814C014
+01EC0380C7EA07001406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7
+FCA25BA55BA9131C20347CB126>I<EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F
+0003E0000EEB01F0001E1300001C14F8003C1478A3123EA2003F14F86D13F0EBC001D81F
+F013E09038F803C0390FFE07803907FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E3
+13E0D8078013F0390F007FF8001E131F003EEB07FC003C1303481301EC007E12F848143E
+A2151EA37E153C1278007C14787E6C14F0390F8003E03907F01FC00001B5120038007FFC
+EB1FE01F347DB126>I<EB0FE0EB7FF8EBFFFE3803F83F3907E00F80390FC007C0D81F80
+13E0EC03F0EA3F0048EB01F8127EA200FE14FC1400A415FEA5007E1301A2127F7E1403EA
+1F80000F13073807C00E3803E01C3801F03838007FF090381FC0FC90C7FC1401A215F8A2
+15F01403001F14E0383F800715C0140FEC1F809038003F00001C137E381F01FC380FFFF0
+000313C0C690C7FC1F347DB126>I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187F
+A34A6C7EA202707FEC601FA202E07FECC00FA2D901807F1507A249486C7EA301066D7EA2
+010E80010FB5FCA249800118C77EA24981163FA2496E7EA3496E7EA20001821607487ED8
+1FF04A7ED8FFFE49B512E0A333367DB53A>65 D<DA03FE130C91393FFF801C91B512E090
+3A03FE01F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC7120348481401000315
+005B4848157C485A173C485A171C123F5B007F160CA390C9FC481600AB7E6D150CA3123F
+7F001F161C17186C7E17386C6C15306C6C15706D15E012016C6CEC01C0D97F80EB0380D9
+1FC0EB0F00D90FF0131ED903FE13FC0100B512F0023F13C0DA03FEC7FC2E377CB437>67
+D<B812C0A3D803FCC7127F0001150FEE03E01601A21600A21760A403061330A41700150E
+A2151E157E90B512FEA39038FC007E151E150EA21506170CA3171892C7FCA41738A21770
+A217F01601160316070003157FB812E0A32E337DB234>69 D<B81280A3D803FCC7FC0001
+151FEE07C01603A21601A21600A41760150CA31700A2151CA2153C15FC90B5FCA3EBFC00
+153C151CA2150CA592C8FCAB487EB512FEA32B337DB232>I<DA03FE130C91393FFF801C
+91B512E0903A03FE01F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC712034848
+1401000315005B4848157C485A173C485A171C123F5B007F160CA390C9FC4893C7FCAA03
+03B512E07E7F92390003FE00705A123F7F121FA26C7E7F12076C7E7F6C6C14036C7E6D6C
+1307D91FC0EB0E7CD90FF0EB1C3CD903FEEBF81C0100B5EAF00C023F01C0C7FCDA03FEC8
+FC33377CB43C>I<B512FEA3000113006C5AB3B3A7487EB512FEA317337EB21C>73
+D<D8FFFC923801FFF86D5DA20003EFFE00D801BFED06FCA3D99F80140CA2D98FC01418A3
+D987E01430A2D983F01460A3D981F814C0A3D980FCEB0180A2027EEB0300A36E1306A26E
+6C5AA36E6C5AA36E6C5AA26E6C5AA36E6C5AA3913800FD80A2037FC7FCA3486C133ED80F
+F04B7EB5011C90387FFFF8A33D337CB246>77 D<B612FEEDFFC016F03A03FC0007FC0001
+EC00FE167FEE3F80EE1FC017E0160FA217F0A617E0A2EE1FC0A2EE3F80EE7F0016FEED07
+F890B65A168001FCC9FCB3A2487EB512F8A32C337DB234>80 D<90381FE00390387FFC07
+48B5FC3907F01FCF390F8003FF48C7FC003E80814880A200788000F880A46C80A27E92C7
+FC127F13C0EA3FF013FF6C13F06C13FF6C14C06C14F0C680013F7F01037F9038003FFF14
+0302001380157F153FED1FC0150F12C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C
+147E01C05B39F1FC03F800E0B512E0011F138026C003FEC7FC22377CB42B>83
+D<007FB712FEA390398007F001D87C00EC003E0078161E0070160EA20060160600E01607
+A3481603A6C71500B3AB4A7E011FB512FCA330337DB237>I<B500FE90381FFFF8A30001
+90C813006C48153C1718B3AF1738017F1530A217706D6C1460011F15E06E495A010F1403
+6D6C495A6D6C49C7FCD901FC131E6DB413FC91383FFFF0020F13C0020190C8FC35357EB2
+3A>I<EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4
+EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F
+6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22237DA126>97
+D<EA03F012FFA312071203AEEC3F80ECFFE09038F3C0F89038F7007E01FE7F49EB1F8049
+EB0FC05BED07E016F0A2150316F8AA16F0150716E0A2ED0FC07F6DEB1F8001ECEB3F0001
+CF137C90388381F8903801FFE0C76CC7FC25357EB32B>I<EB07F8EB3FFF9038FC07C039
+01F000E03903E003F03807C007120FEA1F80123F90380003E04890C7FCA2127E12FEAA12
+7FA26C14187F001F14386D1330000F14706C6C13E03903F001C03900FC0F8090383FFE00
+EB07F01D237EA122>I<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF39
+07E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C
+4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>I<EB0FE0EB7FFCEB
+F83F3903F00F80D807E013C0390FC007E0381F800315F0EA3F0014014814F8127EA212FE
+A2B6FCA248C8FCA5127E127FA26C1418A26C6C1338000F14306D13706C6C13E03901F003
+C03900FC0F00EB3FFEEB07F01D237EA122>I<EB01FCEB07FF90381F078090383E0FC0EB
+7C1F13FCEA01F8A20003EB070049C7FCACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A
+357FB417>I<151F90391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F8380
+9039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380E
+FFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F000100
+3EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6
+B51280D91FFCC7FC22337EA126>I<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0
+FC9038F3807C9038F7007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B
+>I<EA0780EA0FC0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0
+B5FCA310337EB215>I<EB03C0EB07E0EB0FF0A4EB07E0EB03C090C7FCAAEB03F013FFA3
+13071303B3B01238127C00FE13E0130714C0130F007C138038381F00EA1FFCEA07F01443
+84B217>I<EA03F012FFA312071203AF913803FFE0A36E1300EC00F8EC01E05D4A5A020F
+C7FC141C5C5C14F0EBF3F8EBF7FC13FEEBFC7EEBF87F496C7E141F6E7E8114076E7E8114
+016E7E81486CEBFF80B500C313F0A324347EB329>I<EA07E012FFA3120F1207B3B3A7EA
+0FF0B5FCA310347EB315>I<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0
+903BF3803E1C01F02807F7003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C
+487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3
+807C3907F7007EEA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB
+07F0EB3FFE9038FC1F803901F007C03903C001E000078048486C7E48C7127CA248147E00
+3E143E007E143FA300FE1580A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C39
+03F007E03900FC1F80D93FFEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038
+F3C0F89038F7007ED807FE7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716
+F0A216E0150F16C06D131F6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC
+91C8FCAA487EB512C0A325307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA
+07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>114
+D<EBFF06000713CE381F00FE003C133E48131E140E5A1406A27EA200FE90C7FC6C7EEA7F
+FC383FFFC014F0000F7F6C7FC67FEB0FFF1300EC3F8000C0131F140F6C1307A37E15006C
+5B6C130E6C5B38F7807838E1FFE038C07F8019237EA11E>I<1330A51370A313F0A21201
+A212031207381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1F
+F8EB07E0182F7FAD1E>I<D803F0133F00FFEB0FFFA30007EB007F000380B35DA35D1201
+6D4813800000903803BFFC90387E073FEB1FFED907F8130026227EA02B>I<B5EBFFF0A3
+D80FF0EB3F800007EC1F000003140E150C6D131C00011418A26C6C5BA26D1370017E1360
+137F6D5BA290381F8180A214C3010F90C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA21460
+24217E9F29>I<B53A1FFF81FFF0A33C07F801FC003F8001F049EB1E0000030100141C81
+6C6C017C1318A26D017E1338000002FE1330A290267E01FF5B159F168090263F030F5BA2
+16C0903A1F8607C180A202C613E390260FCC0390C7FCA2D907FC13F6ECF80116FE6D486C
+5AA36D481378A36D48133034217F9F37>I<3A7FFF807FF8A33A07F8001FC00003EC0F80
+0001EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2
+903807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A
+1278D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>121
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmtt9 9 76
+/Fe 76 123 df<00101320007C13F838FE01FCAAEAFC00007C13F8A900381370161778AE
+27>34 D<EB0380497EA5EB1FF0EBFFFE0003EBFF804814C0001F14E09038E7DFF0393F87
+C7F8387E07C3007C13C100FCEBC0FC12F814C1A300FCEBC0F800FE1470007F14001387EA
+3FFF7E6C13F86C13FE6CEBFF80C614C0010F13E06D13F014CFECC3F814C10038EBC0FC12
+7C00FE147CA412FC00FE14F8007E13C1007FEBC3F0383F87C79038F7FFE06CB512C06C14
+80000314006C13FC38003FE0EB07C0A56D5A1E3A7CB327>36 D<EB01C0EB03E0130F131F
+EB3FC0EB7F80EBFE00485A5B1203485A5B485AA2485AA248C7FCA3127EA45AAC127EA47E
+A36C7EA26C7EA26C7E7F6C7E12017F6C7EEB7F80EB3FC0EB1FE0130F1303EB01C0133A73
+B327>40 D<130F497EA60078EB81E000FEEB87F000FF138FEBDFBF6CB512E06C14C0000F
+1400000313FCC613F0A2000313FC000F13FF003F14C04814E039FFDFBFF0EB1F8F00FE13
+870078EB81E00000EB8000A66DC7FC1C207BA627>42 D<007FB512F8B612FCA46C14F81E
+067C9927>45 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A728927>I<1538157C15
+FCA2140115F8140315F0140715E0140F15C0141F1580143F1500A25C147E14FE5C13015C
+13035C13075C130F5CA2131F5C133F91C7FC5B137E13FE5B12015B12035BA212075B120F
+5B121F5B123F90C8FC5A127E12FE5AA25A12781E3A7CB327>I<EB07E0EB3FFC497E90B5
+FC4814803903FC3FC03907F00FE0390FE007F0EBC003391F8001F8A248C712FCA2003E14
+7C007E147EA3007C143E00FC143FAC007E147EA46C14FCA2EB8001001F14F8EBC003000F
+14F0EBE0073907F00FE03903FC3FC06CB512806C14006D5A6D5AEB07E020307DAE27>I<
+130E131FA25B5BA25B5A5A127FB5FCA213BFEA7E3F1200B3AA003FB512805A15C01580A2
+1A2F79AE27>I<EB3FE03801FFF84813FE000FEBFF804814C0393FE07FE0EB800F397F00
+07F0007EEB03F800FE13015A6C14FC1400A3127CC8FCA2140115F8A2140315F01407EC0F
+E0EC1FC0143FEC7F80ECFF00495A495A495A495A495A495A495A01FEC7FC485AD807F813
+78484813FC485A485A48B5FCB6FCA36C14F81E2F7CAE27>I<EB1FF8EBFFFE0003EBFF80
+000F14C015E0391FF01FF0393FC007F8EB800115FC1400A26CC7FC1204C8FC140115F814
+03EC07F0140FEC3FE090381FFFC0491380A215E06D13F09038001FF8EC03FC1401EC00FE
+157E157F153FA21238127C12FEA2157F48147E6C14FE007FEB01FCEB8003393FF01FF86C
+B512F06C14E000031480C6EBFE00EB1FF820307DAE27>I<EC3F804A7EA214FF5BA2EB03
+F7EB07E7A2EB0FC71487131FEB3F07A2137E13FCA2EA01F813F01203EA07E0A2EA0FC0EA
+1F80A2EA3F00123E127E5AB7128016C0A36C1580C73807C000A849B5FC491480A36D1400
+222F7EAE27>I<001FB512E04814F0A315E090C8FCACEB1FF0EBFFFC14FF158015C09038
+F03FE09038C00FF0EB0007003EEB03F8001C1301C7FC15FC1400A3127C12FEA2140115F8
+4813036C14F0007F130F9038801FE0393FE07FC06CB512806C14006C5B000113F838007F
+C01E2F7CAD27>I<14FF010713C0011F13F04913F890B5FC48EB81FC3803FE0113F8EA07
+F0EA0FE09038C000F8001F1400485A90C8FCA25A127EEB0FF838FE3FFE48B51280B612C0
+15E09038F80FF09038E007F890388001FC90C7FC15FE48147E157F153F5A7E127EA3127F
+6C147F157E6C6C13FE9038C001FC120F9038F007F83907F81FF06CB512E06C14C06C1480
+90383FFE00EB0FF820307DAE27>I<EB0FF0EB7FFE48B512804814C0000F14F0EBF81F39
+1FE007F8393F8001FC90C7FC4814FE007E147EA56C14FCEB8001391FC003F8390FE007F0
+3907FC3FE00001B5128039007FFE006D5A90B5FC000314C0390FF00FF0391FC003F8393F
+8001FC90C7FC007E147EA248143FA6007E147EA2007F14FE393F8001FC391FE007F8EBF8
+1F6CB512F06C14E00001148039007FFE00EB0FF020307DAE27>56
+D<EB0FF0EB7FFC48B5FC4814804814C0390FF81FE0391FE007F0393FC003F8EB8001D87F
+0013FC007E130012FE48147EA4157F153F157F7E127E007F14FF7E6D5A381FE007380FF0
+1F6CB6FC7E6C143F39007FFC7F90381FF07E90C7FCA215FCA2140115F8001F1303393F80
+07F0EC0FE0141FEC3FC09038C0FF806CB512005C6C13F8000313E0C6138020307DAE27>
+I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCAC121EEA7F80A2EAFFC0A4EA7F80A2EA
+1E000A20729F27>I<153815FC14011407140FEC3FF8EC7FE0ECFFC001031300495AEB1F
+F8495A495A3801FF804890C7FCEA0FFC485AEA7FF0EAFFC05BA27FEA7FF0EA1FF86C7EEA
+03FF6C7F38007FE06D7E6D7EEB07FE6D7E010013C0EC7FE0EC3FF8EC0FFC140714011400
+15381E287CAA27>60 D<007FB512FEB7FCA4003F14FEC9FCA6003FB512FEB7FCA46C14FE
+20127D9F27>I<127012FC7E6C7E7FEA7FF0EA1FF86C7EEA03FF6C7F38007FE06D7E6D7E
+EB07FE6D7E010013C0EC7FE0EC3FF8EC0FFC1407A2140FEC3FF8EC7FE0ECFFC001031300
+495AEB1FF8495A495A3801FF804890C7FCEA0FFC485AEA7FF0EAFFC05B48C8FC5A12701E
+287CAA27>I<EBFFF8000313FF000F14C0003F14E04814F09038C01FF839FF0003FC4813
+011400A21401007C1303C7EA0FF8EC1FF0EC7FE0ECFFC0491300EB03FC495A5C495A5C13
+1F5CA76DC7FC90C8FCA7130F497E497EA46D5A6DC7FC1E2E7CAD27>I<EB01FE903807FF
+80011F13C0017F13E090B512F048EB03F83803FC013907F000FC390FE01F7C9038C07FFE
+381F80FF1301485A393E07F1FF007E13E0397C0FC07FEC803FA2EAFC1F00F8EB001FA800
+FCEB803FD87C0F133EA2ECC07E397E07E0FC003E13F1393F03FFF86C6C13F0018013E039
+0FC07FC09038E01F1E3907F0003FD803FC137F3901FF03FF6CEBFFFE6D13FC011F13F001
+0713C001011300202E7DAD27>I<EB03F0497EA2497EA4143CEB1F3EA5EB3F3FA3EB3E1F
+A2017E7FA4496C7EA548486C7EA390B5FCA24880A3EBF003A248486C7EA4000F803A7FFC
+0FFF8000FF15C06D5A497E007F1580222F7EAE27>I<007FB5FCB612C08115F87E3907E0
+03FCEC00FE157E157F81A6157EA25D1403EC0FF890B55A15C015F081819038E000FE157F
+ED3F80151FA2ED0FC0A6151F1680153FED7F004A5A007FB55AB65A5D15E06C1480222E7F
+AD27>I<903803F80E90381FFE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E
+485A49137FA248C7123FA25A127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E
+157F6D137E6C6C13FE3907F001FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300
+EB03F820307DAE27>I<387FFFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA215
+7E157F811680151FA316C0150FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB5
+5A5DB65A6C91C7FC14FC222E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED0780
+92C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCA4ED03C0ED07E0A7007FB6FCB7
+FCA36C15C0232E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7FCA4EC
+07804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27>I<90
+3807F03890381FFC7C90387FFFFC90B5FC5A3803FC1F3807F00F380FE007EBC003001F13
+011380123F90C7FCA2127EA2157892C7FC5AA8EC1FFF4A1380A3007E6D1300EC00FCA36C
+1301A21380121FEBC003120FEBE0073807F00F3803FC1F6CB5FC7EEB7FFE90381FFC78D9
+07F0C7FC21307DAE27>I<3A7FFE07FFE0B54813F0A36C486C13E03A07E0007E00AF90B5
+12FEA59038E0007EB03A7FFE07FFE0B54813F0A36C486C13E0242E7FAD27>I<007FB512
+E0B612F0A36C14E039001F8000B3B2007FB512E0B612F0A36C14E01C2E7BAD27>I<9038
+1FFFF84913FCA36D13F89038001F80B3AC127CA212FEA2EC3F005C387F81FE13FF6C5B6C
+5B000713E0C690C7FC1E2F7BAD27>I<3A7FFC07FF8016C0486C5A6C487E16803A07C001
+F80014035D4A5A4A5A141F5D4AC7FC147E14FE5CEBC1F8EBC3F013C75CEBCFF0EBDFF813
+FF8013FEEBFC7E143EEBF83F497E01E07F140F01C07F1407811403816E7EA26E7E157C15
+7E3A7FFC01FFC016E0486C5A6C487E16C0232E7FAD27>I<387FFFC080B5FC7E5CD803F0
+C8FCB3AAED0780ED0FC0A7007FB6FCA2B7FC7E1680222E7FAD27>I<D87FE0EB7FE0486C
+EBFFF0A26D5A007F15E0000F150001B813DFEBBC03A3EBBE07019E139FA3EB9F0FA2018F
+131FA2149FA2EB879EA4EB839C14FCA3EB81F8A2EB80F01400AAD87FF0EBFFE0486C4813
+F0A36C486C13E0242E7FAD27>I<3A7FF003FFE0486C4813F0A213FC007F6D13E0000790
+38003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3EBC0F8A31478147CA2
+143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401A26C486C5A242E7FAD
+27>I<EBFFFC0007EBFF80001F14E0A24814F0EBC00F397F8007F8EB0003007E1301A348
+EB00FCB3A76C1301007E14F8A3007F1303EB8007393FE01FF090B5FC6C14E0A200071480
+C6EBFC001E307CAE27>I<007FB5FCB612E081816C803907E003FEEC00FF81ED3F80151F
+16C0150FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC01E0C8FCADEA7FFEB5
+FCA36C5A222E7FAD27>I<EBFFFC0007EBFF80001F14E0A24814F0EBE01F397F8007F8EB
+0003007E1301A300FE14FC481300B3A4EB07E0A200FE13F1007E14F8EB03F9A2387F01FF
+1381D83FE013F090B5FC6C14E0A200071480C6FC9038001FC0A2EC0FE0A2EC07F0A2EC03
+F8A2EC01F01E397CAE27>I<387FFFF0B512FE6E7E816C803907E01FF014076E7E140181
+1400A514015D14034A5A141F90B55A5D5DA281EBE01F6E7E14076E7EA816F0EDF1F8A439
+7FFE01FBB5EBFFF08016E06C48EB7FC0C8EA1F00252F7FAD27>I<90387FC0E03901FFF1
+F0000713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403A3EC01E06C90C7FC127E
+127FEA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13E0010013F0140FEC07F8
+1403140115FC1400127812FCA46CEB01F8A26C130390388007F09038F01FE090B5FC15C0
+150000F85B38701FF81E307CAE27>I<007FB61280B712C0A439FC03F00FA60078EC0780
+000091C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE01FFF8B54813FCA36C48
+6C13F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D13FE6C6C485A90387F87
+F814FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<3A7FFC03FFE06D5A00FF15F000
+7F15E0497E3A07E0007E00A46C6C5BA4EBF80100015CA46C6C485AA490387E07E0A56D48
+5AA4011F5B149FA3010F90C7FCA5EB07FEA46D5AA26D5A242F7FAD27>I<393FFC1FFE38
+7FFE3F815D383FFC1F3903F00FE001F85B1201EBFC1F00005CEBFE3F017E90C7FCEB7F7F
+EB3F7E14FE6D5AA26D5AA26D5AA21303130780130F80131F80EB3F7E147F497E017E7F14
+1F01FC7F140FD801F87F14071203496C7E120701E07F3A7FFC0FFF8000FF15C06D5A497E
+007F1580222E7EAD27>88 D<3A7FFC03FFE06D5A00FF15F0007F15E0497E3A07F000FE00
+00035CEBF80100015CA2EBFC0300005CEBFE07017E5BA26D485AA290381F9F80A3010F90
+C7FCA2EB07FEA26D5AA26D5AAF90381FFF80497FA36D5B242E7FAD27>I<003FB512FE48
+14FFA4007EC712FEEC01FCA2EC03F8EC07F0A2003CEB0FE0C7EA1FC0A2EC3F80EC7F00A2
+14FE5C1301495A5C1307495A5C131F495A91C7FC5B13FEA2485A4848131E153F485A485A
+A2485A485AA248C7FCB7FCA46C14FE202E7DAD27>I<387FFFF0B512F8A314F000FCC7FC
+B3B3ACB512F014F8A36C13F0153A71B327>I<127812F87EA27E127E127F7E7F121F7F12
+0F7F12077F1203A27F12017F12007F137E137F7F80131F80130FA2801307801303801301
+80130080147E147F80A21580141F15C0140F15E0140715F0140315F8140115FC1400A215
+7C15381E3A7CB327>I<387FFFF0B512F8A37EEA0001B3B3ACEA7FFFB5FCA36C13F0153A
+7EB327>I<007FB512F8B612FCA46C14F81E067C7E27>95 D<3803FFC0000F13F04813FC
+4813FF811380EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A383FFC07
+EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C69038807F
+8022207C9F27>97 D<EA7FE0487EA3127F1203A914FF01F313C090B512F08181EC81FE49
+C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEBFF
+009038FF83FEECFFFC5D5D01F313C02601E0FEC7FC232E7FAD27>I<EB0FFF017F13C048
+B512E04814F05A380FF807EA1FE0393FC003E0903880008048C8FC127EA212FE5AA67E12
+7EA2007F14F0393F8001F813C0381FE003390FF80FF06CB5FC6C14E06C14C06C6C1300EB
+0FF81D207B9F27>I<EC3FF04A7EA3143F1401A9EB0FE1EB7FFD48B5FC5A5A380FF83F38
+1FE00F383FC007EB8003EA7F00007E1301A212FE5AA67E007E1303A2127F6C1307EB800F
+381FE01F380FF03F6CB612C06C15E06C13FD38007FF9D91FE013C0232E7EAD27>I<EB0F
+F8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC48C7FC
+127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE390FFC
+07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F27>I<EC1FF0ECFFF84913
+FC4913FE5BEB0FF014C0011F137CEC8000A6007FB512F0B612F8A36C14F039001F8000B3
+A4003FB512C04814E0A36C14C01F2E7EAD27>I<153F90391FC0FF80D97FF313C048B612
+E05A4814EF390FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01FA239
+0FF07F8090B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880EB80
+01007EC7EA3F80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F0090
+38F807FF6CB55A000714F86C5CC614C0D90FFCC7FC23337EA027>I<EA7FE0487EA3127F
+1203A9147F9038F1FFC001F713F090B5FC8114C1EC01FCEBFE005B5BA25BB03A7FFF83FF
+E0B500C713F0A36C018313E0242E7FAD27>I<130F497E497EA46D5A6DC7FC90C8FCA738
+3FFF80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<143C147E14
+FFA4147E143C1400A73801FFFE4813FFA37EC7123FB3B0147E1238007C13FE38FE01FC13
+03B512F814F06C13E06C13803807FE0018407CAE27>I<EA7FE07F12FF127FA21201A991
+383FFFC04A13E0A36E13C0913803F8004A5A4A5A4A5A4A5A02FFC7FCEBF1FEEBF3FCEBF7
+F8EBFFFC8080143F496C7E496C7E01F87FEBF0076E7E6E7E816E7E157E3A7FFFC1FFF002
+C313F8B512E36C13C316F0252E80AD27>I<387FFF80B57EA37EEA000FB3B2007FB512F8
+B612FCA36C14F81E2E7CAD27>I<397F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A
+0FFC7FF1F89038F03FC001E0138001C01300A3EB803EB03A7FF0FFC3FF486C01E3138001
+F913E701F813E36C4801C313002920819F27>I<387FE07F39FFF1FFC001F713F090B5FC
+6C80000313C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E02420
+7F9F27>I<EB1FE0EB7FF83801FFFE487F481480390FF03FC0391FC00FE0393F8007F0EB
+00034814F8007E1301A248EB00FCA76C1301007E14F8A2007F1303393F8007F0A2391FE0
+1FE0390FF03FC06CB512806C14006C5B38007FF8EB1FE01E207C9F27>I<387FE0FFD8FF
+F313C090B512F0816C800003EB81FE49C67E49EB3F8049131F16C049130FA216E01507A6
+150F16C07F151F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC
+91C8FCAC387FFF80B57EA36C5B23317F9F27>I<397FFC03FC39FFFE0FFF023F13804A13
+C0007F90B5FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD00
+7FB57EB67EA36C5C22207E9F27>114 D<9038FFF3800007EBFFC0121F5A5AEB803F38FC
+000F5AA2EC07806C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13C0
+9038003FE014070078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C01580150000
+FB13FC38707FF01C207B9F27>I<133C137EA8007FB512F0B612F8A36C14F0D8007EC7FC
+AE1518157EA415FE6D13FC1483ECFFF86D13F06D13E0010313C0010013001F297EA827>
+I<397FE01FF8486C487EA3007F131F00031300B21401A21403EBFC0F6CB612E016F07EEB
+3FFE90390FF87FE024207F9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000
+F800EBE00100035CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F
+3FEB1F3EA214FE6D5AA36D5AA26D5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E
+007F15E03A0F80001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA2000114
+78A301F713F8A2EBFF0F6C5CA3EBFE0790387C03E024207F9F27>I<393FFC1FFF486C5A
+168016006C487E3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C
+80497E130F497E143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF
+80A2B54813C06C486C1380A222207E9F27>I<3A7FFC0FFF80486C4813C0A36C486C1380
+3A07E000F800000313015D13F00001130301F85B1200A26D485A137CA290387E0F80133E
+A2011F90C7FC5CA2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208
+EA3E0F007F5B131FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I<001FB512FE
+4814FFA490380001FEEC03FCEC07F8EC0FF0001EEB1FE0C7EA3FC0EC7F80ECFF00495A49
+5A495AEB1FE0495A495A49C7FC485A4848131E4848133F485A485A485A485AB7FCA46C14
+FE20207E9F27>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff cmr7 7 4
+/Ff 4 53 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49
+D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15
+005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003
+0012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C00
+30137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC3800
+01E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F01
+F03807FFC0C690C7FC19277DA521>I<1438A2147814F81301A2130313071306130C131C
+131813301370136013C012011380EA03005A120E120C121C5A12305A12E0B612E0A2C7EA
+F800A7497E90383FFFE0A21B277EA621>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg cmbx12 13.14 42
+/Fg 42 120 df<D807E0EB01F8D81FF8EB07FE486C497E486C4913806D15C0B55B028014
+E0A302C014F0A26C80A26C80D81FFBEB07FED807E3EB01F8D8000390C7FCA2010714014A
+14E0A2010F1403A291C713C0491407011E1580013E140F49EC1F00A249143E48485C4848
+5C000714014848495A4848495A001EC71380000C6EC7FC2C257CCB3F>34
+D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E01010778F22>
+46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B2007FB712E0A5
+2B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF802707F800
+3F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00FF16FE6D14
+7FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E04B13C01780
+4B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F804AC7FC14
+FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A5A5A5A5AB8
+FC17F8A430477AC63D>I<EC3FFE0103B512E0010F14FC013F14FF90267FE01F7F9026FF
+000713E0D801FC6D7FD803F07F486C6D7FD80FFE817F486D80167FA3805C16FF7E91C75B
+6C5A6C5AD80020495B90C75C5D5F4B5B5F031F90C7FCED3FFC4AB45A49B512E0168016E0
+16FC90C7EA3FFF030713C06F7F6F7F6F7F83707E83A2701380A318C0EA07E0EA1FF8487E
+487EA2B5FCA31880A25E491600127F494A5A6C485D01E05B001F4A5BD80FFC495B2707FF
+C03F13C06C90B65AC64BC7FC013F14F8010714E09026007FFEC8FC32487BC63D>I<EE07
+E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2157D15FDEC01F915F1EC03E11407EC
+0FC1EC1F811501143F147E14FC14F8EB01F01303EB07E014C0EB0F80131FEB3F00133E5B
+13FC485A485A5B1207485A485A90C7FC123E127E5AB912FCA5C80003EBE000AD023FB612
+FCA536487DC73D>I<D8038015E001E0140301FC143F9039FFE003FF91B612C017801700
+A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0C9FCAAEC1FFC01E1B512C001E714F0
+01EF14FC9039FFE01FFFDA0007138001FC6D13C001F06D13E04915F0497F17F8C913FC16
+7F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FEA34914FF6C4815FC5B018015F86CC7
+4813F07F6C6C4913E0D80FF04913C0D807FC011F13806CB46CB512006C90B512FC6C5D01
+3F14C0010F91C7FC010113F030487AC63D>I<ED7FF8913807FFFE021F6D7E027F80903A
+01FFF01FE0010790388003F04948486C7E49486D7ED93FF013074948130F01FF4A7E4849
+133F5C5A4890C7FCA25A705A48486E5A705A003F92C8FCA3485AA21520913807FFE0021F
+13FC00FF497F4A6D7EDAFC017F9026FDF0007F4A6D7ED9FFC06D7E4A6D7E8391C7FC8382
+491680A318C05BA3127FA6123FA27F001F1780A3000F4B1300A26C6C5DA26C6D495A6C6D
+5C6C6D495A6D6C48485A90263FFC075B6DB65A6D4AC7FC01035C010014F0020F90C8FC32
+487BC63D>I<EC1FFF49B512F0010714FC011F14FF90263FF00713C049C77F01FCEC3FF0
+4848EC0FF848481407000782491403000F821601A2121F7FA27F13FE6D140302C05C14F0
+02FC495A6C6D130FDAFF805B9238E01FE06C6E485A9238FCFF806C91B5C7FC6C15FC6C5D
+7F6D14FE6D806D15C06D81011F81017F81D9FFDF804813072603FE018048486C80484813
+3F4848010F1480003F8049130148486D6C13C0161F824848140382A282A2177FA218807F
+127FEFFF007F6C6C4A5AA2D81FFC4A5A6C6CEC0FF86C6C6CEB3FF06C9039F003FFE06C90
+B612806C6C92C7FC011F14FC010714E09026003FFEC8FC32487BC63D>56
+D<903803FFF8013FEBFF8090B612E0000315F8489038007FFCD80FF0EB1FFED81FC0EB07
+FF48C71480D87FC015C06D7F486C15E07FA66C5A6C484913C06C5A0007C7481380C81400
+5D4B5AED7FF84B5A4A13C05E4A48C7FC5D4A5A5D4A5AA24A5A5DA24AC8FCA3143EAB143C
+91C9FCA9147E49B47E497F497FA2497FA66D5BA26D5B6D5BD9007EC8FC2B4D79CC3A>63
+D<EE01F8A24C7EA34C7EA24C7EA34C7FA24C7FA34C7FA293B57EA34B8016F303038016E3
+16E103078016C0030F805E83031F814C7E4B81153E83037E81037C7F03FC815D83020182
+4B7F0203825D830207824B7F020F825D84021F8392B8FC4A83A34A83027CC8120F02FC83
+5C840101844A810103845C840107844A81010F845C85011F85496C82B600C091B712F0A5
+544D7CCC5D>65 D<B912F0F0FF8019F019FC19FFD8001F0180C780061F7F727F727F727F
+727FA2727FA2197F86A84F5AA2626062604E5B4E5B4E1380067F90C7FC943803FFFC92B7
+12F0198019F019FC0380C7383FFF80060F7F060313F0727F727F737E86851B80851BC0A2
+1BE0A48561A41BC0A2611B80611B0096B5FC4E5B4E5B060F5B067F5BBB12C097C7FC19FC
+19F04EC8FC4B4B7CCA57>I<B912F0F0FF8019F019FC19FFD8001F902680000114C0DD00
+1F7F060713F806017F726C7E737E737F737F737F8587737F8587A2747EA38786A21C80A5
+1CC0A586A462A51C80A51C00A26263A2631AFF636163614F5B634F5B073F90C7FC4F5A4F
+5A06035B061F5B4DB512C0BBC8FC19FC19F0198006F0C9FC524B7CCA5E>68
+D<B712FEA5D8000FEBE000B3B3B3ABB712FEA5274B7DCA2E>73 D<EEFFF8031FEBFFC04A
+B612FC020715FF021FD9C01F13C091277FFE000313F0902601FFF09038007FFC49496E7E
+490180EC0FFF4990C86C7F49486F7F49486F7F017F8449486F7F4849707EA24849707E48
+85A24849701380A2481AC04A82A2481AE0A34890CA6C13F0A5B519F8AE6C1AF0A26E5EA3
+6C1AE0A26E5E6C1AC0A26C1A806E5E6C1A006E5E6C616E16FF6C616C6D4B5B6D6C4B5B6E
+5D6D6D4A5B6D6D4A5B01076D4A90C7FC6D01F8ECFFFE6D01FE01035B9028007FFFC01F13
+F0021F90B612C0020793C8FC020115FCDA001F14C0030101FCC9FC4D4D79CB5C>79
+D<B912C018FCF0FF8019F085D8001F902680000713FE05007F063F1380060F13C07213E0
+1AF0841AF8A27213FCA31AFEA81AFCA34E13F8A21AF0601AE04E13C0063F138095B51200
+050713FC92B75A19E096C7FC18F803C0CAFCB3ABB712FCA5474B7BCA54>I<DA7FFCEB01
+C00103B5EAC003011FECF00749ECFC0F90B7121F48D9E00F13BF4890C713FFD807FC141F
+4848804848140382484880177F485A173F171F12FFA2170F7FA217077F7F7F6D92C7FC6D
+7E6C13F014FF15F86CECFF8016F86C15FF6C16C0836C826C826C826C82013F816D168001
+0716C01300020F15E01400030714F0ED007F160F16037013F882177F127800F8163FA317
+1FA27E18F0A27EA26CEE3FE07F18C001E0157F6DEDFF8001FC160001FF140302E0EB0FFE
+D97FFEEB3FFC486CB612F0D8FC0F5DD8F803158048C66C49C7FC48010313F0354D79CB44
+>83 D<B700F00203B6FCA5D8001F01E0C93803FC00745A6D61811A036D6D5F1A076D6D5F
+1A0F6D616F161FA26D6D94C7FC626E6D153E1A7E6E177C7015FC6E5F8219016E6D5D1903
+6E5F7014076E5F82190F6E6D5D191F6E6D92C8FC616F153E83197E6F6D137C19FC6F6D5B
+18016F5DEFF003A26F01F85B18076F01FC5B180F6F5DEFFE1F6F92C9FC17FF607013BE18
+FE705BA2705BA3705BA2705BA2705BA3705BA27090CAFCA2177EA2584C7ECA5D>86
+D<B7D8E007B791B612C0A5D8003F0180C7000101FCC9387F80006F7070C7FC6D70183EA2
+6F70167E6D71177C876F1BFC6D715F6F831E016D656F4B6D14036D65876F92B515076D65
+6F4A8007F3160F6E647001036E141F6E04E194C8FCA27001076E5C6E04C0163E8770010F
+177E6E4C6C157C70011F814F6C15FC6E637049EDC0016E033E6D5D1CE070017E16036E03
+7C6D5D7001FC15F04E6D14076E63DCFF01EEF80F6F4A6D5DA20583EEFC1F6F4A6D92C9FC
+1CFE05C75F6F4A6D143E05EF16FF4E6E137E6F197C05FF17FC6F91C86C5BA36F496F5BA2
+4D816F61A26F496F5BA370486F5BA370486F90CAFCA24D81041F5FA27048167C7A4C7ECA
+7F>I<010C1403011EEC0780017E141F49EC3F004848147E49147C48485C4848495A4848
+495AA248C7485A001E5D003E140F003C92C7FC007C5CA20078141EA200F8143E48143CA2
+D8F1F8147ED8F7FE90383DFF80B5013F13C0028014E0A202C014F0A26C80A36C80028014
+E06C806C496C13C06C486D1380D801F89038007E002C2572CB3F>92
+D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFE3B03FC0007FF80486C6D7F6D7F
+486D6C7F83167F83A2707E6C90C7FC6C5A6C5AC9FCA5ED1FFF021FB5FC49B6FC130F013F
+EBC03F9038FFFE00000313F04813C04890C7FC485A485AA2485AA2485AA4167FA26D14FF
+007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C9038E07F076C9038FFFE0300
+014A7ED8003F9038F0007F0103018090C7FC37347CB23C>97 D<EB7FC0B5FCA512037EB3
+ED07FF037F13E002C1B512FC02C714FF9126CFF80F7F9126DFC0017F02FFC77F4AEC3FF0
+02F8814A6E7E717E4A81831980A37113C0A319E0AC19C0A35F1980A219005F606E141F6E
+5D4D5A6E4A5A02BF4A5A91261FC0035B9027FE0FF01F5B496CB548C7FCD9F80114F8496C
+6C13E0C8D80FFEC8FC3B4D7CCB44>I<91380FFF8091B512F8010314FF010F15804948C6
+13C0D97FF8EB1FE0D9FFE0EB3FF04849137F4849EBFFF84890C7FCA2485A121FA24848EC
+7FF0EE3FE0EE1FC0007F92C7FC5BA212FFAC127FA27FA2123FA26C6C153EA26C6C157E17
+7C6C6D14FC6C6D14F86C6D13036C6DEB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001
+035C010014F0020F13802F347CB237>I<EF1FF0EE3FFFA51600177FB3EC0FFF91B512E0
+010314F8010F14FC013FEB01FF903A7FF8003FFFD9FFE0130F48497F48497F4890C77E48
+815B121F5B123FA2127F5BA312FFAC127FA36C7EA3121F6D5C120F6C6C5C6C6D5B6C5D6C
+01E0013F7F6D6C49EBFFE090393FFE03FE6DB512F801075C0100148091261FFC00EBC000
+3B4D7CCB44>I<EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F4948
+6D7E4801806D7E486F7E4890C7120F484881707E121F491403003F82A2127F5B701380A2
+12FFA390B8FCA401F8CAFCA5127FA27FA2123FA26C6CED0F80A26C6C151F6C17006E5C6C
+6D147E6C6D5C6C6D495AD93FFCEB07F0903A1FFF803FE0010790B55A010192C7FC6D6C13
+FC020713C031347DB238>I<ED7FF0913807FFFC023F7F4A7F902601FFE0138049018113
+C049484813E0EB0FFCEB1FF8A2EB3FF0A2017F6D13C04A6C1380EE7F00163E93C7FCACB7
+7EA526007FF0C8FCB3B3A3003FB512F8A52B4D7DCC26>I<DA7FFCEB0FE00103B538807F
+F8010F9138E1FFFC013F02FB13FE903A7FF01FFFF39026FFC007138348D9000113034816
+8348486DEBC1FCEFC0F8000FEEE00049147F001F82A9000F5E6D14FF00075EA26C6C495B
+6C93C7FC6C9038C007FE9138F01FFC4890B55A01EF14E0D803C314809026C07FFCC8FC00
+0790CAFCA47FA27F13FC90B612FCEEFFC06C16F817FE6C8218806C17C06D16E00003B812
+F0120FD81FFCC7000F13F8D83FF0140049153F4848ED1FFC00FF160F491507A56D150F00
+7F17F86D151F6C6CED3FF06C6CED7FE0D80FFE913801FFC06C6C6C010713806C01F8017F
+1300C690B612FC013F15F001071580D9003F01F0C7FC37497DB13D>I<EB7FC0B5FCA512
+037EB3923801FFC0030F13F8033F7F4B13FFDBFE077F9138C1F0039126C3E0017FDAC780
+80ECCF0014DE02DC6D7F14FC5CA25CA35CB3AAB6D8C07FEBFFE0A53B4C7BCB44>I<13FC
+EA03FF487F487FA2487FA66C5BA26C5B6C90C7FCEA00FC90C8FCABEB7FC0B5FCA512037E
+B3B3A2B61280A5194D7BCC22>I<EC01F8EC07FE4A7E4A1380A24A13C0A66E1380A26E13
+006E5AEC01F891C8FCABEDFFC049B5FCA5EB000380B3B3AC1202EA1FC0EA3FE0EA7FF0EA
+FFF84A1380A216005C5D6C48485A49485A003FEB7FF06CB55A6C1480000349C7FC38007F
+F0226386CC26>I<EB7FC0B5FCA512037EB3A293383FFFFEA5040390C7FC17FC4C5AEE0F
+E0EE3FC04C5A4CC8FC4B5AED03F8ED0FF04B5A4B5A4B5A4BC9FC14C302C77F02CF7F02DF
+7F91B5FC824A7F4A6C7EECF83F9138E01FFE02C07F6F7F816F7F836F7F81707E83707E16
+1F707E84707F84B6D8803FEBFF80A5394C7CCB41>I<EB7FC0B5FCA512037EB3B3B3AAB6
+1280A5194C7BCB22>I<90287FC001FFC0EC7FF0B5010F01FC0103B5FC033F6D010F804B
+6D4980DBFE079026803F817F9126C1F801903AC07E007FF00003D9C3E0DAE0F8806C9026
+C78000D9F1E06D7E02CFC7EBF3C002DEEDF780DD7FFF6E7E02FC93C7FC4A5DA24A5DA34A
+5DB3AAB6D8C03FB5D8F00FB512FCA55E327BB167>I<903A7FC001FFC0B5010F13F8033F
+7F4B13FFDBFE077F9138C1F00300039026C3E0017F6CD9C78080ECCF0014DE02DC6D7F14
+FC5CA25CA35CB3AAB6D8C07FEBFFE0A53B327BB144>I<913807FF80027F13F80103B6FC
+010F15C090261FFE017F903A7FF0003FF849486D7E480180EB07FE4890C76C7E48178049
+80000F17C048486E13E0A2003F17F0A249157F007F17F8A400FF17FCAB007F17F8A46C6C
+EDFFF0A2001F17E0A26C6C4A13C0A26C6C4A13806C6D4913006C5E6C01E0EB1FFC6D6C49
+5A903A3FFE01FFF0010FB612C0010392C7FCD9007F13F80207138036347DB23D>I<9039
+7FC007FFB5017F13E002C1B512FC02C714FF9126CFF80F7F9126DFC0037F000301FFC77F
+6C496E7E02F8814A6E7E717E4A81831980A28319C0A37113E0AC19C05FA319805F19005F
+606E143F6E5D4D5A6E4A5A02FF495BDBC0075B9126EFF01F5B02E7B548C7FC02E114F8DA
+E07F13E0DB0FFEC8FC92CAFCAFB612C0A53B477CB144>I<9039FF803FE0B5EBFFF80281
+13FE02837FDA87E11380EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F1300
+6F5A4A90C7FCA45CB3A8B612E0A52A327CB132>114 D<903907FF8070017FEBF1F048B6
+FC1207380FFC01391FE0003F4848130F491307127F90C71203A2481401A27FA27F01F090
+C7FC13FCEBFFC06C13FEECFFE06C14FC6C806CECFF806C15C06C15E06C15F06C7E011F14
+F8010114FCEB000FEC007FED1FFE0078140F00F8140715037E1501A27E16FC7E15036D14
+F86D13076D14F001F8EB1FE001FFEBFFC04890B51280486C1400D8F81F13FCD8E00313C0
+27347CB230>I<14F8A51301A41303A21307A2130FA2131F133F137F13FF1203000F90B5
+12F0B7FCA426007FF8C7FCB3A7167CAA013F14F880A290391FFE01F0010F1303903907FF
+87E06DEBFFC06D14806D6C1300EC0FFC26467EC430>I<D97FE0EC3FF0B5EC7FFFA50003
+15016C81B3AC5EA25EA25E7E6EEB0F7F017F021E7F6E017CEBFFE090393FFE01F86DB512
+F0010714E0010114C09027003FFE00EBC0003B337BB144>I<B600C090387FFFF0A5C601
+F0C73803F8006E5D017F5E801707013F5E6E140F011F5E6E141F6D93C7FC6F5B6D153E81
+177E6D157C6F13FC6D5DEDF0016D5DEDF803027F5CA2EDFC07023F5CEDFE0F021F5CEDFF
+1F6E91C8FC169F16BF6E13BE16FE6E5BA26E5BA26E5BA36F5AA26F5AA26F5AA23C327EB0
+41>I<B60081B500FC90387FFFF0A500019026E0000390C73801FC006E6F5C6C6F5E6E6F
+1303017F61A26E6F1307013F4A5E846E49150F011F616E6F131F6D4A93C7FC179F03806E
+5B6D021F153EEF0FFE6DD9C03F5DEE3E0703E06E13FC6D027E5DEE7C0303F015816D4A6C
+5C03F815C3DA7FF95E4C7E03FD15E7DA3FFF5E4C137F19FF6E496D5BA26E94C8FC4C7FA2
+6E5E93C7120FA26E486E5AA202015E4B1403A26E486E5A54327EB059>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmtt10 12 68
+/Fh 68 123 df<001EEB03C0003FEB07E0397F800FF000FF14F8A5007F14F0A9EB0007A6
+6C14E0A5001EEB03C00008EB00801D1E75BD34>34 D<141C143E147EA549B47E011F13F0
+017F13FE90B6FC000315C04815E0260FFE7E13F0D81FF0131F01E0EB07F8D83F801303D8
+7F0014FC007E140116FE5AA21503A46CEC01FCED00F8007F15001380EA3FC013F0EA1FFC
+380FFFFE7E6CEBFFE06C14F86C6C13FE011F7F01071480D9007F13C016E091387E3FF0ED
+0FF81507ED03FC15011500003E15FE127FD8FF80147EA413005A6C15FC7E15010180EB03
+F8D83FC0130701E0EB0FF0D81FF0EB3FE03A0FFE7FFFC06CB612806C15006C5C6C6C13F8
+011F13E0010390C7FCEB007EA5143E141C274D7AC434>36 D<EC0780EC0FC0143F147F14
+FF491300495A495AEB0FF0495A495A495A49C7FC5B1201485A5B12075B120F5B121F5BA2
+485AA3127F90C8FCA412FEAD127FA47F123FA36C7EA27F120F7F12077F12037F6C7E1200
+7F6D7E6D7E6D7E6D7EEB07FC6D7E903801FF806D13C0147F143F140FEC07801A4D6FC434
+>40 D<147014F8497EA7007815F000FEEC03F800FF140701C1131F01E1133F01F913FF6C
+B612F0001F15C000071500000114FC6C6C13F06D5B010F1380013F13E0497F48B512FC00
+0714FF001F15C0007F15F026FFF9FC13F801E1133F01C1131F0101130700FE14030078EC
+00F000001500A76D5A1470252B79B334>42 D<EA0F80EA1FC0EA3FE0EA7FF0EAFFF8A5EA
+7FF0EA3FE0EA1FC0EA0F800D0D6D8C34>46 D<163C167C16FEA21501A2ED03FCA2ED07F8
+A2ED0FF0A2ED1FE0A216C0153FA2ED7F80A2EDFF00A24A5AA24A5AA24A5AA25D140FA24A
+5AA24A5AA24A5AA24AC7FCA25C1301A2495AA2495AA2495AA2495AA25C133FA2495AA249
+C8FCA2485AA2485AA2485AA25B120FA2485AA2485AA2485AA248C9FCA25AA2127CA2274D
+7AC434>I<147F903803FFE0497F011F13FC497F497FD9FFC17F489038007FC048486D7E
+49131F48486D7E49130748486D7EA248486D7EA248486D7EA348C8127FA500FEED3F80AE
+6C157F6C1600A46D5C003F5DA26D1301001F5D6D1303000F5D6D130700075D6D130F6C6C
+495A6D133F6C6C495A6C9038C1FF806DB5C7FC6D5B6D5B010713F06D5BD9007FC8FC293F
+7BBD34>I<EB01E0497EA21307A2130FA2131F133F137F13FF1203123FB5FC13F713E713
+87EA7E071200B3B3A2003FB512FE4880B71280A26C15006C5C213E76BD34>I<903803FF
+80011F13F0017F13FC90B6FC000315C048814801017F3A1FF8001FF801E0130F4848EB03
+FC48486D7E90C8FC824881A26D1580163FA36CC8FC123EC9FCA2167F1700A25E5E15015E
+15034B5A150F4B5A5E4B5A4B5A4A48C7FC4A5A4A5A4A5A4A5A4A5A4A5A49485A4990C8FC
+EB07FC495A495A495AEBFFC04890C7121F4848EC3F80485A485A485A48B7FC5AB8FCA27E
+6C1600293E7BBD34>I<903801FFE0011F13FC017F13FF90B612C000038148819138803F
+F83A0FF80007FC496D7E484813016D1300167FA36C5A6C5AC9FC5E5EA215014B5AA2ED0F
+F84B5A913803FFE00103B55A495C93C7FC16C016F06D8090C7EA3FFCED07FEED01FF81EE
+7F80163F17C0161F17E0160FA3123E127F487EA2161F17C090C8123F17806C157F01C0EC
+FF006C6C5BD81FF8EB07FE9039FF803FFC6C90B55A00035D6C15C06C6C91C7FC010F13FC
+010013E02B3F7CBD34>I<EDFF804A7FA25C5CA2EC0FEF141F15CFEC3F8FA2EC7F0F14FE
+A2EB01FCEB03F8A2EB07F0130F14E0EB1FC0A2EB3F80EB7F00A213FE485AA2485A12075B
+485AA2485A485AA248C7FC12FEB812F017F8A46C16F0C8380FC000AC020FB512C04A14E0
+4A14F0A26E14E06E14C02D3E7DBD34>I<0007B612F848815AA35E01C0C9FCB0EC7FC090
+38C7FFF801DF13FE90B67E82829138C07FF09039FC000FF849130701E06D7E496D7E6C48
+13006CC87EC97EA21780163FA4121C127FA2486C147F1700A290C85A5E6C14016D495A15
+07D83FE0495A6C6CEB3FF03A0FFE01FFE06CB65A6C5D6C4AC7FC6C6C5B011F13E0010390
+C8FC293E7BBC34>I<EC07FE91383FFF8091B512E001038049805B90393FFE07FC90387F
+F001D9FFC07FEC0003485A485A485A6F5A48486D5A4991C7FC121F5B123F5BA2127F90CA
+FCECFFC0010713F8D8FF1F13FE48487F90B612C0B77E9138807FF09039FC001FF8491307
+01E06D7E496D7E1500498090C87EA21780163FA27EA47F123F167F6D1500121F6D5C000F
+4A5A7F6C6C495A6DEB0FF86C6C495A6C6C6CB45A6C90B55A6D5C6D91C7FC010F13FC0103
+5B010013C0293F7BBD34>I<EC7FC0903807FFFC011F13FF017F14C090B67E4881489038
+C07FF83A07FE000FFCD80FF8EB03FE49130148486D7E4980003F168049143FA66C6CEC7F
+00A26C6C14FE6D13016C6C495AD803FEEB0FF83A01FF803FF06C6CB512C06D5C010F49C7
+FC6D5B013FEBFF8090B612E0489038C07FF03A03FE000FF8D80FF8EB03FE491301D81FC0
+EB007F003F168049143F48C8EA1FC0A200FEED0FE0A7007FED1FC0A26D143F003F16806D
+147F6C6CECFF0001F81303D80FFEEB0FFE3A07FF803FFC6C90B55A6C5D6C6C14C0011F91
+C7FC010713FC010013E02B3F7CBD34>56 D<ECFF80010713F0011F13FC017F7F90B6FC48
+814801807F3A07FC003FE04848EB0FF04848130748488049130348486D7E90C7FC824814
+005A8282A41780A27E7EA26D14FF003F5C7F6C6C5B6C6C130F01FC5B6CB490B5FC6C90B6
+FC6C15BF6C6CEBFE3F6DEBFC7F010F01F013000101138090C8FCA25E5EA24B5AA21503D8
+0F805C486C1307486C495A4B5A153F4B5A49495A001F010390C7FC9038F80FFE6CB55A5D
+6C14E000015C6C91C8FCEB1FF8293F7BBD34>I<160F163FEEFF805D15074B1300153FED
+7FFC913801FFF04A5B020F1380023F90C7FCEC7FFC49485A4913E0010F5B4990C8FCEB7F
+FC495A000313E0485B001F90C9FCEA7FFE13F8485A13C013F06C7E13FEEA1FFF000713C0
+6C7FC613F86D7EEB1FFF6D13C001037F6D13F86D6C7E6EB4FC020F7F020313E06E7F9138
+007FFC6FB4FC150F6F1380150181EE3F00160F29337BB734>60 D<007FB712C0A2B812E0
+A36C16C06C1680CBFCA9003FB712804816C0B812E0A36C16C0A22B177CA934>I<127812
+7EB47E7F13F06C7E13FEEA1FFF000713C06C7FC613F8EB7FFEEB1FFF6D13C001037F6D13
+F86D6C7EEC1FFF6E7F020313E06E7F9138007FFC6FB4FC150F6F1380150115074B130015
+3FED7FFC913801FFF04A5B020F13804A90C7FCEC7FFC49485A4913E0010F5B4990C8FCEB
+7FFEEBFFF8000313E0485B001F90C9FCEA7FFE13F8485A13C05B007ECAFC127829337BB7
+34>I<90380FFFC0017F13FC48B6FC000715C04815E04815F0263FFC0013F8D87FC0EB0F
+FC49130348C7EA01FE6D1300A46CC71201003E15FC001C1407C8EA1FF8ED3FF0EDFFE04A
+13C04A1380913807FE00EC0FF84A5A4A5A4A5A4A5A92C7FC5B5CA213035CA86D5A6D5A91
+C8FCA914F0497E497E497EA46D5A6D5A6D5A273E7ABD34>I<EC07FCEC3FFF91B512C001
+03804980498090393FFC07FC90397FE001FE9038FF800091C7127F484880D803F8017F13
+800007903801FFDF494813FF48484814C0495A001F5B9038803FC1003FEB7F800100EB00
+7F02FEEB3FE04849131FEA7E014A130FA212FEEAFC034A1307A96E130FD8FE0115C0127E
+A26E131FD87F0015806C6D133F027FEB7F0001806D5A001F90383FC1FE6D6CB45A000F6D
+5B6D6C5B6C6C6C5B6D6C5B00036D6CC7FCD801FE90380007C06C6CEC0FE06E133FD97FE0
+137F90393FFC03FF010FB612806D15006D5C010014F8023F13E0DA07FEC7FC2B3F7CBD34
+>I<EC1FC04A7E4A7EA54A7E14FDA301017FA214F8A201037FA4ECF07E0107137FA44948
+6C7EA549486C7EA4013F80EC800FA449486C7EA291B5FCA290B67EA49038FE000348486D
+7EA4000381491300A43B7FFF800FFFF0B56C4813F8A46C496C13F02D3E7DBD34>I<003F
+B512FE48ECFFC0B712F0826C816C813A01FC0003FF03001380167FEE3FC0161FA217E016
+0FA6EE1FC0A2163FEE7F80EEFF005DED07FE90B65A16F05EA216F816FE9039FC0003FF03
+001380EE3FC0161FEE0FE017F01607A2EE03F8A7160717F0A2160FEE1FE0163FEEFFC015
+03003FB71280481600B75A16F86C15E06C15802D3D7EBC34>I<91391FF003C09139FFFE
+07E00103EBFF874914CF011F14EF4914FF90387FF01F9038FFC00748EB0001497F484814
+7F485A49143F120F49141F121F5B003F150F5BA2127F90C8EA07C093C7FCA312FEAD127F
+A46DEC07C0003FED0FE0A27F121F7F000F151F6D15C012076D143F6C6CEC7F806C6C14FF
+6D4913006C9038C003FE90397FF01FFC6DB55A6D5C01075C6D1480010049C7FCEC1FF02B
+3F7CBD34>I<007FB512F0B612FE6F7E82826C813A03F8003FF8ED0FFC6F7E15036F7E81
+EE7F80163F17C0161F17E0160FA217F01607A417F81603AC160717F0A4EE0FE0A2161F17
+C0163FA2EE7F8016FF17004B5A15074B5AED3FF8007FB65AB75A5E5E4BC7FC6C14F02D3D
+7EBC34>I<003FB712F04816F8B8FCA27E7ED801FCC71203A8EE01F093C7FCA5ED0F804B
+7EA590B6FCA69038FC001FA56F5A92C8FCA6177C17FEAA003FB7FC5AB8FCA27E6C16FC2F
+3D7EBC34>I<007FB712F0B812F8A47ED801FCC71203A8EE01F093C7FCA6ED0F804B7EA5
+90B6FCA69038FC001FA56F5A92C8FCB0387FFFF8B57E80A25C6C5B2D3D7DBC34>I<9138
+3FC01E903901FFF03F010713FC49EBFF7F495C5B90387FE07F9038FF801F4848487E4848
+7F497F000780485A497F121F5B82485AA348C8FC163E93C7FCA25A5AA992383FFFE04B13
+F017F8A26C16F06C6E13E09238007F00A36C6C5CA36C7EA26D5B120F6D5B6C7E00035C7F
+6C6C5B6C6C6C5A90387FE07F6DB6FC6D806D13FE6D13FC0101EBF03E9026003FC0C7FC2D
+3F7CBD34>I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3A290B7FC
+A601F8C7123FB3A53B7FFFC007FFFCB56C4813FEA46C496C13FC2F3D7EBC34>I<007FB6
+12C0B712E0A46C15C0260003F8C7FCB3B3AD007FB612C0B712E0A46C15C0233D78BC34>
+I<91B512FC4914FE4914FFA26D14FE6D14FC9138003F80B3B3A4121C123E127F487EA215
+7F160090C75A397F8003FE9038F00FFC6CB55A6C5C6C5C00035CC691C7FCEB1FF8283E79
+BC34>I<3B7FFF8003FFF0B56C4813F817FCA217F86C496C13F0D803F0C7EA7F0016FE4B
+5A15034B5A5E4B5A4B5A153F4B5A93C7FC15FE4A5A14034A5A5D4A5A4A5A143F4A5AA24A
+7E13F101F37F13F7ECF7F0EBFFE3ECC3F8ECC1FC1481EC00FE5B49137F81498049131F82
+150F826F7EA26F7EA26F7E150082167E167F823B7FFF8001FFF0B56C4813F817FCA217F8
+6C496C13F02E3D7EBC34>I<383FFFFE487FB6FCA27E6C5BC648C9FCB3B3A2177017F8EE
+01FCA9003FB7FC5AB8FCA27E6C16F82E3D7EBC34>I<D87FF8EC3FFC486CEC7FFE6D14FF
+A36C6C4913FC000716C001EF14EFEC8003A49039E7C007CFA3ECE00FA201E3148FECF01F
+A301E1140FECF83FA201E0133EA2ECFC7EA2EC7C7CA2EC7EFCEC3EF8A3EC1FF0A4EC0FE0
+A2EC038091C7FCAED87FFEECFFFCB54913FEA46C486D13FC2F3D7EBC34>I<D87FFC9038
+0FFFF0486C4913F87FA214806C6E13F000039138007E00EBF7C0A3EBF3E0A38013F1A280
+13F0A280A2147C147EA2143E143FA2801580A2140F15C0A2140715E0A2140315F0A21401
+15F8A21400A215FC157CA2157E153EA3151FA3ED0FFE387FFF80B512C01507A215036C49
+6C5A2D3D7DBC34>I<90381FFFFC90B67E000315E04881488148813A3FFC001FFE01E013
+0349130148486D7EA290C87EA500FEED3F80B3AC6C157F6C1600A46D5CA26D5B003F5D01
+F0130701FE133F6CB65A6C5D6C5D6C5DC61580011F01FCC7FC293F7BBD34>I<003FB512
+FE48ECFFC0B712F016FC6C816C812701FC00071380030113C0ED007FEE3FE0161FEE0FF0
+1607A217F81603A6160717F0A2160FEE1FE0163FEE7FC0ED01FF0307138090B712005E5E
+16F016C04BC7FC01FCC9FCB3383FFFE0487FB57EA26C5B6C5B2D3D7EBC34>I<90381FFF
+FC90B67E000315E04881488148813A3FFC001FFE01F0130701C0130148486D7EA390C87E
+A448168048153FB3AAEC1F806C013F137F6C02C01300A2EC1FE0A26D6C6C5AA26E7E3A3F
+C003F9FE01F013FFEBFC016CB65A6C5D6C5D6C5DC61580011F8090C7123F6F7EA26F7EA2
+6F7E8215038215018281167E294C7BBD34>I<007FB512C0B612F815FE6F7E826C812603
+F8007FED1FF8ED07FC15036F7E1500A28282A55E5EA215014B5A1507ED1FF8EDFFF090B6
+5A5E5E93C8FC8282EBF800ED1FE06F7E1507A26F7EAA171FEF3F80A416FC0301137F267F
+FFC01500B56C6CB5FC5F167F705A6C496D5AC9EA07E0313E7EBC34>I<D907FE13789039
+1FFFE0FC017F13F848B512FD4814FF5A380FFE03391FF0007FD83FC0131F49130F007F14
+0790C7FC4814035AA21501A46C6E5A6C92C7FC7F7F6C7E13F86CB4FC6C13F06C13FF6C14
+F06C14FE6C6C7F011F14C0010180D9001F7F02017F9138001FFC15076F7E15016F7E8217
+80A2003C153F127E12FEA46C157F1700A26D14FE6D13016D495A01FC13079039FFC03FF8
+91B55A5E485DD8FC3F91C7FC010F13FCD8780013E0293F7BBD34>I<003FB712F04816F8
+B8FCA43AFE001FC003A8007CED01F0C791C7FCB3B3A4010FB57E49804980A26D5C6D5C2D
+3D7DBC34>I<263FFFE090B51280486D4814C0B56C4814E0A26C496C14C06C496C1480D8
+01FCC73807F000B3B3A36D140F00005EA26D141F6D5D6E133F013F5D6E137F6D6C49C7FC
+6D6C485AECFE0F6DB55A6D5C010014E06E5B021F90C8FCEC07FC333E80BC34>I<D87FFF
+903801FFFCB56C4813FE6E5AA24A7E6C496C13FCD807F89038003FC000031680A36D147F
+00011600A36D5C00005DA4017F495AA46D6C485AA4ECC007011F5CA3ECE00F010F5CA46D
+6C485AA46D6C485AA4010191C7FC6E5AA30100137EA2ECFEFEA2EC7EFCA2147FA26E5AA4
+6E5A6E5A2F3E7EBC34>I<3B3FFFC03FFF80486D4813C092B5FCA2816C496C13803B01FE
+000FF00012006D5C6D131F02805B013F133F02C05B011F137F02E090C7FC6D6C5A5DEB07
+F95DEB03FF5D7F5D7F5D147F5D143F5D8181147F8114FF815B81EB03F981EB07F0814948
+7E8290381FC03F82013F131F02807F017F130F02007F4913074980000114034980000314
+014980D87FFF90380FFFF0B56C4813F814C0A214806C496C13F02D3D7DBC34>88
+D<001FB7FC4816805AA490C813004B5AA24B5A4B5AA24B5A4B5A123EC8485A5E157F4BC7
+FCA24A5A4A5AA24A5A4A5AA24A5A4A5AA24A5A92C8FC5C495AA2495A495AA2495A495AA2
+495A495AA249C9FC49EC0F800001ED1FC0485AA2485A485AA2485A485AA2485A90B7FCB8
+FCA46C16802A3D7BBC34>90 D<007FB51280B612C0A4158048C8FCB3B3B3ABB6128015C0
+A46C14801A4D6BC434>I<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA212077FA26C
+7EA26C7EA26C7EA26D7EA26D7EA2131F80A26D7EA26D7EA26D7EA26D7EA2130080A26E7E
+A26E7EA26E7EA26E7EA2140781A26E7EA26E7EA26E7EA2ED7F80A2ED3FC0A2151F16E0A2
+ED0FF0A2ED07F8A2ED03FCA2ED01FEA21500A2167C163C274D7AC434>I<007FB51280B6
+12C0A47EC7121FB3B3B3AB007FB5FCB6FCA46C14801A4D7CC434>I<007FB7FCA2B81280
+A36C1600A229077B7D34>95 D<EB1FFE90B512C0000314F04880488081391FF807FF49C6
+7F6F7E151F826C48130F6C4880C81207A4EC01FF91B5FC1307133F90B6FC120348140748
+13C0381FFC00EA3FF0EA7FC05B48C7FC5AA56C140F7E6D131FD83FE0EB7FF8D9F807B512
+F86CB712FC7E000314FD6C14F06C6C9038C01FF8D90FFCC8FC2E2E7BAC34>97
+D<EC7FF80103B5FC010F14C0013F14E04914F090B6FC489038C01FF83903FE000F485A48
+5A5B4848EB07F049EB03E0484890C7FCA2127F90C9FCA25A5AA97E7EA27F003F15F86DEB
+01FC6C7EA26C6C1303D807FCEB07F86C6C130F3A01FFC07FF06C90B512E06D14C06D1480
+010F1400010313FC9038007FE0262E79AC34>99 D<ED7FFC4B7EA4157F1500ABECFF8001
+0313F0010F13F8013F13FE4913FF48B6FC4813C09038FE003FD807F8130F484813074848
+13035B003F14015B007F140090C8FCA25A5AA97E6C1401A27F003F14037F001F14077F6C
+6C130F6D131F6C6C137F2603FF81B512FC6C90B612FE6C5C6D5B011F13F001079038E07F
+FC010090C8FC2F3E7DBC34>I<ECFFC0010313F0010F13FC013F13FF49148090B612C048
+01C013E03A03FE001FF04848EB0FF8D80FF013074848EB03FC1501485A49EB00FE127F90
+C8FC16FF167F5A5AB8FCA516FE48C9FC7E7EA27F123F6D143E001F157F7F6C7E6D14FF6C
+6CEB01FE6CB413076C9038E03FFC6C90B512F86D14F0011F14E06D14800101EBFE009038
+003FF0282E7BAC34>I<ED3FF0913801FFFC02077F4A7F4A14805CEC7FE015809139FF00
+7F005C0101141C4A90C7FCA8003FB612FC4881B7FCA36C5D260001FCC8FCB3AD001FB612
+C048814881A26C5D6C5D293E7DBD34>I<49B4EB1FE001079038C0FFF8011F01F313FC01
+7F90B512FE90B7FC5A48018313F1903AFC007F80FC484890383FC07849011F130048486D
+7EA2001F81491307A66D130F000F5DA26C6C495A6D133F6C6C495A9038FF83FF91B5C7FC
+485C5D4814F001C713C001C190C8FC01C0C9FCA47F6C7E90B512FE6CECFFE06C15F80007
+15FE48814816809026F0000313C0D83FC09038003FE090C8120F48ED07F0007E150300FE
+16F8481501A56C1503007E16F0007F15076C6CEC0FE001E0143FD81FF8ECFFC0270FFF80
+0F13806C90B612006C5DC615F8013F14E0010F1480010001F8C7FC2F447DAB34>I<EA7F
+FC487EA4127F1200AB15FF020713E0021F7F027F7F91B57E90B67E15819138FC00FF02F0
+7F4A804A133F5CA291C7FCA35BB3A4277FFFFC0FB5FCB56C481480A46C496C1400313D7F
+BC34>I<14F0497E497E497EA46D5A6D5A6D5A91C8FCA9383FFFFC487FA47EC7FCB3AD00
+3FB612F04815F8B7FCA27E6C15F0253E79BD34>I<383FFFFE487FB6FCA27E7EC77EB3B3
+AD003FB612FE4881B81280A26C16006C5D293D7BBC34>108 D<027FEB1FC03B3FE1FF80
+7FE0D87FF39038E0FFF8B612E303F77F6C91B57E6C01C313F000030181EBE07ED9FE01EB
+807F6E80491400A2495BA3495BB3A53C3FFF03FFC0FFF048018701E113F8B500CF01F313
+FCA26C018701E113F86C010301C013F0362C81AB34>I<15FF267FFC0713E026FFFE1F7F
+027F7F91B57E90B67E6C1481C69038FC00FF02F07F4A804A133F5CA291C7FCA35BB3A427
+7FFFFC0FB5FCB56C481480A46C496C1400312C7FAB34>I<14FE903807FFC0011F13F001
+7F13FC90B57E488048010113803A07FC007FC04848EB3FE049131F4848EB0FF049130700
+3F15F8491303007F15FC90C71201A300FEEC00FEAA6C14016C15FCA26D1303003F15F86D
+1307A26C6CEB0FF06C6CEB1FE06D133F6C6CEB7FC03A03FF83FF806C90B512006C5C6D5B
+011F13F0010713C0010190C7FC272E7AAC34>I<EC01FE3A7FFC0FFFC026FFFE3F13F04A
+13FC90B67E826C02031380C69039F8007FC04AEB3FE04A131F4AEB0FF04A130791C713F8
+160317FC491401A217FE1600A916016D15FCA2160317F86E130717F06E130F6EEB1FE06E
+EB3FC06EEBFF80ECFE0791B612004914FC6E5B6E13E0020F1380DA03FEC7FC91C9FCAF38
+7FFFFCB57EA46C5B2F427FAB34>I<4BB4FC273FFFC00F13C048D9E03F13E0B590B512F0
+02E114F86C13E76C01EF130FD8000F13F8ECFFE09238C007F092388003E092C8FC5C5CA2
+5CA25CA45CB1003FB6FC4881B77EA26C5D6C92C7FC2D2C7DAB34>114
+D<90390FFF078090B5EACFC0000314FF5A5A5A383FF803397F80007F90C7123F12FE4814
+1FA47E007FEC0F8001C090C7FCEA3FF8381FFFE06C13FF6C14E06C14F8C614FE011F7FD9
+007F1380020313C09138003FE0ED0FF0003C1407007EEC03F800FE1401A27EA36D13036D
+14F06D13076DEB1FE001FE13FF90B612C016801600D8FC7F13FC6D13F0D878071380252E
+79AC34>I<EB01E0497E1307AA003FB612FE4881B8FCA36C5D260007F0C8FCB3A3EE0F80
+EE1FC0A66EEB3F800103147F6E13FF902601FF031300EDFFFE6D5C6E5B6E5B020F13C002
+0190C7FC2A387EB634>I<D87FFCEB1FFF486C497FA4007F800000EC003FB3A7167FA216
+FFA26D5B6D1307DAE01F13FF6DB712807F7F6D143F0101D9FC1F13009026007FF0C8FC31
+2C7FAA34>I<3B3FFFE00FFFF8486D4813FCB515FEA26C16FC6C496C13F8D801FCC7EA7F
+000000157EA26D14FE017E5CA2017F13016D5CA2EC8003011F5CA2ECC007010F5CA2ECE0
+0F01075CA36D6C485AA3ECF83F010191C7FCA26E5A0100137EA2ECFEFEEC7EFCA2147F6E
+5AA36E5A6E5A2F2B7EAA34>I<3B3FFFE07FFFC0486DB512E0B515F0A26C16E06C496C13
+C0C690390007F0006D495A6D6C485AEB1FC06E485A010F49C7FC903807F0FEEB03F89038
+01F9FCECFFF86D5B147F6E5A5D6E5A81143F4A7E81ECFDF8EB01F9903803F8FCECF07E90
+3807E07F010F6D7E90381FC01F02807F013F6D7E49486C7E137E01FE6D7E3B7FFFC01FFF
+F0B56C4813F86E5AA24A7E6C496C13F02D2B7DAA34>120 D<000FB712C04816E05AA317
+C00180C713804B13004B5A4B5A4B5A4B5A6CC7485AC8485A4B5A4A90C7FC4A5A4A5A4A5A
+4A5A4A5A4A5A4A5A4990C8FC495A495A495A495A495A4948EB07C04948EB0FE04890C7FC
+485A485A485A485A485A48B7FCB8FCA46C16C02B2B7DAA34>122
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmb10 10.95 21
+/Fi 21 122 df<B812F8A417FCC69038F8007F161F1607160316011600A2177EA3173EA2
+ED03E0A2171FA417001507A2150F153F91B5FCA5ECF83F150F1507A21503A792C8FCACB6
+12FEA5303D7CBC39>70 D<B500F891B512FC80A28080C6933800FC008181A28181A201FD
+7F01FC7FA26E7E6E7E80826E7F80826E7F6E7FA26E7F6F7EA26F7E6F1380A26F13C06F13
+E0A26F13F06F13F8A26F13FCEE7FFEA2EE3FFF82A28282A2828282A2177F173FA2171F17
+0FA21707B500FC1403A217011700A23E3E7CBD47>78 D<B712E016FF17C017F883C69039
+F0007FFE93381FFF801607707F84A2707FA284A860A24C5BA2604C5B041F90C7FCEEFFFE
+91B612F817E094C8FC17C0DAF00113F06F6C7E707E83161F83A2707FA684A6191F18E0A2
+82F0F03FB6D8F003143E70EBF87E70EBFFFC053F13F8050F13F0CB13C0403F7CBD45>82
+D<EAFFFEA6EAFC00B3B3B3B3A7EAFFFEA60F5B78C319>91 D<EAFFFEA6EA007EB3B3B3B3
+A7EAFFFEA60F5B7FC319>93 D<EB0FFE90387FFFC048B512F04814FC3907FC0FFE48486C
+7E6D6C7F486C7E82A26E7FA36C5A6C5AEA01E0C8FC5C49B5FC131F90B6FC000313F84813
+C0481300EA1FFC485A127F5B12FF5BA45CA26C6C5A16F83B3FF807BFFF80391FFC1F3F39
+0FFFFE1F6C497E0001EBF80326003FE0C8FC292B7EA92C>97 D<EB03FF011F13E0017F13
+F890B57E48EB83FE3903FE01FF00075B4848481380121F13F8123FA2127F496C13006E5A
+EC007800FF91C7FCAC127FA27F003FEC07C0A26C6C130F16806C6C131F000715006C6C13
+7F6CEBC1FE6CEBFFFC6D13F0011F5B010390C7FC222B7DA928>99
+D<16FF92B5FCA5150781AFEB01FF011F13E3017F13FB90B7FC4813C148EB003F48487F48
+487F001F805B123FA2485AA312FFAC127FA36C7EA3001F5C6C6C5B00074A13806D4913FC
+2603FF83B5FCC690B6FC6D13F7011F13C7903A03FE07FC002E407DBE33>I<49B47E010F
+13F0013F7F90B512FE48EBC3FF48010013804848EB7FC04848133F001F15E05B003FEC1F
+F0A2485A150F16F8A212FFA290B6FCA401F0C8FCA5127FA37F003F15F8A26C6C1301000F
+15F06D13036C6CEB07E06C9038800FC06C9038F07F806C6CB512006D5B010F13F8010013
+C0252B7EA92A>I<EC1FF8ECFFFE01077F491480D91FF813C0D93FE013E0EB7FC1EBFF81
+481301A348486C13C0ED7F80ED3F0092C7FCAAB6FCA5000390C8FCB3ACB6FCA523407EBF
+1C>I<EA01F8487E487E487E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077E
+B3ABB512F8A515407EBF19>105 D<13FFB5FCA512077EB092B512E0A592380FE0004B5A
+4B5A4BC7FC15FE4A5A4A5A4A5A4A5A4A5A143FECFFE0A28181A2ECDFFCEC8FFE140F6E7E
+6E7FA26E7F6E7FA26F7E6F7EA26F7E6F7EB539FC7FFFF8A52D3F7FBE30>107
+D<13FFB5FCA512077EB3B3AFB512FCA5163F7EBE19>I<01FFD97FE0EB3FF0B52601FFF8
+EBFFFC0207D9FC037F4A6D487F91281FC3FF0FE17FDA3E03D99F017F0007017C14BE6CD9
+7801EBBC0002F002F88002E05CA202C05CA302805CB3A4B5D8FE1FD9FF0FEBFF80A54929
+7EA84C>I<01FFEB7FE0B53801FFF802077F4A7F91381FC3FFDA3E0313800007137C6CEB
+780102F014C014E0A214C0A31480B3A4B5D8FE1F13FFA530297EA833>I<49B47E010F13
+F0013F13FC90B6FC48018113803A03FE007FC04848EB3FE0000F15F049131F001F15F8A2
+4848EB0FFCA2007F15FEA400FF15FFAB007F15FEA3003F15FC6D131F001F15F8A26C6CEB
+3FF0000715E06C6CEB7FC03A01FF81FF806C90B51200013F13FC010F13F001011380282B
+7EA92D>I<3901FE07F800FFEB0FFE91383FFF804A13C0EC7C7F9138F8FFE03807FFF06C
+5B5CA2ED7FC09138803F80ED1F0092C7FCA291C8FCB3A3B6FCA523297FA827>114
+D<131FA65BA55BA25BA25A5A5A001FEBFFC0B6FCA4000790C7FCB3EC03E0A97EEC87C0A2
+6CEBCF806C13FF6D1300EB1FFEEB07F81B3B7EB923>116 D<D9FF80EB7FC0B5EB7FFFA5
+000714036C80B3A55DA35D7E4B13E0DAC01E13FF6CEBE07E6DB45A6D5B010F13E0010101
+801300302A7EA833>I<B500E1B53887FFF8A50007903B801FF0003F006C6F133E150F02
+C0157E6C4A6C137CA26C01E05D4B7EA2D97FF04A5AED7FFF157DD93FF84A5A03FD138303
+F81387D91FFCECC7C014FD9238F07FCFD90FFFECEF80A29238E03FFF6D93C7FCA24B7E6D
+5DA2ED800F6D5DA2ED00076D5DA24A1303027E5C027C13013D287EA742>119
+D<B539FC1FFFE0A5000390398000F800ECC0016C5DA2ECE0036C5D1507D97FF05BA2ECF8
+0F013F5CA2ECFC1F011F91C7FC5D90380FFE3EA2157E903807FF7CA215FC6D5BA26D5BA3
+6D5BA36E5AA26E5AA36EC8FCA25C143EA2000E5BEA3F80387FC0FC486C5AA2EBE1F0A2EB
+E3E013C7387FCFC0387D3F80D83FFFC9FC5BEA0FF8EA07E02B3B7EA730>121
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj cmss10 10.95 2
+/Fj 2 42 df<14FCEB01F8EB03F0EB07E0EB0FC0131F1480EB3F005B137E5B12015B1203
+A2485AA25B120FA25B121FA25B123FA448C7FCA712FEB3A2127FA76C7EA4121F7FA2120F
+7FA212077FA26C7EA212017F1200137E137F7FEB1F8014C0130FEB07E0EB03F0EB01F8EB
+00FC165A79C323>40 D<12FC127E7E6C7E6C7E7F12076C7E7F12016C7E7F137E137FA2EB
+3F80A2131F14C0A2130F14E0A2130714F0A4EB03F8A7EB01FCB3A2EB03F8A7EB07F0A414
+E0130FA214C0131FA21480133FA2EB7F00A2137E13FE5B485A12035B485A120F5B485A48
+C7FC127E5A165A7BC323>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk cmbx10 12 48
+/Fk 48 123 df<ED1FFF0203B512E0021F14F8027F80903A01FFF803FE499038C0007F01
+0F90390001FF80D91FFC497F4A5B495A495AA201FF4A7F4A6D5BA3705B7090C7FC705A94
+C8FCA693387FFFE0B9FCA5C601E0C7FCB3B0007F9026FFC07FEBFFC0A53A467EC540>12
+D<EC01E014031407EC0FC0EC3F80EC7F0014FE495A5C1303495A495A131F5C133F495AA2
+49C7FCA2485AA212035B1207A2485AA3121F5BA2123FA35B127FA612FFA25BAE7FA2127F
+A6123F7FA3121FA27F120FA36C7EA212037F1201A26C7EA26D7EA26D7E131F80130F6D7E
+6D7E1301806D7E147FEC3F80EC0FC0EC07E0140314011B6475CA2D>40
+D<903801FFE0011F13FE017F6D7E48B612E048812607FE0713FC260FF0007FD81FC06D7E
+4848011F1380EA7FE06D6D13C0487E6D6D13E0A26F13F0A46C5AA26C5A6C5AC8FC17E05D
+A217C05D17804B13005E4B5A5E4B5A4B5A4A5B5E4A90C7FCEC07FC4A5A4A5A4A5A91397F
+8001F0ECFF005C495AD903F0EB03E0495A495A495A49C71207017E140F90B7FC4816C05A
+5A5A5A5A5AB8FC1780A42C417AC039>50 D<EE0FC04C7EA24C7EA34C7EA24C7EA24B7FA3
+4B7FA24B80A34B8016CF031F80168F1687033F801603037F80157E8203FE804B7E020181
+4B137FA20203814B7F0207824B7FA2020F824B7F021F824B7F023F82A292C77E4AB77EA2
+91B87EA3D901FCC87F4A157F0103835C840107844A81010F844A81A2011F844A81013F84
+496C81B600C0010FB612FCA54E457CC457>65 D<B912C018FCF0FF8019E019F8D8001F90
+C700037F9438007FFE727E7213807213C0841AE0A2841AF0A71AE0601AC0604E13801A00
+4E5AF0FFFC050313F0053F5B92B7C7FC18FCF0FFC019F892C86C7EF01FFF7213807213C0
+7213E01AF07213F8A27213FCA31AFEA2197FA319FFA21AFCA2601AF8604E13F0A2061F13
+E04E13C04DB51280BAEAFE006119F0198006F0C7FC47447DC351>I<DCFFFC141C031FD9
+FFC0137C4AB600F813FC0207EDFE01021FEDFF03027FD9F00113C749B5C7EA3FEF4901F8
+EC0FFF010F01E01403490180804990C9FC4948167F4948163F4849161F4849160F5C4818
+0748491603A2485B19015A91CAFC19005AA3491800A212FFAC127FA27F1A7CA27EA2806C
+19FC1AF86C7F19016C7F6CF003F0806C6DEE07E06C6DEE0FC06D6C161F6D6CEE3F806D6D
+ED7F006D01E0EC01FE010301F8EC07FC6D01FFEC1FF86D6C9039F801FFE0021F90B65A02
+0793C7FC020115FCDA001F14E0030049C8FC46467AC453>I<BA12FCA485D8001F903880
+0001EF003F180F180318011800A2197F85A385A2177CA2F10F80A405FC90C7FCA3160116
+03161F92B5FCA5ED801F160316011600F101F0A2177CF103E0A594C71207A21AC0A2190F
+A2191FA2193FF17F8019FF601807181F4DB5FCBBFC1A00A444437DC24B>69
+D<BA12E0A419F0D8001F903880000F1700183F181F180F1807180319F81801A31800A3EE
+01F0197CA419001603A31607160F163F92B5FCA5ED803F160F16071603A31601A693C9FC
+AEB712FCA53E437CC248>I<DCFFFC1438033FD9FF8013F84AB6EAF001020FEDFC03023F
+EDFF0791B5D8F003138F4991C7EA7FDF010701F8EC1FFF4901E01407490180804990C9FC
+D97FFC167F495A48183F4849161F4A160F5A48491607A2485B19035A91CAFC19015AA349
+94C8FC12FFAC057FB612F8A2127F7FA2DD0001EBF8007EA2807EA26C7FA26C7F7E806C7F
+6C7F6D7E6D6C5D6D13C06D6D5C6D01F85C010101FF143F6D9139F801FFDF023F90B6128F
+020F16030201EDFC00DA003F02E01338030049C9FC4D467AC45A>I<B7D8F007B71280A5
+D8001F0180C801FCC7FCB3A792B8FCA50380C8FCB3AAB7D8F007B71280A551447CC35A>
+I<B712F0A5D8001FEB8000B3B3B3A4B712F0A524447DC32B>I<49B712C0A590C70007EB
+C000B3B3A8EA07C0EA1FF0487E487E487EA45D5FA2494990C7FC007F5CD83FF05C49495A
+3A0FFE03FFF06CB65A000115806C6C01FCC8FC010713C032457EC33B>I<B700F00103B5
+12FCA5D8001F0180C8381FFC00F10FF04F5AF13F8007FFC7FC4E5A4E5A4E5A4E5AF03FC0
+4E5A4EC8FC4D5A4D5AEF07F0EF1FE04D5A4D5A4DC9FC4C5AEE07F8160F161F4C7E4C7E93
+B5FC1583038780038F80039F80DBBFCF7FEDFF0F4B6C7F4B6C7F4B6C7F15F0DBC0007F4B
+6D7F717FA2717F717F717FA2717F717F717FA2727F727F727F727FA2727F727F727FA286
+B700F0017F14FFA550447CC35A>I<B600C0051FB512F06F5FA26F5FA2D8001FF380006F
+17F7A2DABFFCEE01E7A2DA9FFEEE03C7A2DA8FFFEE0787A202876DED0F07A302836D151E
+A202816D153CA202806D1578A26F6C15F0A36F6CEC01E0A26F6CEC03C0A26F6CEC0780A2
+6F6DEB0F00A36F6D131EA26F6D5BA26F6D5BA2706C5BA2706C485AA3706C485AA2706C48
+5AA270018FC7FCA27013DEA37013FCA2705BA2715AA2715A497EB600F0043FB612F0715A
+A2715A71C7FC64447CC36D>77 D<B66C0207B6128081818181D8001F6D91260001FEC7FC
+735A8181828202BF7F149F028F7F02877F8202837F148102807F6F7F836F7F6F7F816F7F
+6F7F836F7F6F8082707F707F84707F707F82707F707F19807113C07113E0837113F07113
+F819FC7113FE7113FF838484A284848484A28484197F193F191FA2496C160FB600F01507
+1903190119001A7851447CC35A>I<923803FFE0037F13FF0203B612E0021F15FC027F90
+38007FFF902601FFF8010F13C04901C001017F010F496D13F84948C8EA3FFC49486F7E49
+486F7E01FF8448496F7F4A81488548496F7FA248496F7FA2488591CA127F4885A3488549
+83A400FF1A80AD007F1A006D5FA36C61A26E16FF6C61A36C6D4B5BA26C6D4B5B6C616E5D
+6C6D4B5B6C6D4B5B6D6C4B90C7FC6D6C4B5A6D6D4A5A6D01E001035B010301F8010F13E0
+6D01FF017F5B6D6C90B6C8FC021F15FC020715F0DA007F91C9FC030713F049467AC456>
+I<B812FEEFFFF018FE727E85D8001F90C7001F13F005037F05007F727E727E841A801AC0
+84A21AE0A91AC0A24E1380A21A00604E5A4E5A05035B051F13E092B75A96C7FC18F818C0
+0380CAFCB3A7B712F0A543447CC34E>I<B812F8EFFFC018F818FF19C0D8001F90C7003F
+7F050313F805007F727E727E84868684A286A762A24E5BA297C8FC4E5A4E5A4D485A0507
+5B053F13C092B7C9FC18FC18F018FC92C77F94383FFF80050F7F717F717F85838583A685
+A61B0773EB0F80A372141F1A8072EC3F00B700E06D13C072EBF0FE72EBFFFC06015C726C
+13E0CC0003138051457CC356>82 D<DAFFF8130701079038FF800F013FECE01F49ECF83F
+48B6EAFE7F48D9C00FB5FC3907FE00014848EB003FD81FF080160748488082484880A283
+12FF83A27F837F7F7F01FF92C7FC6C13C014FEECFFE06C14FF16F06C15FC16FF6C16C06C
+826C826C826C82013F81010F811303D9003F15801403DA001F14C01500163F040F13E016
+03A200788100F881A3177F7EA218C07EA26CEEFF80A26D4A130013E06D4A5A01FE4A5A6D
+6CEB1FF802FCEBFFF0486CB65AD8FC1F5DD8F80792C7FC48C614FC48010713C033467AC4
+40>I<003FBA12F8A5DA0007EBE000D87FF8EF1FFC01E0170F4917035B90C71601007E18
+00A3007C197CA400FC197E48193EA5C81700B3B3A20103B812C0A547437CC250>I<B700
+F0011FB512FEA5D8001F0180C83807F800735AB3B3A71907A26D6D5EA2190F7F6F4B5A7F
+6F4B5A6D4DC7FC6D6D5D6E6C4A5A6E6CEC07FC91261FFFC0EB1FF802079039F801FFF06E
+90B612C0020093C8FC033F5C030714F0DB003F90C9FC4F457CC358>I<B76C49B6FCA5C6
+6C90C900011300735A6D6D5E19016D606F15036D606F1507A26D6D5E190F6D606F151F6D
+606F153F6D95C7FC6F5DA26E6C157E19FE6E5E7013016E5E701303A26E6D5C18076E5E70
+130F6E5E70131F6E5E70133FA26E6D91C8FC60037F147E7013FE6F5C1781A26FEBC1F817
+C36F5C17E76F5C17FF6F5CA36F5CA26F91C9FCA2705AA3705AA2705AA2705AA2705A5045
+7DC357>I<B700C0027FB512C0A5D8003F01C0C80001EB80006D6D6F48C7FC6F4B5A7F6D
+6D4B5A6F4B5A6D170F6D6D5E6F4B5A6D173F6E6D5D6E6D4AC8FC616E6D5C6E6D495A4E5A
+6E7F6E6D495A70495A6E151F6E6D5C71485A6F147F6F01C090C9FCEFE0FE6F13E16FEBF1
+FCEFFBF86FEBFFF081606F5C81607090CAFC825FB3A44AB712C0A552447EC357>89
+D<903801FFF8011FEBFF80017F14E090B612F8489038807FFC3A03FE001FFE486CEB07FF
+486E7F0280806F7FA36F7F6C90C7FCA26C5AEA00F890C8FCA2150F021FB5FC0103B6FC13
+1F017F13C03901FFFC004813E0000F13804890C7FC485A5B485AA2485AA45DA26C6C5BED
+07BF6C6C010F13FC6CB490391F3FFFE06C9026C0FE1F13F06CEBFFFC6CECF007C66CD9E0
+0113E0010790C9FC342F7DAD38>97 D<EB7FC0B5FCA512037EB1ED1FFC92B512C002C314
+F002CF14FC9139DFF01FFF9126FF800713809126FE000113C04A6D13E002F015F04A147F
+18F8173F18FCA2EF1FFEA318FFAB18FEA3173F18FCA218F8177F6E15F06EECFFE06E4913
+C06E49138091263F800F1300903AFE1FE03FFE496CB55AD9F80314F049C61480C8D81FF8
+C7FC38467DC440>I<EC3FFE49B512E0010F14F8013F8090397FF807FE9039FFE001FF48
+4948138048018014C048495A485A121FA2485A6F1380A2007F6E130049EB007C93C7FC12
+FFAC127F7FA2123FEE03E06C7E16076C6C15C06C150F6C6DEB1F806C6DEB3F006C01F013
+FE90397FFE03FC6DB55A010F5C010314C09026003FFCC7FC2B2F7CAD33>I<EFFF804BB5
+FCA5ED000782B1EC1FFC49B51283010F14E3013F14F390267FFC07B5FC9038FFF0004801
+C0133F48497F4890C77E484880121F5B123FA2127F5BA312FFAB127FA36C7EA2121F7F00
+0F5D6C6C5C5E6C6D90B512C06CD9E00114FF39007FF80F6DB512E7010F14C70103140790
+26003FF0EBFC0038467CC440>I<EC1FFE49B512C0010714F0011F14FC90397FFC0FFE90
+3AFFE003FF804849C613C0485B4890C7EA7FE048ED3FF0485AEE1FF8485AA2007F150F49
+15FCA212FFA390B7FCA317F801F8C9FCA5127FA27FA2003F1638177C6C6C15FCA26C6CEC
+01F86C6D13036CED07F06C6DEB0FE06C01F0EB3FC0903A3FFE01FF806DB5EAFE0001075C
+010014F0020F90C7FC2E2F7DAD35>I<913801FFC0021F13F0027F13FC49B57E49EBC3FF
+903807FE074948481380EB1FF8EB3FF0EB7FE0A349486C13006F5A6F5AED007093C7FCAA
+B612FCA5C601E0C8FCB3B0007FEBFFE0A529467DC523>I<902601FFF013FF010FD9FE03
+1380013FD9FF8F13C090B812E048D9C07F13BF489039001FF83F4848EB0FFC4848EB07FE
+001F9238FF1FC0496DEB0F8094C7FC003F82A7001F93C7FCA26D5B000F5D6C6C495A6C6C
+495A6C9038C07FF04890B55A1680D8078F49C8FC018113F0D80F80CAFCA47F7F13F890B6
+12E016FEEEFFC06C16F0836C826C82831207481780D81FF8C77ED83FE014074848020113
+C000FF8149157FA56D15FF007F17806D5C6C6C4A1300D81FFCEC0FFE6CB4EC3FFC6C9039
+E001FFF8000190B612E06C6C1580010F02FCC7FCD9007F138033427DAC39>I<EB7FC0B5
+FCA512037EB1923803FF80031F13F0037F7F92B57E9139C1FC1FFE9139C3E00FFF9126C7
+C0077FECCF0002DE7F02FC81A25C5CA35CB3A7B600C1B61280A539457CC440>I<13FCEA
+03FF4813804813C0A24813E0A66C13C0A26C13806C1300EA00FC90C7FCA9EB7FC0EA7FFF
+A512037EB3AFB6FCA518467CC520>I<EC03F0EC0FFC4A7E4A7EA24A1380A66E1300A26E
+5A6E5AEC03F091C8FCA9EDFF8049B5FCA5EB000780B3B3A6EA1FC0EA3FE0EA7FF0EAFFF8
+5C1600A24A5AA249485A007F495A6C48485A6CB512C06C5C000349C7FC38007FF0215A87
+C523>I<EB7FC0B5FCA512037EB293387FFFF0A593380FF8004C5AEE3FC04C5A4B48C7FC
+ED03FC4B5A4B5AED3FE0ED7F804BC8FCECC1FE14C7ECCFFF02DF7F91B57E82A202FD7F02
+F07F4A7F4A6C7E153F6F7E6F7F83816F7F6F7F6F7F83167F707E83B66CB512FCA536457D
+C43C>I<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC420>I<90287FC003FF80EB07
+FFB5011F01F0013F13E0037F6D90B57E92B56C4880913DC1FC1FFE03F83FFC913DC3E00F
+FF07C01FFE00039026C7C00790398F800FFF6CD9CF00EC9E0002DE6D01BC7F02FC03F815
+80A24A5D4A5DA34A5DB3A7B600C1B60083B6FCA5582D7CAC5F>I<903A7FC003FF80B501
+1F13F0037F7F92B57E9139C1FC1FFE9139C3E00FFF00039026C7C0077F6CEBCF0002DE7F
+02FC81A25C5CA35CB3A7B600C1B61280A5392D7CAC40>I<EC1FFE49B512E0010714F801
+1F14FE903A7FF807FF809026FFE0017F48903980007FE04890C76C7E48486E7E000F8249
+140F001F82A2003F824980007F1780A400FF17C0AA007F1780A46C6C4A1300A2001F5EA2
+6C6C4A5A00075E6D143F6C6D495AC69039E001FFC090267FF8075B6DB6C7FC010F14FC01
+0114E09026001FFEC8FC322F7DAD39>I<90397FC01FFCB590B512C002C314F002CF14FC
+9139DFF03FFF9126FF800F138000039026FE000313C06C496D13E002F015F04A7FEF7FF8
+A218FC173F18FEA3EF1FFFAB18FE173FA318FC177F18F817FF6E15F06E4913E06E4913C0
+6E4913806E6C4813009238E07FFE02EFB55A02E314F002E01480DB1FF8C7FC92C9FCADB6
+12C0A538407DAC40>I<90397F803FC0B5EBFFF0028313F8028713FC91388FE7FE91389F
+8FFF0003EB9E0F6C13BCA214F8A29138F007FEED03FC9138E001F892C7FCA35CB3A5B612
+C0A5282D7DAC2F>114 D<90391FFE078090B512DF000314FF5A380FF803381FE000D83F
+80133F127F90C7121FA248140FA27FA201E090C7FC13F8EBFFC06C13FEECFFC06C14F015
+FC6C806C806C1580000115C07E011F14E01301D9000713F014000078147F00F8143F151F
+6C140FA37E6C15E0151F6D14C06D133F01F0EB7F809039FC03FF0090B55A00FC5CD8F83F
+13F0D8F00790C7FC242F7CAD2D>I<EB01F0A51303A41307A2130FA2131FA2133F137F13
+FF1203000F90B512C0B7FCA4C601F0C7FCB3A3ED01F0AA017FEB03E014F81507D93FFC13
+C090391FFE1F806DB512006D5B01015B9038003FF024407EBE2D>I<D93FE0EC7FC0B549
+B5FCA50003EC00076C81B3A85EA35E6C5DA26E013D7F017F02F9EBFF8090393FFC03F16D
+B512E16D14C1010314019026003FFC91C7FC392E7CAC40>I<B690380FFFF8A5000301E0
+010013006C167C6E14FC6C5E801601017F5D6E1303013F5D6E1307011F5D6E130F6D5DED
+801F6D92C7FC15C05E6D143EEDE07E6D147CEDF0FC6D5C15F9027F5B15FF6E5BA36E5BA2
+6E5BA26E90C8FCA26E5AA26E5AA26E5A352C7DAB3C>I<B5D8FE1FB539801FFFF0A50003
+9027C0007FF0C7EAFE00043F157C6E6E14FC6C031F5D6E6E13016C61836E013F1403017F
+606E496C1307013F606EED800F011F91B55C16F9DAFF01ECC01F6D02F092C7FC03816E5A
+6D0183153EEEE07F03C7ECF07E6DDAC03F137C03E7ECF8FC6D01EF5DEE801F03FF14FD6D
+DA000F5B18FF6E486D5BA36E486D5BA26E486D5BA2020F93C8FC4B7FA26E48147E6E4814
+3C4C2C7DAB53>I<007FB590387FFFF8A5C601F890380FF8006D6CEB07E0013F4A5A6D6C
+131F6E495A6D6D48C7FC6DEBC0FE6DEBC1FC6DEBE1F8EDF3F06DEBFFE0806E5B6E5B93C8
+FC6E7F6E7F6E7FA24A7F4A7F4A7FEDBFFEEC3F1F91387E0FFF02FE8049486C7F49486C7F
+49487E49486C7F4A8049486D7E49C76C7ED9FF80131FB500F090B512FEA5372C7EAB3C>
+I<007FB5398007FFFCA5000101F0C7EA7F806CEE3E006E147E017F157C8017FC013F5D6E
+1301011F5D6E13036D5DED80076D5DEDC00F6D5D15E0161F6D92C7FC6F5A6D143EEDF87E
+027F137CEDFCFC023F5B15FF6E5BA36E5BA26E5BA26E5BA26E90C8FCA26E5AA2157CA215
+FC5D1401000F5C383FC003D87FE05B1407D8FFF05B140F5D141F4AC9FC387FE07E495A38
+3F87F8EBFFF06C5B00071380D801FCCAFC36407EAB3C>I<001FB7128017C0A39026FE00
+1F138001F05B49491300495C49495A48485A4A5B5E4A5B003E5B4A5B5E4A90C7FC5CC748
+5A5D495B5B495B5D499038C007C05B49138015004948130F01FF1580485B5C4849131F5A
+485B4A133F4849137F4815FF48EB000349011F1300B8FCA37E2A2C7DAB33>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmtt12 14.4 22
+/Fl 22 121 df<003FB712F84816FCB812FEA46C16FC6C16F82F0879A83E>45
+D<EA0780EA1FE0EA3FF0EA7FF8A2EAFFFCA4EA7FF8A2EA3FF0EA1FE0EA07800E0E688D3E
+>I<177817FCEE03FE1607161F163FEEFFFC030313F84B13F0031F13C04B13809238FFFE
+004A13F802075B4A13C0023F5B4A48C7FC49485A4913F0010F5B491380017F90C8FCEBFF
+FC00035B4813E0001F5B4890C9FC485AEAFFF85BA27FEA7FFE6C7E6C13C000077F6C13F8
+C67F6DB4FC011F7F6D13E001037F6D13FC6D6C7E6E6C7E020F7F6E13F0020113FC6E7F92
+383FFF806F13C0030713F06F13F8030013FCEE7FFE161F16071603EE00FC17782F3C79C2
+3E>60 D<003FB712F84816FCB812FEA46C16FC6C16F82F08797C3E>95
+D<90380FFFC0017F13F848B512FE486E7E4815E04881823A1FFC007FFC49EB0FFE1507ED
+01FFA26C486D7F6C48147FC97F163FA60203B5FC147F0103B6FC131F137F90B7FC0003EC
+C03F48EBF800481380D81FFCC7FCEA3FF05B485A5B12FF90C8FCA56D147F127F6D14FF6C
+6C130301F8010F7F6CB490B612F86C90B7FC18FC6C15CF000115076CDAFC0313F8013F90
+38F0007F010790C9FC363679B43E>97 D<913807FFF0023F13FE49B61280010715C04915
+E04915F0137F903AFFFC003FF84801E0131F48138091C7FC485A4848EC0FF049EC07E048
+4891C7FC5B123F5B127F5BA312FF90CAFCA97F127FA27F123F7F17FC6C6CEC01FE7F6C7E
+6C6C14036DEC07FC6C01C0130F6C01F0EB1FF86C01FEEBFFF06DB612E06D15C0010F1580
+6D1500010114FC6D6C13F0020790C7FC2F3678B43E>99 D<EC1FF891B57E010314E0010F
+14F84980017F8090B7FC48D9F80F1380DAC00113C048496C13E04848C7123F4848EC1FF0
+49140F484815F81607484815FCA248481403A24915FEA200FF1501A290B7FCA517FCA290
+CAFC7FA2127FA27F123F6D15FCA26C6CEC01FE7F6C6C14036C6C14076DEC0FFC6C6D131F
+6C01E0EB7FF86C9039FC03FFF06DB612E06D15C06D158001071500010114FC6D6C13E002
+0790C7FC2F3679B43E>101 D<923801FFC0030F13F0033F13FC92B512FE5C4A14FF5C4A
+1303EC1FF89238F001FEEC3FE09238C000FC027F14005DAA003FB712F05AB812F8A36C16
+F0A2C7D87F80C7FCB3B3003FB7FCA2481680A36C1600A2304A7CC93E>I<DA0FF0EB1FF0
+DA7FFEEBFFFC49B5008313FE010714EF4991B6FC5B5B90267FF81F13F19026FFE007EB00
+FEDA8001147C4890C7EB800049147F00038249143FA200078249141FA66D143F00035EA2
+6D147F00015E6D14FF6C6D4890C7FCECE00790397FF81FFE90B65A5E485D5E01F9148027
+03F87FFEC8FCEC0FF091CAFCA46C7EA213FF6C90B512F8EEFFC06D15F090B712FC4816FF
+4817804817C04848C7000F13E0D81FF09138007FF04848ED1FF84915074848ED03FC90C9
+1201A24817FE481600A56C1601A26C6CED03FC6D15076C6CED0FF8D81FF8ED3FF001FE15
+FF6C6C6C010313E06C01FC017F13C06C90B71280C6EEFE006D5D011F15F0010715C00100
+4AC7FC020713C038517DB33E>I<143E147F4A7E497FA56D5B6EC8FC143E91C9FCAC003F
+B57E5A81A47EC7123FB3B3007FB71280B812C0A56C16802A4A76C93E>105
+D<EA7FFFA2B57EA37EA2EA003FAF031FB512F05D18F8A318F0819239003FF0004C5A4C5A
+4B5B4B90C7FC4B5A4B5A4B5A4B5A4B5A4B5A02815B028390C8FCEC87FE148FEC9FFF02BF
+7F91B57EA2EDBFE0ED1FF04A6C7EECFC0702F87F4A6C7E4A6C7E4A7E4A80707E707E161F
+83707E707E160383707E007FB5D8C03F13FEA2B66C4813FFA36C4A6C13FEA238497DC83E
+>107 D<007FB512C0B6FC81A47EC7121FB3B3B3A5007FB712F8B812FCA56C16F82E4978
+C83E>I<DA0FC0137E3C7FF07FF003FF8000FF9026FFFC0713E001FBD9FE1F7F90B55B6F
+487FA26C903AF07FFF83FC00039039C03FFE01028013FC020001F87F031F1300495CA249
+5CA4495CB3A93D7FFFC0FFFE07FFF0B500E16D4813F802E35CA302E1806C01C0496C13F0
+3D3480B33E>I<ED07FC3B3FFF803FFF804891B512E0B500C38002C78002CF806C01DF80
+6C9038FFF80FD8003F9038C003FFED00014A7F4A815C177F5CA25CA35CB3A8003FB5D8C0
+7FB51280486EB612C0B66C15E0A36C4A15C06C4A6C14803B347FB33E>I<EC1FF0ECFFFE
+01036D7E010F14E04980017F14FC90B67E489038F01FFFECC00748D90001138048486D13
+C04848EC7FE049143F4848EC1FF049140F003F16F8491407A24848EC03FCA448C8EA01FE
+AA6D1403007F16FCA26D1407A2003F16F86D140F6C6CEC1FF0A26C6CEC3FE06D147F6C6C
+ECFFC06D5B6CD9C00713806CD9F01F13006C90B55A6D5C6D5C010F14E001031480010049
+C7FCEC1FF02F3679B43E>I<ED07FC3B3FFF803FFF804891B512E0B500C314F802CF8002
+DF806C90B7FC6CDAF80F1380D8003FD9C00113C092C713E04A143F4AEC1FF04A15F84A14
+0F4AEC07FCA217034A15FE1701A318FF83A95F18FEA280170318FC6E140718F86E140FEF
+1FF06E143F6EEC7FE06EECFFC0DBC0031380EDF01F92B6120002DF14FC02CF5C02C35C02
+C114C0DAC07F90C7FCED0FF892C9FCB3003FB512C04880B67EA36C5C6C5C384F7FB33E>
+I<EE07FE263FFFF890387FFFC0484AB512E0B5D8FC0714F05D4B14F86C5C6C91387FFC0F
+D80003EBFFC002FD90380007F0DAFFFEEB03E003F890C7FC5D5DA25D5DA292C9FCA25CA4
+5CB3A3003FB612FC4881B7FCA37E6C5D35347CB33E>114 D<903901FFF00F011F9038FE
+1F8090B612BF000315FF5A5A5A393FFE003F01F01307D87FC0130190C8FC5A48157FA47E
+EE3F00D87FC091C7FC13F0EA3FFE381FFFF06CEBFFC06C14FE6C6E7EC615E0013F14F801
+0780D9003F7F02007F03071380030013C0003EED3FE0007F151F48150F17F06D1407A37F
+A26D140F6D15E0161F01FCEC3FC06D14FF9026FFC00F138091B612005E485D013F5C6D14
+E0D8FC0714802778007FF8C7FC2C3677B43E>I<147C14FC497EAD003FB712FC5AB87EA3
+6C5EA2260001FEC9FCB3A6173FA2EF7F80A76E14FF6D16006F5A9238C007FE91387FF01F
+92B55A6E5C6E5C6E5C6E1480020149C7FC9138003FF031437DC13E>I<263FFF80EB7FFF
+4892B5FCB56C4880A36C806C81D8003FEC007FB3AC17FFA25E5E80011F140F6E5B02FE90
+B612806DB812C06D17E083010114FE6DDAF83F13C0023F01E01480020790C9FC3B347FB2
+3E>I<267FFFF890383FFFFCB56C4913FE6E90B5FCA34A7F6C496D13FCC648C8EAFE00A2
+6D14016D5DA26E1303013F5DA26E1307011F5DA26E130F010F5DA26E131F01075DA26E13
+3F01035DA26E137F010192C7FCA26E5B01005CA2ECFF01027F5BA21583023F5BA215C702
+1F5BA215EF020F5BA215FF6E5BA36E5B6E90C8FC6E5A37347DB23E>I<271FFFFE01B512
+E04817F0486D4814F8A36C496C14F06C17E03C003FE0001FF0006D6C5C010F4A5A6D6C49
+5A6E13FF6D6C91C7FC0101495A6D6C485AEC7F83EDC7F891383FCFF06EB45A805E6E5B6E
+90C8FC806E5A14014A7E824A7F5C91381FEFE0EDC7F091383F87F891387F03FCECFF0102
+FE7F49486C7E01036E7E4948133F4A80010F6E7E49486D7E4948801607263FFFFC90387F
+FFF8486D90B512FCB516FEA36C17FC6C496D13F837337DB23E>120
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fm cmsl10 10.95 57
+/Fm 57 123 df<EA0780EA1FE0123F13F0A6EA0F30120013701360A213E013C0A21201EA
+038013005A120E120C121C5A5A5A5A0C1C71BE19>39 D<EA0780EA0FE0EA1FF0123FA512
+1FEA0F301200A213701360A213E013C0120113801203EA07001206120E5A5A5A5A5A0C1C
+7A8919>44 D<007FB5FCA2B512FEA418067C961E>I<121EEA3F80EA7FC012FFA41380EA
+7F00123C0A0A788919>I<EC07F8EC3FFF9138FC0FC0903903F003E0903907C001F0D90F
+8013F849C7FC013E14FC017E147C017C147E13FC485AA20003157F5B1207A2120F5BA212
+1F16FF5BA2123FA44848EB01FEA648C7EA03FCA5ED07F8A25A16F0A2150F16E0A3ED1FC0
+A21680007E143F1600157E123E003F5C4A5AD81F805B000FEB07E06C6C485A2603F03FC7
+FC3800FFFCEB1FE0283F79BC2D>48 D<157015F014011407143F903803FFE0137FEBFFCF
+EBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA513
+0F5CA3131F497EB612F8A31D3D78BC2D>I<EC01FE91380FFFE0023F13F89138FC07FC90
+3901E001FE903907C000FF49C7EA7F80011E15C0163F4915E05B0170141F13FF80A35A16
+3FA26C90C7FC137E0118EC7FC090C8FCEEFF80A24B1300A24B5A5E4B5A4B5A4B5A5E4B5A
+4BC7FC15FEEC01F84A5A4A5A4A5A4AC8FC143E5C5CEB01E04948130E49485B49C7FC131E
+495C13705B48485C484814F0000FB6FC5A485D5AB7FC5EA22B3D7CBC2D>I<161C163C16
+7CA216FCED01F815031507150FA2151DED3BF0157315E315C31401EC038391380707E014
+0E141CA2143814709138E00FC0EB01C014801303EB0700130E49EB1F805B133013705B48
+5A4848EB3F0090C7FC5A120E5A5A48147E1260B8FCA3C73801FE00A25DA41403A25DA314
+074A7E0107B512F8A3283E7BBD2D>52 D<ED7F80913803FFE091380FC0F091383E003802
+FC131C495A494813FE903807E003EB0FC090381F8007133FD97F0013FC01FE1303ED01F0
+484890C7FC1203A2485AA2120F5BA2001FEB3F809038E0FFE0393FE3C0F89038E7007C01
+EE7F01FC133F4848EB1F80A24914C05B16E0A2485AA216F05BA2ED3FE0A290C7FCA4157F
+16C0A316804814FF007E1500007F5C14016C5C4A5A6C6C485A4A5A6C6C485A2607E07FC7
+FC3803FFFEC613F8EB3FC0273F78BC2D>54 D<17E016011603831607A2160FA2161F8316
+3FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E151E151C153C
+03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA202
+70C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2137CD801FE
+4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65
+D<013FB7FC18E018FC903B007FE00007FE6E48903801FF809438007FC05DF03FE0F01FF0
+A3027F16F892C8FCA54A16F04A153F19E0187F19C0F0FF8001014B13004A4A5A4D5AEF1F
+F04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0EF0FF0EF07FC717E010715014A8171
+1380A319C0130F5CA5011F4B13805C19005F601707013F4B5A4A4A5A4D5A4D5A017F9138
+01FF8001FF020F90C7FCB812FC17F094C8FC3D3E7DBD40>I<DCFFC01338030F01F01378
+037F01FC13F0913A01FF803F01913A07FC000781DA1FE0EB03C3DA7FC0EB01E74AC812FF
+4948ED7FE0D907FC153F495A4948151F495A4948150F494816C018074890C9FC485AA248
+5A000F1880491603121FA248481607A295C7FC485AA412FF5BA75BA2181C183C1838A27F
+007F1778187018F0003F5F6D150160001F16036C6C4B5A95C7FC6C6C5D6C6C151E6C6C5D
+6C6C15F86D6C495A6D6CEB07C0D91FF0EB1F80D907FE01FEC8FC0101B512F86D6C13E0DA
+07FEC9FC3D4276BF42>I<013FB7FC18E018F8903B007FF0000FFE6E48EB01FF9438007F
+C04B6E7E180F85727E727E147F4B6E7EA2727EA302FF178092C9FCA54918C05CA41A8013
+034A5DA41A0013074A5DA261A24E5A130F4A5E180F61181F61011F4C5A5C4E5A4EC7FC4D
+5A4D5A013F4B5A4A4A5AEF3FE0EF7F80017F4A48C8FC01FFEC1FFCB812F0178004FCC9FC
+423E7DBD45>I<013FB812F8A39026007FF0C7127F6E48140F18034B14011800A3197814
+7F4B1570A502FF147092C7FCA3190017F0495D4A1301A21607161F91B6FC495DA29138FC
+003F160F1607160301075D5CA219E0180119C0010FEC07004A90C712031980A218071900
+011F5E5C181EA2183E183C013F167C4A15FC4D5A1707017F151F01FF4AB45AB9FCA2603D
+3E7DBD3E>I<013FB812E0A3903A007FF000016E48EB003F180F4B14071803A31801147F
+4B15C0A514FF92C71270A395C7FC17F0495D5C160116031607161F49B65AA39138FC003F
+160F160701075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5133F5CA3137FEBFFF0B612
+F8A33B3E7DBD3B>I<4BB46C1370031F01F013F0037F9038FC01E0913A03FF807E03913A
+0FF8000F83DA1FE0EB07C7DA7F80EB01EF4AC812FFD903FE16C04948157F4948153F495A
+4948151F495A4948168091C9120F5A485AA2485A000F18004982121FA248485EA295C7FC
+485AA412FF5BA6043FB512E05BA29339001FFC00715AA2607F127FA2171F123F6D5EA212
+1F7F000F163F6C7E6C6C4B5A7F6C6C15FF6C6DEB01EFD93FC0EB07C7D91FF0EB1F87D907
+FE9038FE03800101B5EAF8016D6C01E0C8FCDA07FEC9FC3C4276BF47>I<013FB5D8F807
+B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B5DA4181F14FF
+92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA45F130F4A5DA4
+1703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC6115C0483E7DBD
+44>I<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FCA55B
+5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2B6FC263E7EBD21>
+I<013FB512FEA25E9026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9FCA55B5CA51303
+5CA513075CA21838A21870130F5CA218E0A3011F15014A15C01703A21707EF0F80013F15
+1F4A143F177FEFFF00017F140301FF143FB9FC5FA2353E7DBD39>76
+D<90263FFFF093381FFFF85013F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2
+DA39FCED039FA2F1073F14790271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC
+19E0A2F001C06201016D6C495A02C05FF00700A2180E6F6C14010103161C028003385BA2
+18706F7EF0E00313070200DA01C05BA2923907F00380A294380700075B010E902603F80E
+5C5FA25F190F011E6D6C5A011C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC01
+7C5C01FE027E143F2607FF80017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>
+I<90263FFFE0023FB5FC6F16FEA29026003FF8020313C0021F030013004A6C157C023B16
+3C6F15381439810238167802787FDA707F157082153F82031F15F002F07FDAE00F5D8215
+078203031401010180DAC0015D82811780047F1303010315C04A013F5C17E0161F17F004
+0F1307010715F891C7000791C7FC17FC160317FE04015B4915FF010E6E130E188E177F18
+CEEF3FDE011E16FE011C6F5AA2170FA21707133C01386F5A133C017C150113FE2607FF80
+1400B512FC18705C483E7DBD44>I<923803FF80031F13F09238FE01FE913903F0003FDA
+0FC0EB1FC0DA3F80EB07E0027EC76C7E49486E7E49488149486E7E4948157F495A013F17
+804948ED3FC049C9FCA24848EE1FE012035B000718F05B120FA2485A19F8123F5BA2127F
+A219F04848163FA5F07FE0A35BF0FFC0A219805F19007F4D5A127F4D5A60003F160F6D5E
+001F4C5A4D5A6C6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C4A5A017FEC1FC06D6C
+495AD90FE001FEC8FC903903F807F80100B512C0DA0FFCC9FC3D4276BF47>I<013FB612
+FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC0183F19E0F01FF0A2147F
+5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A4D5AEF0FF80103ED
+3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5CA5131F5CA5133F5CA3
+137F497EB612E0A25D3D3E7DBD3E>I<013FB612F017FF18E0903B007FF0003FF86E48EB
+07FCEF01FE4B6D7EF07F8019C0183F19E0147F4B15F0A502FFED7FE092C8FCA219C0F0FF
+80A2494B13004A5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B612F017809139FC0007
+E0EE03F8EE00FC0107814A147F717EA284A2130F5CA484011F157F5CA41902013F17075C
+A2F0F00F017F170E496C143FB600E0011F131C94380FF83C4B01071378CA3801FFE09438
+003F8040407DBD43>82 D<9238FF80070207EBE00F021FEBF81E91387F00FE02FCEB1F3E
+D903F0EB0FFE49481307494813034AEB01FC49C7FC491400133E137E177C491578A57F17
+70A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F0203
+1480DA003F13C015031500EE7FE0163F161FA2160F121CA31607160F003C16C0A3178000
+3E151F1700007E5D007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F
+8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF33>I<0007B912F0A33C0FFE000F
+F8003F01F0160F01C04A13034848160190C7FC121EF000E048141F5E1238A21278127015
+3F5E5AA3C81600157F5EA515FF93C9FCA55C5DA514035DA514075DA5140F5DA3141FEC7F
+FC0003B7FCA33C3D76BC42>I<B600E090B512FC4B15F8A2000101C0C7000F13006C49EC
+03FCEF01F091C9FC60A317015A495EA417031203495EA4170712074993C7FCA45F120F49
+150EA4171E121F49151CA4173C123F491538A31778177017F05F001F15015F16036D4A5A
+000F93C8FC5E6C6C141E6C6C5C000115F86C6C495A017FEB07C090393FC03F8090260FFF
+FEC9FC010313F89038007FC03E4073BD44>I<B6020FB5FC19FEA2000301E0020113E06C
+01809138007F8091C9EA7E006C173C18386E15781870017F16F0604D5A804D5A133F4DC7
+FCA26E140E171E011F151C173C17386E1478010F15705FA24C5A8001074A5AA24CC8FC5E
+6E130E0103141E161C163C16386E5B13015EA24B5A14FF6D495AA24BC9FC5D158EEC7F9E
+159C15B8A215F0143F5DA25DA26E5AA292CAFCA2140E404074BD44>I<B6017FB5D88007
+B512804A1A00A2000701C0010101E0C713F06C90C80180EC3FC06C48735A99C7FC057F15
+0E1B1E6D191C6C1A3C1B3805FF15787214705E636EEB03BF017F4E5AEE073F505A040E7F
+051F4AC8FC161C6E170E013F143862167804706D5BEEF00F04E05D90381FE00104C015F0
+03035E0480140106F85B9226070007130302F05F010F010E150797C9FC5D190E4BEB03FC
+616E5A01075F5D61DAF9C014FE05015BECFB8002FF6F5A7F92C75CA24A93CAFC835C606D
+5A605C604A15781870594074BD5D>I<010FB500F090B512F85B5FD9003F902680003F13
+00DA0FFEC7EA1FF84BEC0FE00207168096C7FC6E6C141E181C6E6C143C606E6D5B4D5ADB
+7FC05B4D5A92383FE0074DC8FC92381FF01E171C6F6C5A5F923807FCF0EEFDE06FB45A5F
+6F90C9FCA26F7FA2707EA216FF4B7FED03DF9238079FF0ED0F1F92380E0FF8151C92383C
+07FC15784B6C7EEC01E04B6C7EEC038002076D7F4AC7FC021E6E7E5C02386E7E5C02F06E
+7E495A49486E7E130749486E7E497E017F4B7E2603FFF091383FFF80007F01FC49B512FE
+B55CA2453E7EBD44>I<B66C0103B51280A3000101F0C8EBF0006C49ED7FC06D486FC7FC
+6E153E013F163C606D6C5D606D6C4A5A17036D6C4A5A95C8FC6E140E0103151E5F6D6C14
+385F6D6D13F04C5ADA7FC05B4C5AEDE007023F49C9FC161E91381FF01C5E91380FF8785E
+6E6C5AEDFDC015FF6E5B93CAFC6E5AA35DA21403A45DA21407A45DA2140FA4141F4A7E01
+3FB512F0A3413E75BD44>I<010FB712FEA39239C00007FCD91FFCC7EA0FF814F04AEC1F
+F00280EC3FE091C8EA7FC0013EEDFF80A2013C4A13004C5A494A5A4C5A13704C5A4C5A49
+4A5A4C5AA290C74890C7FC4B5A4B5A4B5AA24B5A4B5A4B5A4B5AA24A90C8FC4A5A4A5A4A
+5AA24A5A4A5A4A48EB01C04A5AEF03804990C7FC495A495A494814071800495A49485C49
+5A495A171E4890C8123E485A4848157E484815FE4C5A484814074848141F4848EB01FFB8
+FC5FA2373E7BBD38>I<EC7FC0903803FFF890380FC07E90383E003F496D7E01FF6D7E82
+A248140782A26C5A137890C7120FA25EA2EC03FF147F903807FF1FEB1FE0D97F805B3801
+FE00EA03F8485A4848133F485A003F5D49EC81C048C7FCA2157F48ED03804814FFA2007F
+5B913903BF0700903880073F3A3FC00E1F8E260FE03C13FC3A03FFF00FF83A007FC003E0
+2A2A7CA82D>97 D<EB3F80EA1FFFA3C6FC137FA291C9FCA55B5BA512015BA4EC07F80003
+EB3FFF9039F8F80FC09039FBE003E09039FF8001F891C77E5B4848147E49147F5B821780
+A2120F5B17C0A3167F001F16805BA4EEFF00123F5B4B5AA24B5A5E007F4A5AA24B5A6D49
+5A4BC7FCD87CE0137E39F87001F839F03C07E039E00FFF80260003FCC8FC2A4077BE33>
+I<EC1FF0ECFFFE903903F01F8090390FC003C0D93F0013E0017E130F49131F000115F048
+48EB3FE0485AA24848EB1FC0001FEC0F004990C7FC123FA2485AA412FF90C9FCA96CEC03
+80150716006C6C5B151E001F5C6C6C5B6C6C5B6C6C485A3901F80F8026007FFEC7FCEB0F
+F0242A7AA828>I<EE03F8ED01FFA3ED000F1607A217F0A4160FA217E0A4161FA217C0A4
+91380FF03FECFFFC902603F81F138090390FC007BF90391F8003FF90387E0001497F0001
+157F48481500485A120F5B001F5D485A5E5B127FA2150112FF90C75BA41503A25EA37E15
+07A26C4A5A7F001F141F6C6C133F6C6CEBFFF83B03F001EFFFC03900F80F8F90383FFE0F
+D90FF0EBE0002D407ABE33>I<EC3FE0903801FFF8903807E07E90380F801F90393F000F
+80017E14C049EB07E0485A12034848EB03F0485AA2121F5B123FA248481307A290B6FCA2
+D8FF80C8FC90C9FCA87EED01C015036C15806D1307001FEC0F006D131E000F5C6C6C5B6C
+6C485A3900FC07C0D93FFFC7FCEB07F8242A7BA828>I<ED07F0ED3FFCEDFC1E913803F0
+3F4A48B4FC4A481380141FEC3F81DA7F0113008102FE137C93C7FCA213015CA513035CA5
+0007B512F8A3260007F0C8FCA3130F5CA5131F5CA5133F5CA5137F91C9FCA55B5BA4EA03
+FF007F13FEB5FCA229407DBF1C>I<177C913907F803FE91393FFE0F8F9139FC0F9C3F90
+3901F007F8903907E003E0D90FC013F0011F903801F80C02801400133FD97F007FA31503
+5B495CA3017E495A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F80
+91C9FC485AA47FA27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F8013
+00003FC8127F003E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80F
+C0013FC7FC3903F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA2
+5CA513015CA513035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0EC
+F70002FE14F0495A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C713
+80A4167F5B491500A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE
+130314FFA25B14FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5
+131F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<ED
+0780ED1FE0153F16F0157FA216E0153F16C0ED0F0092C7FCACED7F80EC3FFF1600A21401
+80A35DA41401A25DA41403A25DA41407A25DA4140FA25DA4141FA25DA4143F5DA4121E26
+7F807FC7FCA200FF137E14FE5CEB01F8495A387C07E0383C0FC0D80FFFC8FCEA03F82451
+87BD1C>I<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F
+14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A
+>108 D<902707F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1
+E00FEBF0073E001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D8
+5C14F84A5CA24A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F
+91C74914C0A549027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F
+13FEA347287DA74C>I<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001F
+E38007E090380FE70002EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14
+C0A4163F137F91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287D
+A733>I<EC0FF0ECFFFE903903F01F8090390FC007C049C66C7E013E6D7E01FC6D7E4848
+8049147C0003157E485A000F157F5B121FA2485AA2007F1680A2170048C85AA54B5AA25E
+5A6C4A5A7E4B5A5E6C140F6C6C5C4B5A6C6C013EC7FC6C6C5B6C6C485A3900FC0FE09038
+3FFF80D90FF8C8FC292A7BA82D>I<91387F01FE903A7FFF0FFFC09139FE3E03F09238F8
+01F8903A03FFE000FE6D49137F4B7F92C713804A15C04A141FA218E0A20103150F5C18F0
+A3171F010716E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495A
+EE1FC06E495AD93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CA
+FCA45BA25BA31201487EB512F8A3343A81A733>I<91390FE003C0DAFFFC1380903903F8
+1E0790390FE0070F90391F80038FD97F0013DF01FE13014848903800FF00485A1207485A
+8248485C123F495CA2485AA2150112FF90C75BA41503A25EA37E15077F003F4A5A151F6C
+6C133F6C6C137F000714FF3903F003CF3A00FC0F8FE090383FFE0FEB0FF090C7FC151F5E
+A5153F5EA4157F4B7E023F13FEA32A3A7AA730>I<903907F01F80D803FFEB7FE09138E1
+E1F09138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C13
+1FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>I<9138FF81
+C0010713E390381F807F90397C003F8049131F4848130F5B00031407A248481400A27FA2
+7F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100
+381300157EA2123C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E0
+1FC7FC38E0FFFC38C01FE0222A7DA824>I<EB0380A4130791C7FCA25BA25BA2133EA213
+7E13FE12011207001FB512C0B6FCA2D801FCC7FCA312035BA512075BA5120F5BA4140700
+1F130E13C0A4141E141C1380A26D5AA2000F5B14F03807E1E03801FF80D8007EC7FC1A39
+78B723>I<01FE147F00FFEC7FFF4914FEA20007140300031401A34914FCA41503120749
+14F8A41507120F4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0F
+C003BFE09138073FFF3803F01E3801FFF826003FE01380282977A733>I<B539E007FFF0
+5D17E02707FE000313006C48EB01FC6F5A5E00014A5A5EA24B5A6D1307000092C7FC5D15
+0E6D5B7F5DA25D1480013F5B14815D14C3011F5B02C7C8FCA214CE14EEEB0FFCA25CA26D
+5A5CA25CA26D5A2C2878A630>I<B500C3B53803FFFCA204FE14F8290FFE003FE00013C0
+D807F86D48EB7F000003173E183C150F18386D5E0001141F705B153F4D5A15776D4B5A00
+00ECE7F04DC7FCEC01C3170E9038FF0383017F5D91380703F85FEC0E01021E5CD93F9C14
+F002BC6D5A02B813FDDAF8005B4A13FF5F6D5A94C8FC5C4A137E167C6DC7FC1678010E14
+383E2878A642>I<48B539C07FFFC0A33C000FFE003FF8006D48EB1FE001031580010102
+3EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1FC7C8FC15EFEC0FFE6E5A5D14
+0381A24A7E140FEC1E7F023C7FEC383F02707FECE01F010180903803C00F49486C7ED90F
+007F491303017E80D801FE80D807FF497EB5D8803F13F8A332277FA630>I<90B539E007
+FFF05E18E0902707FE000313006D48EB01FC705A5F01014A5A5F16036E5C0100140794C7
+FC160E805E805E1678ED8070023F13F05EED81C015C191381FC38015C793C8FC15EF15EE
+EC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A
+130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80A630>I<017FB512FEA2ECC0
+0190397E0003FC49EB07F849EB0FF049EB1FE049EB3FC0ED7F8000011500495B4A5A4A5A
+4848485A4A5AC7485A4A5A5D147F4AC7FC495A495A49481370494813E0495A5C133F9038
+7F8001D9FF0013C0485A48481303485A4848EB078049130F4848131F003F143F397F8001
+FFB71200A227277EA628>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fn cmti10 10.95 38
+/Fn 38 122 df<EA01E0EA07F8120FA2EA1FFCA4EA0FF8EA0798EA001813381330A21370
+136013E013C01201EA0380EA07001206120E5A5A5A5A5A0E1C7A891C>44
+D<387FFFFEA3B5FCA21705799521>I<120FEA3FC0127FA212FFA31380EA7F00123C0A0A
+77891C>I<171C173C177CA217FCA216011603A21607A24C7EA2161DA216391679167116
+E1A2ED01C1A2ED038115071601150EA2031C7FA24B7EA25D15F05D4A5AA24A5AA24AC7FC
+5C140E5C021FB6FC4A81A20270C7127FA25C13015C495AA249C8FCA2130E131E131C133C
+5B01F882487ED807FEEC01FFB500E0017FEBFF80A25C39417BC044>65
+D<49B712C018F818FE903B0003FC0001FF9438007F804BEC3FC0A2F01FE014074B15F018
+0FA2140F5D181FA2021F16E05D183F19C0023FED7F804B14FF19004D5A027F4A5A92C7EA
+07F0EF1FE0EF7F804AD903FEC7FC92B512F017FE4AC7EA3F800101ED1FE04A6E7E170784
+01036F7E5CA30107825CA3010F5E4A1407A260011F150F5C4D5A60013F153F4A4A5A4D5A
+017F4A90C7FC4C5A91C7EA0FF849EC3FF0B812C094C8FC16F83C3E7BBD40>I<9339FF80
+01C0030F13E0033F9038F803809239FF807E07913A03FC001F0FDA0FF0EB071FDA1FC0EC
+BF00DA7F806DB4FC4AC77E495AD903F86E5A495A130F4948157E4948157C495A13FF91C9
+FC4848167812035B1207491670120FA2485A95C7FC485AA3127F5BA312FF5BA490CCFCA2
+170FA2170EA2171E171C173C173817786C16706D15F04C5A003F5E6D1403001F4B5A6D4A
+C8FC000F151E6C6C5C6C6C14F86C6C495A6C6CEB07C090397FC03F8090261FFFFEC9FC01
+0713F0010013803A4272BF41>I<49B712C018F818FE903B0003FE0003FF9438007F804B
+EC1FC0F00FE0F007F014074BEC03F8F001FCA2140F4BEC00FEA3141F4B15FFA3143F5DA3
+027F5D5DA219FE14FF92C81203A34917FC4A1507A219F813034A150F19F0A20107EE1FE0
+5CF03FC0A2010FEE7F804A16006060011F4B5A4A4A5A4D5AA2013F4B5A4AEC3FC04DC7FC
+017F15FEEE03FC4AEB0FF001FFEC7FE0B8128004FCC8FC16E0403E7BBD45>I<49B812F0
+A390260003FEC7123F180F4B1403A2F001E014075DA3140F5D19C0A2141F5D1770EFF003
+023F02E013804B91C7FCA21601027F5CED8003A2160702FFEB1F8092B5FCA349D9003FC8
+FC4A7F82A20103140E5CA2161E0107141C5CA293C9FC130F5CA3131F5CA3133F5CA2137F
+A25C497EB612E0A33C3E7BBD3B>70 D<DCFF8013E0030713F0033F9038FC01C09239FFC0
+3E03913A03FC000F07DA0FF0EB078F4A48903803DF80DA7F80EB01FF4AC8FC495A4948ED
+7F00495A495A4948814948153E495A13FF91C9FC4848163C12035B1207491638120FA248
+5A95C7FC485AA3127F5BA312FF5BA34BB512FE90C7FCA292C71380A295C7FCA25EA25FA2
+16037E6D5DA2003F15077F001F5E6D140F6C6C141F0007153F6C6CEC7BF0D801FE14F16C
+6CEB03E090393FE01F806DB5EA0060010701F890C8FC9038007FC03B4273BF46>I<49B6
+48B6FC495DA2D9000390C7000313004B5D4B5DA2180714074B5DA2180F140F4B5DA2181F
+141F4B5DA2183F143F4B5DA2187F147F4B5DA218FF91B8FC96C7FCA292C712015B4A5DA2
+170313034A5DA2170713074A5DA2170F130F4A5DA2171F131F4A5DA2173F133F4A5DA201
+7F157FA24A5D496C4A7EB66CB67EA3483E7BBD44>I<49B5933807FFFC496062D90003F0
+FC00505ADBBF805E1A771AEF1407033F923801CFE0A2F1039F020FEE071F020E606F6C14
+0E1A3F021E161C021C04385BA2F1707F143C023804E090C7FCF001C0629126780FE0495A
+02705FF00700F00E0114F002E0031C5BA2F03803010116704A6C6C5D18E019070103ED01
+C00280DA03805BA2943807000F13070200020E5C5FDB03F8141F495D010E4B5CA24D133F
+131E011CDAF9C05CEEFB80197F013C6DB4C7FC013895C8FC5E01784A5C13F8486C4A5CD8
+07FE4C7EB500F04948B512FE16E01500563E7BBD52>77 D<EEFFC0030713F892383F80FE
+9238FC003FDA03F0EB0F804A486D7EDA1F80804AC76C7E027E6E7E4A8149481400494881
+1307495A4948157F133F5C49C9FC4917805B1201485AA212075B000F17FFA25B121F1900
+48485DA448484B5AA34D5AA25B4D5A12FF60171F60007F163F604D5AA24DC7FC5F003F15
+014C5A6D5D001F4B5A4C5A6C6C4A5A4C5A6C6C4AC8FC000315FC6C6C495A6C6CEB07E001
+7FEB1F8090261FC07EC9FC903807FFF801001380394273BF46>79
+D<49B77E18F018FC903B0003FE0003FEEF00FF4BEC7F80F03FC00207151F19E05DA2020F
+16F0A25DA2141FF03FE05DA2023F16C0187F4B1580A2027FEDFF00604B495A4D5A02FF4A
+5A4D5A92C7EA3FC04CB4C7FC4990B512FC17E04ACAFCA21303A25CA21307A25CA2130FA2
+5CA2131FA25CA2133FA25CA2137FA25C497EB67EA33C3E7BBD3E>I<49B612FCEFFF8018
+F0903B0003FE000FF8EF03FE4BEB00FF8419800207ED3FC05DA219E0140F5DA3021FED7F
+C05DA2F0FF80143F4B15004D5A60027F4A5A4B495A4D5AEF3F8002FF02FEC7FC92380007
+F892B512E01780499038000FE04A6D7E707E707E0103814A130083A213075CA25E130F5C
+5F1603131F5CA3013F020714404A16E05F017F160119C04A01031303496C1680B6D88001
+13079438FE0F009338007E1ECAEA3FFCEF07F03B407BBD42>82 D<92390FF001C0ED7FFE
+4AB5EA0380913907F80FC791390FC003EF91391F8001FF4AC71300027E805C495A494814
+3EA2495AA2010F153C5CA3011F1538A38094C7FC80A214FC6DB4FC15F015FE6DEBFFC06D
+14F06D14FC6D80143F020F7F020180EC001F150303007F167F163FA2161FA212075A5F12
+0EA2001E153F94C7FCA2163E003E157E167C003F15FC4B5A486C5C4B5A6D495AD87DE0EB
+1F80D8F8F849C8FC017F13FE39F03FFFF8D8E00F13E048C690C9FC32427ABF33>I<B500
+FE91387FFFE094B5FC19C00003018091380FFC0049C8EA07F000015F606095C7FC170EA2
+5F173C17386D5DA26C5E16015F4C5AA24CC8FC5E160E5E805E137F5E5EA24B5AA24B5A15
+0793C9FCECC00EA2013F5B153C15385DA25D14C15DECC38014E302E7CAFCEB1FEF14EE14
+FCA25CA25CA25C5C130F5CA291CBFC130E3B406DBD44>86 D<B691383FFFF0A25C000301
+C0913807FE006C49EC03F86C17E0604D5A017F93C7FC6E140E5F013F153C6E5C17705F6D
+6C495A16034C5A010F92C8FC6E130E5E0107143C6E5B16705E6D6C485A15034B5A010191
+C9FCECFF0E5D6D133C15F85D5D6E5AA25DA292CAFC5CA35C1301A35C1303A35C1307A349
+5AA3131F001FB512F0A33C3E6EBD44>89 D<147E49B47E903907C1C38090391F80EFC090
+383F00FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE00
+7F5C90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E
+013F13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E2529
+77A72E>97 D<EB1FC0EA0FFF5CA2EA003FA291C7FCA25BA2137EA213FEA25BA21201A25B
+A21203A25B147E3907F1FF809038F783E09038EF01F013FE390FF800F8A24913FC49137C
+485A157E5B15FE123FA290C7FCA248130115FC127EA2140300FE14F85AA2EC07F0A215E0
+48130F15C0141F15800078EB3F00127C147E003C5B383E01F8381E03E06C485A6CB4C7FC
+EA01F81F4076BE2A>I<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380
+017E131F49137F485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A
+5AA6481403007E5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838
+003FC0212977A72A>I<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA2
+1503A25EA21507A25E147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F
+5B48486D5A485AA2485A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A
+485CA2140316384814F0A21407167891380FE070127C021F13F0007E013F5B003E137FEC
+F3E1261F01E35B3A0F8781E3802703FF00FFC7FCD800FC133E294077BE2E>I<EC3F8090
+3801FFE0903807E0F890381F803CEB3E0001FC131E485A485A12074848133E49133C121F
+4848137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45AA61506150E151E00
+7C143C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF038007F801F2976A7
+2A>I<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE1303903807E001D90FC013
+FCEB1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712034914E0A2150F120749
+14C0A2151FA216805B153F1203ED7F006D5BA200015B0000495A9038F80F7E90387C1EFE
+EB1FF8903807E0FC90C7FC1401A25DA21403A25D001C1307007F5C48130F5D4A5A4AC7FC
+48137E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>103
+D<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCEC03
+F890387F0FFE91383E0F80D97E7813C0ECE007D9FFC013E014801400A2485A5BA25B0003
+140F16C05BA20007141F16805BA2000F143F16005B5D001F147EEDFE074913FCA2003F01
+01130FEDF80E1300161E48ECF01CA2007E1538A200FE1570020013E048EC7FC00038EC1F
+0028407ABE2E>I<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA07
+07000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5B
+A212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038
+078700EA03FEEA00F8163E79BC1C>I<EB07F0EA03FF14E0A2EA000FA214C0A2131FA214
+80A2133FA21400A25BA2137EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA2
+5BA2121FA25BA2123FA290C7FCA25A1307127EA2EAFE0F130E12FCA2131E131CA2EA7C38
+1378EA3C70EA1FE0EA0780144079BE17>108 D<D801F0D93F80137F3D07FC01FFE003FF
+C03D0F3E07C1F80F83F03D0E1F0F00FC1E01F8001E011C90387C3800001C49D97E707F00
+3C01F05C0038157F4A5C26783FC05C12704A91C7FC91C7127E00F003FE1301494A5CEA00
+7EA20301140301FE5F495CA203031407000160495C180F03075D0003051F13E0494A1480
+A2030FEC3F810007F001C0495CA2031F91383E0380120F494AEC0700A2033F150E001FEF
+1E1C4991C7EA0FF80007C7000EEC03E0432979A74A>I<D801F0EB3F803A07FC01FFE03A
+0F3E07C1F83A0E1F0F00FC001E011C137C001C49137E003C13F012385C38783FC012705C
+91C7FC00F015FE495CEA007EA2150101FE5C5BA2150300015D5B15075E0003020F137049
+14C0A2031F13F00007ED80E05B1681EE01C0120F49EC0380A2EE0700001FEC0F0E49EB07
+FC0007C7EA01F02C2979A733>I<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F
+000F80017E14C0491307484814E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7
+FCA2151F4815C05AA2ED3F80A2ED7F00A248147E007C5C007E13015D4A5A003E495A6C49
+5A4A5A260F803EC7FC3807C0FC3801FFF038003F80242977A72E>I<903903E001F89039
+0FF807FE903A1E7C1E0F80903A1C3E3C07C0013C137801389038E003E0EB783F017001C0
+13F0ED80019038F07F0001E015F8147E1603000113FEA2C75AA20101140717F05CA20103
+140F17E05CA20107EC1FC0A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A9039
+3FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203A238
+7FFFE0B5FCA22D3A80A72E>I<027E1360903901FF81E0903807C1C390391F80E7C09038
+3F00F7017E137F5B4848EB3F80485AA2485A000F15005B121F5D4848137EA3007F14FE90
+C75AA3481301485CA31403485CA314074A5A127C141F007E133F003E495A14FF381F01EF
+380F879F3903FF1F80EA00FC1300143F92C7FCA35C147EA314FE5CA21301130390B512F0
+5AA2233A77A72A>I<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0001EEB38
+0F001C1370003CEBE01F123814C0D8783F14C00070903880070092C7FC91C8FC12F05BEA
+007EA313FE5BA312015BA312035BA312075BA3120F5BA3121F5B0007C9FC232979A726>
+I<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49137E15FE
+A2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F01300140F
+14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F8012700078EB1F
+006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A25CA2130F
+A25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA25BA21201
+A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB00781470
+14F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B4141C26038F
+80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2D8F03F13
+03140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F
+1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F0F1C9039
+1FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA0707000E
+01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91C712E012
+005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D15780001
+14706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<017C167048B491
+387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000EA3C0F0038177C15
+07D8781F4A133C00701380A2D8F03F130F020049133812005B017E011F14784C137013FE
+5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2EF070015FE170E00
+010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03FFC090
+2703F0007FC7FC372979A73C>I<137C48B4143826038F8013FCEA0707000E7F001E1401
+001C15F8EA3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B017E13
+0F16C013FE5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301EBF803
+0000130790387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8
+FF0090C7FC143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79
+A72C>121 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fo cmbxti10 14.4 1
+/Fo 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A
+EA0FE0121271912B>46 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fp cmbx12 17.28 51
+/Fp 51 122 df<19F0F001F8F003FCA3180719F8180FA219F0181F19E0183FA219C0187F
+198018FFA219005F601703A260170760170FA260171F60173FA260177F6017FFA295C7FC
+5E5F1603A25F16075F160FA25F161F5F163FA25F167F5F16FFA294C8FC5D5E1503A25E15
+075E150FA25E151F5EA2153F5E157FA25E15FF93C9FC5CA25D14035D1407A25D140F5D14
+1FA25D143F5D147FA25D14FF92CAFC5BA25C13035C1307A25C130F5C131FA25C133F5C13
+7FA25C13FF91CBFC5AA25B12035B1207A25B120F5B121FA25B123F5B127FA25B12FF90CC
+FCA3127E123C3E9077EB51>47 D<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7
+FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFF
+C091B612F8010315FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F
+48486E7FD807F86E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E
+80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FC
+A219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A
+4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48
+157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90
+B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5FC020F14F8023F14FF49
+B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F49486D8049C86C7F4848
+83486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B6C5B6C495E011FC85A90
+C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F138092260FFFFEC8FC020FB512F8
+17E094C9FC17F817FF91C7003F13E0040713F8040113FE707F717F7113E085717FA2717F
+85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A80A34D14005C7E4A5E5F
+6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C4914806C01F0010791C7FC6C90
+26FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14F0020149C9FC426079DD
+51>I<F01F804E7E187F18FFA25F5F5F5FA25F5F5FA294B5FC5E5E5EA25E5EEE3FBFEE7F
+3FA216FEED01FCED03F8ED07F0A2ED0FE0ED1FC0ED3F8016005D15FE4A5A4A5AA24A5A4A
+5A4A5A4A5AA24AC7FC14FE495A5C1303495A495A495A5C133F49C8FC13FE485AA2485A48
+5A485A5B121F485A48C9FC12FEBCFCA6CA6CEBC000B1037FB8FCA6485E7CDD51>I<01C0
+EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B71280190060606060606060
+95C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFCADED3FFE0203B512F002
+0F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F801007F02E06EB4FC0280
+6E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC83A219FEA419FFA3EA03
+F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B4917F8EA3FF001804B13
+F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B6C6C6C01075B6C01E001
+1F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D9003F1480020301F0C8FC40
+6078DD51>I<EE1FFF0303B512E0031F14F892B612FE0203814AD9FC037F021F9039C000
+7FC04A90C7EA1FE0DAFFFC6E7E494914074949EC7FF8494914FF49495B4949497F4990C7
+FC495D5C13FF485BA25A4A6E5B5A715B48496E5B725A4894C8FCA35AA35C48913801FFE0
+030F13FE033F6D7E4B14E092B612F89126E1FE037FB53AE3F0007FFEDAE7E06D7EDAEFC0
+6D7F4B6D7F02FFC76C7F4A82717F4A82A2854A8085A24A1780A54A17C0A37EA77EA47E6E
+1780A27EA21A007E4D5B7E6E5E7E6E5E6C4C5B6D7E013F4B5B6D6C4A5B6D01C0495B6D6D
+90B5C7FC6DD9FC0713FC6D90B65A6D5E023F15C0020F92C8FC020114F8DA001F13804260
+79DD51>I<EA07E0120F7F13FCEBFFFC91B912F8A45AA21AF01AE01AC01A801A00A24860
+6161616101E0C9123F01804C5A48CA485A4D90C7FC60007E4C5A17074D5A4D5A4D5A485F
+4D5A17FF4C90C8FCC9485A5F4C5A160F4C5A5F163F4C5A16FF5F5D94C9FC5D5D5E150FA2
+4B5AA2153FA24B5AA215FFA34A5BA25CA35CA44A5BA45CA65CAD6E5BA26E5BDA03FECAFC
+6E5A456377E051>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80A24D80A34D80A2
+4D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217F804076D80A24D
+7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03016F7FA24C8003
+03845E03076F80A24C80030F845E031F6F80A24C81033F845E037F707F93B9FCA292BA7E
+A24A85A203FCC912070203865D020771805D86020F864B82021F865D87023F864B83027F
+8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812FEA66F647BE37A>
+65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8DF003F7F080F13FF74
+807480867480757FA2757FA28987A289A965A26365A2515BA298B55A505C505C5091C7FC
+505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF801CE00480C8001F13
+F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0A41EE087A663A21EC0
+A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6C7FCBD5A1CF81CE099
+C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407B600FE140F047FDBFF
+C0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F002
+0113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B54882490280
+824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD127F
+A25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E
+6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A
+6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED
+1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117F8
+6F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<BB12E0F2FF801BF01B
+FE757E1CF0D800010280C7000780DF007F13FE080F6D7E0801807480093F7F090F13FC75
+7F757F877580767F8A88767F8A888AA2767FA28A881F80A37614C0A41FE0A5881FF0B052
+14E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499B55A515C5191C7FC515B
+515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12F01CC051C9FC1BF81B80
+08E0CAFC6C627AE17C>I<BD12FCA488A2D8000102C0C71201F1000F1A01F2007F1B3F1B
+0F1B07757EA28787A288A3F43F80A31C1FA3197EA3F40FC0A499C7FC19FEA31801A21803
+1807181F18FF93B6FCA6EEC000181F180718031801A21800A21D7E197EA21DFCA696C812
+011DF8A31C03A3F407F0A31C0FA21C1F1C3F1DE01C7F1CFF63631B0F093F13C098B5FC1A
+0797B6FCBEFCA31D80A35F617AE06A>I<BD12E0A41CF0A2D8000102C0C71207F1003F1A
+0F1A031A001B7F1B3FF31FF81B0FA21B07A21B03A21B011CFCA31B00A419FCA21C7EA41C
+00A21801A31803A21807180F183FEF01FF93B6FCA6EEC001EF003F180F18071803A21801
+A31800A896C9FCB3A5B912F8A657617AE065>I<4DB5ED03C0057F02F014070407B600FE
+140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807
+FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291
+B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84
+A24891CD127FA25A4A1A3F5AA348491A1FA44899C8FCA25CA3B5FCB07E071FB812F880A3
+7EA296C70001ECC000A26C7FA37E807EA26C80A26C80A26C807F6D7F816D7F7F6D7F6D6D
+5F6D14C06D6E5E6E7F6E01FC5E020F01FF5E6E02C0ED7FEF020102F8EDFFC76E02FF0207
+1383033F02FC013F1301030F91B638FC007F03014D131F6F6C04E01307040704801301DC
+007F02F8CAFC050191CBFC6D6677E37F>I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A6
+33627CE13C>73 D<B912F8A6D8000102C0CBFCB3B3B1F307E0A5F30FC0A61B1FA31B3F1C
+80A21B7FA21BFFA262A262625013006262624FB5FC1907191F4EB6FCBDFC63A553627AE1
+61>76 D<B700C0083FB612F070627097B7FCA37061D800010DF8C7FC70F103EFA202FD6D
+F107CFA202FC6DF10F8FA36F6DF01F0FA26F6D183EA26F6D187CA26F6D18F8A36F6DEF01
+F0A26F6DEF03E0A26F6DEF07C0A26F6DEF0F80A3706DEE1F00A2706D163EA2706D5EA270
+6D5EA3706D4B5AA2706D4B5AA2706D4B5AA2706D4B5AA3716D4AC7FCA2716D143EA2716D
+5CA2716D5CA3716D495AA2716D495AA2716D495AA2716D495AA3726D48C8FCA272EBC03E
+A2726D5AA2726D5AA372EBF9F0A272EBFFE0A2725CA2725CA37390C9FCA2735AA2735A90
+381FFFC0B700F86E480207B812F0A3735AA2735A8C627AE199>I<B700E0040FB7128082
+828282A2D800016EDC000101FCC7FC719338001FC08383A28302FD808302FC80816F7F6F
+806F8084816F806F806F8084707F8270807080857080827080708085717F837180718071
+80868371807180727F8672808472807280877280847280737F87731480857314C07314E0
+1CF07314F8857314FC7413FE7413FF1D9F867414DF7414FF86A286868787A287878787A2
+8787888888A288888890261FFFC084B712F8881D7F1D3F1D1F775A71627AE17E>I<9438
+1FFFE00407B67E043F15F04BB712FE030FEEFFC0033FD9FC0014F092B500C0010F13FC02
+0349C7000113FF4A01F86E6C7F021F496F13E04A01C0030F7F4A496F7F91B5C96C7F0103
+497013FF494970804B834949717F49874949717F49874B8390B586484A717FA24891CB6C
+7FA2481D804A84481DC0A348497214E0A3481DF0A34A85481DF8A5B51CFCB06C1DF8A36E
+96B5FCA36C1DF0A46C6D4E14E0A36C1DC06E606C1D80A26C6E4D1400A26C6E4D5BA26C6E
+4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC6D636D6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0
+031F5B023F6D4B13F06E01FC92B55A6E01FF02035C020302C0010F91C8FC020002FC90B5
+12FC033F90B712F0030F17C0030394C9FCDB007F15F804071580DC001F01E0CAFC666677
+E379>I<BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F0736C7F081F7F
+747F747F7414807414C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A2
+5014C01D8062501400505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8
+FC04C0CCFCB3B3A2B97EA65E627AE16E>I<BA12F8F1FFE01AFEF2FFC01BF01BFED80001
+0280C76C7F070714C0070014F0747F081F7F747F747F7480A2748089A37480A389A865A3
+505CA265A2505C9AC9FC505B505B505B087F5B4FB55A0707148096B548CAFC93B812F81B
+C050CBFC621AFF932680000314C0DE007F7F071F13F8737F737F737F73808885888688A2
+747FA688A688A676140FF71F80A374801F3F86771400745E746E5BB96E6E5B746E485A75
+EBFE07091F90B55A090715E009015DCF003F91C7FC0A0013FC71647AE178>82
+D<DBFFFCEC01E0020FD9FFE01303027F02FC130749B7130F0107EEC01F011F16F049D9C0
+07EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E014014849804849153F91C97E484882
+001F834982003F83845B007F187FA2193FA200FF181FA27F190FA27FA26D17078080806C
+01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE017FE6CEEFFE018F86C17FE6C717E6C
+846C846D17F86D836D836D8313036D18806D6C17C0020F17E01401DA000F16F015000407
+15F8EE007F1703050014FC183F84060713FE84A2007C8300FC83A2197FA3193F7EA31AFC
+7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF18C06E4B138002E04B130002F84B5A
+02FFED3FFC01CF01E0ECFFF8018301FF010F5B010191B65A6D6C5E48011F93C7FC480103
+15FC48D9003F14E048020149C8FC476677E35A>I<001FBEFCA64849C79126E0000F1480
+02E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA400
+7E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>I<B96C023F
+B612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C018065701703
+80525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC033F01E04B5A
+6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7C9FC041F5E
+040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<B800FC047FB612E0A6D800
+070280CB6CEB80006D6EDE07FCC7FC666D6E611D0F6D6E611D1FA26E6D611D3F6E6D611D
+7F6E6D96C8FC65A26E6D4D5AA26E6E5F1C036E6E5F1C076E6E5F1C0FA26E6E5F1C1F6F6D
+5F1C3F6F6D5F1C7FA26F6D4CC9FCA26F6D5E1B016F6E5D1B03A26F6E4A5AA26F6E5D1B0F
+6F6E5D1B1F706D5D1B3FA2706D5D1B7F706D92CAFC63706D5C1A01A2706E485AA27002C0
+5B1A077002E05B1A0F7002F05B1A1FA27101F85B1A3F7101FC5B1A7F7101FE90CBFC62A2
+716D5AA2715CA2715CA3715CA2715CA2725BA2725BA37290CCFCA2725AA2725AA2725A73
+637DE17A>I<B800F8011FB80203B7FCA6D8000F91C9000102E0CAEBFE006D72F20FF070
+72715A230F6D73627072171F6D6A708277173F6D7397C7FC70846B6E72197E707217FE6E
+726170855118016E6870731503636E68704C6E15076E68718451180F6EDE7E7F60717215
+1F6E06FE61714B7E08016F153F6E4E6C95C8FC71840803616F4D6C177E7102076F15FE6F
+66714B7E080F7013016F4D6C5F7185081F18036F4D6C5F71023F7013076F94C75F728450
+180F6F047E6E5E7272131F1AFE6F4C6E5EDEE00171133F6F4C6E93C9FC06F08407036170
+4B6E157E06F87213FE1907704B6E5DDEFC0F1881704B6E5D06FE19C1071F18C3704B6E5D
+DEFF3F18E7706407BFC9FC07FF18FF704A705CA3704A705CA27099CAFC4F82A27149705B
+A37149705BA27149705BA37149705BA37190CB5BA27148725AA37148725A714872CBFCA0
+637DE1A7>I<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD9
+7FE001077FD9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D
+5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048
+B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01
+F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E
+011F02FC130F010302F001011400D9001F90CBFC49437CC14E>97
+D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF
+038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F7E4B6F1380
+4B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F
+13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE0013F13C09127
+F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E04F65
+7BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901F801
+0113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B5A5C5A7113
+E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C
+6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF
+00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102FCC7FCDA00
+0F13C03E437BC148>I<F17FF8050FB5FCA6EF000F8484B3A892380FFF804AB512F8020F
+14FE023FECFF8391B712E301039138807FF3499039F8000FFB011F01E00103B5FC494913
+004990C87E49488148498148834A815A485BA2485BA25AA3485BA4B5FCAE7EA46C7FA37E
+A26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D6C6C0103806D6D49806D01F0D91FF7
+EBFFFE6D9039FE01FFE7010190B612876D6CECFE07021F14F8020314E09127003FFE00EC
+C0004F657BE35A>I<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE03
+7F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A8048
+84485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27E
+A27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E0
+4A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0
+020092C8FC030713F041437CC14A>I<EE3FFC0307B51280033F14C04AB612F0020715F8
+4A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F05B4913E0A24913C0A270
+13FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01C0C8FCB3B3B0007F
+B612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8F001B5FC027FDAFE03148049
+B7128F49DCDFFD13C0010FD9F00FEBFFC149D9800114014990C7EBFC0349486E6C7E4948
+EC3FFF48496E018113800780130048F0C03E97C7FC48496E7FA34884A96C60A36C6D4A5B
+A26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B4990B612C060D97C7F4A
+C9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F8014F091B77E18FE6CEFFFC019
+F06D17FC19FF6D846D846D846D84013F8490BAFC0003854801E0C712014890C9000F7F48
+4816014848EE007F4848717E8512FF5B85A56D5F007F616D173F003F616D177F6C6C4D5A
+6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B011F90B712F801
+0717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151>I<903807FF80B6FCA6C6FC
+7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83
+F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8
+F007B71280A651647BE35A>I<EB0FE0EB3FF8497E48B5FCA24880A24880A76C5CA26C91
+C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80007FB5FCA6C6FC7F7FB3B3AEB712C0
+A622657BE42C>I<ED01FCED07FF4B1380033F13E0A24B13F0A292B512F8A76F13F0A26F
+13E0A2030F13806F1300ED01FC92C8FCAFEEFFF8021FB5FCA6EC000F8181B3B3B3AAEA07
+F0EA1FFC487E487EB56C4813F0A317E05D17C05D17806C4948130049495A6C48495A261F
+FE0313F06CB65A6C158000014AC7FC6C6C13F8010713802D8288E431>I<903807FF80B6
+FCA6C6FC7F7FB3A90503B61280A6DD003FEB8000DE0FFCC7FCF01FF04E5AF0FFC04D5B4D
+90C8FCEF07FC4D5AEF3FF04D5A4D5A4C90C9FC4C5AEE0FFC4C5A4C5AEE7FC04C7E03837F
+03877F158F039F7F03BF7F92B5FC838403FC804B7E03F0804B6C7F4B6C7F1580707F707F
+707FA270807080717FA2717F717F717FA2717F717F83867180727F95B57EB7D8E00FECFF
+F0A64C647BE355>I<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>I<
+902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B612
+F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026F0
+1FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEEFD
+F003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB612
+FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267FE0
+7F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC80
+03FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC02
+0715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D7F
+4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A348
+496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19E0
+6C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13E0
+6D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151>I<
+902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227BF
+F0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A273
+13E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F92
+B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7B6
+48C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A>I<
+D90FFFEB0FFCB690383FFF8093B512E04B14F04B14F8923907FC7FFC92390FE0FFFEC6EC
+1F806DD93F0113FF6D133E157E157C15F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B90
+C7FCA55DB3B0B712F8A638417BC042>114 D<913A3FFF8007800107B5EAF81F011FECFE
+7F017F91B5FC48B8FC48EBE0014890C7121FD80FFC1407D81FF0801600485A007F167F49
+153FA212FF171FA27F7F7F6D92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C
+16F06C826C826C826C82013F1680010F16C01303D9007F15E0020315F0EC001F1500041F
+13F81607007C150100FC81177F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D16
+C001FEEDFF806D0203130002C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F800
+7F49C7FC48010F13E035437BC140>I<EC07E0A6140FA5141FA3143FA2147FA214FF5BA2
+5B5B5B5B137F48B5FC000F91B512FEB8FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D14
+80A2173F6D16006F5B6D6D137E6D6D5B6DEBFF836EEBFFF86E5C020F14C002035C912600
+3FFCC7FC325C7DDA3F>I<902607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A2
+60A360A2607F60183E6D6D147E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D91
+B55A6E1500021F5C020314F8DA003F018002F0C7FC51427BC05A>I<B700C00103B512FC
+A6C66C01C0C8381FFE006D6DED07F0A26D6D5E190F6D6D5E191F6D606F153F6D95C7FC6F
+5DA26D6D157E19FE6D6E5C18016E5E7013036E5E701307A26E6D5C180F6E6D5C181F6E6D
+5C183F6E93C8FC705BA26E6D13FEA26E6E5A17816FEBC1F817C36F5C17E76F5C17FFA26F
+5CA26F5CA26F91C9FCA26F5BA36F5BA2705AA2705AA2705AA2705A4E417DBF55>I<B700
+81B600FC0103B512FCA6C66C0180C701FCC8381FFE006F6FED03F86D047F5F856F6E1607
+6D646F70140F6D705F866F6E161F6D646F4A6D143F6D99C7FC4E7F6F616D1B7E6F4A6D14
+FE6D6395B57E7001FC15016E62DCC0016E13036EDBF87F5D05038004E0496C14076E62DC
+F007ED800F6E4B6C5D050F15C004F8496C141F6E62DCFC1FEDE03F6E4B6C92C8FC053F15
+F004FE496C5C6E197E7048EDF8FE6E027E6D5C05FE15FC4D6D13FD6F601BFF6F496E5BA2
+4D806F60A26F496E5BA24D806F60A26F496E90C9FCA294C87E6F5FA26F486F5A047C6F5A
+6E417DBF75>I<007FB600C0017FB512F8A6D8001F01F8C70007EBF0006D040190C7FC6D
+6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8FC6E4A5A6E6D48
+5A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B816F7F6F7F848170
+7F8493B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B486C7F4A486D7F4A
+486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F7F4A6F7F010770
+7FEB3FFFB600F049B7FCA650407EBF55>I<B700C00103B512FCA6D8003F01C0C8381FFE
+006FED07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D95C7FC6F5D6D177E6F15FEA26D6E
+495AA26E6D5C18036E6D5C18076E5E70130F6E5E70131FA26E6D495AA26E6D91C8FC606E
+6D137E18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7E017FF6F5CA26F5CA26F91C9FCA3
+6F5BA26F5BA2705AA2705AA2705AA35FA25F163F94CAFC5E167E16FED807E05CD81FF813
+01487E486C495AA2B5495AA24B5A5E151F4B5A6C4849CBFC15FEEBFC01393FF807FC391F
+F03FF06CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF55>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fq cmr12 12 54
+/Fq 54 122 df<1618163C167CA2167816F8A216F01501A216E01503A216C01507A21680
+150FA2ED1F00A2151E153EA2153C157CA2157815F8A25D1401A24A5AA25D1407A25D140F
+A292C7FC5CA2141E143EA2143C147CA25CA25C1301A25C1303A25C1307A25C130FA291C8
+FC5BA2133EA2133C137CA2137813F8A25B1201A25B1203A2485AA25B120FA290C9FC5AA2
+121E123EA2123C127CA2127812F8A25A126026647BCA31>47 D<14FF010713E090381F81
+F890383E007C01FC133F4848EB1F8049130F4848EB07C04848EB03E0A2000F15F0491301
+001F15F8A2003F15FCA390C8FC4815FEA54815FFB3A46C15FEA56D1301003F15FCA3001F
+15F8A26C6CEB03F0A36C6CEB07E0000315C06D130F6C6CEB1F806C6CEB3F00013E137C90
+381F81F8903807FFE0010090C7FC28447CC131>I<143014F013011303131F13FFB5FC13
+E713071200B3B3B0497E497E007FB6FCA3204278C131>I<EB03FE90381FFFC0017F13F0
+3901F80FFC3903C001FE48486C7E000EC7EA7F8048EC3FC0ED1FE04815F00030140F0070
+15F800601407126CB415FC7F7F1503A46C4813076CC7FCC8FC16F8A2150F16F0151F16E0
+A2ED3FC0ED7F8016005D5D4A5A4A5A4A5A5D4A5A4A5A4AC7FC147C5C5C495A495A495A49
+C7120C131E5B013814185B5B485A4848143848C81230000E1570001FB612F0A25A5AB712
+E0A326427BC131>I<49B4FC010F13E0013F13FC9038FE01FE3A01F0007F80D803C0EB3F
+C048C7EA1FE0120EED0FF0EA0FE0486C14F8A215077F5BA26C48130FEA03C0C813F0A3ED
+1FE0A2ED3FC01680ED7F0015FE4A5AEC03F0EC1FC0D90FFFC7FC15F090380001FCEC007F
+ED3F80ED1FC0ED0FE016F0ED07F816FC150316FEA2150116FFA3121EEA7F80487EA416FE
+491303A2007EC713FC00701407003015F80038140F6C15F06CEC1FE06C6CEB3FC0D803E0
+EB7F803A01FE01FE0039007FFFF8010F13E0010190C7FC28447CC131>I<ED0380A21507
+150FA2151F153FA2157F15FFA25CEC03BF153F14071406140C141C141814301470146014
+C013011480EB03005B13065B131C13185B1370136013E0485A5B120390C7FC1206120E12
+0C5A123812305A12E0B812C0A3C8383F8000ADEDFFE0027FEBFFC0A32A437DC231>I<00
+0615C0D807C0130701FCEB7F8090B612005D5D5D15E0158026063FFCC7FC90C9FCAE14FF
+010713C090381F01F090383800FC01F0137ED807C07F49EB1F8016C090C7120F000615E0
+C8EA07F0A316F81503A216FCA5123E127F487EA416F890C712075A006015F0A20070140F
+003015E00038EC1FC07E001EEC3F806CEC7F006C6C13FE6C6C485A3901F807F039007FFF
+E0011F90C7FCEB07F826447BC131>I<EC07FCEC3FFF91B512C0903903FC03E0903907E0
+00F0D91FC0133849C71258017EEB01FC01FE1303491307485A485AA24848EB03F8000FEC
+01F092C7FC485AA3485AA3127FA29038007F80903801FFF090380780FC39FF0E003E49EB
+1F8049EB0FC049EB07E0136001E0EB03F04914F8150116FC5BED00FEA390C812FFA47EA5
+7F123FA216FE121F15016D14FC120FED03F86C7EED07F06C6C14E06C6CEB0FC06C6CEB1F
+80017EEB3F0090383F80FE90380FFFF8010313E00100138028447CC131>I<121CA2EA1F
+8090B712C0A3481680A217005E0038C8120C0030151C00705D0060153016705E5E481401
+4B5A4BC7FCC81206150E5D151815385D156015E04A5AA24A5A140792C8FC5CA25C141E14
+3EA2147E147CA214FCA21301A3495AA41307A6130FAA6D5AEB01C02A457BC231>I<14FF
+010713E0011F13F890387F00FE01FC133FD801F0EB1F804848EB0FC049EB07E00007EC03
+F048481301A290C713F8481400A47FA26D130116F07F6C6CEB03E013FC6C6CEB07C09039
+FF800F806C9038C01F006CEBF03EECF87839007FFEF090383FFFC07F01077F6D13F8497F
+90381E7FFFD97C1F1380496C13C02601E00313E048486C13F000079038007FF84848EB3F
+FC48C7120F003EEC07FE150148140016FF167F48153FA2161FA56C151E007C153EA2007E
+153C003E157C6C15F86DEB01F06C6CEB03E06C6CEB07C0D803F8EB1F80C6B4EBFF009038
+3FFFFC010F13F00101138028447CC131>I<14FF010713E0011F13F890387F80FC9038FC
+007E48487F4848EB1F804848EB0FC0000FEC07E0485AED03F0485A16F8007F140190C713
+FCA25AA216FE1500A516FFA46C5CA36C7E5D121F7F000F5C6C6C130E150C6C6C131C6C6C
+5BD8007C5B90383F01E090390FFF80FE903801FE0090C8FC150116FCA4ED03F8A216F0D8
+0F801307486C14E0486C130F16C0ED1F80A249EB3F0049137E001EC75A001C495A000F49
+5A3907E01FE06CB51280C649C7FCEB1FF028447CC131>I<16C04B7EA34B7EA34B7EA34B
+7EA3ED19FEA3ED30FFA203707FED607FA203E07FEDC03FA2020180ED801FA2DA03007F16
+0FA20206801607A24A6D7EA34A6D7EA34A6D7EA20270810260147FA202E08191B7FCA249
+820280C7121FA249C87F170FA20106821707A2496F7EA3496F7EA3496F7EA201788313F8
+486C83D80FFF03037FB500E0027FEBFFC0A342477DC649>65 D<B8FC17E017FC00019039
+C00003FF6C6C4801007FEF3FC0717E717E717E84170384170184A760A21703601707604D
+5A4D5AEF7FC04DC7FCEE03FEEE3FF091B65A17FC0280C7B47EEF1FC0EF0FF0717E717E71
+7E717E1980187F19C0A2183F19E0A8F07FC0A2198018FF4D1300A24D5AEF0FFC4D5AEF7F
+E048486C903803FFC0B9C7FC17FC17C03B447CC345>I<DB0FFE146092B500C013E00203
+14F0913A0FFC01FC0191393FC0003E02FFC7EA0F83D903FCEC03C74948EC01E74948EC00
+FF4948157F4948153F4948151F49C9120F485A491607120348481603A248481601A24848
+1600A2123FA2491760127FA31900485AAE6C7EA21960A2123F7FA2001F18E07F000F18C0
+A26C6C160119806C6C160312016DEE07006C6C16066D6C150E6D6C5D6D6C5D6D6C15786D
+6C5D6D6C4A5AD900FFEC0780DA3FC0011FC7FCDA0FFC13FC0203B512F0020014C0DB0FFE
+C8FC3B487BC546>I<B8FC17F017FC00019039C00007FF6C499038007FC0017FED1FE0EF
+07F0EF03FC717E717E84727E727E727EA2727E85180385A2180185A38584A31A80AD1A00
+A36061A361180361180761180F614E5A183F614EC7FC18FEEF03FC4D5AEF1FE001FFED7F
+C0486DD907FFC8FCB812FC17F094C9FC41447CC34B>I<B912F8A3000101C0C7127F6C6C
+48EC07FC17011700187C183C181CA284A31806A4180704067FA395C7FCA4160EA2161E16
+3E16FE91B5FCA3EC8000163E161E160EA21606A319C0A3F0018093C7FCA41803A21900A2
+60A260A2181EA2183E187EEF01FE170748486C147FB95AA33A447CC342>I<B912F0A300
+0101C0C7127F6C6C48EC0FF817031701170018781838A2181CA3180CA4180E1806160CA2
+1800A5161CA2163C167CED01FC91B5FCA3EC8001ED007C163C161CA2160CA793C8FCB080
+48487EB612F8A337447CC340>I<DB0FFE146092B500C013E0020314F0913A0FFC01FC01
+91393FC0003E02FFC7EA0F83D903FCEC03C74948EC01E74948EC00FF4948157F4948153F
+4948151F49C9120F485A491607120348481603A248481601A248481600A2123FA2491760
+127FA396C7FC485AAD4CB612C06C7EA293C7387FF000725A003F171F7FA2121F7F120FA2
+6C7EA26C7E6C7EA26C7E6D7E6D6C153F6D7E6D6C157F6D6C15E7D903FEEC01C7D900FFEC
+0383DA3FE0EB0F01DA0FFCEBFE000203B500F81360020002E090C7FCDB0FFEC9FC42487B
+C54D>I<B612F0A3C6EBF0006D5A6D5AB3B3B3A4497E497EB612F0A31C447DC323>73
+D<B612F8A3000101E0C9FC6C6C5A5CB3B31830A418701860A518E0A3EF01C0A217031707
+A2170F173F177FEE01FF48486C011F1380B9FCA334447CC33D>76
+D<B56C933807FFFC6E5EA20001F1FE0026006FE0EE1BF8A3D967F01633A2D963F81663A3
+D961FC16C3A3D960FEED0183A2027FED0303A36E6C1406A36E6C140CA26E6C1418A36E6C
+1430A36E6C1460A26E6C14C0A36E6CEB0180A3037FEB0300A292383F8006A36F6C5AA36F
+6C5AA26F6C5AA36F6C5AA36F6C5AA26FB45AA370C7FC13F0A2486C143ED80FFFEF0FFEB5
+00F0011C0107B512FCA34E447BC359>I<B56C020FB5FC8080C6040013F06D6CED1F80D9
+6FF8ED0F00A2D967FC1506EB63FEA2EB61FF01607FA26E7E6E7EA26E7E6E7EA26E7E6E7E
+A26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE1F
+F0EE0FF8A2EE07FCEE03FEA2EE01FF701386A2EF7FC6EF3FE6A2EF1FF6EF0FFEA2170717
+03A217011700A201F0167E183E487ED80FFF161EB500F0150EA2180640447CC349>I<ED
+1FFC4AB512C0913907F007F091391F8000FC027EC7123FD901F8EC0FC049486E7E49486E
+7E49486E7E49486E7E49C9127E017E8201FE834848707E4848707EA24848707EA2000F84
+491603001F84A24848707EA3007F84A24982A300FF1980AD6C6C4C1300A4003F606D1603
+A2001F60A26C6C4C5AA26C6C4C5AA20003606D161F6C6C4C5A000060017F4CC7FC6E5D01
+3F5E6D6C4A5AD907E0EC03F06D6C4A5AD901FCEC1FC0D9007E4AC8FCDA1F8013FC913907
+F007F00201B512C09126001FFCC9FC41487BC54C>I<B712FCEEFFC017F800019039C000
+0FFC6C6C48EB01FF9338007F80EF1FE0170FEF07F018F8EF03FCA218FE1701A218FFA718
+FEA2170318FCA2EF07F818F0EF0FE0EF1FC0EF7F80933801FE00EE0FFC91B612F0178002
+80C9FCB3AA3801FFE0B612C0A338447CC342>I<B712E016FF17C000019039C0003FF86C
+6C48EB03FCEE00FF717E717E717E717E717EA284170384A760A21707604D5AA24D5A4D5A
+4DC8FCEE01FEEE07F8EE3FE091B6C9FC16FC913980007F80EE0FE0707EEE03FC707E1600
+83717EA2717EA784A71A6084171FA21AE0716C13C02601FFE002071301B600C016809438
+01FC03943900FE0700CBEA3FFEF007F843467CC348>82 D<49B41303010FEBE007013F13
+F89039FE00FE0FD801F8131FD807E0EB079F49EB03DF48486DB4FC48C8FC4881003E8112
+7E82127C00FC81A282A37E82A27EA26C6C91C7FC7F7FEA3FF813FE381FFFE06C13FE6CEB
+FFE06C14FC6C14FF6C15C0013F14F0010F80010180D9001F7F14019138001FFF03031380
+816F13C0167F163F161F17E000C0150FA31607A37EA36C16C0160F7E17806C151F6C1600
+6C5D6D147ED8FBC05CD8F9F0495AD8F07C495A90393FC00FE0D8E00FB51280010149C7FC
+39C0003FF02B487BC536>I<003FB912F8A3903BF0001FF8001F01806D481303003EC715
+0048187C0078183CA20070181CA30060180CA5481806A5C81600B3B3A54B7EED7FFE49B7
+7EA33F447DC346>I<B600C0010FB5FCA3000101E0C813F026007F80ED1F80F00F00A218
+06B3B3A7180E6D6C150CA2181C131F6E1518010F163818306D6C1570606D6C14016D6C5D
+6D6CEC0780027F4AC7FC6E6C131EDA1FE0137C913907FC03F00201B55A6E6C1380DB07FC
+C8FC40467CC349>I<B692383FFFF0A3000301E003071300C649ED01FC4A5E017F705A6E
+5E133F616E1501011F5FA26D6C4BC7FCA28001071606A26E150E0103160CA26D6C5DA280
+6D5EA26F1470027F156081023F5DA281021F4A5AA26F1303020F92C8FC8102071406A26F
+130E0203140CA26E6C5BA2816E5CA2EE8070037F1360A26F6C5AA216E092381FE180A216
+F3030F90C9FC16FBED07FEA36F5AA36F5AA26F5AA3166044467EC349>I<B60107B500F8
+90380FFFFEA3000301E0D9001F90C813F06C0180DA0FFCED3FC091C86C48ED1F006C871C
+0E6D6C6E7E1C0CA26D6C6F5DA36EDA06FF1538011F1A30A26E020E6D1470010FDB0C7F15
+60A26E021C7F0107DB183F5DA2856D6CDA301F4A5AA36D6C4A6C6C49C7FCA36D6C4A6C6C
+1306A3DB80016E130E027FDA8003140CA2DBC00380023FDA00015CA203E081021F01066D
+5CA36E6C486E6C5AA36E6C486E6C5AA36F48EC1FE1020360A2DBFE7015F302010160020F
+90C8FCA2DBFFE015FB6E49EC07FEA36F486E5AA36FC86C5AA3031E6F5AA4030C16605F46
+7EC364>I<EB07FC90383FFF809038F80FE03903C003F048C66C7E000E6D7ED80FC0137E
+486C137F6D6D7EA36F7EA26C5AEA0380C8FCA4EC0FFF49B5FC90380FFE1FEB3FC0EBFF00
+EA03FC485A485A485A485A127F5B176048C7FCA3153FA36D137F007F14EF6D9038C7E0C0
+003F13013A1FE00783F13B07F81E03FF802701FFFC0113003A001FE0007C2B2E7CAC31>
+97 D<EA01FC12FFA3120712031201B3EC03FC91380FFF8091383C07E091387001F89039
+FDE0007E02807F01FFEC1F8091C713C049EC0FE049140717F0A2EE03F8A217FCA2160117
+FEAB17FC1603A217F8A2EE07F0A26DEC0FE017C06D141F01FBEC3F80D9F380EB7E00D9E1
+C05B9039E0F001F89039C03C07E09039801FFF80C7D803FCC7FC2F467DC436>I<EC7F80
+903803FFF090380FC07C90383F000F01FCEB03804848EB01C00003140F4848EB1FE04913
+3F120F485AA2485AED1FC0007FEC070092C7FCA290C9FC5AAB7E7FA2123F16307F001F15
+706C6C146016E06C6C14C06C6C13010001EC03806C6CEB0700013F131E90381FC0789038
+07FFF001001380242E7DAC2B>I<167FED3FFFA315018182B3EC7F80903803FFF090380F
+C07C90383F000E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8
+FC5AAB7E7FA2123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C001
+3F011C13FE90380FC0F8903803FFE09026007F0013002F467DC436>I<EB01FE903807FF
+C090381F03F090387E00FC49137E48487F485A4848EB1F80000F15C049130F121F484814
+E01507A2007F15F090C7FCA25AA390B6FCA290C9FCA67EA27FA2123F16306C7E1670000F
+15606D14E06C6C14C0000314016C6CEB03806C6CEB0700013E131E90381F80F8903803FF
+E0010090C7FC242E7DAC2B>I<EC0FE0EC7FF8903801F81E903803F03F90390FE07F8090
+381FC0FF5C133F495AA2ED7F0001FE131C92C7FCAFB67EA3C648C8FCB3B2486C7E007F13
+FFA321467EC51E>I<EE0F80D901FCEB7FE0903A0FFF81F0F090393F07E3819039FC01FF
+033A01F800FE014848017E13E00007027FC7FC497F000F8149131F001F81A9000F5D6D13
+3F000792C7FC6D5B0003147E6C6C5B6D485A3903BF07E090380FFF80260701FCC8FC90CA
+FCA25AA37F6C7E7F90B512F86C14FF16E06C15F86C6C8048B67E3A07C0000FFF48481300
+003FC8EA3F80003E151F48ED0FC0A2481507A56C150F007C1680007E151F003E16006C15
+3E6C6C5CD807E0495AD801F8EB07E0D8007FEB3F8090261FFFFEC7FC010113E02C427DAC
+31>I<EA01FC12FFA3120712031201B3EC01FE913807FFC091381E07F091383801F80270
+7FECE000D9FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F45
+7DC436>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8FCADEA01FC12FFA3120712031201
+B3B0487EB512F8A315437DC21C>I<143C14FFA2491380A46D1300A2143C91C7FCADEC7F
+80EB3FFFA31300147F143FB3B3AA123E127F39FF807F00A2147EA25C6C485A383C01F06C
+485A3807FF80D801FEC7FC195785C21E>I<EA01FC12FFA3120712031201B3A292381FFF
+E0A36F1300ED07F816E05E5E030EC7FC5D5D5D5D4A5A4A5A4AC8FC5CEC3F804A7E14FF90
+38FDCFE09038FF8FF01407496C7E01FC7F14016E7E81816F7E82151F6F7E821507826F7E
+8282486C491380B5D8F81F13F8A32D457DC433>I<EA01FC12FFA3120712031201B3B3B3
+A5487EB512F8A315457DC41C>I<D801FC01FFEC1FE000FF010701E0EBFFFC913B0F03F8
+01E07F913C3C01FC07803F800007903C7000FE0E001FC0000349D97E1C130F2601FDC0D9
+7F38804A143001FFDA3FF06D7E91C75BA2495DA3495DB3A8486C4A6C497EB5D8F81FB500
+03B512E0A34B2C7DAB52>I<3901FC01FE00FF903807FFC091381E07F091383801F80007
+01707F0003EBE0002601FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F
+13FEA32F2C7DAB36>I<EC7F80903803FFF090380FC0FC90383E001F496D7E496D7E4848
+6D7E48486D7E48486D7E000F81A24848147E003F157FA290C87E481680A44816C0AA6C16
+80A26D147F003F1600A2001F157E6D14FE000F5D6D130100075D6C6C495A6C6C495A6C6C
+495A013E49C7FC90381FC0FE903807FFF89038007F802A2E7DAC31>I<3901FC03FC00FF
+90380FFF8091383C07E091387001F83A07FDE000FE00030180137FD801FFEC3F8091C7EA
+1FC04915E049140F17F0160717F8160317FCA3EE01FEABEE03FCA3EE07F8A217F0160F6D
+15E0EE1FC06D143F17806EEB7E00D9FDC05B9039FCF003F891383C0FE091381FFF80DA03
+FCC7FC91C9FCAE487EB512F8A32F3F7DAB36>I<3903F803F000FFEB1FFCEC3C3EEC707F
+0007EBE0FF3803F9C000015B13FBEC007E153C01FF13005BA45BB3A748B4FCB512FEA320
+2C7DAB26>114 D<90383FE0183901FFFC383907E01F78390F0003F8001E130148130000
+7C1478127800F81438A21518A27EA27E6C6C13006C7E13FC383FFFE06C13FC6C13FF6C14
+C06C14E0C614F0011F13F81300EC0FFC140300C0EB01FE1400157E7E153EA27EA36C143C
+6C147C15786C14F86CEB01F039F38003E039F1F00F8039E07FFE0038C00FF01F2E7DAC26
+>I<1306A5130EA4131EA3133E137EA213FE12011207001FB512F0B6FCA2C648C7FCB3A4
+150CAA017E131C017F1318A26D133890381F8030ECC070903807E0E0903801FFC0903800
+7F001E3E7EBC26>I<D801FC147F00FFEC3FFFA300071401000380000181B3A85EA35DA2
+12006D5B017E9038077F80017F010E13C06D011C13FE90380FC078903803FFF09026007F
+8013002F2D7DAB36>I<B539F001FFFCA3000790C7EA7FE06C48EC1F8000011600160E12
+00160C017F5CA280013F5CA26E1370011F146080010F5CA2ECF00101075CA26D6C48C7FC
+A26E5A01011306A26D6C5AA214FF6E5AA215B8EC3FB015F06E5AA36E5AA26E5AA36EC8FC
+2E2C7EAA33>I<B500E0B539E03FFF80A30007903C000FFE000FFC00D803FCD903F8EB03
+F8F001E0120103015D6D80000060A26D6E13036DD9037E91C7FCA20280017F5B013FD906
+3F1306A2D91FC06E5AED0C1FA2D90FE06E5AED180FA2D907F06E5AED3007A2D903F86E5A
+ED6003A2902601FCE06D5AEDC00117FCD900FFECFD80ED800017FF027F92C8FC92C77EA2
+6E147E023E143EA2021E143C021C141CA2412C7EAA46>I<B539F007FFFCA30003D9C001
+13C0C6496C1300017F14FC013F5C6E13E06D7E010F495A6D6C485A02F890C7FC903803FC
+060101130E6E5A903800FF186E5AEC3FF05D141F140F6E7E81140FEC0DFCEC19FEEC38FF
+4A7E9138603F8002C07F0101131F49486C7E02007F01066D7E010E1303496D7E013C8001
+7C80D801FC1580D80FFE4913C0B5D8800F13FFA3302B7FAA33>I<B539F001FFFCA30007
+90C7EA7FE06C48EC1F8000011600160E0000150C6D141C6D1418A26E1338013F1430A26D
+6C5BA26E13E0010F5CA26D6C485AA2ECF803010391C7FCA2903801FC06A2ECFE0E010013
+0CA2EC7F18A215B8EC3FB0A2EC1FE0A36E5AA26E5AA36EC8FCA21406A35CA25CA2123C00
+7E5BB4FC5CA25CEAFE01387C0380D87007C9FCEA3C1EEA0FFCEA03F02E3F7EAA33>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fr cmtt10 10.95 93
+/Fr 93 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00
+A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14
+00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2
+02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F
+90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2
+29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE
+FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3
+6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01
+1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC
+A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C
+5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0
+D80FF01303486C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC
+6C5A5D387E7E01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A
+5AA25D147FA292C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F
+497EA24A487E133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13
+004914FF12076F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EB07E0EB1FF8497E13
+7F497E803801FC7F497E810003131F13F0A6143F92C8FC91387F0FFF9026F87E1F138000
+0113FEEBF9FC13FB4A6C1300D9FFF013C06C13E0151F02C05BEB7F809038FF003F4892C7
+FC485C48EB807E5A15FE391FDFC0FC383F8FE014E1397F07F1F8EB03F300FEEBFBF0EB01
+FF5D7FEDC006027F130F91393F801F8015C06C137F6CEBFFE049EBF83F018701FC130026
+3FFFFBB5FC6C01F15B14E06C9038C03FFC00039038001FF8D801FCEB07E0293A7DB830>
+I<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13FCA2120113F81203EA
+07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>I<141E147F14FF5BEB03
+FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F
+5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E
+EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812
+FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB
+03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14
+E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847
+78BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9
+FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048
+B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD8
+7E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7
+FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA03E0EA0FF0EA1FF813FC
+EA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0
+EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120F
+EA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A2
+1507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA2
+4A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249
+C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA22547
+7BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48
+48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE
+EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2
+6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE
+C7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF
+138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07
+FC90383FFFC090B512F00003804814FE4880261FF80F1380263FE00113C09038C0007F48
+48EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218C8FCA2150716F0150F16E0
+151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A
+EB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E
+6C15F025397BB830>I<EB03FF013F13E090B512F84814FE4880481580260FFE0113C090
+38F0007F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF
+8002071300903807FFFE495B5D8115FF6D1480D9000113C09138003FE0ED1FF0ED07F815
+0316FC150116FE1500A21218127EB4FCA2150116FC4814036C15F86C6C13076DEB1FF0D8
+3FF0133F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F13F001031380273A7CB830
+>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB
+1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485AA2485AA248C7FC12FEB8FC
+1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B29397DB830>I<000FB6128048
+15C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0007F
+C049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC150716
+F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C
+6C14E06C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF49B51280010714E0131F49
+14F090387FF80F9039FFC007F84813803803FE005B485A4848EB03F0ED01E0484890C7FC
+5B123F5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48B6FCB7128016C09039FE00
+7FE001F8EB1FF001E0130F49EB07F849EB03FCA290C7120116FE1500A37EA46C7E15016D
+14FC121F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03FF81FFC06C90B512806C
+15006D5B011F13F8010713E001011380273A7CB830>I<127CB712FC16FEA416FC48C7EA
+0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5A
+A24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830
+>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF049
+131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6C
+EB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE4880
+2607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C712014815
+FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE0
+6C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13
+E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0F
+F048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D
+133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8
+A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC
+90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0
+A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F
+000C276EA630>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA0FF0EA03C0C7FCAFEA
+03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8120313F01207EA1FE0
+123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<16F01503ED07F8151F157FEDFFF0
+14034A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0
+485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F3800
+7FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7F
+F8151F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003F
+B612FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1F
+FF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF80
+6E13C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801
+FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE0
+5B90C9FC127E1278252F7BB230>I<EC1FE0ECFFF8010313FE010F7F4914804914C09039
+7FF03FE09038FF800F4890380007F0D803FC13033A07F801FBF89038F007FF380FE01F4A
+13FCEA1FC0495A003FEBFF0F903800FE07903901FC03FE007FEBF801EA7E03ECF000A2EA
+FE0700FC49137EAA00FE6D13FED87E0314FCA2ECF801D87F0114F8003FEBFC03903900FE
+07F0903880FF0F001F90387FFFE06D6C13C0EA0FE06E13803A07F007FE009038F801F86C
+6CC7127C6CB414FE6CEB800390387FF01F6DB512FC6D14F86D14E0010314C00100EBFE00
+EC1FF0273A7CB830>64 D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1
+A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881A39038FC001F0003
+8149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<
+007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A
+1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3
+EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB7
+30>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F
+3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC167C16005A
+5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0F
+F03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A
+7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E
+15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B
+5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<
+007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4
+157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB7128048
+16C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4
+153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F
+13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A491307121F
+5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03
+F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90
+B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D
+4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3
+A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<
+007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730
+>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C127EB4FCA24A5A1403EB8007
+397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF025397AB730>I<D83FFF90380F
+FF80486D4813C0B56C5AA26C497E6C496C1380D803F0903803F8004B5A4B5A151F4B5A5E
+4BC7FC15FE14014A5A5D4A5A4A5A141F5D4A5A4AC8FC5C13F18101F37F13F790B57E14EF
+ECC7F01483EC03F8140101FE7F496C7E5B157F497F82151F82150F826F7EA26F7E150182
+1500D83FFF903803FFC0486D4813E0B56C5AA26C497E6C496C13C02B387FB730>I<383F
+FFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA27E6C16
+802A387EB730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C4913E00007
+160001EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1137CA2ECF8
+FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD83FFC903801
+FFE0486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>I<D83FFC90381FFF
+80486C4913C0B54913E0A26C6D6C13C06C6E13800003913801F800EBF7C0A3EBF3E0A314
+F013F1A214F8A213F014FCA2147C147EA2143E143FA2141FA21581A2140F15C1A2140715
+E1A2140315F1A21401A215F91400A3157DA3153FEA3FFF481380B5EAC01FA26CEB800F6C
+496C5A2B387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001
+E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D
+131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB8
+30>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA28217
+80163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FC
+B0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC000714FF4815804815C0
+4815E0EBF80001E0133F4848EB1FF049130F90C71207A44815F8481403B3A8147E14FE6C
+EBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90B6FC6C15C0
+6C15806C1500000114FCD8003F7FEB00016E7EA21680157F16C0153F16E0151F16F0150F
+ED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0
+151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182
+D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E
+17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97FFF13E048B5
+12C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37E
+ED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF0103
+1480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F0
+7F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD8
+78011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791
+C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C
+496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393F
+E00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I<D8
+7FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D807F0903801FC00A26D130300035D
+A46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F5CA46D6C48C7FCA490380FE0FEA4
+01075B14F1A301035BA314FB01015BA314FFA26D5BA46E5A6E5A2B397EB730>I<D83FFC
+903801FFE0486C4913F000FF16F8A2007F16F06C486D13E0D81FC09038001FC0000F1680
+A76D143F00071600A7000390380F803E9039F01FC07EEC3FE0A3EC7FF0A2147D0001157C
+A29039F8FDF8FCA314F8A300005D01F913FCA2ECF07CA201FD137DA2017D5CECE03DA301
+7F133FA2ECC01FA2013F5CA2EC800F6D486C5A2D397FB730>I<3A3FFF01FFF84801837F
+02C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81FCEB3F8314
+C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2815B81EB0F
+E781EB1FC381EB3F8181EB7F0081497F49800001143F49800003141F49800007140FD87F
+FEEB7FFFB590B5128080A25C6C486D130029387DB730>I<D87FFF90381FFFC0B56C4813
+E0A46C496C13C0D803F8903803F8006D1307A26C6C495AA26C6C5C151F6D5CEC803F013F
+5CECC07F011F91C7FCA290380FE0FEA214F101075BA2903803FBF8A201015B14FF6D5BA2
+6E5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B387EB730>I<001FB612FC4815FE5A
+A490C7EA03FCED07F816F0150FED1FE016C0153FED7F80003E1500C85A4A5A5D14034A5A
+5D140F4A5A5D143F4A5A92C7FC5C495A5C1303495A5C130F495A5C133F495A91C8FC5B48
+48147C4914FE1203485A5B120F485A5B123F485A90B6FCB7FCA46C15FC27387CB730>I<
+007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>I<127CA212
+FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D
+7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2
+140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025
+477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE
+30>I<1307EB1FC0EB7FF0497E000313FE000FEBFF80003F14E0D87FFD13F039FFF07FF8
+EBC01FEB800F38FE0003007CEB01F00010EB00401D0E77B730>I<007FB612F0A2B712F8
+A36C15F0A225077B7D30>I<1338137CEA01FE12031207EA0FFC13F0EA1FE013C0EA3F80
+13005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70BE30>I<
+EB3FFC48B57E4814E04880488048809038F00FFE9038E001FF806F7E6C48133F6C4880C8
+121FA491B5FC130F137F48B6FC12075A48EBC01F383FFC00EA7FE0138048C7FC5AA46C14
+3FA26C6C137F9038C001FF263FF80FEBFFC06CB712E0A2000714F76C14C3C6020013C0D9
+3FF090C7FC2B2A7CA830>I<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF8002
+7F13E091B57E90B612FC82ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F4915
+E0160FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138
+FC0FFE91B55A5E495CD97E7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE001
+0713FC011F7F017F7F90B612804815C048EB807F3907FC003F485A485A49EB1F804848EB
+0F004990C7FC127F90C9FCA25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14
+C0D807FE133F9039FFC0FF806C90B5FCC615006D5B011F13F801075B01011380232A7AA8
+30>I<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A4813
+03380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F00
+3F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C7
+13E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B5
+7E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F90
+C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D8
+07FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A
+7CA830>I<EDFF80020713E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0
+903907F800C04A1300A8003FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512
+FE4880B71280A26C15006C5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B7
+12E05A5A2607FE07138F903AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F
+000F92C7FC6D5BA26C6C485AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA3
+7F7F6CB512F015FF6C15C04815F0488148813A3FE0001FFE0180130148C8127F007E8100
+FE168048151FA56C153F007FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D
+000115C06C6C91C7FC011F13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F
+1200AAEC01FE91380FFF80023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14
+C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C
+496C13F82F3880B730>I<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F
+5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I<EC01C0EC07
+F0A2EC0FF8A3EC07F0A2EC01C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC07F0A2
+123C007EEB0FE0B4131FEC3FC0147F90B512806C14005C6C5B000F13F0000313C01D4E7C
+B830>I<EA7FF8487EA4127F1200AB0203B512804A14C017E0A217C06E14809139001FE0
+004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7ECE3F8EC
+C1FCEC81FEEC00FF497F496D7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C4813F0
+17F8A217F06C496C13E02D387FB730>I<387FFFF8B57EA47EEA0001B3B3A8007FB612F0
+B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F
+15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A301E013
+F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>I<EC01FE3A
+3FFC0FFF80267FFE3F13E000FF90B57E90B67E7E6C9038FE07FCC6EBF8039138E001FE14
+C0EC8000A291C7FCA25BB3A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C
+496C13F82F2880A730>I<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A07
+FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A300FEEC
+00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F
+3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>I<
+EC03FE3A3FFC1FFF80267FFE7F13E000FF90B57E90B612FC6C816CEBFE07C69038F001FF
+4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160FA217E07F161F6EEB
+3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495C6E13C0021F90C7FCEC03
+FC91C9FCAD383FFFF8487FB57EA26C5B6C5B2C3C80A730>I<49B413F8010FEBC1FC013F
+13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A491303127F90C7
+FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF01FF6C
+90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FCA46E14
+F82E3C7DA730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038FF
+FC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC4880
+B7FCA26C5C6C5C2A287EA730>I<90381FFC1E48B5129F000714FF5A5A5A387FF007EB80
+0100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C
+6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D
+137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>I<EB
+0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE0
+03010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF026337E
+B130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A41501A2
+150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF8010001C0
+C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01F8
+0003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E
+5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B27
+7EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00
+A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFD
+F9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA6
+30>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F
+81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7
+E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE6D7E48
+486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3FFFC07F
+FF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C137E15
+0F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01
+F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE
+486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<
+001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C748
+5A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E4890C7
+127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<ED3FF0913803FFF8
+140F5C147F16F09138FFF00092C7FC495A5CB3A21303495A133F383FFFF0B55A5C91C8FC
+14C080003F7F38003FF813076D7E1301B3A2806D7E15F091387FFFF016F8141F80140391
+38003FF025477BBE30>I<127CA212FEB3B3B3AD127CA207476CBE30>I<EA7FE0EAFFFE6D
+7E8014F07EC66C7E13076D7E1301B3A2806D7E15E091387FFFE06E13F8801407141F5C4A
+13E09138FFE00092C7FC495A5CB3A21303495A137F387FFFF0B5FC14C05C49C8FCEA7FE0
+25477BBE30>I<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF
+8713E0010713C0486C1380D87C0113003838007C1F0C78B730>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fs cmsy10 10.95 4
+/Fs 4 16 df<007FB812FEBAFCA26C17FE3804799847>0 D<EB03C0A2805CA600F0140F
+00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FDBF00EB3FFCEB
+0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39FF03C0FF00FE
+147F00FC143F00F0140F00001400A6805CA220277AA92D>3 D<EE7FFE0307B512E0033F
+14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA3FE0EC07FCDA7F80EC01FED901FEC9EA
+7F80D903F8EE1FC0D907E0EE07E04948707E4948707E49CB7E017E187E498449844848F0
+0F8000031AC04918074848F003E0A24848F001F0A248CD12F8A2001E1A78003E1A7CA200
+3C1A3C007C1A3EA200781A1EA300F81A1FA2481A0FAB6C1A1FA200781A1EA3007C1A3EA2
+003C1A3C003E1A7CA2001E1A78001F1AF8A26C6CF001F0A26C6CF003E0A26C6CF007C06D
+180F00011A806C6CF01F006D60017E187E6D606D6C4C5A6D6C4C5A6D6C4C5AD903F8EE1F
+C0D901FEEE7F809026007F80DA01FEC7FCDA3FE0EC07FCDA0FFCEC3FF0913B03FFC003FF
+C0020090B6C8FC033F14FC030714E09226007FFEC9FC50557BC05B>13
+D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580A3B712C0AA6C1580A3
+6C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA72D>15
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ft cmbx12 14.4 64
+/Ft 64 122 df<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FC
+DAFFF0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190
+C7FC715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03
+B612C0A542547DD34B>12 D<EA07F0EA1FF8EA3FFE487EA2B5128014C0A314E0A37EA27E
+EA1FFDEA07F1EA0001A2130314C0A313071480130FA214005B133EA25B5B485A1203485A
+485A485A90C7FC120C132876D225>39 D<EC01E0EC07F84A7EA66E5AA200041608001F16
+3ED83FC015FFD87FE04A13806D6C485AD8FFF84A13C0D87FFE021F138001FF5C02835B6C
+01C390B51200000FD9F1E313FC0001D9F9E713E027003FFDEF90C7FC0107B512F8010114
+E0D9003F90C8FCEC07F8EC3FFF49B512E0010714F890393FFDEFFF2701FFF9E713E0000F
+D9F1E313FC003FD9C3F013FF4801836D138002037F01FE80D8FFF8020713C0D87FF06E13
+8049486C7ED83FC06E1300D81F00153E00041608C792C7FCA24A7EA66E5AEC01E0323578
+D943>42 D<EA07F0EA1FF8487E487E7FB5FC1480A314C0A37EA27E7EEA07F3EA0003A213
+071480A3130F1400A25B131E133E133C137C5BA2485A485A485A485A48C7FC121E120C12
+28769025>44 D<B712F0AB240B7F9F2D>I<EA07F0487E487E487E487EB51280A76C1300
+6C5A6C5A6C5A6C5A1111769025>I<EF01E01703EF07F0A2170FA2EF1FE0A218C0173FA2
+EF7F80A218005FA24C5AA25F1603A24C5AA25F160FA24C5AA25F163FA24C5AA294C7FC5E
+A24B5AA25E1503A24B5AA25E150FA24B5AA25E153FA24B5AA293C8FC5DA24A5AA25D1403
+A25D1407A24A5AA25D141FA24A5AA25D147FA24AC9FCA25C1301A2495AA25C1307A2495A
+A25C131FA2495AA25C137FA249CAFCA25B1201A2485AA25B1207A2485AA25B121FA2485A
+A25B127FA248CBFCA25AA2127CA2347879D943>I<913803FFC0023F13FC91B6FC010315
+C0010F018113F0903A1FFC003FF849486D7E49486D7E49486D7E48496D138048496D13C0
+A24817E04890C813F0A34817F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17FE
+A6003F17FCA26D15FFA26C17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C6D
+4913006D6C495AD91FFCEB3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC02
+0313C0384F7BCD43>I<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EA
+F800C7FCB3B3B3A6007FB712FEA52F4E76CD43>I<EC3FFE0103B512E0010F14FC013F14
+FF90B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001
+F01680486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA2
+18C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B
+4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F80
+140749C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I<
+91380FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7E
+D803F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801
+FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF
+80DA000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA2
+18FEA2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E0
+01F04A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580
+010302FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F
+167FA216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC015
+80EC1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207
+485A485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D8
+0380150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C0
+93C8FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF807
+7FDAC0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA
+0FE0487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A
+6D5D6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F801
+0314C09026007FF8C8FC344F79CD43>I<ED0FFF92B512E0020780021F14FC91397FFE03
+FE903A01FFF0007F4901C0EB3F804990C7121F4948EC7FC0494814FF49484913E049485B
+01FF5C485BA2485B5AA2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC5AA21508
+913801FFF8020713FFB54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013804A15C0
+A24A15E07013F05C18F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E06C6D15C0
+7E6E4913806C6D15006D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C0010092C7FC
+023F13FC020713C0364F7ACD43>I<121F7F7FEBFF8091B81280A45A1900606060A26060
+60485F0180C86CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FE
+C812014B5A5E4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D14
+1FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F
+13FC0103B67E010F15E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E4848
+8048486E1380000717C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE
+4913806C7FDBC00313009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE01780
+6C4BC7FC6D806D81010F15E06D81010115FC010781011F81491680EBFFE748018115C048
+D9007F14E04848011F14F048487F48481303030014F8484880161F4848020713FC160182
+4848157F173FA2171FA2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D15
+7F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580
+010102FCC7FCD9000F13C0364F7ACD43>I<91380FFF8091B512F8010314FE010F6E7E49
+01037F90267FF8007F4948EB3FF048496D7E484980486F7E484980824817805A91C714C0
+5A7013E0A218F0B5FCA318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D6C7F6C6D137B6C
+6D13F390387FF803011FB512E36D14C30103028313F89039007FFE03EC00401500A218F0
+5EA3D801F816E0487E486C16C0487E486D491380A218005E5F4C5A91C7FC6C484A5A494A
+5A49495B6C48495BD803FC010F5B9027FF807FFEC7FC6C90B55A6C6C14F06D14C0010F49
+C8FC010013F0364F7ACD43>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C
+7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F81
+4C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B800207
+835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A8201
+03854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>
+65 D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F737F
+878587858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B812
+E097C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C80
+7413C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F5B
+073F13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01C0
+047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F01
+FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F88249498249498249
+49824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0FA2
+5AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C00
+6C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F
+806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612C0
+033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801AF0
+1AFCD8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F8674
+7F747F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00A3
+515AA2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F91
+C8FCBB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7000114C0F0
+001F19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A497C7FC1701
+A317031707170F177F92B6FCA59238F8007F170F170717031701A317001B3EA31B7CA395
+C8FCA21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF1907191F06
+03B5FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF0007F191F1907
+85858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A317031707170F177F
+92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD055>I<
+932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DA
+E003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F8
+824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849
+181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000A3
+6C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF6D
+6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE00
+1F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B8D8C003B8FCA5D80007
+01F8C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8C003B8FCA560527CD169>I<B8
+12C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I<B812F8A5D8000701F8CAFC
+B3B3A91A7CA41AFC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF18036018
+3F4DB5FCBB12E0A546527CD151>76 D<B600FC073FB512FE6F61A26F96B6FCA2D80007F5
+C00070EF01EFA202EF6DEF03CFA202E76DEF078FA202E36DEF0F0FA202E16D171EA302E0
+6D173CA26F6C1778A26F6C17F0A26F6DED01E0A26F6DED03C0A36F6DED0780A26F6DED0F
+00A26F6D151EA26F6D5DA3706C5DA2706C5DA2706D495AA2706D495AA2706D495AA3706D
+49C7FCA2706D131EA2706D5BA2716C5BA3716C5BA271EB81E0A271EBC3C0A271EBE780A2
+7101FFC8FCA3715BA2715BA2725AA2725AA2D93FFC6F5AB74DB712FEA2725AA2725A7752
+7CD180>I<B600FC93B7FC8181A282D800076E9239003FFC0070EE07E08282A28202EF7F
+02E77F02E380A202E18002E0806F7F6F7F6F7FA26F7F6F7F6F806F80A26F80707F707F70
+7F707FA2707F7080708070808583717F717F717F717FA27114807114C07114E07213F072
+13F8A27213FC7213FE7213FF721487A27214C77214E77313F77313FF85A285858585A285
+86868686A286868686A2D93FFC187FB7173F1B1F1B0F1B07755A60527CD169>I<93380F
+FFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90C7000313
+F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F49854948
+707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481BF0A34849
+7113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A2
+6C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7
+FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8FC020016
+FC031F15E0030392C9FCDB001F13E0565479D265>I<BAFC19F819FF1AE086D8000701F0
+C7001F13FC060113FF726C13807313C0070F13E01BF0857313F81BFCA27313FEA41BFFA8
+1BFEA31BFC61A21BF84F13F04F13E0614F13C04F13004E485A061F5B92B812F01AC04FC7
+FC19E003F8CBFCB3AEB812C0A550527CD15C>I<B912F0F0FF8019F819FF1AC0D8000701
+F0C714F0060F7F060113FE727F737F737F85737F87A2737FA387A863A2616363A24F5B4F
+5B4F90C8FC4F5A06035B060F13F095B512C092B8C9FC19F819E019F89226F0000313FE94
+39007FFF80727F727F727F727F727F8684A28684A787A71D1C75133EA38575137E73157C
+7513FC731401B86C6D9038F803F807039038FE07F07390B512E0736C14C0080F1400CEEA
+7FFC5F537CD164>82 D<91260FFF80130791B500F85B010702FF5B011FEDC03F49EDF07F
+9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F001F82498112
+3F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86CECFF80
+16FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303010082021F16
+801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882A3187FA27E
+A219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02F8EC7F
+F0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D9007F90C8
+FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF8060113C001
+E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994C7FCB3
+B3AC91B912F0A553517BD05E>I<B800C00103B612FCA5D8000701F8CAEBF000F31F80B3
+B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E6D15076E4D5A6E6D4B5A6E
+6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039F001FFF8030F90B65A0303
+16C0DB007F92C9FC040F14F8DC007F13805E537CD167>I<B700FE031FB512FEA5D8001F
+01F0CA383FFE00F307F06D626F170F6D62811B1F6D6D601B3F6D97C7FC6F5F6D197E821B
+FE6E6D5E1A016E6D5E1A036E60701507A26E6D5E1A0F6E6D5E1A1F6E6070153FA26E6D93
+C8FC626E6E147E1AFE6F5E711301A26F6D5C19036F6D5C19076F5E71130FA26F6D5C191F
+6F6D5C193F6F93C9FC715BA26FEC807E19FE706D5A18C1705C18E3705C18F318F770EBFF
+E0A2705CA2705CA37091CAFCA2705BA2715AA3715AA2715AA2715A715A5F537DD166>I<
+B700FC017FB600FE91B612F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D716187
+6F1C1F6D7196C7FC6F8373606D1E3E6F836D7160876F1CFC6D666F4B801F016D66704A80
+6E525A88704A17076E059F5F70021F80080F160F6E6570023F806EDC3E074CC8FC887002
+7E5F6EDC7C03163E7002FC804F6C167E6E1C7C700101814F6C16FC6E745B70010317016E
+4C6D5D060716C00580496D14036F63DDC00F16E04F6D14076F07F05BDDE01F170F6F92C7
+6C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F4A6E14
+7C1DFFDDFFF06E14FC6F62A24E816F62A270496F5BA24E817061A295C97E7061A2704870
+90CAFCA37048705AA24D1601040360A27048705A84537DD18B>I<B8030FB61280A5D800
+0F01FCCA003F90C7FC6FEF07F86D6D606D4F5A826D6E4C5A6D4F5A826E6D4CC8FC6E18FE
+826E6D4B5A6E4D5A826E6D4B5A6E4D5A836E6E4A5A6E4D5A836F6D4AC9FC6F5E715C6F6D
+495A6F1503715C6F6D495A6F150F06805B6F6E485A6F153F06E05B706D48CAFC705C725A
+70EBFDFC7013FF61705C82705C6182715B96CBFCB3AA030FB712F8A561527ED166>89
+D<1306131F5B137E5B485A5B485A485A485AA248C7FC121E123EA2123C127C1278A312F8
+5AA2EAF1FCEAF7FFB5128014C0A214E0A37EA37E6C13C0A26C138000031300EA01FC1328
+78D225>96 D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D
+7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC
+91B7FC01071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2
+485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026
+F81FC014F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>I<
+EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301017F91
+3AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A28584
+A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA87
+F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C041547B
+D24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001FF
+D97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A4892
+C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F
+006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC02
+0113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6
+FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F48498048
+5B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D
+49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD900
+3F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C0490181
+7F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191C7
+FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F0
+6E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE90
+3A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC0203
+B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A495A
+A2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB512
+FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F9026
+7FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83FF813E0
+489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A6C
+6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFCA2
+120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC12074848C7
+00031480D81FF8EC003F4848150748486F13C083485A83A56D5D007F18806D5D003F1800
+6C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F03
+FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4EE1FFC
+93B512C0030314F0030F8092391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3C0
+DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E00
+0313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6
+B612E0A51B547BD325>I<157FEDFF80020313E04A13F0A24A13F8A76E13F0A26E13E002
+001380ED7F0092C7FCADED1FF891B5FCA51401EC007FB3B3B1EA0780EA1FE0487E487E48
+6C13FF16F0A216E05C16C04A13806C4848130049485A003F495A000FB512F06C5C000114
+8026001FFCC7FC256C87D329>I<EB3FF0B5FCA51203C6FCB3A54CB512F8A59339003FFE
+00EF1FF0EF3FC04D5A4DC7FCEE03FEEE07F84C5A4C5AEE7FC04CC8FC4B5A4B5AED0FF8ED
+1FE04B7E4B7EECF1FF02F37F02F77F91B6FC83159F030F7F02FE80DAF8077F4A7E6F7F6F
+7F83707E82707F84707F707F82707F84707F177F717E4D13C0B6D8F003B6FCA540537CD2
+47>I<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>I<D93FF0D91FFCEDFFE0B5
+91B500C0010713FE030302F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F00
+1FFE01F8007F0003027C9126FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C015
+9EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB512
+FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F0030F8092391FE07FFC92393F
+001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6
+D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B612C0010315F0010F903880
+7FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C
+7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C
+5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807F
+FC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13
+FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92
+C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E
+4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480
+031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<912601FFE0EB0780021F01
+F8130F91B500FE131F0103ECFF80010F9039F03FC03F499039800FE07F903A7FFE0003F0
+4948903801F8FF4849EB00FD4849147F4A805A4849805A4A805AA291C87E5AA35B12FFAC
+6C7EA37EA2806C5EA26C6D5CA26C6D5C6C6D5C6C93B5FC6C6D5B6D6C5B6DB4EB0FEF010F
+9038C07FCF6D90B5120F010114FED9003F13F80203138091C8FCB1040FB61280A5414D7C
+B547>I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003
+D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55C
+B3AAB612FCA52F367CB537>I<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF8
+1307D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13
+FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F
+030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001
+F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C38
+7CB635>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FC
+B8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC
+6DEBFFF86D6C5B021F5B020313802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA500
+03ED001FC61607B3AE5FA35FA2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFF
+C0903A0FFFC03F836D90B51203010114FE6D6C13F8020701E091C7FC42377BB54B>I<B6
+00F00107B5FCA5000101F8C8EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D
+5E6F13016D5E8117036D5E6F13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E
+023F147C6F13FC6E5C16816E5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5A
+A36F5AA26F5AA26F5AA26F5A6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101
+F0C701F0C7381FF8006E027FED07E06C715DA26E023F150F017F705DA26E181F013F4B6C
+92C7FC6E606D70143E94B5FC6F177E6D4A6E137C03C001F315FC6D715B160303E001E114
+016D020702E05B03F013C06D71485A160F03F8D9807F13076D05F85B93381F003F03FC16
+0F027F4902FC5BDBFE3E011F131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C
+6D137E6E5FA24C7F6E5F4C7F6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9
+FC5A367DB461>I<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C
+6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8F
+E06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD
+7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A
+49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600
+F00107B5FCA5C601F8C8EA7FE06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F1301
+6D5E6F13036D5E8117076D6D5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F14
+7C6F13FCA26E6D5A16816EEBC1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F
+5AA26F5AA26F5AA26F5AA35E150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C
+13FC5D14015D14034A5A6C48485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC6
+90CBFC404D7DB447>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fu cmr10 10.95 89
+/Fu 89 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
+FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
+D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13
+7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9
+FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB
+1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3
+2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C
+D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92
+C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB
+7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00
+AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33
+D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013
+00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E
+0018130C0038131C003013181C1C7DBE2D>I<013F4C7ED9FFC04B7E2601E0E015072607
+C070150F48486C4B5A023E4BC7FC48486C5D48D90FC0EB01FE003ED90EF0EB07FCDA0F3F
+133E007E903A070FFFF8F8007C0200EBC1F0EE000300FC6D6C495A604D5A171F95C8FC17
+3E177E177C5F16015F007C4948485A1607007E5E003E49495A020E131F003F93C9FC6C49
+133E260F803C137E0238137C6C6C485B3901E0E0016CB448485AD93F0049133F90C74848
+EBFFC0030F903801E0E093398007C0704B4848487E4B153C033E90381F001C4B497F03FC
+133E4B150F4A48017E7F0203147C5D4A4801FCEB0380140F5D4AC7FC5C143E5C14FC5C49
+5A13034948027CEB07005C4948147E011F033E5B91C8140E013E153F017E6F5B017C9238
+0F803C4917380001706C5A49923801E0E0496FB45A6C48043FC7FC41497BC34C>37
+D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A
+120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00131E
+133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C
+12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F13
+3E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E
+6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A613
+0314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B
+485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A2805CA600F0140F00FC
+143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FDBF00EB3FFCEB0FF0
+EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39FF03C0FF00FE147F
+00FC143F00F0140F00001400A6805CA220277AC32D>I<1506150FB3A9007FB912E0BA12
+F0A26C18E0C8000FC9FCB3A915063C3C7BB447>I<121EEA7F8012FF13C0A213E0A3127F
+EA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919>I<
+B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>I<ED01
+80ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815F8A25D1401A25D
+1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8A25C1301A25C13
+03A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B1201A25B1203A25B
+1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A1260225B7BC32D>
+I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F4848EB0F80A2000F
+15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8A56C6CEB07F0A3
+001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C5B90383F03F090
+380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07FFB5FC139FEAF8
+1F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B512E03903F01F
+F83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF0
+7FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A
+5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E0485A485A485A48
+C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF809038F80FE03901
+E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C07FA27F5BA2121F
+6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCECFF809038000FE0
+EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E487EA316E0A249
+137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0C6B55A013F1380
+D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403EC077E1406140E
+141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7
+FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<000614
+03D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380F
+FF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216E0150F
+A316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C6CEC7F
+00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<
+EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC049133F4848137F
+12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE903887FF8039FF8F
+07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0A34914F0A5127F
+A6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C5B6C6C485A9038
+7E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90B612FCA316F85A
+16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F04A5A5D
+14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2131FA6
+133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E09038F001F83901
+E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB0F807F6C6C131F
+6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7FC133F6D13C06D
+7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C048487E489038007F
+E0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C1403A2007E15C06C
+14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F1380D903FCC7FC
+243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E48486C7E4848137C00
+0F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A5127F153FA36C7EA2
+001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91FFE13E0EB07F090
+C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485AEB8007391E000F
+E0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<121EEA7F80A2EA
+FFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>
+I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E
+1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I<007FB912
+E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C167BA147>61
+D<EB1FF890B5FC3903E01FC0390F0007F0001EEB03F848EB01FC4814FE140000FE14FF7E
+7FA46CC7FC123EC7EA01FEA2EC03FCEC07F815F0EC0FC0EC1F80EC3F00143E5C147814F8
+5C13015CA2495AA25CAB91C7FC90C8FCA8EB0780EB1FE0A2497EA46D5AA2EB078020407B
+BF2B>63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381
+FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249
+819138800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA20178
+82170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65
+D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF3FE0A2EF
+1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0FF8EE7FE0
+91B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F18FC1707
+A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380FFE00B85A
+17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E913A3FF007
+E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A
+91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127FA3491600
+12FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C1678000117
+706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600
+FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<B712FCEE
+FF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E717E170184
+717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D5AA24D5A
+6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E7DBD45>
+I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A41838161C
+A41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161CA21807A3180E93
+C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01FFB912F0A3383E
+7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A31701A4
+EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A21638A6
+93C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F9038FF
+803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F4948140F
+4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA2485AA218
+1C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F121FA2
+6C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C7C9026
+00FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF47>I<
+B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3
+A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3FC0B3B3
+B2EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA
+7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7
+FC3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101E0C7000F138026007F
+80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E5E5E4B
+5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC878791388F03FE9138
+9E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F717E8417
+3F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<B612F8
+A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C5A160748486C
+133FB8FCA3313E7DBD39>I<B500C093383FFFF0A300016D93387FF800D8007F18E0D977
+F016EFA3D973F8ED01CFA2D971FCED038FA3D970FEED070FA26E150E80A26E6C141CA36E
+6C1438A26E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A2037F130E
+A36F6C5AA26F6C5AA36F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90C7FCA213F848
+6C147ED807FFEF3FF8B500F8013C011FB512F0A34C3E7DBD53>I<B56C91B512F88080D8
+007F030713006EEC01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E
+6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7F
+C0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2
+170701F81503487ED807FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE
+91391FC03F8091397E0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49
+C86C7E01FE6F7E00018349150300038348486F7EA248486F7EA2001F188049167F003F18
+C0A3007F18E049163FA300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C
+4B1300A26C6C4B5A00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC
+6D6C14FED901FCEB03F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C42
+7BBF47>I<B712F8EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF
+3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091
+B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91
+391FC03F8091397F000FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49
+C86C7E498248486F7E49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3
+007F18E0A249163FA200FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F
+18006D5D0007DA0F805B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017F
+D9800E5BD93F819038061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FD
+C013F8903A007EE007E091271FF03FC013180207B5FC9139007FE1E0DB00011438837113
+78A2706C13F0EFFF0318FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>
+I<B712C016FCEEFF800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717E
+A284A760177F606017FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F0913880
+01FCED003FEE1FC0707E707E83160383160183A383A484A4F0C004190EA28218E0057F13
+1E2601FFE0161CB600C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD
+43>I<D907FC130C90391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC
+4848130F001F140748C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27E
+A26C6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0
+010714F0EB007F020713F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163F
+A27EA3163E7E167E6C157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF0
+7F803F8090391FFFFE00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0
+007FE001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00
+E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0
+C70007130026007F80EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F1503
+6E4A5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B512
+80020049C8FCED1FF03D407DBD44>I<B691380FFFFEA3000301E0020113E06C01809138
+007F806CEF3F00017F163E181C6E153C013F1638A26E1578011F1670A26D6C5DA26E1401
+01075EA26E140301035EA26D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F14
+38A26E6C5BA26F13F0020F5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A
+6E130EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE01
+7FB5D88007B5FCA3000301C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E
+143F017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F0010761
+04037F6E0281140101036104077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0
+DA7F80160EA24CEB1FE003C0161E023F171C047814F0DBE070010F133C021F173804F014
+F84C1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA2
+6E5FA24B157F020094C8FCA24B81037C153EA20378151E0338151C58407EBD5D>I<007F
+B5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C
+6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BED
+F81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFE
+ED71FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E0238
+6D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00
+076DEC7FFFB500FC0103B512FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8
+006C6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D
+6D1303606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E
+13016EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3
+413E7FBD44>I<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EED
+FF80A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FC
+A24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2
+495A495A173C495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848
+143FED01FFB8FCA32E3E7BBD38>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>
+I<486C13C00003130101001380481303000EEB070048130E0018130C0038131C00301318
+0070133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133F
+A2003F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFC
+A40E5B7FC319>I<1318133C137E13FF3801E7803803C3C0380781E0380F00F0001E1378
+48133C48131E48130F00601306180D76BD2D>I<EA0180120313005A120E5A1218123812
+3012701260A312E05AA412CFEAFFC013E0A3127FA2123F13C0EA0F000B1C7ABE19>96
+D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF07F6E7EA3157F6C
+5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8EA0FE0485A485A
+A248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC00E13CF3A07F03C
+0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01FC12FFA3120712031201B1EC03
+FC91381FFF8091387C07E09039FDE001F09039FFC000FC4A137E91C77E49158049141F17
+C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F17C06D1580EE3F006D5C6E13FE
+9039F3C001F89039F1E003F09039E0780FC09026C03FFFC7FCC7EA07F82D407EBE33>I<
+49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248
+48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307
+6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828
+>I<ED01FC15FFA3150715031501B114FF010713E190381F80F990387E003D49131FD803
+F81307485A49130348481301121F123F5B127FA290C7FCA25AAA7E7FA2123FA26C7E000F
+14037F000714076C6C497E6C6C497ED8007C017913F890383F01F190380FFFC1903A01FE
+01FC002D407DBE33>I<EB01FE90380FFFC090383F03F09038FC01F848486C7E4848137E
+48487F000F158049131F001F15C04848130FA2127F16E090C7FCA25AA290B6FCA290C9FC
+A67EA27F123F16E06C7E1501000F15C06C6C13036DEB07806C6C1400C66C131E017E5B90
+381F80F8903807FFE0010090C7FC232A7EA828>I<EC1FC0EC7FF8903801F83C903807E0
+7E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C1500AEB6FCA3C648C7FCB3AE48
+7E007F13FFA320407EBF1C>I<167C903903F801FF903A1FFF078F8090397E0FDE1F9038
+F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00
+075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2
+7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815
+7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F
+C7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FFA3120712031201B1EC01FE9138
+07FFC091381E07E091387803F09138E001F8D9FDC07F148001FF6D7E91C7FCA25BA25BB3
+A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA07F8A2487EA46C5AA2EA01E0C8
+FCACEA01FC127FA3120712031201B3AC487EB512F0A3143E7DBD1A>I<1478EB01FEA2EB
+03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14
+FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>I<EA01FC
+12FFA3120712031201B292B51280A392383FFC0016E0168093C7FC153C5D5D4A5AEC07C0
+4A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F496C7E01FC7F496C7E1401816E
+7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A32B3F7EBE30>I<EA01FC12FFA3
+120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701F801FE14FF00FF902707FFC0
+0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F
+000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8
+7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0
+00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8
+F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F
+804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C
+15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800
+7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F
+FF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC0
+17E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001
+F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733
+>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC
+150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C13
+0F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512
+F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB
+1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901
+FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300
+EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF8
+00E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0
+FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0
+B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FE
+EB01F81B397EB723>I<D801FC14FE00FF147FA3000714030003140100011400B3A51501
+A31503120015076DEB06FF017E010E13806D4913FC90381FC078903807FFE00100903880
+FE002E297DA733>I<B539E00FFFE0A32707FE000313006C48EB00FC5E00015D7F00005D
+A26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380FE00EA2ECF01E0107131CA26D
+6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5AA26EC8FCA3140E2B287EA630
+>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48EB3F806C4817006D010F141E
+00016F131C15076D163C00004A6C1338A2017F5E4B7E151DD93F805DED3DFC1538D91FC0
+4A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701070387C7FC9138F1C01F02F9
+148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA24A1303027E5CA2027C130102
+3C5C023813003D287EA642>I<B539F01FFFE0A30003D9C00F1300C690388007F8D97F00
+13E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF
+6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF01037F49486C7ED90F007F01
+1E6D7E013E130F496D7E01FC80486C80000F4A7EB539803FFFF8A32D277FA630>I<B539
+E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00005DA2017F495AA2EC800301
+3F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01031338A26D6C5AA2ECFEF001
+005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C1438A2147800181370127EB45B
+A2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E02B3A7EA630>I<001FB61280
+A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FC
+C6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712074914
+00485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I<B812F0A22C0280
+982D>I<BE12C0A25A0280985B>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fv cmbx12 20.736 9
+/Fv 9 117 df<B912E0B033107EAE41>45 D<96267FFFE01670063FB6ED01F80503B700
+F01403053F04FC14074CB96C130F040706E0131F043F72133F93BA00FC137F0303DC0007
+6D13FF030F03C09039003FFF814B02FCC8000713C3037F02E0030113F792B600806F6CB5
+FC02034ACA121F4A02F8834A02E0834A4A1701027F4A8391B548CC7E494A85495C4C8549
+88494A85494A85495C8A4991CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2
+485CA3481E075DA2795A489BC9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C800
+0302F8C7FCA36C80A36C80A27E817E817E817F6D80827F6D806D806D80826D6E606D806E
+80021F6E5F6E02F05F6E806E02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6F
+DAFFE0021F138703039226FF8003B51201030093B6EAFC00043F4E133F040706E0131F04
+014E1307DC003F4CC71201050304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75
+F798>71 D<BA12F8A8C7001F02C0C7FCB3B3B3B3B3ACBA12F8A83D767BF548>73
+D<B800C051B8128071637163A37163A27163C7003F57C8FC71F33FBFA203EF6DF37F3FA3
+03E76E1AFEA203E36EF101FCA203E16EF103F8A203E06EF107F0A3706DF10FE0A2706DF1
+1FC0A2706DF13F80A2706DF17F00A3706E18FEA2706E4D5AA2706E4D5AA3706E4D5AA271
+6D4D5AA2716D4D5AA2716D4D5AA3716D4DC7FCA2716E16FEA2716E4B5AA2716E4B5AA371
+6E4B5AA2726D4B5AA2726D4B5AA3726D4B5AA2726D4BC8FCA2726E14FEA2726E495AA372
+6E495AA2726E495AA2736D495AA2736D495AA3736D495AA2736D49C9FCA273EC80FEA2F4
+81FC7314C1A273ECE3F8A273ECF7F0A274EBFFE0A3745CA2745CA27491CAFCA2745BA374
+5BA2902603FFFE705BB800F897BA1280745BA2755AA3755A755AA97679F5B8>77
+D<BC12FCF3FFF01CFF1DE01DFC1DFF1EC08AC7003F91C8000115F8E0000F80090180756C
+6D7E76801C0F76808B7680888B7680A28BA2892080A420C0AB2080A49AB61200A267A267
+6467525C64670A1F5C525C5291C7FC51B55A090F14F850B65A94BA12C09BC8FC1DFC1DF0
+9AC9FC1CF809FCCAFC0580CEFCB3B3A8BA12E0A872767AF584>80
+D<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5CA26D5B6D5B6D
+5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3B3A5B81280A8
+297979F835>105 D<902601FFF891380FFFE0B692B512FE05036E7E050F15E0053F15F8
+4D81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF06D80011FDA1FC07F6D4A4882
+4CC8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293C9FCA45DB3B3A6B8D8E003B8
+1280A8614E79CD6C>110 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE
+4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16
+F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA6
+5DB3B3A2B812F8A8434E7ACD4F>114 D<15FFA75CA55CA45CA25CA25CA25CA25C91B5FC
+A25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FCB3B3A3F01FE0AE183F7014C07F187F
+7014806D16FF826D4B13006E6D485AEEFE0F6E90B55A020F5D6E5D020115C06E6C5C031F
+49C7FC030113F03B6E7CEC4B>116 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 150 1318 a Fv(GIMP-Prin)-5 b(t)p 150 1385 3600
+34 v 2515 1481 a Fu(The)30 b(prin)m(t)f(plugin)f(for)i(the)h(GIMP)2529
+1589 y(V)-8 b(ersion)30 b(4.2.7,)j(27)e(Octob)s(er)f(2001)150
+5068 y Ft(The)44 b(GIMP-Prin)l(t)h(Pro)7 b(ject)p 150
+5141 3600 17 v eop
+%%Page: 2 2
+2 1 bop 150 4261 a Fu(Cop)m(yrigh)m(t)680 4258 y(c)655
+4261 y Fs(\015)108 b Fu(2001)j(Mic)m(hael)d(Sw)m(eet)h(\()p
+Fr(mike@easysw.com)p Fu(\))c(and)j(Rob)s(ert)g(Kra)m(witz)150
+4371 y(\()p Fr(rlk@alum.mit.edu)p Fu(\))150 4505 y(P)m(ermission)30
+b(is)i(gran)m(ted)h(to)f(mak)m(e)i(and)d(distribute)f(v)m(erbatim)i
+(copies)g(of)g(this)f(man)m(ual)h(pro)m(vided)f(the)150
+4615 y(cop)m(yrigh)m(t)g(notice)f(and)g(this)f(p)s(ermission)f(notice)i
+(are)h(preserv)m(ed)f(on)h(all)e(copies.)150 4749 y(P)m(ermission)22
+b(is)g(gran)m(ted)j(to)f(cop)m(y)g(and)f(distribute)e(mo)s(di\014ed)h
+(v)m(ersions)h(of)g(this)g(man)m(ual)g(under)f(the)h(con-)150
+4859 y(ditions)28 b(for)i(v)m(erbatim)f(cop)m(ying,)i(pro)m(vided)d
+(that)j(the)f(en)m(tire)g(resulting)e(deriv)m(ed)h(w)m(ork)h(is)f
+(distributed)150 4969 y(under)g(the)h(terms)h(of)f(a)h(p)s(ermission)c
+(notice)k(iden)m(tical)e(to)i(this)e(one.)150 5103 y(P)m(ermission)i
+(is)i(gran)m(ted)g(to)h(cop)m(y)g(and)f(distribute)d(translations)i(of)
+i(this)e(man)m(ual)g(in)m(to)h(another)g(lan-)150 5213
+y(guage,)d(under)e(the)g(ab)s(o)m(v)m(e)i(conditions)d(for)i(mo)s
+(di\014ed)d(v)m(ersions,)j(except)g(that)h(this)d(p)s(ermission)f
+(notice)150 5322 y(ma)m(y)31 b(b)s(e)f(stated)h(in)e(a)i(translation)e
+(appro)m(v)m(ed)i(b)m(y)f(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation.)p eop
+%%Page: -1 3
+-1 2 bop 3723 -116 a Fq(i)150 299 y Fp(Short)53 b(Con)l(ten)l(ts)150
+540 y Fq(Preface)34 b Fo(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
+(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
+h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)65 b
+Fq(1)150 681 y(GNU)32 b(GENERAL)h(PUBLIC)h(LICENSE)41
+b Fo(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
+(.)h(.)f(.)g(.)72 b Fq(2)150 822 y(Cop)m(ying)33 b(summary)19
+b Fo(.)g(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
+g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)51
+b Fq(9)150 963 y(1)156 b(Ov)m(erview)20 b Fo(.)g(.)g(.)f(.)h(.)f(.)g(.)
+h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
+(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)51 b Fq(10)150
+1104 y(2)156 b(Using)32 b(libgimpprin)m(t)g Fo(.)20 b(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
+f(.)h(.)f(.)h(.)f(.)h(.)67 b Fq(11)150 1245 y(3)156 b(In)m(tegrating)32
+b(libgimpprin)m(t)15 b Fo(.)g(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
+h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)46
+b Fq(12)150 1386 y(4)156 b(F)-8 b(unctions)12 b Fo(.)19
+b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
+(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
+43 b Fq(15)150 1528 y(5)156 b(Programs)15 b Fo(.)j(.)i(.)f(.)h(.)f(.)g
+(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
+f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)46 b
+Fq(26)150 1669 y(6)156 b(Rep)s(orting)31 b(Bugs)41 b
+Fo(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)71
+b Fq(32)150 1810 y(7)156 b(App)s(endices)38 b Fo(.)20
+b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)69
+b Fq(33)150 1951 y(App)s(endix)33 b(A)99 b(Dithering)26
+b Fo(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)59
+b Fq(34)150 2092 y(App)s(endix)33 b(B)103 b(W)-8 b(ea)m(ving)33
+b(for)f(inkjet)g(prin)m(ters)f Fo(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
+h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)61 b Fq(41)150 2233 y(App)s(endix)33
+b(C)102 b(ESC/P2)21 b Fo(.)g(.)f(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
+h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
+(.)53 b Fq(61)150 2374 y(App)s(endix)33 b(D)97 b(Adding)33
+b(a)f(new)h(prin)m(ter)22 b Fo(.)d(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
+(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)53 b Fq(74)150
+2516 y(Data)32 b(T)m(yp)s(e)i(and)e(V)-8 b(ariable)31
+b(Index)11 b Fo(.)21 b(.)e(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)42 b Fq(85)150
+2657 y(F)-8 b(unction)32 b(and)g(Macro)h(Index)i Fo(.)20
+b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
+(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)65 b Fq(86)150 2798
+y(Concept)34 b(Index)42 b Fo(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
+(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
+f(.)h(.)f(.)g(.)h(.)f(.)h(.)72 b Fq(89)p eop
+%%Page: -2 4
+-2 3 bop 3699 -116 a Fu(ii)150 299 y Fp(T)-13 b(able)54
+b(of)g(Con)l(ten)l(ts)150 641 y Ft(Preface)19 b Fo(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
+g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)63
+b Ft(1)150 911 y(GNU)45 b(GENERAL)g(PUBLIC)g(LICENSE)31
+b Fo(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)75 b Ft(2)449
+1048 y Fu(Pream)m(ble)16 b Fn(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)45 b Fu(2)449 1157 y(TERMS)29
+b(AND)j(CONDITIONS)d(F)m(OR)h(COPYING,)h(DISTRIBUTION)631
+1267 y(AND)g(MODIFICA)-8 b(TION)24 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fu(3)449 1377
+y(Ho)m(w)31 b(to)g(Apply)e(These)h(T)-8 b(erms)30 b(to)h(Y)-8
+b(our)31 b(New)f(Programs)16 b Fn(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)46 b Fu(7)150 1619 y Ft(Cop)l(ying)g(summary)12
+b Fo(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g
+(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)56
+b Ft(9)150 1889 y(1)135 b(Ov)l(erview)14 b Fo(.)20 b(.)g(.)f(.)h(.)f(.)
+g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
+(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)58 b Ft(10)150
+2159 y(2)135 b(Using)45 b(libgimpprin)l(t)14 b Fo(.)21
+b(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)f(.)g(.)h(.)59 b Ft(11)449 2296 y Fu(2.1)92
+b(Co)s(de)30 b(prerequisites)10 b Fn(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b Fu(11)449
+2405 y(2.2)92 b(Linking)28 b(with)h(libgimpprin)m(t)12
+b Fn(.)e(.)15 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41
+b Fu(11)150 2648 y Ft(3)135 b(In)l(tegrating)47 b(libgimpprin)l(t)11
+b Fo(.)20 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)g(.)h(.)56 b Ft(12)449 2785 y Fu(3.1)92 b Fr(gimpprint-config)17
+b Fn(.)10 b(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)46 b Fu(12)449 2894 y(3.2)92 b Fr(make)22
+b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)52
+b Fu(13)449 3004 y(3.3)92 b Fr(autoconf)14 b Fn(.)f(.)i(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)43 b Fu(13)449 3113 y(3.4)92 b Fr(automake)14
+b Fn(.)f(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 b Fu(13)150
+3356 y Ft(4)135 b(F)-11 b(unctions)36 b Fo(.)19 b(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
+f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)82 b Ft(15)449 3493 y
+Fu(4.1)92 b(Main)30 b(functions)14 b Fn(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)43
+b Fu(15)449 3602 y(4.2)92 b Fr(stp_vars_t)28 b Fu(functions)e
+Fn(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+58 b Fu(15)449 3712 y(4.3)92 b(Dither)30 b(functions)10
+b Fn(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)39 b Fu(21)449 3822 y(4.4)92 b(Options)29
+b(functions)23 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)53 b Fu(21)449 3931 y(4.5)92
+b(P)m(ap)s(er)30 b(functions)21 b Fn(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)50
+b Fu(21)449 4041 y(4.6)92 b(Prin)m(ter)29 b(functions)18
+b Fn(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)48 b Fu(22)449 4150 y(4.7)92 b(Settings)30
+b(functions)22 b Fn(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 b Fu(24)449 4260 y(4.8)92
+b(V)-8 b(ersion)30 b(functions)13 b Fn(.)g(.)i(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42
+b Fu(24)748 4369 y(4.8.1)93 b(V)-8 b(ersion)30 b(macros)20
+b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49
+b Fu(25)748 4479 y(4.8.2)93 b(V)-8 b(ersion)30 b(v)-5
+b(ariables)27 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+58 b Fu(25)p eop
+%%Page: -3 5
+-3 4 bop 3674 -116 a Fu(iii)150 83 y Ft(5)135 b(Programs)38
+b Fo(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)82
+b Ft(26)449 220 y Fu(5.1)92 b(The)30 b(GIMP)g(Prin)m(t)g(plugin)9
+b Fn(.)k(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)38
+b Fu(26)748 330 y(5.1.1)93 b(Preview)12 b Fn(.)i(.)h(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41
+b Fu(26)748 439 y(5.1.2)93 b(Prin)m(ter)29 b(Settings)e
+Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)56
+b Fu(27)748 549 y(5.1.3)93 b(P)m(osition)9 b Fn(.)14
+b(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)39 b Fu(28)748 658 y(5.1.4)93 b(Scaling)27
+b Fn(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+h(.)f(.)g(.)g(.)g(.)58 b Fu(28)748 768 y(5.1.5)93 b(Image)31
+b(Settings)26 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)56 b Fu(29)1047 878 y(5.1.5.1)93 b(Adjust)30
+b(Output)13 b Fn(.)g(.)i(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Fu(29)1047
+987 y(5.1.5.2)93 b(Dither)30 b(Algorithm)25 b Fn(.)15
+b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)55 b Fu(30)748 1097 y(5.1.6)93 b(Action)30
+b(Buttons)15 b Fn(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h
+(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)44 b Fu(31)449 1206 y(5.2)92 b(Ghostscript)30 b(driv)m(er)15
+b Fn(.)e(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)44 b Fu(31)449 1316 y(5.3)92 b(CUPS)29
+b(driv)m(er)15 b Fn(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b
+Fu(31)150 1538 y Ft(6)135 b(Rep)t(orting)46 b(Bugs)12
+b Fo(.)19 b(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)57 b Ft(32)150
+1788 y(7)135 b(App)t(endices)13 b Fo(.)18 b(.)i(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
+f(.)h(.)f(.)h(.)f(.)58 b Ft(33)150 2038 y(App)t(endix)44
+b(A)134 b(Dithering)25 b Fo(.)20 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
+(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)69 b Ft(34)150
+2287 y(App)t(endix)44 b(B)134 b(W)-11 b(ea)l(ving)46
+b(for)f(inkjet)g(prin)l(ters)10 b Fo(.)21 b(.)e(.)h(.)f(.)h(.)55
+b Ft(41)449 2424 y Fu(B.1)92 b(In)m(tro)s(duction)11
+b Fn(.)j(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fu(41)449 2534
+y(B.2)92 b(W)-8 b(ea)m(ving)32 b(algorithms)16 b Fn(.)e(.)h(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45
+b Fu(42)748 2644 y(B.2.1)92 b(Simple)28 b(w)m(ea)m(ving)j(algorithms)16
+b Fn(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)46 b Fu(43)748 2753 y(B.2.2)92 b(P)m(erfect)32
+b(w)m(ea)m(ving)21 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)50 b Fu(44)748 2863 y(B.2.3)92 b(W)-8 b(ea)m(ving)32
+b(collisions)15 b Fn(.)d(.)j(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44
+b Fu(47)748 2972 y(B.2.4)92 b(What)32 b(mak)m(es)f(a)g(\\p)s(erfect")g
+(w)m(ea)m(v)m(e?)19 b Fn(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)h(.)f(.)g(.)48 b Fu(48)748 3082 y(B.2.5)92 b(Ov)m(ersampling)17
+b Fn(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)46
+b Fu(57)150 3304 y Ft(App)t(endix)e(C)134 b(ESC/P2)35
+b Fo(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
+(.)f(.)h(.)f(.)g(.)h(.)f(.)79 b Ft(61)449 3441 y Fu(C.1)91
+b(In)m(tro)s(duction)29 b(to)i(ESC/P2)11 b Fn(.)k(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fu(61)449 3551 y(C.2)91
+b(Standard)29 b(commands)24 b Fn(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fu(61)449 3660 y(C.3)91
+b(Remote)32 b(Mo)s(de)e(Commands)23 b Fn(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)52 b Fu(66)449 3770 y(C.4)91 b(Appropriate)29
+b(Remote)j(Commands)22 b Fn(.)13 b(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51
+b Fu(72)150 3992 y Ft(App)t(endix)44 b(D)134 b(Adding)44
+b(a)i(new)f(prin)l(ter)14 b Fo(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
+(.)g(.)59 b Ft(74)449 4129 y Fu(D.1)92 b(`)p Fr(printers.xml)p
+Fu(')10 b Fn(.)i(.)j(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)39 b Fu(74)449 4239 y(D.2)92
+b(The)30 b(driv)m(er)f(\014le)17 b Fn(.)d(.)h(.)g(.)g(.)g(.)h(.)f(.)g
+(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)46
+b Fu(75)449 4348 y(D.3)92 b(Epson)29 b(inkjet)h(prin)m(ters)10
+b Fn(.)k(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
+(.)39 b Fu(75)449 4458 y(D.4)92 b(T)-8 b(uning)29 b(the)h(prin)m(ter)17
+b Fn(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)47 b Fu(81)449 4568 y(D.5)92 b(Canon)30 b(inkjet)f(prin)m
+(ters)24 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
+g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
+(.)g(.)g(.)54 b Fu(83)150 4790 y Ft(Data)46 b(T)l(yp)t(e)e(and)h(V)-11
+b(ariable)46 b(Index)21 b Fo(.)e(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
+g(.)h(.)f(.)h(.)f(.)66 b Ft(85)150 5040 y(F)-11 b(unction)44
+b(and)h(Macro)f(Index)11 b Fo(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)
+g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)56 b Ft(86)150
+5289 y(Concept)45 b(Index)21 b Fo(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
+f(.)h(.)f(.)h(.)65 b Ft(89)p eop
+%%Page: 1 6
+1 5 bop 150 -116 a Fu(Preface)3264 b(1)150 299 y Fp(Preface)275
+533 y Fu(This)39 b(man)m(ual)h(do)s(cumen)m(ts)h(the)g(use)g(of)h(the)f
+(GIMP-Prin)m(t)g(pac)m(k)-5 b(age,)46 b(fo)s(cusing)39
+b(mainly)h(on)h(the)150 643 y(libgimpprin)m(t)32 b(library)h(that)k(is)
+e(the)h(core)h(of)f(GIMP-Prin)m(t.)57 b(P)m(arts)37 b(of)f(the)g(man)m
+(ual)g(whic)m(h)f(describ)s(e)150 752 y(the)26 b(use)f(of)h
+(libgimpprin)m(t)c(are)k(aimed)f(primarily)d(at)27 b(programmers,)f
+(and)f(do)h(assume)g(that)g(the)g(reader)150 862 y(is)j(familiar)f
+(with)g(C)i(programming,)f(and)g(using)g(standard)g(programming)f(to)s
+(ols)i(on)g(GNU)h(or)f(UNIX)150 971 y(systems.)52 b(Other)34
+b(parts)g(of)g(the)h(man)m(ual)e(do)s(cumen)m(t)h(the)h(use)f(of)g(the)
+h(programs)e(that)i(mak)m(e)h(up)d(the)150 1081 y(GIMP-Prin)m(t)f(pac)m
+(k)-5 b(age,)34 b(and)e(assume)f(no)h(kno)m(wledge)g(other)g(than)g
+(the)g(basics)f(of)i(using)d(a)i(shell)f(and)150 1191
+y(editor.)275 1325 y(The)39 b(b)s(est)h(w)m(a)m(y)h(to)g(learn)e(ho)m
+(w)h(to)h(use)f(libgimpprin)m(t)c(in)j(y)m(our)h(o)m(wn)g(programs)g
+(is)f(to)i(read)f(the)150 1435 y(man)m(ual)25 b(from)g(start)h(to)g
+(\014nish,)f(using)f(the)h(examples)h(giv)m(en)f(in)f(the)i(text)h(to)f
+(learn)f(ho)m(w)g(it)g(w)m(orks.)39 b(The)150 1544 y(bulk)29
+b(of)h(the)h(man)m(ual)e(can)i(b)s(e)f(used)f(as)i(a)g(reference)g
+(once)g(one)f(understands)f(the)h(basics.)275 1679 y(The)e(man)m(ual)g
+(is)f(split)g(in)m(to)i(sev)m(eral)g(parts)f(for)g(the)h(programmer.)40
+b(It)28 b(starts)h(with)f(a)h(simple)d(usage)150 1788
+y(example)e(of)g(ho)m(w)g(to)h(link)d(a)i(program)g(with)f(libgimpprin)
+m(t,)e(then)j(ho)m(w)g(to)h(in)m(tegrate)g(this)e(in)m(to)h(pac)m(k)-5
+b(age)150 1898 y(build)28 b(scripts,)i(using)g Fr(make)p
+Fu(,)g Fr(autoconf)f Fu(and)i Fr(automake)p Fu(.)40 b(This)30
+b(is)g(follo)m(w)m(ed)h(b)m(y)g(a)g(detailed)f(function)150
+2007 y(reference,)h(including)c(descriptions)h(of)j(all)e(the)i(data)g
+(t)m(yp)s(es)f(used.)275 2142 y(F)-8 b(or)31 b(the)g(end-user,)e(there)
+i(is)f(a)h(section)g(on)f(all)f(of)i(the)g(programs)f(that)h(come)h
+(with)d(GIMP-Prin)m(t,)150 2252 y(including)e(the)k(GIMP)f
+Fr(print)f Fu(plugin,)f(and)i(the)g(CUPS)g(and)g(Ghostscript)g(driv)m
+(ers.)275 2386 y(The)c(app)s(endices)g(at)i(the)g(end)f(of)g(the)h(man)
+m(ual)f(detail)f(the)i(dither)e(and)h(w)m(ea)m(v)m(e)i(algorithms)e
+(used)f(in)150 2496 y(libgimpprin)m(t,)g(the)31 b(ESC/P2)f(prin)m(ter)f
+(con)m(trol)i(language)f(used)g(in)f(Epson)g(prin)m(ters)g(and)h(ho)m
+(w)g(to)i(add)150 2605 y(supp)s(ort)d(for)h(a)h(new)e(prin)m(ter)g(to)j
+(libgimpprin)m(t.)1182 2934 y(W)-8 b(e)31 b(hop)s(e)f(y)m(ou)h(enjo)m
+(y)g(using)d(GIMP-Prin)m(t!)1413 3044 y(|The)i(GIMP-Prin)m(t)g(pro)5
+b(ject)p eop
+%%Page: 2 7
+2 6 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(2)150 299 y Fp(GNU)54 b(GENERAL)g(PUBLIC)f(LICENSE)1537
+564 y Fu(V)-8 b(ersion)30 b(2,)h(June)f(1991)390 720
+y(Cop)m(yrigh)m(t)842 717 y(c)817 720 y Fs(\015)g Fu(1989,)j(1991)f(F)
+-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)30 b(Inc.)390
+824 y(675)i(Mass)e(Av)m(e,)i(Cam)m(bridge,)e(MA)h(02139,)h(USA)390
+1032 y(Ev)m(ery)m(one)f(is)f(p)s(ermitted)f(to)i(cop)m(y)g(and)f
+(distribute)e(v)m(erbatim)i(copies)390 1135 y(of)h(this)e(license)g(do)
+s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m(w)m(ed.)150
+1462 y Ft(Pream)l(ble)275 1683 y Fu(The)39 b(licenses)h(for)g(most)h
+(soft)m(w)m(are)g(are)g(designed)e(to)i(tak)m(e)h(a)m(w)m(a)m(y)h(y)m
+(our)d(freedom)g(to)h(share)g(and)150 1793 y(c)m(hange)g(it.)70
+b(By)40 b(con)m(trast,)k(the)c(GNU)h(General)f(Public)e(License)i(is)f
+(in)m(tended)g(to)h(guaran)m(tee)i(y)m(our)150 1902 y(freedom)24
+b(to)h(share)f(and)f(c)m(hange)i(free)f(soft)m(w)m(are|to)j(mak)m(e)e
+(sure)e(the)h(soft)m(w)m(are)i(is)d(free)h(for)g(all)f(its)h(users.)150
+2012 y(This)38 b(General)i(Public)d(License)j(applies)e(to)i(most)g(of)
+g(the)g(F)-8 b(ree)41 b(Soft)m(w)m(are)g(F)-8 b(oundation's)39
+b(soft)m(w)m(are)150 2121 y(and)c(to)h(an)m(y)g(other)g(program)f
+(whose)h(authors)f(commit)g(to)i(using)d(it.)55 b(\(Some)36
+b(other)g(F)-8 b(ree)37 b(Soft)m(w)m(are)150 2231 y(F)-8
+b(oundation)31 b(soft)m(w)m(are)i(is)d(co)m(v)m(ered)j(b)m(y)e(the)g
+(GNU)h(Library)e(General)h(Public)e(License)h(instead.\))43
+b(Y)-8 b(ou)150 2340 y(can)31 b(apply)e(it)h(to)h(y)m(our)f(programs,)g
+(to)s(o.)275 2503 y(When)37 b(w)m(e)g(sp)s(eak)g(of)g(free)h(soft)m(w)m
+(are,)i(w)m(e)e(are)g(referring)d(to)j(freedom,)h(not)f(price.)60
+b(Our)36 b(General)150 2612 y(Public)c(Licenses)h(are)i(designed)e(to)i
+(mak)m(e)g(sure)f(that)g(y)m(ou)h(ha)m(v)m(e)g(the)g(freedom)f(to)g
+(distribute)e(copies)150 2722 y(of)k(free)h(soft)m(w)m(are)g(\(and)f(c)
+m(harge)i(for)e(this)f(service)h(if)f(y)m(ou)i(wish\),)g(that)f(y)m(ou)
+h(receiv)m(e)g(source)f(co)s(de)h(or)150 2832 y(can)e(get)h(it)e(if)f
+(y)m(ou)i(w)m(an)m(t)h(it,)f(that)g(y)m(ou)g(can)g(c)m(hange)h(the)e
+(soft)m(w)m(are)i(or)f(use)f(pieces)h(of)f(it)g(in)g(new)g(free)150
+2941 y(programs;)c(and)g(that)h(y)m(ou)g(kno)m(w)f(y)m(ou)h(can)f(do)h
+(these)g(things.)275 3104 y(T)-8 b(o)40 b(protect)h(y)m(our)f(righ)m
+(ts,)i(w)m(e)e(need)g(to)h(mak)m(e)g(restrictions)d(that)j(forbid)d(an)
+m(y)m(one)j(to)g(den)m(y)f(y)m(ou)150 3213 y(these)d(righ)m(ts)f(or)g
+(to)h(ask)g(y)m(ou)f(to)h(surrender)e(the)h(righ)m(ts.)58
+b(These)36 b(restrictions)f(translate)i(to)g(certain)150
+3323 y(resp)s(onsibilities)25 b(for)31 b(y)m(ou)f(if)g(y)m(ou)g
+(distribute)e(copies)i(of)h(the)f(soft)m(w)m(are,)j(or)d(if)f(y)m(ou)i
+(mo)s(dify)e(it.)275 3485 y(F)-8 b(or)30 b(example,)f(if)g(y)m(ou)g
+(distribute)e(copies)j(of)f(suc)m(h)g(a)h(program,)g(whether)e(gratis)i
+(or)f(for)g(a)h(fee,)h(y)m(ou)150 3595 y(m)m(ust)i(giv)m(e)h(the)g
+(recipien)m(ts)e(all)h(the)g(righ)m(ts)g(that)h(y)m(ou)g(ha)m(v)m(e.)51
+b(Y)-8 b(ou)34 b(m)m(ust)g(mak)m(e)g(sure)f(that)h(they)-8
+b(,)35 b(to)s(o,)150 3704 y(receiv)m(e)j(or)g(can)g(get)g(the)g(source)
+g(co)s(de.)62 b(And)37 b(y)m(ou)h(m)m(ust)f(sho)m(w)h(them)f(these)h
+(terms)f(so)h(they)g(kno)m(w)150 3814 y(their)29 b(righ)m(ts.)275
+3976 y(W)-8 b(e)29 b(protect)g(y)m(our)f(righ)m(ts)f(with)g(t)m(w)m(o)i
+(steps:)40 b(\(1\))29 b(cop)m(yrigh)m(t)f(the)g(soft)m(w)m(are,)j(and)c
+(\(2\))i(o\013er)g(y)m(ou)f(this)150 4086 y(license)h(whic)m(h)g(giv)m
+(es)i(y)m(ou)g(legal)f(p)s(ermission)d(to)k(cop)m(y)-8
+b(,)32 b(distribute)c(and/or)i(mo)s(dify)f(the)i(soft)m(w)m(are.)275
+4248 y(Also,)45 b(for)d(eac)m(h)i(author's)f(protection)f(and)g(ours,)j
+(w)m(e)e(w)m(an)m(t)h(to)f(mak)m(e)h(certain)e(that)h(ev)m(ery)m(one)
+150 4358 y(understands)29 b(that)j(there)f(is)f(no)h(w)m(arran)m(t)m(y)
+h(for)f(this)f(free)h(soft)m(w)m(are.)44 b(If)30 b(the)i(soft)m(w)m
+(are)g(is)e(mo)s(di\014ed)f(b)m(y)150 4467 y(someone)i(else)e(and)g
+(passed)h(on,)g(w)m(e)g(w)m(an)m(t)h(its)e(recipien)m(ts)g(to)h(kno)m
+(w)g(that)g(what)g(they)g(ha)m(v)m(e)h(is)e(not)h(the)150
+4577 y(original,)e(so)h(that)g(an)m(y)h(problems)d(in)m(tro)s(duced)g
+(b)m(y)i(others)g(will)d(not)j(re\015ect)h(on)f(the)g(original)e
+(authors')150 4686 y(reputations.)275 4849 y(Finally)-8
+b(,)24 b(an)m(y)h(free)f(program)g(is)g(threatened)g(constan)m(tly)h(b)
+m(y)g(soft)m(w)m(are)h(paten)m(ts.)39 b(W)-8 b(e)26 b(wish)c(to)j(a)m
+(v)m(oid)150 4958 y(the)30 b(danger)g(that)h(redistributors)c(of)k(a)f
+(free)h(program)f(will)d(individually)e(obtain)30 b(paten)m(t)h
+(licenses,)e(in)150 5068 y(e\013ect)39 b(making)e(the)h(program)f
+(proprietary)-8 b(.)62 b(T)-8 b(o)38 b(prev)m(en)m(t)g(this,)h(w)m(e)f
+(ha)m(v)m(e)h(made)f(it)f(clear)g(that)i(an)m(y)150 5178
+y(paten)m(t)31 b(m)m(ust)g(b)s(e)e(licensed)g(for)h(ev)m(ery)m(one's)i
+(free)f(use)f(or)g(not)h(licensed)e(at)i(all.)275 5340
+y(The)e(precise)h(terms)g(and)g(conditions)f(for)h(cop)m(ying,)h
+(distribution)26 b(and)k(mo)s(di\014cation)f(follo)m(w.)p
+eop
+%%Page: 3 8
+3 7 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(3)150 166 y Ft(TERMS)44 b(AND)h(CONDITIONS)g(F)l(OR)g(COPYING,)150
+299 y(DISTRIBUTION)f(AND)h(MODIFICA)-11 b(TION)199 515
+y Fu(1.)61 b(This)41 b(License)h(applies)e(to)k(an)m(y)f(program)f(or)g
+(other)h(w)m(ork)g(whic)m(h)e(con)m(tains)i(a)g(notice)f(placed)330
+625 y(b)m(y)33 b(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying)i(it)f(ma)m
+(y)h(b)s(e)f(distributed)e(under)h(the)h(terms)h(of)g(this)e(General)
+330 735 y(Public)37 b(License.)67 b(The)39 b(\\Program",)j(b)s(elo)m
+(w,)f(refers)e(to)h(an)m(y)g(suc)m(h)f(program)g(or)g(w)m(ork,)j(and)d
+(a)330 844 y(\\w)m(ork)29 b(based)f(on)h(the)g(Program")g(means)f
+(either)h(the)f(Program)h(or)g(an)m(y)g(deriv)-5 b(ativ)m(e)28
+b(w)m(ork)g(under)330 954 y(cop)m(yrigh)m(t)k(la)m(w:)42
+b(that)32 b(is)e(to)j(sa)m(y)-8 b(,)33 b(a)e(w)m(ork)h(con)m(taining)f
+(the)g(Program)h(or)f(a)h(p)s(ortion)e(of)h(it,)g(either)330
+1063 y(v)m(erbatim)e(or)g(with)e(mo)s(di\014cations)g(and/or)i
+(translated)g(in)m(to)g(another)g(language.)40 b(\(Hereinafter,)330
+1173 y(translation)26 b(is)g(included)f(without)h(limitation)f(in)h
+(the)h(term)g(\\mo)s(di\014cation".\))40 b(Eac)m(h)27
+b(licensee)g(is)330 1282 y(addressed)i(as)i(\\y)m(ou".)330
+1429 y(Activities)38 b(other)h(than)f(cop)m(ying,)k(distribution)35
+b(and)j(mo)s(di\014cation)f(are)i(not)g(co)m(v)m(ered)h(b)m(y)f(this)
+330 1538 y(License;)33 b(they)g(are)f(outside)g(its)f(scop)s(e.)47
+b(The)32 b(act)h(of)g(running)c(the)k(Program)f(is)f(not)i(restricted,)
+330 1648 y(and)24 b(the)g(output)g(from)g(the)h(Program)f(is)g(co)m(v)m
+(ered)i(only)d(if)g(its)h(con)m(ten)m(ts)i(constitute)f(a)g(w)m(ork)f
+(based)330 1758 y(on)h(the)h(Program)f(\(indep)s(enden)m(t)f(of)i(ha)m
+(ving)f(b)s(een)f(made)i(b)m(y)f(running)e(the)i(Program\).)40
+b(Whether)330 1867 y(that)31 b(is)e(true)i(dep)s(ends)d(on)i(what)h
+(the)f(Program)h(do)s(es.)199 2014 y(2.)61 b(Y)-8 b(ou)42
+b(ma)m(y)g(cop)m(y)g(and)e(distribute)f(v)m(erbatim)i(copies)g(of)h
+(the)f(Program's)h(source)f(co)s(de)h(as)g(y)m(ou)330
+2123 y(receiv)m(e)32 b(it,)f(in)f(an)m(y)h(medium,)f(pro)m(vided)g
+(that)h(y)m(ou)h(conspicuously)d(and)h(appropriately)g(publish)330
+2233 y(on)j(eac)m(h)h(cop)m(y)g(an)f(appropriate)f(cop)m(yrigh)m(t)i
+(notice)f(and)g(disclaimer)d(of)k(w)m(arran)m(t)m(y;)h(k)m(eep)f(in)m
+(tact)330 2342 y(all)d(the)g(notices)h(that)h(refer)e(to)h(this)f
+(License)g(and)g(to)i(the)f(absence)g(of)g(an)m(y)g(w)m(arran)m(t)m(y;)
+h(and)e(giv)m(e)330 2452 y(an)m(y)g(other)f(recipien)m(ts)g(of)g(the)h
+(Program)f(a)h(cop)m(y)g(of)g(this)e(License)h(along)g(with)f(the)i
+(Program.)330 2598 y(Y)-8 b(ou)31 b(ma)m(y)g(c)m(harge)h(a)f(fee)g(for)
+f(the)h(ph)m(ysical)e(act)j(of)f(transferring)e(a)i(cop)m(y)-8
+b(,)32 b(and)e(y)m(ou)h(ma)m(y)g(at)g(y)m(our)330 2708
+y(option)f(o\013er)h(w)m(arran)m(t)m(y)g(protection)g(in)e(exc)m(hange)
+j(for)e(a)g(fee.)199 2854 y(3.)61 b(Y)-8 b(ou)24 b(ma)m(y)h(mo)s(dify)d
+(y)m(our)i(cop)m(y)g(or)g(copies)g(of)g(the)g(Program)g(or)g(an)m(y)g
+(p)s(ortion)e(of)i(it,)h(th)m(us)f(forming)f(a)330 2964
+y(w)m(ork)k(based)g(on)f(the)h(Program,)h(and)f(cop)m(y)g(and)g
+(distribute)d(suc)m(h)j(mo)s(di\014cations)e(or)h(w)m(ork)h(under)330
+3074 y(the)k(terms)f(of)g(Section)h(1)f(ab)s(o)m(v)m(e,)i(pro)m(vided)d
+(that)i(y)m(ou)g(also)f(meet)h(all)f(of)g(these)h(conditions:)379
+3220 y(a.)61 b(Y)-8 b(ou)43 b(m)m(ust)f(cause)i(the)e(mo)s(di\014ed)f
+(\014les)g(to)i(carry)g(prominen)m(t)e(notices)i(stating)f(that)i(y)m
+(ou)510 3330 y(c)m(hanged)31 b(the)g(\014les)e(and)h(the)g(date)h(of)g
+(an)m(y)g(c)m(hange.)374 3476 y(b.)60 b(Y)-8 b(ou)31
+b(m)m(ust)g(cause)g(an)m(y)h(w)m(ork)f(that)g(y)m(ou)g(distribute)d(or)
+j(publish,)d(that)j(in)f(whole)g(or)h(in)e(part)510 3586
+y(con)m(tains)35 b(or)h(is)e(deriv)m(ed)g(from)h(the)g(Program)g(or)g
+(an)m(y)h(part)f(thereof,)i(to)f(b)s(e)e(licensed)g(as)i(a)510
+3695 y(whole)30 b(at)h(no)f(c)m(harge)i(to)f(all)e(third)f(parties)i
+(under)f(the)i(terms)f(of)g(this)g(License.)384 3842
+y(c.)61 b(If)39 b(the)h(mo)s(di\014ed)e(program)h(normally)f(reads)i
+(commands)f(in)m(teractiv)m(ely)h(when)f(run,)i(y)m(ou)510
+3951 y(m)m(ust)30 b(cause)h(it,)f(when)g(started)h(running)c(for)k(suc)
+m(h)f(in)m(teractiv)m(e)h(use)f(in)f(the)i(most)g(ordinary)510
+4061 y(w)m(a)m(y)-8 b(,)25 b(to)d(prin)m(t)e(or)h(displa)m(y)f(an)h
+(announcemen)m(t)g(including)d(an)k(appropriate)e(cop)m(yrigh)m(t)i
+(notice)510 4170 y(and)i(a)g(notice)h(that)f(there)h(is)e(no)h(w)m
+(arran)m(t)m(y)h(\(or)g(else,)g(sa)m(ying)f(that)h(y)m(ou)g(pro)m(vide)
+e(a)i(w)m(arran)m(t)m(y\))510 4280 y(and)35 b(that)g(users)g(ma)m(y)g
+(redistribute)e(the)j(program)f(under)e(these)j(conditions,)f(and)g
+(telling)510 4390 y(the)f(user)f(ho)m(w)h(to)g(view)f(a)i(cop)m(y)f(of)
+g(this)f(License.)50 b(\(Exception:)e(if)32 b(the)i(Program)g(itself)f
+(is)510 4499 y(in)m(teractiv)m(e)i(but)e(do)s(es)h(not)g(normally)e
+(prin)m(t)h(suc)m(h)g(an)h(announcemen)m(t,)h(y)m(our)f(w)m(ork)g
+(based)510 4609 y(on)c(the)h(Program)f(is)g(not)g(required)f(to)i(prin)
+m(t)e(an)h(announcemen)m(t.\))330 4792 y(These)41 b(requiremen)m(ts)g
+(apply)f(to)i(the)g(mo)s(di\014ed)e(w)m(ork)h(as)h(a)g(whole.)73
+b(If)42 b(iden)m(ti\014able)d(sections)330 4902 y(of)j(that)h(w)m(ork)g
+(are)f(not)h(deriv)m(ed)e(from)h(the)h(Program,)i(and)d(can)h(b)s(e)e
+(reasonably)h(considered)330 5011 y(indep)s(enden)m(t)24
+b(and)j(separate)g(w)m(orks)g(in)e(themselv)m(es,)j(then)e(this)g
+(License,)h(and)f(its)h(terms,)g(do)g(not)330 5121 y(apply)36
+b(to)i(those)f(sections)g(when)g(y)m(ou)g(distribute)e(them)i(as)g
+(separate)h(w)m(orks.)61 b(But)37 b(when)g(y)m(ou)330
+5230 y(distribute)27 b(the)i(same)g(sections)h(as)f(part)g(of)g(a)h
+(whole)e(whic)m(h)g(is)g(a)h(w)m(ork)h(based)e(on)h(the)h(Program,)330
+5340 y(the)h(distribution)d(of)j(the)h(whole)e(m)m(ust)h(b)s(e)g(on)g
+(the)g(terms)g(of)h(this)e(License,)h(whose)g(p)s(ermissions)p
+eop
+%%Page: 4 9
+4 8 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(4)330 299 y(for)22 b(other)h(licensees)e(extend)i(to)g(the)f(en)m
+(tire)g(whole,)i(and)d(th)m(us)h(to)h(eac)m(h)h(and)d(ev)m(ery)i(part)g
+(regardless)330 408 y(of)31 b(who)e(wrote)i(it.)330 538
+y(Th)m(us,)48 b(it)d(is)f(not)i(the)f(in)m(ten)m(t)g(of)h(this)e
+(section)h(to)h(claim)f(righ)m(ts)f(or)h(con)m(test)i(y)m(our)f(righ)m
+(ts)e(to)330 648 y(w)m(ork)34 b(written)e(en)m(tirely)h(b)m(y)h(y)m
+(ou;)h(rather,)g(the)f(in)m(ten)m(t)g(is)e(to)j(exercise)e(the)h(righ)m
+(t)f(to)i(con)m(trol)f(the)330 757 y(distribution)27
+b(of)j(deriv)-5 b(ativ)m(e)30 b(or)h(collectiv)m(e)f(w)m(orks)h(based)f
+(on)g(the)h(Program.)330 887 y(In)41 b(addition,)h(mere)f(aggregation)i
+(of)f(another)f(w)m(ork)g(not)h(based)f(on)g(the)g(Program)h(with)e
+(the)330 996 y(Program)22 b(\(or)g(with)e(a)i(w)m(ork)g(based)f(on)h
+(the)g(Program\))g(on)f(a)h(v)m(olume)g(of)g(a)g(storage)h(or)f
+(distribution)330 1106 y(medium)28 b(do)s(es)j(not)f(bring)f(the)h
+(other)h(w)m(ork)f(under)f(the)i(scop)s(e)f(of)h(this)e(License.)199
+1235 y(4.)61 b(Y)-8 b(ou)38 b(ma)m(y)f(cop)m(y)h(and)f(distribute)d
+(the)k(Program)f(\(or)g(a)h(w)m(ork)f(based)g(on)g(it,)i(under)c
+(Section)i(2\))330 1345 y(in)29 b(ob)5 b(ject)31 b(co)s(de)g(or)g
+(executable)g(form)f(under)e(the)j(terms)f(of)h(Sections)f(1)h(and)f(2)
+h(ab)s(o)m(v)m(e)g(pro)m(vided)330 1455 y(that)g(y)m(ou)g(also)f(do)g
+(one)h(of)f(the)h(follo)m(wing:)379 1584 y(a.)61 b(Accompan)m(y)47
+b(it)e(with)f(the)i(complete)g(corresp)s(onding)e(mac)m(hine-readable)h
+(source)g(co)s(de,)510 1694 y(whic)m(h)25 b(m)m(ust)h(b)s(e)f
+(distributed)e(under)h(the)j(terms)e(of)i(Sections)e(1)i(and)e(2)h(ab)s
+(o)m(v)m(e)i(on)d(a)i(medium)510 1803 y(customarily)i(used)h(for)g
+(soft)m(w)m(are)i(in)m(terc)m(hange;)f(or,)374 1933 y(b.)60
+b(Accompan)m(y)30 b(it)f(with)f(a)i(written)e(o\013er,)j(v)-5
+b(alid)27 b(for)i(at)i(least)e(three)h(y)m(ears,)g(to)g(giv)m(e)g(an)m
+(y)g(third)510 2042 y(part)m(y)-8 b(,)32 b(for)f(a)h(c)m(harge)g(no)f
+(more)h(than)f(y)m(our)g(cost)h(of)f(ph)m(ysically)f(p)s(erforming)f
+(source)i(distri-)510 2152 y(bution,)c(a)h(complete)h(mac)m
+(hine-readable)e(cop)m(y)h(of)g(the)g(corresp)s(onding)e(source)i(co)s
+(de,)h(to)g(b)s(e)510 2262 y(distributed)i(under)i(the)h(terms)g(of)h
+(Sections)f(1)g(and)g(2)h(ab)s(o)m(v)m(e)g(on)f(a)h(medium)d
+(customarily)510 2371 y(used)e(for)g(soft)m(w)m(are)i(in)m(terc)m
+(hange;)f(or,)384 2501 y(c.)61 b(Accompan)m(y)33 b(it)e(with)g(the)h
+(information)e(y)m(ou)i(receiv)m(ed)g(as)g(to)g(the)g(o\013er)g(to)h
+(distribute)c(cor-)510 2610 y(resp)s(onding)i(source)i(co)s(de.)50
+b(\(This)31 b(alternativ)m(e)j(is)e(allo)m(w)m(ed)h(only)g(for)g
+(noncommercial)f(dis-)510 2720 y(tribution)e(and)h(only)g(if)g(y)m(ou)i
+(receiv)m(ed)f(the)g(program)g(in)f(ob)5 b(ject)33 b(co)s(de)f(or)g
+(executable)g(form)510 2829 y(with)d(suc)m(h)h(an)g(o\013er,)h(in)e
+(accord)j(with)d(Subsection)g(b)h(ab)s(o)m(v)m(e.\))330
+2979 y(The)j(source)h(co)s(de)g(for)f(a)h(w)m(ork)g(means)f(the)h
+(preferred)e(form)h(of)h(the)g(w)m(ork)f(for)h(making)f(mo)s(di\014-)
+330 3088 y(cations)e(to)g(it.)40 b(F)-8 b(or)31 b(an)f(executable)h(w)m
+(ork,)g(complete)f(source)h(co)s(de)f(means)h(all)e(the)h(source)h(co)s
+(de)330 3198 y(for)25 b(all)g(mo)s(dules)f(it)h(con)m(tains,)i(plus)c
+(an)m(y)j(asso)s(ciated)g(in)m(terface)h(de\014nition)c(\014les,)j
+(plus)d(the)j(scripts)330 3308 y(used)41 b(to)i(con)m(trol)g
+(compilation)d(and)i(installation)e(of)i(the)h(executable.)76
+b(Ho)m(w)m(ev)m(er,)48 b(as)42 b(a)g(sp)s(e-)330 3417
+y(cial)30 b(exception,)i(the)f(source)g(co)s(de)g(distributed)d(need)i
+(not)h(include)e(an)m(ything)h(that)i(is)e(normally)330
+3527 y(distributed)37 b(\(in)h(either)h(source)h(or)f(binary)f(form\))i
+(with)e(the)i(ma)5 b(jor)39 b(comp)s(onen)m(ts)h(\(compiler,)330
+3636 y(k)m(ernel,)35 b(and)f(so)g(on\))g(of)h(the)f(op)s(erating)g
+(system)g(on)g(whic)m(h)f(the)h(executable)h(runs,)f(unless)e(that)330
+3746 y(comp)s(onen)m(t)f(itself)e(accompanies)i(the)f(executable.)330
+3875 y(If)39 b(distribution)c(of)40 b(executable)g(or)f(ob)5
+b(ject)40 b(co)s(de)f(is)g(made)g(b)m(y)g(o\013ering)g(access)h(to)g
+(cop)m(y)g(from)330 3985 y(a)e(designated)f(place,)i(then)f(o\013ering)
+f(equiv)-5 b(alen)m(t)37 b(access)h(to)h(cop)m(y)f(the)f(source)h(co)s
+(de)g(from)f(the)330 4095 y(same)29 b(place)f(coun)m(ts)g(as)h
+(distribution)24 b(of)k(the)h(source)f(co)s(de,)h(ev)m(en)g(though)e
+(third)g(parties)g(are)i(not)330 4204 y(comp)s(elled)g(to)i(cop)m(y)g
+(the)g(source)f(along)h(with)e(the)h(ob)5 b(ject)31 b(co)s(de.)199
+4334 y(5.)61 b(Y)-8 b(ou)35 b(ma)m(y)h(not)f(cop)m(y)-8
+b(,)37 b(mo)s(dify)-8 b(,)35 b(sublicense,)f(or)g(distribute)f(the)i
+(Program)f(except)i(as)f(expressly)330 4443 y(pro)m(vided)k(under)g
+(this)h(License.)70 b(An)m(y)41 b(attempt)h(otherwise)e(to)h(cop)m(y)-8
+b(,)45 b(mo)s(dify)-8 b(,)42 b(sublicense)c(or)330 4553
+y(distribute)24 b(the)j(Program)g(is)e(v)m(oid,)i(and)f(will)e
+(automatically)j(terminate)f(y)m(our)h(righ)m(ts)f(under)f(this)330
+4663 y(License.)70 b(Ho)m(w)m(ev)m(er,)45 b(parties)40
+b(who)g(ha)m(v)m(e)h(receiv)m(ed)g(copies,)i(or)d(righ)m(ts,)j(from)d
+(y)m(ou)g(under)f(this)330 4772 y(License)d(will)e(not)j(ha)m(v)m(e)h
+(their)e(licenses)f(terminated)i(so)g(long)f(as)h(suc)m(h)f(parties)g
+(remain)g(in)f(full)330 4882 y(compliance.)199 5011 y(6.)61
+b(Y)-8 b(ou)38 b(are)g(not)g(required)d(to)j(accept)h(this)e(License,)i
+(since)e(y)m(ou)g(ha)m(v)m(e)i(not)f(signed)e(it.)62
+b(Ho)m(w)m(ev)m(er,)330 5121 y(nothing)23 b(else)g(gran)m(ts)i(y)m(ou)f
+(p)s(ermission)c(to)25 b(mo)s(dify)d(or)h(distribute)f(the)i(Program)g
+(or)f(its)g(deriv)-5 b(ativ)m(e)330 5230 y(w)m(orks.)38
+b(These)23 b(actions)g(are)h(prohibited)c(b)m(y)j(la)m(w)g(if)f(y)m(ou)
+h(do)g(not)h(accept)g(this)e(License.)38 b(Therefore,)330
+5340 y(b)m(y)e(mo)s(difying)d(or)j(distributing)c(the)k(Program)g(\(or)
+h(an)m(y)f(w)m(ork)g(based)g(on)f(the)i(Program\),)h(y)m(ou)p
+eop
+%%Page: 5 10
+5 9 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(5)330 299 y(indicate)31 b(y)m(our)i(acceptance)h(of)f(this)e(License)
+h(to)i(do)e(so,)h(and)f(all)f(its)h(terms)g(and)g(conditions)f(for)330
+408 y(cop)m(ying,)g(distributing)26 b(or)31 b(mo)s(difying)c(the)k
+(Program)f(or)h(w)m(orks)f(based)g(on)g(it.)199 545 y(7.)61
+b(Eac)m(h)43 b(time)e(y)m(ou)h(redistribute)e(the)i(Program)g(\(or)g
+(an)m(y)h(w)m(ork)f(based)f(on)h(the)g(Program\),)k(the)330
+655 y(recipien)m(t)31 b(automatically)i(receiv)m(es)g(a)g(license)e
+(from)h(the)g(original)f(licensor)g(to)i(cop)m(y)-8 b(,)34
+b(distribute)330 765 y(or)i(mo)s(dify)f(the)h(Program)h(sub)5
+b(ject)36 b(to)h(these)g(terms)f(and)g(conditions.)57
+b(Y)-8 b(ou)37 b(ma)m(y)g(not)f(imp)s(ose)330 874 y(an)m(y)27
+b(further)f(restrictions)f(on)i(the)g(recipien)m(ts')f(exercise)h(of)g
+(the)g(righ)m(ts)f(gran)m(ted)h(herein.)38 b(Y)-8 b(ou)28
+b(are)330 984 y(not)j(resp)s(onsible)c(for)j(enforcing)g(compliance)g
+(b)m(y)g(third)e(parties)i(to)h(this)e(License.)199 1121
+y(8.)61 b(If,)27 b(as)g(a)g(consequence)h(of)f(a)g(court)g(judgmen)m(t)
+f(or)h(allegation)f(of)h(paten)m(t)h(infringemen)m(t)c(or)j(for)g(an)m
+(y)330 1230 y(other)h(reason)f(\(not)h(limited)d(to)j(paten)m(t)h
+(issues\),)e(conditions)f(are)h(imp)s(osed)f(on)h(y)m(ou)h(\(whether)f
+(b)m(y)330 1340 y(court)c(order,)h(agreemen)m(t)g(or)f(otherwise\))f
+(that)h(con)m(tradict)h(the)e(conditions)f(of)i(this)f(License,)i(they)
+330 1450 y(do)34 b(not)g(excuse)h(y)m(ou)f(from)g(the)g(conditions)f
+(of)h(this)f(License.)52 b(If)33 b(y)m(ou)i(cannot)g(distribute)c(so)k
+(as)330 1559 y(to)f(satisfy)f(sim)m(ultaneously)f(y)m(our)h
+(obligations)g(under)f(this)g(License)h(and)g(an)m(y)h(other)g(p)s
+(ertinen)m(t)330 1669 y(obligations,)41 b(then)f(as)g(a)g(consequence)h
+(y)m(ou)f(ma)m(y)g(not)g(distribute)e(the)i(Program)g(at)g(all.)68
+b(F)-8 b(or)330 1778 y(example,)25 b(if)e(a)i(paten)m(t)g(license)e(w)m
+(ould)g(not)h(p)s(ermit)f(ro)m(y)m(alt)m(y-free)j(redistribution)20
+b(of)k(the)h(Program)330 1888 y(b)m(y)35 b(all)f(those)h(who)f(receiv)m
+(e)i(copies)f(directly)e(or)i(indirectly)e(through)h(y)m(ou,)i(then)f
+(the)g(only)f(w)m(a)m(y)330 1998 y(y)m(ou)27 b(could)e(satisfy)h(b)s
+(oth)f(it)h(and)g(this)f(License)h(w)m(ould)f(b)s(e)h(to)h(refrain)d
+(en)m(tirely)i(from)g(distribution)330 2107 y(of)31 b(the)f(Program.)
+330 2244 y(If)43 b(an)m(y)g(p)s(ortion)f(of)h(this)g(section)g(is)f
+(held)g(in)m(v)-5 b(alid)41 b(or)i(unenforceable)f(under)g(an)m(y)i
+(particular)330 2354 y(circumstance,)i(the)e(balance)f(of)g(the)h
+(section)f(is)f(in)m(tended)g(to)i(apply)e(and)g(the)i(section)f(as)h
+(a)330 2463 y(whole)30 b(is)f(in)m(tended)g(to)i(apply)e(in)g(other)i
+(circumstances.)330 2600 y(It)41 b(is)e(not)i(the)f(purp)s(ose)f(of)i
+(this)e(section)i(to)g(induce)e(y)m(ou)i(to)g(infringe)d(an)m(y)j
+(paten)m(ts)g(or)g(other)330 2710 y(prop)s(ert)m(y)e(righ)m(t)h(claims)
+e(or)i(to)h(con)m(test)h(v)-5 b(alidit)m(y)38 b(of)i(an)m(y)g(suc)m(h)g
+(claims;)j(this)c(section)h(has)g(the)330 2819 y(sole)30
+b(purp)s(ose)e(of)j(protecting)f(the)g(in)m(tegrit)m(y)g(of)g(the)h
+(free)f(soft)m(w)m(are)h(distribution)c(system,)j(whic)m(h)330
+2929 y(is)k(implemen)m(ted)g(b)m(y)h(public)d(license)i(practices.)55
+b(Man)m(y)36 b(p)s(eople)e(ha)m(v)m(e)i(made)f(generous)h(con)m(tri-)
+330 3039 y(butions)e(to)i(the)f(wide)g(range)g(of)h(soft)m(w)m(are)h
+(distributed)32 b(through)j(that)h(system)f(in)f(reliance)h(on)330
+3148 y(consisten)m(t)h(application)e(of)h(that)h(system;)i(it)d(is)g
+(up)f(to)i(the)g(author/donor)f(to)h(decide)f(if)g(he)g(or)330
+3258 y(she)i(is)g(willing)d(to)k(distribute)d(soft)m(w)m(are)k(through)
+e(an)m(y)g(other)h(system)g(and)f(a)g(licensee)g(cannot)330
+3367 y(imp)s(ose)29 b(that)i(c)m(hoice.)330 3504 y(This)25
+b(section)j(is)e(in)m(tended)g(to)i(mak)m(e)g(thoroughly)e(clear)h
+(what)g(is)f(b)s(eliev)m(ed)g(to)i(b)s(e)f(a)g(consequence)330
+3614 y(of)k(the)f(rest)h(of)f(this)f(License.)199 3751
+y(9.)61 b(If)35 b(the)g(distribution)c(and/or)k(use)g(of)g(the)g
+(Program)g(is)f(restricted)h(in)f(certain)h(coun)m(tries)f(either)330
+3861 y(b)m(y)h(paten)m(ts)h(or)g(b)m(y)f(cop)m(yrigh)m(ted)h(in)m
+(terfaces,)h(the)e(original)f(cop)m(yrigh)m(t)i(holder)e(who)h(places)g
+(the)330 3970 y(Program)h(under)f(this)g(License)h(ma)m(y)h(add)e(an)i
+(explicit)d(geographical)j(distribution)32 b(limitation)330
+4080 y(excluding)27 b(those)i(coun)m(tries,)g(so)g(that)g(distribution)
+c(is)i(p)s(ermitted)h(only)f(in)g(or)i(among)g(coun)m(tries)330
+4189 y(not)k(th)m(us)f(excluded.)47 b(In)32 b(suc)m(h)g(case,)j(this)c
+(License)i(incorp)s(orates)f(the)h(limitation)d(as)j(if)f(written)330
+4299 y(in)d(the)i(b)s(o)s(dy)d(of)j(this)e(License.)154
+4436 y(10.)61 b(The)26 b(F)-8 b(ree)28 b(Soft)m(w)m(are)g(F)-8
+b(oundation)26 b(ma)m(y)i(publish)23 b(revised)i(and/or)i(new)f(v)m
+(ersions)g(of)h(the)g(General)330 4545 y(Public)35 b(License)h(from)h
+(time)g(to)g(time.)61 b(Suc)m(h)36 b(new)h(v)m(ersions)f(will)f(b)s(e)h
+(similar)e(in)i(spirit)f(to)j(the)330 4655 y(presen)m(t)30
+b(v)m(ersion,)h(but)e(ma)m(y)i(di\013er)e(in)g(detail)h(to)h(address)e
+(new)h(problems)f(or)h(concerns.)330 4792 y(Eac)m(h)46
+b(v)m(ersion)e(is)g(giv)m(en)h(a)g(distinguishing)40
+b(v)m(ersion)45 b(n)m(um)m(b)s(er.)83 b(If)44 b(the)h(Program)g(sp)s
+(eci\014es)f(a)330 4902 y(v)m(ersion)35 b(n)m(um)m(b)s(er)g(of)h(this)e
+(License)i(whic)m(h)e(applies)g(to)j(it)e(and)g(\\an)m(y)i(later)e(v)m
+(ersion",)j(y)m(ou)e(ha)m(v)m(e)330 5011 y(the)d(option)f(of)h(follo)m
+(wing)e(the)i(terms)g(and)f(conditions)f(either)i(of)g(that)g(v)m
+(ersion)f(or)h(of)g(an)m(y)g(later)330 5121 y(v)m(ersion)d(published)c
+(b)m(y)k(the)g(F)-8 b(ree)31 b(Soft)m(w)m(are)g(F)-8
+b(oundation.)41 b(If)29 b(the)i(Program)f(do)s(es)g(not)g(sp)s(ecify)f
+(a)330 5230 y(v)m(ersion)e(n)m(um)m(b)s(er)g(of)h(this)e(License,)i(y)m
+(ou)g(ma)m(y)h(c)m(ho)s(ose)f(an)m(y)h(v)m(ersion)e(ev)m(er)h
+(published)c(b)m(y)k(the)g(F)-8 b(ree)330 5340 y(Soft)m(w)m(are)31
+b(F)-8 b(oundation.)p eop
+%%Page: 6 11
+6 10 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(6)154 299 y(11.)61 b(If)29 b(y)m(ou)g(wish)f(to)i(incorp)s(orate)f
+(parts)g(of)g(the)g(Program)h(in)m(to)f(other)h(free)f(programs)g
+(whose)g(distri-)330 408 y(bution)e(conditions)g(are)j(di\013eren)m(t,)
+e(write)g(to)i(the)f(author)f(to)i(ask)e(for)h(p)s(ermission.)37
+b(F)-8 b(or)29 b(soft)m(w)m(are)330 518 y(whic)m(h)23
+b(is)g(cop)m(yrigh)m(ted)h(b)m(y)g(the)g(F)-8 b(ree)25
+b(Soft)m(w)m(are)g(F)-8 b(oundation,)25 b(write)e(to)i(the)f(F)-8
+b(ree)25 b(Soft)m(w)m(are)g(F)-8 b(oun-)330 628 y(dation;)28
+b(w)m(e)g(sometimes)g(mak)m(e)g(exceptions)g(for)f(this.)39
+b(Our)26 b(decision)g(will)f(b)s(e)h(guided)h(b)m(y)g(the)h(t)m(w)m(o)
+330 737 y(goals)23 b(of)g(preserving)e(the)h(free)h(status)g(of)f(all)g
+(deriv)-5 b(ativ)m(es)22 b(of)g(our)g(free)h(soft)m(w)m(are)h(and)e(of)
+h(promoting)330 847 y(the)31 b(sharing)e(and)g(reuse)h(of)h(soft)m(w)m
+(are)h(generally)-8 b(.)330 1104 y Ft(NO)45 b(W)-15 b(ARRANTY)154
+1297 y Fu(12.)61 b(BECA)m(USE)40 b(THE)f(PR)m(OGRAM)i(IS)e(LICENSED)g
+(FREE)g(OF)h(CHAR)m(GE,)h(THERE)e(IS)g(NO)330 1406 y(W)-10
+b(ARRANTY)26 b(F)m(OR)f(THE)g(PR)m(OGRAM,)h(TO)e(THE)h(EXTENT)f
+(PERMITTED)h(BY)g(APPLI-)330 1516 y(CABLE)i(LA)-10 b(W.)27
+b(EX)m(CEPT)g(WHEN)h(OTHER)-10 b(WISE)25 b(ST)-8 b(A)g(TED)28
+b(IN)e(WRITING)i(THE)e(COPY-)330 1626 y(RIGHT)35 b(HOLDERS)g(AND/OR)h
+(OTHER)f(P)-8 b(AR)g(TIES)35 b(PR)m(O)m(VIDE)h(THE)f(PR)m(OGRAM)h(\\AS)
+330 1735 y(IS")22 b(WITHOUT)f(W)-10 b(ARRANTY)23 b(OF)f(ANY)g(KIND,)h
+(EITHER)e(EXPRESSED)g(OR)h(IMPLIED,)330 1845 y(INCLUDING,)33
+b(BUT)g(NOT)g(LIMITED)f(TO,)g(THE)h(IMPLIED)g(W)-10 b(ARRANTIES)32
+b(OF)h(MER-)330 1954 y(CHANT)-8 b(ABILITY)28 b(AND)g(FITNESS)e(F)m(OR)i
+(A)g(P)-8 b(AR)g(TICULAR)27 b(PURPOSE.)g(THE)g(ENTIRE)330
+2064 y(RISK)19 b(AS)h(TO)g(THE)g(QUALITY)g(AND)h(PERF)m(ORMANCE)g(OF)f
+(THE)g(PR)m(OGRAM)h(IS)f(WITH)330 2174 y(YOU.)h(SHOULD)g(THE)f(PR)m
+(OGRAM)i(PR)m(O)m(VE)f(DEFECTIVE,)g(YOU)g(ASSUME)f(THE)g(COST)330
+2283 y(OF)30 b(ALL)g(NECESSAR)-8 b(Y)30 b(SER)-10 b(VICING,)30
+b(REP)-8 b(AIR)30 b(OR)g(CORRECTION.)154 2418 y(13.)61
+b(IN)26 b(NO)g(EVENT)g(UNLESS)f(REQUIRED)h(BY)h(APPLICABLE)f(LA)-10
+b(W)26 b(OR)g(A)m(GREED)h(TO)f(IN)330 2527 y(WRITING)37
+b(WILL)f(ANY)i(COPYRIGHT)e(HOLDER,)h(OR)f(ANY)h(OTHER)f(P)-8
+b(AR)g(TY)38 b(WHO)330 2637 y(MA)-8 b(Y)52 b(MODIFY)g(AND/OR)g
+(REDISTRIBUTE)e(THE)h(PR)m(OGRAM)h(AS)f(PERMITTED)330
+2746 y(ABO)m(VE,)40 b(BE)f(LIABLE)f(TO)g(YOU)h(F)m(OR)g(D)m(AMA)m(GES,)
+h(INCLUDING)f(ANY)h(GENERAL,)330 2856 y(SPECIAL,)e(INCIDENT)-8
+b(AL)40 b(OR)e(CONSEQUENTIAL)g(D)m(AMA)m(GES)j(ARISING)e(OUT)g(OF)330
+2966 y(THE)44 b(USE)g(OR)g(INABILITY)h(TO)f(USE)g(THE)g(PR)m(OGRAM)h
+(\(INCLUDING)h(BUT)e(NOT)330 3075 y(LIMITED)29 b(TO)g(LOSS)f(OF)h(D)m
+(A)-8 b(T)g(A)31 b(OR)e(D)m(A)-8 b(T)g(A)31 b(BEING)f(RENDERED)g(INA)m
+(CCURA)-8 b(TE)29 b(OR)330 3185 y(LOSSES)38 b(SUST)-8
+b(AINED)40 b(BY)h(YOU)f(OR)g(THIRD)g(P)-8 b(AR)g(TIES)40
+b(OR)g(A)h(F)-10 b(AILURE)40 b(OF)g(THE)330 3294 y(PR)m(OGRAM)f(TO)f
+(OPERA)-8 b(TE)38 b(WITH)h(ANY)g(OTHER)f(PR)m(OGRAMS\),)h(EVEN)g(IF)f
+(SUCH)330 3404 y(HOLDER)33 b(OR)h(OTHER)f(P)-8 b(AR)g(TY)34
+b(HAS)f(BEEN)h(AD)m(VISED)g(OF)g(THE)f(POSSIBILITY)f(OF)330
+3513 y(SUCH)e(D)m(AMA)m(GES.)150 3771 y Ft(END)45 b(OF)g(TERMS)f(AND)h
+(CONDITIONS)p eop
+%%Page: 7 12
+7 11 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(7)150 299 y Ft(Ho)l(w)46 b(to)f(Apply)f(These)h(T)-11
+b(erms)45 b(to)g(Y)-11 b(our)44 b(New)i(Programs)275
+503 y Fu(If)38 b(y)m(ou)i(dev)m(elop)f(a)g(new)g(program,)j(and)c(y)m
+(ou)i(w)m(an)m(t)g(it)e(to)i(b)s(e)f(of)g(the)h(greatest)h(p)s(ossible)
+36 b(use)j(to)150 612 y(the)i(public,)g(the)h(b)s(est)e(w)m(a)m(y)i(to)
+g(ac)m(hiev)m(e)g(this)e(is)g(to)i(mak)m(e)g(it)f(free)g(soft)m(w)m
+(are)h(whic)m(h)e(ev)m(ery)m(one)j(can)150 722 y(redistribute)28
+b(and)i(c)m(hange)h(under)e(these)i(terms.)275 868 y(T)-8
+b(o)29 b(do)h(so,)g(attac)m(h)h(the)f(follo)m(wing)e(notices)h(to)i
+(the)e(program.)40 b(It)30 b(is)f(safest)h(to)g(attac)m(h)h(them)f(to)g
+(the)150 978 y(start)j(of)g(eac)m(h)h(source)e(\014le)g(to)h(most)g
+(e\013ectiv)m(ely)h(con)m(v)m(ey)g(the)e(exclusion)g(of)g(w)m(arran)m
+(t)m(y;)j(and)d(eac)m(h)i(\014le)150 1087 y(should)28
+b(ha)m(v)m(e)k(at)f(least)g(the)f(\\cop)m(yrigh)m(t")i(line)d(and)g(a)i
+(p)s(oin)m(ter)f(to)h(where)f(the)g(full)e(notice)j(is)e(found.)390
+1227 y Fm(one)i(line)d(to)j(giv)m(e)g(the)g(program's)f(name)h(and)e
+(an)i(idea)f(of)g(what)g(it)g(do)s(es.)390 1331 y Fr(Copyright)45
+b(\(C\))i(19)p Fm(yy)103 b(name)30 b(of)h(author)390
+1539 y Fr(This)47 b(program)e(is)j(free)e(software;)g(you)g(can)h
+(redistribute)e(it)i(and/or)390 1642 y(modify)f(it)h(under)g(the)g
+(terms)f(of)h(the)g(GNU)g(General)f(Public)g(License)390
+1746 y(as)h(published)e(by)j(the)f(Free)f(Software)g(Foundation;)e
+(either)j(version)e(2)390 1850 y(of)i(the)g(License,)f(or)h(\(at)g
+(your)f(option\))g(any)h(later)f(version.)390 2057 y(This)h(program)e
+(is)j(distributed)c(in)k(the)e(hope)h(that)g(it)g(will)g(be)g(useful,)
+390 2161 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)g(the)h
+(implied)f(warranty)g(of)390 2265 y(MERCHANTABILITY)e(or)j(FITNESS)f
+(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93 b(See)47 b(the)390
+2369 y(GNU)g(General)f(Public)g(License)g(for)h(more)f(details.)390
+2576 y(You)h(should)f(have)h(received)e(a)j(copy)e(of)h(the)g(GNU)g
+(General)f(Public)g(License)390 2680 y(along)g(with)h(this)g(program;)e
+(if)i(not,)g(write)f(to)i(the)e(Free)h(Software)390 2784
+y(Foundation,)e(Inc.,)h(675)h(Mass)g(Ave,)f(Cambridge,)f(MA)i(02139,)g
+(USA.)275 2930 y Fu(Also)30 b(add)f(information)g(on)h(ho)m(w)h(to)g
+(con)m(tact)i(y)m(ou)d(b)m(y)g(electronic)h(and)f(pap)s(er)f(mail.)275
+3076 y(If)f(the)g(program)h(is)e(in)m(teractiv)m(e,)j(mak)m(e)g(it)e
+(output)g(a)h(short)f(notice)h(lik)m(e)f(this)f(when)h(it)g(starts)h
+(in)e(an)150 3185 y(in)m(teractiv)m(e)k(mo)s(de:)390
+3325 y Fr(Gnomovision)45 b(version)h(69,)g(Copyright)g(\(C\))h(19)p
+Fm(yy)55 b(name)30 b(of)g(author)390 3429 y Fr(Gnomovision)45
+b(comes)h(with)h(ABSOLUTELY)e(NO)i(WARRANTY;)e(for)i(details)390
+3533 y(type)g(`show)f(w'.)95 b(This)46 b(is)h(free)g(software,)e(and)i
+(you)g(are)g(welcome)390 3637 y(to)g(redistribute)e(it)i(under)f
+(certain)g(conditions;)f(type)h(`show)h(c')390 3740 y(for)g(details.)
+275 3886 y Fu(The)27 b(h)m(yp)s(othetical)g(commands)h(`)p
+Fr(show)h(w)p Fu(')f(and)f(`)p Fr(show)j(c)p Fu(')d(should)f(sho)m(w)i
+(the)g(appropriate)f(parts)h(of)150 3996 y(the)38 b(General)g(Public)d
+(License.)63 b(Of)37 b(course,)j(the)f(commands)e(y)m(ou)h(use)g(ma)m
+(y)g(b)s(e)f(called)g(something)150 4106 y(other)25 b(than)f(`)p
+Fr(show)29 b(w)p Fu(')c(and)f(`)p Fr(show)29 b(c)p Fu(';)e(they)d
+(could)g(ev)m(en)h(b)s(e)f(mouse-clic)m(ks)g(or)h(men)m(u)f
+(items|whatev)m(er)150 4215 y(suits)29 b(y)m(our)h(program.)275
+4361 y(Y)-8 b(ou)28 b(should)e(also)i(get)h(y)m(our)f(emplo)m(y)m(er)g
+(\(if)f(y)m(ou)h(w)m(ork)g(as)h(a)f(programmer\))g(or)g(y)m(our)f(sc)m
+(ho)s(ol,)i(if)e(an)m(y)-8 b(,)150 4471 y(to)34 b(sign)f(a)g(\\cop)m
+(yrigh)m(t)i(disclaimer")c(for)j(the)f(program,)h(if)f(necessary)-8
+b(.)51 b(Here)34 b(is)e(a)i(sample;)g(alter)g(the)150
+4580 y(names:)390 4720 y Fr(Yoyodyne,)45 b(Inc.,)i(hereby)f(disclaims)f
+(all)i(copyright)390 4824 y(interest)f(in)h(the)g(program)e
+(`Gnomovision')390 4928 y(\(which)h(makes)g(passes)h(at)g(compilers\))e
+(written)390 5032 y(by)i(James)g(Hacker.)390 5239 y Fm(signature)30
+b(of)g(T)m(y)h(Co)s(on)p Fr(,)47 b(1)g(April)g(1989)390
+5343 y(Ty)g(Coon,)g(President)e(of)i(Vice)p eop
+%%Page: 8 13
+8 12 bop 150 -116 a Fu(GNU)31 b(GENERAL)f(PUBLIC)h(LICENSE)2052
+b(8)275 299 y(This)19 b(General)h(Public)f(License)h(do)s(es)h(not)g(p)
+s(ermit)e(incorp)s(orating)g(y)m(our)i(program)f(in)m(to)h(proprietary)
+150 408 y(programs.)38 b(If)22 b(y)m(our)h(program)f(is)g(a)h
+(subroutine)e(library)-8 b(,)23 b(y)m(ou)g(ma)m(y)g(consider)f(it)g
+(more)h(useful)e(to)j(p)s(ermit)150 518 y(linking)33
+b(proprietary)i(applications)g(with)g(the)h(library)-8
+b(.)57 b(If)35 b(this)h(is)f(what)h(y)m(ou)h(w)m(an)m(t)g(to)g(do,)h
+(use)e(the)150 628 y(GNU)31 b(Library)e(General)h(Public)e(License)i
+(instead)f(of)i(this)e(License.)p eop
+%%Page: 9 14
+9 13 bop 150 -116 a Fu(Cop)m(ying)30 b(summary)2828 b(9)150
+299 y Fp(Cop)l(ying)53 b(summary)275 533 y Fu(GIMP-Prin)m(t)35
+b(is)g Fm(free)5 b Fu(;)40 b(this)35 b(means)h(that)h(ev)m(ery)m(one)g
+(is)e(free)i(to)f(use)g(it)g(and)f(free)i(to)f(redistribute)150
+643 y(it)j(on)g(a)h(free)g(basis.)66 b(GIMP-Prin)m(t)39
+b(is)g(not)g(in)f(the)i(public)d(domain;)43 b(it)c(is)f(cop)m(yrigh)m
+(ted)i(and)f(there)150 752 y(are)30 b(restrictions)e(on)h(its)g
+(distribution,)d(but)j(these)g(restrictions)f(are)i(designed)e(to)i(p)s
+(ermit)e(ev)m(erything)150 862 y(that)h(a)g(go)s(o)s(d)g(co)s(op)s
+(erating)f(citizen)g(w)m(ould)g(w)m(an)m(t)h(to)h(do.)40
+b(What)29 b(is)f(not)h(allo)m(w)m(ed)f(is)g(to)h(try)g(to)g(prev)m(en)m
+(t)150 971 y(others)h(from)g(further)f(sharing)g(an)m(y)i(v)m(ersion)f
+(of)g(GIMP-Prin)m(t)h(that)f(they)h(migh)m(t)f(get)i(from)e(y)m(ou.)275
+1106 y(Sp)s(eci\014cally)-8 b(,)26 b(w)m(e)i(w)m(an)m(t)g(to)g(mak)m(e)
+h(sure)d(that)j(y)m(ou)e(ha)m(v)m(e)i(the)f(righ)m(t)f(to)h(giv)m(e)g
+(a)m(w)m(a)m(y)h(copies)f(of)f(GIMP-)150 1215 y(Prin)m(t,)36
+b(that)g(y)m(ou)f(receiv)m(e)i(source)e(co)s(de)h(or)f(else)g(can)h
+(get)g(it)f(if)f(y)m(ou)i(w)m(an)m(t)g(it,)h(that)f(y)m(ou)f(can)h(c)m
+(hange)150 1325 y(GIMP-Prin)m(t)31 b(or)g(use)g(pieces)g(of)h(it)e(in)g
+(new)h(free)g(programs,)h(and)e(that)i(y)m(ou)g(kno)m(w)f(y)m(ou)h(can)
+f(do)g(these)150 1435 y(things.)275 1569 y(T)-8 b(o)37
+b(mak)m(e)g(sure)f(that)i(ev)m(ery)m(one)g(has)e(suc)m(h)h(righ)m(ts,)h
+(w)m(e)f(ha)m(v)m(e)h(to)f(forbid)e(y)m(ou)i(to)g(depriv)m(e)f(an)m(y)m
+(one)150 1679 y(else)28 b(of)f(these)i(righ)m(ts.)39
+b(F)-8 b(or)28 b(example,)g(if)f(y)m(ou)h(distribute)d(copies)j(of)g
+(GIMP-Prin)m(t,)g(y)m(ou)g(m)m(ust)g(giv)m(e)g(the)150
+1788 y(recipien)m(ts)k(all)g(the)h(righ)m(ts)f(that)i(y)m(ou)f(ha)m(v)m
+(e.)50 b(Y)-8 b(ou)34 b(m)m(ust)f(mak)m(e)h(sure)e(that)i(they)-8
+b(,)34 b(to)s(o,)h(receiv)m(e)f(or)f(can)150 1898 y(get)f(the)e(source)
+h(co)s(de.)41 b(And)29 b(y)m(ou)i(m)m(ust)f(tell)g(them)g(their)f(righ)
+m(ts.)275 2032 y(Also,)34 b(for)f(our)g(o)m(wn)h(protection,)g(w)m(e)g
+(m)m(ust)g(mak)m(e)g(certain)g(that)g(ev)m(ery)m(one)h(\014nds)d(out)i
+(that)g(there)150 2142 y(is)29 b(no)g(w)m(arran)m(t)m(y)h(for)g
+(GIMP-Prin)m(t.)40 b(If)29 b(GIMP-Prin)m(t)g(is)g(mo)s(di\014ed)e(b)m
+(y)i(someone)i(else)e(and)g(passed)g(on,)150 2252 y(w)m(e)34
+b(w)m(an)m(t)g(their)f(recipien)m(ts)f(to)i(kno)m(w)f(that)h(what)g
+(they)f(ha)m(v)m(e)i(is)d(not)i(what)f(w)m(e)h(distributed,)e(so)h
+(that)150 2361 y(an)m(y)e(problems)d(in)m(tro)s(duced)h(b)m(y)h(others)
+h(will)d(no)i(re\015ect)h(on)f(our)g(reputation.)p eop
+%%Page: 10 15
+10 14 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(Ov)m(erview)2672
+b(10)150 299 y Fp(1)80 b(Ov)l(erview)275 533 y Fu(The)44
+b(GIMP-Prin)m(t)h(pac)m(k)-5 b(age)48 b(is)c(a)i(collection)f(of)g
+(programs)g(and)g(a)h(library)d(for)i(high)f(qualit)m(y)150
+643 y(prin)m(ting)31 b(on)j(mo)s(dern)e(inkjets,)h(including)d
+(`photographic)j(qualit)m(y')g(mo)s(dels)f(whic)m(h)h(o\013er)g(v)m
+(ery)h(high)150 752 y(resolutions)29 b(and)h(sev)m(eral)g(inks.)275
+887 y(MET)-8 b(A:)31 b(Short)e(history)h(of)g(the)h(pro)5
+b(ject)275 1021 y(GIMP-Prin)m(t)25 b(is)g(the)i(prin)m(t)d(facilit)m(y)
+h(of)i(the)f Fm(GNU)h(Image)f(Manipulation)e(Program)i
+Fu(\(GIMP\).)i(It)e(is)150 1131 y(in)h(addition)g(a)i(suite)f(of)g
+(driv)m(ers)f(that)i(ma)m(y)g(b)s(e)f(used)g(with)f(common)i(UNIX)g(sp)
+s(o)s(oling)d(systems)i(using)150 1240 y(GhostScript)23
+b(or)i(CUPS.)e(These)i(driv)m(ers)e(pro)m(vide)g(prin)m(ting)f(qualit)m
+(y)i(for)g(UNIX/Lin)m(ux)f(on)i(a)f(par)g(with)150 1350
+y(proprietary)32 b(v)m(endor-supplied)f(driv)m(ers)h(in)g(man)m(y)i
+(cases,)h(and)e(can)h(b)s(e)f(used)f(for)i(man)m(y)f(of)h(the)g(most)
+150 1460 y(demanding)24 b(prin)m(ting)g(tasks.)40 b(The)25
+b(core)i(of)f(GIMP-Prin)m(t)f(is)g(a)h(shared)g(library)d
+(\(libgimpprin)m(t\))f(whic)m(h)150 1569 y(ma)m(y)31
+b(b)s(e)f(used)f(b)m(y)i(an)m(y)f(program)g(that)h(wishes)e(to)i(pro)s
+(duce)f(high-qulait)m(y)e(prin)m(ted)h(output.)p eop
+%%Page: 11 16
+11 15 bop 150 -116 a Fu(Chapter)30 b(2:)41 b(Using)29
+b(libgimpprin)m(t)2292 b(11)150 299 y Fp(2)80 b(Using)54
+b(libgimpprin)l(t)275 533 y Fu(This)28 b(c)m(hapter)j(describ)s(es)e
+(ho)m(w)h(to)h(write)f(programs)g(that)h(use)f(libgimpprin)m(t.)150
+790 y Ft(2.1)68 b(Co)t(de)45 b(prerequisites)275 983
+y Fu(T)-8 b(o)30 b(use)g(libgimpprin)m(t)c(with)j(a)i(program,)g(sev)m
+(eral)f(steps)h(m)m(ust)f(b)s(e)g(tak)m(en:)199 1117
+y(1.)61 b(Include)29 b(the)h(master)h(libgimpprin)m(t)26
+b(header)k Fr(<gimp-print/gimp-print.h>)o(.)199 1252
+y Fu(2.)61 b(Call)29 b Fr(stp_init\(\))p Fu(.)199 1386
+y(3.)61 b(Link)29 b(with)g(libgimpprin)m(t.)275 1546
+y(The)k(follo)m(wing)f(is)h(a)h(short)g(example)g(program.)51
+b(It)34 b(do)s(es)f(not)h(do)g(an)m(ything)f(useful,)h(but)f(it)g(do)s
+(es)150 1655 y(ev)m(erything)d(required)f(to)i(link)d(with)h
+(libgimpprin)m(t)d(and)k(call)g(other)g(functions)f(from)h(libgimpprin)
+m(t.)390 1784 y Fr(#include)46 b(<gimp-print/gimp-print.)o(h>)390
+1992 y(int)390 2095 y(main)h(\(int)f(argc,)h(char)f(*argv[]\))390
+2199 y({)485 2303 y(stp_init)g(\(\);)485 2407 y(return)h(\(0\);)390
+2511 y(})150 2768 y Ft(2.2)68 b(Linking)45 b(with)g(libgimpprin)l(t)275
+2961 y Fu(T)-8 b(o)41 b(link)f(a)h(program)g(with)f(libgimpprin)m(t,)g
+(then)h(`)p Fr(-lgimpprint)p Fu(')e(needs)i(to)h(b)s(e)f(passed)g(to)h
+(the)150 3070 y(compiler)28 b(when)g(linking.)37 b(F)-8
+b(or)30 b(example,)f(to)h(compile)e(and)h(link)e(`)p
+Fr(prog.c)p Fu(')g(the)j(follo)m(wing)d(commands)150
+3180 y(w)m(ould)i(b)s(e)h(used:)390 3308 y Fr(gcc)47
+b(-c)g(prog.c)390 3412 y(gcc)g(-o)g(prog)g(-lgimpprint)d(prog.o)275
+3547 y Fu(The)34 b(compiler)g(and)g(link)m(er)g(\015ags)h(needed)g(ma)m
+(y)g(v)-5 b(ary)35 b(dep)s(ending)e(on)i(the)g(options)f(GIMP-Prin)m(t)
+150 3656 y(w)m(as)d(con\014gured)e(with)h(when)f(it)h(w)m(as)h(built.)
+38 b(The)30 b Fr(gimpprint-config)c Fu(script)k(will)d(giv)m(e)k(the)g
+(correct)150 3766 y(parameters)g(for)f(the)g(lo)s(cal)g(installation)e
+(\(see)k(Section)e(3.1)h([gimpprin)m(t-con\014g],)f(page)h(12\).)p
+eop
+%%Page: 12 17
+12 16 bop 150 -116 a Fu(Chapter)30 b(3:)41 b(In)m(tegrating)31
+b(libgimpprin)m(t)2077 b(12)150 299 y Fp(3)80 b(In)l(tegrating)53
+b(libgimpprin)l(t)275 568 y Fu(This)38 b(c)m(hapter)i(describ)s(es)e
+(ho)m(w)i(to)g(in)m(tegrate)h(the)f(compiling)e(and)h(linking)e(of)j
+(programs)f(using)150 678 y(libgimpprin)m(t)21 b(with)i(build)f
+(scripts.)38 b(Commonly)24 b(used)g(systems)h(include)e
+Fr(make)p Fu(,)i(but)f(more)h(commonly)150 787 y(`)p
+Fr(Makefile)p Fu(')k(\014les)g(are)i(generated)g(b)m(y)f(using)f(to)s
+(ols)h(suc)m(h)h(as)f Fr(autoconf)e Fu(and)i Fr(automake)p
+Fu(.)150 1074 y Ft(3.1)68 b Fl(gimpprint-conf)o(ig)275
+1279 y Fu(Dep)s(ending)33 b(on)h(the)h(setup)f(of)h(the)g(computer)f
+(system)h(GIMP-Prin)m(t)f(w)m(as)h(installed)d(on,)k(as)f(w)m(ell)150
+1388 y(as)h(the)g(options)g(passed)f(to)i Fr(configure)c
+Fu(when)i(con\014guring)g(the)h(pac)m(k)-5 b(age)38 b(when)d(it)g(w)m
+(as)h(built,)g(the)150 1498 y Fr(CFLAGS)30 b Fu(and)h
+Fr(LIBS)f Fu(parameters)i(needed)f(to)i(compile)d(and)h(link)f
+(programs)h(with)f(libgimpprin)m(t)d(ma)m(y)150 1607
+y(v)-5 b(ary)d(.)82 b(T)-8 b(o)44 b(mak)m(e)h(it)f(simple)e(to)j
+(determine)e(what)h(these)g(are)h(on)f(an)m(y)g(giv)m(en)g(system,)k
+(the)c(script)150 1717 y Fr(gimpprint-config)28 b Fu(w)m(as)k(created.)
+47 b(It's)32 b(job)f(is)g(to)i(output)f(the)g(correct)h(parameters)f
+(for)g(the)g(setup)150 1827 y(on)e(y)m(our)h(system.)40
+b(The)30 b(follo)m(wing)f(options)h(are)h(a)m(v)-5 b(ailable:)390
+1967 y Fr(roger@whinlatter:~/gimpp)o(rint)o(/dev)o(el$)41
+b(gimpprint-config)j(--help)390 2071 y(Usage:)i(gimpprint-config)d
+([OPTIONS])j([LIBRARIES])390 2175 y(Options:)772 2278
+y([--prefix[=DIR]])772 2382 y([--exec-prefix[=DIR]])772
+2486 y([--version])772 2590 y([--libs])772 2693 y([--cflags])390
+2797 y(Libraries:)772 2901 y(gimpprint)275 3047 y Fu(The)31
+b(`)p Fr(--prefix)p Fu(')g(and)g(`)p Fr(--exec-prefix)p
+Fu(')e(options)j(are)g(only)f(needed)h(if)f(the)i(installed)c(lo)s
+(cations)150 3157 y(of)j(parts)f(of)h(GIMP-Prin)m(t)f(are)h(di\013eren)
+m(t)f(from)g(the)g(con\014gured)g(lo)s(cations.)44 b(These)31
+b(should)f(nev)m(er)i(b)s(e)150 3266 y(needed)e(if)f(GIMP-Prin)m(t)h(w)
+m(as)h(prop)s(erly)d(con\014gured)i(and)g(installed.)275
+3413 y(The)f(installed)g(v)m(ersion)g(of)i(GIMP-Prin)m(t)f(can)h(b)s(e)
+e(obtained)h(with)f(the)i(`)p Fr(--version)p Fu(')d(option:)390
+3553 y Fr(roger@whinlatter:~/gimpp)o(rint)o(/dev)o(el$)41
+b(gimpprint-config)j(--version)390 3657 y(4.2.7)275 3803
+y Fu(The)29 b(correct)j Fr(CFLAGS)d Fu(to)i(use)f(can)g(b)s(e)g
+(obtained)g(with)f(the)i(`)p Fr(--cflags)p Fu(')d(option:)390
+3944 y Fr(roger@whinlatter:~/gimpp)o(rint)o(/dev)o(el$)41
+b(gimpprint-config)j(--cflags)275 4194 y Fu(In)29 b(this)g(case,)j
+(there)f(are)f(no)h(sp)s(ecial)e Fr(CFLAGS)f Fu(required)h(to)i
+(compile)e(programs.)275 4340 y(The)g(correct)j Fr(LIBS)d
+Fu(to)i(use)f(can)h(the)g(obtained)e(with)g(the)i(`)p
+Fr(--libs)p Fu(')e(option:)390 4480 y Fr(roger@whinlatter:~/gimpp)o
+(rint)o(/dev)o(el$)41 b(gimpprint-config)j(--libs)390
+4584 y(-L/usr/lib)h(-lgimpprint)g(-lm)275 4730 y Fu(The)29
+b(command)i(can)f(b)s(e)g(used)g(from)f(the)i(shell)e(b)m(y)h
+(enclosing)f(it)h(in)f(bac)m(kquotes)j(`)p Fr(`)p Fu(':)390
+4871 y Fr(gcc)47 b(`gimpprint-config)c(--cflags`)i(-c)i(prog.c)390
+4975 y(gcc)g(`gimpprint-config)c(--libs`)j(-o)h(prog)g(prog.o)275
+5121 y Fu(Ho)m(w)m(ev)m(er,)40 b(this)35 b(is)h(not)h(the)g(w)m(a)m(y)g
+(it)f(it)g(t)m(ypically)g(used.)58 b(Normally)36 b(it)g(is)g(used)f(in)
+h(a)h(`)p Fr(Makefile)p Fu(')150 5230 y(\(see)31 b(Section)f(3.2)h
+([mak)m(e],)h(page)f(13\))h(or)e(b)m(y)g(an)g Fr(m4)g
+Fu(macro)g(in)f(a)i Fr(configure)d Fu(script)h(\(see)i(Section)f(3.3)
+150 5340 y([auto)s(conf)7 b(],)32 b(page)f(13\).)p eop
+%%Page: 13 18
+13 17 bop 150 -116 a Fu(Chapter)30 b(3:)41 b(In)m(tegrating)31
+b(libgimpprin)m(t)2077 b(13)150 299 y Ft(3.2)68 b Fl(make)275
+490 y Fu(If)28 b(y)m(ou)h(use)f Fr(make)f Fu(with)h(y)m(our)g(o)m(wn)h
+(`)p Fr(Makefile)p Fu(')e(\014les,)h(then)g(y)m(ou)h(are)g(on)g(y)m
+(our)g(o)m(wn.)40 b(This)27 b(man)m(ual)150 599 y(o\013ers)k(no)f
+(assistance)h(with)e(doing)g(this.)40 b(Only)29 b(the)h(follo)m(wing)f
+(suggestion)h(is)g(o\013ered:)390 726 y Fr(GIMPPRINT_VERSION)43
+b(=)48 b($\(shell)d(gimpprint-config)f(--version\))390
+830 y(GIMPPRINT_CFLAGS)f(=)48 b($\(shell)e(gimpprint-config)d
+(--cflags\))390 934 y(GIMPPRINT_LIBS)h(=)j($\(shell)f(gimpprint-config)
+e(--libs\))275 1067 y Fu(Ho)m(w)35 b(y)m(ou)g(c)m(ho)s(ose)h(to)f(use)g
+(these)g(v)-5 b(ariables)33 b(is)h(en)m(tirely)g(up)g(to)h(y)m(ou.)54
+b(See)35 b(Info)f(\014le)g(`)p Fr(make)p Fu(',)i(no)s(de)150
+1176 y(`)p Fr(Top)p Fu(',)30 b(for)g(more)h(information.)150
+1429 y Ft(3.3)68 b Fl(autoconf)275 1619 y Fu(The)32 b
+Fr(autoconf)g Fu(program)h(pro)s(duces)f(a)i(Bourne)f(shell)e(script)i
+(called)f(`)p Fr(configure)p Fu(')g(from)g(a)i(tem-)150
+1729 y(plate)28 b(\014le)g(called)f(`)p Fr(configure.in)p
+Fu('.)37 b(`)p Fr(configure.in)p Fu(')26 b(con)m(tains)j(b)s(oth)e
+(Bourne)h(shell)f(script,)h(and)g Fr(m4)150 1839 y Fu(macros.)40
+b Fr(autoconf)23 b Fu(expands)i(the)h Fr(m4)f Fu(macros)i(in)m(to)f
+(`real')g(shell)e(script.)38 b(The)25 b(resulting)f(`)p
+Fr(configure)p Fu(')150 1948 y(script)39 b(p)s(erforms)f(v)-5
+b(arious)39 b(c)m(hec)m(ks)j(for)d(installed)f(programs,)k(compiler)d
+(c)m(haracteristics)h(and)g(other)150 2058 y(system)34
+b(information)f(suc)m(h)g(as)i(a)m(v)-5 b(ailable)33
+b(headers)h(and)f(libraries.)49 b(See)34 b(Info)g(\014le)f(`)p
+Fr(autoconf)p Fu(',)h(no)s(de)150 2167 y(`)p Fr(Top)p
+Fu(',)c(for)g(more)h(information.)275 2300 y(GIMP-Prin)m(t)67
+b(pro)m(vides)g(an)h Fr(m4)g Fu(macro,)78 b Fr(AM_PATH_GIMPPRINT)p
+Fu(,)73 b(suitable)67 b(for)h(use)g(in)f(a)150 2410 y(`)p
+Fr(configure.in)p Fu('.)36 b(It)26 b(de\014nes)f(the)g(en)m(vironmen)m
+(t)g(v)-5 b(ariables)25 b Fr(GIMPPRINT_CFLAGS)p Fu(,)d
+Fr(GIMPPRINT_LIBS)150 2519 y Fu(and)36 b Fr(GIMPPRINT_CONFIG)p
+Fu(.)54 b(Y)-8 b(ou)37 b(can)g(optionally)e(sp)s(ecify)g(a)i(minim)m
+(um)c(v)m(ersion)j(of)h(the)f(library)e(to)150 2629 y(use,)c(and)g
+(shell)f(script)g(to)i(run)e(if)g(the)i(test)g(suceeds)f(or)h(fails.)
+3624 2855 y(Macro)-3723 b Fk(AM)p 353 2855 35 5 v 41
+w(P)-10 b(A)g(TH)p 709 2855 V 41 w(GIMPPRINT)46 b Fj(\()p
+Fi([)p Fm(minim)m(um-v)m(ersion)28 b Fi([)p Fm(,)j(action-if-found)i
+Fi([)p Fm(,)565 2964 y(action-if-not-found)t Fi(]]])p
+Fj(\))390 3074 y Fu(Chec)m(k)42 b(for)g(an)g(installed)e(v)m(ersion)h
+(of)h(GIMP-Prin)m(t)g(greater)h(than)f(or)g(equal)g(to)g
+Fm(minim)m(um-)390 3183 y(v)m(ersion)p Fu(.)390 3316
+y Fm(action-if-found)29 b Fu(is)e(a)g(list)f(of)h(shell)e(commands)i
+(to)h(run)e(if)g(the)h(c)m(hec)m(k)i(for)d(the)i(library)c(succeeds;)
+390 3426 y Fm(action-if-not-found)33 b Fu(is)d(a)g(list)f(of)i(shell)e
+(commands)h(to)h(run)e(if)g(the)i(c)m(hec)m(k)g(fails.)390
+3559 y(The)23 b(macro)h(sets)g(the)g(follo)m(wing)e(en)m(vironmen)m(t)h
+(v)-5 b(ariables:)36 b Fr(GIMPPRINT_CFLAGS)p Fu(,)21
+b Fr(GIMPPRINT_)390 3668 y(LIBS)37 b Fu(and)g Fr(GIMPPRINT_CONFIG)p
+Fu(.)59 b(It)38 b(also)g(will)e(substitute)g(them)i(in)m(to)g(an)m(y)h
+(`)p Fr(Makefile.in)p Fu(')390 3778 y(y)m(ou)33 b(sp)s(ecify)e(in)g
+Fr(AC_OUTPUT)f Fu(b)s(ecause)i(it)g(calls)g Fr(AC_SUBST)e
+Fu(for)i(eac)m(h)i(of)e(them.)47 b(Ho)m(w)m(ev)m(er,)36
+b(y)m(ou)390 3887 y(will)23 b(probably)h(b)s(e)h(using)g
+Fr(automake)e Fu(to)k(generate)g(y)m(our)f(`)p Fr(Makefile.in)p
+Fu(')e(\014les)g(\(see)j(Section)f(3.4)390 3997 y([automak)m(e],)33
+b(page)e(13\).)150 4249 y Ft(3.4)68 b Fl(automake)275
+4440 y Fu(The)25 b Fr(automake)e Fu(program)j(can)g(b)s(e)f(used)g(to)h
+(generate)h(`)p Fr(Makefile.in)p Fu(')c(\014les)i(suitable)f(for)i(use)
+f(with)150 4550 y(a)31 b(`)p Fr(configure)p Fu(')d(script)h(generated)i
+(b)m(y)f Fr(autoconf)p Fu(.)39 b(As)30 b Fr(automake)e
+Fn(r)-5 b(e)g(quir)g(es)38 b Fr(autoconf)p Fu(,)29 b(this)g(section)150
+4659 y(will)20 b(assume)i(the)g(use)g(of)h(a)g(`)p Fr(configure)p
+Fu(')d(script)h(whic)m(h)g(uses)h(the)h Fr(AM_PATH_GIMPPRINT)17
+b Fu(macro)23 b(\(there)150 4769 y(is)29 b(little)h(p)s(oin)m(t)f(in)g
+Fn(not)40 b Fu(using)29 b(it!\).)275 4902 y(It)35 b(is)f(highly)f
+(recommeded)j(that)g(y)m(ou)f(use)g(GNU)h Fr(autoconf)d
+Fu(and)i Fr(automake)p Fu(.)53 b(They)35 b(will)d(allo)m(w)150
+5011 y(y)m(ou)f(to)g(mak)m(e)h(y)m(our)e(soft)m(w)m(are)i(build)27
+b(on)k(most)g(platforms)e(with)g(most)i(compilers.)40
+b Fr(automake)28 b Fu(mak)m(es)150 5121 y(writing)37
+b(complex)i(`)p Fr(Makefile)p Fu(')e(\014les)h(v)m(ery)h(easy)-8
+b(,)42 b(b)m(y)d(expressing)f(ho)m(w)h(to)h(build)c(y)m(our)i(pac)m(k)
+-5 b(ages)41 b(in)150 5230 y(terms)h(of)g(what)g(\014les)f(are)i
+(required)d(to)j(build)c(a)j(pro)5 b(ject)42 b(and)g(the)g
+(installation)e(lo)s(cations)i(of)g(the)150 5340 y(\014les.)57
+b(It)37 b(imp)s(oses)d(a)j(few)f(limitations)e(o)m(v)m(er)k(using)c
+(plain)h(`)p Fr(Makefile)p Fu(')f(\014les,)j(suc)m(h)f(as)g(in)f(the)i
+(use)f(of)p eop
+%%Page: 14 19
+14 18 bop 150 -116 a Fu(Chapter)30 b(3:)41 b(In)m(tegrating)31
+b(libgimpprin)m(t)2077 b(14)150 299 y(conditionals,)39
+b(but)e(these)i(problems)e(are)h(v)-5 b(astly)38 b(out)m(w)m(eighed)h
+(b)m(y)f(the)h(b)s(ene\014ts)e(it)h(brings.)63 b(It)38
+b(also)150 408 y(creates)c(man)m(y)f(extra)g(targets)h(in)d(the)i
+(generated)g(`)p Fr(Makefile.in)p Fu(')d(\014les)i(suc)m(h)g(as)h
+Fr(dist)p Fu(,)f Fr(distcheck)p Fu(,)150 518 y Fr(clean)p
+Fu(,)27 b Fr(distclean)p Fu(,)f Fr(maintainer-clean)d
+Fu(and)k Fr(tags)p Fu(,)g(and)g(there)h(are)g(man)m(y)g(more)g(more)f
+(a)m(v)-5 b(ailable.)150 628 y(See)31 b(Info)e(\014le)h(`)p
+Fr(automake)p Fu(',)f(no)s(de)h(`)p Fr(Top)p Fu(',)g(for)g(more)g
+(information.)275 762 y(Because)89 b Fr(AM_PATH_GIMPPRINT)83
+b Fu(calls)88 b Fr(AC_SUBST)d Fu(to)k(substitute)e Fr(GIMPPRINT_CFLAGS)
+p Fu(,)150 872 y Fr(GIMPPRINT_LIBS)30 b Fu(and)j Fr(GIMPPRINT_CONFIG)p
+Fu(,)d Fr(automake)h Fu(will)g(automatically)j(set)g(these)g(v)-5
+b(ariables)150 981 y(in)29 b(the)i(`)p Fr(Makefile.in)p
+Fu(')c(\014les)j(it)g(generates,)i(requiring)c(no)i(additional)e
+(e\013ort)j(on)g(y)m(our)f(part!)275 1116 y(As)d(in)f(previous)g
+(examples,)h(w)m(e)h(will)d(mak)m(e)j(a)g(program)f Fr(prog)f
+Fu(from)h(a)h(\014le)e(`)p Fr(prog.c)p Fu('.)39 b(This)26
+b(is)g(ho)m(w)150 1225 y(one)31 b(migh)m(t)f(build)d(write)j(a)g(`)p
+Fr(Makefile.am)p Fu(')e(to)j(do)g(this:)390 1354 y Fr(AUTOMAKE_OPTIONS)
+43 b(=)48 b(1.4)f(gnu)390 1458 y(MAINT_CHARSET)d(=)k(latin1)390
+1665 y(@SET_MAKE@)390 1873 y(CFLAGS)e(=)i(@CFLAGS@)390
+2081 y(INCLUDES)e(=)h(@INCLUDES@)e($\(GIMPPRINT_CFLAGS\))390
+2288 y(bin_PROGRAMS)f(=)k(prog)390 2392 y(prog_SOURCES)c(=)k(prog.c)390
+2496 y(prog_LDADD)d(=)i($\(GIMPPRINT_LIBS\))390 2703
+y(MAINTAINERCLEANFILES)42 b(=)48 b(Makefile.in)275 2838
+y Fu(That's)27 b(all)e(there)j(is)e(to)i(it!)39 b(Please)27
+b(note)h(that)f(this)f(example)h(also)g(requires)e(the)j(macro)f
+Fr(AC_PROG_)150 2947 y(MAKE_SET)g Fu(to)i(b)s(e)g(used)f(in)g(`)p
+Fr(configure.in)p Fu(')e(and)i(the)h(use)g(of)g Fr(AC_SUBST)e
+Fu(to)i(substitute)f Fr(CFLAGS)g Fu(and)150 3057 y Fr(INCLUDES)g
+Fu(where)i Fr(@CFLAGS@)e Fu(and)i Fr(@INCLUDES@)d Fu(are)k(found)e(in)g
+(the)i(\014le,)f(resp)s(ectiv)m(ely)-8 b(.)p eop
+%%Page: 15 20
+15 19 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(15)150 299 y Fp(4)80 b(F)-13 b(unctions)275 499 y Fu(This)37
+b(section)j(of)g(the)g(man)m(ual)f(is)g(a)h(complete)g(reference)h(to)f
+(all)f(of)h(the)g(functions)e(comprising)150 608 y(libgimpprin)m(t,)26
+b(with)j(examples.)275 736 y(All)i(of)j(the)f(libgimpprin)m(t)c
+(functions)j(can)h(b)s(e)g(declared)f(b)m(y)i(including)29
+b(the)34 b(master)f(libgimpprin)m(t)150 845 y(header,)e(`)p
+Fr(<gimp-print/gimp-print.h>)o Fu('.)36 b(This)29 b(should)g(b)s(e)h
+(done)g(in)g(ev)m(ery)h(source)g(\014le)f(that)h(uses)150
+955 y(gimpprin)m(t)d(functions)h(b)m(y)h(putting)390
+1077 y Fr(#include)46 b(<gimp-print/gimp-print.)o(h>)150
+1204 y Fu(at)31 b(the)g(top)f(of)h(eac)m(h)g(\014le.)150
+1441 y Ft(4.1)68 b(Main)45 b(functions)275 1627 y Fu(These)40
+b(functions)f(are)i(essen)m(tial)f(to)i(the)f(correct)g(functioning)e
+(of)i(libgimpprin)m(t.)67 b(All)39 b(or)i(most)150 1736
+y(other)32 b(functions)e(in)g(the)h(library)e(dep)s(end)h(absolutely)g
+(up)s(on)g(them.)43 b(In)31 b(the)h(case)g(of)f Fr(stp_init)p
+Fu(,)f(this)150 1846 y(function)f Fn(must)39 b Fu(b)s(e)30
+b(called)g(b)s(efore)g(an)m(y)h(of)f(the)h(other)f(functions)f(in)g
+(the)i(library)-8 b(.)3525 2046 y(F)g(unction)-3725 b
+Fh(int)39 b Fk(stp)p 506 2046 35 5 v 41 w(init)44 b Fj(\()p
+Fr(void)p Fj(\))390 2155 y Fu(This)d(function)g(initialises)e(the)k
+(libgimpprin)m(t)38 b(library)-8 b(.)75 b(It)43 b(m)m(ust)f(b)s(e)g
+(called)g(b)s(efore)g(an)m(y)h(of)390 2265 y(the)35 b(other)g
+(libgimpprin)m(t)30 b(functions)j(are)i(called.)53 b(It)35
+b(is)e(resp)s(onsible)f(for)i(setting)h(up)f(message)390
+2374 y(catalogues)c(\(for)e(in)m(ternationalisation\).)39
+b(This)26 b(function)h(ma)m(y)i(b)s(e)f(called)f(more)h(than)h(once,)g
+(at)390 2484 y(an)m(y)i(stage)h(during)c(the)i(execution)h(of)f(a)h
+(program.)390 2612 y(It)f(returns)g(zero)h(on)f(success,)h(nonzero)g
+(on)f(failure.)275 2775 y Fr(stp_init)e Fu(migh)m(t)i(b)s(e)f(used)h
+(as)h(follo)m(ws:)390 2897 y Fr(int)390 3001 y(main)47
+b(\(int)f(argc,)h(char)f(**argv\))390 3105 y({)485 3208
+y(stp_init\(\);)485 3416 y(...)390 3623 y(})3525 3823
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b(*)g Fk(stp)p
+649 3823 V 41 w(mallo)s(c)45 b Fj(\()p Fr(size_t)29 b
+Fm(size)5 b Fj(\))390 3933 y Fu(Where)31 b Fm(size)k
+Fu(is)29 b(the)i(amoun)m(t)g(of)f(memory)h(to)g(allo)s(cate)g(\(in)e(b)
+m(ytes\).)390 4060 y(This)42 b(function)h(allo)s(cates)i(memory)-8
+b(.)82 b(It)45 b(will)c(alw)m(a)m(ys)k(return)e(a)h(p)s(oin)m(ter)g(to)
+h(the)f(allo)s(cated)390 4170 y(memory)-8 b(.)41 b(It)31
+b(will)c(not)k(return)e(on)h(failure.)390 4298 y(It)g(returns)g(a)g(p)s
+(oin)m(ter)g(to)h(the)f(allo)s(cated)h(memory)-8 b(.)150
+4534 y Ft(4.2)68 b Fl(stp_vars_t)40 b Ft(functions)3474
+4792 y Fu(Data)32 b(t)m(yp)s(e)-3724 b Fh(void)39 b(*)g
+Fk(stp)p 649 4792 V 41 w(v)-6 b(ars)p 892 4792 V 41 w(t)390
+4902 y Fu(This)38 b(is)h(an)h(opaque)g(data)h(t)m(yp)s(e,)i(whose)d
+(structure)f(is)g(not)h(visible)e(to)j(the)f(user.)69
+b(This)38 b(ob-)390 5011 y(ject)e(con)m(tains)f(all)f(of)i(the)f
+(information)f(ab)s(out)h(settings)g(for)g(a)g(giv)m(en)g(prin)m(ter,)h
+(suc)m(h)e(as)i(color)390 5121 y(\(con)m(trast,)47 b(brigh)m(tness\),)e
+(the)e(t)m(yp)s(e)f(of)h(prin)m(ter,)h(the)f(dithering)d(algorithm)h
+(in)h(use,)j(and)d(so)390 5230 y(forth.)d(Please)25 b(see)h(the)g
+Fr(stp_set_*)c Fu(and)j Fr(stp_get_*)e Fu(functions)h(b)s(elo)m(w)g
+(for)h(the)h(accessors)h(and)390 5340 y(m)m(utators)k(for)f(this)g
+(data)h(t)m(yp)s(e.)p eop
+%%Page: 16 21
+16 20 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(16)3525 299 y(F)-8 b(unction)-3725 b Fh(stp_vars_t)41
+b Fk(stp)p 872 299 35 5 v 41 w(allo)s(cate)p 1298 299
+V 40 w(v)-6 b(ars)45 b Fj(\()p Fr(void)p Fj(\))390 408
+y Fu(Allo)s(cate)31 b(a)f(new)g Fr(stp_vars_t)e Fu(with)h(default)g
+(settings)i(for)f(all)f(mem)m(b)s(ers.)3525 628 y(F)-8
+b(unction)-3725 b Fh(void)39 b Fk(stp)p 558 628 V 41
+w(cop)m(y)p 828 628 V 41 w(v)-6 b(ars)46 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vd)p Fr(,)h(const)g(stp_vars_t)f Fm(vs)t Fj(\))390
+737 y Fu(Cop)m(y)i(the)h(settings)f(from)g Fm(vs)k Fu(to)d
+Fm(vd)p Fu(.)3525 956 y(F)-8 b(unction)-3725 b Fh(stp_vars_t)41
+b Fk(stp)p 872 956 V 41 w(allo)s(cate)p 1298 956 V 40
+w(cop)m(y)k Fj(\()p Fr(const)29 b(stp_vars_t)f Fm(vs)t
+Fj(\))390 1066 y Fu(Allo)s(cate)j(a)f(new)g Fr(stp_vars_t)p
+Fu(,)e(cop)m(ying)i(settings)h(from)f Fm(vs)p Fu(.)3525
+1285 y(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1285 V 41 w(free)p 787 1285 V 41 w(v)-6 b(ars)45 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)8 b Fj(\))390 1395 y Fu(F)-8
+b(ree)31 b(all)e(resources)i(asso)s(ciated)f(with)f Fm(vv)p
+Fu(.)41 b Fm(vv)d Fu(m)m(ust)30 b(not)h(b)s(e)e(used)h(in)f(an)m(y)h(w)
+m(a)m(y)h(follo)m(wing)e(this)390 1504 y(call.)3525 1724
+y(F)-8 b(unction)-3725 b Fh(const)40 b(char)f(*)g Fk(stp)p
+949 1724 V 40 w(get)p 1144 1724 V 41 w(output)p 1524
+1724 V 39 w(to)46 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 1833 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 1833 V 41 w(set)p 742 1833
+V 41 w(output)p 1122 1833 V 39 w(to)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)t Fj(\))3525
+1943 y Fu(F)d(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1943 V 41 w(set)p 742 1943 V 41 w(output)p 1122 1943
+V 39 w(to)p 1263 1943 V 41 w(n)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)p Fr(,)30
+b(int)565 2052 y Fm(b)m(ytes)t Fj(\))390 2162 y Fu(Get)36
+b(or)g(set)f(the)h(name)f(of)h(the)f(command)g(that)h(this)e(job)h
+(will)e(b)s(e)i(prin)m(ted)f(to.)56 b(This)33 b(is)i(used)390
+2271 y(b)m(y)c(fron)m(t)f(ends;)h(the)f(driv)m(er)g(library)e(alw)m(a)m
+(ys)j(prin)m(ts)f(to)h(a)g(stream)g(pro)m(vided)e(b)m(y)i(the)g(fron)m
+(t)g(end)390 2381 y(and)f(nev)m(er)g(uses)g(this)g(directly)-8
+b(.)3525 2600 y(F)g(unction)-3725 b Fh(const)40 b(char)f(*)g
+Fk(stp)p 949 2600 V 40 w(get)p 1144 2600 V 41 w(driv)m(er)45
+b Fj(\()p Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525
+2710 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 2710 V 41 w(set)p 742 2710 V 41 w(driv)m(er)45 b
+Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)e(char)i(*)p
+Fm(v)-5 b(al)t Fj(\))3525 2819 y Fu(F)d(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 2819 V 41 w(set)p 742 2819
+V 41 w(driv)m(er)p 1083 2819 V 40 w(n)46 b Fj(\()p Fr(stp_vars_t)27
+b Fm(vv)p Fr(,)j(const)f(char)h(*)p Fm(v)-5 b(al)p Fr(,)29
+b(int)g Fm(b)m(ytes)t Fj(\))390 2929 y Fu(Get)i(or)g(set)g(the)f(name)h
+(of)f(the)h(driv)m(er)e(\(the)i(t)m(yp)s(e)f(of)h(prin)m(ter\).)3525
+3148 y(F)-8 b(unction)-3725 b Fh(const)40 b(char)f(*)g
+Fk(stp)p 949 3148 V 40 w(get)p 1144 3148 V 41 w(pp)s(d)p
+1380 3148 V 40 w(\014le)45 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 3258 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 3258 V 41 w(set)p 742 3258
+V 41 w(pp)s(d)p 978 3258 V 40 w(\014le)44 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)t Fj(\))3525
+3367 y Fu(F)d(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+3367 V 41 w(set)p 742 3367 V 41 w(pp)s(d)p 978 3367 V
+40 w(\014le)p 1167 3367 V 40 w(n)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)p Fr(,)30
+b(int)565 3477 y Fm(b)m(ytes)t Fj(\))390 3587 y Fu(Get)e(or)e(set)i
+(the)f(name)f(of)h(the)g(PPD)g(\014le)f(used)g(b)m(y)g(this)g(prin)m(t)
+f(job.)40 b(Normally)-8 b(,)27 b(only)e(P)m(ostScript)390
+3696 y(prin)m(ters)k(use)h(PPD)g(\014les.)3525 3915 y(F)-8
+b(unction)-3725 b Fh(const)40 b(char)f(*)g Fk(stp)p 949
+3915 V 40 w(get)p 1144 3915 V 41 w(resolution)44 b Fj(\()p
+Fr(const)30 b(stp_vars_t)d Fm(vv)8 b Fj(\))3525 4025
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+4025 V 41 w(set)p 742 4025 V 41 w(resolution)44 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)f(char)g(*)p
+Fm(v)-5 b(al)t Fj(\))3525 4134 y Fu(F)d(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 4134 V 41 w(set)p 742 4134
+V 41 w(resolution)p 1279 4134 V 40 w(n)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)p Fr(,)29
+b(int)565 4244 y Fm(b)m(ytes)t Fj(\))390 4354 y Fu(Get)46
+b(or)e(set)i(the)f(resolution)e(to)i(b)s(e)f(used)g(in)g(this)f(prin)m
+(t)h(job.)83 b(Di\013eren)m(t)45 b(driv)m(ers)f(supp)s(ort)390
+4463 y(di\013eren)m(t)34 b(resolutions,)f(and)h(man)m(y)g(driv)m(ers)f
+(supp)s(ort)f(m)m(ultiple)g(qualit)m(y)h(settings)i(for)e(a)i(giv)m(en)
+390 4573 y(DPI)30 b(resolution.)3525 4792 y(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 4792 V 40 w(get)p
+1144 4792 V 41 w(media)p 1485 4792 V 40 w(size)45 b Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 4902
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+4902 V 41 w(set)p 742 4902 V 41 w(media)p 1083 4902 V
+40 w(size)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)f(char)g
+(*)p Fm(v)-5 b(al)t Fj(\))3525 5011 y Fu(F)d(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 5011 V 41 w(set)p 742 5011
+V 41 w(media)p 1083 5011 V 40 w(size)p 1304 5011 V 41
+w(n)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)f(char)g(*)p
+Fm(v)-5 b(al)p Fr(,)29 b(int)565 5121 y Fm(b)m(ytes)t
+Fj(\))390 5230 y Fu(Get)h(or)f(set)g(the)g(name)g(of)g(the)g(media)f
+(size)g(\(e.)41 b(g.)g(A3,)30 b(letter,)g(legal\))e(to)i(b)s(e)e(used)g
+(in)g(this)f(prin)m(t)390 5340 y(job.)p eop
+%%Page: 17 22
+17 21 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(17)3525 299 y(F)-8 b(unction)-3725 b Fh(const)40 b(char)f(*)g
+Fk(stp)p 949 299 35 5 v 40 w(get)p 1144 299 V 41 w(media)p
+1485 299 V 40 w(t)m(yp)s(e)45 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 408 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 408 V 41 w(set)p 742 408 V
+41 w(media)p 1083 408 V 40 w(t)m(yp)s(e)45 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)h(const)g(char)h(*)p
+Fm(v)-5 b(al)t Fj(\))3525 518 y Fu(F)d(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 518 V 41 w(set)p 742 518
+V 41 w(media)p 1083 518 V 40 w(t)m(yp)s(e)p 1345 518
+V 40 w(n)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)f(char)h
+(*)p Fm(v)-5 b(al)p Fr(,)29 b(int)565 628 y Fm(b)m(ytes)t
+Fj(\))390 737 y Fu(Get)f(or)g(set)g(the)f(name)h(of)f(the)h(media)e(t)m
+(yp)s(e)i(\(e.)40 b(g.)h(plain)25 b(pap)s(er,)i(photo)h(qualit)m(y)e
+(inkjet)h(pap)s(er\))390 847 y(to)k(b)s(e)f(used)f(in)g(this)h(prin)m
+(t)f(job.)3525 1080 y(F)-8 b(unction)-3725 b Fh(const)40
+b(char)f(*)g Fk(stp)p 949 1080 V 40 w(get)p 1144 1080
+V 41 w(media)p 1485 1080 V 40 w(source)45 b Fj(\()p Fr(const)30
+b(stp_vars_t)d Fm(vv)8 b Fj(\))3525 1189 y Fu(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 1189 V 41 w(set)p 742 1189
+V 41 w(media)p 1083 1189 V 40 w(source)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)t Fj(\))3525
+1299 y Fu(F)d(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1299 V 41 w(set)p 742 1299 V 41 w(media)p 1083 1299 V
+40 w(source)p 1440 1299 V 41 w(n)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)p Fr(,)565
+1408 y(int)30 b Fm(b)m(ytes)t Fj(\))390 1518 y Fu(Get)36
+b(or)e(set)h(the)g(name)f(of)h(the)g(media)f(source)g(\(e.)54
+b(g.)f(man)m(ual)34 b(feed,)i(tra)m(y)f(A\))g(to)h(b)s(e)e(used)f(in)
+390 1628 y(this)c(prin)m(t)g(job.)3525 1861 y(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 1861 V 40 w(get)p
+1144 1861 V 41 w(ink)p 1341 1861 V 41 w(t)m(yp)s(e)45
+b Fj(\()p Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525
+1970 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 1970 V 41 w(set)p 742 1970 V 41 w(ink)p 939 1970
+V 41 w(t)m(yp)s(e)44 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p
+Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)t Fj(\))3525 2080
+y Fu(F)d(unction)-3725 b Fh(void)39 b Fk(stp)p 558 2080
+V 41 w(set)p 742 2080 V 41 w(ink)p 939 2080 V 41 w(t)m(yp)s(e)p
+1202 2080 V 40 w(n)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p
+Fr(,)i(const)f(char)g(*)p Fm(v)-5 b(al)p Fr(,)30 b(int)565
+2189 y Fm(b)m(ytes)t Fj(\))390 2299 y Fu(Get)g(or)g(set)g(the)f(name)g
+(of)h(the)f(ink)f(t)m(yp)s(e)i(\(e.)41 b(g.)g(four)28
+b(color)i(standard,)f(six)f(color)i(photo\))f(to)i(b)s(e)390
+2408 y(used)f(in)f(this)g(prin)m(t)g(job.)3525 2641 y(F)-8
+b(unction)-3725 b Fh(const)40 b(char)f(*)g Fk(stp)p 949
+2641 V 40 w(get)p 1144 2641 V 41 w(dither)p 1490 2641
+V 39 w(algorithm)46 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 2751 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 2751 V 41 w(set)p 742 2751
+V 41 w(dither)p 1088 2751 V 39 w(algorithm)45 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)f(char)g(*)p
+Fm(v)-5 b(al)t Fj(\))3525 2861 y Fu(F)d(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 2861 V 41 w(set)p 742 2861
+V 41 w(dither)p 1088 2861 V 39 w(algorithm)p 1612 2861
+V 41 w(n)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(const)f(char)
+565 2970 y(*)p Fm(v)-5 b(al)p Fr(,)30 b(int)f Fm(b)m(ytes)t
+Fj(\))390 3080 y Fu(Get)i(or)g(set)g(the)f(dither)f(algorithm)h(to)h(b)
+s(e)e(used)h(in)f(this)g(prin)m(t)g(job.)3525 3313 y(F)-8
+b(unction)-3725 b Fh(int)39 b Fk(stp)p 506 3313 V 41
+w(get)p 702 3313 V 40 w(output)p 1081 3313 V 40 w(t)m(yp)s(e)45
+b Fj(\()p Fr(const)29 b(stp_vars_t)e Fm(vv)8 b Fj(\))3525
+3422 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 3422 V 41 w(set)p 742 3422 V 41 w(output)p 1122 3422
+V 39 w(t)m(yp)s(e)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p
+Fr(,)i(int)f Fm(v)-5 b(al)t Fj(\))390 3532 y Fu(Get)31
+b(or)g(set)g(the)f(output)g(t)m(yp)s(e)h(\(color,)g(gra)m(yscale,)h
+(blac)m(k)e(and)g(white\))g(for)g(this)f(prin)m(t)g(job.)3525
+3765 y(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p 506
+3765 V 41 w(get)p 702 3765 V 40 w(orien)m(tation)44 b
+Fj(\()p Fr(const)29 b(stp_vars_t)e Fm(vv)8 b Fj(\))3525
+3874 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 3874 V 41 w(set)p 742 3874 V 41 w(orien)m(tation)k
+Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(int)f Fm(v)-5
+b(al)t Fj(\))390 3984 y Fu(Get)31 b(or)g(set)g(the)f(pap)s(er)g(orien)m
+(tation)g(for)g(this)f(prin)m(t)g(job.)3525 4217 y(F)-8
+b(unction)-3725 b Fh(int)39 b Fk(stp)p 506 4217 V 41
+w(get)p 702 4217 V 40 w(left)45 b Fj(\()p Fr(const)29
+b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 4326 y Fu(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 4326 V 41 w(set)p 742 4326
+V 41 w(left)44 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(int)f
+Fm(v)-5 b(al)t Fj(\))390 4436 y Fu(Get)31 b(or)g(set)g(the)f(left)g
+(margin)g(\(in)f(1/72)j(inc)m(h)e(units,)f(or)h Fr(")p
+Fu(p)s(oin)m(ts)p Fr(")p Fu(\))f(for)h(this)f(prin)m(t)g(job.)3525
+4669 y(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p 506
+4669 V 41 w(get)p 702 4669 V 40 w(top)45 b Fj(\()p Fr(const)30
+b(stp_vars_t)d Fm(vv)8 b Fj(\))3525 4778 y Fu(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 4778 V 41 w(set)p 742 4778
+V 41 w(top)44 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(int)g
+Fm(v)-5 b(al)t Fj(\))390 4888 y Fu(Get)31 b(or)g(set)g(the)f(top)h
+(margin)e(\(in)h(1/72)i(inc)m(h)d(units,)g(or)i Fr(")p
+Fu(p)s(oin)m(ts)p Fr(")p Fu(\))e(for)h(this)f(prin)m(t)g(job.)3525
+5121 y(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p 506
+5121 V 41 w(get)p 702 5121 V 40 w(image)p 1035 5121 V
+41 w(t)m(yp)s(e)45 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 5230 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 5230 V 41 w(set)p 742 5230
+V 41 w(image)p 1076 5230 V 41 w(t)m(yp)s(e)44 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(int)g Fm(v)-5 b(al)t
+Fj(\))390 5340 y Fu(Get)31 b(or)g(set)g(the)f(image)h(t)m(yp)s(e)f
+(\(line)f(art,)i(con)m(tin)m(uous)g(tone,)g(solid)d(colors\))j(for)f
+(this)g(prin)m(t)f(job.)p eop
+%%Page: 18 23
+18 22 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(18)3525 299 y(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p
+506 299 35 5 v 41 w(get)p 702 299 V 40 w(unit)44 b Fj(\()p
+Fr(const)30 b(stp_vars_t)d Fm(vv)8 b Fj(\))3525 408 y
+Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558 408
+V 41 w(set)p 742 408 V 41 w(unit)44 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(int)f Fm(v)-5 b(al)t Fj(\))390 518 y
+Fu(Get)35 b(or)g(set)g(the)f(base)h(unit)e(\(inc)m(hes)h(or)h(cen)m
+(timeters\))g(for)f(this)g(prin)m(t)f(job.)52 b(This)33
+b(is)g(pro)m(vided)390 628 y(for)d(fron)m(t)h(ends;)e(the)i(pac)m(k)-5
+b(age)32 b(itself)e(uses)g(p)s(oin)m(ts)f(as)h(its)g(unit)f(of)i
+(measuremen)m(t.)3525 856 y(F)-8 b(unction)-3725 b Fh(int)39
+b Fk(stp)p 506 856 V 41 w(get)p 702 856 V 40 w(page)p
+972 856 V 41 w(width)44 b Fj(\()p Fr(const)29 b(stp_vars_t)e
+Fm(vv)8 b Fj(\))3525 965 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 965 V 41 w(set)p 742 965 V
+41 w(page)p 1013 965 V 40 w(width)44 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(int)f Fm(v)-5 b(al)t Fj(\))390 1075
+y Fu(Get)31 b(or)g(set)g(the)f(width)f(of)h(the)h(prin)m(ted)e(region)h
+(of)g(the)h(page.)3525 1303 y(F)-8 b(unction)-3725 b
+Fh(int)39 b Fk(stp)p 506 1303 V 41 w(get)p 702 1303 V
+40 w(page)p 972 1303 V 41 w(heigh)m(t)k Fj(\()p Fr(const)30
+b(stp_vars_t)d Fm(vv)8 b Fj(\))3525 1413 y Fu(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 1413 V 41 w(set)p 742 1413
+V 41 w(page)p 1013 1413 V 40 w(heigh)m(t)44 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(int)f Fm(v)-5 b(al)t
+Fj(\))390 1522 y Fu(Get)31 b(or)g(set)g(the)f(heigh)m(t)g(of)h(the)g
+(prin)m(ted)e(region)g(of)i(the)g(page.)3525 1750 y(F)-8
+b(unction)-3725 b Fh(int)39 b Fk(stp)p 506 1750 V 41
+w(get)p 702 1750 V 40 w(input)p 1011 1750 V 40 w(color)p
+1295 1750 V 42 w(mo)s(del)45 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 1860 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 1860 V 41 w(set)p 742 1860
+V 41 w(input)p 1052 1860 V 39 w(color)p 1335 1860 V 42
+w(mo)s(del)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(int)g
+Fm(v)-5 b(al)t Fj(\))390 1969 y Fu(Get)29 b(or)f(set)g(the)g(color)g
+(mo)s(del)f(\(curren)m(tly)g(R)m(GB)i(or)f(CMY\))h(of)f(the)g(input)e
+(to)i(the)g(driv)m(er.)39 b(Most)390 2079 y(fron)m(t)30
+b(ends)g(will)e(use)i(R)m(GB)h(input.)3525 2307 y(F)-8
+b(unction)-3725 b Fh(int)39 b Fk(stp)p 506 2307 V 41
+w(get)p 702 2307 V 40 w(output)p 1081 2307 V 40 w(color)p
+1365 2307 V 42 w(mo)s(del)45 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 2417 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 2417 V 41 w(set)p 742 2417
+V 41 w(output)p 1122 2417 V 39 w(color)p 1405 2417 V
+42 w(mo)s(del)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p
+Fr(,)i(int)g Fm(v)-5 b(al)t Fj(\))390 2526 y Fu(Get)26
+b(or)f(set)g(the)g(color)g(mo)s(del)e(\(curren)m(tly)h(R)m(GB)i(or)f
+(CMY\))g(of)g(the)g(output)f(of)h(the)g(driv)m(er.)38
+b(Most)390 2636 y(prin)m(ters)29 b(will)f(use)i(CMY.)3525
+2864 y(F)-8 b(unction)-3725 b Fh(float)40 b Fk(stp)p
+611 2864 V 40 w(get)p 806 2864 V 41 w(scaling)45 b Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 2973
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+2973 V 41 w(set)p 742 2973 V 41 w(scaling)44 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(float)f Fm(v)-5 b(al)t
+Fj(\))390 3083 y Fu(Get)35 b(or)g(set)f(the)h(scaling)e(factor)j(of)e
+(the)h(image.)52 b(If)34 b(the)h(scaling)e(factor)j(is)d(greater)i
+(than)f(0,)i(it)390 3193 y(is)29 b(in)m(terpreted)g(as)h(a)h(p)s(ercen)
+m(t)f(\(5.0-100.0)j(is)c(the)h(v)-5 b(alid)29 b(range\))h(of)g(the)g
+(prin)m(table)e(page)j(region,)390 3302 y(using)d(the)i(more)g
+(restrictiv)m(e)f(axis.)40 b(F)-8 b(or)31 b(example,)e(if)g(the)h
+(image)g(to)g(b)s(e)f(prin)m(ted)f(should)g(b)s(e)h(3)p
+Fr(")390 3412 y Fu(\(wide\))g(x)f(2)p Fr(")i Fu(\(high\),)f(and)f(the)h
+(prin)m(table)f(page)h(region)g(is)f(8)p Fr(")p Fu(x10.5)p
+Fr(")p Fu(,)j(the)f(scale)f(factor)h(should)390 3521
+y(b)s(e)g(37.5)i(\(3)p Fr(")p Fu(/8)p Fr(")p Fu(\).)390
+3655 y(If)e(the)g(scaling)g(is)f(less)h(than)g(zero,)i(it)e(is)f(in)m
+(terpreted)h(as)g(pixels)f(p)s(er)g(inc)m(h.)390 3788
+y(It)37 b(is)f(lik)m(ely)f(that)j(in)d(the)i(future)f(this)g(will)e(b)s
+(e)i(migrated)h(in)m(to)f(the)h(fron)m(t)g(end.)60 b(There)36
+b(is)g(no)390 3898 y(particular)29 b(reason)h(wh)m(y)g(the)h(driv)m(er)
+e(needs)h(to)h(kno)m(w)f(ab)s(out)g(this.)3525 4126 y(F)-8
+b(unction)-3725 b Fh(float)40 b Fk(stp)p 611 4126 V 40
+w(get)p 806 4126 V 41 w(gamma)46 b Fj(\()p Fr(const)29
+b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 4235 y Fu(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 4235 V 41 w(set)p 742 4235
+V 41 w(gamma)46 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p
+Fr(,)i(float)e Fm(v)-5 b(al)t Fj(\))390 4345 y Fu(Get)34
+b(or)f(set)h(the)f(gamma)h(of)f(the)g(prin)m(t)f(job)h(\(v)-5
+b(alid)32 b(range:)46 b(0.1-4.0;)37 b(default)c(1.0\).)50
+b(Note)34 b(that)390 4454 y(this)40 b(is)g(not)i(the)f(absolute)g
+(gamma)i(used)d(b)m(y)h(the)h(prin)m(t)e(job;)46 b(it)41
+b(is)f(scaled)h(b)m(y)h(the)f(gamma)390 4564 y(appropriate)29
+b(for)i(the)f(prin)m(ter.)39 b(This)29 b(is)g(true)i(for)f(all)f(of)i
+(the)f(n)m(umerical)f(parameters.)3525 4792 y(F)-8 b(unction)-3725
+b Fh(float)40 b Fk(stp)p 611 4792 V 40 w(get)p 806 4792
+V 41 w(brigh)m(tness)k Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 4902 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 4902 V 41 w(set)p 742 4902
+V 41 w(brigh)m(tness)44 b Fj(\()p Fr(stp_vars_t)27 b
+Fm(vv)p Fr(,)j(float)f Fm(v)-5 b(al)t Fj(\))390 5011
+y Fu(Get)38 b(or)f(set)g(the)h(brigh)m(tness)d(of)i(the)h(prin)m(t)d
+(job)i(\(v)-5 b(alid)35 b(range:)55 b(0.0-2.0;)43 b(default:)53
+b(1.0\).)62 b(An)m(y)390 5121 y(v)-5 b(alue)32 b(other)h(than)f(1.0)i
+(will)c(result)h(in)h(some)h(p)s(ossible)d(v)-5 b(alues)32
+b(not)g(b)s(eing)g(used;)h(if)e(brigh)m(tness)390 5230
+y(is)f(less)g(than)g(1.0,)i(no)f(output)f(p)s(oin)m(t)g(will)e(b)s(e)i
+(pure)f(white,)h(and)h(if)e(brigh)m(tness)h(is)f(greater)j(than)390
+5340 y(1.0,)g(no)e(output)g(p)s(oin)m(t)f(will)f(b)s(e)i(pure)f(blac)m
+(k)h(\(or)h(cy)m(an,)h(or)e(magen)m(ta,)i(or)f(y)m(ello)m(w\).)p
+eop
+%%Page: 19 24
+19 23 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(19)3525 299 y(F)-8 b(unction)-3725 b Fh(float)40 b
+Fk(stp)p 611 299 35 5 v 40 w(get)p 806 299 V 41 w(con)m(trast)k
+Fj(\()p Fr(const)30 b(stp_vars_t)d Fm(vv)8 b Fj(\))3525
+408 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 408 V 41 w(set)p 742 408 V 41 w(con)m(trast)44 b
+Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(float)f Fm(v)-5
+b(al)t Fj(\))390 518 y Fu(Get)27 b(or)f(set)g(the)g(con)m(trast)i(of)e
+(the)g(prin)m(t)e(job)i(\(v)-5 b(alid)24 b(range:)39
+b(0.0-4.0;)30 b(default:)38 b(1.0\).)j(V)-8 b(alues)26
+b(less)390 628 y(than)35 b(1.0)i(will)32 b(result)j(in)f(pure)g(white)h
+(or)g(blac)m(k)g(not)h(b)s(eing)e(used)g(\(0.0)j(will)c(mak)m(e)j(the)g
+(en)m(tire)390 737 y(image)30 b(50\045)h(gra)m(y\).)42
+b(V)-8 b(alues)30 b(greater)h(than)f(1.0)i(do)e(not)g(hard)f(clip;)g
+(while)f(the)i(con)m(trast)i(in)d(the)390 847 y(midtones)g(increases,)i
+(it)f(only)f(asymptotically)h(approac)m(hes)h(the)f(limits.)3525
+1066 y(F)-8 b(unction)-3725 b Fh(float)40 b Fk(stp)p
+611 1066 V 40 w(get)p 806 1066 V 41 w(cy)m(an)45 b Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 1176
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1176 V 41 w(set)p 742 1176 V 41 w(cy)m(an)45 b Fj(\()p
+Fr(stp_vars_t)27 b Fm(vv)p Fr(,)j(float)f Fm(v)-5 b(al)t
+Fj(\))390 1285 y Fu(Get)35 b(or)g(set)g(the)f(cy)m(an)h(adjustmen)m(t)g
+(of)f(the)h(prin)m(t)e(job)h(\(range:)49 b(0.0-4.0;)40
+b(default:)48 b(1.0\).)54 b(This)390 1395 y(curren)m(tly)32
+b(adjusts)g(the)g(gamma)i(of)f(the)f(cy)m(an)i(curv)m(e.)48
+b(It)32 b(is)g(scaled)g(b)m(y)h(the)g(cy)m(an)g(adjustmen)m(t)390
+1504 y(for)d(the)h(prin)m(ter)e(mo)s(del)g(in)g(question.)3525
+1724 y(F)-8 b(unction)-3725 b Fh(float)40 b Fk(stp)p
+611 1724 V 40 w(get)p 806 1724 V 41 w(magen)m(ta)k Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 1833
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1833 V 41 w(set)p 742 1833 V 41 w(magen)m(ta)44 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(float)f Fm(v)-5 b(al)t
+Fj(\))390 1943 y Fu(Get)40 b(or)g(set)f(the)h(magen)m(ta)h(adjustmen)m
+(t)e(of)g(the)h(prin)m(t)e(job)h(\(range:)59 b(0.0-4.0;)47
+b(default:)57 b(1.0\).)390 2052 y(This)28 b(curren)m(tly)h(adjusts)h
+(the)g(gamma)h(of)f(the)g(magen)m(ta)i(curv)m(e.)41 b(It)30
+b(is)f(scaled)h(b)m(y)g(the)g(magen)m(ta)390 2162 y(adjustmen)m(t)g
+(for)g(the)h(prin)m(ter)e(mo)s(del)g(in)g(question.)3525
+2381 y(F)-8 b(unction)-3725 b Fh(float)40 b Fk(stp)p
+611 2381 V 40 w(get)p 806 2381 V 41 w(y)m(ello)m(w)45
+b Fj(\()p Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525
+2491 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 2491 V 41 w(set)p 742 2491 V 41 w(y)m(ello)m(w)44
+b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(float)f Fm(v)-5
+b(al)t Fj(\))390 2600 y Fu(Get)32 b(or)f(set)g(the)h(y)m(ello)m(w)f
+(adjustmen)m(t)f(of)h(the)h(prin)m(t)d(job)i(\(range:)43
+b(0.0-4.0;)34 b(default:)41 b(1.0\).)j(This)390 2710
+y(curren)m(tly)23 b(adjusts)f(the)i(gamma)h(of)e(the)h(y)m(ello)m(w)g
+(curv)m(e.)39 b(It)23 b(is)g(scaled)g(b)m(y)h(the)g(y)m(ello)m(w)f
+(adjustmen)m(t)390 2819 y(for)30 b(the)h(prin)m(ter)e(mo)s(del)g(in)g
+(question.)3525 3039 y(F)-8 b(unction)-3725 b Fh(float)40
+b Fk(stp)p 611 3039 V 40 w(get)p 806 3039 V 41 w(saturation)k
+Fj(\()p Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525
+3148 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 3148 V 41 w(set)p 742 3148 V 41 w(saturation)k Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(float)f Fm(v)-5 b(al)t
+Fj(\))390 3258 y Fu(Get)30 b(or)f(set)g(the)g(saturation)f(of)h(the)g
+(prin)m(t)f(job)g(\(range:)41 b(0.0-9.0;)32 b(default:)39
+b(1.0\).)j(Saturation)28 b(of)390 3367 y(0.0)34 b(pro)s(duces)e(gra)m
+(yscale)i(output)f(using)f(comp)s(osite)h(\(CMY)g(or)g(CMYK,)h(as)f
+(appropriate)f(for)390 3477 y(the)f(prin)m(ter\))e(color.)3525
+3696 y(F)-8 b(unction)-3725 b Fh(float)40 b Fk(stp)p
+611 3696 V 40 w(get)p 806 3696 V 41 w(densit)m(y)k Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 3806
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+3806 V 41 w(set)p 742 3806 V 41 w(densit)m(y)44 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(float)f Fm(v)-5 b(al)t
+Fj(\))390 3915 y Fu(Get)30 b(or)f(set)g(the)g(densit)m(y)f(of)h(the)g
+(prin)m(t)f(job)g(\(range:)41 b(0.0-2.0;)32 b(default:)39
+b(1.0\).)j(This)27 b(adjusts)h(the)390 4025 y(amoun)m(t)e(of)g(ink)e
+(dep)s(osited)g(in)h(a)h(linear)e(fashion)g(for)i(all)e(c)m(hannels.)39
+b(It)25 b(is)g(scaled)g(b)m(y)h(the)g(densit)m(y)390
+4134 y(appropriate)35 b(for)g(the)h(c)m(hoice)g(of)g(prin)m(ter,)g
+(resolution,)f(pap)s(er)g(t)m(yp)s(e,)i(and)e(other)h(factors)g(that)
+390 4244 y(the)31 b(driv)m(er)e(ma)m(y)i(deem)f(appropriate.)3525
+4463 y(F)-8 b(unction)-3725 b Fh(float)40 b Fk(stp)p
+611 4463 V 40 w(get)p 806 4463 V 41 w(app)p 1031 4463
+V 40 w(gamma)46 b Fj(\()p Fr(const)30 b(stp_vars_t)d
+Fm(vv)8 b Fj(\))3525 4573 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 4573 V 41 w(set)p 742 4573
+V 41 w(app)p 967 4573 V 40 w(gamma)46 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(float)f Fm(v)-5 b(al)t Fj(\))390 4682
+y Fu(Get)31 b(or)g(set)g(the)f(gamma)h(of)g(the)g(input)d(\(i.)40
+b(e.)h(what)31 b(the)f(driving)e(application)h(uses\).)3525
+4902 y(F)-8 b(unction)-3725 b Fh(void)39 b(*)g Fk(stp)p
+649 4902 V 41 w(get)p 845 4902 V 40 w(lut)45 b Fj(\()p
+Fr(const)29 b(stp_vars_t)e Fm(vv)8 b Fj(\))3525 5011
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+5011 V 41 w(set)p 742 5011 V 41 w(lut)44 b Fj(\()p Fr(stp_vars_t)28
+b Fm(vv)p Fr(,)i(void)f(*)p Fm(v)-5 b(al)t Fj(\))390
+5121 y Fu(Get)43 b(or)f(set)h(the)f(color)h(lo)s(okup)d(table)i(for)g
+(the)h(prin)m(t)d(job.)76 b(This)40 b(is)i(useful)e(outside)h(of)i(the)
+390 5230 y(library)29 b(for)h(computing)g(a)i(preview)d(of)i(the)h
+(prin)m(ted)d(result.)41 b(The)31 b(lo)s(okup)e(table)i(itself)f
+(should)390 5340 y(b)s(e)g(treated)h(as)g(an)f(opaque)h(handle.)p
+eop
+%%Page: 20 25
+20 24 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(20)3525 299 y(F)-8 b(unction)-3725 b Fh(unsigned)41
+b(char)e(*)g Fk(stp)p 1106 299 35 5 v 40 w(get)p 1301
+299 V 41 w(cmap)45 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 408 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 408 V 41 w(set)p 742 408 V
+41 w(cmap)45 b Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(unsigned)e
+(char)h(*)p Fm(v)-5 b(al)t Fj(\))390 518 y Fu(Get)34
+b(or)f(set)h(the)f(color)g(map)f(for)h(the)g(prin)m(t)f(job.)48
+b(This)31 b(is)i(a)g(table)g(of)g(R,G,B)h(v)-5 b(alues)32
+b(for)h(8-bit)390 628 y(indexed)e(input.)44 b(This)31
+b(ma)m(y)i(b)s(e)f(mo)m(v)m(ed)h(outside)e(of)i(the)f(library)e(in)h
+(the)i(future;)f(in)f(this)h(case,)390 737 y(the)i(fron)m(t)h(end)e(w)m
+(ould)g(b)s(e)h(required)e(to)j(do)f(its)g(o)m(wn)g(mapping)f(and)h
+(supply)d(true-color)k(R)m(GB)390 847 y(to)c(the)g(driv)m(er.)275
+1051 y(The)36 b(follo)m(wing)g(metho)s(ds)g(are)i(used)e(to)i(p)s
+(erform)e(output)g(and)h(error)g(rep)s(orting)f(b)m(y)h(the)g(driv)m
+(er.)150 1161 y(The)j(driv)m(er)f(supplies)e(a)k(stream)f(of)h(output)e
+(b)m(ytes;)46 b(the)41 b(fron)m(t)f(end)f(is)h(resp)s(onsible)d(for)j
+(pro)m(viding)150 1271 y(metho)s(ds)30 b(that)h(accept)g(this)f(output)
+g(and)f(handle)g(it)h(appropriately)-8 b(.)3525 1535
+y(F)g(unction)-3725 b Fh(stp_outfunc_t)42 b Fk(stp)p
+1029 1535 V 41 w(get)p 1225 1535 V 40 w(outfunc)j Fj(\()p
+Fr(const)29 b(stp_vars_t)e Fm(vv)8 b Fj(\))3525 1645
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1645 V 41 w(set)p 742 1645 V 41 w(outfunc)44 b Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)p Fr(,)i(stp_outfunc_t)c
+Fm(v)-5 b(al)t Fj(\))3525 1754 y Fu(F)d(unction)-3725
+b Fh(void)39 b(*)g Fk(stp)p 649 1754 V 41 w(get)p 845
+1754 V 40 w(outdata)44 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 1864 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 1864 V 41 w(set)p 742 1864
+V 41 w(outdata)k Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(void)f(*)p
+Fm(v)-5 b(al)t Fj(\))3474 2093 y Fu(Data)32 b(t)m(yp)s(e)-3484
+b Fk(stp)p 551 2093 V 41 w(outfunc)p 972 2093 V 40 w(t)870
+2197 y Fr(typedef)46 b(void)g(\(*stp_outfunc_t\))e(\(void)i(*data,)1538
+2301 y(const)h(char)f(*buffer,)g(size_t)g(bytes\);)390
+2506 y Fu(Get)22 b(or)f(set)g(the)g(output)f(function)g(the)h(driv)m
+(er)e(will)g(use.)37 b(The)20 b(fron)m(t)h(end)f(m)m(ust)h(supply)d(a)j
+(suitable)390 2615 y(function)f(for)i(accepting)g(the)g(output)g(data.)
+38 b(The)21 b Fr(stp_set_outdata)d Fu(metho)s(d)j(pro)m(vides)g(a)h(w)m
+(a)m(y)390 2725 y(of)31 b(passing)e(an)h(appropriate)f(ob)5
+b(ject)32 b(to)f(the)f(output)g(function.)3525 2989 y(F)-8
+b(unction)-3725 b Fh(stp_outfunc_t)42 b Fk(stp)p 1029
+2989 V 41 w(get)p 1225 2989 V 40 w(errfunc)j Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)8 b Fj(\))3525 3099
+y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+3099 V 41 w(set)p 742 3099 V 41 w(errfunc)44 b Fj(\()p
+Fr(const)29 b(stp_vars_t)f Fm(vv)p Fr(,)i(stp_outfunc_t)d
+Fm(v)-5 b(al)t Fj(\))3525 3208 y Fu(F)d(unction)-3725
+b Fh(void)39 b(*)g Fk(stp)p 649 3208 V 41 w(get)p 845
+3208 V 40 w(errdata)44 b Fj(\()p Fr(const)29 b(stp_vars_t)f
+Fm(vv)8 b Fj(\))3525 3318 y Fu(F)-8 b(unction)-3725 b
+Fh(void)39 b Fk(stp)p 558 3318 V 41 w(set)p 742 3318
+V 41 w(errdata)k Fj(\()p Fr(stp_vars_t)28 b Fm(vv)p Fr(,)i(void)g(*)p
+Fm(v)-5 b(al)t Fj(\))390 3428 y Fu(Get)28 b(or)g(set)f(the)h(error)f
+(rep)s(orting)f(function)g(that)i(the)f(driv)m(er)f(will)f(use.)39
+b(This)26 b(is)g(used)h(to)h(rep)s(ort)390 3537 y(errors)g(or)g
+(debugging)f(information,)h(and)g(m)m(ust)g(b)s(e)f(supplied.)37
+b(A)29 b(t)m(ypical)f(errfunc)f(will)e(simply)390 3647
+y(prin)m(t)k(whatev)m(er)i(it's)f(passed)g(to)h(stderr.)275
+3851 y(/*)e(*)f(h)m(ue)p 611 3851 28 4 v 33 w(map)g(is)f(an)i(arra)m(y)
+f(of)h(49)g(doubles)e(represen)m(ting)g(the)i(mapping)e(of)h(h)m(ue)g
+(*)h(from)f(\(0..6\))i(to)150 3961 y(\(0..6\))g(in)d(incremen)m(ts)g
+(of)h(.125.)42 b(The)27 b(h)m(ue)p 1605 3961 V 33 w(map)h(is)f(in)f
+(CMY)j(space,)g(*)f(so)g(h)m(ue=0)g(is)g(cy)m(an.)40
+b(*/)29 b(t)m(yp)s(edef)150 4071 y(v)m(oid)36 b(\(*stp)p
+560 4071 V 33 w(con)m(v)m(ert)p 882 4071 V 35 w(t\)\(const)i(stp)p
+1389 4071 V 32 w(v)-5 b(ars)p 1581 4071 V 33 w(t)37 b(v)-5
+b(ars,)38 b(const)f(unsigned)d(c)m(har)j(*in,)g(unsigned)e(short)h
+(*out,)150 4180 y(in)m(t)j(*zero)p 509 4180 V 34 w(mask,)j(in)m(t)d
+(width,)h(in)m(t)f(bpp,)h(const)g(unsigned)e(c)m(har)i(*cmap,)i(const)e
+(double)e(*h)m(ue)p 3525 4180 V 33 w(map,)150 4290 y(const)31
+b(double)e(*lum)p 884 4290 V 32 w(map,)h(const)h(double)e(*sat)p
+1835 4290 V 33 w(map\);)3525 4554 y(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 4554 35 5 v 41 w(merge)p
+904 4554 V 41 w(prin)m(tv)-6 b(ars)45 b Fj(\()p Fr(stp_vars_t)27
+b Fm(user)p Fr(,)j(const)f(stp_vars_t)565 4664 y Fm(prin)m(t)r
+Fj(\))3525 4893 y Fu(F)-8 b(unction)-3725 b Fh(void)39
+b Fk(stp)p 558 4893 V 41 w(allo)s(cate)p 984 4893 V 40
+w(lut)44 b Fj(\()p Fr(stp_vars_t)28 b Fm(v)p Fr(,)i(size_t)f
+Fm(steps)t Fj(\))3525 5123 y Fu(F)-8 b(unction)-3725
+b Fh(void)39 b Fk(stp)p 558 5123 V 41 w(free)p 787 5123
+V 41 w(lut)44 b Fj(\()p Fr(stp_vars_t)28 b Fm(v)8 b Fj(\))3525
+5352 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 5352 V 41 w(compute)p 1028 5352 V 40 w(lut)45 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(v)p Fr(,)i(size_t)e Fm(steps)t
+Fj(\))p eop
+%%Page: 21 26
+21 25 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(21)150 299 y Ft(4.3)68 b(Dither)46 b(functions)3525
+587 y Fu(F)-8 b(unction)-3725 b Fh(size_t)40 b Fk(stp)p
+663 587 35 5 v 41 w(dither)p 1009 587 V 39 w(algorithm)p
+1533 587 V 41 w(coun)m(t)45 b Fj(\()p Fr(void)p Fj(\))3525
+792 y Fu(F)-8 b(unction)-3725 b Fh(const)40 b(char)f(*)g
+Fk(stp)p 949 792 V 40 w(dither)p 1294 792 V 40 w(algorithm)p
+1819 792 V 41 w(name)45 b Fj(\()p Fr(int)30 b Fm(id)t
+Fj(\))3525 998 y Fu(F)-8 b(unction)-3725 b Fh(const)40
+b(char)f(*)g Fk(stp)p 949 998 V 40 w(default)p 1338 998
+V 39 w(dither)p 1682 998 V 40 w(algorithm)45 b Fj(\()p
+Fr(void)p Fj(\))150 1229 y Ft(4.4)68 b(Options)45 b(functions)3474
+1516 y Fu(Data)32 b(t)m(yp)s(e)-3724 b Fh(void)39 b(*)g
+Fk(stp)p 649 1516 V 41 w(option)p 1009 1516 V 40 w(t)390
+1626 y Fu(This)29 b(is)g(an)h(opaque)h(data)g(t)m(yp)s(e,)g(whose)f
+(structure)g(is)f(not)i(visible)d(to)j(the)f(user.)3525
+1856 y(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p 558
+1856 V 41 w(set)p 742 1856 V 41 w(option\(stp)p 1301
+1856 V 39 w(v)-6 b(ars)p 1542 1856 V 41 w(t)45 b Fm(v)p
+Fr(,)30 b(const)f(char)h(*)p Fm(name)p Fr(,)f(const)g(char)565
+1965 y(*)p Fm(data)p Fr(,)i(int)e Fm(b)m(ytes)t Fj(\))3525
+2171 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 2171 V 41 w(clear)p 838 2171 V 40 w(option)45 b Fj(\()p
+Fr(stp_vars_t)28 b Fm(v)p Fr(,)i(const)f(char)g(*)p Fm(name)5
+b Fj(\))3525 2377 y Fu(F)-8 b(unction)-3725 b Fh(void)39
+b Fk(stp)p 558 2377 V 41 w(clear)p 838 2377 V 40 w(all)p
+998 2377 V 41 w(options)45 b Fj(\()p Fr(stp_vars_t)28
+b Fm(v)8 b Fj(\))3525 2582 y Fu(F)-8 b(unction)-3725
+b Fh(size_t)40 b Fk(stp)p 663 2582 V 41 w(option)p 1023
+2582 V 40 w(coun)m(t)k Fj(\()p Fr(const)30 b(stp_vars_t)d
+Fm(v)8 b Fj(\))3525 2788 y Fu(F)-8 b(unction)-3725 b
+Fh(const)40 b(stp_option_t)i Fk(stp)p 1277 2788 V 40
+w(get)p 1472 2788 V 41 w(option)p 1832 2788 V 40 w(b)m(y)p
+1993 2788 V 41 w(index)j Fj(\()p Fr(const)29 b(stp_vars_t)565
+2898 y Fm(v)p Fr(,)h(size_t)f Fm(idx)6 b Fj(\))3525 3103
+y Fu(F)-8 b(unction)-3725 b Fh(const)40 b(stp_option_t)i
+Fk(stp)p 1277 3103 V 40 w(get)p 1472 3103 V 41 w(option)p
+1832 3103 V 40 w(b)m(y)p 1993 3103 V 41 w(name)j Fj(\()p
+Fr(const)30 b(stp_vars_t)565 3213 y Fm(v)p Fr(,)g(const)f(char)g(*)p
+Fm(name)5 b Fj(\))3525 3418 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 3418 V 40 w(option)p
+1308 3418 V 41 w(data)44 b Fj(\()p Fr(const)29 b(stp_option_t)e
+Fm(option)p Fj(\))390 3528 y Fi(Note)p Fu(:)42 b(not)31
+b(n)m(ull)d(delimited!)3525 3758 y(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 3758 V 40 w(option)p
+1308 3758 V 41 w(name)45 b Fj(\()p Fr(const)29 b(stp_option_t)e
+Fm(option)p Fj(\))3525 3963 y Fu(F)-8 b(unction)-3725
+b Fh(size_t)40 b Fk(stp)p 663 3963 V 41 w(option)p 1023
+3963 V 40 w(length)k Fj(\()p Fr(const)29 b(stp_option_t)e
+Fm(option)p Fj(\))150 4194 y Ft(4.5)68 b(P)l(ap)t(er)45
+b(functions)3474 4482 y Fu(Data)32 b(t)m(yp)s(e)-3724
+b Fh(void)39 b(*)g Fk(stp)p 649 4482 V 41 w(pap)s(ersize)p
+1158 4482 V 39 w(t)390 4591 y Fu(This)29 b(is)g(an)h(opaque)h(data)g(t)
+m(yp)s(e,)g(whose)f(structure)g(is)f(not)i(visible)d(to)j(the)f(user.)
+3474 4821 y(Data)i(t)m(yp)s(e)-3724 b Fk(stp)p 311 4821
+V 41 w(pap)s(ersize)p 820 4821 V 39 w(unit)p 1064 4821
+V 40 w(t)630 4925 y Fr(typedef)46 b(enum)g(papersize_unit)630
+5029 y({)725 5132 y(PAPERSIZE_ENGLISH,)725 5236 y(PAPERSIZE_METRIC)630
+5340 y(})h(stp_papersize_unit_t;)p eop
+%%Page: 22 27
+22 26 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(22)3525 299 y(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p
+506 299 35 5 v 41 w(kno)m(wn)p 872 299 V 41 w(pap)s(ersizes)44
+b Fj(\()p Fr(void)p Fj(\))3525 511 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(stp_papersize_t)i Fk(stp)p 1433 511 V
+41 w(get)p 1629 511 V 41 w(pap)s(ersize)p 2138 511 V
+39 w(b)m(y)p 2298 511 V 41 w(name)j Fj(\()p Fr(const)30
+b(char)565 621 y(*)p Fm(name)5 b Fj(\))3525 833 y Fu(F)-8
+b(unction)-3725 b Fh(const)40 b(stp_papersize_t)h Fk(stp)p
+1432 833 V 41 w(get)p 1628 833 V 40 w(pap)s(ersize)p
+2136 833 V 40 w(b)m(y)p 2297 833 V 41 w(size)k Fj(\()p
+Fr(int)30 b Fm(l)p Fr(,)f(int)g Fm(w)8 b Fj(\))3525 1155
+y Fu(F)-8 b(unction)-3725 b Fh(const)40 b(stp_papersize_t)i
+Fk(stp)p 1433 1155 V 41 w(get)p 1629 1155 V 41 w(pap)s(ersize)p
+2138 1155 V 39 w(b)m(y)p 2298 1155 V 41 w(index)j Fj(\()p
+Fr(int)30 b Fm(index)6 b Fj(\))3525 1367 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 1367 V 40 w(pap)s(ersize)p
+1457 1367 V 40 w(get)p 1652 1367 V 40 w(name)45 b Fj(\()p
+Fr(const)29 b(stp_papersize_t)565 1477 y Fm(pt)r Fj(\))3525
+1689 y Fu(F)-8 b(unction)-3725 b Fh(unsigned)41 b Fk(stp)p
+768 1689 V 40 w(pap)s(ersize)p 1276 1689 V 40 w(get)p
+1471 1689 V 40 w(width)j Fj(\()p Fr(const)30 b(stp_papersize_t)c
+Fm(pt)r Fj(\))3525 1902 y Fu(F)-8 b(unction)-3725 b Fh(unsigned)41
+b Fk(stp)p 768 1902 V 40 w(pap)s(ersize)p 1276 1902 V
+40 w(get)p 1471 1902 V 40 w(heigh)m(t)j Fj(\()p Fr(const)29
+b(stp_papersize_t)e Fm(pt)r Fj(\))3525 2114 y Fu(F)-8
+b(unction)-3725 b Fh(unsigned)41 b Fk(stp)p 768 2114
+V 40 w(pap)s(ersize)p 1276 2114 V 40 w(get)p 1471 2114
+V 40 w(top)k Fj(\()p Fr(const)30 b(stp_papersize_t)c
+Fm(pt)r Fj(\))3525 2326 y Fu(F)-8 b(unction)-3725 b Fh(unsigned)41
+b Fk(stp)p 768 2326 V 40 w(pap)s(ersize)p 1276 2326 V
+40 w(get)p 1471 2326 V 40 w(left)k Fj(\()p Fr(const)29
+b(stp_papersize_t)d Fm(pt)r Fj(\))3525 2539 y Fu(F)-8
+b(unction)-3725 b Fh(unsigned)41 b Fk(stp)p 768 2539
+V 40 w(pap)s(ersize)p 1276 2539 V 40 w(get)p 1471 2539
+V 40 w(b)s(ottom)46 b Fj(\()p Fr(const)29 b(stp_papersize_t)d
+Fm(pt)r Fj(\))3525 2751 y Fu(F)-8 b(unction)-3725 b Fh(unsigned)41
+b Fk(stp)p 768 2751 V 40 w(pap)s(ersize)p 1276 2751 V
+40 w(get)p 1471 2751 V 40 w(righ)m(t)k Fj(\()p Fr(const)29
+b(stp_papersize_t)e Fm(pt)r Fj(\))3525 2963 y Fu(F)-8
+b(unction)-3725 b Fh(stp_papersize_unit_t)44 b Fk(stp)p
+1395 2963 V 41 w(pap)s(ersize)p 1904 2963 V 39 w(get)p
+2098 2963 V 41 w(unit)g Fj(\()p Fr(const)565 3073 y(stp_papersize_t)26
+b Fm(pt)r Fj(\))150 3308 y Ft(4.6)68 b(Prin)l(ter)46
+b(functions)3474 3605 y Fu(Data)32 b(t)m(yp)s(e)-3724
+b Fh(void)39 b(*)g Fk(stp)p 649 3605 V 41 w(prin)m(ter)p
+1039 3605 V 39 w(t)390 3714 y Fu(This)29 b(is)g(an)h(opaque)h(data)g(t)
+m(yp)s(e,)g(whose)f(structure)g(is)f(not)i(visible)d(to)j(the)f(user.)
+3525 3953 y(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p
+506 3953 V 41 w(kno)m(wn)p 872 3953 V 41 w(prin)m(ters)44
+b Fj(\()p Fr(void)p Fj(\))3525 4166 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(stp_printer_t)i Fk(stp)p 1329 4166 V
+40 w(get)p 1524 4166 V 41 w(prin)m(ter)p 1914 4166 V
+40 w(b)m(y)p 2075 4166 V 41 w(index)i Fj(\()p Fr(int)30
+b Fm(idx)6 b Fj(\))3525 4378 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 4378 V 40 w(prin)m(ter)p
+1338 4378 V 40 w(get)p 1533 4378 V 40 w(long)p 1783 4378
+V 42 w(name)45 b Fj(\()p Fr(const)29 b(stp_printer_t)565
+4487 y Fm(p)s Fj(\))3525 4700 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(stp_printer_t)i Fk(stp)p 1329 4700 V
+40 w(get)p 1524 4700 V 41 w(prin)m(ter)p 1914 4700 V
+40 w(b)m(y)p 2075 4700 V 41 w(long)p 2326 4700 V 41 w(name)j
+Fj(\()p Fr(const)565 4809 y(char)29 b(*)p Fm(long)p 1006
+4809 28 4 v 32 w(name)5 b Fj(\))3525 5022 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(stp_printer_t)i Fk(stp)p 1329 5022 35
+5 v 40 w(get)p 1524 5022 V 41 w(prin)m(ter)p 1914 5022
+V 40 w(b)m(y)p 2075 5022 V 41 w(driv)m(er)j Fj(\()p Fr(const)29
+b(char)565 5131 y(*)p Fm(driv)m(er)7 b Fj(\))3525 5344
+y Fu(F)-8 b(unction)-3725 b Fh(int)39 b Fk(stp)p 506
+5344 V 41 w(get)p 702 5344 V 40 w(prin)m(ter)p 1091 5344
+V 40 w(index)p 1404 5344 V 40 w(b)m(y)p 1565 5344 V 41
+w(driv)m(er)46 b Fj(\()p Fr(const)29 b(char)g(*)p Fm(driv)m(er)7
+b Fj(\))p eop
+%%Page: 23 28
+23 27 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(23)3525 299 y(F)-8 b(unction)-3725 b Fh(const)40 b(char)f(*)g
+Fk(stp)p 949 299 35 5 v 40 w(prin)m(ter)p 1338 299 V
+40 w(get)p 1533 299 V 40 w(driv)m(er)46 b Fj(\()p Fr(const)29
+b(stp_printer_t)e Fm(p)s Fj(\))3525 513 y Fu(F)-8 b(unction)-3725
+b Fh(int)39 b Fk(stp)p 506 513 V 41 w(prin)m(ter)p 896
+513 V 39 w(get)p 1090 513 V 41 w(mo)s(del)45 b Fj(\()p
+Fr(const)30 b(stp_printer_t)c Fm(p)s Fj(\))3525 727 y
+Fu(F)-8 b(unction)-3725 b Fh(const)40 b(stp_printfuncs_t)j(*)38
+b Fk(stp)p 1576 727 V 41 w(prin)m(ter)p 1966 727 V 40
+w(get)p 2161 727 V 40 w(prin)m(tfuncs)44 b Fj(\()p Fr(const)565
+837 y(stp_printer_t)27 b Fm(p)s Fj(\))3474 1051 y Fu(Data)32
+b(t)m(yp)s(e)-3724 b Fk(stp)p 311 1051 V 41 w(prin)m(tfuncs)p
+860 1051 V 39 w(t)630 1155 y Fr(typedef)46 b(struct)630
+1259 y({)725 1362 y(char)95 b(**\(*parameters\)\(const)42
+b(stp_printer_t)i(printer,)1775 1466 y(const)j(char)f(*ppd_file,)1775
+1570 y(const)h(char)f(*name,)h(int)f(*count\);)725 1674
+y(void)95 b(\(*media_size\)\(const)42 b(stp_printer_t)j(printer,)1680
+1778 y(const)h(stp_vars_t)f(v,)j(int)e(*width,)1680 1881
+y(int)h(*height\);)725 1985 y(void)95 b(\(*imageable_area\)\(const)41
+b(stp_printer_t)j(printer,)1871 2089 y(const)i(stp_vars_t)f(v,)1871
+2193 y(int)i(*left,)f(int)h(*right,)1871 2296 y(int)g(*bottom,)e(int)i
+(*top\);)725 2400 y(void)95 b(\(*limit\)\(const)44 b(stp_printer_t)g
+(printer,)1441 2504 y(const)j(stp_vars_t)e(v,)1441 2608
+y(int)i(*width,)f(int)h(*height\);)725 2711 y(void)95
+b(\(*print\)\(const)44 b(stp_printer_t)g(printer,)1441
+2815 y(stp_image_t)h(*image,)h(const)g(stp_vars_t)f(v\);)725
+2919 y(const)i(char)f(*\(*default_parameters\)\(con)o(st)c
+(stp_printer_t)i(printer,)2348 3023 y(const)j(char)f(*ppd_file,)2348
+3127 y(const)h(char)f(*name\);)725 3230 y(void)95 b
+(\(*describe_resolution\)\(c)o(ons)o(t)42 b(stp_printer_t)i(printer,)
+2110 3334 y(const)i(char)h(*resolution,)2110 3438 y(int)f(*x,)h(int)g
+(*y\);)725 3542 y(int)143 b(\(*verify\)\(const)43 b(stp_printer_t)i(p,)
+i(const)f(stp_vars_t)f(v\);)630 3645 y(})i(stp_printfuncs_t;)3474
+3887 y Fu(Data)32 b(t)m(yp)s(e)-3724 b Fk(stp)p 311 3887
+V 41 w(image)p 645 3887 V 41 w(t)630 3991 y Fr(typedef)46
+b(struct)g(stp_image)630 4095 y({)725 4198 y(void)h(\(*init\)\(struct)d
+(stp_image)h(*image\);)725 4302 y(void)i(\(*reset\)\(struct)d
+(stp_image)h(*image\);)725 4406 y(void)i(\(*transpose\)\(struct)c
+(stp_image)i(*image\);)725 4510 y(void)i(\(*hflip\)\(struct)d
+(stp_image)h(*image\);)725 4614 y(void)i(\(*vflip\)\(struct)d
+(stp_image)h(*image\);)725 4717 y(void)i(\(*crop\)\(struct)d(stp_image)
+h(*image,)1346 4821 y(int)i(left,)f(int)h(top,)g(int)g(right,)1346
+4925 y(int)g(bottom\);)725 5029 y(void)g(\(*rotate_ccw\)\(struct)42
+b(stp_image)k(*image\);)725 5132 y(void)h(\(*rotate_cw\)\(struct)c
+(stp_image)i(*image\);)725 5236 y(void)i(\(*rotate_180\)\(struct)42
+b(stp_image)k(*image\);)725 5340 y(int)95 b(\(*bpp\)\(struct)44
+b(stp_image)i(*image\);)p eop
+%%Page: 24 29
+24 28 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(24)725 299 y Fr(int)95 b(\(*width\)\(struct)44 b(stp_image)h
+(*image\);)725 403 y(int)95 b(\(*height\)\(struct)43
+b(stp_image)j(*image\);)725 506 y(void)h(\(*get_row\)\(struct)c
+(stp_image)i(*image,)1012 610 y(unsigned)g(char)i(*data,)f(int)h
+(row\);)725 714 y(const)g(char)f(*\(*get_appname\)\(struct)c(stp_image)
+j(*image\);)725 818 y(void)i(\(*progress_init\)\(struct)42
+b(stp_image)j(*image\);)725 922 y(void)i(\(*note_progress\)\(struct)42
+b(stp_image)j(*image,)1012 1025 y(double)h(current,)f(double)i
+(total\);)725 1129 y(void)g(\(*progress_conclude\)\(stru)o(ct)41
+b(stp_image)46 b(*image\);)725 1233 y(void)h(*rep;)630
+1337 y(})g(stp_image_t;)390 1479 y Fu(This)40 b(is)h(an)g(abstract)i
+(data)f(t)m(yp)s(e)g(for)g(in)m(terfacing)f(with)f(the)i(program)g
+(whic)m(h)e(created)j(the)390 1589 y(image.)3525 1846
+y(F)-8 b(unction)-3725 b Fh(const)40 b(stp_vars_t)h Fk(stp)p
+1172 1846 35 5 v 41 w(prin)m(ter)p 1562 1846 V 39 w(get)p
+1756 1846 V 41 w(prin)m(tv)-6 b(ars)44 b Fj(\()p Fr(const)565
+1956 y(stp_printer_t)27 b Fm(p)s Fj(\))150 2200 y Ft(4.7)68
+b(Settings)46 b(functions)3525 2515 y Fu(F)-8 b(unction)-3725
+b Fh(stp_convert_t)42 b Fk(stp)p 1029 2515 V 41 w(c)m(ho)s(ose)p
+1397 2515 V 41 w(colorfunc)j Fj(\()p Fr(int)30 b Fm(output)p
+2416 2515 28 4 v 32 w(t)m(yp)s(e)p Fr(,)h(int)565 2625
+y Fm(image)p 802 2625 V 33 w(bpp)p Fr(,)e(const)g(unsigned)f(char)h(*)p
+Fm(cmap)p Fr(,)h(int)f(*)p Fm(out)p 2657 2625 V 33 w(bpp)p
+Fr(,)g(const)g(stp_vars_t)565 2735 y Fm(v)8 b Fj(\))3525
+2959 y Fu(F)-8 b(unction)-3725 b Fh(void)39 b Fk(stp)p
+558 2959 35 5 v 41 w(compute)p 1028 2959 V 40 w(page)p
+1298 2959 V 41 w(parameters)44 b Fj(\()p Fr(int)30 b
+Fm(page)p 2332 2959 28 4 v 33 w(righ)m(t)p Fr(,)g(int)565
+3069 y Fm(page)p 751 3069 V 34 w(left)p Fr(,)f(int)h
+Fm(page)p 1346 3069 V 34 w(top)p Fr(,)g(int)f Fm(page)p
+1943 3069 V 34 w(b)s(ottom)p Fr(,)h(double)f Fm(scaling)p
+Fr(,)g(int)h Fm(image)p 3414 3069 V 33 w(width)p Fr(,)565
+3179 y(int)g Fm(image)p 976 3179 V 33 w(heigh)m(t)p Fr(,)g(stp_image_t)
+d(*)p Fm(image)p Fr(,)j(int)f(*)p Fm(orien)m(tation)p
+Fr(,)h(int)g(*page_width,)565 3288 y(int)g(*)p Fm(page)p
+973 3288 V 33 w(heigh)m(t)p Fr(,)g(int)f(*)p Fm(out)p
+1681 3288 V 33 w(width)p Fr(,)f(int)i(*)p Fm(out)p 2372
+3288 V 33 w(heigh)m(t)p Fr(,)g(int)f(*)p Fm(left)p Fr(,)h(int)f(*)p
+Fm(top)s Fj(\))3525 3513 y Fu(F)-8 b(unction)-3725 b
+Fh(const)40 b(stp_vars_t)h Fk(stp)p 1172 3513 35 5 v
+41 w(default)p 1562 3513 V 39 w(settings)j Fj(\()p Fr(void)p
+Fj(\))3525 3738 y Fu(F)-8 b(unction)-3725 b Fh(const)40
+b(stp_vars_t)h Fk(stp)p 1172 3738 V 41 w(maxim)m(um)p
+1707 3738 V 42 w(settings)j Fj(\()p Fr(void)p Fj(\))3525
+3963 y Fu(F)-8 b(unction)-3725 b Fh(const)40 b(stp_vars_t)h
+Fk(stp)p 1172 3963 V 41 w(minim)m(um)p 1687 3963 V 41
+w(settings)j Fj(\()p Fr(void)p Fj(\))150 4207 y Ft(4.8)68
+b(V)-11 b(ersion)45 b(functions)3525 4522 y Fu(F)-8 b(unction)-3725
+b Fh(const)40 b(char)f(*)g Fk(stp)p 949 4522 V 40 w(c)m(hec)m(k)p
+1262 4522 V 41 w(v)m(ersion)45 b Fj(\()p Fr(unsigned)28
+b(int)i Fm(required)p 2650 4522 28 4 v 31 w(ma)5 b(jor)p
+Fr(,)390 4632 y Fu(unsigned)28 b(in)m(t)i Fm(required)p
+1241 4632 V 31 w(minor)p Fu(,)f(unsigned)g(in)m(t)g Fm(required)p
+2406 4632 V 31 w(micro)5 b Fu(\))390 4774 y(This)31 b(function)g(c)m
+(hec)m(ks)k(whether)d(the)h(v)m(ersion)f(of)h(libgimpprin)m(t)28
+b(that)33 b(the)g(program)g(is)f(link)m(ed)390 4884 y(with)40
+b(is)h(equal)g(to)h(the)g(v)m(ersion)f(n)m(um)m(b)s(er)f(passed)h(to)i
+(it.)73 b(If)42 b(the)f(v)m(ersion)g(is)g(the)h(same,)j(the)390
+4994 y(function)32 b(returns)h Fr(NULL)p Fu(.)49 b(If)33
+b(an)m(y)h(of)f(the)h(v)m(ersion)f(n)m(um)m(b)s(ers)f(do)i(not)g(matc)m
+(h)g(\(i.e.)51 b(the)33 b(library)390 5103 y(v)m(ersion)38
+b(is)g(to)s(o)h(old)f(or)h(to)s(o)g(new\),)i(a)e(string)f(con)m
+(taining)g(a)h(desription)d(of)j(the)g(di\013erence)f(is)390
+5213 y(returned.)43 b(The)32 b(\014rst)f(error)g(found)f(is)h
+(returned.)44 b(The)31 b(function)f(c)m(hec)m(ks)j(in)e(the)g(order)h
+(ma)5 b(jor,)390 5322 y(minor,)29 b(micro.)p eop
+%%Page: 25 30
+25 29 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(F)-8 b(unctions)2658
+b(25)150 299 y Fg(4.8.1)63 b(V)-10 b(ersion)41 b(macros)3624
+591 y Fu(Macro)-3723 b Fk(GIMPPRINT)p 854 591 35 5 v
+42 w(CHECK)p 1317 591 V 40 w(VERSION)45 b Fj(\()p Fm(ma)5
+b(jor,minor,micro)p Fj(\))390 701 y Fu(This)42 b(macro)i(returns)e
+(zero)i(if)f(the)h(v)m(ersion)f(of)g(the)h(libgimpprin)m(t)39
+b(headers)k(are)h(greater)h(or)390 810 y(equal)36 b(to)g(the)h(v)m
+(ersion)e(giv)m(en)h(as)g(an)g(argumen)m(t.)59 b(It)36
+b(returns)e(nonzero)j(if)e(the)h(v)m(ersion)g(of)g(the)390
+920 y(libgimpprin)m(t)26 b(headers)k(are)h(less)e(than)i(the)f(argumen)
+m(t.)3624 1154 y(Macro)-3723 b Fk(GIMPPRINT)p 854 1154
+V 42 w(MAJOR)p 1323 1154 V 41 w(VERSION)3624 1363 y Fu(Macro)g
+Fk(GIMPPRINT)p 854 1363 V 42 w(MINOR)p 1310 1363 V 41
+w(VERSION)3624 1572 y Fu(Macro)g Fk(GIMPPRINT)p 854 1572
+V 42 w(MICR)m(O)p 1300 1572 V 41 w(VERSION)3624 1782
+y Fu(Macro)g Fk(GIMPPRINT)p 854 1782 V 42 w(CURRENT)p
+1484 1782 V 41 w(INTERF)-13 b(A)m(CE)3624 1991 y Fu(Macro)-3723
+b Fk(GIMPPRINT)p 854 1991 V 42 w(BINAR)-10 b(Y)p 1360
+1991 V 41 w(A)m(GE)3624 2200 y Fu(Macro)-3723 b Fk(GIMPPRINT)p
+854 2200 V 42 w(INTERF)-13 b(A)m(CE)p 1571 2200 V 41
+w(A)m(GE)275 2359 y Fu(These)21 b(macros)i(are)f(in)m(tegers)h(holding)
+c(the)k(v)m(ersion)e(n)m(um)m(b)s(ers.)37 b(They)21 b(should)f(b)s(e)i
+(used)f(for)h(compile-)150 2469 y(time)e(c)m(hec)m(king)i(only)-8
+b(.)37 b(T)-8 b(o)21 b(c)m(hec)m(k)h(v)m(ersion)e(n)m(um)m(b)s(ers)f
+(at)i(run-time,)h(use)e(the)h(equiv)-5 b(alen)m(t)20
+b(v)-5 b(ariables.)36 b(Note)150 2579 y(that)h(at)h(presen)m(t)f
+(\(4.1.x)h(dev)m(elopmen)m(t)f(branc)m(h\))g(the)f(library)f(in)m
+(terface)i(v)m(ersion)f(n)m(um)m(b)s(ers)g(are)h(not)150
+2688 y(used.)150 2912 y Fg(4.8.2)63 b(V)-10 b(ersion)41
+b(v)-7 b(ariables)3546 3205 y Fu(V)f(ariable)-3725 b
+Fh(const)40 b(unsigned)g(int)f Fk(gimpprin)m(t)p 1605
+3205 V 41 w(ma)6 b(jor)p 1942 3205 V 42 w(v)m(ersion)3546
+3414 y Fu(V)-8 b(ariable)-3725 b Fh(const)40 b(unsigned)g(int)f
+Fk(gimpprin)m(t)p 1605 3414 V 41 w(minor)p 1941 3414
+V 41 w(v)m(ersion)3546 3623 y Fu(V)-8 b(ariable)-3725
+b Fh(const)40 b(unsigned)g(int)f Fk(gimpprin)m(t)p 1605
+3623 V 41 w(micro)p 1928 3623 V 42 w(v)m(ersion)3546
+3832 y Fu(V)-8 b(ariable)-3725 b Fh(const)40 b(unsigned)g(int)f
+Fk(gimpprin)m(t)p 1605 3832 V 41 w(curren)m(t)p 2014
+3832 V 39 w(in)m(terface)3546 4042 y Fu(V)-8 b(ariable)-3725
+b Fh(const)40 b(unsigned)g(int)f Fk(gimpprin)m(t)p 1605
+4042 V 41 w(binary)p 1969 4042 V 40 w(age)3546 4251 y
+Fu(V)-8 b(ariable)-3725 b Fh(const)40 b(unsigned)g(int)f
+Fk(gimpprin)m(t)p 1605 4251 V 41 w(in)m(terface)p 2079
+4251 V 39 w(age)275 4410 y Fu(These)24 b(v)-5 b(ariables)24
+b(hold)g(the)h(library)d(v)m(ersion)j(n)m(um)m(b)s(ers.)37
+b(Because)27 b(the)e(v)m(ersion)f(of)i(the)f(library)d(ma)m(y)150
+4520 y(c)m(hange)36 b(on)f(a)h(system)f(using)e(shared)i(libraries,)e
+(these)j(should)d(b)s(e)h(used)h(instead)f(of)h(the)g(equiv)-5
+b(alen)m(t)150 4629 y(macros)34 b(when)f(c)m(hec)m(king)h(the)g
+(library)d(v)m(ersion)i(at)i(run-time.)49 b(Note)35 b(that)f(library)d
+(in)m(terface)j(v)m(ersion)150 4739 y(n)m(um)m(b)s(ers)29
+b(are)i(not)f(used)g(in)f(the)i(dev)m(elopmen)m(t)f(branc)m(h,)g(but)g
+(are)h(in)e(the)h(stable)g(branc)m(h.)p eop
+%%Page: 26 31
+26 30 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Programs)2663
+b(26)150 299 y Fp(5)80 b(Programs)275 1135 y Fu(This)48
+b(c)m(hapter)j(of)g(the)g(man)m(ual)e(describ)s(es)g(the)i(use)f(of)h
+(some)g(of)f(the)h(programs)f(whic)m(h)f(use)150 1245
+y(the)60 b(GIMP-Prin)m(t)f(library)e(\(libgimpprin)m(t\).)124
+b(Note)61 b(that)f(there)g(is)e(no)m(w)i(a)g(user)e(man)m(ual)h(in)150
+1355 y(Do)s(cBo)s(ok/SGML)30 b(format,)f(curren)m(tly)e(pro)m(vided)f
+(in)h(HTML,)h(P)m(ostScript)f(and)h(PDF)g(formats)g(whic)m(h)150
+1464 y(is)k(distributed)e(with)h(GIMP-Prin)m(t.)48 b(This)31
+b(man)m(ual)h(curren)m(tly)g(co)m(v)m(ers)i(the)f(use)g(of)g(the)g
+(GIMP)g(Prin)m(t)150 1574 y(plugin)28 b(and)i(CUPS)f(driv)m(ers.)150
+2333 y Ft(5.1)68 b(The)45 b(GIMP)f(Prin)l(t)h(plugin)275
+2726 y Fu(The)34 b(GIMP)h(Prin)m(t)f(plugin)f(is)h(the)h(prin)m(ting)e
+(facilit)m(y)h(for)g(the)i(GNU)f(Image)h(Manipulation)d(Pro-)150
+2836 y(gram)352 2803 y Ff(1)390 2836 y Fu(.)40 b(This)29
+b(section)h(examines)g(the)h(features)f(o\013ered)h(b)m(y)f(the)h(Prin)
+m(t)e(plugin.)275 3171 y(The)g(main)h(windo)m(w)e(is)i(divided)e(in)m
+(to)i(\014v)m(e)h(panes:)150 3797 y Fg(5.1.1)63 b(Preview)275
+4190 y Fu(The)25 b(Preview)g(pane)g(con)m(tains)h(a)g(p)s(ositioning)d
+(widget)i(that)i(allo)m(ws)e(in)m(teractiv)m(ely)h(p)s(ositioning)d
+(the)150 4300 y(output)31 b(on)h(the)f(page.)45 b(It)32
+b(con)m(tains)g(an)f(outer)h(b)s(order,)f(represen)m(ting)f(the)i
+(sheet)g(of)g(pap)s(er;)f(an)h(inner)150 4410 y(b)s(order,)f(represen)m
+(ting)f(the)i(prin)m(table)e(area)i(of)g(the)g(prin)m(ter;)f(an)g(arro)
+m(w,)h(p)s(oin)m(ting)e(to)j(the)e(top)h(of)g(the)150
+4519 y(page)h(\(the)f(end)g(that's)g(fed)g(in)m(to)g(the)g(prin)m
+(ter\);)g(and)g(a)g(blac)m(k)g(rectangle,)h(represen)m(ting)f(the)g(p)s
+(osition)150 4629 y(of)h(the)h(image)f(on)h(the)f(page.)50
+b(The)33 b(image)h(can)f(b)s(e)g(mo)m(v)m(ed)h(around)e(on)h(the)h(pap)
+s(er.)48 b(When)33 b(the)h(\014rst)150 4738 y(\(left\))g(button)f(is)g
+(used,)g(the)h(image)g(is)f(mo)m(v)m(ed)h(in)e(screen)i(pixels;)g(when)
+e(an)m(y)i(other)g(button)f(is)f(used,)p 150 5241 1200
+4 v 199 5308 a Ff(1)275 5340 y Fe(http://www.gimp.org)p
+eop
+%%Page: 27 32
+27 31 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Programs)2663
+b(27)150 299 y(the)35 b(image)h(is)e(mo)m(v)m(ed)i(in)e(p)s(oin)m(ts)
+1320 266 y Ff(2)1356 299 y Fu(.)55 b(The)35 b(arro)m(w)g(resizes)g(dep)
+s(ending)e(up)s(on)g(the)j(media)e(size)h(c)m(hosen;)150
+408 y(the)c(shaft)f(of)g(the)h(arro)m(w)f(is)g(alw)m(a)m(ys)h(equal)f
+(to)h(one)f(inc)m(h)g(on)g(the)h(output.)750 3378 y @beginspecial
+0 @llx 0 @lly 647 @urx 647 @ury 2880 @rwi @setspecial
+%%BeginDocument: print-main.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (print-main.eps)
+%%CreationDate: (Sun Feb 29 19:56:03 2004)
+%%BoundingBox: 0 0 647 647
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 647 647
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+648 648
+12.000000
+648 648
+0
+0
+0
+GhVQ@$[`q*^%hWSdL0pV25M*AV*KTN.8WW)5sPT6;*b^^r@9fAUBjI,"?iJF`KTuqMAV0u7K
+e8B+p8KDK5a@1U(@Hr1E`%669q5$V)6]MP&L?HrH2E.o#roAI:hX5IduF*Sa=YI4L6i9bjK)p
+Z2ak)zzzz!!!!A4Z.-mI;[SA+WsF"G!P_<'mce,hsnlkE*`MU459bRmKTI9q@4?[T+,nWj;:F
+OfBueQ;#*oAn("S-D%eF<id4n&J95s"k<uKodq_0jmU_:Sc>0#:dhRd?Gq7)*Qr*/n#>D$T/?
+"c4Su=h.ct/jqcjo7sd5``/RlKk?h.rSYnm*N4!sd?0.LZgu>M_#O"[+^QpXA\e2\r8"aH=pM(
+%2VLAZ,,4k^GnSWRm<;b9Qad%g&nhL#FW5]<1BTd_8M>Gs1nuZVqA:q%D]tW#8=K:8\kRcdcA
+tbOIYZ[C6[.31[b/=n"\3"kW)(s-?u:IBT!NJ/i7o5$s>U"6uL3#F`F,9HnX_]gtD["?g+pS.
+`3P?G!Q2T7NRH#BH^,?1pEg%^bDRmP:t!UTfpLZK:dD:TpguDaKdf"=\QJq(/oAr%"u;]<dk(
+=a<<<8?URO/Llj#;7[/YG5>Li4[P*:U<A'a$Jo?c('EbU@$H7eg%'UR$Rc:l$lF[N!sM2]!Me
+"QT]##h?kg0\'HCB_N'`k^JtpM>;<Tc3E%-"A#0=E0G"K7R'L_e'[TtS<]]$9MjQ2`i`><+I8
+pTu!H/oQ_huW)V8%S[BSXjeLL]"ejg+JWuQH6P]PI&Sudm#K5HpWkjTY0SE3G=!13bN-<BnP/
+7*LK$e^NOYTZq7r0-MC-i[X6GUY"99f-][X45H]Fi2Qc#Z[VRasH0gne@n&D:*n<5bl\:NHlU
+Qo4gM3eCR[T?cN=#7-`;1jjF;ZJd\nmYD]_5o^ks]l8V6"o>X@MB7#Nbr&l0a_lh]fO90/m,Z
+^\k?AG+i13*EdcMSG*1IlQeKm;,2M"1ql\Eg3r23fn0OU*2oLW^Mpg!"k.hmX6nSa>5)?%]Cq
+WI3H%g9XqTRQCtlP]KU,d$RV-HCW-3"+e1lpr7lQAK<Bk)+h5Cpn,IX>i)+Bkm`/$$MV(Q\69
+a94lbH']XBB6V$Ui3e+d3Hj'Q&"djqgU-P2bM\%o"3*,VMjR4`H((NEqu-o_p?Cma34;IQZ!i
+eBC.X"qJLqXh.>N/\c!o#krW=OhN.*OF56KFa3<gphos@j\*J9?D>U$U=q@4QZ=$T%r/$@*SC
+"Y/\AfQ/2U!.>5@mgMplVtZl#KhPAH4HZb>tUcRpM<OCZUg]ZMI^LiG!SG=&qF/:Fm1FDL(;$
+H13/kmqV*)Q`a!Bp']rIoAmotjdK-0(FRC%4sZK/="^KpC>!t'gN<VUgnXnMoD62,>ONBkp3_
+>PmSe;o3baApO3R)PDJ&c#gU/).gN(6^k!Q$t3cJQWr,!D9NGI0lD#K=?Fd';;*A_0c<X+Nio
+[2dKiZXY?IVZ0)(T@%o(n8.!MIT'o>qU9qp"*`l>$:lgXR2?3IBq"YIm,F^J!-)kaO>@S'=Wd
+?SLhNR*kG;lr4^td?+K]7\bcfGo<WK7a5j_Mb0>\Ph6:kfl3.8km,*<Gr4X9?dsFqtcf.+!c^
+WPZoj'Yo]Q;-X410QMLXm,O[5?0B5'Hds,H!H5F)p;lgG\C]^4+@p\f%8Xa4'.OU<BCPX7dM#
+&AM+/!^.02*6G8TA(/eYXJ*g0Dg$D>UMP<H2QW4\ITa-HeiY:[+-BQQQ5>k0F+99aDjA)p+FV
+"h-SL\(0+i!)/8pi0c]j2[PJ<V1pO?<54_j21%iN%?i.5+uqgW`r?cN2\=3U./aZeNFW9_$&O
+3V\4eoC+1m:X^Y4akA::X*c@Icd@8ei"O3[IK?8%1=N4ceG=7qpDeb7agCWWhIU?\m4XO+N2C
+UEZuCn@8Js1d*:$eXB'NgS]bF<WTGDd]Z[TX?@PC%Xd4smabIRR^E/a7b@U/rZ>Q)3]i/7O:"
+K5G#!1hAT?4*+jb8WRTBFB^^*_0S8Y/(6SipC\*]*H\Ob;5s"s,t@s%eFBFhbWaNr#@)*8#\q
+r`rUMn%<J?NZ[W8^3I-<k.*'VmF6O[%Z=)Pg%:EkNCQcYGj!$AIE'g^*E,%V/nYo)[ch`Q=`c
+[CA[),4F-6%Nje5adBL%<DQe,<]VSC6M?J5+HCqNPM]1Y';/fS\o%G/e<Y)r=CangqWe\s<=%
+2o)$X?0G5SLgslG\GA!#645MJX&b!5CQ#XUPJO!s,N]=K=c&/f[[O*o:#Iqm<c=Omb.G$o3/j
+g\+uPb(4C(Ddtok!O.Fkkm`G,0`n0TA[WW!`c76DAdH*Krk]2R(@/Hqc,3?S_o#d%&%*A+EbK
+<QM[nY;_;'+L@pUqntD33L2aNY[bqXnmJHF[k*>l:TQ*gCROb#d09WU&X+=6.87L>MZc_=t)P
+3:cV=,9H56m/Gjcgs^?6mG/.gmQ09pcM?iJHagHPGsUc/DmmkQVg52d/Xh)sdu7cUV]FGEGsV
+E(h<W'UW?&P"8;"nbqWP4RQh/:ECR6QLfT[mr6LlrTX4:KH]'QKIjk&UZ9sT)?4L[WUr\&PE]
+dt7i^T<W1CZWj.jgI&;ld^%C9CfDhEp3sPd6HajkN-L*ad8Ta;kB+IXH[4d*]ill#2f+C^u9e
+.5GYp[m<A1DoUDESYNt'Fb-$/Bgpu#I3qd6$hlXG3mTD,'S_h#sM2PtpUhT\QNDn]e0QE`]EH
+CHc9VT^uAOr/)n(@/9e=]&!?#7*B1R@'KH._-h=FT=E-I;F;)TuVgrE/_r8EW.5ZOF:7%b#!O
++kaA&?J-I%#Glp@XB6^.Xd2IXae)q%V9d7*Ss<M]apidib9uDWa5mq,(,)$:LZQa8jKu\C$2;
+Vun!0[IGNb.G%j$,a5lH]@#Bo_[E(06nTChLAKC6;Y](YoBkAKI+luH/(SC:\dr)Cl+j-s\1E
+)H#M9iDR:S@G5#_S#_^[]^W5JM(T$3F,\`1['^L=DYR=1R;@6.he],jZj@+WcU8tXqY=_Cd/r
+;b9F.5CE$gOH?j5,oWOCk<FYo**q#@ZXd"1(Q91\">:d=&\Qnr3BmW+ZJ%pC*?9.at3TH1kg"
+YUu^Qi;IQG[VX>'T_uJh%'!^T;qaO8AR\W4-YacQ:?e]7%A.f.V@9I!Wh.T5!3A`7A(N/MiE(
+SpoapWUFYl]V'8]h@8N.e;p"p2er9Q&,`I$80A>Y]3MpDq>\Te<_cNidl@Zrin:nZqcfQ<Pk&
+qZ28e5cag'W-?QN6k2FNmK5Os+3]'a.TLU#tok'Oi/[8T/Rd-GF4QbiCE@Ce"q8R>USCL<3(X
+6&"NjQU<RGD/0OKIjIjmRQ?H#N_i[jQ^Vsmug=]QO@\no59f!YE;b5+Xd:X54g'[l6<3G);=u
+BK6?&kf]0%2o=iY^gD>5"I_KIX;n@06WG@9MFj<1RA*,N5gE#*RHUQ',6^stn\7jn"VJYKRNn
+_*Qm#:egPO#Xu6^KUPr%:)*40OKu2=`dJPo%c7;;:3TWp3jY]e'k.Blr%ZQU&l,lg.,=*g;Ie
+/6nOl^S]H@G\qo]f5$"WIR*V,(Z_"IjJ`mBqh4SmQ[9g;]C)$CG0>kNEn0X>nseb#lXfUOEpi
+%0Aug=A,!#XMH2fhbLpLX,dt`,Dgu'f_%*Ul6J'J@K4+4J[LZ<]h5IPpiqmpA\ft#qN3bf1BT
+6>2>PQ`Y&ju6)kF4#YHS&XjB3-JoOQmq^'[]LK/\ot+m\suLWFP6=u43]"/r_L3C>Go[0M*Z'
+<6s1T"`uar'2)`fcWWG=[ocM17]9pn0b<_I<:u1?@Y;a5)6=*kH0<^[ArN^Ht4DDp4O2utJ96
+[jerEaBP<Na)&Y5"jkpbKDL')Bg^3TiO#_HCp-C!q7#]VeW`G*M?Bkg8[K#A;TubZNN4h1EB*
+qt8P.gG>t7HcdC8PNR'`g9kGMSG$fDCn38\A_bMlEOC_E:2Ln*Z#TF2L/H^TNuV.Y@K]u^/9A
+D(^NdI_(h_i\G.CLr@c\>@=8)KQqR/qTjk"'V>XH*R=n>LWI[;Y,8[7CjdcFSq])8kHr1^j6;
+H>t1:Hft`4<P/Vb<9/%LJI*H:-*hVm;6n."g[4DEo,JienO^N'BBi,.3Er(*-RDpQn*6d)k+4
+ki7-un;el1W:[OW.V0Cq[So#it:RKWh@:JEpD*,asCYr`/le$&X`f+aU1M5%ud7pB*2/YRW@H
+<7@&R3e&<O;LZ*ihF:#U>[Aet7G;nU/fb^4Q>u2-it4jo+qsV28M3B/m)oGT^]al3up_f+L.E
++*8B:596WEDg$EdbF?8SiYd%08br7Yo([k.BXdp$:0I90l+0/u]0^DJ9Wkp&IWiG1qGk)aMfS
+g=o!OP"Q]@;/hCck;+Wo?ckWQ6WO-heDfSoes[d-#"HLJ`)Scr')pRBU=n)Vd*8KE.OCu9Bif
+"'gFFr],HrAKRGN+o:4h)K+J_mUfU[i&%%HE5a3F?-,eh;rmRa,]`eZKo_s*)"srf<W?FAbF_
+i$El*armUVnJ.P3N]'QKIjg?kR9%H*L00CQZbN7t0H2LuojH&liXg7:pEq`RSa%tgJn&l.lEm
+;/Crafe*75"GH/8gPf*%pEuQd^*q3b@KjPNE:DYZ(SBG3JhEm+r8ulM86>mf1qBlTMYHLJR4q
+FDC^--FYUpfWstSc$PFW[-P6!S]<Y6*n)fQlhX0tlc*jC]/<m>W'#4Uq37H4C8UTOD!,@Ta&7
+BCQg<Z`inlE$53eZ!:YWe>l[e>dRj`d$m'YK7]3G(4?1t\:bF:D>S(,#^AbFOCir@,AJ!H;na
+]!E,j1gdJDj#mYO[&kNQMjYJ^-K9TPM_rVSY)5f4t5+]Vu6I+q8qCPL\hKc[+F6q\q0Hsn,LD
+?^AloppWU02?ehXXZTE>YHMc"JB6AT<7f.t<\%[>qbBp*C+#[h1rO,GtO)*NlRteJKlXt$>2g
+%OUR$s.A<I5u&L*9j*/tKaaVPi*V-._1fK\P>X]It4V]DVM/g$k0;g+R7=A@3^:4=nhY8Y3I_
+<no<'FNWVaZMYO0n>5]kpZ2>Fjkd2as*dhV4sROd<.=E>\bVe:rII=;mm$U=r<@_V:]Ct"lML
+RP]e-kjHtV(!s4X=8loCVDgp,m\gUDZQ<pRf8C\^eDoD>F:HM=546RFYX5H^\t9`:!HlDBW@h
+1dOp'OA02EZSB'Im,brc?GU6Ir!$CeZtlU?<n`?*g=!maI5?:92"Bc5KH',Q03%HB<IPc5EVi
+sOXCsgj6)8AQ7P7+*][(=C6St\/,(,H[-[14Isg"d*=Ma+&+'2DI_AhMgXEl<pQ,%7qYn.Qn*
+\oW]Q<u'419TXG0=N12P2sWd>+SW2,%aIF@*m^D<c<e?+9dRg'Mj]UZf!PQh/:mbDDq9^:&-o
+nlm/BI<>(i4Pott[lgh(9a5L"Q`cTRQcfb$P(-^bc[A=[^FIP^P*MZ*'d&dV&'.]<*d[bR_2$
+o.nA%-^QQFrVa+_4A?-mZAIbe)oe(%dVft)ON7D$"#5I^=@*F$7bIIjEo(*-c:FPPrs,:>Ah1
+9Q)p0m,R=XIVbG1Q!ehHk'd1=iPYGb%%ij$V?\5rP*97'&!17O$bF/k\p$<YIsk-Cq<D#h'JP
+.Q]3rI`p73r(%U'iZJf9GYZNf2;`:-ts8'C0s-0U'PkFJe>'KVsMan4=pTFKC&+BD16[Bi!Hd
+B!M\pqJfldkm&*W'sVU9;1H?L(%$>J;tmq.m;QSMm8-jCsSqSD8)Eq"b/(lZV0sFrFZ3.(X6B
+jZKj4Ef/%Jql/^%'r/tCr/e!"P.qGtn*BQ&lZ1l0\SIDaYt8ii.+`C%.lPOG?BZJD-;.[/Df1
+ZC2ot/@aJ]"`NW519%hAQY97o_t2t675q@C(3%XkSUmE9ecqEt".[s%._?0=CQG1?K#IJ<3<c
+M^eeS?Ffr5&J]k:GtrE@,p=C)TEk$5Bce4Xf'_#Cc/NP,CqQ4ZK6;#5t7-Ognr=RH29HqLC">
+[QdssZnkd<74DoE8>94mBr%4!(Y*D*#aDD$"j(c,JQ!F<?r90bniU_*hF7RjoA^N=)l+bE^=3
+(W<Q?W@GkjV(Hhtb('4-oR^Hro2k^[5<G;pTpEFRR]8<VN964hfOQlhTphcY_M.9.enjg-"Ej
+7CC/n9g5k&iZSckp9#LDF5=o/F?-DcEd@2:5;g:1p'rmHY`M-]!XTk_C/"'d7TmDjqU`oJ6$[
+:K4L.HU]NUW(P!Ak3DLG8tGZLtR.6m'\+$LuDr[-ek-=?#&diXj=r[Nmjo%q.&U!&2IEVJD-^
+E5H!QMpu)m+_Q,^%:!*p:@VXc\oEtrHIG-kB6-=:A[e![*JYEbKLWhV]WB]gA@<c*SNJ]@Db"
+8f8ndnDWCr3S5hFg)*iT5Z;p`_WRk_K#'joZqU\?sJ64JG_uGf_4Y-:)?1)r83Zj]K?MVPbEp
+85I^&-phAb,M@jGZ0sl1abr>NM5I3U?r1n=$$QXr,s_npu4=eA(asI=!U2h>R8C?,,70b;ijL
+cKO'Re;io\eNW:4XkOlJ;Z$IU.IUS"l&_bKq_sPiX's54oqQ-KNS&t<B,+\V&0nc&Q+FVBo=$
+BVP@mt?dkAlD4XY_b.JGtOG<[^p>:qit,hMrsI_JL)Gdgr)-/Z:.cFHA=]0SW+Xo.>sEqE/hD
+6:,4pP/BF10F;,JN^a#5O[od]:RP7pPb\(TBkA(PcjCLka_=NNYrpRTDni@Bh,U*3NRMSgD4X
+Q5h!5+)n26i0R?duel1m(N1nEt7@+%nLb;o./oQu^K<f6O4S+.eeM#+<QCc.YhFH[g4`]jD\a
+b12Wo(uqDjBek8m8B[F+5fLrir!aIJLeoH!dltr`,Bd"kf_dB^Vc&G<T_KViUT@psHhC5L_dlR
+%B]Th:it#2>r?VC%(DUH>rcBKrpR4CY<m7k4/$YNLSZZG';o5)%BeGWZO78DQBnsr8NTKNs*=
+mb5c!>Q`ViFIea^][JJ-d?[hS7o'#-)i,VusJD@\/IWMFBn2pHbYN<'*jhc1$^J2FgTmZCFjl
+HH)O*k)jC6H&u+F>(YgE/:0qd"i\NYn./B`F$8oM'g>DsbE5C&<*MS_l;MYKf^dG"eFX^?s_,
+nT.mRD;W"NN(%6S2iXEW3,2@/f&Q$cN3:oM"C9;&\suhN^Hi[8$1[/ePTP-lq9:P,-83+b0>8
+hb=3?_&as2tg!tRrs4js!.\bTjJY![Zp/o?rts"':NSL7c)927QK:ABM?k6L+)_dq^-R6*p9:
+E?I+1,s-n^spL);^_64RFjTHgRa68]!n6W2.:mqpi.>7[V6gB[WS&o/RugXNuGE>e>T7H[r*0
+GZ=1\-qQ73+X/Vf9=[e\KWbq>LZQNmQW=AJjW1hD6.s6.)bOX)>d_A[\4=SjVo#QH(J%'NDam
+X/1hcqhd?QiML=FPXKr89ZbEfMu+6-_Sa52Rb9]LS!/RiFFahEG`=D)2D-RPAcsG5_;6n(W%i
+n(uN>p70REqrFnc-[!_*fJ.$np?fo0c5P:iA"2Up@i%i\dkl&dj7lI\@n,%1)GrG&/%V6N20:
+jVgA%n:gp,l6Y`ohCGa_9mmk/O+9a94lbH']XBB6V$Ui3gAX[e]7.hCG^J,69hh^Dc3a_dBf9
+c(uq/b4g@jelIO90OR:IR:d?IQ@-.q=8uTg298P]*s.7m_F[#qEM5`ha_kRrQj.[a3<iJNu;6
+lRGN3WD9!eugZtcEmQ[[^hhfUi:O)Jh*d8IU3-.d2PYq,68&"d&b]Gk?k]1"WjnuCIZ@fDfhX
+m8<?Rr=]P1@n$$W"sP]s?W@H"*1DGK[n5aTFKDI90'c]6%=&\,VM2SgV96>HTtdXuKQ:qiJ0+
+,o7UJ/UJ"VX)@DGHOQE#YQ(\0qn=bnpXGa\5.tJ#M*#g-FEZhe1HRe)?2Jta>7[@[ElaL-"",
+_TG='ckEK*&@D:i`JrT(*H`f-kPMCrNT?-Xt3S3IcpFtgAJYJ2D'f#k$HakD2HdjM1Iq<,ZDs
+!LrpO$%iG4E69]f?*S6je5?/Ja^d1kKCR%b2$]$=-MG=0tHro\`kfYIc8XR$O5A[+8GB?rBK)
+Ln%uZmQ9BQ.\QefXmFq60SNBX)WT061gJ=3eg,Pkhf]gZLRBl%IPFE=]B\[B._jiIS1IfoSVo
+tJsQh-(ekE#;e/ltfQ.Hd'N=2c+a*ni"]?]beuA[#OmXcPE$am)CW`V\bhh=B@ijk8P4hf"US
+Ijn/u-BDLXs0l*r2p5RSPb-@bcR6f+4tK?fPe5d,FN;4M\(2)flG3C7%d7]#hg=$?4Vu^ms3D
+`lhqG4(laq8/3N)h_*Et`gX6&@tRZFRVo\QQAn!MaP^k@GJa4>/n\o,AU\sucBfm!,^LF(_!U
+@MSQ+n!j<XipR#/mjgDS&TK=0+WEr<oq@4?*4Ofr5BDSDuQKOf/A-+j8-gXe`E:8k],:F?hF-
+aD)1Tr=adERqO,!@WP!2Dr8W0MmVC8N-$f1u=nrC"q_@ZkO[HfP%0#q(JborA^ZY!4[ia+HbC
+MesqfcDXDqC'ElF_A&NgAMTS*.5O\Pp[cgGb`aF4!LT2]XcPn^*+%qi%SJ4/Qm.?-Y"4>e0^V
+&TF;>QpZZkNAq.rF?+h%]e3BpQnDHoD#".pU"/`1oCD`Mg%75Ve12I[P`>FZCNmmTgL\:Inuq
+@jrQf'RAb,-*1:UEj^EMpW,3r!h=&,'ha2pTad.?]Hr;2TYee.ik+4bYn4*pr$i1AgXm(V_7Y
+,g`0[dW&B_`ccSB3sm_kI-no;tFX7004)BdkOc?h`\MYs7,coO0+m<QSXOP=0B8UQ^oM4Q.L"
+=7(D*Lnu(d;?>%a$^G'>Eg%GY1?@S>Pqe(2/Zo_!Jg[!&#N]jH6JO,X'6N6pPO$fDOkj`fkgE
+u1@,S+dUq_lT&)s-eFjQ6nlr<BfAK3\+'\Tke=?8(2\<R-%n:*#Qp%a'RY%DD5l_5%#jE9&hR
+n+p8G@EX!.q/aluh;&J-kZVpukPT*Wp24g+ZaFr4"YFebRs-o+dHo1:brD\Bg9D*NO/sG<TPj
+,a[3MT.XPs&C1Pma=<o5n[?F=o^E1Q4*M=Z1%Iin0KU0`d6SM%N\6#j_!OXR-Odcdtg`,rO>[
+WM=f=hRCugUR';*rdP0f?48KZ>?)eq23t9<dq_O3X4YXX6%c0Em]g9h&#-fs,\ls0;nHcn^#@
+_.u0/O)gmu0E;7?LLYUe]p?pf64*h\!g:dN/?1Y8bh!;8+4YLO,D/nkokI'Yu<q?g!0:I/ae+
+A\X:-#moi]HJHm8GrUDXGM:F?-,[Z>K8%GM2OK7&YlBrVEhONth1ZU!)!3<8gq#n&MT$@XCYm
+jf4EOI*puTZ=9@ep9He9+Fd]D94*cF4>42;b7,u`QRh.&VrX#Ua^Ro3Hf_>!jKs^'`!>A@J!Q
+jq%39K8i5'm[W5#HaiNN+o>h?UF07*?jBm8AZ?$fi/\_D<hG54W)S?lCC4M>>"Vjh<?^SpjY9
+iI+%o@oTZ/?%H<?JXi4CI_-mb8Ea8SZD4EA(q[0c9YAnO0(4N3[`XaMrCJbA_3i]SJMuA6Y\0
+e/itRWQ`EIPrC)e5V>h:p>9h]KH2+$&Vgc2>)7cM<DL"ROHVCU/Q+"HMpNtu5pWL+jAC3R2fg
+!XZGD@/bRiL9FFO72q(L/b8^b>QIs.jS*97-!=f<aZ"mWm^Tg@a7HS^6ZTkmQl?1ptUmWFa(>
+R\tXSdF9D1-GQm,gB/D7mp/.i:>Mid[3N]?jc#qWcIH!<=`GtLS*6A1CN`inFb62<4"%$A9UF
+4@H2mh`Bqj5&)%#amp3RdVbP!T8HpN(NQ&#>kbFXg-+-YG#Odg[XRQjAj\,>_j\_mrXml,:\Y
+N>B-b/m`,LOL`AD3Ohb%ILiRYjORTH_/hRmq[?`S_^p$)*L'Rf"KN]>s"S33W%hW1I'YYj4Mr
+:UKaT:d6-O;72$IqD*,LPh!PV]GHN#NUMfD>[3N]<jc#qW^-e%Hlc["J<kn:No@Sb+.D+r8@(
+KSXo'\5XI!P<"4[(7,/#;>7\TbU>oiLtVrGppr\`ur#r-#XGAm'M6I,c\:o4QMD,<>aMo)AZT
+,FW3DY7/\Qio$u;%d`c>rgc:(\'p2I4++,Bqi>jFqI%q!pNLM!<6+WT[nf)mFiqNPP7DE#3.K
+>/4e'I[ei7inL+tLM7nos%\S^_7UIUb0-I>8LI>>]48SQogeZVA&YMd((fB^Ud5?5H>D7OfBq
+-<Qr`uD-r[_15'`p`lY8<]nJ]J%l,(L=0NWViL2Q-[R9/*,*ujM=?^qp3]u<,VMa>^reZEJ+2
+aC:Wg]nsplF3D8E@hia2;,)rMDHVT`V5:X8e4Z*&?_-)O%b^=d;G4g:4(\ZGJh_T+upXFW&VX
+2trC%mXE]<uRhF6eLM>/nm+*]J/ff^5-I9Pkb4WF=;bocprF)_npIWtBG6UZc`)nTeL;A'nlV
+[5P&.X&lE,rJuH0?Emu4'2K$!qWO@QHe-uaCs?70^&5Ls?gbR<mBmsMIrXT(+(+`a%t=;rIkP
+-[r2k*SS[7_lB+1C0l+rF/imicn?9R:2Y9'q;(H_)/jkP,_m]sl5]C'[hDL;;%hO_L;IEu9gZ
+.INEr)^B%20F7Q]@XdKmPFmsIHPh@49)nfqd6hi!S?di_"@pPE5M\aDHO.$L4p"R=EmZM7fm,
+Gjh.>2q.&sjfFDM:q2L(G1M4k<C"$\=R^Lmf]BurN55"UALE(?U;+DZ"^A#>0_]SmIa$9Rn:O
+VM,TDe+hcT'sD1XA2TlX0\gH0:aMdaE0P"W(EaaX*9[HKjOX?[fs/='Tgk2:l2brQR:Yr0uUA
+k)MOk\F\!-]=Y\A/R.q8^\m2eLE9X5I/.954ndB(:T[a(U;+JCq<+AW[;+6\2/CdF>IT([qG!
+G;%1NbHHR'.,?-Xt3S3IcpG+d$#3Ig75?I@m4Z08Iq?)Gg@6^RD%0'A9aQQ>9F?-XP'S6+qsO
+HG-8QeSmpjn-r36p[12W\ikZT:4]dJ)J:m9a*>b/B4X^80A>P$m8#])2O)$",IOp"sTeb!+J?
+_JV`MFJ/H[F+JN=g=oZ1:k,A!@0n@X!7[J[>$JXYRDecBuUIL:FKE>E`,-!)2QX@rBX5]'+%D`
+%]$XEr\U<D]*bf^=q#VU9;Lkm[QcS@.($m<40AKW2.Cd-%TX>#1o6C37Z%-b(L@]4K3k>*s:_
+3pRp[r<D=c[IC8S"u,\kF/F&4iC,22f\5jfB@L^Qg4Vu0rc!p:(^b9,0ENEe[LFgAQs#(jsK=
+L>B+af/Rk&6'\7C,',jl//uOLX!tf+@bI38(J!U-'3^p`Pq<i:bR.q/alaSt<TGTr=JasgH\s
+rkE)2Q@q/mEcP^TKfOTBKOOE6i$pZ]YkM@$c;^c#p,;fCU*!([3\5UW`I6='&Jj7E@^B]'T@0
+D:pb@@g.5u<\jtP(IUJ<Y+M9tHAM3#druft`Al6+U7oaj<jtN*(F82-EhFBheRbp5l<)MH,`4
+5;<@PtRs$oE"l*>VDWn?Di$_j7.c0)?a%\W9<>R+([%Wo6pk]/;@6gVI9fO_P8qBpoub>XKTl
+bC08Sr\0t(#qQGMhWkI:M#-k/gEiRla#XBG%/^o^<=^[qn=`@5?0W;n!Cr*+58enc;F6Q^_c[
+T>a80ok]2REEmE=sX8XJU@8rRl_oGcBK\k\s+M?(_4E4t7B*oiWbN?-?bt9Nk]Z:0\27f:sY/
+/Y\LsY@kq5h*4UAi@J"qXYYja?PiD:%MQJM*G<1+t-d+M?(_*)K$]glE!P>rJ<d?<.n.GbN;`
+Vp9(BT0cJ=]3Oa"#f*CdZPYrPUW](f)qO4SJ?Qh5GrTT>4_>*F[*[q$dRe1Yf7?7C]*of*F?-
+*Q@iFgdi/0,hL_3q<,5mHIED>*4AH4HZbP=VE;a?ZM`/$&/)dQ2>?-]K/jAaJb]VQUL2S,DoF
+?'MH3Nq-ps!\V%-H(8SCZmP56^L_J6^MkoeE(HFE>%8AD>lohi?5a1>O$]P:7(R3/uO4Pk7q:
+J+,_a5d,gM>jV6)']V<UFA'nim\stOeS-$9l=*-HPXLEA`Ef*ROa)i3hU<=u6GaH*E=aqiO*Y
+r#<b`fuFft-PHp7]oV70rP/mPTL4aE!e(%t!YDjTcN+7_Ir*$L"d:XTPsdoUmLY(ia`0nd&V%
+B3Yo=RQk7ll#jPB`H3!fU<>!YbJ%8*4f^/1EBPl:S-V2hke(07$eK`,cTaga'kc!l$]9"67@1
+]"l^XI(Rak0-&M1ECQ\QT.<ojF9/gF\E3<aNXFV)3#lb).:d<QD/]6=-cM"s.$-tnq^3?EWb6
+X;4AfmUipI'3iLUW^(Wdq-IU/uO4P>7nG_q&L6FG?K!];j>n#25=ltM=9cRR_Jq5-h&s>5$/l
+pa0(qAHUuLp`/?7GJ1ao0n2_f&4`@Ec9AcY9]t3R<7F[7V3p+.2*VO`p3F%oaC8.*_YiF58ED
+9Pa?$989/gF\E3<aN8nq-^0A(Q9hlZm<iqrD$qOdq#Hg%Tc.orL!^Y;t!S[`)d&s8?tPU=[R+
+8aS_`&%l>^$q*@IeX'3]IG+2TEp3<<hIZZ;Q`D,oK368K]-`mt".;NCFY5bJ0eQ7!5EBZ,O/h
+Z:\5cC@f6^S;]-u!8Q`%n$4LT+8Q$%7Vds&5(A19b3bOlH9Q\!@0GaD.boqHL5-@am=YmY/'M
+_9@[2-i[hct.9C4gQ.=?-XOMcc:4%bK(d:C^?T0[0*,Gq.%f`#J,llU!%^mEgIAu7@,%Y1@g2
+Qk7q:J+,_a5ct28K?-]MC&'.:-\]\jDkVA5OF?-Ns@ugJd#ql/]?G+lhTZbCu\dT]NF;]mj/d
+$nA>m;LIb5c!>Q[stV14U4hAKW2.S6,RUf1!-$Gb8*\%m7E36p[12Wbq>La<5+fW=AJjW1hC"
+VUWuSS18[W7HB9DkDD7GA`OA-c7?Jr58IOJTZbCu\suiD3I`Tklp-o"5BJohk]6Z)Dsd+7`@#
+9PP]KNbJ]u5UQb?EiIl5.2ns/[l8U6RO3P0Z^L!#6L8eLLR&b!*2/B@Rlf5=T;m*TAeF7S-uk
+8FNHAV^Alh5#qK$<rj6.4kL_/n^!:fB(-jdq'YC$Jo@G'AN'lf3M^20!#mWk7(]M47Cm=$.[d
+'h<"4Gb0t",ZYA14asjbLHehqH/*O=p?=.mD=d9L+\dW+E^:WaCJmPj-?>uJ!4'Z+,%k-khpO
+;cO]5l,$T?"A\l<R2USL&ElVX%$#DGHP9Yr'%.$Sbok15@L:/o+M6GI[9@NHHRoh619*]\`CZ
+oD5b2D55na7F%7;Z97!)>rfmtOJ'c^k2a8"Q?S@+T;88"&D-*MFbVF+mf6["el`4Mqm!i_l$R
+*tpEi1ErZYVXbOXu)Zbgf%aIIj+=`ZjFS]pre0`(UN6I>ITkpJIM`#%ZY=I/^=0:+#3]po\Pm
+\Ggp!tc9Ab>tPmL3n>/>aKk7fE3]mH-DK?Ek!o@?=+2e;Kg_N_/pR9S0E11MYqp>hrgD5VsE6
+,qGuluVuQM7Y4'DSICloY<aP78G(&7*n&LI0;L[Jhl_BRp".>A5/f,M"pQ[rY?1qT?\r>F;bB
+ZOCo>fk^YoW$`nqSj\'j]*,M_7*<A`OA-c7?Jr58IOJTZbCu\suiD3I`Tklp-o"5BJohdQ\j!
+"m%AGBqrj:[a=-K.ZHIZV^AqG+*d<^;h6PGJ*8Y<(sun;,.\1*7W]N(Lb8dc&R>SbU<<OG7$i
+I\k]1"o^L%f1'&n=K.6m=c1(XUpcE"CuIisB6.A\rL,GBiE".<%SQZK1Vj_Ffi&)q-i\KVN*)
+>QXdo850`O%#BUkVD^a0'<sTc6%rs44%R"%pdI2\su"9>J"-#`MT/8\dW*Z>n0@f<f3N\^6p@
+*-$4=`q=^N17/\aJcGAh8+hH_1*iD8EbP/1aQK*@<fOMB?5H*d$O?%DCSBtOOFIagr?$8+eBG
+:Nm+`s&Vs%/PM/A3Z;[[8ZLR7!=YYoO9iVnG.3$JUUU2g:ill^VXh]53u)gK`VC/'`+IId285
+[OsYfdqs/,s"am2\(?t%*ICiK"+r3.R7!=YWB;(YNst-AlHI*?:S!n(-C/m>O)6u.43pK(6`-
+fOCQ;]`Ah0bI]sqD+GKu)<At>dGAQsuT16=M<3?6pKq@9D%q6J:6-a38mq4?6M(*WB(Hd0_-o
+jt]sm+@RQVq<%'F;`.>\f=Ic?1utr[[I"VQ*#L"[TC5DhW5;mTmsg[BDH]'=^elMA.DlT8*?*
+pd.>nm[gMu#FX><,I9#TYCu8C[hhD(.AtA&^pWKCi?8#re\SKQ'+<nB:Noj9bMBUO:ZKCJr:4
+^"Coi&iJ.".o7iE45T]-`mt".;NC_hn@*Yj6D_-b#Ym=$*%meplSDlV"]J?1s^Sj`K*7W.1gm
+^\W#S9XE`Hq(/h9TD.IDLn`'Xk0R\7GeN;\!h]4P58IPu?>I-2gn;jQn9S\.*4hY)(8$ZT5aR
+TtFP.3d:MU2%Qh/7lb78V3q*UM?MD"(Q7@,%Y1@g2Qk7q:J+,_a5ct28K?-]MC&'.:-\]\jDk
+VA5OF?-Ns@ugJd#ql/]?G+lhTZbCu\dT]NF;]mj/d$nA>m;LIb5c!>Q[stV14U4hAKW2.S6,R
+Uf1!-$Gb8*\%m7E36p[12Wbq>La<5+fW=AJjW1hC"VUWuSS8.)*7<6H.F%%)41@g2Qk7q:J+,
+_a5ct28K?-Xt3S3IcpG+d%"+1dtDF?+iP[s#<&MG6+OF;`.>\uZa:8o`*SkGPT?S[6MJpC7@t
+kkqF>L:/27c:Tg@obG^6*#AK'.gEh1S1bD"lrN5'&7#JqLG%nON"sfJYM&#>fXgEq=b!/XFM*
+(`2';"'`U<mH&u`u7F""<c\m3ot\dW*Z?.Kl2b:ui=PA%-KXs<;'=F"KNI8sT\Z2BLBZ$g\mY
+(LL`eNF8kA_WBXSqC*N=`IZt7FHIU5]Ks*P_*?ae9BkVYOVk?mIfRLa.?<,^nAk9k0R\1Og1-
+B<F:RQ;m37$Y?Bl=AZrK*PUMA@]AB)oP.\ZsFTqFV7==eOoMZ+"bNsNuFI-hfVTV6ect12;<,
+s!*`A&O`0"]tuNTU&BAcrjr)0S(J<O=r!QPHpYl!;YYN4mCqbN\[ubN&QRPuDK0$+^OU%UBQ*
+15]E(kM)LZ7ur[K5W.;oR8MR]L?Pqpmgia><-V]nW%L.^9UC=SU!#JA@qkE26-F&?e`Gk`V"G
+1qmsGc8ZLe+TB';<-MY0]TbLVt94!+uT)9<f/X>;V4ge"W\OS(6l"=pVg?Cg0dI9Eg!6!$'UQ
+RbkLot0RZ@(HbW%UIX')9_'>Ctf\0Vl63u\(hn(^+\AGQW3;>Qb@:2Su<;pf;Fs`=![#&b7iF
+r<=b4/P_-(#YXbcHjl_'&m_<i]a;hd]=+&k+r`F9qH`cNfEe?"-'j]*,MpKFeTZbCu\suiD3I
+`Tklp-o"5BJohk]6Z)FP23t,Ceot?I@m4Z08Iq>t4h?jh+4cJ;b2,]A09C/d'cnQh.46k/a0`
+i6m,5`Ht;_\r?Q\b5c!>Q[stV14U4hAKW2.$m8#])2O)$",IOp"sTeb!+J?_JV`MFJ/H[F+<n
+B*+@^GjLkmYcL_3ns,,36\@RQQ6M!-UE(sun;,.\1*7W]N(Lb8dc&R>SbU<<OG7$iI\kV@Z*d
+:FFE\dT]NF;]mj/d$nA>m;KFXig\OJh@.&UsnF6!(@O^E"VLD7[K5Vl#[dCD!3Y4MCo"0$G$Y
+UU<<P:Jh@/.kV@[gTZ_j9\dY5]kVD(R/d&$Z\dZ*Cb5ePo/d&9?14ZBtbCD+S%%o*61>o09?*
+8IRd#6.T$"O`U#$b05bDLe(>CHPi6C.^S#'S\m,hb/QFLgt2l8_gM5IIa"TKnhE=/L,nFa:i0
+YYA[."cPd7!E\N8cXZ2H?EZ#_]<(diB%b@ohcPhPIiBGj:OJcK&4L>>[XA1Hf6o(d*V<=bG@I
+tp$4k4[.#3^GkVD]Vbq=A!YQ")\Gof&eeHFfao49&=9QW:\f9]uP9`SM`1(]R^?+,?t+1lR)c
+MOm,>"o!'kV<]H[CQbhQfp19&R>SP,J":O7$dqmLb8cAd:E;4U<>eiF;[?&kV<\]>m:ib\dUt
+pQN>$\/cu^5AH4HZb<SI;)*j/E1(Y%'"qW#j$q*LM!Q9dH!tipl!&:4k5X]]35`Fn^&.r1P&0
+nap6q!B*1Q;*JeBJ?3$q*LMP>f7s:/49>\kA>?M1*&G*t#Rf6q!B*;nuC.a;^24L_!88c.-ln
+lVP?,$iL5:YqDoIb<SI;3B77Jjb0Gbje,[r<@[PYF&8dfQBdo`Cfdi8oX^nCkV<\]>u",q=#h
+GGFkO0BPnP[OWP8l'.$nhM8@.X[?!F)<VE*iq&.r2C:'"EV+c1AF;+$l^:6e[/?eHsS^'RiDM
+h*UWb<SI;3B77Jjb+n-^?d^3`%g-ejmjBrdnH)QhAolkrm9cf'QB<N;Y;YH6(Z+<g2-$%V<'.
+E>V8`M//VY&LFsg$k]1\N\B5+4U!$b@>ZIY(&S:nenXX>'\dUtpQ]k@`<DH*8],]hg?V[pOb.
+^MXH+tF_kjkO(/cu^5jl@+pPnOeDb>q'iHlM8AY-=Q\bKq$T*kt\%AKW2.S=BY`E^F7"E`Ef*
+aqe7e,,<?'.Gu[',eI>7+M%tL7$j*9^f=,8?-X"m$q*LMP7u+oa8(m3TUVj&X$k@s%&(j07!(
+FL&Q_!J7lj/Q8a'A)MCrNI>m;LIbK5UHb._5-jSN3eXrm-!H5!Ko[U$`FH\1iW^-"j_QTd^_j
+U@j+5X]]S3=0h2s18^3^])#krfrUG1tq]MMf_ulN@niL>m;LIbK3>dbDM/QTCJko\SoMG-O*#
++1P@@_&^f_$,hHVjqn[AL?kkV?]kcN>CG%umGHY.k3E,,s&.r2C:($1-XqQGZkB]i5n\hq`@V
+BjD6g-9:&RA.,6LVrQiH]6G?\TB.$q*LMPEXeZ071CCg3-W^rRe8sl?g?*6eAf).@)k?\sspc
+)2O)$-`;Kq>SccoOtLAQ>m;LIbK23e.`_EgW^N10KJ!?=dH0F'E0[1_AaP@-B*_cI,,39&.Gu
+['KJ$mC>m;LIbK23k.OQLR>qY&FJ1^p9dH0F'E0V*"d4PrJ;=+NY'jV"fU<CY-i$p*"Md7qOf
+f./^J&7N!im;6Z,.a;7!j6Q11=p)AM\Tr,s5CNShh)l./cu^5jl@+pPnT=_0"Y0:/'[@?8BkU
+ckV<\]>u",q=#hEAlE]F!f_%aV3TAk+EJOTP\t#8lY&Ziae7EFeIakf/jmmc#!aUh2G?Gn05`
+IBDVgth<ODK'mH>Ara;7<jHE$RfO:R?Wgk]1\N\B5-">aMRM2#Ao<i[[I'(`g0r6q!B*;d/9@
+`$(%/h,9]J\E$Mod:FF=\t#9/`2_PG1ZW&=g5D%N\dUu+6^IhlLFrZ@d:E;4U<>eiF;[?&kV<
+\]>m:ib\dUtpQN>$\/cu^5AH4HZb<SI;)*j/E1(Y%'"qW#j$q*LM!Q9dH!tipl!&:4k5X]]S3
+S"+"kqK,#Af4Y:9kVW2DPPB?1it`<D4A;H+@?LGNFKig/rp*?#,8&ibD@YgW/!1Gieo7\@<7d
+U6$(=n)/r$2PJ_s_:tXRbER:43>m=Q]jlCBR/eg3fGoS[(9U>c]F?)?$W!e=(>oj6q3R_QT'j
+^MO%@o#9-q;+"T_:Eg45Z6sF/qtSW"%ha5,a;/FDc!"Xf;)pqBhW_giOEiLb=%6L?:Ad]<$M'
+FZic<pHWT$(_>cSc0_o)]mcuq8QI`.>m;LIb?grPRpLA4V0T'Uk^;(L$Di7#jb,V&STC9d0)M
+5=e)g-[B[3"u"0Ujnf4_ZhF<1Q!LBY8*520-0g=@E*2dMI6RQ=Z7/gE==ZI`d":=M9f=0?\m0
+"XS5Kqiaa#ATH:G1l3XQ0<76*&QhPQN:00fkWDo-T[m*:8,jF*i0N5:n*Cra,VbS&^b0ndEnD
+NBU@7fda$!dg15:cG'"UXLb=%6L?lcGc^2QJaSZ.Ja[3bVlpR2`j.JDF\dZ*CbI5f;I@%@nHZ
+ZBIK6Fd!I;'a[l#K*W^E6ZmF$$#XE.'o<I?VllDRp6E7$j+T#=.C'k'k///rtYISEVfeMCp93
+"*HfSjZr#b&.r2C%L;9HTZ_o5AKW2.S/`$gKu2t)O+ZSbkq_1S/glDVFeQ%MbN#6UB=\M]U<C
+Y-*N6$P'EJne)o[WX>oj6^$q*CJP>bZNCoR,qAJgoKEZF)PV?1$mrm53V0quiV7!';3N9E#.&
+R>SP,J":O7$dqmW/=jbEl7\YO+!?GAs_7-W7kaI@Fa4VVJP\/.WlWM-+Y)"[`s:]P9C+b7PS@
+nQcFY0"*'1s#cGkS[BAJ@-45CM>oj6q3R_QT(L<%;#O4WaF-jp5F3\kFn3r](`IYTsf\GS.d$
+umt#(4h[G]BB/'K1/\*&QhPQN:I4l*B[c0Ua6EqGY@-S-S?%\(ir'J*MEV:)4Aie_R+f9c;tg
+h6kF`Xld#odtt\*Q[p\9<0otRGf24]>upk[c1<S=qd%e./ljH-pAH#UF`XJM$WtiHRk=dtU<B
+udkL)S35HR$g;kKU0T%I!aHg,R0gXNd%S:<9S[5D53!+#_t0.VKCUWZNC4-27?g%BsKAZlK,C
+[HG@p3gi-p<Rj+Trac-g%BIpp#^=5EN``tF>gUS>Ost#]\=IJR6l%!rVCQEM9`MhGeT^1iS)G
+'Qdsj?$J"6oS"'$2=K\X[mRaJ`@#.-l=ac\jB21eVbDN@Rd,jgXB[3"u"29ZGALmOQg'VtqNq
+g=A\f>^Z>')cic(0<MJUC+(Qcs?6.u0sU/fW#YS,.$dTNAInbN3`jS?lpb"X'.Pdq-_kXZk$L
+4-/#TJ%o7Kp+A#k9eppc:2QJHrJ'R,=LlsuRkf)YFh6qO\VKE)J66BZbCP=q)M&EL.MOdbGoS
+[(SE[omO;5=jZKk(\Lsb-G>o[\Kni1=.3HKrZ+H(9hA]sNu6Sq;c"*JUf\]a$+3Thq7(4aWN;
+jUu3%1^n,_<*A2KBA\^Gut&E7[It-c%3Gcf\GS.d%#/3%gtYFkd#'-U]9R]RL6Qa@`7C]NrrY
+lbX%SdCRm'-*jZ8bF'"Ah][m8t)I3OSN\1E'U!#^;d:L*AF;ZJd\dTF0/cu8IQN<l.A_UC$::
+8+n_lCE79\J3<F;Zc()dRpY>,VC[?r7VW)o[WX>oj6^%%)Z"gX`rj&"4mT2KsEd2!8,f_ZGoT
+\nkSd%b/J6jt;^Ik+%?T=9)5gQYgN_J\!hnguWP&S9$Cq$UDkuZ>H^(:_sA+]0$RlF"ZT`!D$
+@d0&,6:;E8$&(Tp!qRclg45XOATEZD$Kn%*ME:"Qq4;$ZAO@pZl9PX,e'f=m.WK!WY7)p\8SF
+LH<sS(h]u2!7Q!JJ87SZJqK_!d-NAr,q/'58ps_.uogr#NR_f^T<g6X?V$9G<,MS95&B^p/h:
+A@`[^*)@+MIdq'X*Z#nZBmTfUdmAH646scc^M?C9<8\/c16#Yjil_$c%*-^'oHHnb0dGHbmml
+LElXoJ#aC7@DQc0[@uRWG@L5RQN<ZLb<b]^.[0c1rmX68;@#$K\[unTZ,0lY*8B*]qcEFBf(9
+TOT$Ve%!uXjN['2=h:-M1&r_\p\!We'D:PW454`K>Ii=R#@sC#E@)1FiPmuP^.mJ>^;!_!GX&
+s6M9YEF%[qI9b<QD$T._SAA_2Ed5#=<OqfFia0orBYD!mNH\(<TQcC$9e.7iZJlp)6WkO1Jek
+Zp1"\nFlUk,HN92n*8&l>4pCCi6Frd$umt##^Q.lcY0T"Id*N`#,-!Urte<3p>,Hgf<.b?K7\
+=B=\MI+LUrR4)a+@ApV/K=SX2\_V";.pK#QCd.r=F)S\4=Vt4Y5>R0Pe@pU3ek7bpo#DQ<Hg"
+\#pDHCot0M6AXpSC&R0bYW/<@D\Oni1=.R4\RjLptRmdhD=mTIpp:GBk/bk=h4n'Z>I7m/")"
+<cF]a'K1/\*&QhPQ[ok?]bRu`k!32lD!pjRB[4/ULBSf3FP4+R*2ndJc!;@qbrHU3YQ1JX0&+
+r<>L1)$E#ZcPc!;@q\dXsY/j%ZG>H0hu)91gA*/AdB#p;(9$ks[e#)km8JV'Z?J5PMc:iLLo0
+FD(i$B?_@7\S!j_9li0.!-=T34]M8Ke<H28!a7Oct/m.kV?N[\dT8m>m?6SQYic$GtpAaXj=R
+0+M%suKeD*oF0-*EQOQHO!Me"QRprOCE\dCF&-YIg!Me"QRprOCEp0h)kV?N[\nk<h[8%3;2B
+Q3/N'`kJMRh<[U!)SnbCEIRZ;!(*3]V<8Hup5[$=1+1>3hWdd\!64Q-7e';on1.q<0SAPSh$6
+PH>COB_>)/Djd?CiDq5t<R)AkCd,E=(aZ=;LX&rI3=#Cp#U-eGr,&6Og%L=rjo9I@(%6H;+-p
+jf*^Z4<8!a7O`6r5K"0_)celF*?02/P#;>`66S@o'mZL_CmX.YjD3\(;"k5/PZbLo=N!McI>A
+T`;UYGp3\&9Fugo^ueg;Yf1?mj]/@rErI?QS+bg/d"R7m<gp[M2Ip[R'S<fo4?P<JQB]lH+Js
+7TZ_j_Wn:lOQkVLRD-83sS?qC`l#NZKA\]]@S1hM"-hc`.eOs+9QNI[i$!kh5\dTE%L%f)tof
+T[N?+.E'Ale_+f-.HuaS")&6^3>%bo9s60"MH.-&'*@<X29qi6GuMXbrE)Wu'dO=_/Rr>h*M,
+]cgZ>+'f)0_WQ@#'Q^C?6^Q%fQN<l.AXd/3F`Q]Oq<0SA'Y8*ZbdC1U>rEd1#)km8D2PmTae?
+o?UW\0bkd!o;f/bp6fmIlZ0FD*o.HXe]LG#'W/d"S:b;R=Elf?E(o?h-b.!4.^pB*5`'O<V%)
+dNYAdRKS\9'6:5&6-'H.TGUe?kg0\'HCB_N'`k^JtpM>;<Tc3E-)sO$=*iCN\1E'U!#^;"mRj
+n'R4a<5XB(,Go/eMfE$PTX7f[Xzzzz'McS"-n4&2ml(7I+<k#`6aW*u!rrlK79*VhU7DsgkKB
+\0?FR=53<0'9>bAi5Qe1fRZ#,6\T)o!hA;ZH9oK!BRU+WY/C?<WW/3pU-^(^Qt6th#ZBBbkBc
+gC@Q':8;b@\LDMnSuAFJGdjaZ>58=\uboo[Utj,!6Ce*kKB,hFLiIOok!gHkV<,\a.d\/o)AM
+thhed#=8SR-o6tKU5S6ENEr+uT!$K<;d:HWk"oo?*-G"#=4>@<G5gEo:b5_MV!F5m0^`7G6!!
+%)eAH2_S6'hTP0F(kf!#Vlmh]i_&Pa/)g!!&4r&YPRdEQr(][EV=1QN."@c5E9QlnZC7_5/SA
+T>H`6/m%od,lg2T6UO4_3Ib=@RQJVSKQ9(X!4",)>qZ/`Zm'TP+-IT@>RhR#m)iItD+AO%1e7
+"Tjc^56U0tSE&RDiR]Q[6ER^jCj!844%A_/@Wc;rYj.aN+$CE269*&OF1jg^7%#MlJl*%h6Ej
+kF@u]\9OH)tA$]m!:'\V`ETdgOA3GM0;X9ShHE_GhpsA90$8f\lj)7>QD&[h"e7t?$?3iF)kQ
+0%B/CYNQF4A[`qY?Vf\=Z"3?IT\t%'0fTf_`hXV_(-UjKaHJb(@=g6o^^))/E\t[Ai)*k&fIs
+kH?hiqJT%P$?0A,EusbP<J>\u^`@""8uP?.LQF^:Wb)^+\)[l9C?3SfqC"GI-FP\,^&@&m\O&
+bFMIrbPucYmWiW>/r+\"=a`0=9U>e@=OQ[89(RFU3;*#U>Ad52gST<l[(X$(pXIjkIVdm8je_
+n-TZ[<j-cWo.pAO<W>]r,U76Y'RilfD`3EuQiMpM:C7$i1I\L'nu?9&#\\"%Top.sS\=3=.%/
+WV:!Mpl5;.#8je\Zjsq0a%KtZCH'j.e`U!!W[6f+'mGX=gmNL!5NiJ75Muga.G#!Xt3i_!19i
+%TPTIpZLM67!!%[>QN7(?#@0eeeUFYL9="3l)1\`[bD:sEKg*)L.>cBY93SaDN$6H,2S+i\GZ
+8?kbM!n-X/IjU).NSO^lW.6>t.4E.Q#OaI;R[;@o^u3U_uLc&J:'29lsM[&Re5T+4<P9QKIJ]
+A[p_sTntDf,9dPqq*UV7`mS+?\dVY&.Q#OaI7/`321J.1h,p,HTA;+Q=gCGD"l&n`;HpA-m`T
+gLGcdNGHLqBf+&CK=Uu/A3%fi/)A[0Eb%ug'jp#]1[9u/\2MQBdk=\/-2WC=b9mcr1*nPfCA?
+Ts3$pN#0Q-!Me#@s_1QG4:H>8!OVFTPLGc?"Y$3mnnQG;XRWY#=)_0XM.\>?1r#dZP;NElC4R
+eOe?"2h]dV`R&;+P]mP%7<9,tZ8Er#^%a/1VPEc@mk=M!!<pCV.;Y^=D5:iVfA];`8%>&G*'[
+,i#pm0f\%(F#Y'6W^nQX+d;\FnEC]5rkTr<><n;kN\^4X0/DlTCIa[lkr!OX0R\g9+r&OQKl0
+]3LB%[J?Ms8@)'bCjUa0$C\G]--ECj%(^UZQ>5(LH#1H_W:/"lDI*PrYIXIHVH=U9]hN?"b[Q
+q3f?s>d*pE,9+sO1fE[F2mpX`0tEHYAbB@B6ddUA`fY,]-X\MD;RMDWqt<TS>cA`&,fLkBtLj
+bL#-7.o:0Y-mE/Gl9&SGUe.\o_Q98K.aC[p%@c(dp7.r?Y@>FCkBg7dO[^r4q'QaX)Sf!cpAg
+G3+'sm>^"d<jV"aRX3[J]G,9/e$?q^e5Ai?.Ufb5odhU'$^4P`RIDs8UL<+-U294DC2\;M`p:
+>k-r@75n/uqLm3EGs3M!KVjHpR^5$9HH9):I<`AXD:.[+Wm(9?U8j\6PKd]Q0Z3l#^)"<hYT&
+Dqr_5q6?cGl7Yqhl!B+PhtIjp\F]kDAXl+@Yib1t8Og=..3J/'ff(,?/h=)#QfEAdAl)gGCqV
+^NMC;\TL%7CD,d]LUWD'WBb*m+D1Yp5nW%LS)?hOppTVjcd/T@?_'r9%LVg\tuMMPl2eIQf6>
+UVW#Z;m$!7?fCcUY>NsV";+WI)]'4/(`T/KQ<O3#Q45+>WDjH,GT><niACgDseTFYA8Hd[H7P
+&hQP4Qjh&^%gW4_Y$eJNAa%@?a><>G6]9?hp'G#+Tj&k7[;V.%QNcU592#$RsASXr-'iE8`;O
+XY5Zo@\U@9Nf7^83T<&#Z^irlAM=1F2^#[Pk%og5D&cWZUMcH;k#q^,/Q+=W\6\idNR;U`!'`
+/gF5j4XtiOZE=tSXH/1%`;!_P82GoO,9e0DRcq%@,/TG15GX-R/Bu_CbAbFq65*YU7mn1lo7o
+0MNMX2^F;_6+<+r#LqD(!1k3iH^BnjuG6r\J3Zp@'f%ZFE;[eXU#/_(muL,;-KkVAm35nMT'>
+Q@GfQN7(?#@.N6^`7G6!!%)eAH2_S&ZEkQ!$H!E?*<m*joGH1MJAck!rr<$zzz5d@-b+oM2/s
+'NKlo)\ml\Wh.!Cj2ekGB+)l-lQ=e]Mds>L0L6I3F.%cX=11;L9=mdk?M3h7B6&P!s%9*ej7J
+2D77H0h9bJVc?j[4aS.</mSreU!!!kQq9b`o&ZhcGCJ3\JC9K.'FudJb=dqX4[+_.?$38.3c-
+P?"?*j*C48%@kI%K"KK)0EOo"AH_?$?2W;!ece"TT6gI[@aj)#MFS,/cN$N2t-jb6@r3/:sHH
+=&+V/jZp"&lZ>.\7A@s*J93'mAa?I:Q?I\WR-QV8Gs0RBS/Cn#B^/$d_M/'k'N1/Ja25XW)7W
+3;J:a^lQhB6^SJhSH#lmdeeN.'gJ)>B`$sY%X5g`R0H#*H\:e$cP!&+X`"ouFYF;Y@ag7JIX"
+Q"t9,_RcP6*VY:r7M.5(qL+Y`K'H-d=<hO$),O-;!\I0)+Y6C#(g;STZ]T@kV<\`3s&[lP!bR
+eT\'k?16<KeS-cnSYOg#+TrI3R^uI44!aR_5OsNbCY3,DrI'2)&p,Wp#>rH'c01H].8T+9BIe
+RDgGASmS"M/EB-!R=Ok4M1:3`ed3kd'0i796<hID0Op.dG/,q#8S*g?$Hp(@]L2fFd>QBhCgC
+A#$!Om(9Sc^W>:+V`YT$8!cq^CU#).^0S0)g=#k59D'@+^28n8,LC"sPbW&3hB*JHepQIMo5I
+RBhoX>5Q]:*1@BVNRS1j2%<6SD+E^?oSct.8t7_(pLk1I:NmBt7f\ni_4WNkcM_KFQ+M.j*Yd
+,f!q6C#r06TCiGig",eS-a;j=Dp=agGUQX.K*3FXk+0Z.G(+r0uN!Y8"e&f(trfjd\Z%SDd4n
+hFC(@fB*)?s=_4$:;7;X5*h+d/@7R!67]B(f,0D3<n&M<Kk+KnP/#QNu,]nIOff,\?:L\ZFnT
+k^J6*MT\A^cmmXH%=Xf*b^>hN*ZKd:Mp7d`a=O%X%srO9QWWU=p!,W9A7KE""Q13s&\G'2d$[
+\dS_\N^/q^jNqH\.!>a)$m^T\"$s1:ct+=[F;Y@A*J#gFae?mC;!\I0)+Y6C#(g;STZ]T@kV<
+\`3s&[lP!bReT\'k?16<Ke$j=P05aR&_<3+2VmaO+3;S2[*k`!1Rg8R;[?Lq+*2=D`U'UqJ'i
+h8U+hmAB+6C.fAXW\J"p#FqfE1jE:Nbrel2nZ+=6C4a"VpPrlTtb?2FU7Wg)"/[7]XC7CXYmj
+c0+cSj9%$uTZsM]l/W%_O>ri2t/,7aD-_o^lJuX%JFsut\IM8dA$]O_m)TcdWMWN5gOqa.)2"
+_ofF$A]nZAMN0RD8SN'L/^)N,7mT6+cJ'>H^cZ]SYbKfLp=]W$U//ocqh+R;F1M??+/,G:r65
+_K,".l=$d,VXGW1I6\R9$!ju&_UXDmf7UWc[e@:2p&$ZXSgcdTCqH)'*iD2D/(Vm&Od`&F5BQ
+1+)U<IUp`@7<4LEUjPMAXtAQ5!@%^PO)jQSq'?>KKSd<r#"]kogJANgd=lubUBIG]m=R09'\<
+?='$4."5+g,acj\q717+T:hh;7J66)^!$I-+?a!RG?ns2t:1(4<5gaVl7>U*^k:TWb7^l"%)>
+_mrD,+f:P+-(1ML:4OZmnR2/5@"20@uI[A6qS&2,D`Tr?CqB-)gVP'<5H=H)"V9<0QOJ`27,,
+;;fV=2k7QJQ-%GD7Q-S)I'/E\+hil^cb,kT<7BoZ!H1D-!6+qPVU^3a5mmiZO!iqJ[6mj?ntF
+?&l5)`ApciNfr^>r=,P_>T)8iduiH=qjp2+maO/6lT?KWr*rg=a!p^>k>I$%ZJtW/Lj'GEU>`
+t3=oH_<rMf+G,d^Er<Up%?^*=D8OF?TRb0bc,B.\Kaa1f_uCYXk[EgNo;^&m<L\\,*0H`)aXj
+Z,E#gErfhpaPZO^.1Mn-\<%*m^e1RpZS8oTegf))pU9k\nnp:Xma=m7nf'-fJe]V0*]u*qdnY
+pK%F\GhSf)iI4&Y$5[ep[=+.8^Gs'T)#JkP;5nDnmOm13hMIe$DmVYKCm;W=_=CFYU&[K,.NI
+=&=[o==qN*YuOa]t1mrC'\6RUZg`Q`@:REm_JBJ\pKUcC`='fo#59&"R@6!2kW764P&HL$CDu
+MScN:[:HPc5]s=V(u&UE#O!oS'KZA%#*M??JY:X-kVA5>\dS_\N^/q^jNqH\.!>a)$m^T\"$s
+1:ct+=[F;Y@A*J#gFae?mC;!\I0)+Y6Cc@dK:QDgu`o2_.*2=D`s_e]gCkNiIrfh=Ha!#tGn&
+`k@uk,JA0m]O%AiWGGuRr?CaMX,M8GV<>t!]pHh2ULq/MX*Yp:jC57(,9tmdH+%?>rGreaDX2
+Je7htPDSBKQUAefe7+[iRh9,EI]bW%afFd>QC!&kFVcfq@^>B-k\?4%NFH.qZbH+eG`I4_HC^
+-WW-7_U>gAHb)Ufjt73HlS<cK4q%ouqRH4k!1]=`g&a)ogH<7@JY:ls!f"?cs1.Uj4pt'[q7d
+e[&7,P*tO>YpuMRU.DW9b=8aYfk[=!@=lcS>M'POZ8l/?m$6]uY:odeJ?/J_LjhUfr#NTKqgd
+f0/ON#L\ni^+PY8[;*;$^@`Pg,/G4+g@3NqYP+V^ioY!39c4EeXqa*9k*X37Z\P8K*.)f',nV
++[/@Vn@#[1spU1WcpK"XYPPMJM*GPN=F:D=a<X(TB]?_gHS%f1D]D(Cs@g*1Xqh0(1/qob9j8
+`ZQdOmMI#rSmFV*TF?'TiZ;E+#XGF0I_!B10ZJ%V-P?O:^J+V0#_j/]PLp@c"bEg1Q-(Rj,fO
+e^l%GC&mm.-4[s7\*i[]h"'A^cmmXPPcpY:ht]ABX"hiHeW]+8%d#aoatp/ut%L#,9<')qq%?
+$hF>]5H;tXr.i1M5aMpZ8i,3J#O$1T<'AC_:3,rPLgWa2phqK;8j:U5BF=8D:gT1qlj.\N8.J
+o0Jmq6Cb<U+31(Y-]!aQ"n6^N@sfFd=&O;th?"BF.fg5:kB!t!AYXo:2/I&k(qe_Ud$51*pA!
+6d`q!<=fDTIp<HJ>?n&Go-M]UnZRUm/R+dzzz!0A;Qro5R1!:XpWrlZkn!:XpW5$nNpzzzzz!
+$I58s1Q/2C2.K#cPSC.nR=W@'m)Qh,Rj9A2G,-QHduG5UG8A1@Q`[>QXKsh;h_Zg2NE,=@Q`\
+iGfD8PGQLHE5?6XO(GEca?ArO0kV<R_I]C2'04'TM]GSt>d:F/HrD\@.?G%-$GVPf[U<>5Y>l
+/6[>BsLE4bpOJ.]unlIbaN8E75XfSsdK@`euIe&2A?2n]qbfLiHii1\nNsIDF<Enp"aYiu'M]
+$pu;rjjJk*s&]3+Ef/IoTCYRuRo`qF.V+lg7a1OGR]"meO(T4_T(/Pu0LQ7R[cLUG;*A..S&Z
+?a_iK/IC[*cdRM-?GpipB\iu'M]$pu<=qJs)>Ghkg8Gt+$Tj.=O(qK+`a(sdHSAJcVbo4?P<i
+O\C"4^E4O-,k[C'i4h@?B$RM&`X`^\dUqChW=#d.r4]q:]5mZfB)YNOXlh^Sls!V`euIe&GbX
+46!dn.g1BqA3FC&U`\UqC)29iFbJ*Gc<hK"!lM]A$a7Iia,N]srk;?1Gpiotgcg@c7+jC,$J`
+E0P.jIX0T.\"mr;Nd*i,LF!bTBXR1CPGhO=8St1]$<h^9:YcAJg#Z.%#25b<#78;uQ!3m4!k^
+5AeaB'_D,*hkq(!hMA+T[`A.)nY42\"<C>nlF</_k)ZF7bNa:,q#4D^&r[`)`KL#1DAD._STG
+`07Rn/O3pu*[q;^`4qJp_*iPhbce6J.^hY\6-\dUsQ&I"qiHT>L5GUE&q"UQnu4>ibO%bG:bc
+/V-W@0eog@+90L#L"8c\f=n0kHWPNeT7V2a>#`M@+90L#L"8c\f?G#?$"+^N!ipG+a!G,'`KF
+Vs";`IVi<^W4Yt,+.!*DW9.X@$k52D6='to\C>7LsSX4Ud2@@`R5P=jn3(AJe,0em[EniHoI"
+F+a4EH/FN#,cS+bFmjp*6-;X]cd\",FCE)@+G_,-P@^>o-)GmY2_UN#eO`$lRCH?p*I<QXL0u
+kHUQkSX9!s7_]>_$_`(8b+.L`RH"sF3THM<N+]fe1(9kkTB_s9L@2A5?%hE:Ldb2qmC6f_p]P
+0^G\.uV))&Q06Nl4@?([[2*o"B2VXq%dH</Vm;m-SC'.r=L).dD$pWOMITZeD%ls`*;7@.G=d
+-pj0T=F-X,AZ.iihoZ!ehchY[^"j+PTf(T)iSFBkV<PYH^E:_<2W.I/jab0]<<k,4$GqJ17l%
+mGfGXo_[o]EI^sKnmqJ-bGu:-EW17>/i4NF#RlDcFQuh%=F*rQpB0>d:nVe8iL*6o3T*F-9MK
+[cJqOgfpnOsk]))&Q06f`\\%J39%9bED4;8su^,)g0'(sdHSAJh-Iql0R!_/0O"g^?8/5o!om
+;o<k"M_;mYm&(11pYs/:`f'AG(L;b=fM<5Am_t+SN#1Ll0=hQZPkNQaGR/NKX7fG\Mt)`Biu'
+M]$kq.+&*"N\`\Uq[B=t6m8-T%ozzzzJ40>84)VZ>~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 647 647
+%%EOF
+
+%%EndDocument
+ @endspecial 150 3882 a Fg(5.1.2)63 b(Prin)m(ter)40 b(Settings)275
+4214 y Fu(The)28 b(Prin)m(ter)g(Settings)h(pane)g(con)m(tains)g(a)g
+(drop)s(do)m(wn)e(men)m(u)i(for)g(selecting)f(a)i(prin)m(ter)e(to)h
+(prin)m(t)f(to.)150 4323 y(There)h(is)f(a)i(sp)s(ecial)e(`prin)m(ter')g
+(named)h(`)p Fr(File)p Fu(')f(that)i(allo)m(ws)f(y)m(ou)g(to)h(c)m(ho)s
+(ose)h(a)e(\014le)g(to)h(prin)m(t)e(to,)i(rather)150
+4433 y(than)38 b(a)h(prin)m(ter)f(queue.)65 b(The)38
+b(Setup)g(b)s(o)m(x)g(to)i(the)f(righ)m(t)f(allo)m(ws)g(sp)s
+(eci\014cation)f(of)i(a)g(prin)m(ter)f(t)m(yp)s(e,)150
+4543 y(a)g(PPD)f(\014le)580 4510 y Ff(3)617 4543 y Fu(,)i(and)e(the)h
+(command)f(to)h(b)s(e)f(used)g(to)h(prin)m(t.)61 b(Eac)m(h)38
+b(distinct)e(prin)m(ter)g(in)g(the)i(Prin)m(ter)150 4652
+y(list)31 b(can)h(ha)m(v)m(e)h(di\013eren)m(t)e(settings)h(applied)e
+(to)j(it.)45 b(Belo)m(w)32 b(that)h(is)e(a)h(com)m(b)s(o)h(b)s(o)m(x)e
+(allo)m(wing)g(c)m(hoice)i(of)150 4762 y(media)c(size.)41
+b(The)29 b(c)m(hoices)i(are)f(constrained)g(to)h(those)f(that)h(the)f
+(prin)m(ter)f(supp)s(orts.)38 b(Belo)m(w)31 b(that)g(are)p
+150 5137 1200 4 v 199 5204 a Ff(2)275 5236 y Fd(The)25
+b(output)g(resolution)i(of)f(the)g(plugin.)199 5308 y
+Ff(3)275 5340 y Fd(F)-6 b(or)25 b(P)n(ostscript)i(prin)n(ters.)p
+eop
+%%Page: 28 33
+28 32 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Programs)2663
+b(28)150 299 y(drop)s(do)m(wn)29 b(men)m(us)h(for)h(c)m(ho)s(osing)g
+(media)f(t)m(yp)s(e)h(\(what)g(kind)e(of)i(pap)s(er\),)g(media)f
+(source)h(\(what)g(input)150 408 y(tra)m(y\),)h(ink)d(t)m(yp)s(e,)i
+(and)e(resolution.)40 b(All)29 b(of)h(these)h(settings)f(are)h(prin)m
+(ter-sp)s(eci\014c.)1183 1759 y @beginspecial 0 @llx
+0 @lly 289 @urx 226 @ury 1841 @rwi @setspecial
+%%BeginDocument: print-setup.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (print-setup.eps)
+%%CreationDate: (Sun Feb 29 19:56:03 2004)
+%%BoundingBox: 0 0 289 226
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 289 226
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+290 227
+12.000000
+290 227
+1
+0
+0
+13
+000000
+ffffff
+cccccc
+7f7f7f
+e5e5e5
+999999
+b2b2b2
+d6d6d6
+969696
+888888
+fdfdfd
+c3c3c3
+00009c
+GhVPUM.2r.%#/?AQ#=kD5OW(N+k[D=a*70"$T/KnrfE'R*rq*6.BGsdL9?kaGn=/@DBq*CD?
+Rh^S>U6DU"aHZQI,Ws-:n(K3nK#2Qdp,'0KDkpKGK>='*:R6AjYp0cqOFdDfR:T7&Q&]aAC8u
+]i/kAcW%,X6JjkW0:UC?FR$r%Ft]WjbarOe&^mM(!'7A./^4E>_O`]=NX.d_T>_II%%6^5#Rm
+\X$.523>KlM:4/%F(I4\7[+nu$jMe\jPmluho2CUVl+`k,:07.h)?VMORU8cDb^<Z&<:fH=-K
+U0<nUQ!_+.=ILW*SSkQ&:-/;NAQjJeEpb@%dQ+*H-T<Vcjad$I>4nk;\NpEm6]-&G!`7n7%=,
+\TdLI>S:hG$+iHqXE@O9<B1P2bn@qp+$+4ZeUe#2dAC&#RKRWV)-I^4m2IKEp$P4A1D<kR,qt
+H<PWShiH>H@bNKRU>YpA/!IcusD63FE)tn&0n'&b+o=ha[t4,Q"I%$P4V[<iAJ96.lT./"nkO
+#U-#PcnD(^&je5_;L8_'O:Y#1UhgY.hX18YhX4D+?;Bt_k3icLdPaI7MZ4BUg&u(Za;5*@(8H
+Y:NuSa0[]OdF81EG\9Pd0Z6HY!Ud"mcMKVCpl\Ag@ML5:pM&dV["TX#.b+\++N7p^@(a</6O!
+20K/NuUP.fa.O#eW7mM;%O.^KYTU*3XuIIRY+EV\H44-7-J[P3\R1#YrtL1a!"D0[Khu9H[#A
+0KG)d#Cu71F%V#=\#rRkW&jeou>!d@@HebPj]J;XW(e_mB6-FRj64+=I(>F2AWQs=dQfX:q_0
+nQmTIt'%4%0)#IUjBqiMK.^5;Ak%Z2L=QFf!`>gq.ud,e!.Scq&g.8I,VG+Z(dE!W28R8$59i
+Hf^`[_t=4&KG5Vp/[e/P%nER-^\sgY,*s\jgH1M=O[gdPMT,;Qgt;tpm^F:":rRm1EmHC08:Q
+Toc'C;A#LVDt*E1#P&0m#;JUJt4W;kM!-ff_aZ`5#O=R35F_#EIk0P='"FT;X*9'qcl!GJDL7
+X;YJImV):*$,(j+<n2?K+B>_Wu5PK.t.A<6?#]`grjHPp=8U)#D@In9F+q&WGBQJ"1B$k64+=
+I)qtlqW90KFGP]O0YbBuaQ\b%Ls7W4,Cd03h)3Z^`ni9#Cl9;Xp9rS*E^,;TRC-h&IP_>,0)O
+Ab4j86hAmG;]T?g`,f`$F-hb2bm4"ip.G]gKkB9uZ9fj)UO8UWp7?;"0Sl6JMN=69$'0nFi1S
+\O*YIF@V#^535JSlrTc%,%OACi>50Yh=D4.5Mt=`3VK`\6N.6;U_#T)9AT,`)""8T,*u-eEb!
+]u(gCfDf[g0klJV]0KYi&V';>\ab_J/d*CA<-rO>8ZY!PJ3Qf;b;+[g"?&jiU%%p;DsGC*-Lm
+dL1a\@1N+$/ng8GN7"?,r@lF0r99dCEPr\!&YqL3a1u:[VoG`+XD_)KM\N@p'ToQp3hB#]g3t
+Am=!SXC7e<mKG5VpYMVP1;&kBgV1/;m#t6IDZJXM_8<-<@E52?5IFI!bb-au.*1o%hTh=Y3"8
+]+nme2_/Y"Gad-E)(%^&=,!db;R5!,B">nh:F&3+$6VF,#dX!rmr#L.IoD^_!O?1lD.7IH&?G
+B$Yk(+58==IZ%)%Zm;FYTb=Un\JC$TIUVBkIMbC3F/u+JES2k/Y8_1Bs+nf0RS,u'P7Z_!KK'
+8]:-sc#&E4sg3!ga'6AUg:icL.kf_$-O`ZDpRU.hMDKN>QqL#8uZAkJm4_M`iQPs;,kQ/lM4d
+-bE%QUR<;f52qg"?(quVTG'^;!W]I;^rpt9=ueuK^SQ"d&5LFT.D/(8I0;K6C`]?-R$E"#]UJ
+DS:hG$+iHqXE@N_)Aj"Tj"J\OO.8:[HX[c$t3k.cf#pCJA1SGW!Th"G0l]7#Z!?#G8GGt;TlU
+0sD>`<k4d>',\+nT:M.eV>TpH`J8:O_hpJaneR=n)Rt4<ZhkhN,&L4M%-NM@#[qILZY;d2aD1
+j9`J)rKC[V=8<FO<(b#_+q#a'J3SZ[%/0-1Kod>)!%[<t33XQ[b33IZi"ZAG)ELrNQkQ%?!q(
+_j#t9o(3?mMi>TcH$!mR>bn*\SXi"@3uA`3[m\4XV5#gWbsH!,'=d$TR\aNIgY@TZR(M,%a\'
+[X.[8gu*/<`A`^-q,er(qDHgZos,iaFsDO&F,?RcJ3053hb+_O^LV#$-ab>`(:5S&ji+A&18X
+>8I0;K6C`]?-R$E"#]UJDS:hG$+iMJ8C-;j(?Wf^t^S'gmianX5&?#AXMGt@4&ZRsZF[SRlo+
+XN]KFfLS`+_\-q&4>UTtD8P,a9gkLeuZ]fC91GPTo`EKJ$iK$6^bV<<t;sYPf*>,>;0Nd_o]`
+:F<"[mdH^.SPR*TCNPigZO&+6'7q$AHU]EPMR&[B(F'UQk&.k'BVeX)Sm6qW#\E\724TP5f)c
+XQG_-8KK^"Ig.*oR8/_GejWJp.S`U<GA.a#OaFa@pIdpc"r9aGaL#pCq1M$W5.<f[OJbd\giI
+!oQ,TtD7%,a;@dIZpC*6AUg:i\VOH'#UB>+uGaA&1:+AFK1>I;PJ&r7Lqi/:%V,]X`sjE#K>N
+22u~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 289 226
+%%EOF
+
+%%EndDocument
+ @endspecial 150 1978 a Fg(5.1.3)63 b(P)m(osition)275
+2170 y Fu(The)40 b(P)m(osition)g(pane)g(con)m(tains)h(v)-5
+b(arious)39 b(widgets)h(to)i(place)e(the)h(image)g(on)f(the)h(pap)s
+(er.)70 b(These)150 2279 y(widgets)37 b(w)m(ork)g(in)f(conjunction)h
+(with)f(the)h(Preview)f(pane.)62 b(A)m(t)38 b(the)g(top)f(of)h(the)f
+(pane)g(is)g(a)g(button)150 2389 y(to)g(cen)m(ter)g(the)f(image)g(on)g
+(the)g(pap)s(er)f(\(not)h(on)g(the)g(prin)m(table)e(area\),)39
+b(and)c(on)h(either)g(side)e(buttons)150 2499 y(to)39
+b(cen)m(ter)g(v)m(ertically)f(and)f(horizon)m(tally)-8
+b(.)63 b(Belo)m(w)39 b(these)g(are)f(four)g(b)s(o)m(xes)g(that)g(allo)m
+(w)g(en)m(try)g(of)h(the)150 2608 y(left,)h(top,)h(righ)m(t,)f(and)d(b)
+s(ottom)i(of)f(the)g(image.)65 b(These)37 b(p)s(ositions)g(are)h
+(relativ)m(e)g(to)h(the)g(top)f(left)g(of)150 2718 y(the)28
+b(pap)s(er)530 2685 y Ff(4)566 2718 y Fu(.)40 b(There)27
+b(are)h(t)m(w)m(o)h(additional)d(b)s(o)m(xes)i(that)g(allo)m(w)f(sp)s
+(eci\014cation)g(of)h(the)g(righ)m(t)f(margin)g(and)150
+2827 y(b)s(ottom)e(margin)f(if)g(y)m(ou)i(prefer;)g(these)g(are)f
+(relativ)m(e)g(to)h(the)f(b)s(ottom)h(righ)m(t)e(corner)h(of)h(the)f
+(pap)s(er.)38 b(An)m(y)150 2937 y(of)26 b(these)g(ma)m(y)g(ha)m(v)m(e)h
+(v)-5 b(alues)25 b(en)m(tered)i(in)m(to)e(them;)j(the)e(preview)e
+(image)i(will)d(b)s(e)i(mo)m(v)m(ed)i(appropriately)-8
+b(.)275 3070 y Fi(Note)p Fu(:)42 b(These)30 b(en)m(tries)g(do)g(not)h
+(resize)f(the)h(image.)275 3204 y(Finally)-8 b(,)35 b(there)h(is)e(a)i
+(pic)m(k)f(b)s(o)m(x)g(for)h(orien)m(tation)f(\(landscap)s(e)g(or)g(p)s
+(ortrait\).)56 b(There)35 b(is)f(an)i(`)p Fr(Auto)p Fu(')150
+3313 y(mo)s(de)f(that)h(pic)m(ks)f(the)g(orien)m(tation)h(that)f
+(yields)f(the)i(orien)m(tation)f(that)h(b)s(est)f(matc)m(hes)h(that)g
+(of)g(the)150 3423 y(image)31 b(to)g(b)s(e)e(prin)m(ted.)150
+3643 y Fg(5.1.4)63 b(Scaling)275 3835 y Fu(The)32 b(Scaling)g(pane)h
+(con)m(tains)h(a)f(slider)e(that)j(allo)m(ws)f(scaling)f(of)i(the)f
+(image.)50 b(The)33 b(image)g(can)h(b)s(e)150 3944 y(scaled)e(in)f
+(either)h(p)s(ercen)m(t)g(of)h(the)f(prin)m(table)f(area)i(\()p
+Fi(not)g Fu(the)g(page)g(in)e(this)g(case\))j(or)e(pixels)f(p)s(er)g
+(inc)m(h)150 4054 y(\(PPI\))e(via)f(a)h(radio)f(button)g(b)s(elo)m(w)g
+(the)g(slider.)38 b(PPI)28 b(allo)m(ws)g(matc)m(hing)h(image)g
+(resolution)e(to)i(prin)m(ter)150 4163 y(resolution.)56
+b(The)35 b(image)h(ma)m(y)h(b)s(e)e(scaled)g(using)g(either)g(metho)s
+(d)g(to)i(b)s(et)m(w)m(een)f(5)h(and)e(100\045)i(of)f(the)150
+4273 y(imageable)25 b(area.)40 b(It)25 b(is)e(not)j(p)s(ossible)c(to)k
+(crop)e(with)g(the)h(Prin)m(t)f(plugin.)36 b(In)24 b(P)m(ercen)m(t)j
+(mo)s(de,)f(the)f(image)150 4383 y(is)j(scaled)g(so)h(that)g(neither)f
+(axis)g(will)e(b)s(e)i(longer)g(than)h(the)g(p)s(ercen)m(t)f(of)h(the)g
+(prin)m(table)e(area)i(sp)s(eci\014ed.)150 4492 y(F)-8
+b(or)32 b(example,)g(if)f(y)m(ou)h(prin)m(t)e(an)h(image)h(at)g
+(20\045,)h(it)e(will)e(b)s(e)i(p)s(ossible)e(to)k(tile)d(the)i(image)g
+(5)g(times)f(on)150 4602 y(one)37 b(axis)g(and)f(at)i(least)f(5)g
+(times)g(on)f(the)i(other.)60 b(T)-8 b(o)38 b(the)f(righ)m(t)f(of)h
+(the)g(radio)g(button)f(is)g(a)h(button)150 4711 y(called)c(Set)i
+(Image)g(Scale.)52 b(This)33 b(sets)h(the)h(scaling)e(to)i(PPI,)f(and)g
+(sets)g(the)h(resolution)d(as)j(closely)f(as)150 4821
+y(p)s(ossible)c(to)j(the)g(resolution)e(stored)i(in)e(the)i(image.)47
+b(T)-8 b(o)33 b(the)g(righ)m(t)f(of)h(the)g(Set)f(Image)i(Scale)e
+(button)150 4931 y(are)39 b(t)m(w)m(o)i(b)s(o)m(xes)e(that)h(allo)m(w)e
+(en)m(try)h(of)g(width)f(and)g(heigh)m(t)h(of)g(the)g(image.)67
+b(These)39 b(set)h(the)f(scaling)150 5040 y(mo)s(de)28
+b(to)i(PPI.)e(Sp)s(ecifying)e(one)j(automatically)f(sets)h(the)g
+(other,)h(and)e(the)h(image)f(is)g(rep)s(ositioned)f(as)150
+5150 y(needed)j(to)h(prev)m(en)m(t)g(it)f(from)g(falling)e(o\013)j(the)
+g(edge)g(of)f(the)h(page.)p 150 5241 1200 4 v 199 5308
+a Ff(4)275 5340 y Fd(Again,)26 b(that's)g(relativ)n(e)g(to)g(the)f(pap)
+r(er)h(corner,)g(not)g(the)f(prin)n(table)h(area,)h(whic)n(h)e(is)i
+(usually)e(smaller.)p eop
+%%Page: 29 34
+29 33 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Programs)2663
+b(29)275 299 y(T)-8 b(o)32 b(its)g(righ)m(t)f(is)g(a)i(button)f(group)f
+(that)i(allo)m(ws)e(c)m(ho)s(osing)h(English)e(\(inc)m(h\))i(units)e
+(or)i(metric)g(\(cen-)150 408 y(timeter\))f(units.)150
+619 y Fg(5.1.5)63 b(Image)40 b(Settings)275 807 y Fu(The)32
+b(Image)i(Settings)e(pane)h(allo)m(ws)f(c)m(hoice)i(of)f(Line)e(Art,)j
+(Solid)d(Colors,)i(or)g(Photograph)g(image)150 917 y(t)m(yp)s(e.)63
+b(Line)36 b(art)i(or)g(Solid)d(Colors)i(should)f(b)s(e)h(used)g(for)g
+(graphics)g(con)m(taining)g(mostly)g(solid)f(areas)150
+1026 y(of)h(color.)61 b(They're)37 b(v)m(ery)g(similar)e(to)j(eac)m(h)g
+(other.)61 b(Photograph)37 b(mo)s(de)g(dithers)e(more)i(slo)m(wly)-8
+b(,)39 b(but)150 1136 y(pro)s(duces)29 b(more)h(accurate)h(colors.)41
+b(T)-8 b(o)30 b(the)h(righ)m(t)e(of)h(these)h(three)f(radio)f(buttons)h
+(is)f(a)h(button)g(called)150 1245 y(Adjust)35 b(Color.)58
+b(This)35 b(p)s(ops)g(up)g(a)h(new)g(windo)m(w)f(that)i(con)m(trols)f
+(v)-5 b(arious)35 b(output)h(qualit)m(y)g(settings.)150
+1355 y(That)30 b(will)d(b)s(e)i(describ)s(ed)f(separately)-8
+b(.)41 b(Finally)-8 b(,)28 b(there)i(is)f(a)h(c)m(hoice)h(of)f(Blac)m
+(k)g(and)f(White,)h(Color)g(and)150 1465 y(Mono)s(c)m(hrome)35
+b(output.)53 b(Mono)s(c)m(hrome)35 b(output)f(can)h(b)s(e)f(used)g(to)h
+(prin)m(t)e(absolute)h(blac)m(k)h(and)f(white)150 1574
+y(v)m(ery)d(quic)m(kly)-8 b(.)150 1785 y Fg(5.1.5.1)63
+b(Adjust)41 b(Output)275 1973 y Fu(The)31 b(Adjust)g(Output)f(button)i
+(button)f(p)s(ops)f(up)h(a)h(non-mo)s(dal)f(dialog)g(that)h(allo)m(ws)f
+(adjustmen)m(t)150 2082 y(of)36 b(v)-5 b(arious)35 b(parameters)h
+(related)g(to)h(the)f(prin)m(t)f(qualit)m(y)-8 b(.)57
+b(These)35 b(are)i(indep)s(enden)m(t)c(of)j(the)h(con)m(trols)150
+2192 y(within)28 b(the)i(GIMP)h(itself)e(and)h(only)g(a\013ect)h(the)g
+(prin)m(t.)1385 3521 y @beginspecial 0 @llx 0 @lly 382
+@urx 406 @ury 1354 @rwi @setspecial
+%%BeginDocument: print-color.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (print-color.eps)
+%%CreationDate: (Sun Feb 29 19:56:02 2004)
+%%BoundingBox: 0 0 382 406
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 382 406
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+383 407
+12.000000
+383 407
+0
+0
+0
+GhVN?ED2SjhZ*W-^\lPFpqt%gO>Ot11r^Ag0fCflU8CBdRaif'=']4f9cLReX_ogSf1hX:_<
+eVA_5TpAA)4`H$%ei+3^L>dOfg4BQ:b5S[8JH=8k1I[IF$1+m<H(1h7N,smbd9>J(O9&;m3pG
+Y"S-SaJY@1J<5kSd(^q,Z*%EHq?JC%KS6YDJ*l@qQ_XS>cdb8,dA'53i1uHr:mUk9jnqW5pp#
+>:jBmrH$[dE[no2?'gE.O;k.o=Ak/Q;.lM#Mt?gdW3qOJl1nU:D_%P8rj[Jc'1`8C%(Yoi0/\
+WaeJkN^r%lf#2KnaXL5j+$C3r$,>B4r=7Tr[E1-n.GL]f#.:\cHOV<r#[:^SN?H>YPOg3L\LN
+3j?L0Fq0DkT98ML'p#k;K\$l)cQUAM)qp"NC_qHchp@"R;Y7L1#V_'1dn([jNT>(BsCEib`rU
+3J[]W3-(qt&l5\FTI'!5I+C2_XH'ru(j[NP>e=D]\+$GOdi(r8td:4Dc78J)C77nbM_FNuNS7
+kNY9Yjn%diIntp%s(hE-k,7X.SC/K^q-4[(&c+`D5D%5-GBL&@>T1A0cdcD$X4BLHjn"E%bYE
+P7U$*T=kDu.AOO1a\&**9%n)QUDL:R/]2cC5_5!8?(LLg5'k79n!olos%bqg'jFpSKRfYdL^&
++8NV#h352qAjr)?7,XKm([`*oCo?]20Zgfnr'(:G?7_X\3]b&B7<dWh`ks$TmtPj&UaTQj=fA
+>rQYl85JH^a5Ee?id/Q?-`BBi#ImM@eT)-_)b^XF!i?LNKq2_V)KS5$XXns!.X$;$_hf&3B.K
+@?.ho+]m4PPAYk=eE;kb$5JQh,.0ht_WfIK!B5&*%a'O*1,>5nakDqD[\HHT=<L%toUhK`:_X
+qR?L0oZ+us6:+"*s-qtc=$$II6:+$=h^%,),UE"88\dhe8EaEDJ<,eRd(^h,+!Df$In9]*fc9
+2<q;;;:ju>HGR2JaqF)$SrPIqpp_urFNNf>bIar<Nj8*G-F29[3k*=gd.f\a`QCp[AkZ%q.@m
+-NY5$U6N?@h[VOf\42,)qj#b;[0t<k?ACCUQ2P0n225IBmI(S051-NRSTu/5fnG>HsFM.b.1H
+rD5H#3j2PQ2PB(dh=%\i5k$h17([52#EfnR7+rBcS`,ZI775u+D\Hq=A+G*r'Y6Z0]>TsT50I
+VNYKROML,$7:t'qnib:(]$;0^$69KD$:lk.m@:jr>4YT[,o6%dJ+3Rfcq+ZoP)-JL1We*2mnN
+bX"Z-'L3NY#>+t6:]s=?!^HhJ!@$KVSP9FcA95N(-aA1tCm*0O_\9ZticenF3D.&I^(HC8koQ
+_F8Z.3$!S[G'DrXo"IaQ&k?+eP#o+moRdpf&^NM[K");3G+UOc-c)B,QXj'+Bg6cTjD*j=]\%
+?IObU5I8Iq+N(F.]=n2V4<E@QHQeOQs6EB<64_FXqc#C.'jQNPt8#FE[;>K&RU+A$:Ir<]E7-
+:&R:@3EqgsM9&PiIQ&hVd%-GI!O8`^p/VA0`HC(@Q.6<g4,)05/P8N[r[#/;96ZX:WH-e31it
+Bip61&.F(.5\N<K!MQ"SEt;EhU]G74o:b-kem!6AYt'&W1TObs=XUJ58'Mi02Fa%6hl;I,YP/
+gkd^?_/P4(0a:,cnBjJ;lY_$'l#q+"_4^l>p<dd<'e:s3nB3Fjl<o[,?"S8Kpj!fCCZ-X1Ial
+:o"4-1FCg^0^%5iN'a-0]@=j7Tueu5QH;6+5M-''I!\=?@<H(^E!AZR;W6H\jcDO5=CR%$L3N
+C[tUC'0XbO][Zh0k/+X(*Qq9nT>,?6XVMDCZ0[E*[t>l$qW1`#50q<?Oba>=BD3*&D`'(/:aP
+sk*7X&5l1nqY(1LPR[:o7JNb08q5@YTg1AV_Km"oF`6a=6c@[SWasEug!l\W5/V8?^8oc)u7?
+IjRd/lKl!^9bRJ58)t+8B@^n4>4i1Gd;?.8ETX1;`5X,9bn^@q_)m*s3b[]6Sgl,>PfjF:I_C
++0XD^Y]?ClI9j4&n-]UWRX)`fXu:I1n8fg=CZ6]GI\^U\"'b&8\q\Hj^8Ig$RX,D^eZ;jBKTa
+A+q20bob?6.SO]!6dn`aL(OA]6&8dY6J\P&1?M=aQ=Fs+=9#s%!c`#_?h)o>f6?A`,>![[>SJ
+Tin4S)E"R+W1JC_S-'L)dlk\CGC-nd(Kp[lX3j'o-5q\d4RlR)AlPNGr6#2TJ&]C!U<a\FsV5
+\TO!SXjj6PkcA--PPY4jsL-gj)4NNk^A2.VQ;7$VW>SMu:&Kret^aH`,nB'hl';+mu5-kXl,c
+2ENA1YU>$/Q.H4N:U#%/Dk@_LS-T@JZK6EU_]`Iac>G)kC"jH>)d,Pn%-/ct90*`(Ot6Bjm?j
+SPB%;5`;5r#+FiP@1>HJnVidRC,TjP9$MQ[4K2k$-0l:.;9n3Bl:S%@nYK^/+Q`3K<(hI,bbm
+jsrCHBEl3S^dOf1PCEQ%Pp\d)XI`ZIQe2ZgVL08I"FSt0if^sI65b$j1^rb\lVKs_W.-0X3Ec
+HWT7@$\X9&a^Oa=q"mqRYtQU#Q7g_8l761m2G1h6!K/F!bbV$]`P4q:eFQH&&g;g/VRGgP!$g
+OTP-'UMboKci00-,pgeGq`TR+%I$2sk2oY#Q:.6"hi11EtO"ic>><[d239Fg\R!pE2%XJBDl(
+d!&Q^-0Kkj5%=K6@X+R!I@Q>8t=ji?]^qRb2K8Gs0J2cr.n[C\WaH-7qH`jp)fr;:DIQZ]_49
+q6#>GEkWj_)l5Y?@r3r-Q1A$#O%NM+jq1JQ3M[01odl9P+Rq;JLCdB-H2up%0`E>L8d+k(rrg
+!"n5R32(INO'W.9:TqKKbV%Vlr.GG9FG3p!S.$M-0C9$pt&eh&Rn7e7rD2F>.ZNU'GKN7rF$X
+bHH\<(Wcd%J;3L$DC^]MA8r=7p/%:q']AQR2A@c+C0qX7?HRS:F+k^>m^::F+;/AD?6C,e!uh
+8@Zp6emnRgW`98$_UC@$ECP3iiK>Y@djJ[\i#3bBJf1(gdht5:G`G6L,C8&O=]89VCf[n!DN;
+Tu<<Wb#?H(fdpFmQ3g3?9\TITjul1c23-To'p?H)?b&'l5Mcqf3TIq2UC]MqKN?)hgBt@BGp#
+MDE56IMo,[8013o)Y#;q?9n,g_A\@tLYuSDeF5[)micoc_K>iG:L[-,q`aX:!F#`/O/$nP\eX
+FV%$k0QQc$0Dm5rZEL[e4uDhXl!qCQC9N-Z@V2aXtpg1"$`K4Z^b;Q//3\I'(*:om(<$HSR/,
+Tj='-k\nY"9j\eI'PI-T5<q6n4ClDG+-N%hOA%"_Pmju%<6EId8<A\%$0nDS"X6pSK)])0Yl(
+"hQZO]Pp8Hi[YsP`\h(L+VUNK"2LaIK]9-0`GhG?OSmO>$>/uOY]V&cDQKP;o:;aDQ>#[=/q/
+I]F;R!9n+38`)Pc&)//nU<3V[E7&KR,B1&nTofq@07cO?A(^/`Oe_HOWgm_T+@57IV],0>V!!
+mgJV)Ja7Ri*QI$DYWmd>6a.SaodTMsM=1?+HifT@Qlh)t&)%b3h$mjSRWlWQ"*usG\"S7$C.k
+5S"K`)4)kgCFFV.SgTp29\%2>j><XAL.PUqS@+%8gGbsT;[8/<f8P9[`EZR>jHD!jOXH12A/p
+SU!WJC!ijj!!8"j5_WWpiq.=&N;(l3UUG!_;G=6qA?HaDrls"?LOVtK,tEVB"CYUDWA,?3fS5
+<nS843oXrVfbB<`_L0s4ZeacTqHSrI/As\D<Prr-iZO0mYq5KmVPgUgeHSO9NCb=]c#u?K4/B
+YV\oI6Tm7IhHE:*P-"Ysq.=5e%lq-P1YGJ`H77#-SN.@rQ-:oF_A/@=Jmf7ppZbf#-]OU\ebI
+WaIgeo91lq8,Es5XakCERM@M=#(8KMGG9NkC*/.I/$pV$g'irLl4$RlLN4Cb*e?Y8ZIP$QU1=
+F<b>FK7W>Gea$i&cipgdG-52"^unO_&IDMG-)c;$)SadEDJ':]PPC5d@,)>!CD#bu9,L)G/T_
+SPaCLADaoEQlQj%nF7qn"@unYF-U^HJ7S#U!(O9-=/LTWTRXk*Hea@n;<8)>$eAo<uTfB[&S@
+BabuFsTO;t(ccb!Eb&]>0/Z(s/F!3c1cm358.+<om.oL#A4H7:O&8t&)4[]_b^Pd(pJgV.DK`
+=bklesi)="T/eA+3LN?U;FB[\L'-U\@3!+$o)]YWN<b1GGfTILrVW_71T3:V]d-rE_<ELAK`)
+/V@q&ZuT,_K;Je:btuNT>`Xad.+Y+d$MeG$'L9).71r.X/`<s;^aJF\nB'hf_`[*(0_5i>W@?
++f1)]&p";;qRO"ii@.3E%ES94AJ0V_B4*"3?sU5ud"$sEC3%te0#fti2mULs?soX448$b]#UR
+eX"9DEV87]N3'g20A,.<D,h>^Xd?hbpt:;.=&Ie2?giHVcD#8V7\3d:GFLnfi?,b&tTd.F&Br
+/oVY6.Jtr^0G/W,HCIRk(_P]-FN*nFCn%ipmpDnKR_Y"\!hS`eblmL.e$eoZ'Fm(uCm\Aun$'
+lB94p'2SBKqI,B4+]4q#Ch!6GF%jQ)NSu=p9#[TIiO]G%_qN\eM.r:i8V="t5@+[MEm48le5Y
+J>2.ek+b0MaV"WHX@p>VS,4^"%q_6$iS76(bXRtii(St$`g@TSgrK0qVqd4?F4//l%Rp\J]8m
+OC_cBP)n5^>m*W44"TUB::hJ?\pKmk9F:%T<J>u,A@4a$\2L2J$HdF)%>@1BE>ku@2QP)`.`X
+e<@t"*.]sAY4pJMtrX&[R,EdTiK<pU<Ee:]9,.8A-Wa>,AofkN9DVpRkXgbJo(e#_#J%lrrc+
+R>jl+BJAHG;5DfA/f\V.d%_]'@q`$WDL#j/q7q&DeHPK_F_"\n<eM')prBW8(M>I1LXb:RF[#
+^nq(Gn4IQ:&%haq@ZiJmni)MBH8aOu8?'6IACr,q)m,JBoD?TBo1c-_'uBI-.;n>/4coK#nRf
+A"4Fu4Wb=^N4TrLk*2'R*K1GHZB'3GN*:M=LQO3D4#g[-/MkFA%(5W;(']a<CZ8%j"*t.ikca
+$+)Z"RJC$Db^LkZs.^K&[`j>W?G.6(SXCN9oMdOF5,@QL=_\r_(A#K48!b$7EiL=@#1?:(A&n
+I(/D8$iBWcS9<'n5BHRL>N.&L[]Zkf,5!f`aCUhn"\b?gH2X26uO<]ha$?2=DD8.%auqAIi5@
+Y@B;fe&K%*l?B)rlW'?*l-_Ykgg'UgHJS$jj4/(@<jYg)&5d:W,)^$e#aWlnL7Ss2^b>GJPOu
+rc;X@p>VS,6!/k3&,"jb"GJ(\!i^A1GIG"D:*75K;b4P<R9Nn=H,+@88m%G;)4rWBT1H0kP!u
+LQc#Ve%qu:\'9l!(hmKiKbHr4C>uaS+[&1%%+[.8__E0MC)Ns^5f6GVr@6Z#dT=QV$@9n[Q.&
+Z(O,Vs3dk0Z?KlfmG/ESfe`eh&).6E\oOLU7Z%C%Pt]nC>X`k)gFO2*dNcbfPs4D))s)#=er+
+2E=0rMO(>L@m_%)USF@3`!W`-HpTd]oMe)[(Zn-b@j'H6P]5`d!-E#C=K8VHOAL*W2bM_&(J4
+b.YDb'.^h[K"_BI1f:uk.A5X*V6Fm4%q2gDp[ogEn]+XVTk5GRWbR>Re1VJ=b>_M!10GS&3N3
+f:Lp$r"ePAV_&3TK0`#O`*UdDor?j&X0H37Z!I%c4TIAnK9*aYlo&n;`XY-JgX7U1^9QiAu^/
+32,@a/T4X1>f2Yl+Vhaj10DXQ"`K^uVOW38#%S]*VI)rF+`Bp8'D&d`j$DCYPRGTK82q3*+D+
+-N+5tB[rt7UJ!Z0h1!:P2X3oE&WThdCVLA`@hIgB7/XCooW-Zm+a:'3'9^jHcl#.3!Wo`U5odB
+%uZAa!JfisVg;T_;OP%RGFA<D$pSU##n%DCE\)+bsMWau2W$&LBl-4bBEYOKM!&7)1/h'Ca-+
+ref&"!^<#d5+#f*P3E8$':]GMDN*J61?E"\KIJimLH4\]I0Yr<9_L2Tj,B6Z4hTCc6jFA@:7F
+7\@_@]j(/>`-e\o'(hUOF5^fVU)CH/<RUm?5)):^F@k%thX8k(9J;(u8#YacB']HuU?@c!8g]
+T=9C6XkKlb1oBGJCG#RY9W!lgl9r?U/$@H0lBMN$3HRQ\%uj6k9=.I0Q\@gk?tcls&7Q6L:&&
+8D<O09:*V;a0V<s]*OP.[g'D1/RU:j/3:sDInL3\';0rGW_pCT,We8YHTrs&`09j(GYnII)b"
+<i7KTc"iX[CJS8./7u*0R-"5$=5&:H%qhq#'Up54]0WA>Y`^jF[^[9J@JrHAq)ccM9FY_DsR<
+LAANH.0icR9_C,Oj/eNP4e1p!r=7\n0PP.I`+0g"=u^$Q9G?k4GYcXR!u#fNe1dTV[$L5s`\i
+^U)-:fMaf.m-.<r=l0f`a?N6)nek+n6*Kq+CsNgN[@-A(jm;B[<<8-BLu,Bb))&&N4C%jO&eJ
+-16^]N=%%%+gg_\qIm@fXoMf!S^aZ5=P%]k\`n')_>W02T#)Mg/"F8*>m[#o:%G(JA)5I3n1p
+'g6\Ho!pt'-H3Tgj;"'1>'$<A9fEK5(P\l&#$VE<D<fA4OUkL4!!Qd+X/J7KoXos-X\c9V2LS
++((TB?%ck9l[S0JgO=Lm]u07[`f:_$D-mR3#toag?]b!N,a][W0U8\K9%=ENXq8(4L2apElck
+Qtg'PaA`gO#,_#d2/p!aZSe9'EE:99C>RS3^7+dr9IcI3A5^6S3KnL/P]B75R:=H43E+!:$1E
+^r:R$\\I2AkE8DZgF!q?h25ste\q_@M-d"B+mn6^h"$',1k!=W8RTFH&pqKlZ:L:%].B@6Z,3
+^8@q*Tdl?qD6ibBRLuBGL<LITb7,^1tJE#2:T>K>rAuBT^"ONSqd(A<;WAj5fI50PbCb\Gpu?
+D6+.h'CEZt0i00uDpgeGq`TN"Zr\253VYS+254]B3:N/M9q(^0UEo+k4&^J!K5KnC#k8g'7i-
+ZX0D4J'je&+iq1EF\AQn^C,@]#-Q(1rNL1biKJ7aFa11Ngpk0V`,Ib6QRFT]#u1+/ns"aTn))
+/!qr%>0_4=dk[eYR?fU6aL$V71"2jj$L.FYh*WrX6k!"<&;qZW$fMZ:D^%/uJ.MVkGhr/G"d]
+li%Lh'"mmFi!2CklBkj:]<#<L/I@YWP=;]FFT5jP%NCe""F(uC#H/MttPrWHtCKC3;a?UE9Nc
+l@f:&6&n-gkUd#;!^[):<9o<A2@a8;7$h]2(2Q58\T^Neg97<c2GHR+8Fb!cMbQ3+#rioVgmX
+S4=B;0RHMLN6h;:ekNG$Vo,O0rH_/.HFO&?tiBW-G);6jQB%W;U=,%_5=u%pIBZdP2_j1^j))
+c&>aAAL;6\]_$ei]Vn!OWG?rIC=A<'R&@!L7A"VQ!+m4AC*iV.n*#/5B-4Amq-k1rX0d;An7c
+j'E)_,[q)8M'EYNXXHMEg`4@J&AA.WI^m'.p;#pE@gE0hkd/1X&$$/Q<cn#/UDmi-@CEs^7[j
+^dm5WpZ-6l8Cj)"nTd\FMgYLhgb>.grS93Su)Ku4fK;WE97qio`;J_^\"/AjA+2O@gH%-reT>
+)JRKaHp:+*caZc$Tj7ZnB'gA`b1mLo:263o_\bS)+HBOa=rk;=GERgqAsV:!SqH"Vs-n(Oleo
+tI;.EtBUrYZ*4t@c0h9F]1k/<MpM<L-,t2=$9dpuYeBbF/Q?BO8RAFeeg0%J6Vrg1npSgb_R:
+KllMBpB/Pg?RUL9_[4cVQ[?_L%O&U\Gm!nI4i_E@6Ip8PCB@MB`s*+:<T8hJmdlpa1N,IQ5#[
+G]:WUb<rKC_J2SZ5It[p[,PmT54-A1SS5Lj"#J5i?u3m\XY:TcDapK&FaDOqijF*F>`4qjGX7
+8NWpmA"#LqD06A6&5<M3RtGo969fMmIq19<(EWWdd9$2A%<!^>;mO8-s!KMR?O),=`Yn9Mg+1
+dbu;V)^S,h],/Kkapi(pN1j[7u@Btp8)GlV0/(eZg>9LNr-1/Bhm*@AD7MsAn[]CdgQ][W)'W
+@_7BbbVQ$&^2U:SI20#YV<)$4M`QBVZm]nrEH&SRSb$lonUi_cRPEajrp^T`T$msC.V%?<EOF
+TQUlS3XYE/-/1NhIR8!SI@\il,I>^3&>^&:+Q.AOf6TcJ%ce'd*1E]c1gZ3+INeN$]35[H!fY
+]Of$NbrB,sN?5Z#]NgN_=rbrK3A$i%_EeY)X&5k5*[Pu0@#"g<b-4<pN?p!=6!Aq..96`LA7Y
+g+g"[)Gho,=\Hnl*)4Q'2-PA*M7S=!f"Napsf1dtc/,:U3:3BTstI6*N28?sm?gC12?m((0>"
+?R7'9[c*u;k.]E[S5(.`MU7(gnd3SL)B5'=YiY*,dhhu*Mk)Tokg]Q<(9t-Td%_O0]`s!]g^U
++(6;B4@UY(U&B3O(F>JP7)E1R`-K.P3*QN+-c6rn7Y`Ig:&=3L'q-isUU'DK>3'W(;K<X!:mY
+Ao=Ft5c?`L1T\44.TT.5Tg8iFG"g>#AqNlcj\!J62A&g5,$?*3$nc*M1jA?knnE<3!3)L##Af
+XFOQ,dP>X%@sn[7afqWJ"]?m)^et3*lq>,AS,4(qbQ9s=31XBkB9&,C3K[c!`N`R+cI-p/,>#
+J1*1ikq*ZYOs,hP%M>Fa8(H`#FQ`K%R;`+Y1Y1s*0t[bRQ2b,3oM7&Z0N+j@MOCF6!l7I;[-O
+&H^d3^cu0ari4TW49t?S!4.[)PCo2`I:GX/G)g!U\Hl=,8n#?E2@M*$"j="3:&A)M;iOm[W,E
+%kRHI%+6U?$nDLAUT+0bC6(%$6YTKu*r7Qrlp#>pfSEe$S(7[4V_1Xc$EM=2gNR0QCAHQ8ej+
+Ts9lLA[B%d@pt$Y:&&2;"\DDAC<YOB5hj!h7B;;3%@`4<h].,-7"q;?3s)MZnL6/-2AZmU:Ja
+E$iio3DRh=1;ueA'=/,'k?*nB8c!$YEf]VkLSsBqdh1cY'`7=H(8Eb,Sk4+]@7QQJgGDE6MQe
+\VQ3eIJZ"]__&G72)"BcOObntR^WP-F=!&^NNql..mV2pnnWUR4K9=]hS*m23.Z('0[=QlJiR
+,Vlq3AYWM@8GiS&sj:,.ZQ/k\.hAM(u=43+2k\icMI(!(M41O/poX3[R$Fgj)dMSD0XA66SI<
+a`lUugBgKEMYFAA;%UCSk2WAC+WXLk]a5KLdl_1>t;`a9sU9Y,Q1t\p"R0q]6fNNhX$HUAo?B
+2E>ONLC%KG@DG$i"7D!^>;mO8*6FpOKSacHIluPN(XS,I<n216gkP$qKd6Qf(E)mPp!"ke'PY
+N!#:1]0feef%]PJYUdqX0J0bI*iCI*[LcYp1lej*-4L"@")RJ5mKRHSeG6'9Z?h0B&(TQ8jeh
+Sf<k>4HB)+=,LKNi;lmdo6PWDo[Vdt>;.hl:7^m;tV.9Met:#J>Xk@<_3i`m=dEI8\C-NTV4p
+s=p04?2B<kohkoidElsrHQA;P?'O6if.iGkX;NVYF4p<$-1b>ZkZS1*,3E6#,q2Se;/bM:tFV
+4*@eGK;ha$Glr7K,$JUft;LqOLCa_Z5*06=l[1!4-=>%Ru!ouqW8AHUr'(F$*IZ7-\;mQl,,W
+RTscomC83#\]5MBc&Aa#H1Qk8cUX*4X8-#]4!RDmAI@]0blZNg:g42efkF[K'P01u;W(O+uuM
+HeI=ch7'J*;tga//ll>Sjr2cFWif7a@--!>fNCC'q%]4h;0JAH2G1_pTp66@`>9u7O?n(/k>O
+@,`7Y8EEL:82,RRHe+-,B6+O1,ZB0ZCV7?[uF\R68kgOhJ"7q4d?YbB@"f6_MM)m=GEQj$")W
+&C?L*Cj:QfEcUUSi5N"*`"\'Im#8sYuc_$Zm`,p:(?9!CfOo%&t:AT6%S#NXHd9i#mt6G=TjQ
+q9+.sl^aK!lnB'gA`[B$a3R4FL_C*IH$muYr9lhl2d4+p$*1<W"%Ypg$7d(,!@"Ng9BFE5a*I
+ED)]#fs4/Yb0"C%AOr3a96RHJ%jA%Gt"N@`((S%C*oEh&s*8<e!ig!7b/LlD*o*.rA8<=Dju5
+&kalUf#-JTP]j>$4=)!^Inl+PK29tk,R%*Zm0U/=d2Koj-r,QfVf=NunQl2"5Mkosn%i3\1^p
+(,&1?hCmDj2cFB0CI`R/S9e;4tn3+Bo!-6-pD1TaIkEM+1F)R*"uMFQs7LS>QrF=>UI7hm)qT
+N$n&.`dk,:k<'Zes8TOa/TadaKW;_q,3"bnAuF7ag)%sZFP8+B,5r,l!NrUIK?'D:*hn\_ao@
+mdgSrjln1e<oM'?O8p>s+@6/>S1!Y=]qgu27d2HE=.(fEDnBp6lH%[LTgY?Ubd5]@ICG\#M+(
+U"VF`u=E:j7WIbH1]#)B74-W\..oOd/(/FL1m-jddqc8(h#\>:;A8n.SDf'Xq#jQ9f:)B2U^[
+`1IZUNoRei$rOYV`nTN5)+7s7Du*?"`<d&i>rY$$<sS8Q*A@0IW"%9X]\&,eh0?XIcW]gs)2C
+mFfT)k5Z/:?bRSdM/?9K?F`9qr9eRF:DE\4_"TgXOXC<0B,TL;W\eg_do_eM1=9!CVd8J.7@i
+3QP$-i4PGal\&lB5RaB=\dl;e-m]<N(e;%MP7X%S)icRqJL@"6MCV<a6=#[&`g`%p'#.$ds?X
+0f@f7sLPHX(bq>H>ff$ba-]JToI8.TZoiKdbR<;lA`^ZMag.SO8V<.j0>u[Amnf01+;IO#0Vj
+)\J;A3X//8h5iQ%`j!3DFKL7IOf,.ZJXNGUEfG![m#AN8`#0lGGS9Nn8o^$/d[*FC#sY5jQ;7
++]K!376?P%j*;RR>G:K(e(miCid_2.R^(b'II3tH`Eje_1h3uqja-90`/].+>)R5YP\RJ6$C`
+m)TZ29mMNi@]!`B2&Q_?[)'dZs76iI-NGm.:qi0/QqpgeG1ifd]a-aeJ#P#M)jn;25G/jkgBM
+fLX@?^N(IkRMSl8EW].!ZW%gh[S;BdlP@;DqX5aLPqI61coCiAD>^P)5-L,RkE/tU](WZ>[lM
+Xem+lNS(dJ85"Ek#W\%2<WVi-K+&UG*nlEoZYk0b`bq+=9;?I<aV*n,L>84c=6%'Y!;E0e,D$
+%c<GVo\2'Z\);NoOda0*P26`sZ2nn_e[/%M.OO5s/YtTmdugi@-:A^"D5%-TY+5_;f.o0gX3I
+h5r(a@V7K?(a.F?>9gT-USJZpFc^=BTaL*C-rOQW$;r2$<+(sm"_Cdba79l(bHS>ZGu?1r^df
+[.P@Y'qA90uqo0$`!3KrOr%&X`.N&,L@'9`hn3>UReR(ccE$.0dSn4br6l+"P1+8`^XH"_?,B
+:)uVf\rXF6*m,Z.r=N]b?$NLaX/MI(TG0bL+_&"ZK<-L(2?'FodA7VW;_mY&#_V.b0s<HZi#6
+o%4lp_ZBHhWV">*3StMmFi`@RT-%hQ531@_3,cVNVMW;YmN^TQIj10.L%RM2O1O^>7ih-M]>^
+18pb!GC'j,&4af^QBcH[DIM`abRlAO2_%4&+AT%XBQG2.C>W8e'FIa6#j-WlN+_XOj.JMkV]&
+eNg.S)AQ:%;-8C7$EPYnE]N\`YZ(gH&XGtm\,a&IpcuVBRhG54k'i<94\e^mEf,tr-gi[1Rq#
+lehP)[AOW`H\%f>M_dGa2;LOF'o>dRgIO-<iZG1^N>6M"cWCi'!#/XL/;@8f)okG^\d"q0`\A
+^)UPRAg(GeK7V/L2%r5buDEtb'0i3ZhuDthdG[Tb%b)W)PtJVGa+A+MN:U+>R#u4GW#_J&l0l
+o-k95c#GQGmN$lZ>$t<QD:\[fO7>1tn?.^q9`?65.@okn;D()`"B.p];6f*Yi/_FZ)W<oEgf[
+>Z%7VlhZ7KYR4Z+^ghoiP:R[5pFE`L89XemOa]Kds0'@RUHd.j-:Y1-(Yd5V,9/&Je$E8AHT'
+'Ca-+I`<bSg&%;-iH0ZMEDFLjRH2;'L;FqB`R,6F@iPg%mH:^7c4N+OjhNhA)lCkOX+NQYG$S
+OsAQin,>A:[i[N;l!dFcR<cY9U[De=WYFW[pO"7"0.CLhQD25dC%Q`?6K2R9W[MA%O*::ZC]>
+0:/\nI(RFcU'K8LF@V/UAYtr9B1jC.[-f%i:/f#`ipft72V)F@s8Kr!\!f<b_r#5lu56S"Sj/
+][:<E*8o5u]@S8@4G@OQ!A/8u<A"s>Lg9J@,77O@o```Jql61"tZlZ8`Z!)oL/IJP_;M,^!/6
+>-37",<*.Bp/f@QF!OYXF5b79Cg(D?3-<j9YNk=TUe?glM6S/`;gt^h9*7;k0@g,g(rL6ao#j
+ib4Ff!(Zs/?g$naSSgJn*4X#&X0am#*FMYb]56j/JsM<O?_FBVD&mHgSArn-oEbsK;;]BJ(=o
+$g9f$q\;/9RISsi-Kl_up2j`+>86H)ff=&FF"V2$LHR`,L[<O/ilP!'NJU1e0D44;cD_Y,89#
+s9-H[MZGAYr.KgEKgZ)'#58I2LD^^K2!u>L9PY/)sl5(O7bCF>>`n.U2I'u`**Ni1#iiZV!V:
+5MUb1tDT4..$M>f\6pWt:ema=CbI*F2+^]kL23t5G<!dOJ`!YRj@>Pt^9<_NQ77G:_6<&IT!M
+A^O^aGUUp^YS6rikJ`^aHt_32c1bndZlV:/!>Ui`M;;!W)^6\PBVh_eqMjknrEq+T(N4?(ppH
+HbO%B-$Jq-dRA3^9qScZ1U_Ztj%!p#UYuXS7Q**.cG5lmW&mT<S#ee>9b#W6WjG`+ZgnA:LKX
+U5jTeo!T<\e>.juu^iH@i%;S8ElN>ZP+@m^UhP?=GBE?)qP'Lbk5`k$/k$Y!rQC]/Lr$`OA/(
+Y0"'bog'AZ+;$XCfk7;@4qu";:(.$$W`_$dY&A&=OE#f7P&J4`.34unf*]uO(G_$Wl%^d`)R@
+aOJbR>$;6Uc;Ludo/2"ga3>Rl&<sDM66rN(shua"P/5*c+RsQ!ER0@u83#1IaP`[XIDDCc(a)
+5qI:S3[m,BUOX4A;Z:N^40-g"0$S=1!FmSr;sH^lJ#nS>4b(PF687[^=H7_BpK::"1-7n2BSN
+=n;i?-`B2Rl=8<`V><W\Su5K2b(EYA=^F\1Ju.RnD.iB>8iO(q4XFkm?:@^W"pJ_B9OVKF.hc
+"sa,1^77'Rqpjl9Ga`:<mRIRq,5G`_A\rXeW*O`/:GIOqg6R2&AAZ*YHC4!D$tCkgSq]QWAD,
+0u(XAh5ZEM&o;.Z(rF6C9^lr`EFgm_BKF)WNf!J>U=D@OK3o1$mI]",nS1[;hUYEHm%@2I0o[
+ZF2,M'H3'X0:.?(gi'`Bp0ocDslD)\K&NAMu%Qioscsc*&5Pr0hbt@:jp3*dCP9":M1"0s5WL
+Y->ZK9Ch2RDW^%<#2F()uOApH!(rU[Au,7p5cl22D"odo7@GPP\ImQ[<n^HmcCAA*FcO2R%EH
+V5mb/P*0Aj0;^-VKA8;(;ohZW2hBaDEb!1M+u]qX3(-&g!YG/Nnj;Dga9Bs&7"Z'(+mOj(#*B
+Xp?AQ09l@d4[OVo>VEnZZ)MB!j]RZV)FNZL3?aJh[)/TPsSd3>Iq3?$tWOeY7'&ig]J;#k0X*
+%1hu5S5+B"FRL1!M=2rn)JJ9K&Hl\JtibLG[lD52a,'#3I/lcWrr:2O&p/1Cuq!H][Xn.*B\9
+!3AW66RbMLj@@NB29f*d@Uo0o;qDpOcYYN5B/RPXBb8S*jjq/==/,=95T2KW83?OT/G:@aY\?
+2-&Utf(nFV:hhZTuHVAAh#sOV/lf7RE&Y*b'DNjrp7MnN6sG&BKJg&)JW%/:hRCL6c4d1$jhG
+^DODuYV&E6@WX7mk@.O/_7U&N7;-%]em'&5d@:S30(c\fbXHq4C3-)lKf0`I,%sA@MkC\KR=g
+A:-ur.M"*kAKEZiO;nB'eqI'U;t`@![j`"_6qN("SS?mNZp@gn?;bf@L)Dn,$Pk-n*s*5"2FX
+*sp"`W7SCpX%J[CBo2<lo)3!`6[1OC#LF/Ial:o"4-1FCuG251t5@*A##?.<:bcta43;Li__"
+/XQ8s[WlqB)o>slo+lf/'mZMT\+h(%Q7Eg`8Y!Y[9ZkOr<P&$.]KD6A'<[50oiDg_%KjZ&*L%
+#nq>6%G">QksJM8>I]Y<`*pfTsFd*50PC/O?9;Q@,(k@EM+;1:/ZdE>b43_QX`#0cJ$0(S`l!
+\iaYmTP=ci9;#T"eRBpCTjeTJMbo]IGqM^0+VUP?"DJ>QEWgcq0EIe^mNHsU$i&L]^uoTgP7t
+SL@X*jlU\rEXRj/nqdl0t(PM\Fb)W8"e3c/t@C%#J[(Vf7n(D^=6o7Dh^gXsojZUTDt`/bB*8
+C+^KSuJKiL.s]I[!\d?-T-9MbnDSX.f!g*?WQZmEkW[ZF/=7R`e2609)1jupI_r"bafqq6`(R
+^&u;rY\HRi7Li5b!';@78AJj<\i!'<B^qUrI@X*dh.`0On%'G52/c+)9p'@`toLdNE#+]O;=U
+jsPQr]oo&?Q*i(8,q!$nJ#YJ]?fM?]J:rF:r9Y;7-h$V,/h!8do8P.e967K!H\a01O&-a;1Ht
+(K(hP7$-IP01Wf*WtOpDjqdI.r.NDpC!KC,1!-C#@hZKg@UtGV;3(Mj*8sUN7u->Mdd*Q=JF5
+T2gGia*?k;X1][FX>(>@!>RWu)s(L#I&A4I<Z)Yf_lT/?&43k!SC7E7W.q57uAYG"8,[oIfKa
+Yt_q6G]+2^+/<hV0kkS(Q8+%Pj1RVP40nTpPJZ)1('fl83M^gDBsBK?B/,*U,rtDJar+5DFZr
+%s.f($K4c]>V&1\u?jZ1(d(^I,9sDde]+Nj<d((3`@[N'^.RO"n['#,Q&N!-h=9JL?1p0=H.b
+#5#<rhV[<3:[_3Re\?,Z*Wu@MokQ;'q#[%jajk>E#:FOQN8[(D;j\:UVS-PKj&Z:O3&6fkDcL
+n;0Y[GCl#%7`Q>`jb/\g&I.((3Qt>JD`Hr$TVmig)dQKNl_1YCNXjbp]OL#7'5_UaU4jDC][4
+SL"$?2R]RcA0RVQTbZ!GP]C:7f#>0UXohc%s"8\K^oQ1I^1:R&.c``J(D9Zj,aXHN(/R"n+X"
+rS0(#E_&tjHE+_&`8Z%5")#.\.[g:#X49a*r$K>4pK>N\9;;Z*.qh,mmR2!f]98#MV`46hMTT
+V=@uuX!n1bgDaLK5`XQTf%mr)D7;,q]qR*8M"M-J;Y"$qkBF:FcJ8-Bp.o<Jj$44k@6,"$Z@`
+\+:Zingr-s3j,O%@&6WtOpDjrVD&qk*AGRH/IC;\P+D3'#"B-mLq4)I^_3i%T(1)0!qe5[PVH
+2L;HHpMdX#6QNgSTu0R9M-&DU\V2pd^M)UQ"+0_-DW(=OSu^gQ*C&$$>YUE:m:s)/fV7Hk8iA
+3pIQ7jX^/N1<1,]iQ?HNq8XHE!P0oq09'U^GH?UX/bOr>U;8,P&McQ`2o_G=\>&:t-!2urtWn
+1*DM&(`uR<FW06p:]\I".KACh<<[KmW*F;KOkD4gL5CBmG$"!'ugkCDh2=QoJ/7@7/[>>(.2.
++m5e30!f[oZePNB"Z4Ia$Tick$$0:n1=U*PW']hWl"9j],aVF<e[KLu`\VK[BRpg'#pD<<j6l
+;QS</@e6hAKnSa2eN6g`.EuG>=/Y(`8p\O#LmfDWOD"^[:#>*?;M,aNU\33ne7ci>!U7ReW/!
+2Ee/O]NE4G)KtFk?H\@DT%22^VHLm!Q2ISDD$m_;o8K3Z;Du_n?82me^0SgD&iPXCL574=WC?
+YC;Qh:D6fJsB0-bWSd?bEI`qYGt*^N$ns)[Zn$]c4/V_N9!K*Ph7$N3c;[NF(KkcI8Ij658+M
+ZW%]@+p>.EjY7fEBBWN0PlAj.iM&W^BM$7T\Bb>##l=)ZOZ9.:e@?cK8NZ*'VK7gjNCCEJSZ3
+]`/s+5i3R(tT:CE(?`DCZ'Ca-+IYH,7'U+`NM(g[#G_f:.N/_l+a63dRDMEplbK5iu_#`EZA&
+(RKQ+e;Gn)?kC^U;F*VTZnnD035UWf`;gg't]hB3tbUWhZ\N<ZNi-fiu]/)Kr+5WT#oacW9Tm
+"jQ-can\d_gLU5TQtN3W?-$UaS&@E8ik*:qOZnV$,E`L,]Rb;J@OD_h7JJj^?U[eH^bPVln/d
+:])Qjl2F9I47fFObW=kK<soalE[UAHB]4pfD]R%Jo.!pu&DFUsFlTm7F_A^Km2UE&rfU38&/-
+.$O!Pmj)j:_uK!"Q`fd8>0.FZ9lV?:pM&r$&Y$7.Rq7;"ak=oI'P4&T5<pCHlgKe4i?`dR@<.
+68L>[p2o.n<nM*du1?RWX#bu9,L)G/T_SPaCLADaonYVS&*r<KnUP%/MoU>#!dG;f\>3Ia4=q
+dG2%dN:lTY6@eC=oHEAM%cLr),n_RMSuj;=[%"]+jT_k;bQKQI6u;VoAR%8lHnf-#=7d!tij%
+@mmmGW?rnJ6c+BK]84.[kXgHb_KZ07D]j!#rn$,2J`eo#F;R&n5qVFVTt_MS(LYddpGm=[Mp>
+sC3<\q>R%?YAPA&bW@jRQcLLC_cO.ifuojt)X!SsNtDF7D11n12)6+$a9@T9F]iXqEWL3s_.<
+^O577JW#t76qt?MZnL6/HMJ[DOs'Ti;=QN$i%pti%mI:q[q+In6Up-0uc^Dj^W+[PA]4pB%4q
+YKAcjflJoC6+Y/1.*:)V/%ZX`V2q)F!oeq,#kV;Y_-@THt9@%A_*3,d?L(54E>2$#;TOGU(QW
+<rU8R!LC$=54F76,]efe)7[@Wk@hY)o8KBG'i7&^ACaOD[Rg%ET-B3.q!u&MkWbN:?]]5D>a2
+J[aT&$#_%NDo,M8TbA9EL&En$^C&^M=LI@@$/JVFHi]Pr@6P*`)XU=q<<_D]BNE!S&,HVimR=
+ej[C`(^K6@L"*ee2Ve6AU"%-9rXXG:7*b+t-&7S+b6.o@RCF;YG(!^9bSJ58)t.t#('@VV(4&
+LJkb'B6\[-:U#_j4"@4gl)\`d`FQ\7L'dpA(\d-.rY)7eA^l;(pn8+baTp`g?<J6%3p9qoGT]
+`Vl,+63kB+jdW&C4CXmNAGZ@InMI.lJYN-E%qoa7fcEBiSPOXQ?>,Al6aBf1"`4R5PH"8st5)
+5@+aj6&&,Aoj7,=L8tDT2Ag"TOFrTAXX>pCo^o\DG6P8IW<:q]"b&KC&fC2<]Gth63JM$d20s
+=2XY3g,3P,%-'-W4p8b(kat9'51EZ.Ft[ru6+[M)4/(=;oera@U"kTaNDQ]HffI1r6-3l_$;n
+/3dX2`[Kk(M\(('bH<<>A;gdCj!Qsk<0F&W!cP,S_"-[7koj;;N!RIDpc_RQ(6_jka&k2>;#n
++8>Lj)$:k4UcOSU4]p+*&fZaicf5J[W'I3RnX;.kh";@5[PP8f?gSYLmFWII]K/H9p^_i-*L<
+h83plKYKH)Xjju9AM`DpAPsY19GZi7o7'n+I7J\3+4\0`@E?=W[`'-]@K!6-Q+!YGcTFLl2i&
+q1gBt0TdoKEIT_>Z(`oru+5CBJnKd<u(e26a_#o.)M/d=)e3<A817r#?,[kRXBW!:$1Em69_`
+T\Y7#h9_BR]`Y9)Te&XOAgfR3X;LMN.$6j)$:QHgQ(VM&,^BGTfp7.a2YRbHR0@ud;k0?<pCX
+8LrZ?L]pY,he[t"<:jeN,$OH:$:L6.LO&@.!$)@5!tVFHk;.+-:1`GAuu)mTC@\k1G0)f3)We
+Z'Qg2X@;BX))Tg:p"PMG'9sQY*Q4pl*co+d]TsaCY/"NhTqeJqgRtrqZf5Hkke_s5'`]JQk&W
+E/5t"kHC15^""+bGN8#5Z0fI2O_i.b:[4jAWHi4BInueB('8&b,(c^El3B[Hb%-Zp,dbi'4(=
+"baVr>"OhF?@&dA,c0$G,>hWi&M0>IAQFl)^aL_T>F,'_>osm3:8<*#HtVr"sH5OL^C9'aY9-
+f+8rhp^2V>0m<s'TAfYZ?5)*`\9d'e@%n%h?XrFb7QOrU*1"o)Ur>S\qEBN,/50\a4H1Bk]&/
+)<D0.[$pBJ".U&AQ0^4bV^co_PU4W9oCl6qn):co6`@FS:Ep)%NcJ[?%iHQ_!qMDC!sU28"&5
+3kl:'NHH,MRgLl.BMO8]S]K;_JG$$$d8a@R:U]5%m<T\1$)qdOq6nQfU*N;i\9Cn`[m&XnpWf
+u]o8Bt1%Cit@0=DQ]W5\DK0^N1=t[1%^4gW&$tpJSo1gP/.aBM(UYq*$^3WPtkcL[_b1kJ=8G
+H74h.!t=3@1CmaBJ^,O`qpl':D(HZ6:rWp^KWp,A]fqK"7rO?\,C&hEJH!L<C!\#nodepL*>,
+N-)o4'eGmmq@WlkoR-f4a"Xp;fRf^$kl(SYpX&^GFDjPD(><+cl`4\_$-`dTT1?f*:d"pB;(/
+#hr,L4,L9):NO$^E"<I5l$ULFJHgK3nWQLH?39)'*As+sO#Oisg#j?h'C0H8ru/2Pc!GaP(3g
+<#,69\Gi>0fdD;0U#O$YV7fQ6pDK7))j?h@a)o\JbQbneMGpqLlN'!n$On*_Jg1WC)Bi)eB";
+?5p[<]S<n<2T(=]AC)N-(:,VK2kc^dhbh7$^Lc?WT:V^]*D^4F7`eBWjM+PW5&H)^ih[pjIgb
+AZ@_=n>M=5b3RWum?c9`0ih1WE**0uEc=/DV/SJ:[=Ul[W+Ce#+mk6VfeT>G496c4?Rp%pCjE
+)q"L/RU:^0AZ->WGQFi):d+u8%.[TO*J*PgC8rDATW/Wf4fI!>E>cne&8`oU;f%`g.HX\$=]r
+_AY_l4?`dEH_+m'Q-$SXN_lnl$iAuE0"A7guB4#8dl8!tE1g<,0dV?WIRB<%:i1Qs.L0_0dGM
+(U.I9QY5Na1.H*2TAo;CLTuTqeFu+A5pOHOq@jBE^o>>:W@?*_bu5iGuqkpPmiKe.VDSrTTDG
+?(Q].Mk=<OIPSXW:i_tXo&U#:A'6AZ=DhIK_]Ye\miNg7='baY&IMlX^0_,mY-<S"":_*cE6/
+Mj5cbn65UCKGZUAGr&+/-"E\n5X58,GA]4b`%-TQpu],oRIo]`@/6.%Z"f.-bOi4+`oRO?SE!
+rK(!O64@iob-nJ4Z_<%J;,tK2R/9[,$B$I:ifam-^VG5IbHkHFB$S<L'Q[%3-CM7tCL_OPfjQ
+L9\R],\OI:Q0HC6KDD.;5?["7Ho51K14#?*[\ZqRk^e\Yi1P8Ydu9K)HmM@YqF.%$)P;9soSM
+mZfS11&58K^h[S`Jg'<-=TZiR"4pnO!&W_R35E!8GEdh6.Cgs#Jhk53T51t2Z`A,ggb<ZJE&[
+;I`;(>N*X7j5HMQ&r.Lac0^p+ZH=6^VV@,)L7o'B$FjOpOq(Zt56@/q(VpY>^RSQ6@(=]O_i>
+&:*:d,E/Z]H7rh,BCuJXXK<<hW+e8L5j06bEM4gE>3T_Pc$9iD[u!NR(4c.t?SXLp.G"@=a+4
+$a\&Q1[eb$MKpT@PK_dL[kU+ir%OJ>>deTsOL]i&HC6QFB4B0-S:S4'k4Hl@0WS\abA8-(/^-
++m8])i3QQ!E1if]HB"Z(12lC!bh;p1,aR;-=Z9NNu$B"FLH&^s(D"\^/56nX$a%&jLFG7b?03
+esp]5p,7%n9a)7_<ZdO-<t^RCm__`nR7CTM@g5tK<XuXW##PJoU0)F_XoF=h<;D"mS;t18*=O
+3SV-V\[%Bd&':Rg2jqQ;SBQtOI-'U&LnN>n*W-]Gg>1=OCoH:.TKk*Ctp-?8(A_SB^;So?a.c
+F=M'iqiW_X%WY.nm*bEJ:Y47TL@0iPGp(/"BmJR9j%dXK5*tX>j9^-<F77.kA&nQ-kk^iKY/D
+b)0bAAT24WIq>I#A];<f@TlnhY,iI@<k;=4oIDF4.kA2r(%"VeD5GTW-o;YGRR0;G-o;\HW^9
+!S-n#E+H(e&A.*)aLg-S)/-r^uiP!YkJ:_4EMjb8;b:_4BLJjKL]bK):Zr=I'r(?:5,7jN[_#
+R_"G">Doql"PB)s#;PhSX>q#h%#n`2f<$u3ip*5EXdYR\9o0\0#;@Yab5QgnZ;gt(SF!RN\@*
+TiS6H#[@sE#9hfm$4oF>:)]J5BlZi5:]_E\BHOb1@3%@9i%1Z$NTF);<.OqZ<(Wsn)jWF86KL
+#$V4_^mF=2Ll&qqq/_(b7:<@&Ukp!WrVO(-#Tm-dSbSSU!umC!Y7ok@gI)H!6PK=m"Wtqj6!*
+UH(hCNlE%J3HjM_c`n]b?&mVigTkY;Z7/F@QKg"?ZW(M8bYk]6q%E"[.*JhQ6YV;*)+lZcbYX
+g<H%r%%Kc(6G6n46c%^?G:.>/??`A&IRSM4Z-nBSl1a-7*00.,MZ]3o\fC]YjAY`?OTJfuWK/
+Ee%i:BUBs&)Wf&@m[X:(OC&7)dhh!=XVMZn<"K!gX4LX9f#OYd%H,n!O&Gp:uZa(lK*9%%St5
+dU]q(#GcV8L-.l.ISRQF8#<j>Jpof1hs4<I#qKF65MRe5r;dd2PA764F4<o-+nm'6lOQYscVj
+HYiE@OIkNfuKWZa=:(RcSLSegrCG**cs&L:nIn1GiZV9[f)8=.8tB4!%;oOP1E';J\q0.7Hso
+l6I=4<$eM;;Xo;.#HU]tQ=+Q]dKHTe.9U1mSDlNOitTH]N):-2U3VE5#\>]^66Lj43.+SJ_Jf
+a"CCYjjERP0)(VdS%_hICd==7Joa5@d=7aPeecPHF<K^T.bYn,`ZEP[>"7We>hf8WSupp^tZl
+>Td^&)*^k`MmI^V1D6u<uURk$I:5B>_-C*4B7.T)%P8k8d\-).OE_QJK839/&UK^5"/NZT474
+QnB#`+^P^>m6d&`U0p(F3Nmh-WZCG*m1W.<Cm2=X+*)1K6:$Y/M*c`sRrY0]X1ad!0deJ?I#O
+G&ZT3t0@\j^AoCl>VGcDDF90re`"]MDOlas\!%as4!K:_mL,4\EVn%T=!Pj^!a2/.YSlU+f,(
+OI4AS:(B&tpepT,i/Y\i`LgSo%)P15RieChN-Ol^)o&n%c%.AYkT<=`(k*OB%p"'r_8RQ7#&p
+7HH8@TVcl)@V&'f<m9omk#SC-<&(@S]l<%Hg?`p4PUU;fh8GX7&D9%5:4PG>Pr7q=S]K?'e??
+\Jgn`"a[:@qur?Q1-669)'*As+O6W'qbCR50JoH(s+Lsj[,8a--e,_3^Z\t;e\;AS:!kSMRF3
+hP8m?GqLFk7#8?H2A8e"#3))+G@l2-VFeALY4/14nW/\%K*a?Kt$<)#4l4=n%<!B60;R&L_4R
+;/ZRq(h*V#aWSU#Z\6r=o-35"j93KejG<#]Cc6jl":sR=ZZ7RrR)UY_=eM`5iq$qsfRTf=Vr@
+A&*d^#;/`d4:]gWN$J,KMJk&U0Eh=S3rAEW)5!@:cA;08[!(Jg*ZoJjUOua.`cf#JMV"<eZ3C
+Xn?>.,o'qS8hVEh7'O4W?P$jUMiOeT,gHR.6HJMJrJX8&bLiDX!Hn1!N!".s-Wk#V#o1:4uR$
+j.BmVE(3Ek96a$F='#9V#:=2$'$WY3)47ZQ5Bj:m#SG28ooZ_#`\Rl#dZ$TI>Amel@RLifs\\
+^GrEoE';.D%`]I/qWLTeoL@Q55q^D'@ek<!/e[I!tYjsH)h(3bK1e"*rJm60cGtd@.cX8khYl
+ns_0cYm)N*h1H2MWG?#(3rI`?dIe0)XYCG8%JG%`9-p8+<o$k:Pm7Jo1R\p>MMZm3]1YEOH*H
+h9bBUDC83Dd%H)m*Nup2j^u0(_=MC]Dnn.YaHUpIJ]Hk3>_d&3*j*8-.J?eN[fecBY^I6.@0r
+R#X+X8'pJ62-X8(aVn]<Pl`))0rBa3"U9lW3_:QeWekY,r9OnLbO0oj75I%St</J/KL@t0lZG
+A.Q7'VmHS_ZII4WLmZjJ@[hlqUmdMQ5MUVW:<_Jbsj?d\#K!rnJC;)ek]0*@dPa>SZMgS&dKp
+7.DEppRhXO)Zr8YRN9)d__f,h3;tr3N9,q$.\.V8\&:JW0jG2ED+2%BoNJfD+*9a!0KlQ=sco
+H\2XO(,>aUgWW5[,=6bW'CT#=cA`K6OqI8rpte]W&ea=t&.q;CbL!6a"83C-9rFR0p>o4JBQ!
+3NDE7Qjf&*TMgY1<S/T`Gm1X5Z)%jJ79EX.Vmn58;p>1ZTB0(#ZA^@iP$oc`Kng)431K"$"*t
+TMMUNI+A;p41D,H<_3.-e<0J+FXL=dSYml\kd1^.R*6\D":Zdd=*_aiN>[9g;tArDF=DJIs+]
+@c>Ab":]e<&c:uAGo6F-<P&]FI^l>8q(F7(r\F9IY4A'$EmB9-%<tr=q3n;>Y3mp!e#&nMS^@
+Q%mbS-#GWA(4rCrrEoUpOc9'B-JM5%5fbcmj_)X%"/8-'@f`<r(iNsKkR@lIt<"BnYnV/*gGN
+'>X:29<.4.^B0nRg9bE(l7d%B*:cE?u)F:bB^tFca\KY6K?M&6E:q"PYFL&n>thT44mT:GMT^
+Hu_nm\[]R[L64;[.4uk`89-W)ks]pXS;P]3j^a&<HaJJe)WG^lefZR9*1UMgJA$E#B5*g.d7;
+)2]=cX?f^Tc#DJEHn]>YO5RiKp;W4pBn$**>kN`0A]I#R`nPhfa70W!B(D5G1nb$QR*Yl#t>6
+PNk#@"@Iaj&-@OARJ9LPed$5(o-ja$ptS3F1C.`hM4iZ^2ua*_P[lW-ZErC+,ut:"D=iM[c$c
+h1]r!#&#[Wb1uV.R<'>K.)bN7gG2bq2T%DtH46g&?9J^2t4K1eE"-0=!8;V'b*g8rhLOCpWe6
+oa"40)11_6s\e&S"`W2O*\[\k;`3F8m2O$tF!@;@Fk^n:6&mBB,MBd;tpY&N]B#1/*%N[NJ'V
+3'9uPJ<i8:S7V^/H[R_tBt@$6LB]]LVPn^D_b$DOg.Aa/A;d!Qj4)_[rgf$Y<8F3fR#:3o>?U
+tVAJWj'U\$%:Y>@!ib0(LnZ2>5'5>c*k^dNR:LG=R&1GGWOS\Tq=^5Cot(nEs?0aF6kTDG5Ri
+g^s)/pulufa4/d`s6*64bEF0GfPD76YIIT>CB>9nX9bV,@9ehU)PKPGeOj3Ff<pO=?C&qGcDW
+=)Eb0WZiLD3W)DV0"Wie9?QCV,fNj,8;Nt6k]*)=gYZVBC):j_M[Y.Fr<PkZ$.hoL`B6JP8T;
+>P8*r_-pJq5moA"8S-'B)oXcF]STd_8!$*(L)Np<u&qMiWM>m.[g;6aN7/(QGn;E3dYQrCqH/
+;"k4&2R`S0Q;KQ":btf<FZ*F&qM!(-<*Z9t$L7pF]?Jtm8h[I'9Z`?s1f=/kbDd3a9;-og0&l
+1ZoJq#*d#l0]$0^CD1^\(:kCRB>_af0_pi+fB1N%Tu_YXhU2h?1mEG>o#O5MT?hR)56+hTi9A
+KO[9TePGY&^U40\Sfp_;:gY73ZQ]0a`c1@ipgVO2)qC$FTW,P+AlU_!gRfmXi##oG1BuU'\f[
+m9nFr3fHeJV&jF9:$(k\phtU`Mb]#;]=Gi4d6O>B`)2N8jb390p@8;O?%!$B[p&JrYNm;[t8*
+_u`[lO4"qq^U]dHm[N6/tZX-J7troepuP;0RZH@CBHSMj7!PC9CE^Q&SkD)PHXV'pg?KRIt17
+9W\2a;Br6WV8U0l/rIDU\XoNj$GW6!7spK?\K!fYTKS!i&nm9bC_UO!BF<bk*8^GM>p%qnifk
+C#]?oKORhJVXj0^VS3Wc,m-S8.'iPY_fn&'3Y*&jSJLhD&'F>o6FnPglNFa-62,OIJGMM'0Pd
+boWoO#Go.(%s(RTth^0`-']]6[9-`UtA]OOT_.(+;A<Q):k)B.Cr.H'Qa;m-hfP`%iJ"qP$f]
+`Kbsnhc:0c6VC0<]"Zkg+H&))rg1E<*c/IEar^Da7K.cjZg$>=,-;AY%D)D19Y#4ISfQ!HC/%
+$/$?";%hS$#S/RHcso?D>S9jUY=<:UuV\hbs.WCV)"nMUgl=l!WW9'S",C/O^a[p^mZ]`0i`V
+Eqgc0pJZ;iJTp-N7r^#;[tA@]_cqT&iPXtf]]R3a0"gPdaU'B8EFK>0N'M:"Eu$l"KXq1Hdta
+jGOI>U&&Pr+nVAkT^EMO8'FZ?0cFZU)?imD@/1t]"O^'7Q8YXaQ+$LEpc7if``fNs2I;M_?W=
+b9?_fI4c9<I=oqI#=s;5/l<lnQB<Vc,J34^uml`&^H+k*MR1t;fd';iT(F752*Xhol/PXX,@`
+@#9E0Ga^.'R2O_X!]KsFh]7-OS=*@]E)l!$5gFfh/QVB\CA#@tu`p]k;8>UlpDTXW:?;F]/CH
+n`h1KJ9?q3[Eh;;B%ZAr9>^p`9U:LputhaPj60hFp5#_!?!Q)T=48]H"l33P=FnMa![#iWV:%
+/j/=4ZP08Z8)5#BNSnM$N`tr%&=sk,9cor\j)Ga.7NCj4Tl*iq;:UL*3]sErU`K>:Z*,#[)XL
+I6:BSNblr%;j!p+HeeR=pU>AG@E@WN8B8[,H$)oPi[L:+)WTS-)Q<PkZ$q_p^,^[XlL&ngDl(
+Es9@3?-uM!^1Upo$]V:a_BIIe+OSJV`9'^<X1383G<'?NP/gYhk93pNE-sH@FmC%#MCgsh.:=
+SZ-CLY+5$3+2&E5MYd'[tYGjW[70hp8epg<F3S(W9g</\:P^L8=%E3(J^J3+F'Y[=nP'ADd71
+Lt_E$BuP&pQSMGne<:GW(BS3RmlpN"<tAOL]A\Kr5o8EWWZ/W#<M5,<0.de:PS*3&H/<IAf'a
+J-h8SnQ6;Ih0;>KrLMT=6_tQFgTdXk]:0tp@$_cn)mD\`1*s@ZYYC.[FV)[!V$<Eb&6<57"</
+hpIMErU#]!'-'NZT.MRe5rP?l/j+W$?Cpr"#,EoA&A+jM]ZHB'%2Ve5._k+mcU2f11-3]ZQ"F
+b5oD3;>T4Dm4GQAh-Rk)R%RCaKC!Wqq1EpF[&c>@[iK3hm05NRL<*\g"8TUNlk.r3(Nd7XDaf
+6RC2K^qC\gE;:<6P'udA\r$4]Y."%&,3oX6_:ZikDi+NHn-1GFb[8GG,nO*qLcf&k.Nqaaiii
+jAW>WCq4o`V;7EF91[7e!>kO'3YD_BT08hhQVl<16Wl6q%X[G%6RS]/q1e@@%`kgTdLgjio4&
+@(R?3)mE%jX\+B`fHSAu3c'sF=G)T2CoG2T$.`0cSJZ-8p_73aI#>K7_Ir[_Hr=3s^f[+hq[>
+p'&8!'+fm-?MTkB*Ydr]mql)*9*gRfJ!a^I952Hn*[35Y[\m/<43CGZLKfM=jV]7-XV7s98US
+WR(XgUc&.'q77`q1@nXfQ`FV2C_q13(*LUf"Xl2.Fu4%WJ]4u8mYug$PX[qq(i^*V6G[U.<.&
+&K/lnD:mF@I!XI_0/;hKbGVf]J*$ftqikp3up:ITUKh;S"-VuOX]jo\VJj!0$[UAh@_unZBLL
+"NY1gu.O4*j`[NA<Z>3jDtGm94=Aa4=:IRN^*eM],e<YZZZS8dH.Cb-A2])eIYuKCr-DYJN=,
+elH1\(kONE.H+3IQ1-6brf'^"'q`Do5#I'O>R3&<ce/;rBBer+l8G2N::b+_cutVJFq38?*Mm
+>7K3%\MfR&nG!LbXiG_lV\]1g]nfjUPVMqYAef"i+BRm*P.A#_b&j&rCNW74Y;VS&&a.`u(+m
+7W\X_!9sE4N#=:'\BQo8l6=WO&AeGm)`a5%_FOLSUrg%E?)TbfG2E/+El%=V]S!Jf\sdZ2p,D
+SGG&aRA`ME,L@$5<B#QY9[LH[2!4MT0Wu3)p6q2uYYb`;.p"8&VbrT[h@T,?H[6iLST`uIdf[
+t]`.Vqpj]`RN]=BC9#19@Om=t/$'5p1`O!c,_VZ\f8cp_6dUI#>K7^aH[M:Q1DA6[-'PA71G(
+ISTe(nT)cHVi-agdXICg5</L$LMtOcSJE^\YH`S=^&9cpU<-*(M$>3:^88Q%*FD[q8Ze"iT<R
+Ee2RQG(L?d6(I$^j3<5(f?CQuTXqA1T-NjX"o*bBI',uRcE;_2@&,t28Mb:*u7S+>3r_kmi#V
+6DD"9lY!,@T+,\+G=eIqB>Jskf$"M2S--?JW1>q0THTPfJ%md<c#!J_[n^7@!s-JS$Ch'ogZ%
+O_>8&NdplZ2f'0D6Mm_qSgPWD`=KB8A2:aZNTRoE8JH>m5"Eb9s+K3*p.FqI,N<F#H!&7:SPj
+g-59)'*Aru7TLJ)YN.`.\@!!h>gXDjh^Xh,ADVl'S:&:7I5QUDt06DcU$m*#dm'5C7bQPF3a2
+NCJA4@!<F%d^-943ZUH4ZFu7"/So=aBars"oBf#]WT'sNSlG1_3KMe`R#Fhkno6)h<V%pOpK)
+BrQoiL%9uP:CXqOW^]Dsqm1'46S8-fbC+=]WYJ=lm`!r)rg$/cQ6/V$IoLB%thN3C(M)N:bKF
+U]m;0XM#dCXBNpju"ipJT2-Fet@@!oP;ga#.c\=Y!Mq'[&u^d)JB+.ciC!E-(k8!5TLsLC&f\
+Z"\=.V5/g_4T475<iKIB_-Q6DQ`8C^[!qafZAt!$:4]?G_l($h1STYrhUDt68Lm;!K/VC^icR
+Z]q1\55mIl-_C"#"iFT]_"=T%EL*/Tkp[[]lljXW!d.oDM.mUZ1$#^8^%kEh9Aq#oTA9jYKdU
+X_*QGdRmPs.4Jo+LghON"Peb02WV:iZPBIA88L_B/#"5@70nc)-\?gUHs>Ob!r$<:2T)d;':U
+_j$"KGYZ3f)VYQus/`./DI6C9^KZk:<;kh1d[%FB#Yk6C/$6b=E,ld<9bc0M$*#PC,7XFk7>P
+\Zsp$i*uU#p9nS7KBCf<GN^[K8MN4I#><E5/l=W`$_sM:OEnLHQe+Z\.E%UQMtUp4S2D=0.1%
+hFP8`hj2<@dLH/u.%1B?Mo%/=slfFe-QVHg(ng=Nhki-f4p2odC*A;)O^5ZL.:tNW]2#LJ#%i
+]dp`=J2\:VftM2UkYOj"%Nb8]hjLH!J4!.X>";RW9GbZ!'\TJGYGcLKl,\Pt4mt;1\LK7/%n<
+#JiQjgC=1#pr)ZZiSFai/i\#`@OK0>?u-';b$clWV$o_&(tak_m4`I2BcE#cd'FJC,3VJZg]H
+:IBK)]71Kl`2GnW#$W.ep;#h;Bm2aFVKo(Aqc&(s"nXFkUHWn'K\5_T3t2(2[-_Pd/YiD[u!"
+/#K@5+,Du*\;=d``RnV&Anka"ZS`i^bf[eoM*a!jBn*mg$,lk1!6!'r56\7/\EgZli"3adUM?
+='<`6uftcGsrhS]f*W/[Q*\@h<][/un'0A)L>g:S5Gtu=:-!M'G,Nn<;^+86C>.u;ZWg^+^pe
+iDF&G(-,lU6sD=Y&Fja<*_9#Vo;R%O5s!nO&*R7(=/O.a1o/IfR4'i-c;W$!\*&*l5dDN:4g>
+5)`IX=oh8"LA#(a&,LIe/;?_)j"Buj6MF7=GG)8^\h[sBd(UO&gX*SBR]TDEd'*\Rbtr;4@M@
+fhe-R;QLmed7Y".#'8CjJD/]<6@I+FPO.C)S@'Qa;6:Mpo>LIig/R><R=@5PpD!q-=1SE9Z*"
+!5`_dH@<LP(2.FA`Kmi3ehq/9"Tec6&tX07PCs7Bf4:IjAc;cFRcZ.]cI#R`uh_e^5^,J)Of<
+\i<;*b2mPe>SW]TpGYZPmHFCn>VO"-VI(,QB,]'F?)e-NbcBgtI;+S6JcQ`B?EqRL9K@DV$NZ
+nBYU.5eZMVs\cHP6<]phJ`8!q++f3Wb'N'8J;k#\+)o;@RCV/-dm$(^;$MT*4:H@+l.O54hgK
+])qiBkhH9rDJ7"&hhBXPB\iba3RhVRfFHFi.(;MdJp[sk2FFnZ2*shmU1scUlVXnsijC0JPjg
+-99)'*As2&Ctc#f,J76ZNI0u@%Kd08A70Jpu22!7$71W<KEI?X<Wl*8W!9%Pbf<]Ve%(uue;[
+.SI`bRkMl)eh1Vd`&85?Kkk4NdY);C88=nVC$biiC,U5NU0^9CF.:WfHI/qStF/MY*Np&[T<"
+$KHF/k,N_)L4=/uk6G>)1X2r&-grmd/7-Z'D'SrAHoEBo?8+8O_4U;"nnC>E\#PTs_Sq]UeM5
+(o;$=gI\WIa^K=<>ME'Ea-<G6m>`0NGqkKq??3r@%:NF?Tc^5%lIo?@g\@B\j2X)!YC?fEkP<
+P\![-LO:'+[R.D+24GcFKIS,j)c3d\icQYR$^%*8:Q\YoVjR>t52!^@8]I-R0HT6P"\&P%cS@?
+%TSN,;$omLDjG]YY2VoM:?c/D>ns4uZ%W\kI'>==]9UglK7c#igH5E]0rmJVu3Y#kLV2^gGf\
+=?:2)M@JC?0Rg?<#@G@(2XBlD^,TZ^+rhWN5//&tZ.7S!Yeh4<rhj6>?XN#Ph<>SO01cW<OX)
+6Mq9\<=$?oi%(0n_Z)B=0>X]>qZL.W^`gb:Eu7-%Z$M?k"7%[DA/I@bJZ$jr$ZcbNO2H2F4]6
+ADK)QlRX.VNSmA"?]TQNJfpH_^Yoj0KAL.Vm9/gtm.?B2VaODRFG#gt<'g'!6D'cS9%?c&]h/
+)aFNrD.er8Z!;lMX`ucM]p(VGX'!b/AopFGo3(2]T[n<qX'fXd5O\d0KiJ9A`;,]DtW_J?;?q
+L@A;T!E<C^Zii&Fn*PAPM<Qeb'GccZe9t[3/^RBS1]VM9)aWD6Sa_@hhO,SfsG"[+SRX,9%/,
+=md\oN6Li]/1:"oJr-(?EabEsATj,YfSe61eH9ha-`Gk"`bM!8h#M^&b\MY1MTV"VXLeT>[)u
+,:?lI!>[\MNaq!Mo[Ud*$mljN8($oR\ndsg!hDiS3t1L"Zra$q!1G!^7KW731fQeA!Tb@N`/s
+FUh%%NK:pUU/&ZW9)Z3_6b+l7aTFfY;=.H+3!Q1-6brYqKks269&@3WY/"i^V&c8%0"Y_RG#(
+j'e,P&kg'Z-beYR:5rnoNLGrjBqkUlK'TRSL-CV]P6:l(]Vk2f"j']8$s=Nj7O0kS+s%=(,`9
+RE_s^U,qge$/*EaTRUuDjQ6n&qX6)hW%@-i\bR<P1>/^#!FpRk'niGhq77N3b3@*;jrs7"QK[
+1ie#'8&YT8)f_Gi+-X%G*$ghSqqc`o"_%$6uajq?ec,A*>3I]SO9<@$\]P*6)X=;hse=TpMJE
+.HkN?I0/e+d!?PR#GJ,KqCsftT\9of,nt\Lhi53QOR5;-)5Q"`[2"kLW";;.&S:8O>$JkAa=?
+.IbcUf&:G0n.P*nb9@n]=Y$o,$&`;jDS]KaYsL\IY_FttnrTUk[4cAaS59YZiK(A\7"mH<kCH
+H^K#kVD^pJ^,l/oXrkn#p'&mdalFq><(3P)]B3eH+f>@'n9*/U>T$3#O?Y(`lkdVPO_U/J!SG
+daWJGXQ.%/@73N*AFsDJ;\Z_.C,LqXhQ\^-OW".c^&NkiZO5Y#0mmD>(i'%NM'-*o)Tu$N9(f
+Or*D-.`bGnWQKA)K6:.:GCHP6/`;k]n6*cU%R^3pWGc)VUs"IhJk@BKcLB@Aj^2TaIeiTmR!#
+I?7O'D@^9i:pU8P1/r+C7"gHB-%(TX&jF:i5O^*Q1]O*B4H(s/@WI$V!#K8cT4Z<bkS,7:L*m
+kI1Lt!7PRGC![k_?bIuq#8SEZlr9Ws;^NV"(Omc'J&Xq!L8r):e\2Vr8D]npnAD/0(,a>"E"P
+oNZj\t$OcdjjB2[CdjJeS5RcGbpT%@U:["YDANur(4[GO>e=q7-5[k"sgoK]F3*p#jW)h`8$^
+KleqXKhG<&n#?Nu,+(:lIj(C'sKTX`f^'DhC(cmA%7eF@tZO3R2@=/5A-dhl:oIlk9%c),<ld
+1(hX[ge:,W&:^I0:"7TrNk<!#-'epS4kmZ9>,u6b3A"AWU^s`>48`.,.S8Vt_b#;p>1JTB.nN
+8S/d,M(p%0_[o`S9Et9"QAK=q4cE,*^6?r97dRd#@sF63@>:il=u\af\UFa/kr3\7`#0eJ##9
+BiX68j[H?=7E3RpT#$_:"6C?SLCdE%e,:+0gXE*Q.B4b&f<[$EYH*3&(C$%K"O<QngmBbBm(O
+B2UuJp]e'IE5Y[b)F9"Lmnr5,('tg"6R=KrrRRT_:o9?#@*n=nJNZ;_>$$L[:A8b=O4k4N1n]
+;d%KhJQqtQJ#if.Q;5*kek`t@Z$+^esb0bYXX`\<+)OdEtf:q5DW2*62K]3!m'%H<(X9(8++P
+haO*KY)-Ka?[4X8&bHiDX9Pn1!N!IseOVAg0p(QsO/M^uR&1dnG"RQt"jmfHasM7W"*E1,@(#
+<e`17%5QGZ?nW>?S2W01AAGuB?1dGCe%lnBI9LsOk\[#kM&m-+;UaGmQ\mCASI5?FVk]iI1>]
++oKTu1FrZRu;Ou>&8auLs2%3\4Er!dp%EY`2g+uP1p!90=W]nGlN#l]W?'Dt>p0#DCS]*kbLE
+9K%(M=E5QVSgJ&Yb$KD%7@673/bKtQqtWl/r]7lkA>=U"oTD(Hk!ZRTm[77-dX>5o<Ze+"18O
+H:I=^WPYrn>6@JoW'$0d?AhTrh<:,@7$l)tihMeb"-%(TR&jF:i^[T@C\X[2J'q_<.1Eg?GQk
+&WE/5t"kHC15^""+bG>dQ;)@r.C7@G\IKC11Y7Oa`%3))a9]@`ZW`J\`talT*k=3?83*hJ&b"
+KsOLDd;VQL?R)IKoI>,j6'%Oce^H+F]9Y&u?.HS6TsKo3MWlPPUkgs`S.P0#jDDtt+u=i#FX4
+&E>7eK*n0!>]R-TD)&q";9It7EC\1YX,^dL-$047J7OUbJXLZL<#Bef*3qEBSC"f>lK5<t86h
+.l027d""&WM"YSm4Y57J`c-h3=^0P)P2]K8LSAIO@"C-FU'%QTOo:AHVc#CU`:-(+Pq]*+[kW
+hp_6jWI#>K7`i$%u:OX%N>`@>AZQUqQ0G@i+QK`*IoIr/AP`s3\-LH1g@q([Z@4k_$[kK_]=?
+l9K12:FN`/'Nf"7L@eXCo%qGBF=.)/NfeKaUVFf5P'@\OHd&$n-Bk6,/qroph.aVNsCpIFXjR
+cs')FR%A>E7/T\K[t$*lS]FML1P+%8'#,YTMWcb2^EN@[k,uNb#i?AA0>i2E/i+J3@,cNl?c8
+<4,@.O&%8/('^;PO3I@n<&%]5:pCdlYfFJ":oK2+:GNR5Crp=I^g$CY=Rjoj2[TqNO-VkJJFM
+C0O5U@'.7O.k\J81RNE)j6bjfFG0bKMPHG_P`du(I!OQI.E2#N\M>Y0#[)XZN4ZN\MVQiLRBT
+gSP2iMTq)^29T:ebbbULq$Qfd4dEb36'4rkc(cO3f@'#8@4n!Ua^5c&BUMYss0[dmd)W"CKgr
+Q^WGEiRc(m6[Wc_-4)[9Sf6^7+X+c;cVBAtYZ<7(ab??bdQ?]uYJ\E?fT6M*DTeM5VG')hMRe
+])hqMnGN^_27SG")M"Rn':1Cj`g@&W7TdEZV&Mc<0Q8(]?c&mskn=o[Tr/@U/^U+Uk@s/:L%Z
+57)pkTOo./1XK_bfijA=Amq(rd]6N.,Q%RX9NRR\OWLT8%Llp=,Y`*6*IWJ"(;<PkZ$qZf;8J
+)aI0`?ua;5/QCmQPZ"s0K7211p\68VjMUIBp'>q1H&i7R2KVjb-Zle5sFYu_d94a9UV8'121.
+%Mb-&RFRXjA#qZg-9XJcDM/a!bC;q21;_b.[9Ym*dpZi]^0j;c!P`]]M,`G^nSs]8p)&=qXA6
+?Vio(0rY6"Un3Bd@R@mRG][n=L!C`1.is)gl/b%`A5a>ee'o'baY&IMlX^0Ofde"H*jZhdYL_
+oR.2?H'l=!;2:`=d/>]k+//9WF<<dF*no.XD+*t7d(B_Y8Mlrfl8^9YTo_QHMn6qP4+s%)O?S
+8r$:r+6.#3$dau2VoTnH4(<PkZ$qepj_rl1k?aMKDjq%3-*bQjN-AU^)k*\L5Ck@AIn3BM:?A
+k/70B%G,+L"Sb(qjHj5P*nriArOqNR-A'LcV+Sm3i9;Y[kZ^UF;#a2pe]4jND-==;DP(V9$UC
+!P;4J#R?TI0c(p"'.eu?R6obo)-A5%u(dgKE>Srk?;Y*E^&>)C5)IX/.DTppghZ;V/GfSbaKB
+i^]f.leG`iife&0mNMm=iN<+VP'=kkc.XDOA.inN;-35kep<T0m61F=kitU&BDHWmTT-bo9Ko
+MM@<k]`@/8:cnjU;:O,]-:LWdU_6YoK4GKBG*MJFek5]OF8s*i--_]#<u/=Zj%=tT+Vkhq#d?
+#+_DDWA(8b2QZ7sCPSHTu(UWa6)De7eBr#kV0bkEl2B&:J=Oa.'#?-MW&n)1L3b??O-EOgeH9
+jH7'Ve3)o3>HU-jqQ%]RB'sq``t*:;Wb!IP;$([S=%uMAjsoNR2%E.Hj[Ce13'+a8;%Q_+Zb\
+R*<^"/2\#don4gabKR4?@lu;l_M,B4=a-[Sdf3fVPjYDQCU#1f8'?iq5$nuk"k::Xu5d*Q<-d
+]7ggPWEqBRLuImm-J&e8M)?<N'5Unc^G%6[fGd:I4\6C(<UW!*,(FZ547f+Pr-a/L>e%Y7a%<
+*"+9%?=A#2knPOH\@BE.$6q&0X`0uL5_66F:)E+CE2l09JWg8k$a^X.>2X@NecIE,%Mm](?uL
+VY!_ih:$T&RM<M2P%N]_H0C@c8bZR*qp4>hDao5)WLQ)?B57@s'4lgpA&=du<Gcg#(6Q<Caln
+M8:S.9`TfR=aN_Z8n^:8>_J>+;RHmMS!:"K:&-\h[c=i\%QamEQ\N@!tu=b+33"N7Rlm:'c%1
+[%Ui`FI=:nDN#tagcA6Ccn4bjUet]PbTBl!G(?aEA@4TV]j0T$ZW:>$5hGiGk,u,q/6B:)K3$
+uOA20_HF6WH)g_'9]I/&ojiC_pO'7ViWDc2[I4V>aa,T475<i)=$h^r6@b"\&h-'tB?<+OA_'
+Vt9QA3L-L`R?Ph$0@Q6IBTBtj>'%(331+3*QG$FiZSZ6-bgMSaf+RaLlr]u76Z%Qp)7F).PbB
+EkFde;(WmXkDWCTteOS',5HcXorPbqQRU*R_#'ZDMe-RhYcR%tjma'oO`$mI-R'*uT4+,)q<R
+39.`nG"a"K@>`M2s`0L*#P0\n2Pk9K4P0eXghiVjWXOaJ04[X]brs[(lYuO"+<*ho[%a?'-5f
+7BPkeX<h+'I],J>a`g[E^9neq!32(k-Nk.9mA>lV]</Q<.GZ99C("i+:5+>4?'O)l2MRgLl.K
+#0$T!:C&H%tlp=Cts/ZT1eDkfIfo94sQS=k]3U>N0=N_\lW6Zt).`Aq-8_Bpp-loT7',%4QIs
+W)']D8R7M5,hjBEjT1h`e0LtfY]5f*74R=s`$pbR5#,7>[4t9`XM.KPI9&fdNj:c>;1udl"d(
+q8jq,aE/ql@nbeu4VKdVhY+E#H?iQ"Y7`kD0'N>jKTGJH6?b;b6r0JJ)B.t4qba!#gpJ;\h0Q
+uTrqYDh]3_&(r&9TO7cB[`YDMro1r>4G?DhU^To2-t(6b::0'KNs(@j`n?H:Wi/p%1Ys,<J<p
+gW2tMON:J`?/)aE[Q1-6b<q.X:NDG!<T4LK4%->!\@j&tJ/>niua`&^sB82Uag=*DljQJr@Ve
+AfPP2p#6rCQ]HTK,;:K#U4t(>0G#50f0*FYRY"ZgBq\U25]b';7J(`X#T=W!lT:VYi(46^3:,
+)ko11l6%A\XIQ25T&oPXbu#=N+HXW[%_`@a.<lJE`Slcm&]R3MJ'?kq5=U(2mY01#M[NT,\2&
+WYj6.M9Gm$?6nXTh"LL:t7Kg'lq7]-Q")"C`>[,#EIUU:bJFne4[pY'Ve'ogI_6\AIjGe!i.W
+ZYB;?@cU,4B7.aA<>B8>)GhNYYTka("ag%=W+Z*Yc3:OYuSZ=R/8!#jB(kSAh:EK:R2A]$tM>
+eiH1N[1oDDCRGqb7p*=KHN]uB?K%:&VM]@\^5L/+&bqY[Tdhno)_QF1;pXg(T/kkY<[Y<?H@T
+/AW+Opj9S>U+nauLpQPQt<?LGD)0rKPU5HA3%S.t&+-ZeS39QbqJkGk,h:i6(!('IFKta"\XS
+=;WuK(nQB1O'd:ElG]D8r@[_&nFHe,j"QJ/3.`2%^9QV5&G-(gkelRqHtpMY,MIM6@5lKsdF=
+$IFa-E7;seh1'rklYU;9DY:,G5=_QuiS;rFSo20G#'E3KNOUl\QL;M%%HfI=i615J=0DT)Aa5
+"/HXT475,I.F?5/9<Pd=I,(#6VC\*0TbF5RaW^3;OgA-q1+Y8g(Uj43?%("N7JgtpGj(%ItYK
+IR_pt9BtR)+Lg<=3KBu^5DP#QB[KY:r@$@3$5Lm)VS>"(qV2pLJb.Xmk9ppdE*_P7iG#L088f
+,IU=RN!K:C8*V3:`HXiK"Cr:LQ)2OZ9L6@1C*e`76kQnY=us?8$bN_sDusJaXr41Ch;>\jl1s
+'qH+f3<\.<54-6J1YPN92<&E_R_/+(*q+:3PR`[V][;bk>+ocP9,bI9`cDTf=5fMZ:FT*ja,r
+D&P+el[&h3NS@BTgn$C$IRXUJE+p_7-_I#>K7`$`UElmb1:L,*")1[pL4.8D8TH,-B^SVs"sd
+iP:O5"D@fNmJ]<--X1Zqa9]Zd2\rrJ];sRk1CEArXM$feBLlQ__rT@VV1%,ju1a22Z?.1S'!0
+0>a4,T]p#`d=mM`&P1;K?R:)k^i]gO_UZcn/a!_eL@lT80)-BhA,]GW$_'fN)\/`G`3W.sYO$
+7s[L!bl$(CUdq:#P>WS0(,=#X5`W1CLQWpilc\oqB?`1F@KWKVf"CG2nf.%@q`BLY&qYV&^pf
+nR=;GfAO.WFU`S!Kr:06;;d6ML[%\^_k[78]sE^#U.Y4Us6G-u#="<;&<_d0OG4=pL):hbB`k
+/!)q[u^`G!ePCYcBqlUt7)'"dHu_(Ai+?0QO?C`f7[?+]YW\CE3M[90)F45F'I[6OcW[M13m/
+=Z[W6eAqon%Ef2gtOo]\T@ec9ZYGG1NUl9chVS+ba`_]Z(q@[q,j#>"ZaZJ`gf`Hb.rrRQmVX
+=$H^?5"N]bu5K`0C/brZ5fl7L.iMk!_0ui'C1e-.U_W/Q#\B+B%4FD\b0!P!g>DBZ^/9d`FNm
+hhDQ;%Ht4N3&=XRBfX$#]!;9eWPn=kU]P#(>=/paaP"\?;$,a'!_I,tD+n_)4_beBV'2/84)7
+6d.X5h#5IRc`C/ZI)5FjVZ$;pp0G_:f<B$143+RR'[=Pjis#?h#`YaeD#b%Df\2)kHVi=Rg.o
+;1'K&DMDB#SciiQ8Z\cj&IiJg"imDQ2snS/`[)tEJWXPJaMlL8%1SuKP)<Hqt/*oDXk2IK5_*
+\Kt1>23J>qas^^JtEf'Il3N,@;-m*$a;$$$h>u9#P56`OboJDQnJ3E%EZZ8"N]aeYPc1/s0sA
+IX#r>dZWB,2RAV\-`$ft&BFM65,*.5oNXKYfcbi+4E0dV=fQ*F-#J#234&3&kT1p]cfZ/_b=P
+q<5*c<]7e'4mF<d&NDEVb^#i[Du3\F'XGg0*.LP/Ah7`&.d%oG=ZFA\f0fhSQqOR(JF4T/(0m
+1NkL$-e#N]5kB,GHjrg1ph1*94,X%U7`,DZ&)kFTW#J!=5MkkHHTcV_)t.n.mA$UBJiDGgnK;
+.VKs(ZpgkSu*TR8+nBu\jR]\&&'\)Fm".':CN[<SDMO&t;Fbuh:YO).'Y"Wf'^iEG#@L6\T;;
+1e^T/6e)[7E@(!U&nlg@t#ISF"es\ZSR_m90TgV5-@6CEAKi%kFXu]k8Hjno&;XT?/aJ[*5'3
+gUHC9JhI.<=fl_kdca.,;m:U_>$kEcPFau'A\G%7mpN&hHRsWi\2`CB6Tpt_)A_ktnd`IqfXQ
+j3T=5;G'hj:EXA,.:N42A0#/8\t?k:CN0Ra5*CO/kHU_/:m_`OtT^rIikKbkd\E9hbSCBoP'u
+E#l^.LAGn;3/5"Ae.-!3"hZdIRa\2V5ZL&*l9f+nhX&8%::tQ\^*EDQ)_)>,I4JW<_9;_[Fq7
+p3M<CAuC_KD[n^KI]CrJ'm:gApNeR2)d*o;jM9mC%J<`S)7EYPUo:WouT'R,fbY8Bo5,Gtg*$
+B\VE47\N%LNto$aMt;co!r&sE>t(%S)OCnQ[IhZI"("=J+1ldNdT02=*X-gcX,Vh#Z(Di-\g=
+O*K:Hn3lg8nfl;c6K0293"/jf*c^#7"q[IcDE^pY0]@k]Q`in(BanfMKlen'RXD)<I)_2G=ir
+T#MZ_E`HT6"9Gb<BG#?C'qdnLgut_4p=%e]`V0Ed8>i5%<s[1:r*?^LtQA9`KWW^V,1MfC>>G
+W#<Xf@sDW#D\(m1$`G&^S#<N2!,qL>6Q]Y#_(WFjC+%RS`@FIJEZ<RN`/C`GCVb)hnB;q9[1c
+=oitkGbGpA3UiFcB"V@J[:ih78Q=G?W2UMpn7h11(aX=2-[[CEgWb=]%H"H/2#ZPnaZOBmZ($
+BUO6H$Pd@KA"qFR>DfENsh(tgrtiM\UI18f5A]Cr0D^_na%Y/s3=OZH/\mPcdN_?f,5VOAB2/
+q5K1MfH/Jg0^L9bgp\&QM2g9AK\W]b.f\"#pY?9]-\i+Fd`0pe0q?nggi5QQ/5%DQ<Q@I&"]3
+)LoV4XufRDj[:RQn$TOfPpqTRk;PRJ-`'l^1u$XPY_,L?\.\mHkjk]T-?+_kqFd0o":MZ!eKQ
+?,/+KnEO_h+$b*9?KoA=*k^!^(HYK;'[If9ZYas`+J*=:8IL!P&!-0FnP9"`)/G\F\e,Hk_a@
+Yu5TNnUU9Fjr<hWnW<c5d3%EP`g?0,1s(/)iT\.gqL\?d"[=(=N.jqf5J!;#b9-P*P)0Ja[4R
+@'RsBethtq7$dRa3B:YkBi4oiPdOC)s,`b%M&*[G<Bl:]gFX%Y\T?@#M=$ZmJT0&`rj"km9rX
+HpNCP#-[-P?EsJ2gg"=<!_lQ)D])CF4b*j)HIE'FCgpi-R?*)](nkZcuR:T)DD.LaH(,p2,4c
+;M^W]CpFEqt(+H^D9Cb^Q$a^LkJTVSCE`f5@8@3aTLSp#C:.%'PV!h([Dd^l(R)iA@,J^iTI!
+V@TLdGcD]YG2e@Rpr*h-hM0&\ib,Aqdt6-InF.J]ZkGmQGb>AD)H"!RpMIl4F]_e)T@RCq(%O
+<DY"`$,!I5D^;NBP?a=5$$;CjB8Jn!N?)HfMM/B$<FbfRol4Ntr6H8_X5iq<f9G"Y$AfIfM]E
+AIXdq$4*.jeZsW>is!u4?(-`_]8T7Vp=nP&:;aM(hD4uO.Tt'$+BU!E"<J$ZaG]CS_SRN]0!N
+tS]u"f3lK#?D"nD(^L5li\Rcju5%W7s<pnnc5LK3[/"0SsaE?6>f"f]E=n4Wif5f.5/?7[/G?
+F>mQWGq\'6E&=p1qmP@)dMi^Wa'ODP6>WT"g"ma77@j8k8FD0V5q-Os)r-)F#=Zj8CCo_dbiS
+Zl<dAZ2,ji5(\RD:im6Z[c79%XP/HH4h,\`mV,-V'37##`AT:)MYoNj<JtEGaK*2+buhUb\Jp
+W/JOS[&\/*b/=AXnN--.Q*k%`*l_ONr''OXs*B'(7"#;`Z*HR>U]4t]7oEAKi%k6G>,`[fs<d
+M7e$n_ttCrLIRSEps-+%Iq@Sp(#Lf?roRRpT^K[m6*Sebl_=Zof-09EpjV.DW?aECd,Y3<]5E
+PL-N"n0C/=Nb:_@^B2p`<S%.u5qR3Z'J`ZQ0pH+\kZLg(,WF9c]f=](s2nA2_(APE;Qcr[[gf
+KlVQ<@eCG_YHY1$oc9:ja:E?,P".n`Uh@N+2H6*k?fVL[`Z)'Fj!:IQYu4qg5QI)hjimmjRTe
+JpZ4UnfUuA@RUZjmmI'qgq=AF2.Kc&nf"cT)jYB\i]?/O,,YWh<ajBf/DPpF%9QGX43B:-/[E
+N\=c.JNQs5M0X"h3lZO/Ff!9s<HOb`0]\31e[13$M&dUqDbP)lZ*I,)qqb@ga=HnOsK#gWtOl
+idljj/Fgs1!&2P)ZB$fj7-H!(i8[#iD(FR`mtX.Zub\EmQS]4Ipqs3D#,q,pTe3<lZ]Z&'5hM
+r9bXQG=kUTM>Nu$8'u+>Uqcm4?Z?KFI(/*LpnJb`n@o3D2X_5Jn>lGr=SmuXeZV-\Y3&;UeqB
+J[\i!*4f8)Z>\2i`7*E:54C)+MFGX;o+"do\>T(&_7kL\r4Kh2T$.ES"&=4+b+'/3Se8X]X#'
+`VYb/#<=l.du6AXYc&-A[pe5rACk6U/afRRr$oqJN3#apgjjYbQs5S2CGD^q)5W^+K%\,1\Jd
+8^OC!_\"dkmBg[fB2%]3gt[S3Jg4t]7oEAP)bo?RF4>is*U0E.O*^>mo<*$!t;dl]A#hNKemf
+[\1*#!9EKhT<Z*H/L3]I`[mCgq02j>IgM_c26/#LQ+CKYatI3XD?g]7b0E#Wh,Kjj2P:!hIFO
+:/:X/T.Ts3BV&NP-9,=_oR[71L,$-qJJl44NJpG>ZI?`Cq1[BL%grK&P9Y:0+Q<d#;2(TcgdP
+39j`KFX\^4=0ia?>O<!T`n5c9C%:K14Tue;8lLZ1&%)gQ6gp$X.O?$guZ&q0OfF-aK2'eV).9
+A8];tXdE1F\[@f'K/lrQfSkb`R(WO,.kn"DZdrSt):D0??@j'6R'@RYM_MgU[hiFU5,RH#[N+
+(gNO2p\q8j%1no5D-O.-H;cW+;^_FnAY)<&PCT"DeEk;[^@VnV8LPO(FuUR,6jO*@k(PO1kcp
+]qD;Z1SZ4p2f]ch#/+7I*1SWCtd1SAi;KN^6*R<__#(qo/g"'ZLU.rXJYH'<rAEJDfD8.AJHb
+EKdCM;>fJYIYinZ]HCP/"Er!VsH[r[$1Adun\sjR1R@_='"ZMNc*Eh!U23+amA<%jT)"T@fh@
+Sh@`nUU=mDn!Gbius6DTq@`S>4.bJrDTu*5q2Eb\k8`I@.DIZZ]eY1M/ORAg:o*6i'iZf-.gC
+kr"i*Kc-@7I1rJr_"7uh?B3dliq>-$/&ek.9In,ie[V^e[h[o2!i4p&/IuPUpdmAmP)5fA!0W
+DtOF5j-aRJ]?`JYu(c]8JDNLW0qo'Nn2-Vobm3&0.ac"Ko!BQs47f3aR[4$MBG1"q(e[&r`D_
+*aRgZN&>h?X3GKbLjPT`qFd@[WC'Q-el\1S&^td`Yq&[CY3fUCW#6ElS&;3GF.3j]i+Hk/+:,
+tjfQ"q]NKOAND3K%Y@"8RmE59_nX%G>?X,Phr!VP]c]+8R4oY3ij,ZAfrlCkl5PXaBKb&Q<;#
+(!HJua)I^UiL/X*62,RXJgMk(:U`=cILcIl,Kdh!p0DJ0jNAVQ9t$?KV-Om%ukMs6*f*/A/N@
+4L&EM]"'Xn/.:qEpTj#FP4S-ln'(UV^R*_?jlCmM?ZL';Mf16&D_?tHbED6c-C1K's%11ZOF5
+j-bs+U">2$>te##p55',l1fs>>;R58L4]Qs,3cX3na_8:m6F)l::04);5l-a.dQK@;mY?8&=j
+iWk_giH8"@H%1ZhuDVe%mKX46`X:lIe;#X++*@ZTE"iP:H\0cP>=C<o[?T#qs:Z85QCWh0>-f
+&9/"!Vo#iulkj-j(J+_>nJ+]jLq0]p.?[mLa`f4oNq.=2Lj]cZ:<E3%!?!U`7;tJjmmqpa`V7
+*h@Y-.2F%mHqqYQ+RiJ)AW"Y\i.'`l?#Z55M4WWTiH(5Ak@VroB8=[Vt';CY,`F]6Ac$l)/n&
+meuLYcWXLU56(QPf%/FNqtD0lE8]*:6Z$[W?[hf^H[GWk?[[(hkg<n\NcfMgIf8rkJ,S\?]=Y\
+%H@#Sa\%d@_br:'!IJs-C-Vp<R(`<&AgM[<%#LAo#1Ggq1mbGAEkKeYPh00Yg?6$[.lB.4VdF
+#5(Z-/IeO,o?Os8D[nY?nncmFi(8r,DW2oc#i-r9I_iEr&Q]re':lAgAJ?a2:G3DFX2ZHp!AK
+j(9PYaiD:i5&Nj\OaK9MjPsht+3DR@83Uo\nr\;^N9'#2,Tk.K_alt/7e2[h4H/@]AgAJ?a2:
+G3DFX2ZHp!AKj(9PYaiD:i5&Nj\OaK9MjPsht+3DR@83UpG,1/CK-PcYIne"2JK&e/0E!49Q#
+WGSNKM:s",p+;c^s00DUa#.-[$[Gb8Nmp[$'A&91>%8-S:2M$_fP]OcV0!o[tj$SOdio#l2PL
+OG6iW]0DS.&Ak^9YJ*LHL##<G?3J$qcj56B:&1_<ao!(_8bK$JaR[Wtl!ftGN.$Id*O0eB`XG
+DVeCNbs8aGE7SZ%DY8+;=S"l&0Tk/+PE9Oh\uU'Om\^_WDC[rc)1,@FqV'(!#;'+o,7!AsTb?
+?h+MM6\=Y:eiZ7a<^NZK5+sXhP>4<8ru++&O@&[G753I8a(B!_,p/%;OaO5AGKn0Fo&5W?R6u
+hr+33IVeEdNG2bXo"'IR_(Y\/d'Bnk\Y;(7Zh'g*_58JZegjV,!B?\i.MO?cs:.5#]u/<Z&/,
+Thq85"<]9-gIlSWqi#)q:L72jQ$8!'_aPuK%;0""?k9A3eJ1CW7_mj1!.J.1SZ/iKY8O#-QaS
+$hfa]3L][;T7PgdhI&u\B\/Cab'UOk$h%EZXISLH0I/KK5+qqI:C5Cq,8K:E+b/ss4iq12ML-
+@@LP!hK"[3J14=nr=bn<eS3Fg&$5S+?BA&;_V[K-e-W%!=*9,!#1JI&pCr%*;!FG7[]XFTW'H
+S2mH>OF2_#!u%:t,o;cXAB@=Ii<YU-&Af#)+!KEi*M7?*bp4rFne&_J<,;17ai=O^k;j/\,:J
+1ij&N^bmsJreVqERgim:2ML?)h^T;13mm)qg-?;rE74o%q1.r<+Cq:KdpP)gi49Kr)La3qaaC
+9.Z[pN)HA,a!JU^PPMOE@i0KML<WQj=_<(L"IapH>?'2TEN2t*m(<`_[3oGW:DZA#M_A-=P3/
+4U)#fab9nu+YV$&odo[IG#3@O#b&HHM@ZlemLqDg02Yf%@B<R,QWlTa"[1g+aHCdAHKj?E#nd
+u2H1\-rE0i)Q[K^L_h8SIcDm,;PI4sGPK5"<]9-\@I)r*ge3O%:CbOUmY!p50-T$JeCKI(\;%
+nn4#^83Tf-)>P,@HeW,!]P<MsA2pqZ't2e,KR7$9QomP>`!u:BUMlgdis9YGa1pjl"bF:[L.F
+MMMmMu*SN'md;\=FgBLk=QEE59?@sC[2L:UI=M,1HZLkHD*_3/(fL,tV-OdpY`51ZbtL?'S44
+,Blg\cHR>$6_Mt[:ZV(I"W&0K&e/0E!49Q#iQ&PNtB/?,Te1_,=k!b#Y0u(KQ%$:oGY0-8RA^
+`,D7#7er6GgNsSS-D^i=g:^6M\pBj99]559\),!EX:rcI$o!+/"l+t;S_SM.&A\9B4C.JfgE*
+PRb?'jX4#Tf0?243#AjuJDn'$82jRg9Iul4d:[A*+tb%Z`'W55A$mW(q6%e#4OYHn<:(I%2C\
+I*C(P'ZX\('Z_ZgnDI.OXB4Ks'Sp^,Qbm8eq9\_(4sGQr?1W'*I-A*Y9B3pII"K4&7:_/6,8,
+fFj>4mZRgS^Pa=K>[_]t[Vndu0rnhF$<5+rFgaG9YTHpe&+N-sj"),'#-m"'61[ZuX0j3JcDO
+aN\91\*9m[O^9V6=7-U8h'=PB%K4c[\Ic6jPpMcaN)&p=7&RI68$;]q7oaq/r6K_4u+rm5X(%
+9(2)_R4GLo;A#Oa.SbP$OWCSF')(aJ&A#Nn:&BTbfjC>mW@n8dM\:^0+XW*pF//?#8<,9KOa[
+ZUk,tL3d#Y0u(KQ%$:HpML+PItGJ7gM%MXk>3M*tt09lTf]STFBtB=7(aVo<A=gB!2c&6Q[0a
+P)j1%:3S7s#mW+5Q1:GnW9tD/iOF8O\h;+F&NhB^HELalBJL3fYZO\d7.RV^-:1(73/&+CR(:
+;qG)Iff55EQ`6Y]:?a_Z%h-]]^*Ell@2I*'DXU<:MM*H:=P@UY%LMHU4J:-O--LYW\k/4,($$
+Tpf/Z\9_qndu0Rm[B3kj?o!R?4lB7KT(3q)AlL@7`8_76dKA!j<G:nBB1kj!hPAA$*(Ri*YLJ
+"BOK=JS`D".Lu`%kK7&Vs24:\<7`5X3jDu6>q1pK<1\.50B<R+k4qX5h;9rs$83[%>&J`F..6
+Jgs_n0j!,-1o)a.bb:2EO:YZ\9aG%J$d!DkQ1O#][r+^Zg5?&@a6*Lu`&)p8-PIq7oaq/r6K_
+4u+t-+s/=2N$jIgnduq\A+DA(]u!NlR_;$5Pb8GNm.)m\YuHP?`#J9P?L9Hm+!KE*9Z>Ql:pX
+4/i<cMAH\LN*KU<At+!H:^83TAM!B\"<[@9`oZK*6`)lV?S'p=Ua:="&*]LG^%o>[hS6f7^lJ
+5<LQLr?!J$k:>!1-VTtQJ."E(R<-f:HhbP$JTN)4uQ]5jPpLeP7LTk@qfT`bsE%c/P.30lYdt
+(UkVfMOcPogr,&p16L9mH;f>29KH$a81dYs"a'sG<a!mb*a%RLmlX411LPgsmKY8Y'M5pmj%,
+-Dk"-eM2foP2=&kLe8+1K@I*hBtg.\V.p%1fT@6pAa%a[[TfccBa^jk!/r$*;uOQ;</>@?Gq*
+!g.kh,aXQ(n]?jQ@jS#5is;6=%m;t#KbZ.B`QV31+%doCI/MYB.[#ikGXakd9"s]`Va"kDiWJ
+AJEPe;g!]S3@NkU(-O!DRd+9/3E[AOqgap3+LF?rShoT>gjq,kX>q$<&?1&2[O?=>3Fc!DP+8
+l,^bG53!?==Q^ZiXP]cYP&frNtC_%VIJiqW7`\Sn-%:1]gD9%6;.]KNtB/?,Te1_,=k!b#Y0u
+(KFj.dq$8,`61PW)%G9'DfPW$]ac_\rDP1/hQ:a=f3'G$Qn/=S1bT#@g%/'"n!M<sT'o>9u9+
+B"`1;6<gWF9-TLc\2F=hH+(C.JfgR&#+G8sSJ$Uj,Qs9]j10r701#&`Pn>A.B,\b2d(24b<l(
+9jXpBa37!O_@fe'II^f%&#0JqdG<(,`-:?816qF8(gli*?D>T_9H?E=/;?iLI)6@(*jp7(8j<
+69^kttH-6c2^@HFG\36$FY4)`b*J@sqfJr%&$j#6]eq.D69CNbE?Rj*2(C?2$ITcu6Zndu2H1
+\-rEWHWuB!n61:$#>8$5)FSb=S[XLFBBe1O[(06_]A<)i.RKY'1ZTT7lZ*5jMN78YuL9#`;dl
+;MWBu6GXakdP/$B>_EIJsH<)$Y8TNmeU:03CE68Muo('&\B:n7KUr4Dus/&!k#O[Hf,5EK;PE
+?CB`9C_Vi^"Y()Np.m-6jTUK(,.T%!AbX';&kf'aZ07K-e-W%!=*9,!#1JI&pCr%*;!FG7[]X
+FT^-PV*]EYC<]j1q$8.@"Na.>i<YU-&8o:DDc#h5P*[`q#iPuf21(&<@tN0N*=/h\Pek$&Wnl
+$G4uV?JlkL^akT`G^o!+-,Q+C&LQYBC]*_+.rntEWrfLDm_a/7UY3qk<`*g7,JhQ\oAeiK4_"
+KbconhJ&YM[tdJil?q(bZs3^"Yk_`-Qf5$O;b>cn5l](Z\%7J7^[tWN1Hp<0iJ>43ga%%_5<r
+m_.8dk&McOP?slgua=IBZ`Yf0]6PE!SAk5+*&9lC>D=V-+cX(%6Yk!XD*O?#;B=$5%PC1T9I,
+_ptnsO$F:3QGdXi;1iX%%iSPg#5:b`I535k6Wl+Wn$M<bb6]j:`$Fa)4!a+"$gM'c&O)eHE%.
+`eiF91/):$$psM>_k.mC,5M$(N-pSKH.s)-<I<A!Q!pB>AbNK$&"KW`2Ja]Mq=loIV''_Ye.B
+aBSQNGZP`cRD`9E2$"o?<eOF/U/n<6c@&U*1hq&&C'@4+7`?6KqR:^0R9q&&C!.R\=:%Ja,0p
+)&sR&FL[<@d=5sfdhaF"P&sS6Lk^T9F6lC&Af#)+!KEi*M7H-bp4rFne&_J<,;17ai=O^k;j/
+\,:J1ij&N^bmsJreVqERgim:2ML?)h^T+g$2m)qLiIk;iUn&^@M?==dJaiC:%OaN\<A+F&CF=
+[m&]2%JV\mIYP?U/:<$cfLr+#=`/o7'FWp;r)h0r,")%(p'`8Kf16nKf9tM(0T'Fhk,3M1lt^
+.;Eit?MX?u""Q]hS$@]<p_Cn@,`oNO5&QPp;e,M.,?e(P-3L)6%_$\'a[[TfccBa^`ApNO';8
+G?'KN1@X?8n6Hpe$uI#MU%O'uL_=QO$n&ILkq&IHB3nmQ:W?=B5NHmG<jr4+"$P)nXJ7Qs;a]
+^7Ju>?G=+,R:J?D0CWQ%)bI-f[2!Ano9sTjQ#.i(P0A-;*uV$jM_`,^eUCPIjp@@1,L6ub;^[
+fiDhue+%+j7m)5gT.mu]1b$`=D+%%&AKh+tO+Wp%#*^fK1_B$QoCu#(KH\E$&TN\['83T@r.7
+*M:69'SX,D:"=a[ZWq#a15[_@\%8+bV(25$"n_CSu+RZ+aIDd7>CCNtn[YD)OsoKfD7sJVlqV
+JE13klD4:K?!+q!AH\gECuBDIoF@%F'dOmi@7WRW,PbG-o'md@J'3T_L'*]g&rYg\"j+f3(a1
+aYRacre`Bj&d/2>6on6oU1T\2rm8IE'N`u,MTUp0DEduecI+^e^%=N_0u%_6<8[+;G%P8Mm3'
+.=jB-aCT>T<RWI+ca_niCU=Z5&i9%q'7j]8V[oGR1D[_':<hdT>VAOI#S(HDEY3n'GqH"3Cj<
+^IjJc0i(E2cZZB;A;UF:A`iD!8gcI4:IfoZL#/8Cm$k/(:F@adSK+82^J6@1b;\CuNCs#ZZ_h
+*8fCa8a$Q:/j8#U]tc3'i6]l8^(;a=n3!X@Y/kerHKI-\<km$pYJ-6p?*.KHS.'cq9*sb.WdC
+o!U&&,Uc;V5)I6*q1Q`oXbT;.IqVP'm#OUAM414GEInIZ:BX<EUc:l)&9]Al$t862\f!e:;>i
+u7Hu;7AJ^>^8`%kopM/]'%n?A@%TmY(a*/rMO$4NUcq3[Efa_-bRk26!]A0?!9-aCTAT?(l>T
+P.q3*j_(-6XjeR=\5);C&+.(J:c@I[W`S9&eQ=@%11d8MU9G=8M/,",to=K7/;N/N9$1)@[0_
+s[DX.(\CWG/5icAq5sC%6La)'%YU1kN(5aR`RV4'j=(i&#&Z[!c:5C#7Z\6`]Cn\u?4@[7BSA
+Sr9aX=@3,Teu'8D5EjOl;Oil]`%'A2#8NVb%["K\!Z1P%9]9b[VY\ICl!r=leTol<`F4%*?P(
+,TeO-52O2=I%3[sZ%@"e-h5C#qT+H7"pm]gYsKGjD2P+hZ/]q<oF@%F&Af#)+!H:^83T?G8!&
++O&<7n/#U(0Rne"2JJsh"VSk2fciGm*&j7N'^63rXIAsX(G&L8GAKHj#O6;/7l5@ngB'6ch7&
+Rrn]^@d^J`Slk&#se%n@]HA-^\E?T5pRNqV@:SeOF2_#!m/KEI"ZG?aiBKjKG-?D;;2e53#CN
+`KZ_@"oK$qe./AZJLTq8TS>=(H+/b<=4-GYD*7#G.W3*'6PYZs*Q@-W8Ob*`gC4m;6-^'OXH;
+^u?7?*C\pI+Qa;bm`9[&=R7n=E07@d:3rd/5!E7u.`8W2NkN@[m_='`jZB-hM:9=J@)`i<H"l
+[(qW5Q3kgs'D4W.EZ%Pcq#m7<@T2h0.8ES-#n.6L6.i21fFf"Z=L3lN?r7Am'=D)T:d/<+8<B
+ksCec%n8%=+0RU$M+JrU2oZuU!8R'HY%+.(.u[!ikb_C(E*,MYOX"YH\L&YFFp*#hih$9HNbI
+cN=5SU:j0b+[l@4@U=:I%n'R_?NIm2R71oes+BL7eoHdA!9FR&T1u3o!)NmZ-m<C<BeOZljA&
+r(&@R'fd4:'I';8+4:sGd08(Ac\h!FCEeGc2jM\Yr5%3nLBYu<sgH-8u+5mE%n:S<N&Q8+i83
+UMJ8\ouo2*qZ,'?Na<4XjL[U..\iHQr9AW@%iW>1<g,GY]S,1%e6$3iD/"ZBt@Ij)h<!oU\T;
+@d66o&E++PQ:.ValbGZGI"[l5U/m7O!QdifWCQM6,Te2"5k6WT+!I.>nhDC3+e7JfI%6crb8!
+_+%EV*Gi<YU-&Af%'j<K<hFqZ-nYJ0kUkn]s(,$"-UkGEN2&OM:&`9I,b&0c8m5H,6,W;~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 382 406
+%%EOF
+
+%%EndDocument
+ @endspecial 275 3732 a(A)m(t)i(the)h(top)f(of)g(the)g(windo)m(w)f(is)g
+(a)h(th)m(um)m(bnail)e(of)i(the)g(image)h(that)f(c)m(hanges)h(to)g
+(re\015ect)g(the)f(color)150 3842 y(settings)h(of)h(the)f(image.)53
+b(This)32 b(enables)h(y)m(ou)i(to)g(get)g(an)g(idea)e(of)i(ho)m(w)f
+(the)g(image)h(will)c(prin)m(t)i(out)i(as)150 3951 y(y)m(ou)c(adjust)e
+(settings.)275 4081 y(Belo)m(w)h(that)h(there)g(are)g(eigh)m(t)g
+(sliders:)150 4231 y Fn(Brightness)630 4341 y Fu(\(0{2.0,)i(default)d
+(1.0\))h(Adjust)f(the)g(brigh)m(tness)f(of)i(the)g(image.)150
+4491 y Fn(Contr)-5 b(ast)142 b Fu(\(0{4.0,)33 b(default)d(1.0\))h
+(Adjust)f(the)g(output)g(con)m(trast.)150 4642 y Fn(Cyan,)j(Magenta,)g
+(Y)-7 b(el)5 b(low)630 4751 y Fu(\(0{4.0,)31 b(default)c(1.0\))i
+(Adjust)d(the)i(cy)m(an,)h(magen)m(ta,)h(and)d(y)m(ello)m(w)h(in)e(the)
+i(output.)39 b(These)630 4861 y(should)c(not)j(normally)d(need)j(to)g
+(b)s(e)e(adjusted)h(v)m(ery)h(m)m(uc)m(h;)j(ev)m(en)d(v)m(ery)f(small)f
+(adjust-)630 4970 y(men)m(ts)31 b(can)f(go)i(quite)d(a)i(long)f(w)m(a)m
+(y)h(to)h(restoring)d(color)i(balance.)150 5121 y Fn(Satur)-5
+b(ation)70 b Fu(\(0{9.0,)33 b(default)d(1.0\))i(Adjust)e(the)g(color)h
+(brilliance)c(\(saturation\))k(of)g(the)g(output.)40
+b(Sat-)630 5230 y(uration)31 b(of)h(0)g(means)f(pure)g(gra)m(y)i
+(scale,)f(with)f(no)g(color.)45 b(Saturation)31 b(of)h(9.0)h(will)c
+(mak)m(e)630 5340 y(just)h(ab)s(out)g(an)m(ything)g(but)f(pure)h(gra)m
+(ys)h(brillian)m(tly)26 b(colored.)p eop
+%%Page: 30 35
+30 34 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Programs)2663
+b(30)150 299 y Fn(Density)179 b Fu(\(0.1{2.0,)47 b(default)41
+b(1.0\))i(Adjust)d(the)i(densit)m(y)e(\(amoun)m(t)j(of)e(ink\))g(in)f
+(the)h(prin)m(t.)72 b(The)630 408 y(densit)m(y)30 b(is)h(automatically)
+g(corrected)h(for)f(the)g(particular)e(prin)m(ter,)i(resolution,)f(and)
+g(in)630 518 y(some)35 b(cases)h(pap)s(er)d(c)m(hoices.)55
+b(If)34 b(solid)f(blac)m(k)h(in)g(the)h(input)d(is)i(not)h(solid)e(in)g
+(the)i(prin)m(t,)630 628 y(the)i(densit)m(y)e(needs)h(to)i(b)s(e)d
+(increased;)k(if)d(there)g(is)g(excessiv)m(e)h(ink)e(bleed-through)h
+(and)630 737 y(m)m(uddy)29 b(dark)h(colors,)g(the)h(densit)m(y)f
+(should)e(b)s(e)i(decreased.)630 881 y Fi(Note)p Fu(:)52
+b(the)36 b(densit)m(y)e(will)f(not)j(increase)f(b)s(ey)m(ond)g(a)g
+(certain)h(amoun)m(t)g(no)f(matter)h(what)630 990 y(the)31
+b(slider)d(is)h(set)i(to.)150 1167 y Fn(Gamma)170 b Fu(\(0.1{4.0,)29
+b(default)23 b(1.0\))j(Adjust)d(the)h(output)g(gamma.)40
+b(The)23 b(gamma)i(v)-5 b(alue)24 b(is)f(automati-)630
+1277 y(cally)h(corrected)j(for)d(the)i(c)m(hoice)g(of)f(prin)m(ter;)h
+(this)e(is)g(used)g(if)g(y)m(ou)i(b)s(eliev)m(e)e(the)h(automatic)630
+1387 y(setting)30 b(is)g(incorrect.)150 1646 y Fg(5.1.5.2)63
+b(Dither)41 b(Algorithm)275 1857 y Fu(There)33 b(is)h(also)g(a)h
+(selection)f(b)s(o)m(x)g(for)g(the)h(dither)e(algorithm)g(to)i(b)s(e)f
+(used)f(in)g(the)i(p)s(op-up)d(dialog.)150 1966 y(There)e(are)h(curren)
+m(tly)e(sev)m(en)i(c)m(hoices:)150 2153 y Fn(A)-5 b(daptive)34
+b(Hybrid)630 2262 y Fu(Adaptiv)m(e)g(Hybrid)e(usually)g(yields)g(the)i
+(b)s(est)g(output)f(qualit)m(y;)i(it)f(c)m(ho)s(oses)h(a)f(mo)s
+(di\014ed)630 2372 y(Flo)m(yd-Stein)m(b)s(erg)28 b(error)h(di\013usion)
+d(algorithm)i(or)i(ordered)e(dithering)f(dep)s(ending)g(up)s(on)630
+2481 y(the)k(image)f(c)m(haracteristics.)150 2659 y Fn(Or)-5
+b(der)g(e)g(d)173 b Fu(Ordered)39 b(uses)h(a)h(pure)e(ordered)g
+(dither.)70 b(It)40 b(generally)g(yields)e(excellen)m(t)j(qualit)m(y)e
+(for)630 2768 y(simple)25 b(blac)m(k)i(and)g(white)f(or)h(four)f(color)
+h(prin)m(ters)f(without)g(v)-5 b(ariable)26 b(drop)g(size)h(or)g(drop)
+630 2878 y(mo)s(dulation;)22 b(it)f(is)f(not)h(recommended)g(if)f(high)
+f(qualit)m(y)i(is)f(desired)f(on)i(six)f(color)h(prin)m(ters.)630
+2987 y(It)30 b(is)g(considerably)e(faster)j(than)f(Adaptiv)m(e)h
+(Hybrid.)150 3164 y Fn(F)-7 b(ast)315 b Fu(F)-8 b(ast)37
+b(also)e(uses)f(a)i(pure)e(ordered)h(dither,)g(but)f(uses)h(a)h(v)m
+(ery)f(simple)e(blac)m(k)j(mo)s(del)e(and)630 3274 y(mak)m(es)41
+b(no)g(attempt)h(to)f(handle)e(m)m(ulti-lev)m(el)g(\(6-color,)45
+b(v)-5 b(ariable)39 b(drop)h(size,)j(or)e(drop)630 3384
+y(mo)s(dulation\))31 b(at)i(all)e(cleanly)-8 b(.)46 b(It)32
+b(is)g(substan)m(tially)e(faster)i(than)g(Ordered)f(dither.)45
+b(The)630 3493 y(qualit)m(y)34 b(tends)g(to)h(b)s(e)f(quite)g(p)s(o)s
+(or)f(except)j(on)e(simple)e(four)i(color)h(prin)m(ters.)51
+b(On)34 b(three)630 3603 y(color)c(prin)m(ters,)g(qualit)m(y)f(is)h
+(probably)e(comp)s(etitiv)m(e)j(with)e(an)m(ything)g(else.)150
+3780 y Fn(V)-7 b(ery)40 b(F)-7 b(ast)97 b Fu(V)-8 b(ery)39
+b(F)-8 b(ast)40 b(is)e(similar)e(to)j(F)-8 b(ast,)42
+b(except)d(that)g(it)f(uses)g(a)h(v)m(ery)g(simple)e(dither)g(matrix)
+630 3890 y(that)j(can)g(b)s(e)f(lo)s(ok)m(ed)h(up)e(m)m(uc)m(h)i(more)g
+(quic)m(kly)e(than)i(the)g(matrix)f(used)f(in)h(the)h(F)-8
+b(ast)630 3999 y(dither.)52 b(F)-8 b(or)35 b(simple)d(pure)i(blac)m(k)g
+(and)g(white)g(images)g(dominated)g(b)m(y)g(horizon)m(tal)h(and)630
+4109 y(v)m(ertical)29 b(lines,)e(this)h(ma)m(y)h(actually)g(yield)e
+(the)i(b)s(est)f(results;)g(for)h(other)g(t)m(yp)s(es)g(of)f(image,)630
+4218 y(the)j(qualit)m(y)e(will)f(b)s(e)i(p)s(o)s(or.)150
+4396 y Fn(A)-5 b(daptive)34 b(R)-5 b(andom)630 4505 y
+Fu(Adaptiv)m(e)27 b(Random)g(is)g(similar)d(to)k(Adaptiv)m(e)g(Hybrid,)
+e(except)i(that)g(the)g(mo)s(di\014cations)630 4615 y(to)44
+b(the)g(Flo)m(yd-Stein)m(b)s(erg)f(algorithm)f(are)i(sligh)m(tly)e
+(di\013eren)m(t.)80 b(This)42 b(is)g(slo)m(w)m(er)i(than)630
+4724 y(Adaptiv)m(e)29 b(Hybrid)e(on)i(most)h(systems.)40
+b(F)-8 b(or)30 b(some)g(images)f(the)g(qualit)m(y)g(ma)m(y)g(b)s(e)g(b)
+s(etter)630 4834 y(than)45 b(Adaptiv)m(e)f(Hybrid,)j(but)d(generally)g
+(Adaptiv)m(e)h(Hybrid)e(should)f(yield)i(sligh)m(tly)630
+4944 y(sup)s(erior)28 b(images.)150 5121 y Fn(Hybrid)33
+b(Floyd-Steinb)-5 b(er)g(g)630 5230 y Fu(Hybrid)29 b(Flo)m(yd-Stein)m
+(b)s(erg)i(uses)f(the)i(mo)s(di\014ed)d(Flo)m(yd-Stein)m(b)s(erg)h
+(algorithm)h(of)g(Adap-)630 5340 y(tiv)m(e)c(Hybrid)e(on)i(the)g(en)m
+(tire)g(image.)39 b(Generally)-8 b(,)28 b(the)f(results)e(are)i(p)s(o)s
+(or)f(in)g(pale)g(regions.)p eop
+%%Page: 31 36
+31 35 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Programs)2663
+b(31)150 299 y Fn(R)-5 b(andom)35 b(Floyd-Steinb)-5 b(er)g(g)630
+408 y Fu(Random)24 b(Flo)m(yd-Stein)m(b)s(erg)f(uses)h(the)g(mo)s
+(di\014ed)e(Flo)m(yd-Stein)m(b)s(erg)i(algorithm)f(of)h(Adap-)630
+518 y(tiv)m(e)f(Random)e(on)h(the)h(en)m(tire)f(image.)38
+b(Generally)-8 b(,)24 b(the)e(results)f(are)h(p)s(o)s(or)g(in)e(pale)i
+(regions.)150 742 y Fg(5.1.6)63 b(Action)40 b(Buttons)275
+935 y Fu(The)29 b(last)i(pane)f(con)m(tains)g(four)g(action)h(buttons:)
+150 1094 y Fn(Print)i(and)g(Save)g(Settings)630 1204
+y Fu(Immediately)40 b(prin)m(t)g(the)i(image)g(\(or,)i(if)d(the)g(File)
+g(prin)m(ter)f(is)g(c)m(hosen,)45 b(displa)m(y)40 b(a)i(\014le)630
+1313 y(selection)36 b(windo)m(w)e(to)i(pic)m(k)g(the)g(output)f
+(\014le\),)i(and)e(sa)m(v)m(e)i(all)e(curren)m(t)h(settings)f(for)h
+(all)630 1423 y(prin)m(ters.)150 1582 y Fn(Save)d(Settings)630
+1692 y Fu(Immediately)c(sa)m(v)m(e)j(the)f(settings,)f(and)g(con)m(tin)
+m(ue)h(w)m(orking)e(in)h(the)g(Prin)m(t)f(plugin.)150
+1851 y Fn(Print)271 b Fu(Immediately)34 b(prin)m(t)f(the)i(image)g
+(\(or,)h(if)e(the)g(`)p Fr(File)p Fu(')g(prin)m(ter)g(is)f(c)m(hosen,)k
+(displa)m(y)c(a)i(\014le)630 1961 y(selection)30 b(windo)m(w)f(to)i
+(pic)m(k)f(the)h(output)f(\014le\),)g(but)f(do)i(not)f(sa)m(v)m(e)i
+(settings.)150 2120 y Fn(Canc)-5 b(el)216 b Fu(Immediately)29
+b(quit)h(without)f(sa)m(ving)h(settings)h(or)f(prin)m(ting.)150
+2378 y Ft(5.2)68 b(Ghostscript)45 b(driv)l(er)150 2693
+y(5.3)68 b(CUPS)45 b(driv)l(er)p eop
+%%Page: 32 37
+32 36 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(Rep)s(orting)29
+b(Bugs)2420 b(32)150 299 y Fp(6)80 b(Rep)t(orting)54
+b(Bugs)275 533 y Fu(If)20 b(y)m(ou)i(\014nd)e(a)i(bug)e(in)g(GIMP-Prin)
+m(t)h(or)h(ha)m(v)m(e)g(an)m(y)g(suggestions)f(for)g(mo)s(di\014cation)
+f(or)h(impro)m(v)m(emen)m(t,)150 643 y(please)30 b(send)g(electronic)h
+(mail)e(to)i(the)g(GIMP-Prin)m(t)f(bug)g(rep)s(orting)f(address)2891
+610 y Ff(1)2928 643 y Fu(.)41 b(Include)29 b(the)h(v)m(ersion)150
+752 y(n)m(um)m(b)s(er,)48 b(whic)m(h)d(y)m(ou)h(can)f(\014nd)f(b)m(y)i
+(running)d(`)p Fr(gimpprint-config)26 b(--version)p Fu(')n(.)86
+b(Also)45 b(include)150 862 y(in)f(y)m(our)h(message)h(the)f(output)g
+(that)h(the)f(program)g(pro)s(duced)e(and)i(the)g(output)g(y)m(ou)g
+(exp)s(ected,)150 971 y(if)29 b(applicable,)g(otherwise)h(the)g(b)s
+(est)g(description)f(of)h(the)h(problem)d(that)j(y)m(ou)g(can)g(pro)m
+(vide.)275 1106 y(If)36 b(y)m(ou)i(ha)m(v)m(e)h(other)e(questions,)h
+(commen)m(ts)h(or)e(suggestions)g(ab)s(out)g(GIMP-Prin)m(t,)i(con)m
+(tact)h(the)150 1215 y(dev)m(elop)s(ers)33 b(via)h(electronic)g(mail)f
+(to)i(the)f(GIMP-Prin)m(t)g(mailing)e(list)2613 1182
+y Ff(2)2649 1215 y Fu(.)52 b(They)34 b(will)d(try)j(to)h(help)e(y)m(ou)
+150 1325 y(out,)e(although)f(they)g(ma)m(y)h(not)g(ha)m(v)m(e)g(time)f
+(to)i(\014x)d(y)m(our)i(problems.)p 150 5137 1200 4 v
+199 5204 a Ff(1)275 5236 y Fe(gimp-print-devel@lists.sourcefo)q(rge.n)q
+(et)199 5308 y Ff(2)275 5340 y Fe(gimp-print-devel@lists.sourcefo)q
+(rge.n)q(et)p eop
+%%Page: 33 38
+33 37 bop 150 -116 a Fu(Chapter)30 b(7:)41 b(App)s(endices)2587
+b(33)150 299 y Fp(7)80 b(App)t(endices)p eop
+%%Page: 34 39
+34 38 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(34)150 299 y Fp(App)t(endix)53 b(A)81 b(Dithering)275
+550 y Fu(The)33 b(dithering)f(co)s(de)i(in)f(`)p Fr(print-dither.c)p
+Fu(')e(attempts)k(to)g(repro)s(duce)e(v)-5 b(arious)33
+b(shades)h(of)g(gra)m(y)150 659 y(\(or)e(all)e(colors\))i(from)f(only)f
+(a)i(few)g(di\013eren)m(t)e(inks)g(\(blac)m(k,)j(cy)m(an,)f(magen)m
+(ta,)i(y)m(ello)m(w,)e(and)f(sometimes)150 769 y(ligh)m(t)h(cy)m(an)i
+(and)f(ligh)m(t)f(magen)m(ta\).)51 b(The)33 b(dots)g(can't)h(v)-5
+b(ary)33 b(in)f(darkness)g(or)h(size)g(\(except)h(for)f(certain)150
+879 y(sp)s(ecial)h(prin)m(ters\),)i(and)e(so)i(w)m(e)g(need)f(to)h(la)m
+(y)f(do)m(wn)g(a)h(certain)f(fraction)g(of)h(dots)f(to)h(represen)m(t)g
+(eac)m(h)150 988 y(distinct)29 b(lev)m(el.)275 1128 y(This)20
+b(sounds)g(straigh)m(tforw)m(ard;)25 b(in)c(practice,)j(it)d(isn't.)37
+b(Completely)21 b(random)g(distribution)e(of)j(dots)150
+1238 y(\(simple)k(probabilistic)e(dithering\))h(w)m(ould)h(create)j
+(grain)m(y)e(clumps)f(and)h(ligh)m(t)f(sp)s(ots.)40 b(The)26
+b(smo)s(othest)150 1348 y(pattern)33 b(results)f(from)g(an)h
+(equidistan)m(t)f(spacing)g(of)h(dots.)49 b(Appro)m(ximating)31
+b(this)h(requires)g(sophisti-)150 1457 y(cated)d(algorithms.)39
+b(W)-8 b(e)29 b(ha)m(v)m(e)g(t)m(w)m(o)g(dithering)d(algorithms,)h(an)h
+(ordered)f(dither)g(algorithm)g(that)h(uses)150 1567
+y(a)33 b(grid)e(\(matrix\))i(to)g(decide)f(whether)g(to)h(prin)m(t,)f
+(and)g(a)g(mo)s(di\014ed)f(Flo)m(yd-Stein)m(b)s(erg)h(error)g
+(di\013usion)150 1676 y(algorithm)d(that)i(uses)f(a)h(grid)e(in)g(a)i
+(sligh)m(tly)e(di\013eren)m(t)h(w)m(a)m(y)-8 b(.)275
+1816 y(W)g(e)31 b(curren)m(tly)e(ha)m(v)m(e)j(three)f(dithering)d
+(functions:)199 1957 y(1.)61 b Fr(dither_fastblack)33
+b Fu(pro)s(duces)i(pure)i(blac)m(k)g(or)g(white)f(from)h(a)g
+(pre-dithered)f(input.)59 b(This)35 b(is)330 2066 y(used)27
+b(for)h(t)m(w)m(o)i(purp)s(oses:)38 b(for)28 b(prin)m(ting)e(pure)h
+(blac)m(k)h(and)g(white)f(v)m(ery)i(quic)m(kly)e(\(e.)41
+b(g.)f(text\),)31 b(and)330 2176 y(for)f(prin)m(ting)e(pre-screened)j
+(mono)s(c)m(hrome)f(output)g(that)h(w)m(as)g(rasterized)f(externally)-8
+b(.)199 2313 y(2.)61 b Fr(dither_black)22 b Fu(pro)s(duces)i(blac)m(k)h
+(from)f(gra)m(yscale)j(input.)37 b(The)25 b(new)f(dither)p
+3014 2313 28 4 v 32 w(blac)m(k)h(can)g(pro)s(duce)330
+2423 y(either)30 b(a)h(single)e(or)h(m)m(ultiple)e(lev)m(els)i(of)h
+(blac)m(k,)f(for)g(prin)m(ters)f(supp)s(orting)f(v)-5
+b(ariable)29 b(dot)i(size.)199 2560 y(3.)61 b Fr(dither_cmyk)30
+b Fu(pro)s(duces)i(3,)j(4,)f(5,)h(6,)g(or)e(7)g(color)h(output)f
+(\(CMY,)h(CMYK,)f(CcMmYK,)g(CcM-)330 2670 y(mYy)-8 b(,)43
+b(CcMmYyK,)d(or)g(an)m(y)h(v)-5 b(arian)m(ts\).)70 b(The)39
+b(new)h(routine)f(can)h(handle)f(single)f(or)i(m)m(ultiple)330
+2779 y(lev)m(els)30 b(of)g(eac)m(h)i(color.)275 2947
+y(There)42 b(is)h(a)g(c)m(hoice)i(of)e(dithering)e(algorithms.)79
+b(F)-8 b(our)43 b(of)h(them)f(are)h(based)f(on)g(a)h(basic)e(error)150
+3057 y(di\013usion,)e(with)g(a)g(few)h(t)m(w)m(eaks)h(of)e(m)m(y)h(o)m
+(wn.)71 b(The)40 b(other)g(one)h(is)e(`ordered'.)71 b(Ho)m(w)m(ev)m
+(er,)45 b(they)c(all)150 3166 y(share)30 b(the)h(basic)f(op)s(eration)g
+(in)f(common.)41 b(First,)30 b(the)h(algorithm)f(pic)m(ks)f(what)i
+(kind)e(of)h(dot)h(\(if)f(there)150 3276 y(are)40 b(m)m(ultiple)e(dot)h
+(sizes)h(and/or)g(tones)g(that)g(ma)m(y)g(b)s(e)f(pic)m(k)m(ed\))h(is)f
+(the)h(candidate)g(to)g(b)s(e)f(prin)m(ted.)150 3385
+y(This)30 b(decision)g(is)h(made)h(based)g(on)f(the)h(darkness)f(at)i
+(the)f(p)s(oin)m(t)f(b)s(eing)f(dithered.)44 b(Then,)31
+b(it)h(decides)150 3495 y(whether)25 b(the)g(dot)g(will)e(b)s(e)h(prin)
+m(ted)g(at)i(all.)38 b(What)26 b(this)e(is)g(based)h(on)g(dep)s(ends)e
+(up)s(on)h(whic)m(h)g(algorithm)150 3605 y(family)29
+b(w)m(e)i(use.)40 b(This)29 b(is)g(all)g(describ)s(ed)g(in)g(more)h
+(detail)g(b)s(elo)m(w.)275 3745 y(Ordered)35 b(dithering)g(w)m(orks)j
+(b)m(y)f(comparing)f(the)i(v)-5 b(alue)36 b(at)i(a)g(giv)m(en)f(p)s
+(oin)m(t)f(with)g(the)h(v)-5 b(alue)37 b(of)h(a)150 3854
+y(tiled)c(matrix.)56 b(If)36 b(the)g(v)-5 b(alue)35 b(at)h(the)g(p)s
+(oin)m(t)f(is)g(greater)i(than)e(the)h(v)-5 b(alue)35
+b(in)f(the)i(matrix,)h(the)f(dot)g(is)150 3964 y(prin)m(ted.)h(The)25
+b(matrix)f(should)f(consist)i(of)g(a)g(set)h(of)f(ev)m(enly)g(spaced)g
+(p)s(oin)m(ts)f(b)s(et)m(w)m(een)h(0)g(and)g(the)g(upp)s(er)150
+4073 y(limit.)46 b(The)32 b(c)m(hoice)i(of)f(matrix)f(is)g(v)m(ery)h
+(imp)s(ortan)m(t)f(for)h(prin)m(t)f(qualit)m(y)-8 b(.)47
+b(A)33 b(go)s(o)s(d)g(dither)e(matrix)i(will)150 4183
+y(emphasize)j(high)g(frequency)h(comp)s(onen)m(ts,)i(whic)m(h)c
+(distributes)g(dots)i(ev)m(enly)g(with)e(a)j(minim)m(um)c(of)150
+4293 y(clumping.)62 b(The)38 b(matrices)g(used)g(here)g(are)g(all)g
+(simple)e(matrices)i(that)h(are)g(expanded)e(recursiv)m(ely)150
+4402 y(to)d(create)i(larger)d(matrices)h(with)e(the)i(same)g(kind)e(of)
+i(ev)m(en)g(p)s(oin)m(t)f(distribution.)46 b(This)32
+b(is)h(describ)s(ed)150 4512 y(b)s(elo)m(w.)275 4652
+y(Note)i(that)f(it)g(is)f(imp)s(ortan)m(t)g(to)h(use)g(di\013eren)m(t)f
+(matrices)h(for)g(the)g(t)m(w)m(o)h(sub-op)s(erations,)f(b)s(ecause)150
+4761 y(otherwise)g(the)h(c)m(hoice)h(ab)s(out)f(whether)f(to)h(prin)m
+(t)f(and)g(the)h(c)m(hoice)h(of)f(dot)g(size)g(will)d(b)s(e)i
+(correlated.)150 4871 y(The)j(usual)f(result)h(is)f(that)i(the)g(prin)m
+(t)e(is)h(either)g(to)s(o)h(dark)f(or)h(to)s(o)g(ligh)m(t,)h(but)e
+(there)h(can)g(b)s(e)f(other)150 4981 y(problems.)275
+5121 y(Ordered)h(dithering)f(w)m(orks)i(quite)g(w)m(ell)f(on)h(single)f
+(dot)i(size,)h(four)e(color)g(prin)m(ters.)66 b(It)40
+b(has)f(not)150 5230 y(b)s(een)31 b(w)m(ell)f(tested)j(on)e(four)g
+(color,)i(v)-5 b(ariable)30 b(dot)i(size)f(prin)m(ters.)43
+b(It)32 b(should)e(b)s(e)h(a)m(v)m(oided)h(on)f(six)g(color)150
+5340 y(prin)m(ters.)p eop
+%%Page: 35 40
+35 39 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(35)275 299 y(Error)29 b(di\013usion)e(w)m(orks)k(b)m(y)f(taking)g
+(the)h(output)e(error)h(at)h(a)g(giv)m(en)f(pixel)f(and)h
+(\\di\013using")e(it)i(in)m(to)150 408 y(surrounding)h(pixels.)51
+b(Output)34 b(error)g(is)f(the)i(di\013erence)f(b)s(et)m(w)m(een)h(the)
+g(amoun)m(t)g(of)f(ink)f(output)i(and)150 518 y(the)c(input)f(lev)m(el)
+g(at)i(eac)m(h)h(pixel.)41 b(F)-8 b(or)32 b(simple)d(prin)m(ters,)h
+(with)g(one)h(or)g(four)g(ink)f(colors)h(and)f(only)h(one)150
+628 y(dot)f(size,)g(the)g(amoun)m(t)h(of)f(ink)e(output)i(is)f(either)g
+(65536)j(\(i.)40 b(e.)h(full)28 b(output\))i(or)f(0)i(\(no)f(output\).)
+40 b(The)150 737 y(di\013erence)35 b(b)s(et)m(w)m(een)h(this)e(and)h
+(the)h(input)d(lev)m(el)i(is)g(the)g(error.)56 b(Normal)35
+b(error)g(di\013usion)d(adds)j(part)150 847 y(of)i(this)f(error)g(to)i
+(the)f(adjoining)d(pixels)h(in)h(the)h(next)g(column)e(and)i(the)g
+(next)g(ro)m(w)g(\(the)g(algorithm)150 956 y(simply)g(scans)i(eac)m(h)h
+(ro)m(w)f(in)f(turn,)i(nev)m(er)g(bac)m(king)f(up\).)66
+b(The)38 b(error)h(adds)f(up)g(un)m(til)g(it)g(reac)m(hes)j(a)150
+1066 y(threshold)24 b(\(half)h(of)h(the)f(full)f(output)h(lev)m(el,)h
+(or)g(32768\),)j(at)e(whic)m(h)d(p)s(oin)m(t)h(a)h(dot)f(is)g(output,)i
+(the)e(output)150 1176 y(is)k(subtracted)i(from)f(the)g(curren)m(t)g(v)
+-5 b(alue,)30 b(and)g(the)h(\(no)m(w)f(negativ)m(e\))i(error)e(is)g
+(di\013used)e(similarly)-8 b(.)275 1316 y(Error)43 b(di\013usion)f(w)m
+(orks)i(quite)g(w)m(ell)f(in)g(general,)48 b(but)c(it)g(tends)f(to)j
+(generate)f(artifacts)g(whic)m(h)150 1426 y(usually)26
+b(app)s(ear)i(as)h(w)m(orm-lik)m(e)f(lines)f(or)h(areas)i(of)e
+(anomalous)h(densit)m(y)-8 b(.)39 b(I)29 b(ha)m(v)m(e)g(devised)f(some)
+h(w)m(a)m(ys,)150 1536 y(as)i(describ)s(ed)d(b)s(elo)m(w,)i(of)g
+(ameliorating)g(these)h(artifacts.)275 1677 y(There)40
+b(are)g(t)m(w)m(o)i(sub-classes)e(of)h(error)f(di\013usion)e(that)j(w)m
+(e)g(use)f(here,)j(`random')d(and)g(`h)m(ybrid'.)150
+1786 y(One)c(of)h(the)g(tec)m(hniques)g(that)g(w)m(e)h(use)e(to)i
+(ameliorate)f(the)g(artifacts)g(is)f(to)i(use)e(a)i(fuzzy)f(threshold)
+150 1896 y(rather)d(than)h(the)f(hard)g(threshold)f(of)h(half)g(of)g
+(the)h(output)f(lev)m(el.)53 b(Random)34 b(error)g(di\013usion)e(uses)i
+(a)150 2005 y(pseudo-random)23 b(n)m(um)m(b)s(er)h(to)h(p)s(erturb)e
+(the)i(threshold,)f(while)f(h)m(ybrid)g(error)h(di\013usion)e(uses)i(a)
+h(matrix.)150 2115 y(Hybrid)36 b(error)h(di\013usion)e(w)m(ork)m(ed)j
+(v)m(ery)g(p)s(o)s(orly)e(in)g(3.1.3,)41 b(and)c(I)h(couldn't)e
+(\014gure)h(out)h(wh)m(y)f(un)m(til)f(I)150 2225 y(found)29
+b(a)i(bug.)40 b(It)30 b(no)m(w)h(w)m(orks)f(v)m(ery)h(w)m(ell.)275
+2365 y(There)24 b(is)g(one)h(additional)e(v)-5 b(arian)m(t)24
+b(\(on)h(b)s(oth)f(sub-classes\),)i(called)e(`adaptiv)m(e)i(h)m(ybrid')
+c(and)j(`adap-)150 2475 y(tiv)m(e)33 b(random'.)49 b(The)32
+b(adaptiv)m(e)h(v)-5 b(arian)m(t)33 b(tak)m(es)i(adv)-5
+b(an)m(tage)35 b(of)e(the)g(fact)h(that)g(the)f(patterns)g(that)h(or-)
+150 2585 y(dered)g(dithering)e(create)k(are)f(less)f(visible)e(at)k(v)m
+(ery)f(lo)m(w)f(densities,)g(while)f(the)h(artifacts)h(created)h(b)m(y)
+150 2694 y(error)d(di\013usion)d(are)j(more)h(ob)5 b(jectionable)32
+b(at)i(lo)m(w)f(densities.)47 b(A)m(t)34 b(lo)m(w)f(densities,)f
+(therefore,)j(it)d(uses)150 2804 y(ordered)e(dithering;)e(at)j(higher)e
+(densities)g(it)h(uses)g(error)g(di\013usion.)275 2945
+y(Handling)42 b(m)m(ultiple)h(output)h(lev)m(els)h(mak)m(es)h(life)d(a)
+i(bit)f(more)h(complicated.)84 b(In)44 b(principle,)h(it)150
+3054 y(shouldn't)32 b(b)s(e)i(m)m(uc)m(h)g(harder:)48
+b(simply)32 b(\014gure)i(out)g(what)g(the)h(ratio)f(b)s(et)m(w)m(een)h
+(the)g(a)m(v)-5 b(ailable)33 b(output)150 3164 y(lev)m(els)c(is)f(and)h
+(ha)m(v)m(e)h(m)m(ultiple)d(thresholds.)39 b(In)29 b(practice,)h
+(getting)g(these)f(righ)m(t)g(in)m(v)m(olv)m(es)h(a)f(lot)h(of)f(trial)
+150 3273 y(and)j(error.)48 b(The)32 b(other)h(thing)f(that's)i(imp)s
+(ortan)m(t)e(is)f(to)j(maximize)e(the)h(n)m(um)m(b)s(er)e(of)i(dots)g
+(that)h(ha)m(v)m(e)150 3383 y(some)d(ink.)39 b(This)29
+b(will)e(reduce)k(the)f(amoun)m(t)h(of)g(sp)s(ec)m(kling.)39
+b(More)31 b(on)f(this)f(later.)275 3524 y(The)i(next)i(question:)43
+b(ho)m(w)33 b(do)f(w)m(e)g(handle)f(blac)m(k)h(when)g(prin)m(ting)e(in)
+h(color?)46 b(Blac)m(k)33 b(ink)e(is)g(m)m(uc)m(h)150
+3634 y(dark)m(er)j(than)h(colored)f(inks.)52 b(It's)35
+b(p)s(ossible)d(to)j(pro)s(duce)e(blac)m(k)i(b)m(y)f(adding)f(some)i
+(mixture)e(of)i(cy)m(an,)150 3743 y(magen)m(ta,)24 b(and)c(y)m(ello)m
+(w|in)f(principle.)34 b(In)20 b(practice,)j(the)e(blac)m(k)f(really)g
+(isn't)f(v)m(ery)i(blac)m(k,)i(and)c(di\013eren)m(t)150
+3853 y(inks)38 b(and)h(di\013eren)m(t)g(pap)s(ers)g(will)e(pro)s(duce)h
+(di\013eren)m(t)h(color)h(casts.)70 b(Ho)m(w)m(ev)m(er,)44
+b(b)m(y)39 b(using)f(CMY)i(to)150 3962 y(pro)s(duce)f(gra)m(y)-8
+b(,)44 b(w)m(e)d(can)g(output)e(a)i(lot)f(more)h(dots!)70
+b(This)38 b(mak)m(es)j(for)f(a)h(m)m(uc)m(h)f(smo)s(other)g(image.)150
+4072 y(What's)35 b(more,)g(one)f(cy)m(an,)i(one)f(magen)m(ta,)i(and)c
+(one)h(y)m(ello)m(w)g(dot)h(pro)s(duce)d(less)i(darkness)f(than)h(one)
+150 4181 y(blac)m(k)29 b(dot,)i(so)e(w)m(e're)i(outputting)d(that)i
+(man)m(y)g(more)g(dots.)40 b(Better)31 b(y)m(et,)g(with)d(6)i(or)g(7)g
+(color)f(prin)m(ters,)150 4291 y(w)m(e)34 b(ha)m(v)m(e)h(to)f(output)f
+(ev)m(en)h(more)g(ligh)m(t)f(ink)f(dots.)51 b(So)33 b(Epson)g(St)m
+(ylus)f(Photo)i(prin)m(ters)e(can)i(pro)s(duce)150 4401
+y(really)24 b(smo)s(oth)h(gra)m(ys|if)g(w)m(e)h(do)f(ev)m(erything)g
+(righ)m(t.)39 b(The)25 b(righ)m(t)g(idea)g(is)f(to)i(use)f(CMY)g(at)h
+(lo)m(w)m(er)g(blac)m(k)150 4510 y(lev)m(els,)31 b(and)f(gradually)f
+(mix)g(in)h(blac)m(k)g(as)h(the)g(o)m(v)m(erall)g(amoun)m(t)g(of)g(ink)
+f(increases,)g(so)h(the)g(blac)m(k)g(dots)150 4620 y(don't)f(really)g
+(b)s(ecome)g(visible)e(within)g(the)j(ink)e(mass.)275
+4761 y(V)-8 b(ariable)25 b(dot)i(sizes)f(are)g(handled)f(b)m(y)h
+(dividing)d(the)j(range)h(b)s(et)m(w)m(een)g(0)f(and)g(65536)i(in)m(to)
+f(segmen)m(ts.)150 4870 y(Eac)m(h)i(segmen)m(t)g(can)g(either)f
+(represen)m(t)g(a)h(range)f(in)f(whic)m(h)h(all)f(of)h(one)h(kind)d(of)
+j(ink)e(\(color)h(and/or)h(dot)150 4980 y(size\))38 b(is)e(used,)j
+(with)d(v)-5 b(arying)36 b(amoun)m(ts)i(of)g(ink,)g(or)f(a)h
+(transition)e(region)h(b)s(et)m(w)m(een)h(inks,)g(in)e(whic)m(h)150
+5089 y(equal)30 b(n)m(um)m(b)s(ers)f(of)i(dots)f(are)h(prin)m(ted)e
+(but)h(the)h(amoun)m(t)f(of)h(eac)m(h)h(ink)d(will)f(b)s(e)i(adjusted)f
+(throughout)150 5199 y(the)i(range.)41 b(Eac)m(h)31 b(range)f(is)g
+(represen)m(ted)g(b)m(y)g(four)g(n)m(um)m(b)s(ers:)199
+5340 y(1.)61 b(b)s(ottom)31 b(of)f(the)h(range)p eop
+%%Page: 36 41
+36 40 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(36)199 299 y(2.)61 b(top)31 b(of)f(the)h(range)199
+432 y(3.)61 b(v)-5 b(alue)30 b(of)g(the)h(ligh)m(ter)f(ink)199
+565 y(4.)61 b(v)-5 b(alue)30 b(of)g(the)h(dark)m(er)f(ink)275
+722 y(In)f(addition,)g(the)i(bit)e(patterns)i(and)e(whic)m(h)h(t)m(yp)s
+(e)g(of)h(ink)e(are)i(also)f(represen)m(ted,)h(but)e(they)i(don't)150
+831 y(a\013ect)h(the)f(actual)f(algorithm.)275 964 y(As)i(men)m(tioned)
+f(ab)s(o)m(v)m(e,)j(the)e(basic)g(algorithm)f(is)g(the)h(same)h
+(whether)e(w)m(e)i(use)f(ordered)f(dither)g(or)150 1074
+y(error)f(di\013usion.)38 b(W)-8 b(e)32 b(p)s(erform)d(the)h(follo)m
+(wing)f(steps)h(on)g(eac)m(h)i(color)e(of)h(eac)m(h)h(pixel:)199
+1207 y(1.)61 b(Compute)34 b(the)h(v)-5 b(alue)34 b(of)g(the)h
+(particular)e(color)h(w)m(e're)h(prin)m(ting.)51 b(This)33
+b(isn't)g(usually)f(the)j(pure)330 1316 y(CMY)f(v)-5
+b(alue;)36 b(it's)d(adjusted)h(to)g(impro)m(v)m(e)g(saturation)g(and)f
+(to)i(limit)d(the)i(use)g(of)g(blac)m(k)g(in)f(ligh)m(t)330
+1426 y(toned)e(regions)e(\(to)j(a)m(v)m(oid)f(sp)s(ec)m(kling\).)199
+1559 y(2.)61 b(Find)29 b(the)h(range)h(con)m(taining)f(this)f(v)-5
+b(alue.)199 1692 y(3.)61 b(Compute)26 b(where)h(this)e(v)-5
+b(alue)27 b(lies)e(within)g(the)i(range.)40 b(W)-8 b(e)28
+b(scale)f(the)g(endp)s(oin)m(ts)e(b)s(et)m(w)m(een)i(0)h(and)330
+1802 y(65536)37 b(for)d(this)g(purp)s(ose.)51 b(So)35
+b(for)f(example,)i(if)d(the)i(b)s(ottom)g(of)f(the)h(range)g(is)f
+(10,000)j(and)d(the)330 1911 y(top)g(of)g(the)g(range)g(is)f(20,000,)k
+(and)d(the)g(v)-5 b(alue)33 b(is)g(12,500,)k(w)m(e're)e(1/4)g(of)f(the)
+g(w)m(a)m(y)g(b)s(et)m(w)m(een)h(the)330 2021 y(b)s(ottom)c(and)e(the)i
+(top)g(of)f(the)h(range,)g(so)f(our)g(scale)h(p)s(oin)m(t)e(is)h
+(16384.)199 2154 y(4.)61 b(Compute)35 b(the)h(\\virtual)e(v)-5
+b(alue".)56 b(The)35 b(virtual)f(v)-5 b(alue)35 b(is)g(the)h(distance)f
+(b)s(et)m(w)m(een)h(the)g(v)-5 b(alue)35 b(of)330 2264
+y(the)28 b(ligh)m(ter)f(and)h(the)g(v)-5 b(alue)28 b(of)g(the)g(dark)m
+(er)g(ink.)38 b(So)28 b(if)f(the)i(v)-5 b(alue)27 b(of)h(the)g(ligh)m
+(t)g(ink)e(is)h(32768)k(and)330 2373 y(the)i(dark)f(ink)f(is)h(65536,)k
+(w)m(e)d(compute)g(a)g(virtual)e(v)-5 b(alue)33 b(scaled)f
+(appropriately)f(b)s(et)m(w)m(een)i(these)330 2483 y(t)m(w)m(o)f(v)-5
+b(alues,)30 b(whic)m(h)f(is)g(40960)k(in)c(this)g(case.)199
+2616 y(5.)61 b(Using)24 b(either)h(error)f(di\013usion)e(or)j(ordered)g
+(dither,)f(the)i(standard)e(threshold)f(is)h(1/2)i(of)f(the)g(v)-5
+b(alue)330 2725 y(\(20480)32 b(in)c(this)g(case\).)41
+b(Using)29 b(ordered)f(dither,)h(w)m(e)g(w)m(an)m(t)h(to)g(compute)g(a)
+f(v)-5 b(alue)29 b(b)s(et)m(w)m(een)h(0)g(and)330 2835
+y(40960)j(that)f(w)m(e)g(will)d(compare)i(the)h(input)d(v)-5
+b(alue)31 b(against)g(to)h(decide)f(whether)g(to)h(prin)m(t.)42
+b(Using)330 2945 y(pure)29 b(error)h(di\013usion,)e(w)m(e)i(w)m(ould)f
+(compare)i(the)f(accum)m(ulated)h(error)f(against)g(20480)j(to)e
+(decide)330 3054 y(whether)36 b(to)h(prin)m(t.)57 b(In)36
+b(practice,)i(w)m(e)f(use)f(the)g(same)h(matrix)f(metho)s(d)g(to)h
+(decide)e(whether)h(to)330 3164 y(prin)m(t.)h(The)25
+b(correct)h(amoun)m(t)f(of)g(ink)e(will)f(b)s(e)i(prin)m(ted)g(this)f
+(w)m(a)m(y)-8 b(,)28 b(but)c(w)m(e)h(minimize)d(the)j(squiggly)330
+3273 y(lines)d(c)m(haracteristic)j(of)f(error)f(di\013usion)e(b)m(y)j
+(dithering)e(the)i(threshold)e(in)h(this)g(fashion.)37
+b(A)24 b(future)330 3383 y(enhancemen)m(t)29 b(will)c(allo)m(w)j(us)f
+(to)i(con)m(trol)g(the)f(amoun)m(t)h(of)f(dithering)e(applied)g(to)j
+(the)f(threshold.)275 3540 y(The)35 b(matrices)h(w)m(ere)h(generated)g
+(b)m(y)f(Thomas)f(T)-8 b(onino)36 b Fr(<ttonino@bio.vu.nl>)30
+b Fu(with)35 b(an)h(algo-)150 3649 y(rithm)30 b(of)j(his)d(devising.)44
+b(The)31 b(algorithm)g(is)g(designed)g(to)i(maximize)e(the)h(spacing)f
+(b)s(et)m(w)m(een)i(dots)f(at)150 3759 y(an)m(y)25 b(giv)m(en)g(densit)
+m(y)e(b)m(y)i(searc)m(hing)f(the)h(matrix)f(for)g(holes)g(and)g
+(placing)g(a)h(dot)g(in)e(the)i(largest)g(a)m(v)-5 b(ailable)150
+3868 y(hole.)44 b(It)31 b(requires)f(careful)h(selection)h(of)f
+(initial)e(p)s(oin)m(ts)i(to)h(ac)m(hiev)m(e)h(go)s(o)s(d)e(results,)g
+(and)g(is)f(v)m(ery)i(time)150 3978 y(consuming.)64 b(F)-8
+b(or)39 b(b)s(est)f(results,)h(a)g(di\013eren)m(t)f(matrix)g(m)m(ust)g
+(b)s(e)g(used)g(for)g(mo)s(des)g(with)f(2:1)i(asp)s(ect)150
+4088 y(ratio)28 b(\(e.g.)41 b(1440x720\))31 b(than)d(for)f(1:1)i(\(e.)
+41 b(g.)f(720x720\).)j(It)28 b(is)f(essen)m(tial)g(with)g(an)m(y)h(of)g
+(these)g(matrices)150 4197 y(that)j(ev)m(ery)g(p)s(oin)m(t)e(b)s(e)h
+(used.)40 b(Skipping)27 b(p)s(oin)m(ts)j(generates)h(lo)m(w-frequency)f
+(noise.)275 4330 y(It's)24 b(essen)m(tial)f(to)i(use)e(di\013eren)m(t)h
+(matrices)f(for)h(deciding)e(whether)h(to)i(prin)m(t)d(and)h(for)h
+(deciding)e(what)150 4440 y(color)31 b(\(dark)g(or)h(ligh)m(t\))f(to)h
+(prin)m(t.)42 b(This)29 b(should)g(b)s(e)i(ob)m(vious;)g(the)h
+(decision)e(ab)s(out)h(whether)f(to)i(prin)m(t)150 4549
+y(at)39 b(all)e(should)f(b)s(e)h(as)h(indep)s(enden)m(t)e(as)i(p)s
+(ossible)e(from)h(the)h(decision)f(ab)s(out)g(what)h(color)g(to)h(prin)
+m(t,)150 4659 y(b)s(ecause)h(an)m(y)g(bias)f(will)f(result)g(in)h
+(excess)i(ligh)m(t)e(or)h(dark)g(ink)e(b)s(eing)h(prin)m(ted,)i
+(shifting)d(the)i(tonal)150 4769 y(balance.)h(W)-8 b(e)32
+b(actually)e(use)h(the)g(same)g(matrices,)g(but)e(w)m(e)j(shift)d(them)
+h(v)m(ertically)g(and)g(horizon)m(tally)-8 b(.)150 4878
+y(Assuming)29 b(that)i(the)f(matrices)h(are)f(not)h(self-correlated,)g
+(this)e(will)f(yield)g(go)s(o)s(d)i(results.)275 5011
+y(The)35 b(ranges)i(are)f(computed)g(from)g(a)h(list)d(of)j(ink)e(v)-5
+b(alues)35 b(\(b)s(et)m(w)m(een)i(0)g(and)e(1)i(for)f(eac)m(h)h(p)s
+(ossible)150 5121 y(com)m(bination)c(of)i(dot)f(size)g(and)f(ink)g
+(tone,)j(where)d(the)i(v)-5 b(alue)33 b(represen)m(ts)h(the)g(darkness)
+f(of)i(the)f(ink\))150 5230 y(and)e(the)g(desired)f(maxim)m(um)g
+(densit)m(y)g(of)i(the)f(ink.)45 b(This)31 b(is)g(done)h(in)f(dither)p
+2872 5230 28 4 v 31 w(set)p 3014 5230 V 34 w(ranges,)i(and)e(needs)150
+5340 y(more)g(do)s(cumen)m(tation.)p eop
+%%Page: 37 42
+37 41 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(37)275 299 y(I)34 b(stated)i(earlier)e(that)i(I'v)m(e)g(t)m(w)m(eak)m
+(ed)h(the)e(basic)g(error)f(di\013usion)f(algorithm.)53
+b(Here's)36 b(what)f(I'v)m(e)150 408 y(done)30 b(to)h(impro)m(v)m(e)f
+(it:)199 547 y(1.)61 b(W)-8 b(e)28 b(use)e(a)h(v)-5 b(ariable)26
+b(threshold)f(to)i(decide)f(when)g(to)i(prin)m(t,)e(as)h(discussed)e
+(ab)s(o)m(v)m(e.)40 b(This)25 b(do)s(es)i(t)m(w)m(o)330
+657 y(things)i(for)i(us:)40 b(it)30 b(reduces)h(the)f(sligh)m(tly)f
+(squiggly)h(diagonal)f(lines)g(that)i(are)g(the)g(mark)g(of)f(error)330
+767 y(di\013usion;)e(and)i(it)g(allo)m(ws)g(us)g(to)h(la)m(y)g(do)m(wn)
+f(some)h(ink)e(ev)m(en)i(in)e(v)m(ery)i(ligh)m(t)f(areas)h(near)g(the)f
+(edge)330 876 y(of)35 b(the)h(image.)55 b(The)35 b(squiggly)f(lines)g
+(that)h(error)g(di\013usion)e(algorithms)h(tend)h(to)h(generate)h(are)
+330 986 y(caused)28 b(b)m(y)f(the)h(gradual)f(accum)m(ulation)g(of)h
+(error.)40 b(This)25 b(error)j(is)e(partially)g(added)h(horizon)m
+(tally)330 1095 y(and)j(partially)e(v)m(ertically)-8
+b(.)40 b(The)30 b(horizon)m(tal)g(accum)m(ulation)g(results)f(in)g(a)i
+(dot)f(ev)m(en)m(tually)g(b)s(eing)330 1205 y(prin)m(ted.)55
+b(The)35 b(v)m(ertical)h(accum)m(ulation)g(results)e(in)g(a)i(dot)g
+(getting)h(laid)d(do)m(wn)h(in)f(roughly)h(the)330 1315
+y(same)28 b(horizon)m(tal)f(p)s(osition)f(in)g(the)i(next)g(ro)m(w.)40
+b(The)27 b(diagonal)g(squigglies)f(result)g(from)h(the)h(error)330
+1424 y(b)s(eing)35 b(added)g(to)i(pixels)d(one)i(forw)m(ard)f(and)h
+(one)g(b)s(elo)m(w)f(the)h(curren)m(t)g(pixel;)h(these)g(lines)d(slop)s
+(e)330 1534 y(from)c(the)g(top)h(righ)m(t)f(to)h(the)g(b)s(ottom)f
+(left)h(of)f(the)h(image.)330 1670 y(Error)37 b(di\013usion)e(also)j
+(results)e(in)h(pale)g(areas)i(b)s(eing)d(completely)i(white)e(near)i
+(the)g(top)g(left)g(of)330 1780 y(the)29 b(image)g(\(the)g(origin)e(of)
+i(the)f(prin)m(ting)f(co)s(ordinates\).)40 b(This)27
+b(is)h(b)s(ecause)g(enough)h(error)f(has)g(to)330 1890
+y(accum)m(ulate)33 b(for)g(an)m(ything)f(at)h(all)e(to)j(get)f(prin)m
+(ted.)46 b(In)32 b(v)m(ery)h(pale)f(areas)h(it)f(tak)m(es)i(quite)e(a)h
+(long)330 1999 y(time)d(to)h(build)d(up)h(an)m(ything)h(prin)m(table)e
+(at)j(all;)f(this)f(results)g(in)g(the)i(bare)f(sp)s(ots.)330
+2136 y(Randomizing)f(the)i(threshold)e(somewhat)i(breaks)f(up)g(the)h
+(diagonals)f(to)h(some)g(degree)h(b)m(y)e(ran-)330 2245
+y(domizing)40 b(the)j(exact)g(lo)s(cation)e(that)i(the)f(accum)m
+(ulated)g(output)g(crosses)g(the)g(threshold.)74 b(It)330
+2355 y(reduces)29 b(the)h(false)f(white)g(areas)h(b)m(y)f(allo)m(wing)g
+(some)h(dots)f(to)h(b)s(e)f(prin)m(ted)f(ev)m(en)j(when)d(the)i(accu-)
+330 2465 y(m)m(ulated)d(output)g(lev)m(el)g(is)f(v)m(ery)h(lo)m(w.)40
+b(It)27 b(do)s(esn't)g(result)f(in)g(excess)i(ink)e(b)s(ecause)h(the)g
+(full)e(output)330 2574 y(lev)m(el)30 b(is)f(still)g(subtracted)h(and)g
+(di\013used.)330 2711 y(Excessiv)m(e)41 b(randomization)e(leads)h(to)h
+(blobs)d(at)j(high)e(densities.)69 b(Therefore,)43 b(as)d(the)h(densit)
+m(y)330 2821 y(increases,)30 b(the)h(degree)g(of)f(randomization)g
+(decreases.)199 2957 y(2.)61 b(Alternating)36 b(scan)h(direction)f(b)s
+(et)m(w)m(een)h(ro)m(ws)g(\(\014rst)g(ro)m(w)g(is)f(scanned)g(left)h
+(to)h(righ)m(t,)g(second)f(is)330 3067 y(scanned)h(righ)m(t)g(to)h
+(left,)h(and)d(so)i(on\).)64 b(This)37 b(also)h(helps)f(break)h(up)f
+(white)g(areas,)42 b(and)37 b(it)h(also)330 3176 y(seems)30
+b(to)g(break)f(up)g(squigglies)f(a)i(bit.)39 b(F)-8 b(urthermore,)30
+b(it)f(eliminates)f(directional)g(biases)h(in)f(the)330
+3286 y(horizon)m(tal)g(direction.)39 b(This)26 b(isn't)i(necessary)h
+(for)f(ordered)g(dither,)g(but)f(it)h(do)s(esn't)g(h)m(urt)g(either.)
+199 3423 y(3.)61 b(Di\013using)25 b(the)i(error)g(in)m(to)g(more)g
+(pixels.)38 b(Instead)27 b(of)g(di\013using)d(the)k(en)m(tire)f(error)f
+(in)m(to)h(\()p Fc(X)7 b Fu(+)q(1)p Fc(;)15 b(Y)21 b
+Fu(\))330 3532 y(and)37 b(\()p Fc(X)r(;)15 b(Y)21 b Fu(+1\),)41
+b(w)m(e)d(di\013use)e(it)h(in)m(to)h(\()p Fc(X)7 b Fu(+1)p
+Fc(;)15 b(Y)21 b Fu(\),)40 b(\()p Fc(X)7 b Fu(+)q Fc(K)q(;)15
+b(Y)21 b Fu(+1\),)40 b(\()p Fc(X)r(;)15 b(Y)21 b Fu(+1\),)41
+b(\()p Fc(X)33 b Fs(\000)24 b Fc(K)q(;)15 b(Y)21 b Fu(+1\))330
+3642 y(where)27 b Fc(K)34 b Fu(dep)s(ends)25 b(up)s(on)h(the)h(output)g
+(lev)m(el)g(\(it)g(nev)m(er)h(exceeds)g(ab)s(out)f(10)h(dots,)h(and)d
+(is)h(greater)330 3751 y(at)32 b(higher)d(output)h(lev)m(els\).)42
+b(This)29 b(really)h(reduces)g(squigglies)f(and)h(graininess.)40
+b(The)31 b(amoun)m(t)g(of)330 3861 y(this)j(spread)h(can)h(b)s(e)f(con)
+m(trolled;)j(for)e(line)d(art,)38 b(it)d(should)f(b)s(e)h(less)g(than)g
+(for)g(photographs)g(\(of)330 3971 y(course,)k(line)d(art)h(do)s(esn't)
+g(usually)e(con)m(tain)i(m)m(uc)m(h)g(ligh)m(t)f(color,)k(but)c(the)h
+Fi(error)h Fu(v)-5 b(alue)36 b(can)i(b)s(e)330 4080 y(small)28
+b(in)h(places!\))41 b(In)29 b(addition)f(to)j(requiring)c(more)j
+(computation,)g(a)h(wide)d(ink)h(spread)g(results)330
+4190 y(in)d(patterning)g(at)i(high)d(dot)j(densities)d(\(note)j(that)f
+(the)h(dot)f(densit)m(y)f(can)h(b)s(e)g(high)e(ev)m(en)j(in)e(fairly)
+330 4299 y(pale)k(regions)g(if)f(m)m(ultiple)f(dot)j(sizes)f(are)h(in)e
+(use\).)199 4436 y(4.)61 b(Don't)34 b(la)m(y)f(do)m(wn)g(an)m(y)g
+(colored)g(ink)f(if)g(w)m(e're)h(la)m(ying)g(do)m(wn)f(blac)m(k)h(ink.)
+48 b(There's)32 b(no)h(p)s(oin)m(t;)h(the)330 4546 y(colored)j(ink)f(w)
+m(on't)i(sho)m(w.)60 b(W)-8 b(e)39 b(still)c(pretend)h(that)i(w)m(e)f
+(did)f(for)g(purp)s(oses)g(of)h(error)g(di\013usion)330
+4655 y(\(otherwise)29 b(excessiv)m(e)h(error)f(will)e(build)f(up,)j
+(and)g(will)d(tak)m(e)31 b(a)f(long)f(time)g(to)h(clear,)g(resulting)d
+(in)330 4765 y(hea)m(vy)j(bleeding)e(of)i(ink)e(in)m(to)h(surrounding)d
+(areas,)31 b(whic)m(h)d(is)h(v)m(ery)h(ugly)e(indeed\),)h(but)g(w)m(e)h
+(don't)330 4874 y(b)s(other)c(w)m(asting)g(the)g(ink.)38
+b(Ho)m(w)27 b(w)m(ell)e(this)h(will)d(do)j(with)f(v)-5
+b(ariable)25 b(dot)i(size)f(remains)f(to)i(b)s(e)f(seen.)199
+5011 y(5.)61 b(Ov)m(ersampling.)38 b(This)26 b(is)h(ho)m(w)h(to)h(prin)
+m(t)d(1440x720)31 b(with)c(Epson)g(St)m(ylus)g(prin)m(ters.)38
+b(Prin)m(ting)26 b(full)330 5121 y(densit)m(y)g(at)i(1440x720)i(will)25
+b(result)h(in)g(excess)h(ink)f(b)s(eing)g(laid)f(do)m(wn.)39
+b(The)27 b(tric)m(k)g(is)f(to)i(prin)m(t)e(only)330 5230
+y(ev)m(ery)34 b(other)f(dot.)49 b(W)-8 b(e)34 b(still)d(compute)i(the)h
+(error)e(as)i(though)e(w)m(e)i(prin)m(ted)d(ev)m(ery)j(dot.)49
+b(It)33 b(turns)330 5340 y(out)c(that)h(randomizing)d(whic)m(h)g(dots)i
+(are)h(prin)m(ted)d(results)h(in)f(v)m(ery)j(sp)s(ec)m(kled)e(output.)
+40 b(This)27 b(can)p eop
+%%Page: 38 43
+38 42 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(38)330 299 y(b)s(e)38 b(tak)m(en)i(to)s(o)f(far;)k(o)m(v)m
+(ersampling)38 b(at)i(1440x1440)i(or)d(1440x2880)j(virtual)37
+b(resolution)g(results)330 408 y(in)g(other)j(problems.)64
+b(Ho)m(w)m(ev)m(er,)43 b(at)c(presen)m(t)g(1440x1440)k(\(whic)m(h)37
+b(is)h(more)h(accurately)h(called)330 518 y Fr(")p Fu(1440x720)j
+(enhanced)p Fr(")p Fu(,)e(as)f(the)g(Epson)f(prin)m(ters)f(cannot)j
+(prin)m(t)d(1440)k(ro)m(ws)d(p)s(er)g(inc)m(h\))g(do)s(es)330
+628 y(quite)30 b(w)m(ell,)f(although)h(it's)g(slo)m(w.)275
+808 y(What)36 b(ab)s(out)f(m)m(ultiple)e(output)i(lev)m(els?)55
+b(F)-8 b(or)36 b(6)g(and)f(7)h(color)f(prin)m(ters,)h(simply)d(using)g
+(di\013eren)m(t)150 918 y(threshold)d(lev)m(els)h(has)g(a)h(problem:)42
+b(the)32 b(pale)f(inks)f(ha)m(v)m(e)j(trouble)d(b)s(eing)g(seen)i(when)
+f(a)h(lot)f(of)h(dark)m(er)150 1027 y(ink)i(is)g(b)s(eing)f(prin)m
+(ted.)54 b(So)35 b(rather)g(than)f(just)h(using)f(the)h(output)f(lev)m
+(el)h(of)g(the)h(particular)d(color)i(to)150 1137 y(decide)i(whic)m(h)e
+(ink)h(to)i(prin)m(t,)g(w)m(e)g(lo)s(ok)e(at)i(the)g(total)g(densit)m
+(y)e(\(sum)h(of)g(all)f(output)h(lev)m(els\).)61 b(If)37
+b(the)150 1246 y(densit)m(y's)31 b(high)f(enough,)i(w)m(e)g(prefer)e
+(to)j(use)e(the)h(dark)e(ink.)43 b(Sp)s(ec)m(kling)30
+b(is)g(less)h(visible)e(when)i(there's)150 1356 y(a)g(lot)f(of)h(ink,)e
+(an)m(yw)m(a)m(y)-8 b(.)42 b(I)31 b(ha)m(v)m(en't)g(y)m(et)h(\014gured)
+d(out)i(what)f(to)h(do)f(for)h(m)m(ultiple)d(lev)m(els)i(of)g(one)h
+(color.)275 1504 y(Y)-8 b(ou'll)34 b(note)h(that)h(I)f(ha)m(v)m(en't)h
+(quoted)f(a)h(single)d(source)j(on)e(color)i(or)f(prin)m(ting)d(theory)
+-8 b(.)56 b(I)34 b(simply)150 1614 y(did)29 b(all)g(of)h(this)g
+(empirically)-8 b(.)275 1762 y(There)33 b(are)h(v)-5
+b(arious)33 b(other)h(tric)m(ks)g(to)h(reduce)e(sp)s(ec)m(kling.)50
+b(One)33 b(that)i(I'v)m(e)g(seen)f(is)e(to)j(reduce)f(the)150
+1872 y(amoun)m(t)f(of)f(ink)f(prin)m(ted)g(in)g(regions)h(where)g(one)h
+(color)f(\(particularly)f(cy)m(an,)i(whic)m(h)e(is)h(p)s(erceiv)m(ed)g
+(as)150 1982 y(the)d(dark)m(est\))i(is)d(v)m(ery)h(pale.)40
+b(This)28 b(do)s(es)h(reduce)g(sp)s(ec)m(kling)f(all)g(righ)m(t,)h(but)
+f(it)h(also)g(results)f(in)g(strange)150 2091 y(tonal)i(curv)m(es)h
+(and)f(w)m(eird)f(\(to)i(m)m(y)g(ey)m(e\))h(colors.)275
+2240 y(Before)43 b(an)m(y)h(dither)d(routine)h(is)g(used,)j
+Fr(init_dither\(\))40 b Fu(m)m(ust)i(b)s(e)h(called.)77
+b(This)41 b(tak)m(es)k(three)150 2349 y(argumen)m(ts:)f(the)32
+b(input)e(width)g(\(n)m(um)m(b)s(er)h(of)h(pixels)e(in)g(the)i
+(input\),)f(the)h(output)g(width)e(\(n)m(um)m(b)s(er)h(of)150
+2459 y(pixels)e(in)g(the)h(output\),)h(and)f(a)g Fr(vars_t)f
+Fu(structure)h(con)m(taining)g(the)g(parameters)h(for)f(the)h(prin)m(t)
+e(job.)275 2607 y Fr(init_dither\(\))38 b Fu(returns)i(a)i(p)s(oin)m
+(ter)f(to)h(an)g(opaque)g(ob)5 b(ject)43 b(represen)m(ting)e(the)g
+(dither.)74 b(This)150 2717 y(ob)5 b(ject)31 b(is)f(passed)g(as)g(the)h
+(\014rst)e(argumen)m(t)i(to)g(all)f(of)g(the)h(dither-related)e
+(routines.)275 2865 y(After)34 b(a)h(page)g(is)e(fully)f(dithered,)i
+Fr(free_dither\(\))c Fu(m)m(ust)k(b)s(e)g(called)g(to)g(free)h(the)f
+(dither)f(ob)5 b(ject)150 2975 y(and)37 b(p)s(erform)e(an)m(y)j(clean)m
+(up.)61 b(In)36 b(the)i(future,)g(this)e(ma)m(y)i(do)f(more)g(\(suc)m
+(h)h(as)f(\015ush)e(output\).)62 b(This)150 3084 y(arrangemen)m(t)27
+b(p)s(ermits)d(using)g(these)j(routines)e(with)f(programs)i(that)g
+(create)i(m)m(ultiple)c(output)h(pages,)150 3194 y(suc)m(h)30
+b(as)h(GhostScript.)275 3342 y(The)e(dithering)f(routines)i(themselv)m
+(es)g(ha)m(v)m(e)i(a)f(n)m(um)m(b)s(er)e(of)h(con)m(trol)h(knobs)e
+(that)i(con)m(trol)g(in)m(ternal)150 3452 y(asp)s(ects)e(of)g(the)g
+(dithering)d(pro)s(cess.)40 b(These)29 b(knobs)f(are)h(accessible)f
+(via)h(a)g(n)m(um)m(b)s(er)e(of)i(functions)e(that)150
+3562 y(can)k(b)s(e)e(called)h(after)h Fr(init_dither\(\))p
+Fu(.)225 3710 y Fs(\017)60 b Fr(dither_set_density\(\))30
+b Fu(tak)m(es)36 b(a)f(double)f(b)s(et)m(w)m(een)i(0)f(and)g(1)g
+(represen)m(ting)f(the)i(desired)d(ink)330 3820 y(densit)m(y)j(for)g
+(prin)m(ting)e(solid)h(colors.)58 b(This)35 b(is)g(used)h(in)f(a)i(n)m
+(um)m(b)s(er)e(of)h(places)h(in)e(the)h(dithering)330
+3929 y(routine)29 b(to)i(mak)m(e)h(decisions.)225 4071
+y Fs(\017)60 b Fr(dither_set_black_density)o(\(\))16
+b Fu(tak)m(es)24 b(a)f(double)d(b)s(et)m(w)m(een)j(0)g(and)f(1)g
+(represen)m(ting)g(the)g(desired)330 4180 y(ink)g(densit)m(y)h(for)g
+(prin)m(ting)e(blac)m(k)i(ink)f(in)g(color)h(prin)m(ting.)37
+b(This)21 b(is)i(used)f(to)i(balance)f(blac)m(k)h(against)330
+4290 y(color)33 b(ink.)47 b(By)33 b(default,)g(this)f(is)g(equal)h(to)g
+(the)g(densit)m(y)f(set)i(b)m(y)f Fr(dither_set_density\(\))p
+Fu(.)43 b(By)330 4400 y(setting)30 b(it)g(higher,)f(more)i(blac)m(k)f
+(ink)f(will)f(b)s(e)i(prin)m(ted.)39 b(F)-8 b(or)31 b(example,)f(if)f
+(the)i(base)f(densit)m(y)g(is)f(.4)330 4509 y(and)f(the)h(blac)m(k)g
+(densit)m(y)f(is)g(.8,)i(t)m(wice)f(as)g(m)m(uc)m(h)g(blac)m(k)g(ink)e
+(will)f(b)s(e)j(prin)m(ted)e(as)i(w)m(ould)f(otherwise)330
+4619 y(b)s(e)i(called)f(for.)330 4760 y(This)f(is)g(not)i(used)f(when)f
+(prin)m(ting)f(in)i(mono)s(c)m(hrome.)40 b(When)30 b(prin)m(ting)d
+(mono)s(c)m(hrome,)j(the)g(base)330 4870 y(densit)m(y)g(\()p
+Fr(dither_set_density)p Fu(\))c(should)i(b)s(e)i(adjusted)g
+(appropriately)-8 b(.)225 5011 y Fs(\017)60 b Fr
+(dither_set_ink_budget\(\))25 b Fu(tak)m(es)33 b(an)e(unsigned)e(n)m
+(um)m(b)s(er)h(represen)m(ting)h(the)h(most)f(ink)f(that)330
+5121 y(ma)m(y)f(b)s(e)f(dep)s(osited)f(at)i(a)g(giv)m(en)f(p)s(oin)m
+(t.)39 b(This)27 b(n)m(um)m(b)s(er)g(is)g(arbitrary;)i(the)f(limit)e
+(is)i(computed)g(b)m(y)330 5230 y(summing)e(the)i(size)f(of)h(eac)m(h)h
+(ink)e(dot,)h(whic)m(h)f(is)g(supplied)d(as)k(a)g(parameter)h(in)d
+Fr(dither_set_)p Fm(X)9 b Fr(_)330 5340 y(ranges)p Fu(.)39
+b(By)31 b(default,)f(there)g(is)f(no)i(limit.)p eop
+%%Page: 39 44
+39 43 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(39)225 299 y Fs(\017)60 b Fr(dither_set_black_lower\(\))24
+b Fu(tak)m(es)32 b(a)e(double)f(that)i(should)e(b)s(e)h(b)s(et)m(w)m
+(een)h(0)g(and)e(1)i(that)g(rep-)330 408 y(resen)m(ts)39
+b(the)h(lo)m(w)m(est)f(densit)m(y)g(lev)m(el)f(at)i(whic)m(h)e(blac)m
+(k)h(ink)e(will)g(start)i(to)h(mix)e(in)f(with)h(colored)330
+518 y(ink)32 b(to)j(generate)g(gra)m(ys.)51 b(The)33
+b(lo)m(w)m(er)h(this)e(is,)i(the)g(less)f(densit)m(y)f(is)h(required)f
+(to)i(use)f(blac)m(k)h(ink.)330 628 y(Setting)i(this)f(to)s(o)i(lo)m(w)
+g(will)c(result)j(in)f(sp)s(ec)m(kling)f(from)i(blac)m(k)h(dots,)h
+(particularly)c(on)i(6)h(and)f(7)330 737 y(color)30 b(prin)m(ters.)39
+b(Setting)30 b(this)f(to)s(o)i(high)e(will)f(mak)m(e)j(it)f(hard)f(to)i
+(get)g(satisfactory)g(blac)m(k)f(or)g(ma)m(y)330 847
+y(result)f(in)g(sharp)h(transition)e(b)s(et)m(w)m(een)j(blended)e
+(colors)h(and)g(blac)m(k.)41 b(Default:)g(0.0468.)330
+989 y(It)29 b(is)f(imp)s(ortan)m(t)g(to)i(note)f(that)h(since)e(the)h
+(densit)m(y)f(scale)h(is)f(nev)m(er)h(linear)f(\(and)g(since)h(this)e
+(v)-5 b(alue)330 1099 y(is)27 b(adjusted)f(via)i(other)f(things)g(happ)
+s(ening)e(during)g(the)j(dithering)d(pro)s(cess\))j(that)g(this)e(do)s
+(es)i(not)330 1208 y(mean)j(that)g(95\045)g(gra)m(y)h(will)c(use)i(an)m
+(y)h(blac)m(k)g(ink.)41 b(A)m(t)31 b(this)f(setting,)h(there)g(will)d
+(b)s(e)i(no)h(blac)m(k)f(ink)330 1318 y(used)g(un)m(til)e(ab)s(out)i
+(50\045)h(gra)m(y)-8 b(.)330 1461 y(This)29 b(only)g(applies)g(to)i
+(color)f(mo)s(de.)330 1603 y(This)c(v)-5 b(alue)27 b(should)f(b)s(e)h
+(set)h(lo)m(w)m(er)g(for)g(prin)m(ters)e(capable)h(of)h(v)-5
+b(ariable)27 b(dot)h(size,)g(since)f(more)h(dots)330
+1713 y(can)j(b)s(e)e(laid)g(do)m(wn)h(close)h(to)g(eac)m(h)g(other.)225
+1855 y Fs(\017)60 b Fr(dither_set_black_upper\(\))24
+b Fu(tak)m(es)32 b(a)e(double)f(that)i(should)e(b)s(e)h(b)s(et)m(w)m
+(een)h(0)g(and)e(1)i(that)g(rep-)330 1965 y(resen)m(ts)39
+b(the)g(highest)f(densit)m(y)g(lev)m(el)h(at)h(whic)m(h)d(colored)i
+(inks)e(will)g(b)s(e)h(mixed)f(to)j(create)g(gra)m(y)-8
+b(.)330 2074 y(Setting)33 b(this)g(to)s(o)h(lo)m(w)g(will)d(result)i
+(in)f(sp)s(ec)m(kly)h(dark)g(gra)m(ys)i(b)s(ecause)e(there)h(is)f(not)h
+(enough)f(ink)330 2184 y(to)38 b(\014ll)d(all)h(the)i(holes,)g(or)f
+(sharp)f(transition)g(b)s(et)m(w)m(een)i(blended)d(colors)i(and)g(blac)
+m(k)g(if)f(it)h(is)f(to)s(o)330 2293 y(close)31 b(to)h(the)f(v)-5
+b(alue)31 b(of)g(dither)p 1401 2293 28 4 v 32 w(set)p
+1544 2293 V 33 w(blac)m(k)p 1784 2293 V 33 w(upp)s(er\(\).)41
+b(Setting)31 b(this)f(to)s(o)i(high)e(will)e(result)i(in)g(p)s(o)s(or)
+330 2403 y(blac)m(k)h(and)f(dark)g(tone)h(qualit)m(y)-8
+b(.)42 b(Default:)f(0.5.)i(This)29 b(results)g(in)h(10\045)h(and)f
+(dark)m(er)h(gra)m(ys)g(b)s(eing)330 2513 y(prin)m(ted)e(with)g(essen)m
+(tially)g(all)h(blac)m(k.)330 2655 y(This)f(only)g(applies)g(to)i
+(color)f(mo)s(de.)225 2798 y Fs(\017)60 b Fr(dither_set_black_levels\()
+o(\))26 b Fu(tak)m(es)34 b(three)e(doubles)e(that)j(represen)m(t)f(the)
+g(amoun)m(t)h(of)f(cy)m(an,)330 2907 y(magen)m(ta,)g(and)c(y)m(ello)m
+(w)i(resp)s(ectiv)m(ely)f(that)h(are)f(blended)f(to)i(create)h(gra)m(y)
+-8 b(.)42 b(The)29 b(defaults)f(are)i(1.0)330 3017 y(for)38
+b(eac)m(h,)k(whic)m(h)37 b(is)g(probably)f(to)s(o)j(lo)m(w)f(for)g
+(most)h(prin)m(ters.)63 b(These)37 b(v)-5 b(alues)38
+b(are)h(adjusted)e(to)330 3126 y(create)31 b(a)f(go)s(o)s(d)f(gra)m(y)h
+(balance.)41 b(Setting)29 b(these)h(to)s(o)g(lo)m(w)f(will)e(result)h
+(in)g(pale)h(ligh)m(t)g(and)g(midtone)330 3236 y(gra)m(ys,)g(with)d(a)i
+(sharp)e(transition)f(to)j(dark)m(er)g(tones)f(as)h(blac)m(k)f(mixes)g
+(in.)38 b(Setting)27 b(them)g(to)s(o)h(high)330 3345
+y(will)19 b(result)i(in)f(o)m(v)m(erly)i(dark)g(gra)m(ys)g(and)f(use)h
+(of)f(to)s(o)i(m)m(uc)m(h)f(ink,)g(p)s(ossibly)d(creating)j
+(bleed-through.)330 3488 y(This)29 b(only)g(applies)g(to)i(color)f(mo)s
+(de.)225 3630 y Fs(\017)60 b Fr(dither_set_randomizers\(\))27
+b Fu(tak)m(es)36 b(four)d(in)m(teger)h(v)-5 b(alues)33
+b(represen)m(ting)g(the)h(degree)h(of)f(ran-)330 3740
+y(domness)24 b(used)h(for)g(cy)m(an,)i(magen)m(ta,)h(y)m(ello)m(w,)f
+(and)d(blac)m(k.)39 b(This)23 b(is)i(used)f(to)i(allo)m(w)f(some)g
+(prin)m(ting)330 3850 y(to)34 b(tak)m(e)i(place)d(in)g(pale)g(areas.)51
+b(Zero)34 b(is)f(the)h(most)g(random;)g(greater)h(than)f(8)g(or)g(so)g
+(giv)m(es)g(v)m(ery)330 3959 y(little)27 b(randomness)h(at)h(all.)39
+b(Defaults)29 b(are)g(0)g(for)g(cy)m(an,)h(magen)m(ta,)h(and)d(y)m
+(ello)m(w,)h(and)f(4)h(for)g(blac)m(k.)330 4069 y(Setting)h(the)h(v)-5
+b(alue)31 b(for)f(blac)m(k)h(to)s(o)g(lo)m(w)g(will)d(result)i(in)f
+(blac)m(k)i(sp)s(ec)m(kling)e(in)g(pale)i(areas.)42 b(Setting)330
+4178 y(v)-5 b(alues)30 b(to)s(o)h(high)e(will)f(result)h(in)g(pale)h
+(areas)h(getting)g(no)f(ink)f(at)i(all.)330 4321 y(This)c(curren)m(tly)
+h(only)g(applies)f(to)i(single)f(dot)h(size)f(in)g(color)h(and)f(blac)m
+(k.)40 b(It)29 b(should)e(b)s(e)h(extended)330 4430 y(to)39
+b(op)s(erate)g(in)d(v)-5 b(ariable)37 b(dot)i(size)f(mo)s(de,)i
+(although)d(actually)h(applying)e(it)i(correctly)g(will)e(b)s(e)330
+4540 y(tric)m(ky)-8 b(.)225 4682 y Fs(\017)60 b Fr
+(dither_set_ink_darkness\()o(\))17 b Fu(tak)m(es)25 b(three)f(doubles)e
+(represen)m(ting)g(the)i(con)m(tribution)e(to)i(p)s(er-)330
+4792 y(ceiv)m(ed)d(darkness)f(of)g(cy)m(an,)k(magen)m(ta,)h(and)20
+b(y)m(ello)m(w.)37 b(This)19 b(is)g(used)h(to)h(help)f(decide)g(when)f
+(to)i(switc)m(h)330 4902 y(b)s(et)m(w)m(een)33 b(ligh)m(t)e(and)h(dark)
+g(inks)f(in)g(6)h(and)g(7)h(color)f(prin)m(ters)f(\(with)g(ligh)m(t)h
+(cy)m(an,)h(ligh)m(t)f(magen)m(ta,)330 5011 y(and)27
+b(p)s(ossibly)d(ligh)m(t)j(y)m(ello)m(w\).)40 b(Setting)27
+b(these)h(to)s(o)g(lo)m(w)g(will)c(result)j(in)f(to)s(o)i(m)m(uc)m(h)g
+(ligh)m(t)e(ink)g(b)s(eing)330 5121 y(laid)j(do)m(wn,)i(creating)h
+(\015at)f(sp)s(ots)g(in)f(the)h(darkness)f(curv)m(es)h(and)g
+(bleed-through.)41 b(Setting)31 b(them)330 5230 y(to)s(o)d(high)f(will)
+e(result)h(in)h(dark)g(ink)f(b)s(eing)g(used)h(in)g(pale)g(areas,)i
+(creating)f(sp)s(ec)m(kle.)40 b(The)27 b(defaults)330
+5340 y(are)33 b(.4)g(for)f(cy)m(an,)h(.3)g(for)f(magen)m(ta,)j(and)d
+(.2)h(for)f(y)m(ello)m(w.)46 b(Dark)33 b(cy)m(an)g(will)c(sho)m(w)k
+(against)f(y)m(ello)m(w)p eop
+%%Page: 40 45
+40 44 bop 150 -116 a Fu(App)s(endix)28 b(A:)i(Dithering)2590
+b(40)330 299 y(m)m(uc)m(h)36 b(more)g(than)g(dark)f(magen)m(ta)j(will)
+33 b(sho)m(w)j(against)g(cy)m(an,)j(since)c(the)h(cy)m(an)h(app)s(ears)
+e(m)m(uc)m(h)330 408 y(dark)m(er)30 b(than)g(the)h(y)m(ello)m(w.)225
+543 y Fs(\017)60 b Fr(dither_set_light_inks\(\))20 b
+Fu(tak)m(es)28 b(three)f(doubles)e(b)s(et)m(w)m(een)i(0)g(and)f(1)g
+(represen)m(ting)g(the)h(ratio)330 653 y(in)i(darkness)g(b)s(et)m(w)m
+(een)i(the)f(ligh)m(t)g(and)f(dark)h(v)m(ersions)f(of)i(the)f(inks.)39
+b(Setting)30 b(these)h(to)s(o)g(lo)m(w)f(will)330 762
+y(result)g(in)g(to)s(o)j(m)m(uc)m(h)e(dark)g(ink)f(b)s(eing)g(used)h
+(in)f(pale)h(areas,)h(creating)g(sp)s(ec)m(kling,)e(while)g(setting)330
+872 y(them)24 b(to)s(o)g(high)f(will)e(result)i(in)f(v)m(ery)j(smo)s
+(oth)e(texture)i(but)e(to)s(o)h(m)m(uc)m(h)g(use)g(of)g(ligh)m(t)f
+(ink,)h(resulting)330 981 y(in)31 b(\015at)h(sp)s(ots)g(in)f(the)h
+(densit)m(y)g(curv)m(es)g(and)g(ink)e(bleed-through.)45
+b(There)32 b(are)h(no)f(defaults.)45 b(An)m(y)330 1091
+y(ligh)m(t)30 b(ink)f(sp)s(eci\014ed)f(as)j(zero)g(indicates)e(that)i
+(there)g(is)e(no)i(ligh)m(t)e(ink)g(for)h(that)h(color.)330
+1225 y(This)i(only)g(applies)f(to)j(6)g(and)f(7)h(color)f(prin)m(ters)f
+(in)g(single)g(dot)h(size)h(color)f(mo)s(de,)h(and)f(only)f(to)330
+1335 y(those)e(inks)e(whic)m(h)g(ha)m(v)m(e)i(ligh)m(t)f(v)m(ersions)g
+(\(usually)e(cy)m(an)j(and)f(magen)m(ta\).)225 1469 y
+Fs(\017)60 b Fr(dither_set_ink_spread\(\))17 b Fu(tak)m(es)24
+b(a)g(small)e(in)m(teger)h(represen)m(ting)g(the)g(amoun)m(t)h(of)f
+(ink)f(spread)330 1579 y(in)27 b(the)i(dither.)39 b(Larger)29
+b(n)m(um)m(b)s(ers)e(mean)i(less)f(spread.)39 b(Larger)29
+b(v)-5 b(alues)28 b(are)h(appropriate)f(for)h(line)330
+1689 y(art)22 b(and)f(solid)f(tones;)25 b(they)d(will)d(yield)h(sharp)s
+(er)g(transitions)g(but)h(more)g(dither)g(artifacts.)38
+b(Smaller)330 1798 y(v)-5 b(alues)27 b(are)i(more)f(appropriate)f(for)h
+(photos.)40 b(They)27 b(will)e(reduce)j(resolution)f(and)g(sharpness)g
+(but)330 1908 y(reduce)38 b(dither)e(artifacts)j(up)e(to)h(a)h(p)s(oin)
+m(t.)63 b(A)38 b(v)-5 b(alue)37 b(of)h(16)h(or)f(higher)f(implies)e
+(minim)m(um)g(ink)330 2017 y(spread)e(at)i(an)m(y)f(resolution)e(no)i
+(matter)g(what)g(the)g(o)m(v)m(erdensit)m(y)-8 b(.)52
+b(A)34 b(v)-5 b(alue)33 b(of)h(14)h(is)e(t)m(ypical)g(for)330
+2127 y(photos)24 b(on)g(single)f(dot)h(size,)i(6)e(color)g(prin)m
+(ters.)38 b(F)-8 b(or)24 b(4)h(color)f(prin)m(ters,)g(subtract)g(1)h
+(\(more)f(spread;)330 2237 y(the)32 b(dots)g(are)h(farther)e(apart\).)
+46 b(F)-8 b(or)33 b(v)-5 b(ariable)31 b(dot)h(size)g(prin)m(ters,)f
+(add)g(1)i(\(more)f(small)e(dots)j(are)330 2346 y(prin)m(ted;)c(less)h
+(spread)f(is)h(desirable\).)225 2481 y Fs(\017)60 b Fr
+(dither_set_adaptive_divi)o(sor\()o(\))30 b Fu(tak)m(es)37
+b(a)f(\015oat)h(represen)m(ting)e(the)h(transition)e(p)s(oin)m(t)h(b)s
+(e-)330 2590 y(t)m(w)m(een)i(error)f(di\013usion)e(and)h(ordered)h
+(dither)f(if)g(adaptiv)m(e)h(dithering)e(is)h(used.)58
+b(The)35 b(\015oat)i(is)f(a)330 2700 y(fraction)e(of)h(the)g(prin)m
+(ting)e(densit)m(y)-8 b(.)53 b(F)-8 b(or)36 b(example,)g(if)d(y)m(ou)i
+(wish)e(the)i(transition)f(to)h(b)s(e)f(at)i(1/4)330
+2809 y(of)29 b(the)f(maxim)m(um)f(densit)m(y)h(\(whic)m(h)f(w)m(orks)i
+(w)m(ell)e(on)h(simple)e(4-color)k(prin)m(ters\),)e(y)m(ou)g(w)m(ould)f
+(pass)330 2919 y(.25)g(here.)39 b(With)25 b(six)g(colors)g(and/or)h
+(with)e(m)m(ultiple)f(dot)j(sizes,)h(the)f(v)-5 b(alues)25
+b(should)e(b)s(e)i(set)h(lo)m(w)m(er.)225 3054 y Fs(\017)60
+b Fr(dither_set_transition\(\))32 b Fu(tak)m(es)39 b(a)g(\015oat)g
+(represen)m(ting)e(the)i(exp)s(onen)m(t)f(of)g(the)g(transition)330
+3163 y(curv)m(e)c(b)s(et)m(w)m(een)g(ligh)m(t)f(and)g(dark)g(inks/dot)g
+(sizes.)51 b(A)34 b(v)-5 b(alue)33 b(less)g(than)g(1)h(\(t)m(ypical)g
+(when)e(using)330 3273 y(error)e(di\013usion\))d(mixes)i(in)g(less)g
+(dark)g(ink/small)f(dots)i(at)h(lo)m(w)m(er)f(ends)f(of)h(the)g(range,)
+h(to)f(reduce)330 3382 y(sp)s(ec)m(kling.)39 b(When)30
+b(using)f(ordered)h(dithering,)e(this)i(m)m(ust)g(b)s(e)g(set)h(to)g
+(1.)225 3517 y Fs(\017)60 b Fr(dither_set_)p Fm(X)9 b
+Fr(_ranges_simple)22 b Fu(\()p Fm(X)9 b Fu(=`)p Fr(c)p
+Fu(',)30 b(`)p Fr(m)p Fu(',)f(`)p Fr(y)p Fu(',)g(or)g(`)p
+Fr(k)p Fu('\))g(describ)s(es)e(the)h(ink)g(c)m(hoices)h(a)m(v)-5
+b(ail-)330 3626 y(able)42 b(for)g(eac)m(h)i(color.)77
+b(This)41 b(is)g(useful)g(in)g(t)m(ypical)h(cases)i(where)e(a)h(four)e
+(color)i(prin)m(ter)e(with)330 3736 y(v)-5 b(ariable)27
+b(dot)i(sizes)f(is)g(in)f(use.)40 b(It)29 b(is)e(passed)h(an)h(arra)m
+(y)g(of)f(doubles)f(b)s(et)m(w)m(een)j(\(0,)f(1])h(represen)m(ting)330
+3846 y(the)g(relativ)m(e)f(darkness)g(of)g(eac)m(h)i(dot)e(size.)40
+b(The)29 b(dot)h(sizes)f(are)h(assigned)e(bit)h(patterns)g(\(and)g(ink)
+330 3955 y(quan)m(tities,)e(see)g Fr(dither_set_ink_budget\(\))20
+b Fu(ab)s(o)m(v)m(e\))27 b(from)f(1)h(to)g(the)f(n)m(um)m(b)s(er)f(of)i
+(lev)m(els.)39 b(This)330 4065 y(also)c(requires)f(a)i(densit)m(y)-8
+b(,)36 b(whic)m(h)f(is)f(the)h(desired)f(densit)m(y)h(for)g(this)f
+(color.)56 b(This)34 b(densit)m(y)g(need)330 4174 y(not)27
+b(equal)e(the)i(densit)m(y)f(sp)s(eci\014ed)e(in)h Fr
+(dither_set_density\(\))p Fu(.)34 b(Setting)26 b(it)g(lo)m(w)m(er)h
+(will)c(tend)j(to)330 4284 y(prin)m(t)j(more)h(dark)g(ink)f(\(b)s
+(ecause)i(the)f(curv)m(es)h(are)f(calculated)h(for)f(this)f(color)h
+(assuming)f(a)i(lo)m(w)m(er)330 4394 y(densit)m(y)f(than)g(is)f
+(actually)h(supplied\).)225 4528 y Fs(\017)60 b Fr(dither_set_)p
+Fm(X)9 b Fr(_ranges)22 b Fu(\()p Fm(X)9 b Fu(=`)p Fr(c)p
+Fu(',)29 b(`)p Fr(m)p Fu(',)f(`)p Fr(y)p Fu(',)g(or)f(`)p
+Fr(k)p Fu('\))g(describ)s(es)f(in)f(a)j(more)f(general)g(w)m(a)m(y)h
+(the)f(ink)330 4638 y(c)m(hoices)36 b(a)m(v)-5 b(ailable)35
+b(for)g(eac)m(h)i(color.)56 b(F)-8 b(or)37 b(eac)m(h)f(p)s(ossible)d
+(ink)i(c)m(hoice,)i(a)f(bit)f(pattern,)i(dot)f(size,)330
+4747 y(v)-5 b(alue)33 b(\(i.)49 b(e.)g(relativ)m(e)34
+b(darkness\),)f(and)g(whether)f(the)i(ink)e(is)g(the)h(dark)g(or)g
+(ligh)m(t)g(v)-5 b(arian)m(t)33 b(ink)f(is)330 4857 y(sp)s(eci\014ed.)
+275 5016 y(|Rob)s(ert)e(Kra)m(witz)g Fr(<rlk@alum.mit.edu>)25
+b Fu(Ma)m(y)32 b(8,)f(2000)p eop
+%%Page: 41 46
+41 45 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(41)150 299 y Fp(App)t(endix)53
+b(B)81 b(W)-13 b(ea)l(ving)53 b(for)h(inkjet)g(prin)l(ters)150
+551 y Fu(b)m(y)30 b(Charles)f(Brisco)s(e-Smith)g(and)h(Rob)s(ert)g(Kra)
+m(witz.)150 823 y Ft(B.1)67 b(In)l(tro)t(duction)275
+1021 y Fu(The)40 b(Epson)h(St)m(ylus)f(Color/Photo)i(prin)m(ters)e
+(don't)i(ha)m(v)m(e)g(memory)g(to)g(prin)m(t)e(using)g(all)g(of)i(the)
+150 1131 y(nozzles)i(in)e(the)h(prin)m(t)f(head.)80 b(F)-8
+b(or)44 b(example,)j(the)c(St)m(ylus)f(Photo)i(700/EX)i(has)d(32)h
+(nozzles.)80 b(A)m(t)150 1241 y(720)35 b(dpi,)f(with)e(an)i(8)p
+Fr(")g Fu(wide)f(image,)j(a)e(single)f(line)f(requires)h(\(8)23
+b Fs(\003)g Fu(720)h Fs(\003)f Fu(6)p Fc(=)p Fu(8\))36
+b(b)m(ytes,)g(or)e(4320)h(b)m(ytes)150 1350 y(\(b)s(ecause)h(the)g(St)m
+(ylus)e(Photo)i(prin)m(ters)e(ha)m(v)m(e)j(6)e(ink)g(colors\).)56
+b(T)-8 b(o)36 b(use)f(32)h(nozzles)g(p)s(er)f(color)g(w)m(ould)150
+1460 y(require)27 b(138240)k(b)m(ytes.)41 b(It's)29 b(actually)f(w)m
+(orse)g(than)h(that,)g(though,)g(b)s(ecause)g(the)f(nozzles)h(are)g
+(spaced)150 1569 y(8)43 b(ro)m(ws)g(apart.)78 b(Therefore,)46
+b(in)c(order)g(to)i(store)f(enough)g(data)g(to)h(p)s(ermit)d(sending)g
+(the)i(page)h(as)150 1679 y(a)38 b(simple)d(raster,)k(the)e(prin)m(ter)
+f(w)m(ould)g(require)g(enough)h(memory)g(to)g(store)h(256)h(ro)m(ws,)g
+(or)e(1105920)150 1789 y(b)m(ytes.)53 b(Considering)32
+b(that)j(the)g(Photo)g(EX)f(can)h(prin)m(t)e(11)p Fr(")i
+Fu(wide,)g(w)m(e're)g(lo)s(oking)e(at)i(more)g(lik)m(e)f(1.5)150
+1898 y(MB.)26 b(In)e(fact,)j(these)e(prin)m(ters)e(are)i(capable)g(of)g
+(1440)h(dpi)d(horizon)m(tal)h(resolution.)38 b(This)23
+b(w)m(ould)g(require)150 2008 y(3)31 b(MB.)g(The)f(prin)m(ters)f
+(actually)h(ha)m(v)m(e)h(64K-256K.)275 2148 y(With)25
+b(the)h(new)m(er)g(\(740/750)k(and)25 b(later\))i(prin)m(ters)d(it's)i
+(ev)m(en)h(w)m(orse,)g(since)f(these)g(prin)m(ters)f(supp)s(ort)150
+2258 y(m)m(ultiple)j(dot)j(sizes;)f(of)h(course,)f(the)h(ev)m(en)g(new)
+m(er)f(2880x720)k(prin)m(ters)29 b(don't)h(help)f(either.)275
+2398 y(Older)j(Epson)h(prin)m(ters)f(had)h(a)h(mo)s(de)f(called)g
+Fm(MicroW)-8 b(ea)m(v)m(e)42 b Fu(\(tm\).)52 b(In)33
+b(this)f(mo)s(de,)j(the)e(host)h(fed)150 2508 y(the)c(prin)m(ter)f
+(individual)d(ro)m(ws)k(of)g(dots,)h(and)e(the)h(prin)m(ter)f(bundled)e
+(them)k(up)e(and)g(sen)m(t)i(them)f(to)h(the)150 2617
+y(prin)m(t)f(head)h(in)g(the)g(correct)i(order)e(to)h(ac)m(hiev)m(e)h
+(high)d(qualit)m(y)-8 b(.)44 b(This)30 b(MicroW)-8 b(ea)m(v)m(e)34
+b(mo)s(de)e(still)d(w)m(orks)150 2727 y(in)36 b(new)h(prin)m(ters,)i
+(but)d(in)h(some)h(cases)g(the)g(implemen)m(tation)e(is)h(v)m(ery)h
+(minimal:)52 b(the)38 b(prin)m(ter)e(uses)150 2837 y(exactly)c(one)g
+(nozzle)g(of)g(eac)m(h)h(color)f(\(the)g(\014rst)f(one\).)45
+b(This)30 b(mak)m(es)j(prin)m(ting)c(extremely)j(slo)m(w)f(\(more)150
+2946 y(than)41 b(30)h(min)m(utes)f(for)g(one)h(8.5x11)p
+Fr(")h Fu(page\),)i(although)c(the)h(qualit)m(y)e(is)g(extremely)i
+(high)e(with)g(no)150 3056 y(visible)24 b(banding)h(whatso)s(ev)m(er.)
+40 b(It's)27 b(not)g(go)s(o)s(d)f(for)g(the)h(prin)m(t)f(head,)h
+(though,)g(since)f(no)h(ink)e(is)h(\015o)m(wing)150 3165
+y(through)32 b(the)h(other)h(nozzles.)48 b(This)31 b(leads)i(to)g
+(drying)e(of)j(ink)d(and)h(p)s(ossible)f(p)s(ermanen)m(t)h(damage)i(to)
+150 3275 y(the)d(prin)m(t)e(head.)275 3415 y(By)j(the)g(w)m(a)m(y)-8
+b(,)35 b(although)c(the)i(Epson)e(man)m(ual)g(sa)m(ys)i(that)g(micro)m
+(w)m(ea)m(v)m(e)h(mo)s(de)e(should)e(b)s(e)i(used)f(at)150
+3525 y(720)36 b(dpi,)d(360)j(dpi)d(con)m(tin)m(ues)h(to)h(w)m(ork)g(in)
+e(m)m(uc)m(h)h(the)h(same)f(w)m(a)m(y)-8 b(.)54 b(A)m(t)36
+b(360)f(dpi,)f(data)h(is)f(fed)g(to)h(the)150 3634 y(prin)m(ter)29
+b(one)i(ro)m(w)f(at)h(a)g(time)f(on)h(all)e(Epson)h(prin)m(ters.)39
+b(The)30 b(pattern)g(that)h(the)g(prin)m(ter)e(uses)h(to)h(prin)m(t)150
+3744 y(is)26 b(v)m(ery)h(prone)f(to)h(banding.)38 b(Ho)m(w)m(ev)m(er,)
+30 b(360)e(dpi)d(is)g(inheren)m(tly)g(a)i(lo)m(w)g(qualit)m(y)f(mo)s
+(de;)h(if)f(y)m(ou're)h(using)150 3854 y(it,)34 b(presumably)e(y)m(ou)i
+(don't)g(m)m(uc)m(h)g(care)g(ab)s(out)g(qualit)m(y)-8
+b(.)51 b(It)34 b(is)e(p)s(ossible)g(to)i(do)g(micro)m(w)m(ea)m(v)m(e)i
+(at)f(360)150 3963 y(DPI,)c(with)e(signi\014can)m(tly)f(impro)m(v)m(ed)
+i(qualit)m(y)-8 b(.)275 4104 y(Except)36 b(for)h(the)f(St)m(ylus)g(Pro)
+g(prin)m(ters)f(\(5000,)40 b(5500,)g(7000,)g(7500,)g(9000,)g(9500,)g
+(and)c(when)f(it's)150 4213 y(released)43 b(the)h(10000\),)50
+b(whic)m(h)42 b(can)i(do)f(micro)m(w)m(ea)m(v)m(e)j(at)e(an)m(y)g
+(resolution,)i(prin)m(ters)c(from)h(roughly)150 4323
+y(the)36 b(St)m(ylus)g(Color)f(600)j(and)d(later)i(do)f(not)g(ha)m(v)m
+(e)i(the)e(capabilit)m(y)f(to)i(do)f(MicroW)-8 b(ea)m(v)m(e)40
+b(correctly)c(in)150 4432 y(man)m(y)41 b(cases)g(\(some)h(prin)m(ters)d
+(can)i(do)f(MicroW)-8 b(ea)m(v)m(e)44 b(correctly)d(at)g(720)h(DPI\).)g
+(Instead,)h(the)e(host)150 4542 y(m)m(ust)32 b(arrange)g(the)g(output)f
+(in)f(the)i(order)g(that)g(it)f(will)e(b)s(e)i(sen)m(t)h(to)h(the)f
+(prin)m(t)e(head.)45 b(This)30 b(is)g(a)j(v)m(ery)150
+4652 y(complex)f(pro)s(cess;)h(the)g(jets)g(in)e(the)h(prin)m(t)f(head)
+h(are)h(spaced)g(more)f(than)g(one)h(ro)m(w)f(\(1/720)p
+Fr(")p Fu(\))j(apart,)150 4761 y(so)29 b(w)m(e)g(can't)g(simply)d(send)
+h(consecutiv)m(e)j(ro)m(ws)e(of)h(dots)f(to)h(the)g(prin)m(ter.)39
+b(Instead,)29 b(w)m(e)g(ha)m(v)m(e)g(to)g(pass)f(e.)150
+4871 y(g.)49 b(the)33 b(\014rst,)h(nin)m(th,)e(17th,)j(25th...)50
+b(ro)m(ws)33 b(in)f(order)g(for)h(them)g(to)h(prin)m(t)e(in)f(the)j
+(correct)g(p)s(osition)d(on)150 4980 y(the)g(pap)s(er.)39
+b(This)29 b(in)m(terlea)m(ving)g(pro)s(cess)h(is)g(called)f
+Fr(")p Fu(soft)p Fr(")i Fu(w)m(ea)m(ving.)275 5121 y(This)e(decision)g
+(w)m(as)i(probably)e(made)i(to)h(sa)m(v)m(e)g(money)f(on)g(memory)f(in)
+g(the)h(prin)m(ter.)41 b(It)31 b(certainly)150 5230 y(mak)m(es)k(the)f
+(driv)m(er)e(co)s(de)i(far)g(more)g(complicated)g(than)f(it)g(w)m(ould)
+g(b)s(e)g(if)g(the)h(prin)m(ter)f(could)g(arrange)150
+5340 y(the)h(output.)50 b(Is)33 b(that)h(a)g(bad)f(thing?)49
+b(Usually)33 b(this)f(tak)m(es)j(far)e(less)g(CPU)h(time)f(than)g(the)h
+(dithering)p eop
+%%Page: 42 47
+42 46 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(42)150 299 y(pro)s(cess,)27
+b(and)e(it)h(do)s(es)g(allo)m(w)f(us)h(more)g(con)m(trol)h(o)m(v)m(er)g
+(the)g(prin)m(ting)d(pro)s(cess,)i(e.g.)41 b(to)27 b(reduce)f(banding.)
+150 408 y(Conceiv)-5 b(ably)d(,)30 b(w)m(e)h(could)e(ev)m(en)i(use)f
+(this)f(abilit)m(y)g(to)i(map)f(out)h(bad)f(jets.)275
+546 y(In)m(terestingly)-8 b(,)30 b(apparen)m(tly)h(the)g(Windo)m(ws)f
+(\(and)h(presumably)d(Macin)m(tosh\))k(driv)m(ers)e(for)h(most)g(or)150
+656 y(all)39 b(Epson)g(prin)m(ters)g(still)f(list)g(a)j(\\micro)m(w)m
+(ea)m(v)m(e")i(mo)s(de.)69 b(Exp)s(erimen)m(ts)39 b(ha)m(v)m(e)i
+(demonstrated)f(that)150 765 y(this)33 b(do)s(es)h(not)g(in)f(fact)i
+(use)e(the)i(\\micro)m(w)m(ea)m(v)m(e")i(mo)s(de)c(of)h(the)h(prin)m
+(ter.)50 b(P)m(ossibly)32 b(it)i(do)s(es)g(nothing,)150
+875 y(or)h(it)g(uses)g(a)h(di\013eren)m(t)f(w)m(ea)m(v)m(e)j(pattern)d
+(from)g(what)h(the)f(non-\\micro)m(w)m(ea)m(v)m(e")k(mo)s(de)c(do)s
+(es.)55 b(This)34 b(is)150 984 y(unnecessarily)f(confusing,)i(at)h
+(least)f(for)g(p)s(eople)f(who)g(write)g(driv)m(ers)g(who)g(try)h(to)h
+(explain)d(them)i(to)150 1094 y(p)s(eople)29 b(who)h(don't.)275
+1232 y(What)35 b(mak)m(es)h(this)e(in)m(teresting)g(is)g(that)i(there)f
+(are)g(man)m(y)g(di\013eren)m(t)g(w)m(a)m(ys)h(of)f(of)g(accomplishing)
+150 1341 y(this)j(goal.)67 b(The)38 b(naiv)m(e)h(w)m(a)m(y)h(w)m(ould)e
+(b)s(e)g(to)i(divide)d(the)i(image)g(up)f(in)m(to)h(groups)f(of)i(256)g
+(ro)m(ws)f(\(for)150 1451 y(a)d(prin)m(ter)e(with)f(32)k(jets)e(and)g
+(a)g(separation)g(of)h(8)f(ro)m(ws\),)i(and)e(prin)m(t)f(all)g(the)i
+(mo)s(d8=0)f(ro)m(ws)g(in)f(the)150 1560 y(\014rst)i(pass,)h(mo)s(d8=1)
+f(ro)m(ws)h(in)e(the)h(second,)j(and)c(so)i(forth.)58
+b(The)36 b(problem)f(with)g(this)g(approac)m(h)i(is)150
+1670 y(that)32 b(the)g(individual)27 b(ink)j(jets)i(are)g(not)g(p)s
+(erfectly)f(uniform;)f(some)i(emit)g(sligh)m(tly)e(bigger)h(or)g
+(smaller)150 1780 y(drops)36 b(than)g(others.)61 b(Since)36
+b(eac)m(h)i(group)e(of)h(8)h(adjacen)m(t)g(ro)m(ws)f(is)f(prin)m(ted)f
+(with)h(the)h(same)g(nozzle,)150 1889 y(that)30 b(means)f(that)g(there)
+g(will)e(b)s(e)h(distinct)g(streaks)h(of)g(ligh)m(ter)g(and)f(dark)m
+(er)h(bands)f(within)e(the)k(image)150 1999 y(\(8)g(ro)m(ws)g(is)e
+(1/90)p Fr(")p Fu(,)k(whic)m(h)c(is)g(visible;)g(1/720)p
+Fr(")j Fu(is)e(not\).)41 b(P)m(ossibly)28 b(w)m(orse)i(is)e(that)i
+(these)g(patterns)g(will)150 2108 y(rep)s(eat)h(ev)m(ery)g(256)g(ro)m
+(ws.)41 b(This)29 b(creates)i(banding)e(patterns)h(that)h(are)g(ab)s
+(out)f(1/3)p Fr(")i Fu(wide.)275 2246 y(So)e(w)m(e)h(ha)m(v)m(e)g(to)g
+(do)g(something)e(to)j(break)e(up)f(this)g(patterning.)275
+2384 y(Epson)j(do)s(es)h(not)h(publish)29 b(the)34 b(w)m(ea)m(ving)g
+(algorithms)e(that)i(they)f(use)g(in)f(their)h(bundled)d(driv)m(ers.)
+150 2493 y(Indeed,)g(their)f(dev)m(elop)s(er)h(w)m(eb)h(site)f(\(h)m
+(ttp://www.ercip)s(d.com/isv/edr)p 2754 2493 28 4 v 32
+w(do)s(cs.h)m(tm\))h(do)s(es)f(not)h(ev)m(en)150 2603
+y(describ)s(e)i(ho)m(w)j(to)f(do)g(this)f(w)m(ea)m(ving)i(at)g(all;)h
+(it)d(sa)m(ys)i(that)g(the)f(only)f(w)m(a)m(y)i(to)g(ac)m(hiev)m(e)g
+(720)h(dpi)c(is)h(to)150 2713 y(use)c(MicroW)-8 b(ea)m(v)m(e.)43
+b(It)30 b(do)s(es)g(note)h(\(correctly\))g(that)f(1440)i(dpi)c(horizon)
+m(tal)i(can)g(only)f(b)s(e)g(ac)m(hiev)m(ed)i(b)m(y)150
+2822 y(the)h(driv)m(er)f(\(i.)46 b(e.)h(in)30 b(soft)m(w)m(are\).)48
+b(The)32 b(man)m(ual)g(actually)f(mak)m(es)i(it)f(fairly)f(clear)h(ho)m
+(w)g(to)h(do)f(this)f(\(it)150 2932 y(requires)g(t)m(w)m(o)j(passes)e
+(with)f(horizon)m(tal)h(head)g(mo)m(v)m(emen)m(t)i(b)s(et)m(w)m(een)f
+(passes\),)g(and)f(it)g(is)f(presumably)150 3041 y(p)s(ossible)d(to)j
+(do)f(this)g(with)f(MicroW)-8 b(ea)m(v)m(e.)275 3179
+y(The)23 b(information)f(ab)s(out)i(ho)m(w)g(to)h(do)f(this)f(is)g
+(apparen)m(tly)h(a)m(v)-5 b(ailable)23 b(under)g(non-disclosure)e
+(agree-)150 3289 y(men)m(t)31 b(\(ND)m(A\).)i(It's)d(actually)g(easy)h
+(enough)g(to)g(rev)m(erse)g(engineer)f(what's)h(inside)d(a)j(prin)m(t)e
+(\014le)g(with)h(a)150 3398 y(simple)c(P)m(erl)h(script,)g(whic)m(h)g
+(is)g(supplied)d(with)j(the)h(Gimp-Prin)m(t)e(distribution)e(as)k
+(tests/parse-escp2.)150 3508 y(In)f(an)m(y)h(ev)m(en)m(t,)i(w)m(e)e(w)m
+(eren't)g(particularly)d(in)m(terested)j(in)e(the)i(w)m(ea)m(ving)g
+(patterns)g(Epson)e(used.)39 b(There)150 3617 y(are)31
+b(man)m(y)g(factors)h(that)g(go)f(in)m(to)g(c)m(ho)s(osing)g(a)g(go)s
+(o)s(d)g(w)m(ea)m(ving)h(pattern;)f(w)m(e're)h(learning)d(them)i(as)g
+(w)m(e)150 3727 y(go)i(along.)44 b(Issues)31 b(suc)m(h)h(as)f(drying)f
+(time)i(\(giving)f(the)h(ink)e(a)i(few)f(seconds)h(more)g(or)g(less)f
+(to)h(dry)f(can)150 3836 y(ha)m(v)m(e)h(highly)c(visible)g(e\013ects\))
+k(a\013ect)g(the)e(qualit)m(y)g(of)g(the)h(output.)275
+3974 y(The)j(Uniprin)m(t)f(GhostScript)h(driv)m(er)g(has)h(b)s(een)g
+(able)g(to)h(do)f(w)m(ea)m(ving)h(for)f(a)g(long)g(time.)55
+b(It)35 b(uses)150 4084 y(patterns)e(that)g(m)m(ust)g(b)s(e)f(sp)s
+(eci\014ed)f(for)h(eac)m(h)i(c)m(hoice)g(of)f(resolution)e(and)h(prin)m
+(ter.)47 b(W)-8 b(e)34 b(preferred)d(an)150 4193 y(algorithmic)i
+(approac)m(h)h(that)g(computes)g(a)g(w)m(ea)m(v)m(e)i(pattern)e(for)g
+(an)m(y)g(giv)m(en)g(c)m(hoice)h(of)f(inputs.)49 b(This)150
+4303 y(ob)m(viously)29 b(requires)g(extensiv)m(e)i(testing;)g(w)m(e)f
+(dev)m(elop)s(ed)g(a)h(test)g(suite)f(sp)s(eci\014cally)e(for)i(this)f
+(purp)s(ose.)150 4568 y Ft(B.2)67 b(W)-11 b(ea)l(ving)46
+b(algorithms)275 4764 y Fu(I)32 b(considered)f(a)i(few)f(algorithms)f
+(to)j(p)s(erform)d(the)h(w)m(ea)m(v)m(e.)49 b(The)32
+b(\014rst)g(one)h(I)f(devised)f(let)i(me)f(use)150 4874
+y(only)40 b(\()p Fc(j)5 b(ets)28 b Fs(\000)g Fc(distance)p
+1025 4874 V 33 w(betw)r(een)p 1378 4874 V 33 w(j)5 b(ets)p
+Fu(+1\))42 b(nozzles,)j(or)c(25.)74 b(This)39 b(is)i(OK)f(in)g
+(principle,)h(but)f(it's)150 4983 y(slo)m(w)m(er)e(than)f(using)f(all)g
+(nozzles.)62 b(By)38 b(pla)m(ying)e(around)g(with)h(it)g(some)g(more,)j
+(I)d(came)i(up)d(with)g(an)150 5093 y(algorithm)29 b(that)i(lets)g(me)f
+(use)g(all)f(of)i(the)f(nozzles,)h(except)h(near)e(the)g(top)h(and)f(b)
+s(ottom)h(of)f(the)h(page.)275 5230 y(This)26 b(still)f(pro)s(duces)i
+(some)h(banding,)f(though.)39 b(Ev)m(en)28 b(b)s(etter)g(qualit)m(y)f
+(can)h(b)s(e)f(ac)m(hiev)m(ed)i(b)m(y)e(using)150 5340
+y(m)m(ultiple)k(nozzles)j(on)g(the)f(same)i(line.)48
+b(Ho)m(w)35 b(do)e(w)m(e)h(do)g(this?)49 b(In)33 b(1440x720)j(mo)s(de,)
+f(w)m(e're)f(prin)m(ting)p eop
+%%Page: 43 48
+43 47 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(43)150 299 y(t)m(w)m(o)30
+b(output)f(lines)e(at)i(the)g(same)h(v)m(ertical)f(p)s(osition.)38
+b(Ho)m(w)m(ev)m(er,)31 b(if)d(w)m(e)i(w)m(an)m(t)f(four)f(passes,)i(w)m
+(e)f(ha)m(v)m(e)h(to)150 408 y(e\013ectiv)m(ely)f(prin)m(t)e(eac)m(h)i
+(line)e(t)m(wice.)40 b(Actually)28 b(doing)f(this)g(w)m(ould)g
+(increase)h(the)g(densit)m(y)-8 b(,)29 b(so)f(what)g(w)m(e)150
+518 y(do)f(is)f(prin)m(t)g(half)h(the)g(dots)g(on)h(eac)m(h)g(pass.)39
+b(This)26 b(pro)s(duces)g(near-p)s(erfect)h(output,)h(and)f(it's)g(far)
+g(faster)150 628 y(than)j(using)f(\(pseudo\))h(\\MicroW)-8
+b(ea)m(v)m(e".)275 762 y(Y)g(et)43 b(another)f(complication)e(is)h(ho)m
+(w)h(to)g(get)h(near)f(the)g(top)g(and)f(b)s(ottom)h(of)g(the)g(page.)
+76 b(This)150 872 y(algorithm)37 b(lets)g(us)g(prin)m(t)f(to)i(within)d
+(one)j(head)f(width)f(of)i(the)g(top)f(of)h(the)g(page,)i(and)d(a)h
+(bit)f(more)150 981 y(than)32 b(one)g(head)g(width)e(from)h(the)i(b)s
+(ottom.)45 b(That)32 b(lea)m(v)m(es)h(a)g(lot)f(of)g(blank)e(space.)47
+b(Doing)32 b(the)g(w)m(ea)m(v)m(e)150 1091 y(prop)s(erly)i(outside)h
+(of)h(this)f(region)h(is)f(increasingly)f(di\016cult)g(as)i(w)m(e)h
+(get)g(closer)f(to)h(the)f(edge)h(of)f(the)150 1200 y(pap)s(er;)g(in)e
+(the)h(in)m(terior)f(region,)i(an)m(y)f(nozzle)h(can)f(prin)m(t)f(an)m
+(y)h(line,)g(but)f(near)h(the)g(top)g(and)g(b)s(ottom)150
+1310 y(edges,)45 b(only)40 b(some)i(nozzles)g(can)f(prin)m(t.)72
+b(W)-8 b(e)43 b(originally)c(handled)g(this)h(b)m(y)h(using)f(the)i
+(naiv)m(e)f(w)m(a)m(y)150 1419 y(men)m(tioned)35 b(ab)s(o)m(v)m(e)i
+(near)f(the)g(b)s(orders,)g(and)f(switc)m(hing)g(o)m(v)m(er)i(to)f(the)
+g(high)f(qualit)m(y)g(metho)s(d)g(in)g(the)150 1529 y(in)m(terior.)47
+b(Unfortunately)-8 b(,)33 b(this)f(mean)m(t)h(that)h(the)f(qualit)m(y)f
+(is)g(quite)g(visibly)e(degraded)i(near)h(the)g(top)150
+1639 y(and)26 b(b)s(ottom)h(of)g(the)g(page.)41 b(W)-8
+b(e)28 b(ha)m(v)m(e)g(since)e(devised)f(b)s(etter)i(algorithms)f(that)h
+(allo)m(w)g(prin)m(ting)d(to)k(the)150 1748 y(extreme)37
+b(top)f(and)g(b)s(ottom)g(of)g(the)h(region)e(that)i(can)f(ph)m
+(ysically)e(b)s(e)i(prin)m(ted,)g(with)f(only)g(minimal)150
+1858 y(loss)30 b(of)g(qualit)m(y)-8 b(.)275 1992 y(Epson)22
+b(do)s(es)h(not)h(adv)m(ertise)g(that)g(the)g(prin)m(ters)e(can)i(prin)
+m(t)e(at)j(the)e(v)m(ery)h(top)g(of)g(the)g(page,)i(although)150
+2102 y(in)d(practice)h(most)h(of)f(them)g(can.)39 b(The)23
+b(qualit)m(y)h(is)f(degraded)h(to)h(some)f(degree,)i(and)e(w)m(e)g(ha)m
+(v)m(e)i(observ)m(ed)150 2211 y(that)45 b(in)f(some)h(cases)h(not)f
+(all)f(of)h(the)g(dots)g(get)h(prin)m(ted.)82 b(Epson)44
+b(ma)m(y)i(ha)m(v)m(e)g(decided)d(that)j(the)150 2321
+y(degradation)28 b(in)e(qualit)m(y)h(is)g(su\016cien)m(t)h(that)g(prin)
+m(ting)e(in)g(that)j(region)e(should)f(not)i(b)s(e)f(allo)m(w)m(ed.)40
+b(That)150 2430 y(is)29 b(a)i(v)-5 b(alid)29 b(decision,)g(although)h
+(w)m(e)h(ha)m(v)m(e)g(tak)m(en)h(another)e(approac)m(h.)150
+2654 y Fg(B.2.1)63 b(Simple)40 b(w)m(ea)m(ving)g(algorithms)275
+2846 y Fu(The)35 b(initial)f(problem)h(is)g(to)i(calculate)g(the)f
+(starting)g(p)s(osition)e(of)j(eac)m(h)g(pass;)i(the)e(ro)m(w)f(n)m(um)
+m(b)s(er)150 2956 y(of)41 b(the)g(prin)m(ter's)f(top)h(jet)h(when)e
+(prin)m(ting)e(that)k(pass.)72 b(Since)40 b(w)m(e)h(assume)g(the)g(pap)
+s(er)f(cannot)i(b)s(e)150 3065 y(rev)m(erse-fed,)30 b(the)f(prin)m(t)e
+(head)i(m)m(ust,)g(for)g(eac)m(h)h(pass,)f(start)g(either)f(further)f
+(do)m(wn)i(the)g(page)g(than)g(the)150 3175 y(previous)c(pass)h(or)h
+(at)g(the)g(same)g(p)s(osition.)38 b(Eac)m(h)27 b(pass's)f(start)h(p)s
+(oin)m(t)f(is)g(therefore)h(at)g(a)g(non-negativ)m(e)150
+3285 y(o\013set)k(from)f(the)h(previous)e(pass's)h(start)h(p)s(oin)m
+(t.)275 3419 y(Once)26 b(w)m(e)g(ha)m(v)m(e)i(a)e(form)m(ula)g(for)g
+(the)g(starting)g(ro)m(w)g(of)g(eac)m(h)i(pass,)f(w)m(e)f(then)g(turn)f
+(that)i(\\inside)d(out")150 3529 y(to)31 b(get)h(a)e(form)m(ula)g(for)g
+(the)h(pass)f(n)m(um)m(b)s(er)f(con)m(taining)h(eac)m(h)h(ro)m(w.)275
+3663 y(First,)h(let's)g(de\014ne)g(ho)m(w)h(our)e(prin)m(ter)g(w)m
+(orks.)47 b(W)-8 b(e)34 b(measure)e(v)m(ertical)h(p)s(osition)d(on)i
+(the)h(pap)s(er)e(in)150 3772 y(\\ro)m(ws";)k(the)f(resolution)d(with)h
+(whic)m(h)g(the)h(prin)m(ter)f(can)h(p)s(osition)e(the)i(pap)s(er)f(v)m
+(ertically)-8 b(.)49 b(The)32 b(prin)m(t)150 3882 y(head)e(con)m(tains)
+h Fc(J)39 b Fu(ink)29 b(jets,)i(whic)m(h)e(are)i(spaced)f
+Fc(S)36 b Fu(ro)m(ws)30 b(apart.)275 4016 y(Consider)37
+b(a)i(v)m(ery)g(simple)e(case:)58 b(w)m(e)40 b(w)m(an)m(t)f(to)h(prin)m
+(t)d(a)i(page)h(as)f(quic)m(kly)f(as)h(p)s(ossible,)f(and)g(w)m(e)150
+4126 y(mostly)30 b(don't)g(care)i(ho)m(w)e(sparse)g(the)g(prin)m(ting)f
+(is,)g(so)i(long)f(as)h(it's)f(fairly)e(ev)m(en.)275
+4260 y(It's)40 b(prett)m(y)h(ob)m(vious)e(ho)m(w)i(to)f(do)h(this.)69
+b(W)-8 b(e)41 b(mak)m(e)g(one)g(pass)e(with)g(the)i(prin)m(t)d(head,)43
+b(prin)m(ting)150 4370 y Fc(J)k Fu(lines)35 b(of)j(data,)i(eac)m(h)f
+(line)c Fc(S)43 b Fu(ro)m(ws)37 b(after)h(the)g(previous)e(one.)62
+b(W)-8 b(e)39 b(then)e(adv)-5 b(ance)38 b(the)g(pap)s(er)e(b)m(y)150
+4479 y Fc(S)27 b Fs(\003)22 b Fc(J)42 b Fu(ro)m(ws)33
+b(and)g(prin)m(t)e(the)i(next)h(ro)m(w.)48 b(F)-8 b(or)34
+b(example,)f(if)f Fc(J)39 b Fu(=)29 b(7)34 b(and)e Fc(S)j
+Fu(=)29 b(4,)34 b(this)e(metho)s(d)g(can)i(b)s(e)150
+4589 y(illustrated)28 b(lik)m(e)i(this:)390 4717 y Fr(pass)47
+b(number)390 4821 y(|)g(row)g(number------->)390 4925
+y(|)g(|)430 b(11111111112222222222333)o(3333)o(3334)o(444)o(4444)o
+(4455)o(555)o(5555)o(5666)o(666)o(6666)390 5029 y(|)47
+b(01234567890123456789012345)o(6789)o(012)o(3456)o(7890)o(123)o(4567)o
+(8901)o(234)o(5678)o(9012)o(345)o(6789)390 5132 y(0)g
+(*---*---*---*---*---*---*)390 5236 y(1)1384 b
+(*---*---*---*---*---*---)o(*)390 5340 y(2)47 b
+(\\-----------------------/)1473 b(*---*---*---*---*---*-)p
+eop
+%%Page: 44 49
+44 48 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(44)867 299 y Fr(7)48
+b(jets)667 b(\\---/)1822 403 y(4)47 b(rows)g(offset)f(from)h(one)g(jet)
+f(to)i(the)f(next)485 506 y(\\-------------------------)o(--/)629
+610 y(7*4=28)f(rows)g(offset)g(from)h(one)g(pass)g(to)g(the)g(next)275
+747 y Fu(In)35 b(these)i(examples,)g(the)f(v)m(ertical)h(axis)e(can)i
+(b)s(e)e(though)m(t)i(of)f(as)h(the)f(time)g(axis,)h(with)e(the)h(pass)
+150 857 y(n)m(um)m(b)s(er)25 b(sho)m(wn)g(at)i(the)g(left)e(margin,)i
+(while)d(the)i(ro)m(w)g(n)m(um)m(b)s(er)f(runs)g(horizon)m(tally)-8
+b(.)38 b(A)27 b(`)p Fr(*)p Fu(')f(sho)m(ws)g(eac)m(h)150
+967 y(ro)m(w)h(prin)m(ted)f(b)m(y)h(a)g(pass,)h(and)e(a)h(ro)m(w)h(of)f
+(`)p Fr(-)p Fu(')g(is)f(used)g(to)i(link)d(together)j(the)g(ro)m(ws)f
+(prin)m(ted)e(b)m(y)i(one)g(pass)150 1076 y(of)h(the)g(prin)m(t)f
+(head.)39 b(The)28 b(\014rst)f(pass)g(is)g(n)m(um)m(b)s(ered)g(`)p
+Fr(0)p Fu(')h(and)f(starts)i(at)f(ro)m(w)g(0.)41 b(Eac)m(h)28
+b(subsequen)m(t)f(pass)150 1186 y Fc(p)h Fu(starts)h(at)g(ro)m(w)f
+Fc(p)16 b Fs(\003)g Fc(S)21 b Fs(\003)16 b Fc(J)9 b Fu(.)40
+b(Eac)m(h)29 b(pass)f(prin)m(ts)f Fc(J)37 b Fu(lines,)27
+b(eac)m(h)j(line)c(b)s(eing)h Fc(S)33 b Fu(ro)m(ws)28
+b(after)h(the)f(previous)150 1295 y(one.)66 b(\(F)-8
+b(or)39 b(ease)h(of)f(viewing)e(this)g(\014le)h(on)g(a)h(standard)f
+(terminal,)h(I'm)g(clipping)c(the)k(examples)f(at)150
+1405 y(column)29 b(80.\))275 1542 y(This)34 b(metho)s(d)i(co)m(v)m(ers)
+h(the)g(whole)e(page)i(with)e(lines)g(prin)m(ted)f(ev)m(enly)j
+Fc(S)k Fu(ro)m(ws)36 b(apart.)59 b(Ho)m(w)m(ev)m(er,)150
+1652 y(w)m(e)30 b(w)m(an)m(t)h(to)g(\014ll)d(in)h(all)g(the)h(other)g
+(ro)m(ws)g(with)f(prin)m(ting)f(to)j(get)g(a)f(full-densit)m(y)e(page)i
+(\(w)m(e're)i(ignoring)150 1762 y(o)m(v)m(ersampling)24
+b(at)i(this)e(stage\).)41 b(Where)25 b(w)m(e)g(ha)m(v)m(e)h(previously)
+d(prin)m(ted)g(a)j(single)d(pass,)j(w)m(e'll)e(no)m(w)h(prin)m(t)150
+1871 y(a)37 b(\\pass)f(blo)s(c)m(k":)53 b(w)m(e)37 b(prin)m(t)e(extra)i
+(passes)f(to)i(\014ll)c(in)h(the)i(empt)m(y)g(ro)m(ws.)58
+b(A)37 b(naiv)m(e)f(implemen)m(tation)150 1981 y(migh)m(t)30
+b(lo)s(ok)g(lik)m(e)g(this:)390 2112 y Fr(0)47 b
+(*---*---*---*---*---*---*)390 2216 y(1)95 b(*---*---*---*---*---*---*)
+390 2320 y(2)143 b(*---*---*---*---*---*---)o(*)390 2423
+y(3)191 b(*---*---*---*---*---*--)o(-*)390 2527 y(4)1384
+b(*---*---*---*---*---*---)o(*)390 2631 y(5)1432 b
+(*---*---*---*---*---*--)o(-*)390 2735 y(6)1479 b
+(*---*---*---*---*---*---*)390 2839 y(7)1527 b
+(*---*---*---*---*---*---)o(*)390 2942 y(8)2720 b
+(*---*---*---*---*---*-)390 3046 y(9)2768 b(*---*---*---*---*---*)390
+3150 y(10)g(*---*---*---*---*---)390 3254 y(11)2815 b
+(*---*---*---*---*--)150 3391 y Fu(\(No)m(w)31 b(y)m(ou)g(can)g(see)g
+(wh)m(y)f(this)f(pro)s(cess)h(is)f(called)h(\\w)m(ea)m(ving"!\))150
+3621 y Fg(B.2.2)63 b(P)m(erfect)39 b(w)m(ea)m(ving)275
+3816 y Fu(This)28 b(simple)f(w)m(ea)m(v)m(e)33 b(pattern)c(prin)m(ts)g
+(ev)m(ery)h(ro)m(w,)h(but)e(will)e(giv)m(e)j(conspicuous)f(banding)f
+(patterns)150 3926 y(for)i(the)h(reasons)f(discussed)f(ab)s(o)m(v)m(e.)
+275 4063 y(Let's)k(start)h(impro)m(ving)e(this)g(for)h(our)f(simple)f
+(case.)51 b(W)-8 b(e)34 b(can)g(reduce)f(banding)e(b)m(y)i(making)g
+(sure)150 4173 y(that)27 b(an)m(y)g(giv)m(en)g(jet)g(nev)m(er)h(prin)m
+(ts)d(a)i(ro)m(w)g(to)s(o)g(close)g(to)h(another)f(ro)m(w)g(prin)m(ted)
+e(b)m(y)i(the)g(same)g(jet.)40 b(This)150 4282 y(means)d(w)m(e)g(w)m
+(an)m(t)g(to)h(space)f(the)g(ro)m(ws)g(prin)m(ted)e(b)m(y)i(a)g(giv)m
+(en)f(jet)i(ev)m(enly)e(do)m(wn)g(the)h(page.)61 b(In)36
+b(turn,)150 4392 y(this)28 b(implies)f(w)m(e)i(w)m(an)m(t)h(to)g(adv)-5
+b(ance)30 b(the)f(pap)s(er)f(b)m(y)i(as)f(nearly)f(an)h(equal)g(amoun)m
+(t)h(after)g(eac)m(h)g(pass)f(as)150 4501 y(p)s(ossible.)275
+4639 y(Eac)m(h)e(pass)f(blo)s(c)m(k)h(prin)m(ts)e Fc(S)18
+b Fs(\003)13 b Fc(J)37 b Fu(lines)25 b(in)g Fc(S)32 b
+Fu(passes.)40 b(The)26 b(\014rst)g(line)f(prin)m(ted)h(in)f(eac)m(h)j
+(pass)f(blo)s(c)m(k)f(is)150 4748 y Fc(S)12 b Fs(\003)7
+b Fc(J)33 b Fu(ro)m(ws)24 b(lo)m(w)m(er)g(on)g(the)g(page)g(than)g(the)
+f(\014rst)g(line)g(prin)m(ted)f(in)g(the)i(previous)f(pass)g(blo)s(c)m
+(k.)38 b(Therefore,)150 4858 y(if)e(w)m(e)h(adv)-5 b(ance)38
+b(the)f(pap)s(er)f(b)m(y)h Fc(J)46 b Fu(ro)m(ws)37 b(b)s(et)m(w)m(een)g
+(eac)m(h)i(pass,)f(w)m(e)g(can)f(prin)m(t)e(the)j(righ)m(t)e(n)m(um)m
+(b)s(er)g(of)150 4967 y(passes)30 b(in)f(eac)m(h)j(blo)s(c)m(k)e(and)g
+(adv)-5 b(ance)30 b(the)h(pap)s(er)e(p)s(erfectly)h(ev)m(enly)-8
+b(.)275 5105 y(Here's)31 b(what)f(this)f(\\p)s(erfect")i(w)m(ea)m(v)m
+(e)i(lo)s(oks)d(lik)m(e:)1345 5236 y Fr(start)46 b(of)h(full)g(weave)
+1345 5340 y(|)p eop
+%%Page: 45 50
+45 49 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(45)390 299 y Fr(0)47
+b(*---*---*---*---*---*---*)390 403 y(1)382 b(*---*---*---*---*---*--)o
+(-*)390 506 y(2)716 b(*---*---*---*---*---*--)o(-*)390
+610 y(3)1050 b(*---*---*---*---*---*--)o(-*)390 714 y(4)1384
+b(*---*---*---*---*---*---)o(*)390 818 y(5)1718 b
+(*---*---*---*---*---*---)o(*)390 922 y(6)2052 b
+(*---*---*---*---*---*---)o(*)390 1025 y(7)2386 b
+(*---*---*---*---*---*---*)390 1129 y(8)2720 b(*---*---*---*---*---*-)
+390 1233 y(9)3054 b(*---*---*---*--)390 1337 y(10)3340
+b(*---*---)390 1440 y(11)3674 b(*)275 1572 y Fu(Y)-8
+b(ou'll)28 b(notice)h(that,)h(for)e(the)h(\014rst)f(few)h(ro)m(ws,)g
+(this)f(w)m(ea)m(v)m(e)j(is)d(to)s(o)h(sparse.)40 b(It)29
+b(is)f(not)h(un)m(til)e(the)i(ro)m(w)150 1681 y(mark)m(ed)35
+b(\\start)h(of)f(full)e(w)m(ea)m(v)m(e")38 b(that)d(ev)m(ery)h
+(subsequen)m(t)e(ro)m(w)h(is)f(prin)m(ted.)53 b(W)-8
+b(e)36 b(can)g(calculate)f(this)150 1791 y(start)c(p)s(osition)d(as)j
+(follo)m(ws:)390 1916 y Fc(star)s(t)72 b Fu(=)h(\()p
+Fc(S)25 b Fs(\000)20 b Fu(1\))69 b Fs(\003)f Fu(\()p
+Fc(J)30 b Fs(\000)20 b Fu(1\))275 2047 y(F)-8 b(or)34
+b(the)f(momen)m(t,)j(w)m(e)d(will)e(ignore)i(this)g(problem)f(with)g
+(the)h(w)m(ea)m(v)m(e.)53 b(W)-8 b(e'll)33 b(consider)f(later)i(ho)m(w)
+150 2157 y(to)d(\014ll)d(in)h(the)i(missing)d(ro)m(ws.)275
+2288 y(Let's)j(lo)s(ok)e(at)j(a)e(few)h(more)f(examples)g(of)g(p)s
+(erfect)h(w)m(ea)m(v)m(es:)150 2419 y Fc(S)f Fu(=)25
+b(2,)31 b Fc(J)k Fu(=)25 b(7,)31 b Fc(star)s(t)24 b Fu(=)h(\(2)c
+Fs(\000)f Fu(1\))h Fs(\003)f Fu(\(7)h Fs(\000)f Fu(1\))26
+b(=)f(6:)772 2544 y Fr(starting)45 b(row)i(of)g(full)g(weave)772
+2648 y(|)390 2752 y(0)g(*-*-*-*-*-*-*)390 2855 y(1)382
+b(*-*-*-*-*-*-*)390 2959 y(2)716 b(*-*-*-*-*-*-*)390
+3063 y(3)1050 b(*-*-*-*-*-*-*)390 3167 y(4)1384 b(*-*-*-*-*-*-*)390
+3271 y(5)1718 b(*-*-*-*-*-*-*)390 3374 y(6)2052 b(*-*-*-*-*-*-*)390
+3478 y(7)2386 b(*-*-*-*-*-*-*)150 3609 y Fc(S)30 b Fu(=)25
+b(7,)31 b Fc(J)k Fu(=)25 b(2,)31 b Fc(star)s(t)24 b Fu(=)h(6:)772
+3734 y Fr(start)772 3838 y(|)390 3942 y(0)47 b(*------*)390
+4046 y(1)143 b(*------*)390 4150 y(2)238 b(*------*)390
+4253 y(3)334 b(*------*)390 4357 y(4)429 b(*------*)390
+4461 y(5)525 b(*------*)390 4565 y(6)620 b(*------*)390
+4668 y(7)716 b(*------*)390 4772 y(8)811 b(*------*)390
+4876 y(9)907 b(*------*)150 5007 y Fc(S)30 b Fu(=)25
+b(4,)31 b Fc(J)k Fu(=)25 b(13,)31 b Fc(star)s(t)24 b
+Fu(=)h(36:)2204 5132 y Fr(start)2204 5236 y(|)390 5340
+y(0)47 b(*---*---*---*---*---*---*-)o(--*-)o(--*)o(---*)o(---*)o(---)o
+(*---)o(*)p eop
+%%Page: 46 51
+46 50 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(46)390 299 y Fr(1)668
+b(*---*---*---*---*---*---)o(*---)o(*--)o(-*--)o(-*--)o(-*-)o(--*-)o
+(--*)390 403 y(2)1288 b(*---*---*---*---*---*---*-)o(--*)o(---*)o(---*)
+o(---)o(*---)o(*---)o(*)390 506 y(3)1909 b(*---*---*---*---*---*---)o
+(*--)o(-*--)o(-*--)o(-*-)o(-)390 610 y(4)2529 b
+(*---*---*---*---*---*---*)o(-)390 714 y(5)3150 b(*---*---*---*)150
+853 y Fc(S)30 b Fu(=)25 b(13,)32 b Fc(J)i Fu(=)25 b(4,)31
+b Fc(star)s(t)24 b Fu(=)h(36:)2204 986 y Fr(start)2204
+1090 y(|)390 1193 y(0)47 b(*------------*------------)o(*---)o(---)o
+(----)o(--*)390 1297 y(1)238 b(*------------*------------)o(*--)o(----)
+o(----)o(--*)390 1401 y(2)429 b(*------------*-----------)o(-*--)o
+(----)o(---)o(---*)390 1505 y(3)620 b(*------------*-----------)o(-*--)
+o(---)o(----)o(---*)390 1608 y(4)811 b(*------------*-----------)o(-*-)
+o(----)o(----)o(---)o(*)390 1712 y(5)1002 b(*------------*----------)o
+(--*-)o(----)o(---)o(----)o(*)390 1816 y(6)1193 b
+(*------------*----------)o(--*-)o(---)o(----)o(----)o(*)390
+1920 y(7)1384 b(*------------*----------)o(--*)o(----)o(----)o(---)o
+(-*)390 2024 y(8)1575 b(*------------*---------)o(---*)o(----)o(---)o
+(----)o(-*)390 2127 y(9)1766 b(*------------*---------)o(---*)o(---)o
+(----)o(----)o(-*)390 2231 y(10)1909 b(*------------*---------)o(---)o
+(*---)o(----)o(---)o(-)390 2335 y(11)2099 b(*------------*------------)
+o(*---)o(---)o(-)390 2439 y(12)2290 b(*------------*------------)o(*--)
+o(-)390 2542 y(13)2481 b(*------------*-----------)o(-)390
+2646 y(14)2672 b(*------------*--------)390 2750 y(15)2863
+b(*------------*----)390 2854 y(16)3054 b(*------------*)390
+2958 y(17)3245 b(*---------)390 3061 y(18)3436 b(*-----)390
+3165 y(19)3627 b(*-)150 3304 y Fc(S)30 b Fu(=)25 b(8,)31
+b Fc(J)k Fu(=)25 b(5,)31 b Fc(star)s(t)24 b Fu(=)h(28:)1822
+3437 y Fr(start)1822 3541 y(|)390 3644 y(0)47 b
+(*-------*-------*-------*-)o(----)o(--*)390 3748 y(1)286
+b(*-------*-------*-------*)o(---)o(----)o(*)390 3852
+y(2)525 b(*-------*-------*------)o(-*--)o(----)o(-*)390
+3956 y(3)763 b(*-------*-------*-------*-)o(---)o(---*)390
+4060 y(4)1002 b(*-------*-------*-------)o(*---)o(----)o(*)390
+4163 y(5)1241 b(*-------*-------*------)o(-*--)o(---)o(--*)390
+4267 y(6)1479 b(*-------*-------*-------*)o(----)o(---*)390
+4371 y(7)1718 b(*-------*-------*-------)o(*---)o(---)o(-*)390
+4475 y(8)1957 b(*-------*-------*------)o(-*-)o(----)o(--*)390
+4578 y(9)2195 b(*-------*-------*-------*)o(----)o(---)o(*)390
+4682 y(10)2386 b(*-------*-------*-------)o(*--)o(-)390
+4786 y(11)2624 b(*-------*-------*------)390 4890 y(12)2863
+b(*-------*-------*-)390 4994 y(13)3102 b(*-------*----)390
+5097 y(14)3340 b(*-------)390 5201 y(15)3579 b(*--)150
+5340 y Fc(S)30 b Fu(=)25 b(9,)31 b Fc(J)k Fu(=)25 b(5,)31
+b Fc(star)s(t)24 b Fu(=)h(32:)p eop
+%%Page: 47 52
+47 51 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(47)2013 299 y Fr(start)2013
+403 y(|)390 506 y(0)47 b(*--------*--------*-------)o(-*--)o(---)o
+(---*)390 610 y(1)286 b(*--------*--------*------)o(--*)o(----)o(----)o
+(*)390 714 y(2)525 b(*--------*--------*----)o(----)o(*---)o(---)o(--*)
+390 818 y(3)763 b(*--------*--------*-------)o(-*-)o(----)o(---*)390
+922 y(4)1002 b(*--------*--------*-----)o(---*)o(----)o(---)o(-*)390
+1025 y(5)1241 b(*--------*--------*----)o(----)o(*--)o(----)o(--*)390
+1129 y(6)1479 b(*--------*--------*------)o(--*-)o(----)o(---)o(*)390
+1233 y(7)1718 b(*--------*--------*-----)o(---*)o(---)o(----)o(-*)390
+1337 y(8)1957 b(*--------*--------*----)o(---)o(-*--)o(----)o(--*)390
+1440 y(9)2195 b(*--------*--------*------)o(--*-)o(---)o(-)390
+1544 y(10)2386 b(*--------*--------*-----)o(---)o(*)390
+1648 y(11)2624 b(*--------*--------*----)390 1752 y(12)2863
+b(*--------*--------)390 1856 y(13)3102 b(*--------*---)390
+1959 y(14)3340 b(*-------)390 2063 y(15)3579 b(*--)150
+2234 y Fc(S)30 b Fu(=)25 b(6,)31 b Fc(J)k Fu(=)25 b(7,)31
+b Fc(star)s(t)24 b Fu(=)h(30:)1917 2400 y Fr(start)1917
+2504 y(|)390 2608 y(0)47 b(*-----*-----*-----*-----*-)o(----)o(*--)o
+(---*)390 2711 y(1)382 b(*-----*-----*-----*----)o(-*-)o(----)o(*---)o
+(--*)390 2815 y(2)716 b(*-----*-----*-----*----)o(-*--)o(---)o(*---)o
+(--*)390 2919 y(3)1050 b(*-----*-----*-----*----)o(-*--)o(---*)o(---)o
+(--*)390 3023 y(4)1384 b(*-----*-----*-----*-----)o(*--)o(---*)o(----)o
+(-*)390 3126 y(5)1718 b(*-----*-----*-----*-----)o(*---)o(--*)o(----)o
+(-*)390 3230 y(6)2052 b(*-----*-----*-----*-----)o(*---)o(--*-)o(---)o
+(-)390 3334 y(7)2386 b(*-----*-----*-----*-----*)o(---)o(-)390
+3438 y(8)2720 b(*-----*-----*-----*---)390 3542 y(9)3054
+b(*-----*-----*--)390 3645 y(10)3340 b(*-----*-)390 3749
+y(11)3674 b(*)150 4047 y Fg(B.2.3)63 b(W)-10 b(ea)m(ving)40
+b(collisions)275 4277 y Fu(This)28 b(p)s(erfect)i(w)m(ea)m(v)m(e)j(is)c
+(not)i(p)s(ossible)d(in)h(all)g(cases.)42 b(Let's)31
+b(lo)s(ok)f(at)h(another)g(example:)150 4448 y Fc(S)f
+Fu(=)25 b(6,)31 b Fc(J)k Fu(=)25 b(4:)390 4614 y Fr(0)47
+b(*-----*-----*-----*)390 4717 y(1)238 b(*-----*-----*-----*)390
+4821 y(2)429 b(*-----*-----*-----*)390 4925 y(3)620 b
+(*-----*-----*-----*)390 5029 y(4)g(^)143 b(*-^---*-----*-----*)390
+5132 y(5)620 b(|)143 b(^)48 b(|)f(*-^---*-----*-----*)1058
+5236 y(OUCH!)142 b(^)47 b(|)143 b(^)1440 5340 y(|)238
+b(|)p eop
+%%Page: 48 53
+48 52 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(48)150 299 y(Here)26
+b(w)m(e)h(ha)m(v)m(e)g(a)f(collision.)37 b(Some)26 b(lines)e(prin)m
+(ted)h(in)f(later)i(passes)g(o)m(v)m(erprin)m(t)g(lines)e(prin)m(ted)g
+(b)m(y)i(earlier)150 408 y(passes.)40 b(W)-8 b(e)30 b(can)g(see)f(wh)m
+(y)g(b)m(y)g(considering)e(whic)m(h)h(ro)m(w)h(n)m(um)m(b)s(er)f(is)g
+(prin)m(ted)f(b)m(y)i(a)h(giv)m(en)f(jet)g(n)m(um)m(b)s(er)150
+518 y Fc(j)36 b Fu(\(n)m(um)m(b)s(ered)29 b(from)h(0\))h(of)g(a)g(giv)m
+(en)f(pass,)g Fc(p)p Fu(:)390 655 y Fc(r)s(ow)r Fu(\()p
+Fc(p;)63 b(j)5 b Fu(\))74 b(=)f Fc(p)20 b Fs(\003)h Fc(J)56
+b Fu(+)48 b Fc(j)26 b Fs(\003)20 b Fc(S)275 799 y Fu(Because)28
+b Fc(J)35 b Fu(=)25 b(4)i(and)g Fc(S)j Fu(=)25 b(6)j(ha)m(v)m(e)h(a)f
+(common)f(factor)i(of)e(2,)i(jet)f(2)f(of)h(pass)f(0)h(prin)m(ts)d(the)
+j(same)g(ro)m(w)150 908 y(as)j(jet)f(0)h(of)g(pass)f(3:)390
+1046 y Fc(r)s(ow)r Fu(\(0)p Fc(;)64 b Fu(2\))74 b(=)f(0)20
+b Fs(\003)h Fu(4)48 b(+)f(2)21 b Fs(\003)g Fu(6)73 b(=)g(12)390
+1150 y Fc(r)s(ow)r Fu(\(3)p Fc(;)64 b Fu(0\))74 b(=)f(3)20
+b Fs(\003)h Fu(4)48 b(+)f(0)21 b Fs(\003)g Fu(6)73 b(=)g(12)275
+1293 y(In)25 b(fact,)j(with)c(this)h(particular)f(w)m(ea)m(v)m(e)29
+b(pattern,)e(jets)f(0)g(and)g(1)g(of)g(pass)f Fc(p)p
+Fu(+3)h(alw)m(a)m(ys)h(o)m(v)m(erprin)m(t)f(jets)150
+1402 y(2)33 b(and)g(3)g(of)g(pass)g Fc(p)p Fu(.)48 b(W)-8
+b(e'll)33 b(represen)m(t)g(o)m(v)m(erprin)m(ting)f(ro)m(ws)h(b)m(y)g(a)
+g(`)p Fr(^)p Fu(')g(in)f(our)g(diagrams,)h(and)g(correct)150
+1512 y(ro)m(ws)d(b)m(y)h(`)p Fr(*)p Fu(':)150 1655 y
+Fc(S)f Fu(=)25 b(6)31 b Fc(J)j Fu(=)25 b(4:)390 1793
+y Fr(0)47 b(*-----*-----*-----*)390 1896 y(1)238 b(*-----*-----*-----*)
+390 2000 y(2)429 b(*-----*-----*-----*)390 2104 y(3)620
+b(^-----^-----*-----*)390 2208 y(4)811 b(^-----^-----*-----*)390
+2311 y(5)1002 b(^-----^-----*-----*)150 2553 y Fg(B.2.4)63
+b(What)40 b(mak)m(es)f(a)i(\\p)s(erfect")g(w)m(ea)m(v)m(e?)275
+2754 y Fu(So)30 b(what)g(causes)g(the)h(p)s(erfect)f(w)m(ea)m(v)m(e)i
+(cases)f(to)g(b)s(e)f(p)s(erfect,)g(and)g(the)g(other)h(cases)g(not)f
+(to)h(b)s(e?)40 b(In)150 2864 y(all)26 b(the)i(p)s(erfect)f(cases)h(ab)
+s(o)m(v)m(e,)h Fc(S)j Fu(and)27 b Fc(J)36 b Fu(are)28
+b(relativ)m(ely)f(prime)e(\(i.e.)40 b(their)27 b(greatest)i(common)e
+(divisor)150 2974 y(\(GCD\))40 b(is)f(1\).)68 b(As)39
+b(w)m(e)h(men)m(tioned)f(ab)s(o)m(v)m(e,)k Fc(S)i Fu(=)40
+b(6)f(and)g Fc(J)49 b Fu(=)40 b(4)g(ha)m(v)m(e)g(a)g(common)f(factor,)k
+(whic)m(h)150 3083 y(causes)37 b(the)f(o)m(v)m(erprin)m(ting.)58
+b(Where)37 b Fc(S)k Fu(and)36 b Fc(J)46 b Fu(ha)m(v)m(e)37
+b(a)g(GCD)g(of)f(1,)j(they)d(ha)m(v)m(e)i(no)e(common)h(factor)150
+3193 y(other)c(than)f(1)h(and,)g(as)f(a)h(result,)g(no)f(o)m(v)m
+(erprin)m(ting)g(o)s(ccurs.)47 b(If)32 b Fc(S)37 b Fu(and)32
+b Fc(J)42 b Fu(are)33 b(not)f(relativ)m(ely)g(prime,)150
+3302 y(their)d(common)i(factor)g(will)d(cause)j(o)m(v)m(erprin)m(ting.)
+275 3446 y(W)-8 b(e)27 b(can)g(w)m(ork)f(out)h(the)f(greatest)i(common)
+f(divisor)d(of)j(a)f(pair)g(of)g(natural)g(n)m(um)m(b)s(ers)e(using)h
+(Euler's)150 3555 y(algorithm:)330 3698 y(Start)31 b(with)e(the)h(t)m
+(w)m(o)i(n)m(um)m(b)s(ers:)39 b(\(e.g.\))k(9,)31 b(24)330
+3837 y(Sw)m(ap)f(them)g(if)g(necessary)g(so)h(that)g(the)f(larger)h
+(one)f(comes)h(\014rst:)40 b(24,)32 b(9)330 3976 y(Subtract)e(the)h
+(second)f(n)m(um)m(b)s(er)f(from)h(the)h(\014rst:)39
+b(15,)32 b(9)330 4115 y(Rep)s(eat)f(un)m(til)e(the)h(\014rst)g(n)m(um)m
+(b)s(er)f(b)s(ecomes)h(smaller:)40 b(6,)31 b(9)330 4254
+y(Sw)m(ap)f(the)g(n)m(um)m(b)s(ers)f(again,)i(so)g(the)f(larger)g(one)h
+(comes)g(\014rst:)40 b(9,)31 b(6)330 4393 y(Subtract)f(again:)41
+b(3,)31 b(6)330 4532 y(Sw)m(ap:)40 b(6,)31 b(3)330 4671
+y(Subtract:)40 b(3,)31 b(3)330 4809 y(And)e(again:)41
+b(0,)31 b(3)330 4948 y(When)25 b(one)h(of)f(the)h(n)m(um)m(b)s(ers)e(b)
+s(ecomes)h(0,)i(the)f(other)f(n)m(um)m(b)s(er)f(is)h(the)g(GCD)h(of)f
+(the)h(t)m(w)m(o)g(n)m(um)m(b)s(ers)330 5058 y(y)m(ou)31
+b(started)g(with.)275 5230 y(These)h(rep)s(eated)h(subtractions)e(can)i
+(b)s(e)f(done)h(with)e(C's)h(`)p Fr(\045)p Fu(')h(op)s(erator,)h(so)f
+(w)m(e)g(can)g(write)f(this)f(in)150 5340 y(C)f(as)h(follo)m(ws:)p
+eop
+%%Page: 49 54
+49 53 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(49)390 299 y Fr(unsigned)46
+b(int)390 403 y(gcd\(unsigned)e(int)j(x,)h(unsigned)d(int)i(y\))390
+506 y({)581 610 y(if)g(\(y)g(==)g(0\))772 714 y(return)f(x;)581
+818 y(while)g(\(x)h(!=)h(0\))f({)772 922 y(if)g(\(y)g(>)h(x\))963
+1025 y(swap)e(\(&x,)h(&y\);)772 1129 y(x)g(\045=)g(y;)581
+1233 y(})581 1337 y(return)f(y;)390 1440 y(})275 1590
+y Fu(`)p Fr(gcd\(S,J\))p Fu(')28 b(will)g(feature)j(quite)e(prominen)m
+(tly)g(in)g(our)h(w)m(ea)m(ving)h(algorithm.)275 1739
+y(If)38 b(0)p Fc(<)i Fu(=)g Fc(j)5 b(<J)k Fu(,)42 b(there)d(should)e
+(only)h(b)s(e)h(a)g(single)f(pair)g(\()p Fc(p;)15 b(j)5
+b Fu(\))40 b(for)f(an)m(y)h(giv)m(en)f(ro)m(w)g(n)m(um)m(b)s(er.)65
+b(If)150 1849 y Fc(S)50 b Fu(and)45 b Fc(J)55 b Fu(are)46
+b(not)f(relativ)m(ely)g(prime,)j(this)c(assumption)g(breaks)i(do)m(wn.)
+85 b(\(F)-8 b(or)47 b(conciseness,)i(let)150 1959 y Fc(G)26
+b Fu(=)f(GCD\()p Fc(S;)15 b(J)9 b Fu(\).\))150 2108 y
+Fc(S)30 b Fu(=)25 b(8,)31 b Fc(J)k Fu(=)25 b(6,)31 b
+Fc(G)25 b Fu(=)g(2:)390 2252 y Fr(0)47 b(*-------*-------*-------*-)o
+(----)o(--*)o(----)o(---*)390 2356 y(1)334 b(*-------*-------*-------)o
+(*--)o(----)o(-*--)o(---)o(--*)390 2459 y(2)620 b
+(*-------*-------*-------*)o(----)o(---)o(*---)o(----)o(*)390
+2563 y(3)907 b(*-------*-------*------)o(-*-)o(----)o(--*-)o(---)o
+(---*)390 2667 y(4)1193 b(^-------^-------^-------)o(*---)o(---)o(-*--)
+o(----)o(-*)390 2771 y(5)1479 b(^-------^-------^-------*)o(----)o
+(---*)o(---)o(----)o(*)275 2920 y Fu(In)29 b(this)g(case,)j(jets)f(0,)g
+(1)g(and)e(2)i(of)g(pass)f Fc(p)p Fu(+)o(4)h(collide)e(with)g(jets)h
+(3,)h(4)g(and)f(5)h(of)f(pass)g Fc(p)p Fu(.)275 3070
+y(Ho)m(w)37 b(can)g(w)m(e)g(calculate)g(these)g(n)m(um)m(b)s(ers?)58
+b(Supp)s(ose)35 b(w)m(e)i(w)m(ere)g(to)h(prin)m(t)d(using)g(few)m(er)i
+(jets,)i(sa)m(y)150 3179 y Fc(J)t(=G)34 b Fu(jets.)48
+b(The)32 b(greatest)i(common)f(divisor)e(of)h Fc(J)t(=G)i
+Fu(and)e Fc(S)38 b Fu(is)31 b(1,)j(enabling)d(a)i(p)s(erfect)g(w)m(ea)m
+(v)m(e.)50 b(But)150 3289 y(to)31 b(get)h(a)e(p)s(erfect)h(w)m(ea)m(v)m
+(e,)i(w)m(e)d(also)h(ha)m(v)m(e)g(to)g(adv)-5 b(ance)31
+b(the)g(pap)s(er)e(b)m(y)i(a)f(factor)i(of)e Fc(G)h Fu(less:)390
+3433 y Fr(0)47 b(*-------*-------*)330 b(-)k(-)g(-)390
+3536 y(1)191 b(*-------*-------*)329 b(-)334 b(-)g(-)390
+3640 y(2)g(*-------*-------*)329 b(-)334 b(-)g(-)390
+3744 y(3)477 b(*-------*-------*)329 b(-)334 b(-)g(-)390
+3848 y(4)620 b(*-------*-------*)330 b(-)j(-)h(-)390
+3952 y(5)763 b(*-------*-------*)330 b(-)k(-)f(-)275
+4101 y Fu(If)27 b(w)m(e)h(left)f(the)h(pap)s(er)f(adv)-5
+b(ance)28 b(alone,)h(w)m(e'd)e(get)i(a)f(sparse)g(w)m(ea)m(v)m(e;)j
+(only)c(one)h(ro)m(w)f(can)h(b)s(e)f(prin)m(ted)150 4211
+y(ev)m(ery)k Fc(G)g Fu(ro)m(ws:)390 4354 y Fr(0)47 b(*-------*-------*)
+330 b(-)k(-)g(-)390 4458 y(1)g(*-------*-------*)329
+b(-)334 b(-)g(-)390 4562 y(2)620 b(*-------*-------*)330
+b(-)j(-)h(-)390 4666 y(3)907 b(*-------*-------*)329
+b(-)334 b(-)g(-)390 4770 y(4)1193 b(*-------*-------*)329
+b(-)334 b(-)g(-)390 4873 y(5)1479 b(*-------*-------*)330
+b(-)k(-)f(-)1106 4977 y(^)47 b(^)h(^)f(^)h(^)f(^)h(^)f(^)h(^)f(^)g(^)
+1058 5081 y(These)g(rows)f(need)h(filling)f(in.)275 5230
+y Fu(The)26 b(ro)m(ws)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(prin)m
+(ted)f(b)m(y)i(the)g(jets)g(w)m(e'v)m(e)h(no)m(w)f(omitted)g(\(sho)m
+(wn)f(as)h(`)p Fr(-)p Fu('\))h(are)150 5340 y(prin)m(ted)h(b)m(y)h
+(other)h(jets)f(on)h(later)f(passes.)p eop
+%%Page: 50 55
+50 54 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(50)275 299 y(Let's)38
+b(analyse)f(this.)60 b(Consider)36 b(ho)m(w)h(a)h(pass)f
+Fc(p)g Fu(could)g(collide)e(with)h(pass)h(0.)63 b(P)m(ass)37
+b Fc(p)g Fu(starts)h(at)150 408 y(o\013set)33 b Fc(p)21
+b Fs(\003)g Fc(J)9 b Fu(.)46 b(P)m(ass)32 b(0)g(prin)m(ts)f(at)h(ro)m
+(ws)g(whic)m(h)f(are)h(m)m(ultiples)d(of)j Fc(S)5 b Fu(.)46
+b(If)31 b Fc(p)21 b Fs(\003)h Fc(J)40 b Fu(is)31 b(exactly)i(divisible)
+28 b(b)m(y)150 518 y Fc(S)5 b Fu(,)29 b(a)h(collision)c(has)j(o)s
+(ccurred,)f(unless)f Fc(p)17 b Fs(\003)h Fc(J)9 b(>)25
+b Fu(=)g Fc(J)h Fs(\003)18 b Fc(S)33 b Fu(\(whic)m(h)28
+b(will)e(happ)s(en)i(when)f(w)m(e)j(\014nish)c(a)j(pass)150
+628 y(blo)s(c)m(k\).)275 769 y(So,)41 b(w)m(e)f(w)m(an)m(t)g(to)g
+(\014nd)e Fc(p)h Fu(and)f Fc(q)k Fu(suc)m(h)d(that)h
+Fc(p)26 b Fs(\003)g Fc(J)50 b Fu(=)39 b Fc(q)29 b Fs(\003)e
+Fc(S)44 b Fu(and)39 b Fc(p)g Fu(is)f(minimised.)64 b(Then)38
+b Fc(p)h Fu(is)150 878 y(the)33 b(n)m(um)m(b)s(er)f(of)h(ro)m(ws)g(b)s
+(efore)f(a)i(collision,)d(and)h Fc(q)k Fu(is)c(the)h(n)m(um)m(b)s(er)f
+(of)h(jets)g(in)f(pass)g(0)i(whic)m(h)d(are)j(not)150
+988 y(in)m(v)m(olv)m(ed)27 b(in)f(the)i(collision.)37
+b(T)-8 b(o)28 b(do)f(this,)h(w)m(e)f(\014nd)f(the)i(lo)m(w)m(est)g
+(common)g(m)m(ultiple)d(of)j Fc(J)36 b Fu(and)27 b Fc(S)5
+b Fu(,)28 b(whic)m(h)150 1098 y(is)34 b Fc(L)e Fu(=)h
+Fc(J)f Fs(\003)24 b Fc(S=G)p Fu(.)54 b Fc(L=J)45 b Fu(is)34
+b(the)h(n)m(um)m(b)s(er)e(of)i(ro)m(ws)g(b)s(efore)f(a)h(collision,)f
+(and)g Fc(L=S)40 b Fu(is)34 b(the)h(n)m(um)m(b)s(er)f(of)150
+1207 y(jets)d(in)e(the)h(\014rst)g(pass)g(not)h(in)m(v)m(olv)m(ed)f(in)
+f(the)h(collision.)275 1348 y(Th)m(us,)40 b(w)m(e)g(see)g(that)f(the)h
+(\014rst)e Fc(J)t(=G)i Fu(ro)m(ws)g(prin)m(ted)d(b)m(y)i(a)h(giv)m(en)f
+(pass)g(are)g(not)h(o)m(v)m(erprin)m(ted)f(b)m(y)150
+1458 y(an)m(y)31 b(later)f(pass.)40 b(Ho)m(w)m(ev)m(er,)33
+b(the)d(rest)h(of)f(the)g(ro)m(ws)h(prin)m(ted)d(b)m(y)j(pass)e
+Fc(p)h Fu(are)h(o)m(v)m(erprin)m(ted)f(b)m(y)g(the)h(\014rst)150
+1567 y Fc(J)f Fs(\000)21 b Fu(\()p Fc(J)t(=G)p Fu(\))33
+b(jets)f(of)g(pass)f Fc(p)p Fu(+\()p Fc(S=G)p Fu(\).)46
+b(W)-8 b(e)33 b(will)c(use)i Fc(C)38 b Fu(to)33 b(refer)e(to)i
+Fc(S=G)p Fu(,)g(the)f(n)m(um)m(b)s(er)e(of)i(ro)m(ws)f(after)150
+1677 y(whic)m(h)e(a)i(collision)d(o)s(ccurs.)275 1818
+y(Another)i(example:)150 1959 y Fc(S)g Fu(=)25 b(6,)31
+b Fc(J)k Fu(=)25 b(9,)31 b Fc(G)25 b Fu(=)g(3,)31 b Fc(C)h
+Fu(=)25 b Fc(S=G)h Fu(=)f(2:)390 2095 y Fr(0)47 b
+(*-----*-----*-----*-----*-)o(----)o(*--)o(---*)o(----)o(-*-)o(----)o
+(*)390 2198 y(1)477 b(*-----*-----*-----*-----)o(*---)o(--*-)o(---)o
+(-*--)o(---*)o(---)o(--*)390 2302 y(2)907 b(^-----^-----^-----^----)o
+(-^-)o(----)o(^---)o(--*)o(----)o(-*--)o(---)o(*)390
+2406 y(3)1336 b(^-----^-----^-----^-----^)o(---)o(--^-)o(----)o(*--)o
+(---*)o(----)o(-*)390 2510 y(4)1766 b(^-----^-----^-----^----)o(-^--)o
+(---)o(^---)o(--*-)o(---)o(-)390 2614 y(5)2195 b
+(^-----^-----^-----^-----^)o(----)o(-^-)o(-)820 2717
+y(^^)47 b(^^)g(^^)g(^^)g(^^)g(^^)h(^^)f(^^)g(^^)g(^^)g(^^)h(^^)f(^^)g
+(^^)g(^^)g(^^)g(^^)h(^^)f(^^)g(^^)g(^^)g(^^)h(^^)f(^^)1058
+2821 y(These)g(rows)f(need)h(filling)f(in.)150 2962 y
+Fu(In)30 b(this)f(case,)j(the)e(\014rst)g Fc(J)f Fs(\000)20
+b Fu(\()p Fc(J)t(=G)p Fu(\))27 b(=)e(9)c Fs(\000)e Fu(9)p
+Fc(=)p Fu(3)27 b(=)e(6)31 b(jets)f(of)h(pass)f Fc(p)p
+Fu(+)o(\(6)p Fc(=)p Fu(3\))e(=)d Fc(p)p Fu(+)o(2)31 b(collide)e(with)g
+(the)150 3072 y(last)h(6)h(jets)g(of)f(pass)g Fc(p)p
+Fu(.)41 b(Only)28 b(one)j(ro)m(w)f(in)g(ev)m(ery)h Fc(G)25
+b Fu(=)g(2)31 b(ro)m(ws)g(is)e(prin)m(ted)g(b)m(y)h(this)f(w)m(ea)m(v)m
+(e.)150 3213 y Fc(S)h Fu(=)25 b(9,)31 b Fc(J)k Fu(=)25
+b(6,)31 b Fc(G)25 b Fu(=)g(3,)31 b Fc(C)h Fu(=)25 b(3:)390
+3348 y Fr(0)47 b(*--------*--------*-------)o(-*--)o(---)o(---*)o(----)
+o(---)o(-*)390 3452 y(1)334 b(*--------*--------*-----)o(---)o(*---)o
+(----)o(-*-)o(----)o(---*)390 3556 y(2)620 b(*--------*--------*------)
+o(--*-)o(---)o(----)o(*---)o(---)o(--*)390 3660 y(3)907
+b(^--------^--------^----)o(---)o(-^--)o(----)o(--*)o(----)o(----)o(*)
+390 3763 y(4)1193 b(^--------^--------^-----)o(---^)o(---)o(----)o
+(-*--)o(---)o(---*)390 3867 y(5)1479 b(^--------^--------^------)o
+(--^-)o(----)o(---)o(*---)o(----)o(-*)150 4008 y Fu(Here,)32
+b(the)g(\014rst)e Fc(J)g Fs(\000)20 b Fu(\()p Fc(J)t(=G)p
+Fu(\))29 b(=)d(6)21 b Fs(\000)g Fu(6)p Fc(=)p Fu(3)28
+b(=)e(4)32 b(jets)f(of)g(pass)g Fc(p)p Fu(+\(9)p Fc(=)p
+Fu(3\))d(=)f Fc(p)p Fu(+)o(3)32 b(collide)d(with)h(the)i(last)f(4)150
+4118 y(jets)g(of)f(pass)g Fc(p)p Fu(.)275 4259 y(Note)36
+b(that,)i(in)c(these)i(o)m(v)m(erprin)m(ting)f(cases,)j(only)c(ro)m(ws)
+i(divisible)31 b(b)m(y)36 b Fc(G)g Fu(are)g(ev)m(er)g(prin)m(ted.)54
+b(The)150 4369 y(other)31 b(ro)m(ws,)f(those)h(not)g(divisible)26
+b(b)m(y)31 b Fc(G)p Fu(,)g(are)f(not)h(touc)m(hed)g(b)m(y)f(this)f(w)m
+(ea)m(v)m(e.)275 4510 y(W)-8 b(e)28 b(can)g(mo)s(dify)d(our)i(w)m(ea)m
+(v)m(e)i(pattern)f(to)g(a)m(v)m(oid)g(o)m(v)m(erprin)m(ting)e(an)m(y)i
+(ro)m(ws)f(and)g(sim)m(ultaneously)e(\014ll)150 4619
+y(in)30 b(the)i(missing)d(ro)m(ws.)44 b(Instead)31 b(of)h(using)e
+Fc(J)41 b Fu(alone)31 b(to)h(determine)f(the)g(start)h(of)g(eac)m(h)h
+(pass)e(from)g(the)150 4729 y(previous)c(pass,)h(w)m(e)h(adjust)f(the)g
+(starting)g(p)s(osition)e(of)j(some)f(passes.)40 b(As)29
+b(men)m(tioned)e(b)s(efore,)i(w)m(e)g(will)150 4839 y(divide)c(the)i
+(page)h(in)m(to)f(pass)g(blo)s(c)m(ks,)g(with)f Fc(S)32
+b Fu(passes)27 b(in)f(eac)m(h)i(blo)s(c)m(k.)40 b(This)25
+b(ensures)h(that)i(the)f(\014rst)f(jet)150 4948 y(of)j(the)h(\014rst)e
+(pass)h(in)f(a)i(blo)s(c)m(k)f(prin)m(ts)e(the)j(ro)m(w)f(whic)m(h)f
+(the)h Fc(J)9 b Fu(th)30 b(jet)f(of)h(the)f(\014rst)g(pass)g(of)g(the)g
+(previous)150 5058 y(blo)s(c)m(k)h(w)m(ould)f(ha)m(v)m(e)j(prin)m(ted,)
+d(if)g(the)i(prin)m(t)e(head)h(had)g(one)g(extra)h(jet.)275
+5199 y(Lo)s(oking)e(bac)m(k)i(at)h(an)e(example)g(of)g(a)h(p)s(erfect)f
+(w)m(ea)m(v)m(e,)j(w)m(e)e(can)g(divide)d(it)i(in)m(to)g(pass)g(blo)s
+(c)m(ks:)150 5340 y Fc(S)g Fu(=)25 b(7,)31 b Fc(J)k Fu(=)25
+b(2,)31 b Fc(G)25 b Fu(=)g(1:)p eop
+%%Page: 51 56
+51 55 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(51)1154 299 y Fr(imaginary)45
+b(extra)h(jet)1154 403 y(|)390 506 y(0)h(*------*)285
+b(*)h(<--start)45 b(of)i(pass)g(block)f(0)390 610 y(1)143
+b(*------*)189 b(|)390 714 y(2)238 b(*------*)94 b(|)390
+818 y(3)334 b(*------*|)390 922 y(4)429 b(*-----|*)390
+1025 y(5)525 b(*---|--*)390 1129 y(6)620 b(*-|----*)1154
+1233 y(|)390 1337 y(7)716 b(*------*)93 b(<--start)45
+b(of)j(pass)e(block)h(1)390 1440 y(8)811 b(*------*)390
+1544 y(9)907 b(*------*)275 1679 y Fu(W)-8 b(e)33 b(can)f(no)m(w)g
+(calculate)h(the)f(start)g(of)h(a)f(giv)m(en)g(pass)g(b)m(y)g
+(reference)g(to)h(its)e(pass)h(blo)s(c)m(k.)45 b(The)32
+b(\014rst)150 1788 y(pass)k(of)h(pass)g(blo)s(c)m(k)f
+Fc(b)h Fu(alw)m(a)m(ys)g(starts)g(at)h(ro)m(w)f(\()p
+Fc(b)25 b Fs(\003)g Fc(S)k Fs(\003)c Fc(J)9 b Fu(\).)60
+b(The)37 b(start)g(ro)m(w)g(of)g(eac)m(h)h(of)f(the)g(other)150
+1898 y(passes)30 b(in)f(the)i(blo)s(c)m(k)f(are)h(calculated)f(using)f
+(o\013sets)i(from)f(this)f(ro)m(w.)275 2033 y(F)-8 b(or)38
+b(the)f(example)g(ab)s(o)m(v)m(e,)k(there)d(are)f(7)h(passes)f(in)f
+(eac)m(h)j(pass)e(blo)s(c)m(k,)i(and)e(their)f(o\013sets)j(are)e(0,)150
+2142 y(2,)f(4,)g(6,)f(8,)h(10)f(and)f(12.)53 b(The)34
+b(next)g(pass)g(blo)s(c)m(k)g(is)f(o\013set)i Fc(S)28
+b Fs(\003)23 b Fc(J)41 b Fu(=)31 b(14)k(ro)m(ws)f(from)g(the)h(start)f
+(of)h(the)150 2252 y(curren)m(t)30 b(pass)g(blo)s(c)m(k.)275
+2387 y(The)c(simplest)g(w)m(a)m(y)i(to)g(mo)s(dify)d(the)i(\\p)s
+(erfect")h(w)m(ea)m(v)m(e)i(pattern)d(to)h(giv)m(e)g(a)f(correct)i(w)m
+(ea)m(v)m(e)g(in)d(cases)150 2496 y(where)37 b Fc(G)p
+Fu(!)g(=)f(1)i(is)e(to)i(simply)d(c)m(hange)j(an)m(y)f(o\013sets)h
+(whic)m(h)e(w)m(ould)g(result)g(in)g(a)i(collision,)e(un)m(til)g(the)
+150 2606 y(collision)f(disapp)s(ears.)59 b(Ev)m(ery)37
+b(prin)m(ted)f(ro)m(w)h(in)f(the)h(w)m(ea)m(v)m(e,)k(as)d(w)m(e)f(ha)m
+(v)m(e)i(sho)m(wn)d(it)h(up)f(to)i(no)m(w,)h(is)150 2715
+y(separated)g(from)g(eac)m(h)h(of)f(its)f(neigh)m(b)s(ouring)e(prin)m
+(ted)h(ro)m(ws)i(b)m(y)g Fc(G)g Fu(blank)f(ro)m(ws.)66
+b(W)-8 b(e)40 b(will)c(add)i(an)150 2825 y(extra)29 b(o\013set)g(to)g
+(eac)m(h)g(colliding)c(pass)j(in)f(suc)m(h)h(a)g(w)m(a)m(y)h(that)g(w)m
+(e)f(push)f(the)h(pass)g(on)m(to)h(these)g(otherwise)150
+2935 y(blank)g(ro)m(ws.)275 3069 y(W)-8 b(e)33 b(ha)m(v)m(e)g(seen)f
+(that,)h(unless)d Fc(G)e Fu(=)f(1,)33 b(the)f(plain)e(w)m(ea)m(v)m(e)k
+(pattern)e(results)f(in)f(eac)m(h)j(pass)f(colliding)150
+3179 y(with)24 b(the)i(pass)f Fc(S=G)h Fu(passes)f(b)s(efore.)39
+b(W)-8 b(e)26 b(will)d(no)m(w)i(sub)s(divide)d(our)j(pass)g(blo)s(c)m
+(k)g(in)m(to)g(subblo)s(c)m(ks,)g(eac)m(h)150 3288 y(consisting)k(of)i
+Fc(B)f Fu(=)24 b Fc(S=G)32 b Fu(passes.)40 b(There)30
+b(are)h(therefore)g Fc(G)f Fu(subblo)s(c)m(ks)f(in)g(a)i(pass)f(blo)s
+(c)m(k.)275 3423 y(F)-8 b(or)37 b(eac)m(h)i(subblo)s(c)m(k,)e(the)h
+(passes)f(in)f(that)h(subblo)s(c)m(k)f(ha)m(v)m(e)i(a)g(constan)m(t)g
+(o\013set)g(added)f(to)h(them.)150 3533 y(The)27 b(o\013set)h(is)e
+(di\013eren)m(t)h(for)g(eac)m(h)h(subblo)s(c)m(k)d(in)h(a)i(blo)s(c)m
+(k.)39 b(There)27 b(are)g(man)m(y)h(w)m(a)m(ys)f(w)m(e)h(can)g(c)m(ho)s
+(ose)g(the)150 3642 y(o\013sets,)k(but)f(the)g(simplest)e(is)h(to)i
+(mak)m(e)g(the)f(o\013set)h(equal)e(to)i(the)f(subblo)s(c)m(k)f(n)m(um)
+m(b)s(er)f(\(starting)i(from)150 3752 y(0\).)275 3887
+y(Th)m(us,)42 b(the)e(passes)g(in)f(the)i(\014rst)e(subblo)s(c)m(k)g
+(in)g(eac)m(h)j(pass)d(blo)s(c)m(k)h(remain)g(at)h(the)f(o\013sets)h(w)
+m(e'v)m(e)150 3996 y(already)34 b(calculated)f(from)h
+Fc(J)9 b Fu(.)51 b(The)34 b(passes)f(in)g(the)h(second)g(subblo)s(c)m
+(k)e(eac)m(h)k(ha)m(v)m(e)f(1)f(added)f(to)i(their)150
+4106 y(o\013set,)d(the)f(passes)g(in)e(the)i(third)e(subblo)s(c)m(k)g
+(ha)m(v)m(e)j(2)g(added,)e(and)g(so)h(on.)42 b(Th)m(us,)30
+b(the)h(o\013set)h(of)f(pass)f Fc(p)150 4215 y Fu(\(n)m(um)m(b)s(ered)f
+(relativ)m(e)i(to)g(the)f(start)h(of)g(its)f(pass)g(blo)s(c)m(k\))g(is)
+f Fc(p)20 b Fs(\003)h Fc(J)9 b Fu(+\015o)s(or)o(\()p
+Fc(p=B)c Fu(\).)275 4350 y(This)28 b(giv)m(es)j(us)f(a)g(w)m(ea)m(v)m
+(e)j(pattern)d(lo)s(oking)g(lik)m(e)f(this:)150 4485
+y Fc(S)h Fu(=)25 b(6,)31 b Fc(J)k Fu(=)25 b(9,)31 b Fc(G)25
+b Fu(=)g(3,)31 b Fc(B)f Fu(=)25 b(2:)390 4614 y Fr(0)47
+b(*-----*-----*-----*-----*-)o(----)o(*--)o(---*)o(----)o(-*-)o(----)o
+(*)390 4717 y(1)g(^)382 b(*-----*-----*-----*-----)o(*---)o(--*-)o(---)
+o(-*--)o(---*)o(---)o(--*)390 4821 y(2)47 b(|)668 b(+->)47
+b(*-----*-----*-----*-----*)o(----)o(-*--)o(---)o(*---)o(--*-)o(---)o
+(-*)390 4925 y(3)g(|)668 b(|)573 b(*-----*-----*-----*-----)o(*--)o
+(---*)o(----)o(-*-)o(----)o(*---)o(--*)390 5029 y(4)47
+b(|)668 b(|)859 b(+->)47 b(*-----*-----*-----*-----*)o(---)o(--*-)o
+(----)o(*--)o(-)390 5132 y(5)g(|)668 b(|)859 b(|)573
+b(*-----*-----*-----*----)o(-*--)o(---)o(*)390 5236 y(6)47
+b(|)668 b(|)859 b(|)716 b(+->)47 b(*-----*-----*-----*----)o(-)390
+5340 y(7)g(|)668 b(|)859 b(|)716 b(|)572 b(*-----*-----*--)p
+eop
+%%Page: 52 57
+52 56 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(52)485 299 y Fr(|)668
+b(|)859 b(|)620 b(start)47 b(of)g(pass)g(block)f(1)485
+403 y(|)668 b(|)859 b(|)620 b(\(offset)46 b(returns)g(to)h(0\))485
+506 y(|)668 b(|)859 b(start)47 b(of)g(subblock)e(2)j(\(offset)e(2)h
+(rows\))485 610 y(|)668 b(start)47 b(of)g(subblock)e(1)j(\(following)d
+(passes)h(offset)g(by)h(1)h(row\))485 714 y(start)f(of)g(passblock)e
+(0,)i(subblock)f(0)h(\(pass)g(start)f(calculated)f(as)i(p*J\))150
+857 y Fc(S)30 b Fu(=)25 b(9,)31 b Fc(J)k Fu(=)25 b(6,)31
+b Fc(G)25 b Fu(=)g(3,)31 b Fc(B)f Fu(=)25 b(3:)390 994
+y Fr(0)47 b(*--------*--------*-------)o(-*--)o(---)o(---*)o(----)o
+(---)o(-*)390 1098 y(1)334 b(*--------*--------*-----)o(---)o(*---)o
+(----)o(-*-)o(----)o(---*)390 1201 y(2)620 b(*--------*--------*------)
+o(--*-)o(---)o(----)o(*---)o(---)o(--*)390 1305 y(3)954
+b(*--------*--------*------)o(--*-)o(----)o(---)o(*---)o(----)o(-*)390
+1409 y(4)1241 b(*--------*--------*----)o(----)o(*--)o(----)o(--*-)o
+(---)o(----)o(*)390 1513 y(5)1527 b(*--------*--------*-----)o(---*)o
+(----)o(---)o(-*--)o(----)o(--*)390 1616 y(6)1861 b
+(*--------*--------*------)o(--*)o(----)o(----)o(*--)o(-)390
+1720 y(7)2147 b(*--------*--------*-------)o(-*--)o(---)o(-)390
+1824 y(8)2434 b(*--------*--------*-----)o(---)o(*)390
+1928 y(9)2625 b(*--------*--------*----)o(-)390 2032
+y(10)2386 b(\\---/)237 b(*--------*--------)390 2135
+y(11)2243 b(small)46 b(offset)332 b(*--------*--)390
+2239 y(12)3484 b(*----)275 2382 y Fu(This)25 b(metho)s(d)i(of)g(c)m(ho)
+s(osing)g(o\013sets)h(for)g(subblo)s(c)m(ks)d(can)j(result)e(in)g(an)h
+(o)s(ccasional)g(small)f(o\013set)i(\(as)150 2491 y(sho)m(wn)i(ab)s(o)m
+(v)m(e\))h(b)s(et)m(w)m(een)g(one)f(pass)g(and)g(the)g(next,)h
+(particularly)c(when)j Fc(G)g Fu(is)f(large)i(compared)f(to)h
+Fc(J)9 b Fu(.)150 2601 y(F)-8 b(or)31 b(example:)150
+2744 y Fc(S)f Fu(=)25 b(8,)31 b Fc(J)k Fu(=)25 b(4,)31
+b Fc(G)25 b Fu(=)g(4,)31 b Fc(B)f Fu(=)25 b(2:)390 2881
+y Fr(0)47 b(*-------*-------*-------*)390 2985 y(1)238
+b(*-------*-------*-------*)390 3088 y(2)477 b
+(*-------*-------*-------)o(*)390 3192 y(3)668 b
+(*-------*-------*-------)o(*)390 3296 y(4)907 b
+(*-------*-------*------)o(-*)390 3400 y(5)1097 b
+(*-------*-------*-------*)390 3504 y(6)1336 b
+(*-------*-------*-------*)390 3607 y(7)1527 b
+(*-------*-------*-------)o(*)390 3711 y(8)1575 b
+(*-------*-------*------)o(-*)390 3815 y(9)1527 b(\\/)143
+b(*-------*-------*------)o(-*)1822 3919 y(very)46 b(small)h(offset!)
+275 4061 y Fu(W)-8 b(e)31 b(can)g(plot)f(the)g(o\013set)i(against)e
+(the)h(subblo)s(c)m(k)e(n)m(um)m(b)s(er)g(as)h(follo)m(ws:)390
+4198 y Fr(subblock)46 b(number)390 4302 y(|)h(offset)390
+4406 y(|)g(|)390 4510 y(|)g(0123)390 4614 y(0)g(*)390
+4717 y(1)95 b(*)390 4821 y(2)143 b(*)390 4925 y(3)191
+b(*)390 5029 y(0)47 b(*)390 5132 y(1)95 b(*)390 5236
+y(2)143 b(*)390 5340 y(3)191 b(*)p eop
+%%Page: 53 58
+53 57 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(53)150 299 y(The)30
+b(discon)m(tin)m(uit)m(y)f(in)g(this)g(plot)h(results)f(in)g(the)i
+(small)e(o\013set)i(b)s(et)m(w)m(een)g(passes.)275 432
+y(As)36 b(w)m(e)h(said)f(at)i(the)e(b)s(eginning,)g(w)m(e)h(w)m(an)m(t)
+h(the)f(o\013sets)h(from)e(eac)m(h)i(pass)e(to)h(the)g(next)g(to)h(b)s
+(e)e(as)150 541 y(similar)21 b(as)i(p)s(ossible.)36 b(W)-8
+b(e)25 b(can)e(\014x)g(this)f(b)m(y)i(calculating)e(the)i(o\013set)g
+(for)f(a)h(giv)m(en)f(subblo)s(c)m(k)f(b)h(as)h(follo)m(ws:)485
+669 y Fr(offset\(b\))46 b(=)h(2*b)620 b(,)47 b(if)g(b)h(<)f
+(ceiling\(G/2\))963 772 y(=)g(2*\(G-b\)-1)332 b(,)47
+b(otherwise)275 905 y Fu(W)-8 b(e)31 b(can)g(visualise)d(this)h(as)i
+(follo)m(ws,)f(for)g Fc(G)25 b Fu(=)g(10:)485 1033 y
+Fr(0123456789)390 1136 y(0)47 b(*)390 1240 y(1)143 b(*)390
+1344 y(2)238 b(*)390 1448 y(3)334 b(*)390 1551 y(4)429
+b(*)390 1655 y(5)477 b(*)390 1759 y(6)382 b(*)390 1863
+y(7)286 b(*)390 1967 y(8)191 b(*)390 2070 y(9)95 b(*)390
+2174 y(0)47 b(*)390 2278 y(1)143 b(*)390 2382 y(2)238
+b(*)390 2485 y(3)334 b(*)390 2589 y(4)429 b(*)390 2693
+y(5)477 b(*)390 2797 y(6)382 b(*)390 2901 y(7)286 b(*)390
+3004 y(8)191 b(*)390 3108 y(9)95 b(*)150 3241 y Fu(and)30
+b(for)g Fc(G)c Fu(=)f(11:)1010 3368 y Fr(1)533 3472 y(01234567890)438
+3576 y(0)47 b(*)438 3680 y(1)143 b(*)438 3783 y(2)238
+b(*)438 3887 y(3)334 b(*)438 3991 y(4)429 b(*)438 4095
+y(5)524 b(*)438 4198 y(6)477 b(*)438 4302 y(7)381 b(*)438
+4406 y(8)286 b(*)438 4510 y(9)190 b(*)390 4614 y(10)95
+b(*)438 4717 y(0)47 b(*)438 4821 y(1)143 b(*)438 4925
+y(2)238 b(*)438 5029 y(3)334 b(*)438 5132 y(4)429 b(*)438
+5236 y(5)524 b(*)438 5340 y(6)477 b(*)p eop
+%%Page: 54 59
+54 58 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(54)438 299 y Fr(7)381
+b(*)438 403 y(8)286 b(*)438 506 y(9)190 b(*)390 610 y(10)95
+b(*)150 747 y Fu(This)29 b(giv)m(es)h(a)h(w)m(ea)m(v)m(e)i(lo)s(oking)c
+(lik)m(e)h(this:)150 884 y Fc(S)g Fu(=)25 b(12,)32 b
+Fc(J)i Fu(=)25 b(6,)31 b Fc(G)26 b Fu(=)f(6,)31 b Fc(B)f
+Fu(=)24 b(2:)390 1015 y Fr(0)47 b(*-----------*-----------*-)o(----)o
+(---)o(---*)o(----)o(---)o(----)o(*---)o(---)o(----)o(-*)390
+1119 y(1)334 b(*-----------*-----------)o(*--)o(----)o(----)o(-*-)o
+(----)o(----)o(--*)o(----)o(----)o(---)o(*)390 1222 y(2)716
+b(*-----------*----------)o(-*--)o(---)o(----)o(--*-)o(---)o(----)o
+(---*)o(---)o(----)o(----)o(*)390 1326 y(3)1002 b
+(*-----------*-----------)o(*---)o(----)o(---)o(-*--)o(----)o(---)o
+(--*-)o(----)o(---)o(-)390 1430 y(4)1384 b(*-----------*-----------)o
+(*--)o(----)o(----)o(-*-)o(----)o(----)o(--*)o(-)390
+1534 y(5)1670 b(*-----------*-----------*)o(----)o(---)o(----)o(*---)o
+(---)o(-)390 1638 y(6)2004 b(*-----------*-----------*)o(----)o(----)o
+(---)o(*)390 1741 y(7)2291 b(*-----------*----------)o(-*--)o(---)o(-)
+390 1845 y(8)2482 b(*-----------*----------)o(-*-)o(-)390
+1949 y(9)2768 b(*-----------*--------)390 2053 y(10)2911
+b(*-----------*----)390 2156 y(11)3197 b(*----------)390
+2260 y(12)3436 b(*-----)275 2397 y Fu(This)28 b(metho)s(d)i(ensures)f
+(that)i(the)f(o\013set)i(b)s(et)m(w)m(een)f(passes)f(is)f(alw)m(a)m(ys)
+i(in)e(the)h(range)h([)p Fc(J)f Fs(\000)19 b Fu(2)p Fc(;)c(J)9
+b Fu(+)q(2].)275 2534 y(\(This)30 b(migh)m(t)h(seem)h(o)s(dd,)f(but)f
+(it)h(o)s(ccurs)h(to)g(me)g(that)g(a)g(go)s(o)s(d)f(w)m(ea)m(v)m(e)j
+(pattern)d(migh)m(t)g(also)h(mak)m(e)150 2643 y(a)e(go)s(o)s(d)f(score)
+h(for)f(b)s(ell)e(ringers.)40 b(When)29 b(c)m(h)m(urc)m(h)g(b)s(ells)e
+(are)j(rung,)f(a)h(list)e(of)h(\\c)m(hanges")j(are)e(used.)39
+b(F)-8 b(or)150 2753 y(example,)28 b(if)d(8)j(b)s(ells)c(are)k(b)s
+(eing)d(used,)i(they)h(will,)d(at)i(\014rst,)h(b)s(e)e(rung)g(in)f
+(order:)39 b(12345678.)k(If)27 b(the)g(\014rst)150 2863
+y(c)m(hange)k(is)d(for)h(b)s(ells)e(5)j(and)f(6,)h(the)g(b)s(ells)d
+(will)g(then)i(b)s(e)g(rung)f(in)h(the)g(order)g(12346578.)44
+b(If)29 b(the)h(second)150 2972 y(c)m(hange)j(is)d(1)j(and)e(2,)h(the)g
+(next)g(notes)g(are)g(21346578.)48 b(After)32 b(a)g(long)f(list)g(of)h
+(c)m(hanges,)h(the)f(order)f(the)150 3082 y(b)s(ells)d(are)j(rung)e(in)
+g(can)i(b)s(ecome)g(quite)f(complex.)275 3219 y(F)-8
+b(or)29 b(a)g(group)f(of)h(b)s(ell-ringers)d(to)j(c)m(hange)h(the)f
+(order)f(of)h(the)g(notes,)g(they)g(m)m(ust)g(eac)m(h)h(either)e(dela)m
+(y)150 3328 y(their)g(b)s(ell's)f(next)i(ring,)f(hasten)h(it,)g(or)g(k)
+m(eep)h(it)e(the)i(same)f(as)g(the)g(time)g(it)f(tak)m(es)j(to)f(ring)d
+(all)h(the)h(b)s(ells)150 3438 y(once.)40 b(The)27 b(length)f(of)h
+(time)g(b)s(et)m(w)m(een)g(eac)m(h)i(ring)c(of)i(a)h(giv)m(en)f(b)s
+(ell)d(can)k(only)e(b)s(e)g(c)m(hanged)i(a)f(little)f(eac)m(h)150
+3547 y(time,)39 b(though;)h(with)c(an)h(ink-jet)g(w)m(ea)m(v)m(e)i
+(pattern,)h(w)m(e)d(w)m(an)m(t)h(the)g(same)f(to)h(apply)e(to)i(the)f
+(distance)150 3657 y(b)s(et)m(w)m(een)31 b(passes.\))275
+3794 y(Finally)-8 b(,)44 b(kno)m(wing)f(the)g(n)m(um)m(b)s(er)e(of)j
+(jets)f Fc(J)52 b Fu(and)42 b(their)g(separation)h Fc(S)5
+b Fu(,)47 b(w)m(e)c(can)g(calculate)h(the)150 3903 y(starting)30
+b(ro)m(w)h(of)f(an)m(y)h(giv)m(en)f(pass)g Fc(p)g Fu(as)h(follo)m(ws:)
+390 4034 y Fr(passesperblock)44 b(=)j(S)390 4138 y(passblock)e(=)j
+(floor\(p)e(/)h(passesperblock\))390 4242 y(offsetinpassblock)c(=)48
+b(p)f(-)g(passblock)f(*)h(passesperblock)390 4346 y(subblocksperblock)c
+(=)48 b(gcd\(S,)e(J\))390 4449 y(passespersubblock)d(=)48
+b(S)f(/)g(subblocksperblock)390 4553 y(subpassblock)d(=)k
+(floor\(offsetinpassblock)41 b(/)48 b(passespersubblock\))390
+4657 y(if)f(subpassblock)e(<)i(ceiling\(subblocksperblock)o(/2\))581
+4761 y(subblockoffset)d(=)j(2*subpassblock)390 4865 y(else)581
+4968 y(subblockoffset)d(=)j(2*\(subblocksperblock-subp)o(assb)o(lock)o
+(\)-1)390 5072 y(startingrow)e(=)i(passblock)e(*)j(S)f(*)h(J)f(+)h
+(offsetinpassblock)43 b(*)k(J)h(+)f(subblockoffset)275
+5209 y Fu(W)-8 b(e)31 b(can)g(simplify)c(this)i(do)m(wn)h(to)h(the)g
+(follo)m(wing:)390 5340 y Fr(subblocksperblock)43 b(=)48
+b(gcd\(S,)e(J\))p eop
+%%Page: 55 60
+55 59 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(55)390 299 y Fr(subpassblock)44
+b(=)k(floor\(\(p)d(\045)j(S\))f(*)h(subblocksperblock)43
+b(/)k(S\))390 403 y(if)g(subpassblock)e(*)i(2)h(<)f(subblocksperblock)
+581 506 y(subblockoffset)d(=)j(2*subpassblock)390 610
+y(else)581 714 y(subblockoffset)d(=)j(2*\(subblocksperblock-subp)o
+(assb)o(lock)o(\)-1)390 818 y(startingrow)e(=)i(p)h(*)f(J)h(+)f
+(subblockoffset)275 956 y Fu(So)30 b(the)g(ro)m(w)h(n)m(um)m(b)s(er)e
+(of)h(jet)h Fc(j)36 b Fu(of)31 b(pass)f Fc(p)g Fu(is)390
+1088 y Fr(subblocksperblock)43 b(=)48 b(gcd\(S,)e(J\))390
+1295 y(subblockoffset\(p\))581 1399 y(=)h(2*subpassblock)331
+b(,)47 b(if)g(subpassblock)e(*)i(2)h(<)f(subblocksperblock)581
+1503 y(=)g(2*\(subblocksperblock-subpa)o(ssb)o(lock)o(\)-1)280
+b(,)47 b(otherwise)676 1607 y(where)676 1710 y(subpassblock)e(=)i
+(floor\(\(p)f(\045)h(S\))g(*)h(subblocksperblock)43 b(/)k(S\))390
+1918 y(row\(j,)f(p\))h(=)h(p)f(*)h(J)f(+)h(subblockoffset\(p\))43
+b(+)k(j)h(*)f(S)275 2056 y Fu(T)-8 b(ogether)26 b(with)e(the)h
+(inequalit)m(y)f(0)p Fc(<)h Fu(=)g Fc(j)5 b(<)q(J)k Fu(,)26
+b(w)m(e)g(can)g(use)f(this)f(de\014nition)f(in)h(rev)m(erse)i(to)g
+(calculate)150 2166 y(the)35 b(pass)g(n)m(um)m(b)s(er)e(con)m(taining)i
+(a)g(giv)m(en)g(ro)m(w,)h Fc(r)s Fu(.)54 b(W)-8 b(orking)35
+b(out)g(the)g(in)m(v)m(erse)g(de\014nition)e(in)m(v)m(olv)m(es)i(a)150
+2275 y(little)28 b(guessw)m(ork,)i(but)e(one)h(p)s(ossible)e(result)h
+(is)g(as)i(follo)m(ws.)39 b(Giv)m(en)29 b(a)g(ro)m(w,)h
+Fc(r)s Fu(,)f(whic)m(h)f(is)g(kno)m(wn)h(to)h(b)s(e)150
+2385 y(the)h(\014rst)e(ro)m(w)i(of)f(a)h(pass,)f(w)m(e)h(can)g
+(calculate)g(the)f(pass)g(n)m(um)m(b)s(er)f(as)i(follo)m(ws:)390
+2517 y Fr(subblocksperblock)43 b(=)48 b(gcd\(S,)e(J\))390
+2621 y(subblockoffset)e(=)j(r)h(\045)f(subblocksperblock)390
+2724 y(pass)g(=)g(\(r)g(-)h(subblockoffset\))43 b(/)48
+b(J)275 2862 y Fu(If)29 b Fc(G)d Fu(==)f(1,)31 b(w)m(e)g(can)f
+(determine)g(the)g(pass)g(n)m(um)m(b)s(er)f(with)h(this)f(algorithm:)
+390 2994 y Fr(offset)46 b(=)i(r)f(\045)g(J)390 3098 y(pass)g(=)g(\(r)g
+(-)h(offset\))e(/)h(J)390 3202 y(while)f(\(offset)g(\045)i(S)f(!=)g
+(0\))390 3306 y({)485 3410 y(pass--)485 3513 y(offset)g(+=)g(J)390
+3617 y(})390 3721 y(jet)g(=)g(offset)f(/)i(S)275 3859
+y Fu(Generalising,)28 b(w)m(e)j(come)h(up)d(with)g(this)g(algorithm.)40
+b(Giv)m(en)30 b Fc(r)s Fu(,)g Fc(S)36 b Fu(and)29 b Fc(J)9
+b Fu(:)390 3991 y Fr(G)47 b(=)h(gcd\(S,)e(J\))390 4095
+y(passespersubblock)d(=)48 b(S/G)390 4198 y(subblockoffset)c(=)j(r)h
+(\045)f(G)390 4302 y(subpassblock)d(=)k(subblockoffset)c(/)j(2)95
+b(,)48 b(if)f(subblockoffset)d(\045)j(2)h(==)f(0)1010
+4406 y(=)h(G)f(-)h(\(subblockoffset+1\)/2)185 b(,)48
+b(otherwise)390 4510 y(baserow)e(=)h(r)h(-)f(subblockoffset)d(-)k
+(\(subpassblock)c(*)j(passespersubblock)c(*)48 b(J\))390
+4614 y(offset)e(=)i(baserow)d(\045)j(J)390 4717 y(pass)f(=)g(\(baserow)
+f(-)h(offset\))f(/)h(J)390 4821 y(while)f(\(offset)g(\045)i(S)f(!=)g
+(0\))390 4925 y({)485 5029 y(offset)g(+=)g(J)485 5132
+y(pass)g(-=)g(1)390 5236 y(})390 5340 y(subblockretreat)d(=)j
+(floor\(pass)e(/)j(passespersubblock\))42 b(\045)48 b(G)p
+eop
+%%Page: 56 61
+56 60 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(56)390 299 y Fr(pass)47
+b(-=)g(subblockretreat)c(*)48 b(passespersubblock)390
+403 y(pass)f(+=)g(subpassblock)d(*)k(passespersubblock)390
+506 y(jet)f(=)g(\(r)h(-)f(subblockoffset)d(-)j(pass)g(*)g(J\))h(/)f(S)
+275 646 y Fu(Let's)31 b(lo)s(ok)e(at)j(some)e(examples)g(of)h(imp)s
+(erfect)e(but)h(correct)h(w)m(ea)m(v)m(e)i(patterns:)150
+785 y Fc(S)d Fu(=)25 b(6,)31 b Fc(J)k Fu(=)25 b(4,)31
+b(GCD)25 b(=)g(2,)150 895 y(passesp)s(erblo)s(c)m(k=)p
+Fc(S)5 b Fu(=6,)150 1005 y(passesp)s(ersubblo)s(c)m(k=)p
+Fc(S=G)p Fu(=6/2=3:)390 1138 y Fr(0)47 b(*-----*-----*-----*)390
+1242 y(1)238 b(*-----*-----*-----*)390 1346 y(2)429 b
+(*-----*-----*-----*)390 1450 y(3)668 b(*-----*-----*-----*)390
+1553 y(4)859 b(*-----*-----*-----*)390 1657 y(5)1050
+b(*-----*-----*-----*)390 1761 y(6)1193 b(*-----*-----*-----*)390
+1865 y(7)1384 b(*-----*-----*-----*)390 1968 y(8)1575
+b(*-----*-----*-----*)390 2072 y(9)1813 b(*-----*-----*-----*)390
+2176 y(10)1956 b(*-----*-----*-----*)390 2280 y(11)2147
+b(*-----*-----*-----*)390 2384 y(12)2290 b(*-----*-----*-----*)390
+2487 y(13)2481 b(*-----*-----*-----*)390 2591 y(14)2672
+b(*-----*-----*-----*)390 2695 y(15)2911 b(*-----*-----*----)390
+2799 y(16)3102 b(*-----*-----*)390 2902 y(17)3293 b(*-----*--)390
+3006 y(18)3436 b(*-----)390 3110 y(19)3627 b(*-)150 3249
+y Fc(S)30 b Fu(=)25 b(8,)31 b Fc(J)k Fu(=)25 b(6,)31
+b Fc(G)25 b Fu(=)g(2,)150 3359 y(passesp)s(erblo)s(c)m(k=)p
+Fc(S)5 b Fu(=8,)150 3469 y(passesp)s(ersubblo)s(c)m(k=)p
+Fc(S=G)p Fu(=8/2=4:)390 3602 y Fr(0)47 b(*-------*-------*-------*-)o
+(----)o(--*)o(----)o(---*)390 3706 y(1)334 b(*-------*-------*-------)o
+(*--)o(----)o(-*--)o(---)o(--*)390 3810 y(2)620 b
+(*-------*-------*-------*)o(----)o(---)o(*---)o(----)o(*)390
+3914 y(3)907 b(*-------*-------*------)o(-*-)o(----)o(--*-)o(---)o
+(---*)390 4017 y(4)1241 b(*-------*-------*------)o(-*--)o(---)o(--*-)o
+(----)o(--*)390 4121 y(5)1527 b(*-------*-------*-------)o(*---)o(----)
+o(*--)o(----)o(-*)390 4225 y(6)1813 b(*-------*-------*-------*-)o(---)
+o(---*)o(----)o(---)o(*)390 4329 y(7)2100 b(*-------*-------*------)o
+(-*--)o(----)o(-*-)o(-)390 4433 y(8)2338 b(*-------*-------*-------*-)o
+(---)o(-)390 4536 y(9)2625 b(*-------*-------*------)o(-)390
+4640 y(10)2863 b(*-------*-------*-)390 4744 y(11)3149
+b(*-------*---)390 4848 y(12)3484 b(*----)150 4987 y
+Fc(S)30 b Fu(=)25 b(6,)31 b Fc(J)k Fu(=)25 b(12,)31 b
+Fc(G)26 b Fu(=)f(6,)150 5097 y(passesp)s(erblo)s(c)m(k=)p
+Fc(S)5 b Fu(=6,)150 5206 y(passesp)s(ersubblo)s(c)m(k=)p
+Fc(S=G)p Fu(=6/6=1:)390 5340 y Fr(0)47 b(*-----*-----*-----*-----*-)o
+(----)o(*--)o(---*)o(----)o(-*-)o(----)o(*---)o(--*)o(----)o(-*--)o
+(---)o(*)p eop
+%%Page: 57 62
+57 61 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(57)390 299 y Fr(1)716
+b(*-----*-----*-----*----)o(-*--)o(---)o(*---)o(--*-)o(---)o(-*--)o
+(---*)o(---)o(--*-)o(----)o(*--)o(-)390 403 y(2)1384
+b(*-----*-----*-----*-----)o(*--)o(---*)o(----)o(-*-)o(----)o(*---)o
+(--*)o(-)390 506 y(3)2004 b(*-----*-----*-----*-----*)o(----)o(-*--)o
+(---)o(*)390 610 y(4)2482 b(*-----*-----*-----*----)o(-*-)o(-)390
+714 y(5)2959 b(*-----*-----*----)390 818 y(6)3484 b(*-----)275
+962 y Fu(W)-8 b(e)34 b(ha)m(v)m(e)h(no)m(w)f(solv)m(ed)f(the)h(basic)f
+(w)m(ea)m(ving)h(problem.)49 b(There)33 b(are)h(t)m(w)m(o)h(further)d
+(re\014nemen)m(ts)h(w)m(e)150 1071 y(need)d(to)h(consider:)40
+b(o)m(v)m(ersampling,)30 b(and)g(\014lling)d(in)i(the)i(missing)d(ro)m
+(ws)i(at)h(the)g(start)g(of)g(the)f(w)m(ea)m(v)m(e.)150
+1315 y Fg(B.2.5)63 b(Ov)m(ersampling)275 1517 y Fu(By)37
+b(o)m(v)m(ersampling,)i(w)m(e)f(mean)f(prin)m(ting)e(on)i(the)h(same)g
+(ro)m(w)f(more)h(than)f(once.)62 b(There)37 b(are)h(t)m(w)m(o)150
+1626 y(reasons)25 b(for)g(o)m(v)m(ersampling:)38 b(to)26
+b(increase)f(the)h(horizon)m(tal)e(resolution)g(of)i(the)f(prin)m(tout)
+f(and)h(to)h(reduce)150 1736 y(banding.)275 1880 y(Ov)m(ersampling)21
+b(to)k(increase)e(horizon)m(tal)h(resolution)e(is)h(necessary)h(b)s
+(ecause,)h(although)e(the)h(prin)m(ter)150 1990 y(migh)m(t)30
+b(b)s(e)h(able)f(to)h(p)s(osition)e(an)i(ink)e(drop)h(to,)h(for)g
+(example,)g(1/1440)p Fr(")i Fu(horizon)m(tally)-8 b(,)30
+b(it)g(ma)m(y)i(not)f(b)s(e)150 2099 y(able)37 b(to)g(la)m(y)h(do)m(wn)
+e(t)m(w)m(o)j(suc)m(h)d(drops)g(1/1440)p Fr(")k Fu(apart.)61
+b(If)36 b(it)h(can)g(prin)m(t)f(t)m(w)m(o)i(drops)e(1/720)p
+Fr(")j Fu(apart,)150 2209 y(2x)g(o)m(v)m(ersampling)g(will)d(b)s(e)j
+(necessary)h(to)f(get)i(a)e(1/1440)p Fr(")j Fu(horizon)m(tal)c
+(resolution.)66 b(If)39 b(it)f(can)i(only)150 2318 y(prin)m(t)33
+b(t)m(w)m(o)i(drops)e(1/360)p Fr(")j Fu(apart,)f(4x)g(o)m(v)m
+(ersampling)e(will)f(b)s(e)h(necessary)i(for)e(a)i(1/1440)p
+Fr(")h Fu(horizon)m(tal)150 2428 y(resolution.)j(The)29
+b(prin)m(ter)f(enforces)i(this)f(\\drop)g(spacing")g(b)m(y)h(only)f
+(accepting)h(raster)g(passes)f(with)g(a)150 2538 y(horizon)m(tal)k
+(resolution)e(matc)m(hing)j(the)f(spacing)f(with)g(whic)m(h)g(it)g(can)
+i(prin)m(t)d(dots,)k(so)e(w)m(e)g(m)m(ust)g(prin)m(t)150
+2647 y(passes)k(at)h(di\013eren)m(t)e(horizon)m(tal)h(p)s(ositions)e
+(if)h(w)m(e)i(are)g(to)f(obtain)g(a)h(higher)d(horizon)m(tal)i
+(resolution.)150 2757 y(\(Another)24 b(reason)g(it)f(do)s(es)g(this)g
+(ma)m(y)h(b)s(e)f(to)i(reduce)e(the)h(amoun)m(t)g(of)g(memory)f(needed)
+h(in)e(the)i(prin)m(ter.\))275 2901 y(Ov)m(ersampling)42
+b(can)j(also)f(b)s(e)g(done)g(to)h(decrease)g(the)g(banding)d(apparen)m
+(t)j(in)e(an)h(image.)83 b(By)150 3010 y(splitting)32
+b(a)j(ro)m(w)f(in)m(to)h(t)m(w)m(o)g(or)g(more)f(sets)h(of)g(dots)f
+(\(\\lines"\))g(and)g(prin)m(ting)e(eac)m(h)k(line)d(on)h(the)h(same)
+150 3120 y(ro)m(w,)c(but)e(with)g(a)i(di\013eren)m(t)f(nozzle)h(for)f
+(eac)m(h)h(line,)e(w)m(e)i(can)g(get)g(a)g(smo)s(other)f(prin)m(t.)275
+3264 y(T)-8 b(o)23 b(quan)m(tify)f(these)h(t)m(w)m(o)h(kinds)d(of)i(o)m
+(v)m(ersampling,)h(w)m(e'll)e(in)m(tro)s(duce)f(t)m(w)m(o)j(new)f
+(constan)m(ts:)38 b Fc(H)29 b Fu(sho)m(ws)150 3374 y(ho)m(w)k(man)m(y)h
+(di\013eren)m(t)e(horizon)m(tal)h(o\013sets)h(w)m(e)g(w)m(an)m(t)g(to)g
+(prin)m(t)e(at)i(\(the)f(\\horizon)m(tal)h(o)m(v)m(ersampling"\))150
+3483 y(while)c Fc(O)35 b Fu(sho)m(ws)d(ho)m(w)h(man)m(y)f(times)g(w)m
+(e)h(w)m(an)m(t)g(to)g(prin)m(t)e(eac)m(h)i(ro)m(w,)g(o)m(v)m(er)h(and)
+e(ab)s(o)m(v)m(e)h(the)g(n)m(um)m(b)s(er)e(of)150 3593
+y(times)f(necessary)h(for)f(horizon)m(tal)g(o)m(v)m(ersampling)g(\(the)
+h(\\extra)g(o)m(v)m(ersampling"\).)275 3737 y(It)26 b(is)f(necessary)i
+(for)f(all)g(the)g(lines)f(prin)m(ted)g(b)m(y)h(a)h(giv)m(en)f(pass)g
+(to)i(ha)m(v)m(e)f(the)g(same)g(horizon)m(tal)f(o\013set,)150
+3846 y(but)32 b(there)h(need)g(not)g(b)s(e)f(an)m(y)i(relation)e(b)s
+(et)m(w)m(een)h(them)g(in)f(terms)h(of)g(extra)g(o)m(v)m(ersampling.)48
+b(F)-8 b(or)34 b(the)150 3956 y(momen)m(t,)29 b(ho)m(w)m(ev)m(er,)h(w)m
+(e)e(will)e(treat)i(all)f(o)m(v)m(ersampling)g(as)h(p)s(oten)m(tially)f
+(requiring)e(this)i(alignmen)m(t;)h(all)150 4066 y(lines)i(in)h(one)i
+(pass)f(m)m(ust)g(b)s(e)f(deriv)m(ed)h(from)f(the)i(original)d(ro)m(w)i
+(data)h(in)e(the)i(same)f(w)m(a)m(y)-8 b(.)48 b(Th)m(us,)32
+b(w)m(e'll)150 4175 y(assume)e Fc(O)e Fu(=)d(1)31 b(for)f(no)m(w.)275
+4319 y(So,)j(ho)m(w)f(do)g(w)m(e)h(do)f(this)g(o)m(v)m(ersampling?)45
+b(In)32 b(fact,)i(it)e(can)h(b)s(e)e(done)i(easily:)43
+b(adv)-5 b(ance)33 b(the)g(pap)s(er)150 4429 y(b)m(y)42
+b(a)g(factor)g(of)g Fc(H)49 b Fu(less)41 b(b)s(et)m(w)m(een)h(eac)m(h)h
+(pass.)74 b(W)-8 b(e'll)42 b(de\014ne)f(a)h(new)f(v)-5
+b(ariable,)44 b Fc(A)p Fu(,)h(to)d(sho)m(w)g(ho)m(w)150
+4538 y(m)m(uc)m(h)31 b(w)m(e)g(adv)-5 b(ance)32 b(the)f(pap)s(er)f(b)s
+(et)m(w)m(een)i(passes.)42 b(Previously)-8 b(,)30 b(w)m(e'd)h(ha)m(v)m
+(e)i(de\014ned)c Fc(A)e Fu(=)f Fc(J)9 b Fu(;)31 b(w)m(e)h(no)m(w)150
+4648 y(let)37 b Fc(A)e Fu(=)h Fc(J)t(=H)7 b Fu(.)60 b(This)35
+b(also)h(a\013ects)i(our)e(pass)h(blo)s(c)m(ks.)58 b(Prin)m(ting)35
+b(one)i(pass)f(blo)s(c)m(k)h(used)e(to)j(in)m(v)m(olv)m(e)150
+4758 y(adv)-5 b(ancing)35 b(the)i(pap)s(er)d Fc(S)29
+b Fs(\003)c Fc(J)45 b Fu(ro)m(ws;)39 b(it)c(no)m(w)h(adv)-5
+b(ances)37 b(the)f(pap)s(er)f Fc(S)29 b Fs(\003)24 b
+Fc(J)t(=H)44 b Fu(ro)m(ws.)57 b(W)-8 b(e)37 b(therefore)150
+4867 y(name)31 b(a)g(group)f(of)g Fc(H)38 b Fu(pass)30
+b(blo)s(c)m(ks)g(a)h(\\band".)41 b(Prin)m(ting)28 b(one)j(band)f(in)m
+(v)m(olv)m(es)g(adv)-5 b(ancing)30 b(the)h(pap)s(er)150
+4977 y Fc(S)25 b Fs(\003)c Fc(J)39 b Fu(ro)m(ws,)31 b(as)g(a)f(pass)g
+(blo)s(c)m(k)g(did)f(b)s(efore.)275 5121 y(T)-8 b(o)28
+b(k)m(eep)g(our)f(w)m(ea)m(v)m(e)j(pattern)e(w)m(orking)f(correctly)-8
+b(,)29 b(so)f(that)g(o)m(v)m(erprin)m(ting)f(do)s(es)g(not)h(o)s(ccur)f
+(within)150 5230 y(a)c(pass)g(blo)s(c)m(k,)h(w)m(e)g(also)f(ha)m(v)m(e)
+h(to)g(rede\014ne)e Fc(G)h Fu(as)h(GCD\()p Fc(S;)15 b(A)p
+Fu(\).)40 b(Here's)23 b(an)g(example)g(of)g(an)g(o)m(v)m(ersampled)150
+5340 y(w)m(ea)m(v)m(e)33 b(pattern:)p eop
+%%Page: 58 63
+58 62 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(58)150 299 y Fc(S)30
+b Fu(=)25 b(4,)31 b Fc(J)k Fu(=)25 b(10,)31 b Fc(H)h
+Fu(=)25 b(2,)31 b Fc(A)26 b Fu(=)f Fc(J)t(=H)32 b Fu(=)25
+b(10)p Fc(=)p Fu(2)i(=)e(5,)31 b Fc(G)26 b Fu(=)f(GCD\(4)p
+Fc(;)15 b Fu(5\))28 b(=)d(1,)150 408 y(passesp)s(erblo)s(c)m(k=)p
+Fc(S)5 b Fu(=4,)150 518 y(passesp)s(ersubblo)s(c)m(k=)p
+Fc(S=G)p Fu(=4/1=4:)390 656 y Fr(0)47 b(*---*---*---*---*---*---*-)o
+(--*-)o(--*)o(---*)390 760 y(1)286 b(*---*---*---*---*---*---*)o(---)o
+(*---)o(*---)o(*)390 863 y(2)525 b(*---*---*---*---*---*--)o(-*--)o
+(-*--)o(-*-)o(--*)390 967 y(3)763 b(*---*---*---*---*---*---*-)o(--*)o
+(---*)o(---*)390 1071 y(4)1002 b(*---*---*---*---*---*---)o(*---)o
+(*---)o(*--)o(-*)390 1175 y(5)1241 b(*---*---*---*---*---*--)o(-*--)o
+(-*-)o(--*-)o(--*)390 1278 y(6)1479 b(*---*---*---*---*---*---*)o(---*)
+o(---*)o(---)o(*)390 1382 y(7)1718 b(*---*---*---*---*---*---)o(*---)o
+(*--)o(-*--)o(-*)390 1486 y(8)1957 b(*---*---*---*---*---*--)o(-*-)o
+(--*-)o(--*-)o(--*)390 1590 y(9)2195 b(*---*---*---*---*---*---*)o
+(---*)o(---)o(*)390 1694 y(10)2386 b(*---*---*---*---*---*---)o(*--)o
+(-)390 1797 y(11)2624 b(*---*---*---*---*---*--)390 1901
+y(12)2863 b(*---*---*---*---*-)390 2005 y(13)3102 b(*---*---*---*)390
+2109 y(14)3340 b(*---*---)390 2212 y(15)3579 b(*--)275
+2356 y Fu(No)m(w)30 b(w)m(e)h(ha)m(v)m(e)g(to)g(determine)e(whic)m(h)g
+(line)g(is)g(prin)m(ted)g(b)m(y)h(eac)m(h)h(jet)f(on)g(eac)m(h)i(pass.)
+40 b(If)30 b(w)m(e)g(n)m(um)m(b)s(er)150 2465 y(eac)m(h)f(line)e
+(generated)i(as)g(w)m(e)f(split)e(up)i(a)g(ro)m(w,)h(w)m(e)g(can)f(use)
+g(these)h(n)m(um)m(b)s(ers.)38 b(W)-8 b(e'll)28 b(n)m(um)m(b)s(er)f
+(the)i(lines)150 2575 y(in)g(our)h(diagram)g(b)m(y)g(replacing)f(the)i
+(`)p Fr(*)p Fu('s)f(with)f(in)m(tegers)i(in)e(the)h(range)h([0)6
+b(.)23 b(.)f(.)11 b Fc(H)27 b Fs(\000)20 b Fu(1].)275
+2719 y(Ov)m(erprin)m(ting)30 b(o)s(ccurs)j(once)g(p)s(er)f(pass)g(blo)s
+(c)m(k,)h(so)g(w)m(e)h(can)f(simply)d(prin)m(t)h(pass)i(blo)s(c)m(k)f
+(0)h(with)f(line)150 2828 y(0,)e(pass)f(blo)s(c)m(k)f(1)h(with)f(line)g
+(1,)h(pass)g(blo)s(c)m(k)g(2)g(with)f(line)f(2,)j(etc,)h(wrapping)26
+b(to)k(0)g(when)e(w)m(e'v)m(e)i(run)e(out)150 2938 y(of)j(lines:)390
+3075 y Fr(0)47 b(0---0---0---0---0---0---0-)o(--0-)o(--0)o(---0)390
+3179 y(1)286 b(0---0---0---0---0---0---0)o(---)o(0---)o(0---)o(0)390
+3283 y(2)525 b(0---0---0---0---0---0--)o(-0--)o(-0--)o(-0-)o(--0)390
+3387 y(3)763 b(0---0---0---0---0---0---0-)o(--0)o(---0)o(---0)390
+3491 y(4)1002 b(1---1---1---1---1---1---)o(1---)o(1---)o(1--)o(-1)390
+3594 y(5)1241 b(1---1---1---1---1---1--)o(-1--)o(-1-)o(--1-)o(--1)390
+3698 y(6)1479 b(1---1---1---1---1---1---1)o(---1)o(---1)o(---)o(1)390
+3802 y(7)1718 b(1---1---1---1---1---1---)o(1---)o(1--)o(-1--)o(-1)390
+3906 y(8)1957 b(0---0---0---0---0---0--)o(-0-)o(--0-)o(--0-)o(--0)390
+4009 y(9)2195 b(0---0---0---0---0---0---0)o(---0)o(---)o(0)390
+4113 y(10)2386 b(0---0---0---0---0---0---)o(0--)o(-)390
+4217 y(11)2624 b(0---0---0---0---0---0--)390 4321 y(12)2863
+b(1---1---1---1---1-)390 4425 y(13)3102 b(1---1---1---1)390
+4528 y(14)3340 b(1---1---)390 4632 y(15)3579 b(1--)150
+4776 y Fc(S)30 b Fu(=)25 b(4,)31 b Fc(J)k Fu(=)25 b(12,)31
+b Fc(H)h Fu(=)25 b(2,)31 b Fc(A)26 b Fu(=)f Fc(J)t(=H)32
+b Fu(=)25 b(12)p Fc(=)p Fu(2)i(=)e(6,)31 b Fc(G)26 b
+Fu(=)f(GCD\(4)p Fc(;)15 b Fu(6\))28 b(=)d(2,)150 4885
+y(passesp)s(erblo)s(c)m(k=)p Fc(S)5 b Fu(=4,)150 4995
+y(passesp)s(ersubblo)s(c)m(k=)p Fc(S=G)p Fu(=4/2=2:)390
+5132 y Fr(0)47 b(0---0---0---0---0---0---0-)o(--0-)o(--0)o(---0)o(---0)
+o(---)o(0)390 5236 y(1)334 b(0---0---0---0---0---0---)o(0--)o(-0--)o
+(-0--)o(-0-)o(--0-)o(--0)390 5340 y(2)668 b(0---0---0---0---0---0---)o
+(0---)o(0--)o(-0--)o(-0--)o(-0-)o(--0)p eop
+%%Page: 59 64
+59 63 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(59)390 299 y Fr(3)954
+b(0---0---0---0---0---0---0)o(---0)o(---0)o(---)o(0---)o(0---)o(0)390
+403 y(4)1193 b(1---1---1---1---1---1---)o(1---)o(1--)o(-1--)o(-1--)o
+(-1-)o(--1)390 506 y(5)1479 b(1---1---1---1---1---1---1)o(---1)o(---1)o
+(---)o(1---)o(1---)o(1)390 610 y(6)1813 b(1---1---1---1---1---1---1-)o
+(--1)o(---1)o(---1)o(---)o(1)390 714 y(7)2100 b
+(1---1---1---1---1---1--)o(-1--)o(-1--)o(-1-)o(-)390
+818 y(8)2338 b(0---0---0---0---0---0---0-)o(--0)o(-)390
+922 y(9)2625 b(0---0---0---0---0---0--)o(-)390 1025 y(10)2911
+b(0---0---0---0---0)390 1129 y(11)3197 b(0---0---0--)390
+1233 y(12)3436 b(1---1-)275 1365 y Fu(But)27 b(what)g(do)h(w)m(e)g(do)f
+(if)f Fc(J)37 b Fu(is)26 b(not)i(an)f(exact)i(m)m(ultiple)c(of)j
+Fc(H)7 b Fu(?)39 b(This)26 b(is)g(a)i(di\016cult)e(problem,)g(whic)m(h)
+150 1474 y(I)i(struggled)g(with)g(for)g(quite)g(a)h(few)g(da)m(ys)f(b)s
+(efore)h(giving)e(in)g(and)h(taking)h(the)g(easy)g(\(but)f(less)g
+(elegan)m(t\))150 1584 y(w)m(a)m(y)34 b(out.)48 b(The)33
+b(easy)g(solution)f(is)g(to)h(round)f Fc(J)t(=H)40 b
+Fu(do)m(wn,)34 b(then)e(add)g(on)h(the)g(accum)m(ulated)h(error)e(at)
+150 1693 y(the)f(end)e(of)i(eac)m(h)g(band.)150 1825
+y Fc(S)f Fu(=)25 b(4,)31 b Fc(J)k Fu(=)25 b(11,)31 b
+Fc(H)h Fu(=)25 b(2)31 b Fc(A)25 b Fu(=)g(\015o)s(or\()p
+Fc(J)t(=H)7 b Fu(\))26 b(=)f(\015o)s(or\(11)p Fc(=)p
+Fu(2\))j(=)d(5,)31 b Fc(G)25 b Fu(=)g(GCD)q(\(4)p Fc(;)15
+b Fu(5\),)150 1935 y(passesp)s(erblo)s(c)m(k=)p Fc(S)5
+b Fu(=4,)150 2044 y(passesp)s(ersubblo)s(c)m(k=)p Fc(S=G)p
+Fu(=4/1=4)390 2171 y Fr(Band)47 b(0:)390 2274 y(0)g
+(0---0---0---0---0---0---0-)o(--0-)o(--0)o(---0)o(---0)390
+2378 y(1)286 b(0---0---0---0---0---0---0)o(---)o(0---)o(0---)o(0--)o
+(-0)390 2482 y(2)525 b(0---0---0---0---0---0--)o(-0--)o(-0--)o(-0-)o
+(--0-)o(--0)390 2586 y(3)763 b(0---0---0---0---0---0---0-)o(--0)o(---0)
+o(---0)o(---)o(0)390 2689 y(4)1002 b(1---1---1---1---1---1---)o(1---)o
+(1---)o(1--)o(-1--)o(-1)390 2793 y(5)1241 b(1---1---1---1---1---1--)o
+(-1--)o(-1-)o(--1-)o(--1-)o(--1)390 2897 y(6)1479 b
+(1---1---1---1---1---1---1)o(---1)o(---1)o(---)o(1---)o(1)390
+3001 y(7)1718 b(1---1---1---1---1---1---)o(1---)o(1--)o(-1--)o(-1--)o
+(-)390 3208 y(Band)47 b(1:)390 3312 y(8)g(|)2052 b
+(0---0---0---0---0---0---0-)o(--0-)o(--0)o(-)390 3416
+y(9)95 b(\\------------------------)o(----)o(---)o(----)o(----)o(--/)
+232 b(0---0---0---0---0---0---0)o(---)o(0)390 3520 y(10)906
+b(S*J)47 b(rows)1288 b(0---0---0---0---0---0--)o(-)390
+3623 y(11)2815 b(0---0---0---0---0--)390 3727 y(12)3054
+b(1---1---1---1-)390 3831 y(13)3293 b(1---1---1)390 3935
+y(14)3531 b(1---)275 4067 y Fu(W)-8 b(e)29 b(can)g(calculate)g(the)g
+(starting)f(ro)m(w)h(and)e(subpass)g(n)m(um)m(b)s(er)h(of)g(a)h(giv)m
+(en)g(pass)f(in)f(this)g(sc)m(heme)j(as)150 4176 y(follo)m(ws:)390
+4302 y Fr(A)47 b(=)h(floor\(J)e(/)h(H\))390 4406 y(subblocksperblock)c
+(=)48 b(gcd\(S,)e(A\))390 4510 y(subpassblock)e(=)k(floor\(\(p)d(\045)j
+(S\))f(*)h(subblocksperblock)43 b(/)k(S\))390 4614 y(if)g(subpassblock)
+e(*)i(2)h(<)f(subblocksperblock)581 4717 y(subblockoffset)d(=)j
+(2*subpassblock)390 4821 y(else)581 4925 y(subblockoffset)d(=)j
+(2*\(subblocksperblock-subp)o(assb)o(lock)o(\)-1)390
+5029 y(band)g(=)g(floor\(P)f(/)h(\(S)h(*)f(H\)\))390
+5132 y(passinband)e(=)i(P)h(\045)f(\(S)h(*)f(H\))390
+5236 y(startingrow)e(=)i(band)g(*)g(S)h(*)f(J)h(+)f(passinband)e(*)j(A)
+f(+)g(subblockoffset)390 5340 y(subpass)f(=)h(passinband)e(/)j(S)p
+eop
+%%Page: 60 65
+60 64 bop 150 -116 a Fu(App)s(endix)28 b(B:)j(W)-8 b(ea)m(ving)31
+b(for)f(inkjet)g(prin)m(ters)1899 b(60)275 299 y(So)30
+b(the)g(ro)m(w)h(n)m(um)m(b)s(er)e(of)h(jet)h Fc(j)36
+b Fu(of)31 b(pass)f Fc(p)g Fu(is)390 428 y Fr(A)47 b(=)h(floor\(J)e(/)h
+(H\))390 531 y(subblocksperblock)c(=)48 b(gcd\(S,)e(A\))390
+739 y(subblockoffset\(p\))581 843 y(=)h(2*subpassblock)331
+b(,)47 b(if)g(subpassblock)e(*)i(2)h(<)f(subblocksperblock)581
+946 y(=)g(2*\(subblocksperblock-subpa)o(ssb)o(lock)o(\)-1)280
+b(,)47 b(otherwise)676 1050 y(where)676 1154 y(subpassblock)e(=)i
+(floor\(\(p)f(\045)h(S\))g(*)h(subblocksperblock)43 b(/)k(S\))390
+1362 y(band\(p\))f(=)h(floor\(p)f(/)i(\(S)f(*)g(H\)\))390
+1465 y(passinband\(p\))d(=)k(p)f(\045)h(\(S)f(*)g(H\))390
+1673 y(row\(j,)f(p\))h(=)h(band\(p\))e(*)h(S)g(*)h(J)f(+)h
+(passinband\(p\))c(*)j(A)h(+)f(subblockoffset\(p\))c(+)48
+b(j)f(*)h(S)390 1777 y(row\(j,)e(p\))h(=)h(p)f(*)h(J)f(+)h
+(subblockoffset\(p\))43 b(+)k(j)h(*)f(S)275 1911 y Fu(T)-8
+b(o)30 b(b)s(e)g(con)m(tin)m(ued)5 b(.)22 b(.)g(.)g(.)p
+eop
+%%Page: 61 66
+61 65 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(61)150 299 y Fp(App)t(endix)53 b(C)81 b(ESC/P2)150
+718 y Ft(C.1)68 b(In)l(tro)t(duction)45 b(to)g(ESC/P2)275
+924 y Fu(This)24 b(is)h(a)h(description)e(of)i(the)g(ESC/P2)g(raster)g
+(commands)g(used)f(b)m(y)h(the)g(gimp-prin)m(t)e(plugin)g(and)150
+1034 y(Ghostscript)37 b(driv)m(er,)h(whic)m(h)e(is)h(a)h(subset)e(of)i
+(the)g(complete)g(command)f(set.)62 b(The)37 b(full)e(do)s(cumen)m(ts)
+150 1143 y(are)26 b(found)f(on)h Fr(http://www.ercipd.com/isv)o(/ed)o
+(r_do)o(cs.h)o(tm)p Fu(.)33 b(Note)27 b(that)g(these)g(are)f
+Fi(not)g Fu(alw)m(a)m(ys)150 1253 y(correct,)32 b(and)e(are)g
+(certainly)g(not)g(complete.)275 1401 y(All)23 b(ESCP/2)i(raster)g
+(commands)g(b)s(egin)e(with)h(the)h(`)p Fr(ESC)p Fu(')g(c)m(haracter)h
+(\(1b)f(hex\),)i(follo)m(w)m(ed)e(b)m(y)f(either)150
+1510 y(one)d(or)f(t)m(w)m(o)i(command)e(c)m(haracters)i(and)e(argumen)m
+(ts)h(where)e(applicable.)36 b(Older)19 b(commands)h(generally)150
+1620 y(ha)m(v)m(e)j(one)f(command)f(c)m(haracter.)39
+b(New)m(er)23 b(commands)e(usually)e(ha)m(v)m(e)k(a)f(`)p
+Fr(\()p Fu(')g(\(left)f(paren)m(thesis\))g(follo)m(w)m(ed)150
+1730 y(b)m(y)33 b(a)g(command)f(c)m(haracter)j(and)d(a)h(b)m(yte)g
+(coun)m(t)h(for)e(the)h(argumen)m(ts)g(that)h(follo)m(w.)47
+b(The)32 b(b)m(yte)h(coun)m(t)150 1839 y(is)c(a)i(16-bit)g(\(2)g(b)m
+(yte\))g(binary)e(in)m(teger,)i(in)e(little)g(endian)g(order.)275
+1987 y(All)e(argumen)m(ts)j(listed)e(here)h(are)g(of)h(the)f(form)g(`)p
+Fr(name[bytes])p Fu(')d(where)j(`)p Fr([bytes])p Fu(')f(is)g(the)h(n)m
+(um)m(b)s(er)150 2097 y(of)35 b(b)m(ytes)g(that)g(comprise)f(the)h
+(argumen)m(t.)53 b(The)35 b(argumen)m(ts)f(themselv)m(es)h(are)g
+(usually)e(one,)j(t)m(w)m(o,)h(or)150 2207 y(four)e(b)m(yte)h(in)m
+(tegers,)h(alw)m(a)m(ys)f(little)e(endian)g(\(the)i(least)f
+(signi\014can)m(t)g(bits)f(come)i(\014rst\).)56 b(Presumably)150
+2316 y(this)29 b(is)h(to)h(matc)m(h)g(In)m(tel)f(pro)s(cessors.)275
+2464 y(In)42 b(some)i(cases,)49 b(the)43 b(same)h(command)g(sequence)g
+(iden)m(ti\014es)e(di\013eren)m(t)h(v)m(ersions)g(of)h(the)g(same)150
+2574 y(command,)30 b(dep)s(ending)e(up)s(on)h(the)i(n)m(um)m(b)s(er)e
+(of)h(b)m(ytes)h(of)g(argumen)m(ts.)150 2866 y Ft(C.2)68
+b(Standard)45 b(commands)3130 3199 y Fu(ESC/P2)30 b(command)-3725
+b Fh(ESC)39 b(@)390 3309 y Fu(Reset)33 b(the)g(prin)m(ter.)45
+b(Discards)32 b(an)m(y)h(output,)f(ejects)i(the)e(existing)g(page,)i
+(returns)d(all)g(settings)390 3418 y(to)g(their)f(default.)39
+b(Alw)m(a)m(ys)31 b(use)f(this)f(b)s(efore)h(prin)m(ting)f(a)h(page.)
+3130 3694 y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(\(G)g
+Fm(BC)8 b Fh(=1)39 b Fm(ON1)390 3803 y Fu(T)-8 b(urn)29
+b(on)h(graphics)g(mo)s(de.)40 b Fm(ON)g Fu(should)28
+b(b)s(e)i(`)p Fr(1)p Fu(')h(\(turn)e(on)h(graphics)g(mo)s(de\).)3130
+4078 y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(\(U)g Fm(BC)8
+b Fh(=1)39 b Fm(UNIT1)390 4188 y Fu(Set)j(basic)g(unit)f(of)h
+(measuremen)m(t)h(used)e(b)m(y)i(prin)m(ter.)75 b(This)40
+b(is)h(expressed)h(in)f(m)m(ultiples)f(of)390 4298 y(1/3600)p
+Fr(")p Fu(.)j(A)m(t)31 b(720)h(DPI,)f Fm(UNIT)37 b Fu(is)29
+b(`)p Fr(5)p Fu(';)i(at)g(360)g(DPI,)g Fm(UNIT)37 b Fu(is)29
+b(`)p Fr(10)p Fu('.)3130 4573 y(ESC/P2)h(command)-3725
+b Fh(ESC)39 b(\(U)g Fm(BC)8 b Fh(=5)39 b Fm(P)-8 b(A)m(GEUNITS1)46
+b(VUNIT1)g(HUNIT1)g(BASEUNIT2)390 4682 y Fu(Set)31 b(basic)g(units)f
+(of)h(measuremen)m(t)h(used)e(b)m(y)h(the)h(prin)m(ter.)42
+b Fm(P)-8 b(A)m(GEUNIT)38 b Fu(is)31 b(the)g(unit)f(of)h(page)390
+4792 y(measuremen)m(t)i(\(for)h(commands)e(that)i(set)f(page)h
+(dimensions)c(and)j(the)g(lik)m(e\).)48 b Fm(VUNIT)40
+b Fu(is)32 b(the)390 4902 y(unit)27 b(of)i(v)m(ertical)h(measuremen)m
+(t)f(\(for)g(v)m(ertical)g(mo)m(v)m(emen)m(t)i(commands\).)40
+b Fm(HUNIT)35 b Fu(is)28 b(the)h(unit)390 5011 y(of)41
+b(horizon)m(tal)f(mo)m(v)m(emen)m(t)i(\(for)f(horizon)m(tal)f(p)s
+(ositioning)e(commands\).)72 b(All)39 b(of)h(these)i(units)390
+5121 y(are)29 b(expressed)f(in)f Fm(BASEUNIT)p Fu(,)i(whic)m(h)e(is)g
+(in)h(recipro)s(cal)f(inc)m(hes.)39 b(T)m(ypically)-8
+b(,)28 b Fm(BASEUNIT)35 b Fu(is)390 5230 y(`)p Fr(1440)p
+Fu('.)40 b(In)28 b(720)i(DPI)g(mo)s(de,)f Fm(P)-8 b(A)m(GEUNIT)p
+Fu(,)30 b Fm(VUNIT)p Fu(,)f(and)g Fm(HUNIT)36 b Fu(are)29
+b(all)f(`)p Fr(2)p Fu(';)i(in)e(1440x720)390 5340 y(DPI)i(mo)s(de,)h
+Fm(P)-8 b(A)m(GEUNIT)38 b Fu(and)29 b Fm(VUNIT)37 b Fu(are)31
+b(normally)e(set)h(to)i(`)p Fr(2)p Fu(';)e Fm(HUNIT)37
+b Fu(is)30 b(set)h(to)g(`)p Fr(1)p Fu('.)p eop
+%%Page: 62 67
+62 66 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(62)3130 299 y(ESC/P2)30 b(command)-3725 b Fh(ESC)39
+b(\(K)g Fm(BC)8 b Fh(=2)39 b Fm(ZER)m(O1)45 b(GRA)-8
+b(YMODE1)390 408 y Fu(Set)25 b(color)g(or)g(gra)m(yscale)h(mo)s(de,)g
+(on)f(prin)m(ters)e(supp)s(orting)g(an)h(explicit)g(gra)m(yscale)i(mo)s
+(de.)38 b(These)390 518 y(prin)m(ters)c(can)i(b)s(e)e(iden)m(ti\014ed)g
+(b)s(ecause)h(they)h(are)g(adv)m(ertised)f(as)h(ha)m(ving)f(more)g
+(blac)m(k)h(nozzles)390 628 y(than)h(nozzles)h(of)f(individual)c
+(colors.)62 b(Setting)37 b(gra)m(yscale)i(mo)s(de)e(allo)m(ws)g(use)g
+(of)g(these)h(extra)390 737 y(nozzles)21 b(for)f(faster)h(prin)m(ting.)
+36 b Fm(GRA)-8 b(YMODE)27 b Fu(should)19 b(b)s(e)h(`)p
+Fr(0)p Fu(')g(or)h(`)p Fr(2)p Fu(')g(for)f(color,)j(`)p
+Fr(1)p Fu(')e(for)f(gra)m(yscale.)390 847 y Fm(ZER)m(O)35
+b Fu(should)28 b(alw)m(a)m(ys)j(b)s(e)f(`)p Fr(0)p Fu('.)3130
+1058 y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(\(i)g Fm(BC)8
+b Fh(=1)39 b Fm(MICR)m(O)m(WEA)-10 b(VE1)390 1168 y Fu(If)23
+b Fm(MICR)m(O)m(WEA)-10 b(VE)29 b Fu(is)23 b(`)p Fr(1)p
+Fu(',)i(use)e(micro)m(w)m(ea)m(v)m(e)j(mo)s(de.)38 b(On)22
+b(older)h(prin)m(ters,)g(this)g(is)f(used)h(to)h(turn)390
+1278 y(on)34 b(micro)m(w)m(ea)m(v)m(e;)k(on)c(new)m(er)h(prin)m(ters,)e
+(it)h(prin)m(ts)f(one)h(ro)m(w)g(at)h(a)g(time.)51 b(All)33
+b(prin)m(ters)g(supp)s(ort)390 1387 y(this)e(mo)s(de.)46
+b(It)32 b(should)e(only)i(b)s(e)f(used)h(at)h(720)g(\(or)g(1440x720\))i
+(DPI.)e(The)f(Epson)f(St)m(ylus)g(Pro)390 1497 y(series)f(indicates)f
+(additional)f(mo)s(des:)390 1647 y(`)p Fr(2)p Fu(')382
+b(\\F)-8 b(ull-o)m(v)m(erlap")390 1797 y(`)p Fr(3)p Fu(')382
+b(\\F)-8 b(our-pass")390 1948 y(`)p Fr(4)p Fu(')382 b(\\F)-8
+b(ull-o)m(v)m(erlap)30 b(2")390 2098 y(An)m(y)g(of)h(these)g(commands)f
+(can)g(b)s(e)g(used)g(with)f(the)h(high)f(four)h(bits)f(set)i(to)g
+(either)f(`)p Fr(3)p Fu(')h(or)f(`)p Fr(0)p Fu('.)3130
+2310 y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(U)g Fm(DIRECTION1)390
+2419 y Fu(If)30 b Fm(DIRECTION)39 b Fu(is)30 b(`)p Fr(1)p
+Fu(',)g(prin)m(t)f(unidirectionally;)e(if)i(`)p Fr(0)p
+Fu(',)i(prin)m(t)e(bidirectionally)-8 b(.)3130 2631 y(ESC/P2)30
+b(command)-3725 b Fh(ESC)39 b(\(s)g Fm(BC)8 b Fh(=1)39
+b Fm(SPEED1)390 2740 y Fu(On)44 b(some)h(older)f(prin)m(ters,)j(this)c
+(con)m(trols)i(the)g(prin)m(t)f(head)g(sp)s(eed.)83 b
+Fm(SPEED)49 b Fu(of)c(`)p Fr(2)p Fu(')f(is)g(10)390 2850
+y(inc)m(hes/sec;)31 b(SPEED)f(of)g(`)p Fr(0)p Fu(')h(or)f(1)h(is)f(20.)
+3130 3062 y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(\(e)g
+Fm(BC)8 b Fh(=2)39 b Fm(ZER)m(O1)45 b(DOTSIZE1)390 3171
+y Fu(Cho)s(ose)c(prin)m(t)f(dotsize.)75 b Fm(DOTSIZE)45
+b Fu(can)d(tak)m(e)h(on)e(v)-5 b(arious)41 b(v)-5 b(alues,)44
+b(dep)s(ending)39 b(up)s(on)h(the)390 3281 y(prin)m(ter.)62
+b(Almost)38 b(all)f(prin)m(ters)f(supp)s(ort)g(`)p Fr(0)p
+Fu(')i(and)g(`)p Fr(2)p Fu('.)63 b(V)-8 b(ariable)38
+b(dot)g(size)g(prin)m(ters)e(allo)m(w)i(a)390 3390 y(v)-5
+b(alue)32 b(of)g Fm(16)p Fu(.)48 b(Other)32 b(than)g(the)g(v)-5
+b(alue)32 b(of)h Fm(16)p Fu(,)h(this)d(app)s(ears)h(to)h(b)s(e)e
+(ignored)h(at)h(resolutions)e(of)390 3500 y(720)h(DPI)e(and)g(ab)s(o)m
+(v)m(e.)3130 3711 y(ESC/P2)g(command)-3725 b Fh(ESC)39
+b(\(C)g Fm(BC)8 b Fh(=2)39 b Fm(P)-8 b(A)m(GELENGTH2)3130
+3821 y Fu(ESC/P2)30 b(command)-3725 b Fh(ESC)39 b(\(C)g
+Fm(BC)8 b Fh(=4)39 b Fm(P)-8 b(A)m(GELENGTH4)390 3931
+y Fu(Set)34 b(the)g(length)g(of)g(the)g(page)g(in)f Fr(")p
+Fu(pageunits)p Fr(")g Fu(\(see)i(`)p Fr(ESC)29 b(\(U)p
+Fu(')34 b(ab)s(o)m(v)m(e\).)53 b(The)33 b(second)h(form)g(of)390
+4040 y(the)c(command)g(allo)m(ws)g(setting)g(of)h(longer)f(page)h
+(lengths)e(on)h(new)g(prin)m(ters)f(\(these)i(happ)s(en)d(to)390
+4150 y(b)s(e)i(the)g(prin)m(ters)f(that)i(supp)s(ort)e(v)-5
+b(ariable)29 b(dot)i(size\).)3130 4361 y(ESC/P2)f(command)-3725
+b Fh(ESC)39 b(\(c)g Fm(BC)8 b Fh(=4)39 b Fm(TOP2)45 b(LENGTH2)3130
+4471 y Fu(ESC/P2)30 b(command)-3725 b Fh(ESC)39 b(\(c)g
+Fm(BC)8 b Fh(=8)39 b Fm(TOP4)45 b(LENGTH4)390 4580 y
+Fu(Set)35 b(the)g(v)m(ertical)g(page)h(margins)d(of)i(the)g(page)h(in)d
+Fr(")p Fu(pageunits)p Fr(")h Fu(\(see)i(`)p Fr(ESC)29
+b(\(U)p Fu(')35 b(ab)s(o)m(v)m(e\).)55 b(The)390 4690
+y(margins)31 b(are)h(sp)s(eci\014ed)e(as)i(the)g(top)g(of)g(the)g(page)
+h(and)e(the)h(length)g(of)g(the)g(page.)46 b(The)31 b(second)390
+4800 y(form)38 b(of)i(the)f(command)f(allo)m(ws)h(setting)g(of)g
+(longer)f(page)i(lengths)e(on)h(new)g(prin)m(ters)e(\(these)390
+4909 y(happ)s(en)29 b(to)i(b)s(e)f(the)g(prin)m(ters)f(that)i(supp)s
+(ort)e(v)-5 b(ariable)29 b(dot)h(size\).)3130 5121 y(ESC/P2)g(command)
+-3725 b Fh(ESC)39 b(\(S)g Fm(BC)8 b Fh(=8)39 b Fm(WIDTH4)46
+b(LENGTH4)390 5230 y Fu(Set)d(the)g(width)e(and)h(length)g(of)h(the)g
+(prin)m(ted)e(page)j(region)e(in)f Fr(")p Fu(pageunits)p
+Fr(")h Fu(\(see)i(`)p Fr(ESC)29 b(\(U)p Fu(')390 5340
+y(ab)s(o)m(v)m(e\).)p eop
+%%Page: 63 68
+63 67 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(63)3130 299 y(ESC/P2)30 b(command)-3725 b Fh(ESC)39
+b(\(v)g Fm(BC)8 b Fh(=2)39 b Fm(AD)m(V)-10 b(ANCE2)3130
+408 y Fu(ESC/P2)30 b(command)-3725 b Fh(ESC)39 b(\(v)g
+Fm(BC)8 b Fh(=4)39 b Fm(AD)m(V)-10 b(ANCE4)390 518 y
+Fu(F)i(eed)44 b(v)m(ertically)f Fm(AD)m(V)-10 b(ANCE)49
+b Fr(")p Fu(v)m(ertical)43 b(units)p Fr(")f Fu(\(see)i(`)p
+Fr(ESC)29 b(\(U)p Fu(')43 b(ab)s(o)m(v)m(e\))i(from)e(the)g(curren)m(t)
+390 628 y(prin)m(t)29 b(head)h(p)s(osition.)3130 871
+y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(\(V)g Fm(BC)8
+b Fh(=2)39 b Fm(AD)m(V)-10 b(ANCE2)3130 981 y Fu(ESC/P2)30
+b(command)-3725 b Fh(ESC)39 b(\(V)g Fm(BC)8 b Fh(=4)39
+b Fm(AD)m(V)-10 b(ANCE4)390 1090 y Fu(F)i(eed)27 b(v)m(ertically)e
+Fm(AD)m(V)-10 b(ANCE)32 b Fr(")p Fu(v)m(ertical)25 b(units)p
+Fr(")f Fu(\(see)j(`)p Fr(ESC)j(\(U)p Fu(')25 b(ab)s(o)m(v)m(e\))j(from)
+d(the)h(top)g(margin.)3130 1334 y(ESC/P2)k(command)-3725
+b Fh(ESC)39 b(\($)g Fm(BC)8 b Fh(=4)39 b Fm(OFFSET4)390
+1443 y Fu(Set)27 b(horizon)m(tal)g(p)s(osition)e(to)i
+Fm(OFFSET)33 b Fu(from)27 b(the)g(left)f(margin.)39 b(This)25
+b(command)i(op)s(erates)g(on)390 1553 y(prin)m(ters)i(of)h(the)h(740)h
+(class)e(and)g(new)m(er)g(\(all)g(prin)m(ters)e(with)h(v)-5
+b(ariable)30 b(dot)g(size\).)3130 1797 y(ESC/P2)g(command)-3725
+b Fh(ESC)39 b($)g Fm(OFFSET2)390 1906 y Fu(Set)27 b(horizon)m(tal)g(p)s
+(osition)e(to)i Fm(OFFSET)33 b Fu(from)27 b(the)g(left)f(margin.)39
+b(This)25 b(command)i(op)s(erates)g(on)390 2016 y(prin)m(ters)i(of)h
+(the)h(740)h(class)e(and)g(new)m(er)g(\(all)g(prin)m(ters)e(with)h(v)-5
+b(ariable)30 b(dot)g(size\).)3130 2259 y(ESC/P2)g(command)-3725
+b Fh(ESC)39 b(\(\\)g Fm(BC)8 b Fh(=4)39 b Fm(UNITS2)45
+b(OFFSET2)390 2369 y Fu(Set)30 b(horizon)m(tal)f(p)s(osition)f(to)j
+Fm(OFFSET)k Fu(from)29 b(the)h(previous)e(prin)m(t)h(head)g(p)s
+(osition,)g(measured)390 2478 y(in)38 b Fm(UNITS)p Fu(.)h
+Fm(UNITS)44 b Fu(is)38 b(measured)h(in)f(in)m(v)m(erse)h(inc)m(hes,)i
+(and)e(should)e(b)s(e)i(set)h(to)g(1440)h(in)d(all)390
+2588 y(cases.)k(This)28 b(op)s(erates)j(on)f(all)g(1440)i(dpi)c(prin)m
+(ters)h(that)i(do)f(not)h(supp)s(ort)e(v)-5 b(ariable)29
+b(dot)h(size.)3130 2832 y(ESC/P2)g(command)-3725 b Fh(ESC)39
+b(\(/)g Fm(BC)8 b Fh(=4)39 b Fm(OFFSET4)390 2941 y Fu(Set)30
+b(horizon)m(tal)f(p)s(osition)f(to)j Fm(OFFSET)k Fu(from)29
+b(the)h(previous)e(prin)m(t)h(head)g(p)s(osition,)g(measured)390
+3051 y(in)42 b Fr(")p Fu(horizon)m(tal)g(units)p Fr(")f
+Fu(\(see)j(`)p Fr(ESC)30 b(\(U)p Fu(')42 b(ab)s(o)m(v)m(e\).)81
+b(This)41 b(op)s(erates)i(on)g(all)f(v)-5 b(ariable)42
+b(dot)h(size)390 3160 y(prin)m(ters.)3130 3404 y(ESC/P2)30
+b(command)-3725 b Fh(ESC)39 b(\\)g Fm(OFFSET2)390 3513
+y Fu(Set)30 b(horizon)m(tal)f(p)s(osition)f(to)j Fm(OFFSET)k
+Fu(from)29 b(the)h(previous)e(prin)m(t)h(head)g(p)s(osition,)g
+(measured)390 3623 y(in)22 b(basic)h(unit)f(of)i(measuremen)m(t)g
+(\(see)h(`)p Fr(ESC)k(\(U)p Fu(')23 b(ab)s(o)m(v)m(e\).)41
+b(This)21 b(is)i(used)g(on)g(all)g(720)h(dpi)e(prin)m(ters,)390
+3733 y(and)f(can)i(also)f(b)s(e)f(used)g(on)h(1440)i(dpi)c(prin)m(ters)
+g(in)h(lo)m(w)m(er)h(resolutions)f(to)h(sa)m(v)m(e)i(a)e(few)g(b)m
+(ytes.)39 b(Note)390 3842 y(that)e Fm(OFFSET)43 b Fu(ma)m(y)37
+b(b)s(e)f(negativ)m(e.)60 b(The)36 b(range)h(of)g(v)-5
+b(alues)36 b(for)g(this)f(command)i(is)e(b)s(et)m(w)m(een)390
+3952 y(`)p Fr(-16384)p Fu(')29 b(and)h(`)p Fr(16383)p
+Fu('.)3130 4195 y(ESC/P2)g(command)-3725 b Fh(ESC)39
+b(r)g Fm(COLOR1)3130 4305 y Fu(ESC/P2)30 b(command)-3725
+b Fh(ESC)39 b(\(r)g Fm(BC)8 b Fh(=2)39 b Fm(DENSITY1)45
+b(COLOR1)390 4415 y Fu(Set)26 b(the)g(ink)f(color.)39
+b(The)26 b(\014rst)f(form)g(is)g(used)h(on)f(four-color)h(prin)m(ters;)
+g(the)h(second)f(on)f(six-color)390 4524 y(prin)m(ters.)39
+b Fm(DENSITY)k Fu(is)29 b(`)p Fr(0)p Fu(')i(for)f(dark)g(inks,)f(`)p
+Fr(1)p Fu(')h(for)h(ligh)m(t.)40 b Fm(COLOR)29 b Fu(is)390
+4688 y(`)p Fr(0)p Fu(')382 b(blac)m(k)390 4851 y(`)p
+Fr(1)p Fu(')g(magen)m(ta)390 5013 y(`)p Fr(2)p Fu(')g(cy)m(an)390
+5176 y(`)p Fr(4)p Fu(')g(y)m(ello)m(w)390 5340 y(This)29
+b(command)h(is)f(not)i(used)e(on)i(v)-5 b(ariable)29
+b(dot)h(size)h(prin)m(ters)d(in)i(soft)m(w)m(ea)m(v)m(e)j(mo)s(de.)p
+eop
+%%Page: 64 69
+64 68 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(64)3130 299 y(ESC/P2)30 b(command)-3725 b Fh(ESC)39
+b(.)g Fm(COMPRESS1)44 b(VSEP1)h(HSEP1)g(LINES1)h(WIDTH2)g(data...)390
+408 y Fu(Prin)m(t)29 b(data.)42 b Fm(COMPRESS)34 b Fu(signi\014es)28
+b(the)j(compression)e(mo)s(de:)390 565 y(`)p Fr(0)p Fu(')382
+b(no)30 b(compression)390 722 y(`)p Fr(1)p Fu(')382 b(TIFF)30
+b(compression)g(\(incorrectly)g(do)s(cumen)m(ted)g(as)g
+Fr(")p Fu(run)f(length)h(enco)s(ded)p Fr(")p Fu(\))390
+879 y(`)p Fr(2)p Fu(')382 b(TIFF)30 b(compression)g(with)f(a)i(sp)s
+(ecial)e(command)h(set.)390 1036 y Fm(VSEP)38 b Fu(dep)s(ends)32
+b(up)s(on)g(resolution)g(and)i(prin)m(ter)e(t)m(yp)s(e.)51
+b(A)m(t)34 b(360)h(DPI,)f(it)g(is)e(alw)m(a)m(ys)i(`)p
+Fr(10)p Fu('.)51 b(A)m(t)390 1146 y(720)25 b(DPI,)f(it)f(is)g(normally)
+f(`)p Fr(5)p Fu('5.)39 b(On)23 b(the)h(ESC)f(600,)k(it)c(is)g(`)p
+Fr(40)p Fu(')g(\(8)7 b Fs(\003)g Fu(5\).)41 b(On)23 b(some)h(other)g
+(prin)m(ters,)390 1256 y(it)30 b(v)-5 b(aries.)390 1389
+y Fm(HSEP1)34 b Fu(is)26 b(`)p Fr(10)p Fu(')h(at)h(360)g(DPI)f(and)f(`)
+p Fr(5)p Fu(')h(at)h(720)g(or)f(1440)i(DPI)e(\(1440)i(DPI)e(cannot)g(b)
+s(e)g(prin)m(ted)e(in)390 1498 y(one)j(pass;)g(it)f(is)f(prin)m(ted)g
+(in)g(t)m(w)m(o)j(passes,)f(with)e(the)h(dots)h(separated)g(in)e(eac)m
+(h)i(pass)f(b)m(y)g(1/720)p Fr(")p Fu(\).)390 1632 y
+Fm(LINES)37 b Fu(is)31 b(the)i(n)m(um)m(b)s(er)e(of)i(lines)d(to)j(b)s
+(e)f(prin)m(ted.)46 b(It)32 b(should)f(b)s(e)g(`)p Fr(1)p
+Fu(')i(in)e(micro)m(w)m(ea)m(v)m(e)k(and)d(360)390 1741
+y(DPI.)f(A)m(t)g(720)h(DPI)e(soft)m(w)m(ea)m(v)m(e,)k(it)c(should)e(b)s
+(e)i(the)h(n)m(um)m(b)s(er)e(of)h(lines)f(to)i(b)s(e)f(actually)f(prin)
+m(ted.)390 1875 y Fm(WIDTH)40 b Fu(is)28 b(the)i(n)m(um)m(b)s(er)e(of)h
+(pixels)f(to)i(b)s(e)f(prin)m(ted)f(in)g(eac)m(h)i(ro)m(w.)41
+b(F)-8 b(ollo)m(wing)29 b(this)f(command,)390 1984 y(a)34
+b(carriage)g(return)e(\(`)p Fr(13)p Fu(')i(decimal,)f(`)p
+Fr(0A)p Fu(')g(hex\))h(should)d(b)s(e)i(output)g(to)h(return)f(the)g
+(prin)m(t)f(head)390 2094 y(p)s(osition)c(to)k(the)e(left)g(margin.)390
+2227 y(The)i(basic)g(data)i(format)f(is)f(a)h(string)f(of)h(b)m(ytes,)h
+(with)d(data)j(from)e(left)g(to)i(righ)m(t)e(on)h(the)g(page.)390
+2337 y(Within)c(eac)m(h)i(b)m(yte,)g(the)g(highest)f(bit)f(is)g
+(\014rst.)390 2470 y(The)38 b(TIFF)g(compression)f(is)h(implemen)m(ted)
+e(as)j(one)f(coun)m(t)h(b)m(yte)g(follo)m(w)m(ed)f(b)m(y)g(one)h(or)f
+(more)390 2580 y(data)31 b(b)m(ytes.)41 b(There)30 b(are)h(t)m(w)m(o)h
+(cases:)439 2713 y(1.)61 b(If)28 b(the)g(coun)m(t)h(b)m(yte)g(is)e(`)p
+Fr(128)p Fu(')h(or)g(less,)g(it)g(is)f(follo)m(w)m(ed)h(b)m(y)g([)p
+Fc(count)p Fu(]+1)h(data)g(b)m(ytes.)40 b(So)29 b(if)e(the)570
+2822 y(coun)m(t)k(b)m(yte)g(is)f(`)p Fr(0)p Fu(',)h(it)f(is)f(follo)m
+(w)m(ed)h(b)m(y)h(1)g(data)g(b)m(yte;)g(if)f(it)g(is)f(`)p
+Fr(128)p Fu(',)i(it)f(is)f(follo)m(w)m(ed)h(b)m(y)h(129)570
+2932 y(data)g(b)m(ytes.)439 3065 y(2.)61 b(If)38 b(the)g(coun)m(t)h(b)m
+(yte)g(is)e(greater)i(than)f(128,)k(it)37 b(is)h(follo)m(w)m(ed)f(b)m
+(y)i(one)f(b)m(yte.)65 b(This)36 b(b)m(yte)j(is)570 3175
+y(rep)s(eated)d(\(257)h(-)f([coun)m(t]\))h(times.)55
+b(So)36 b(if)e([coun)m(t])j(is)e(129,)j(the)e(next)f(b)m(yte)i(is)d
+(treated)j(as)570 3284 y(though)h(it)f(w)m(ere)i(rep)s(eated)f(128)i
+(times;)h(if)c([coun)m(t])j(is)d(255,)k(it)d(is)f(treated)i(as)g
+(though)e(it)570 3394 y(w)m(ere)31 b(rep)s(eated)f(t)m(wice.)3130
+3622 y(ESC/P2)g(command)-3725 b Fh(ESC)39 b(i)g Fm(COLOR1)44
+b(COMPRESS1)h(BITS1)g(BYTES2)g(LINES2)565 3732 y(data...)390
+3841 y Fu(Prin)m(t)c(data)i(in)f(the)g(new)m(er)h(prin)m(ters)d(\(that)
+k(supp)s(ort)c(v)-5 b(ariable)42 b(dot)g(size\),)k(and)c(St)m(ylus)f
+(Pro)390 3951 y(mo)s(dels.)390 4084 y Fm(COLOR)29 b Fu(is)h(the)g
+(color:)390 4241 y(`)p Fr(0)p Fu(')382 b(blac)m(k)390
+4398 y(`)p Fr(1)p Fu(')g(magen)m(ta)390 4555 y(`)p Fr(2)p
+Fu(')g(cy)m(an)390 4712 y(`)p Fr(4)p Fu(')g(y)m(ello)m(w)390
+4869 y(`)p Fr(17)p Fu(')334 b(ligh)m(t)30 b(magen)m(ta)390
+5026 y(`)p Fr(18)p Fu(')334 b(ligh)m(t)30 b(cy)m(an)390
+5183 y Fm(COMPRESS)k Fu(signi\014es)28 b(the)j(compression)e(mo)s(de:)
+390 5340 y(`)p Fr(0)p Fu(')382 b(no)30 b(compression)p
+eop
+%%Page: 65 70
+65 69 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(65)390 299 y(`)p Fr(1)p Fu(')382 b(TIFF)30 b(compression)g
+(\(incorrectly)g(do)s(cumen)m(ted)g(as)g Fr(")p Fu(run)f(length)h(enco)
+s(ded)p Fr(")p Fu(\))390 462 y(`)p Fr(2)p Fu(')382 b(TIFF)30
+b(compression)g(with)f(a)i(sp)s(ecial)e(command)h(set.)390
+628 y Fm(BITS)35 b Fu(is)29 b(the)i(n)m(um)m(b)s(er)e(of)i(bits)e(p)s
+(er)g(pixel.)390 767 y Fm(BYTES)j Fu(is)26 b(the)h(n)m(um)m(b)s(er)f
+(of)h(b)m(ytes)g(wide)f(for)h(eac)m(h)h(ro)m(w)f(\()p
+Fc(ceil)r(ing)s Fu(\()p Fc(B)5 b(I)i(T)13 b(S)20 b Fs(\003)13
+b Fc(w)r(idth)p 3252 767 28 4 v 35 w(of)p 3386 767 V
+42 w(r)s(ow)r(;)i Fu(8\)\).)390 876 y(Note)32 b(that)f(this)e(is)g
+(di\013eren)m(t)h(from)g(the)h(`)p Fr(ESC)e(.)p Fu(')i(command)f(ab)s
+(o)m(v)m(e.)390 1015 y Fm(LINES)40 b Fu(is)34 b(the)i(n)m(um)m(b)s(er)e
+(of)i(lines)e(to)i(b)s(e)f(prin)m(ted.)54 b(This)34 b(command)h(is)g
+(the)g(only)g(w)m(a)m(y)i(to)f(get)390 1125 y(v)-5 b(ariable)30
+b(dot)h(size)g(prin)m(ting.)41 b(In)30 b(v)-5 b(ariable)30
+b(dot)i(mo)s(de,)f(the)g(size)g(of)g(the)g(dots)h(increases)e(as)i(the)
+390 1234 y(v)-5 b(alue)30 b(\(`)p Fr(1)p Fu(',)h(`)p
+Fr(2)p Fu(',)g(or)f(`)p Fr(3)p Fu('\))h(increases.)3130
+1481 y(ESC/P2)f(command)-3725 b Fh(ESC)39 b(\(D)g Fm(BC)8
+b Fh(=4)39 b Fm(BASE2)45 b(VER)-8 b(TICAL1)46 b(HORIZONT)-8
+b(AL1)390 1590 y Fu(Set)24 b(prin)m(ter)f(horizon)m(tal)h(and)f(v)m
+(ertical)h(spacing.)38 b(It)24 b(only)f(applies)g(to)h(v)-5
+b(ariable)23 b(dot)i(size)e(prin)m(ters)390 1700 y(in)29
+b(soft)m(w)m(ea)m(v)m(e)34 b(mo)s(de)c(\(and)g(p)s(ossibly)d(other)k
+(high)e(end)h(prin)m(ters\).)390 1839 y Fm(BASE)36 b
+Fu(is)29 b(the)i(base)f(unit)f(for)h(this)f(command;)i(it)f(m)m(ust)g
+(b)s(e)g(`)p Fr(14400)p Fu('.)390 1977 y Fm(VER)-8 b(TICAL)54
+b Fu(is)g(the)i(distance)e(in)g(these)h(units)f(b)s(et)m(w)m(een)h
+(prin)m(ted)f(ro)m(ws;)67 b(it)55 b(should)e(b)s(e)390
+2087 y(\()p Fc(separ)s(ation)p 864 2087 V 32 w(in)p 982
+2087 V 33 w(noz)t(z)t(l)r(es)20 b Fs(\003)h Fc(B)5 b(AS)g(E)g(=)p
+Fu(720\).)390 2226 y Fm(HORIZONT)-8 b(AL)30 b Fu(is)f(the)i(horizon)m
+(tal)f(separation)h(b)s(et)m(w)m(een)g(dots)g(in)e(a)i(ro)m(w.)41
+b(Dep)s(ending)30 b(up)s(on)390 2335 y(the)k(prin)m(ter,)f(this)g
+(should)f(b)s(e)h(either)g(\(14400)p Fc(=)p Fu(720\))39
+b(or)33 b(\(14400)p Fc(=)p Fu(360\).)56 b(The)33 b(St)m(ylus)g(Pro)g
+(9000)390 2445 y(man)m(ual)39 b(suggests)i(that)f(the)g(settings)g
+(should)d(matc)m(h)k(the)f(c)m(hosen)g(resolution,)h(but)f(that)g(is)
+390 2554 y(apparen)m(tly)30 b(not)g(the)h(case)g(\(or)g(not)g(alw)m(a)m
+(ys)g(the)f(case\))i(on)e(other)h(prin)m(ters.)3130 2801
+y(ESC/P2)f(command)-3725 b Fh(ESC)39 b(\(R)g Fm(BC)8
+b Fh(=8)39 b(00)f(R)h(E)f(M)h(O)f(T)h(E)f(1)390 2911
+y Fu(En)m(ters)27 b(\\remote)h(mo)s(de".)40 b(This)25
+b(is)h(a)h(sp)s(ecial,)g(undo)s(cumen)m(ted)e(command)i(set)h(that)f
+(is)f(used)g(to)390 3020 y(set)31 b(up)f(v)-5 b(arious)30
+b(prin)m(ter)f(options,)h(suc)m(h)h(as)f(pap)s(er)g(feed)h(tra)m(y)-8
+b(,)32 b(and)e(p)s(erform)f(utilit)m(y)g(functions)390
+3130 y(suc)m(h)22 b(as)h(head)f(cleaning)f(and)h(alignmen)m(t.)37
+b(It)23 b(do)s(es)f(not)g(app)s(ear)g(that)h(an)m(ything)f(here)g(is)f
+(actually)390 3239 y(required)34 b(to)i(mak)m(e)g(the)g(prin)m(ter)e
+(prin)m(t.)55 b(Our)34 b(b)s(est)h(understanding)e(of)i(what)h(is)e(in)
+g(a)i(remote)390 3349 y(command)30 b(sequence)h(is)e(describ)s(ed)g(in)
+g(a)h(separate)i(section)e(b)s(elo)m(w.)3130 3596 y(ESC/P2)g(command)
+-3725 b Fh(ESC)39 b(01)g(@EJL)g([sp])h(ID\\r\\n)390 3705
+y Fu(Return)g(the)g(prin)m(ter)f(ID.)i(This)e(is)g(considered)g(a)i
+(remote)g(mo)s(de)f(command,)j(although)d(the)390 3815
+y(syn)m(tax)31 b(is)e(that)i(of)g(a)g(con)m(v)m(en)m(tional)g(command.)
+40 b(This)29 b(returns)g(the)i(follo)m(wing)d(information:)630
+3948 y Fr(@EJL)47 b(ID\\r)630 4051 y(MFG:EPSON;)630 4155
+y(CMD:ESCPL2,BDC;)630 4259 y(MDL:[printer)d(model];)630
+4363 y(CLS:PRINTER;)630 4467 y(DES:EPSON)h([printer)h(model];)630
+4570 y(\\f)275 4763 y Fu(After)30 b(all)f(data)i(has)g(b)s(een)e(sen)m
+(t,)i(a)g(form)f(feed)g(b)m(yte)h(should)e(b)s(e)h(sen)m(t.)275
+4902 y(All)25 b(new)m(er)i(Epson)e(prin)m(ters)h(\(STC)g(440,)j(STP)c
+(750\))k(require)c(the)i(follo)m(wing)e(command)i(to)g(b)s(e)f(sen)m(t)
+150 5011 y(at)34 b(least)g(once)f(to)i(enable)d(prin)m(ting)f(at)j
+(all.)49 b(This)31 b(command)i(sp)s(eci\014cally)e(tak)m(es)k(the)e
+(prin)m(ter)f(out)i(of)150 5121 y(the)24 b(Epson)f(pac)m(k)m(et)i(mo)s
+(de)f(comm)m(unication)f(proto)s(col)g(\(whatev)m(er)i(that)f(is\))g
+(and)f(enables)g(normal)f(data)150 5230 y(transfer.)39
+b(Sending)26 b(it)i(m)m(ultiple)e(times)h(is)g(is)g(not)i(harmful,)d
+(so)i(it)g(is)f(normally)f(sen)m(t)j(at)f(the)h(b)s(eginning)150
+5340 y(of)i(eac)m(h)g(job:)p eop
+%%Page: 66 71
+66 70 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(66)390 299 y Fr(ESC)47 b(01@EJL[space]1284.4[newl)o(ine])o(@EJ)o
+(L[sp)o(ace])o([sp)o(ace])o([spa)o(ce])o([spa)o(ce])390
+403 y([space][newline]ESC@)275 540 y Fu(The)29 b(prop)s(er)g(sequence)i
+(of)g(initialization)c(commands)j(is:)390 672 y Fr(magic)46
+b(command)390 776 y(ESC)95 b(remote)46 b(mode)g(if)i(needed)390
+880 y(ESC)f(\(G)390 983 y(ESC)g(\(U)390 1087 y(ESC)g(\(K)g(\(if)g
+(appropriate\))390 1191 y(ESC)g(\(i)390 1295 y(ESC)g(U)g(\(if)g
+(needed\))390 1398 y(ESC)g(\(s)g(\(if)g(appropriate\))390
+1502 y(ESC)g(\(e)390 1606 y(ESC)g(\(C)390 1710 y(ESC)g(\(c)390
+1814 y(ESC)g(\(S)390 1917 y(ESC)g(\(D)g(\(if)g(needed\))390
+2021 y(ESC)g(\(V)g(\(optional)e(--)j(this)e(can)h(be)g(accomplished)e
+(with)h(ESC)h(\(v\))275 2159 y Fu(F)-8 b(or)31 b(prin)m(ting,)d(the)j
+(prop)s(er)e(sequence)h(is:)390 2290 y Fr(ESC)47 b(\(v)150
+2428 y Fu(and)30 b(rep)s(eat)g(for)g(eac)m(h)i(color:)390
+2560 y Fr(ESC)47 b(\($)g Fu(or)h Fr(ESC)f(\(\\)g Fu(or)h
+Fr(ESC)f(\\)390 2663 y(ESC)g(\(r)g Fu(or)h Fr(ESC)f(r)g
+Fu(\(if)30 b(needed|not)g(used)g(with)f(`)p Fr(ESC)47
+b(i)p Fu(')30 b(and)g(not)h(needed)f(if)f(the)i(color)390
+2767 y(has)f(not)h(c)m(hanged)g(from)f(the)g(previous)f(prin)m(ted)g
+(line\))390 2871 y Fr(ESC)47 b(.)g Fu(or)h Fr(ESC)f(i)95
+b(...data...)45 b([return])h(\(0A)h(hex\))275 3009 y
+Fu(T)-8 b(o)30 b(terminate)h(a)g(page:)390 3140 y Fr([formfeed])45
+b(\(0C)i(hex\))390 3244 y(ESC)g(@)150 3509 y Ft(C.3)68
+b(Remote)47 b(Mo)t(de)d(Commands)275 3705 y Fu(The)g(follo)m(wing)f
+(description)h(of)h(remote)h(commands)e(comes)i(out)f(of)g(an)g
+(examination)g(of)g(the)150 3814 y(sequences)33 b(used)e(b)m(y)i(the)f
+(prin)m(ter)f(utilities)f(bundled)f(with)j(the)g(Windo)m(ws)g(driv)m
+(ers)f(for)h(the)g(ESC740,)150 3924 y(and)26 b(from)g(other)h(sources)f
+(\(some)i(Epson)d(man)m(uals,)i(exp)s(erimen)m(tation,)g(analysis)e(of)
+h(prin)m(t)g(\014les\).)38 b(It)27 b(is)150 4034 y(largely)g(sp)s
+(eculativ)m(e)f(as)i(these)g(commands)f(are)h(not)f(all)g(do)s(cumen)m
+(ted)g(in)f(the)i(Epson)e(do)s(cumen)m(tation)150 4143
+y(w)m(e)31 b(ha)m(v)m(e)g(access)h(to.)42 b(Generally)-8
+b(,)30 b(new)m(er)g(man)m(uals)g(pro)m(vide)f(more)i(thorough)f(do)s
+(cumen)m(tation.)275 4281 y(Remote)h(command)f(mo)s(de)g(is)g(en)m
+(tered)h(when)e(the)i(prin)m(ter)e(is)g(sen)m(t)i(the)f(follo)m(wing)f
+(sequence:)390 4412 y Fr(ESC)47 b(\(R)g(BC=8)g(00)g(R)g(E)h(M)f(O)h(T)f
+(E)h(1)275 4550 y Fu(Remote)31 b(mo)s(de)f(commands)g(are)h(then)f(sen)
+m(t,)h(and)f(terminated)g(with)f(the)h(follo)m(wing)f(sequence:)390
+4682 y Fr(ESC)47 b(00)g(00)g(00)275 4819 y Fu(All)29
+b(remote)i(mo)s(de)f(commands)g(m)m(ust)g(b)s(e)g(sen)m(t)h(b)s(efore)f
+(the)g(initial)e(`)p Fr(ESC)i(\(G)p Fu(')g(command)g(is)f(sen)m(t.)275
+4957 y(This)22 b(in)m(tro)s(ductory)i(sequence)h(is)f(then)g(follo)m(w)
+m(ed)h(b)m(y)f(a)h(sequence)g(of)g(commands.)39 b(Eac)m(h)25
+b(command)150 5066 y(is)k(constructed)i(as)g(follo)m(ws:)330
+5204 y(Tw)m(o)g(ASCI)s(I)d(b)m(ytes)j(indicating)d(the)j(function)330
+5340 y(A)f(b)m(yte)i(coun)m(t)f(\(t)m(w)m(o)h(b)m(ytes,)f
+(little-endian\))d(for)i(the)h(parameters)p eop
+%%Page: 67 72
+67 71 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(67)330 299 y(Binary)29 b(parameters,)i(if)f(an)m(y)275
+458 y(This)e(is)i(a)g(list)f(of)i(all)e(remote)i(commands)f(w)m(e)h(ha)
+m(v)m(e)h(seen:)2826 690 y(ESC/P2)e(remote)i(command)-3725
+b Fh(NC)39 b Fm(BC)8 b Fh(=2)38 b(00)h(00)390 800 y Fu(Prin)m(t)29
+b(a)i(nozzle)g(c)m(hec)m(k)h(pattern)2826 1032 y(ESC/P2)e(remote)i
+(command)-3725 b Fh(VI)39 b Fm(BC)8 b Fh(=2)38 b(00)h(00)390
+1142 y Fu(on)30 b(m)m(y)h(740,)h(prin)m(ts)d(the)h(follo)m(wing:)630
+1270 y Fr(W01286)46 b(I02382\\r\\n)390 1404 y Fu(probably)29
+b(\\v)m(ersion)h(information")2826 1637 y(ESC/P2)g(remote)i(command)
+-3725 b Fh(*)38 b(AI)h Fm(BC)8 b Fh(=3)39 b(00)g(00)g(00)390
+1746 y Fu(Prin)m(ts)29 b(a)i(\\prin)m(ter)e(ID".)j(On)d(one)i(870,)h
+(prin)m(ts)d(the)h(follo)m(wing:)630 1875 y Fr(51-51-50-51-49-48\\r\\n)
+390 2009 y Fu(The)f(Windo)m(ws)f(driv)m(er)g(has)h(a)g(text)i(en)m(try)
+e(\014eld)f(where)h(this)f(n)m(um)m(b)s(er)g(can)h(b)s(e)g(en)m(tered,)
+h(but)f(its)390 2118 y(purp)s(ose)g(is)g(unkno)m(wn.)2826
+2351 y(ESC/P2)h(remote)i(command)-3725 b Fh(*)38 b(LD)h
+Fm(BC)8 b Fh(=0)390 2460 y Fu(Load)38 b(prin)m(ter)f(defaults)g(from)g
+(NVRAM,)i(DIP)f(switc)m(hes,)i(and/or)e(R)m(OM.)g(This)f(apparen)m(tly)
+390 2570 y(do)s(es)d(not)g(load)f(factory)i(defaults)e(p)s(er)g(se,)j
+(but)d(an)m(y)h(settings)g(that)h(are)f(sa)m(v)m(ed.)53
+b(This)32 b(is)h(com-)390 2679 y(monly)25 b(used)f(righ)m(t)i(at)g(the)
+g(end)f(of)h(eac)m(h)g(prin)m(t)f(job)g(after)h(the)g(`)p
+Fr(ESC)k(@)p Fu(')25 b(prin)m(ter)g(reset)h(command.)2826
+2912 y(ESC/P2)k(remote)i(command)-3725 b Fh(*)38 b(CH)h
+Fm(BC)8 b Fh(=2)39 b(00)g Fm(xx)390 3021 y Fu(P)m(erform)30
+b(a)h(head)f(cleaning)g(cycle.)41 b(The)30 b(heads)g(to)h(clean)f(are)h
+(determined)e(b)m(y)h(parameter)h Fm(xx)6 b Fu(:)390
+3180 y(`)p Fr(00)p Fu(')334 b(clean)30 b(all)g(heads)390
+3339 y(`)p Fr(01)p Fu(')334 b(clean)30 b(blac)m(k)h(head)390
+3498 y(`)p Fr(02)p Fu(')334 b(clean)30 b(color)h(heads)390
+3656 y(While)i Fm(xx)40 b Fu(=)33 b(`)p Fr(00)p Fu(')h(is)f(probably)f
+(supp)s(orted)g(b)m(y)h(all)g(prin)m(ters,)g Fm(xx)40
+b Fu(=)34 b(`)p Fr(01)p Fu(')g(and)f(`)p Fr(02)p Fu(')h(ma)m(y)g(w)m
+(ell)390 3766 y(not)d(b)s(e.)2826 3998 y(ESC/P2)f(remote)i(command)
+-3725 b Fh(*)38 b(DT)h Fm(BC)8 b Fh(=3)39 b(00)g Fm(xx)44
+b Fh(00)390 4108 y Fu(Prin)m(t)25 b(an)h(alignmen)m(t)f(pattern.)40
+b(There)25 b(are)i(three)f(patterns,)h(whic)m(h)e(are)h(pic)m(k)m(ed)g
+(via)g(the)g(c)m(hoice)390 4218 y(of)31 b Fm(xx)p Fu(.)40
+b(P)m(attern)31 b(`)p Fr(0)p Fu(')g(is)e(coarse,)j(pattern)f(`)p
+Fr(1)p Fu(')f(is)g(medium,)e(and)i(pattern)h(`)p Fr(2)p
+Fu(')f(is)g(\014ne.)2826 4450 y(ESC/P2)g(remote)i(command)-3725
+b Fh(*)38 b(DU)h Fm(BC)8 b Fh(=6)39 b(00)g Fm(xx)44 b
+Fh(00)39 b(09)g(00)g Fm(yy)390 4560 y Fu(Prin)m(t)c(another)h(alignmen)
+m(t)f(pattern.)57 b(It)36 b(isn't)f(en)m(tirely)g(clear)g(what)h
+Fm(xx)42 b Fu(and)35 b Fm(yy)44 b Fu(are,)37 b(but)e(it)390
+4669 y(app)s(ears)d(that)i Fm(xx)39 b Fu(tak)m(es)34
+b(on)f(the)g(v)-5 b(alues)32 b(`)p Fr(1)p Fu(')h(and)f(`)p
+Fr(2)p Fu(')h(,)h(and)e Fm(yy)41 b Fu(tak)m(es)34 b(on)f(the)g(v)-5
+b(alues)32 b(`)p Fr(0)p Fu(')i(and)390 4779 y Fm(1)p
+Fu(.)41 b(This)29 b(ma)m(y)i(only)e(w)m(ork)i(on)f(the)g(580)i(and/or)e
+(480.)2826 5011 y(ESC/P2)g(remote)i(command)-3725 b Fh(*)38
+b(DA)h Fm(BC)8 b Fh(=4)39 b(00)g Fm(xx)44 b Fh(00)39
+b Fm(yy)390 5121 y Fu(Set)32 b(results)f(for)h(the)h(\014rst)e
+(alignmen)m(t)h(pattern.)46 b Fm(xx)38 b Fu(is)31 b(the)i(pattern)f
+(\(`)p Fr(1)p Fu('{`)p Fr(3)p Fu('\);)j Fm(yy)40 b Fu(is)31
+b(the)h(b)s(est)390 5230 y(c)m(hoice)f(from)f(the)h(set)g(\(`)p
+Fr(1)p Fu('{`)p Fr(7)p Fu(')g(or)g(`)p Fr(1)p Fu('{`)p
+Fr(15)p Fu('\).)42 b(This)28 b(do)s(es)i(not)h(sa)m(v)m(e)h(to)f
+(NVRAM,)h(so)e(when)g(the)390 5340 y(prin)m(ter)f(is)g(p)s(o)m(w)m
+(ered)i(o\013,)g(the)f(setting)h(will)d(b)s(e)h(lost.)p
+eop
+%%Page: 68 73
+68 72 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(68)2826 299 y(ESC/P2)30 b(remote)i(command)-3725 b
+Fh(*)38 b(DA)h Fm(BC)8 b Fh(=6)39 b(00)g Fm(xx)44 b Fh(00)39
+b Fm(yy)46 b Fh(09)39 b(00)390 408 y Fu(Set)24 b(results)e(for)h
+(alternate)h(alignmen)m(t)f(pattern.)39 b Fm(xx)29 b
+Fu(app)s(ears)23 b(to)h(b)s(e)f(the)h(pass,)h(and)e Fm(yy)31
+b Fu(app)s(ears)390 518 y(to)k(b)s(e)e(the)i(optim)m(um)e(pattern.)52
+b(This)33 b(do)s(es)h(not)g(sa)m(v)m(e)i(to)f(NVRAM,)g(so)f(when)g(the)
+g(prin)m(ter)f(is)390 628 y(p)s(o)m(w)m(ered)d(o\013,)h(the)g(setting)f
+(will)e(b)s(e)i(lost.)2826 869 y(ESC/P2)g(remote)i(command)-3725
+b Fh(*)38 b(SV)h Fm(BC)8 b Fh(=0)390 979 y Fu(Sa)m(v)m(e)32
+b(the)e(curren)m(t)g(settings)h(to)g(NVRAM.)2826 1220
+y(ESC/P2)f(remote)i(command)-3725 b Fh(*)38 b(RS)h Fm(BC)8
+b Fh(=1)39 b(01)390 1330 y Fu(Reset)31 b(the)g(prin)m(ter.)2826
+1571 y(ESC/P2)f(remote)i(command)-3725 b Fh(*)38 b(IQ)h
+Fm(BC)8 b Fh(=1)39 b(01)390 1681 y Fu(Get)e(ink)d(quan)m(tit)m(y)-8
+b(.)57 b(This)34 b(requires)g(direct)h(access)i(to)g(the)f(prin)m(ter)e
+(p)s(ort.)56 b(The)35 b(return)f(lo)s(oks)390 1790 y(lik)m(e)630
+1921 y Fr(IQ:KKCCMMYY)390 2058 y Fu(or)630 2189 y Fr(IQ:KKCCMMYYccmm)
+390 2326 y Fu(\(for)c(4-color)g(and)f(6-color)h(prin)m(ters)e(resp)s
+(ectiv)m(ely\),)i(where)f(eac)m(h)i(pair)d(of)i(digits)e(are)i
+(hexadeci-)390 2436 y(mal)g(represen)m(tations)g(of)h(p)s(ercen)m(t.)
+275 2625 y(The)e(follo)m(wing)g(t)m(w)m(o)j(commands)e(ha)m(v)m(e)i(b)s
+(een)d(observ)m(ed)i(on)f(an)g(STP)g(870.)2826 2866 y(ESC/P2)g(remote)i
+(command)-3725 b Fh(*)38 b(IR)h Fm(BC)8 b Fh(=2)39 b(00)g
+Fm(xx)390 2976 y Fi(F)-8 b(unction)33 b(unkno)m(wn)p
+Fu(.)46 b(This)31 b(command)h(has)h(b)s(een)f(observ)m(ed)g(on)h(an)f
+(STP)g(870)i(with)d Fm(xx)6 b Fu(=`)p Fr(03)p Fu(')390
+3085 y(at)32 b(the)f(start)g(of)h(a)f(job)g(and)f Fm(xx)6
+b Fu(=`)p Fr(02)p Fu(')31 b(at)h(the)f(end)f(of)h(a)h(job)e(\(where)h
+(it)g(is)f(follo)m(w)m(ed)g(b)m(y)h(an)g(`)p Fr(LD)p
+Fu(')390 3195 y(command\).)57 b(When)36 b(in)f(roll)f(mo)s(de,)j(the)f
+(v)-5 b(alues)35 b(c)m(hange)i(to)g Fm(xx)6 b Fu(=`)p
+Fr(01)p Fu(')36 b(at)g(the)g(start)h(of)f(a)g(job)390
+3305 y(and)30 b Fm(xx)6 b Fu(=`)p Fr(00)p Fu(')30 b(at)h(the)g(end)e
+(of)i(a)g(job.)2826 3546 y(ESC/P2)f(remote)i(command)-3725
+b Fh(*)38 b(FP)h Fm(BC)8 b Fh(=3)39 b(00)g Fm(xx)44 b(yy)390
+3656 y(xx)6 b Fu(=`)p Fr(00)p Fu(')20 b(and)g Fm(yy)8
+b Fu(=`)p Fr(00)p Fu(')20 b(selects)h(the)f(prin)m(ter's)g(normal)f
+(left)h(margin)f(\(ab)s(out)i(3mm\).)38 b Fm(xx)6 b Fu(=`)p
+Fr(0xb0)p Fu(')390 3765 y(and)25 b Fm(yy)8 b Fu(=`)p
+Fr(0xff)p Fu(')25 b(selects)i(zero-margin)f(mo)s(de,)g(where)g(the)g
+(left-most)h(prin)m(t)d(p)s(osition)g(is)h(shifted)390
+3875 y(to)30 b(a)g(p)s(oin)m(t)f(ab)s(out)g(0.1)p Fr(")i
+Fu(to)f(the)g(left)f(of)h(the)g(left-hand)f(edge)h(of)g(the)g(pap)s
+(er,)f(allo)m(wing)f(prin)m(ting)390 3984 y(up)h(to)i(\(and)g(o\013)7
+b(\))31 b(the)f(left-hand)g(edge)h(of)f(the)h(pap)s(er.)275
+4174 y(The)i(commands)h(b)s(elo)m(w)f(are)i(partially)d(do)s(cumen)m
+(ted)i(in)f(the)h(St)m(ylus)f(Pro)h(9000)i(man)m(ual.)52
+b(Muc)m(h)150 4283 y(of)31 b(this)e(information)f(is)i(in)m(terpreted;)
+g(none)g(is)f(tested.)2826 4525 y(ESC/P2)h(remote)i(command)-3725
+b Fh(*)38 b(SN)h Fm(BC)8 b Fh(=3)39 b(00)g Fm(xx)44 b(yy)390
+4634 y Fu(Select)31 b(Mec)m(hanism)g(Sequence.)42 b Fm(xx)37
+b Fu(con)m(trols)31 b(whic)m(h)f(sub-op)s(eration)f(is)h(p)s(erformed.)
+41 b Fm(xx)6 b Fu(=`)p Fr(00)p Fu(')390 4744 y(selects)36
+b(the)g(\\F)-8 b(eed)38 b(pap)s(er)d(sequence)h(setting".)58
+b Fm(yy)43 b Fu(can)37 b(tak)m(e)g(on)f(the)g(follo)m(wing)e(v)-5
+b(alues)36 b(\(on)390 4853 y(the)31 b(STP)e(870,)j(at)f(an)m(y)g
+(rate\):)390 5016 y(`)p Fr(0)p Fu(')382 b(default)390
+5178 y(`)p Fr(1)p Fu(')g(plain)28 b(pap)s(er)390 5340
+y(`)p Fr(2)p Fu(')382 b(p)s(ostcards)p eop
+%%Page: 69 74
+69 73 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(69)390 299 y(`)p Fr(3)p Fu(')382 b(\014lm)29 b(\(photo)i(qualit)m(y)e
+(glossy)h(\014lm,)g(transparencies\))390 462 y(`)p Fr(4)p
+Fu(')382 b(en)m(v)m(elop)s(es)390 626 y(`)p Fr(5)p Fu(')g(plain)28
+b(pap)s(er)i(\(fast)h(load\))390 789 y(`)p Fr(6)p Fu(')382
+b(bac)m(k)29 b(ligh)m(t)e(\014lm)g(\(although)g(this)g(has)h(b)s(een)f
+(observ)m(ed)i(with)d(hea)m(vyw)m(eigh)m(t)k(matte)870
+899 y(pap)s(er\))390 1062 y(`)p Fr(7)p Fu(')382 b(matte)24
+b(pap)s(er)d(\(observ)m(ed)j(with)d(360)j(dpi)d(inkjet)h(pap)s(er,)h
+(and)f(photo)h(qualit)m(y)f(inkjet)870 1172 y(pap)s(er\))390
+1335 y(`)p Fr(8)p Fu(')382 b(photo)31 b(pap)s(er)390
+1500 y(Exp)s(erimen)m(tation)36 b(suggests)h(that)h(this)e(setting)h(c)
+m(hanges)h(details)e(of)i(ho)m(w)f(the)g(prin)m(ters')f(cut)390
+1610 y(sheet)31 b(feeder)f(w)m(orks,)h(presumably)d(to)j(tune)f(it)g
+(for)g(di\013eren)m(t)g(t)m(yp)s(es)g(of)h(pap)s(er.)390
+1748 y Fm(xx)6 b Fu(=`)p Fr(01)p Fu(')41 b(con)m(trols)g(the)g(platen)g
+(gap)g(setting;)46 b Fm(yy)8 b Fu(=`)p Fr(00)p Fu(')41
+b(is)f(the)h(default,)i Fm(yy)8 b Fu(=`)p Fr(1)p Fu(')40
+b(or)h(`)p Fr(2)p Fu(')h(are)390 1858 y(higher)29 b(settings.)390
+1997 y Fm(xx)6 b Fu(=`)p Fr(02)p Fu(')36 b(con)m(trols)h(pap)s(er)f
+(loading)f(sp)s(eed)h(\()p Fm(yy)8 b Fu(=`)p Fr(0)p Fu(')37
+b(is)e(normal,)j(`)p Fr(1)p Fu(')e(is)g(fast,)j(`)p Fr(2)p
+Fu(')e(is)e(slo)m(w\).)60 b(It)390 2106 y(app)s(ears)35
+b(that)i(`)p Fr(1)p Fu(')f(is)g(used)f(when)g(prin)m(ting)f(on)i
+(\\plain)f(pap)s(er",)i(\\360dpi)f(ink)f(jet)h(pap)s(er")g(or)390
+2216 y(\\ink)29 b(jet)i(transparencies",)g(and)e Fm(yy)8
+b Fu(=`)p Fr(00)p Fu(')30 b(for)g(all)f(other)i(pap)s(er)e(t)m(yp)s(e)i
+(settings.)390 2354 y Fm(xx)6 b Fu(=`)p Fr(07)p Fu(')34
+b(con)m(trols)h(duplex)d(prin)m(ting)g(for)i(prin)m(ters)f(with)g(that)
+i(capabilit)m(y)e(\()p Fm(yy)8 b Fu(=)p Fm(0)42 b Fu(is)33
+b(default,)390 2464 y(for)d(non-duplex)e(prin)m(ting;)h(`)p
+Fr(1)p Fu(')h(is)g(fron)m(t)g(side)g(of)g(the)h(pap)s(er,)e(and)h
+Fm(2)38 b Fu(is)29 b(bac)m(k)j(side\).)390 2602 y Fm(xx)6
+b Fu(=`)p Fr(09)p Fu(')30 b(con)m(trols)h(zero)g(margin)f(prin)m(ting)e
+(on)i(the)h(prin)m(ters)e(with)g(the)h(capabilit)m(y)g(of)g(prin)m
+(ting)390 2712 y(zero-margin)j(on)g(all)f(sides)g(\(St)m(ylus)g(Photo)h
+(780/790,)38 b(890,)d(and)d(1280/1290\).)53 b Fm(yy)8
+b Fu(=`)p Fr(0)p Fu(')33 b(is)f(the)390 2821 y(default;)e(`)p
+Fr(1)p Fu(')g(enables)g(zero)h(margin)f(prin)m(ting.)2826
+3067 y(ESC/P2)g(remote)i(command)-3725 b Fh(*)38 b(PP)h
+Fm(BC)8 b Fh(=3)39 b(00)g Fm(xx)44 b(yy)390 3177 y Fu(Set)36
+b(P)m(ap)s(er)g(P)m(ath.)57 b Fm(xx)6 b Fu(=`)p Fr(2)p
+Fu(')36 b(indicates)f(man)m(ual)g(feed,)j Fm(xx)6 b Fu(=`)p
+Fr(3)p Fu(')36 b(is)f(for)g(roll)g(pap)s(er.)56 b Fm(yy)43
+b Fu(selects)390 3287 y(\\pap)s(er)30 b(path)g(n)m(um)m(b)s(er".)2826
+3533 y(ESC/P2)g(remote)i(command)-3725 b Fh(*)38 b(AC)h
+Fm(BC)8 b Fh(=2)39 b(00)g Fm(xx)390 3642 y Fu(Set)33
+b(Auto)f(Cutting)g(State.)47 b Fm(xx)6 b Fu(=`)p Fr(0)p
+Fu(')33 b(selects)f(auto)h(cutting)f(o\013,)i Fm(xx)6
+b Fu(=`)p Fr(1)p Fu(')32 b(selects)h(auto)g(cutting)390
+3752 y(on,)42 b(and)d Fm(xx)6 b Fu(=`)p Fr(2)p Fu(')39
+b(indicates)f(horizon)m(tal)h(prin)m(t)f(page)j(line)c(on.)68
+b(It)40 b(app)s(ears)e(that)i(with)e(auto)390 3862 y(cutting)32
+b(on,)h(roll)e(pap)s(er)g(is)h(cut)g(automatically)h(at)g(the)f(p)s
+(oin)m(t)g(a)h(formfeed)f(c)m(haracter)i(is)d(sen)m(t.)390
+3971 y(The)g(formfeed)f(c)m(haracter)j(is)d(normally)f(used)h(to)i
+(eject)h(a)e(page;)h(with)e(this)g(turned)g(on,)h(it)g(also)390
+4081 y(cuts)j(the)g(roll)e(pap)s(er.)49 b(Horizon)m(tal)34
+b(prin)m(t)f(page)h(line)e(on)i(prin)m(ts)e(a)i(narro)m(w)f(line)f(of)i
+(blac)m(k)g(dots)390 4190 y(at)d(the)g(p)s(osition)d(the)j(pap)s(er)e
+(should)f(b)s(e)i(cut)h(man)m(ually)-8 b(.)2826 4436
+y(ESC/P2)30 b(remote)i(command)-3725 b Fh(*)38 b(DR)h
+Fm(BC)8 b Fh(=4)39 b(00)g(xx)g Fm(DT2)390 4546 y Fu(Set)31
+b(Drying)f(Time.)40 b Fm(xx)6 b Fu(=`)p Fr(00)p Fu(')31
+b(sets)g(the)g(drying)d(time)j(\\p)s(er)f(scan")h(\(p)s(er)f(pass?\);)h
+Fm(xx)6 b Fu(=`)p Fr(01)p Fu(')31 b(sets)390 4656 y(the)h(drying)e
+(time)i(p)s(er)f(page.)46 b Fm(DT)38 b Fu(indicates)31
+b(the)h(drying)e(time,)i(whic)m(h)f(is)g(in)g(seconds)g(if)g(page)390
+4765 y(mo)s(de)38 b(is)f(used)g(and)h(in)e(milliseconds)f(if)i(scan)h
+(mo)s(de)g(is)f(used.)63 b Fm(DT)45 b Fu(m)m(ust)38 b(not)g(exceed)h
+(3600)390 4875 y(seconds)30 b(in)f(p)s(er-page)i(mo)s(de)f(and)g(10000)
+i(milliseconds)27 b(in)i(p)s(er-scan)h(mo)s(de.)2826
+5121 y(ESC/P2)g(remote)i(command)-3725 b Fh(*)38 b(IK)h
+Fm(BC)8 b Fh(=2)39 b(00)g Fm(xx)390 5230 y Fu(Select)j(Ink)f(T)m(yp)s
+(e.)73 b Fm(xx)6 b Fu(=`)p Fr(00)p Fu(')42 b(selects)g(dy)m(e)g(ink.)73
+b(Pigmen)m(t)41 b(ink)f(is)h(apparen)m(tly)g(selected)h(b)m(y)390
+5340 y Fm(xx)6 b Fu(=`)p Fr(01)p Fu('.)41 b(This)28 b(probably)h(do)s
+(es)h(not)g(apply)f(to)i(the)g(consumer-grade)g(prin)m(ters.)p
+eop
+%%Page: 70 75
+70 74 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(70)2826 299 y(ESC/P2)30 b(remote)i(command)-3725 b
+Fh(*)38 b(PZ)h(BC=2)h(00)e(xx)390 408 y Fu(Set)h(P)m(ause)g(After)f
+(Prin)m(ting.)64 b Fm(xx)6 b Fu(=`)p Fr(00)p Fu(')38
+b(selects)h(no)f(pause)g(after)i(prin)m(ting;)g Fm(xx)6
+b Fu(=`)p Fr(01)p Fu(')38 b(selects)390 518 y(pause)j(after)g(prin)m
+(ting.)70 b(If)41 b(turned)f(on,)j(the)f(prin)m(ter)d(is)h(paused)g
+(after)i(the)f(page)h(is)e(ejected)390 628 y(\(b)m(y)34
+b(the)f(FF)i(b)m(yte\).)51 b(If)33 b(cutting)g(is)g(turned)f(on,)j(the)
+e(prin)m(ter)f(is)h(paused)g Fi(after)h Fu(the)g(cutting)f(or)390
+737 y(prin)m(ting)28 b(of)j(the)f(horizon)m(tal)g(cut)h(line.)2826
+961 y(ESC/P2)f(remote)i(command)-3725 b Fh(*)38 b(EX)h
+Fm(BC)8 b Fh(=6)39 b(00)g(00)g(00)f(00)h(0x14)h Fm(xx)390
+1071 y Fu(Set)32 b(V)-8 b(ertical)33 b(Prin)m(t)e(P)m(age)j(Line)d(Mo)s
+(de.)47 b Fm(xx)6 b Fu(=`)p Fr(00)p Fu(')32 b(is)f(o\013,)j
+Fm(xx)6 b Fu(=`)p Fr(01)p Fu(')32 b(is)f(on.)46 b(If)32
+b(turned)f(on,)i(this)390 1181 y(prin)m(ts)c(v)m(ertical)h(trim)g
+(lines)e(at)j(the)g(left)f(and)g(righ)m(t)g(margins.)2826
+1405 y(ESC/P2)g(remote)i(command)-3725 b Fh(*)38 b(EX)h
+Fm(BC)8 b Fh(=6)39 b(00)g(00)g(00)f(00)h(0x05)h Fm(xx)390
+1514 y Fu(Set)30 b(Roll)f(P)m(ap)s(er)g(Mo)s(de.)41 b(If)29
+b Fm(xx)36 b Fu(is)29 b(`)p Fr(0)p Fu(',)h(roll)e(pap)s(er)h(mo)s(de)g
+(is)g(o\013;)i(if)d Fm(xx)36 b Fu(is)29 b(`)p Fr(1)p
+Fu(',)h(roll)f(pap)s(er)f(mo)s(de)390 1624 y(is)h(on.)2826
+1848 y(ESC/P2)h(remote)i(command)-3725 b Fh(*)38 b(EX)h
+Fm(BC)8 b Fh(=3)39 b(00)g Fm(xx)44 b(yy)390 1958 y Fu(App)s(ears)29
+b(to)i(b)s(e)f(a)h(synon)m(ym)f(for)g(the)g(`)p Fr(SN)p
+Fu(')h(command)f(describ)s(ed)e(ab)s(o)m(v)m(e.)2826
+2182 y(ESC/P2)i(remote)i(command)-3725 b Fh(*)38 b(PH)h
+Fm(BC)8 b Fh(=2)39 b(00)g Fm(xx)390 2292 y Fu(Select)c(P)m(ap)s(er)f
+(Thic)m(kness.)51 b(Set)34 b(the)h(pap)s(er)e(thic)m(kness)h
+Fm(xx)40 b Fu(in)33 b(.1)i(mm)f(units.)51 b(This)33 b(m)m(ust)h(not)390
+2401 y(exceed)j(0x10)g(\(1.6)g(mm\).)56 b(If)36 b(the)f(thic)m(kness)h
+(is)e(set)j Fr(")p Fu(more)e(than)p Fr(")g Fu(.6)i(mm)e(\(whic)m(h)g
+(probably)390 2511 y(means)e Fr(")p Fu(at)g(least)p Fr(")g
+Fu(.6)g(mm,)h(since)e(the)h(other)g(case)h(reads)f Fr(")p
+Fu(less)f(than)g(0.5)i(mm)p Fr(")p Fu(\),)f(the)h(platen)390
+2620 y(gap)d(is)e(set)i(high)e(irresp)s(ectiv)m(e)g(of)i(the)g(`)p
+Fr(SN)p Fu(')f(command.)2826 2845 y(ESC/P2)g(remote)i(command)-3725
+b Fh(*)38 b(PM)h Fm(BC)8 b Fh(=2)39 b(00)g(00)390 2954
+y Fi(F)-8 b(unction)32 b(unkno)m(wn)p Fu(.)43 b(Used)31
+b(on)h(the)g(STC)e(3000)j(at)g(least)e(when)g(using)f(roll)g(feed,)i
+(and)f(on)h(the)390 3064 y(STP)d(870)j(in)d(all)g(prin)m(t)g(\014les)h
+(analysed)f(to)i(date.)2826 3288 y(ESC/P2)f(remote)i(command)-3725
+b Fh(*)38 b(ST)h Fm(BC)8 b Fh(=2)39 b(00)g Fm(xx)390
+3398 y Fu(Epson's)24 b(STP)f(750/1200)28 b(programming)c(guide)f
+(refers)h(to)i(the)f(`)p Fr(ST)p Fu(')f(command)g(as)h(\\Set)g(prin)m
+(ter)390 3507 y(state)37 b(reply".)56 b(If)35 b Fm(xx)42
+b Fu(is)35 b(`)p Fr(0)p Fu(')h(or)f(`)p Fr(2)p Fu(',)j(the)e(prin)m
+(ter)e(will)f(not)j(send)f(status)h(replies.)55 b(If)35
+b Fm(xx)42 b Fu(is)35 b(`)p Fr(1)p Fu(')390 3617 y(or)h(`)p
+Fr(3)p Fu(',)h(the)f(prin)m(ter)e(will)f(send)i(status)h(replies.)55
+b(The)36 b(status)g(replies)d(consist)j(of)g(state,)i(error)390
+3726 y(co)s(des,)31 b(ink)e(lev)m(e,)i(\014rm)m(w)m(are)f(v)m(ersion,)g
+(and)g(w)m(arning)f(status.)390 3859 y(The)h(actual)h(reply)e(is)g(do)s
+(cumen)m(ted)h(as)630 3986 y Fr(@BDC)47 b(ST\\r)630 4089
+y(ST:)g(xx;)630 4193 y([ER:)g(yy;])630 4297 y(IQ:)g(n1n2n3n4;)630
+4401 y([WR:)g(w1,w2...;])630 4504 y(RV:)g(zz;)630 4608
+y(AI:CW:02kkccmmyy,)c(MI:mm)630 4712 y([TC:tttt;])630
+4816 y(INK:...;)630 4920 y(\\f)390 5052 y Fu(\(`)p Fr(\\r)p
+Fu(')31 b(is)e(carriage)i(return;)f(`)p Fr(\\n)p Fu(')g(is)f(newline;)g
+(`)p Fr(\\f)p Fu(')h(is)f(formfeed.\))390 5185 y(`)p
+Fr(ST)p Fu(')h(is)g(the)g(prin)m(ter)f(status:)390 5340
+y(`)p Fr(00)p Fu(')334 b(Error)p eop
+%%Page: 71 76
+71 75 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(71)390 299 y(`)p Fr(01)p Fu(')334 b(Self-test)390 457
+y(`)p Fr(02)p Fu(')g(Busy)390 616 y(`)p Fr(03)p Fu(')g(W)-8
+b(aiting)30 b(while)f(prin)m(ting)390 774 y(`)p Fr(04)p
+Fu(')334 b(Idle)390 933 y(`)p Fr(07)p Fu(')g(Cleaning/\014lling)26
+b(ink)k(heads)390 1091 y(`)p Fr(08)p Fu(')334 b(Not)31
+b(y)m(et)h(initialized/\014lling)25 b(heads)390 1250
+y(`)p Fr(ER)p Fu(',)31 b(if)e(pro)m(vided,)g(is)h(the)g(error)g
+(status:)390 1408 y(`)p Fr(00)p Fu(')334 b(F)-8 b(atal)32
+b(error)390 1567 y(`)p Fr(01)p Fu(')334 b(In)m(terface)32
+b(not)e(selected)390 1725 y(`)p Fr(04)p Fu(')334 b(P)m(ap)s(er)30
+b(jam)390 1884 y(`)p Fr(05)p Fu(')334 b(Out)30 b(of)g(ink)390
+2042 y(`)p Fr(06)p Fu(')334 b(P)m(ap)s(er)30 b(out)390
+2201 y(`)p Fr(IQ)p Fu(')k(is)f(the)h(amoun)m(t)g(of)h(ink)d(left,)j(as)
+f(a)h(\(decimal!\))51 b(p)s(ercen)m(tage)35 b(expressed)f(in)e
+(hexadecimal.)390 2311 y(The)d(v)-5 b(alues)28 b(are)i(blac)m(k,)g(cy)m
+(an,)g(magen)m(ta,)i(and)c(y)m(ello)m(w)h(\(presumably)f(6-color)i
+(prin)m(ters)d(supply)390 2420 y(ligh)m(t)j(cy)m(an)h(and)e(ligh)m(t)h
+(magen)m(ta)i(inks)d(as)i(additional)d(parameters\).)390
+2554 y(`)p Fr(WR)p Fu(',)j(if)e(pro)m(vided,)g(is)h(the)g(w)m(arning)f
+(status:)390 2713 y(`)p Fr(10)p Fu(')334 b(Blac)m(k)31
+b(ink)e(lo)m(w)390 2871 y(`)p Fr(11)p Fu(')334 b(Cy)m(an)390
+3030 y(`)p Fr(12)p Fu(')g(Magen)m(ta)390 3188 y(`)p Fr(13)p
+Fu(')g(Y)-8 b(ello)m(w)390 3347 y(`)p Fr(14)p Fu(')334
+b(Ligh)m(t)30 b(cy)m(an)h(\(presumably\))390 3505 y(`)p
+Fr(15)p Fu(')334 b(Ligh)m(t)30 b(magen)m(ta)i(\(presumably\))390
+3664 y(`)p Fr(RV)p Fu(')e(is)g(the)g(\014rm)m(w)m(are)g(revision)f
+(\(one)i(b)m(yte)g(ASCI)s(I\).)390 3798 y(`)p Fr(AI)p
+Fu(')43 b(is)f(actuator)i(information.)76 b(These)43
+b(are)g(t)m(w)m(o)h(b)m(yte)f(ASCI)s(I)f(co)s(des)h(that)g(indicate)f
+(\\ink)390 3907 y(w)m(eigh)m(t)31 b(rank)f(ID")h(of)f(K)m(CMY,)h(resp)s
+(ectiv)m(ely)-8 b(.)390 4041 y(`)p Fr(TC)p Fu(',)31 b(if)e(pro)m
+(vided,)g(is)h(the)g(total)h(time)f(of)h(cleaning)e(or)i(ink)e
+(\014lling)e(\(?\).)390 4176 y(`)p Fr(INK:)p Fu(')j(and)f(`)p
+Fr(MI)p Fu(')i(are)g Fi(not)f(do)s(cumen)m(ted)p Fu(.)2826
+4407 y(ESC/P2)g(remote)i(command)-3725 b Fh(*)38 b(SM)h
+Fm(BC)8 b Fh(=2)39 b(00)g Fm(xx)390 4517 y Fu(Set)30
+b(Status)g(Reply)e(Rate.)42 b Fm(xx)36 b Fu(is)28 b(the)i(rep)s(eat)g
+(in)m(terv)-5 b(al)29 b(in)f(seconds.)41 b(If)29 b Fm(xx)36
+b Fu(is)29 b(`)p Fr(0)p Fu(',)h(the)g(status)g(is)390
+4627 y(returned)f(only)h(when)f(the)i(prin)m(ter's)e(state)i(c)m
+(hanges.)2826 4859 y(ESC/P2)f(remote)i(command)-3725
+b Fh(*)38 b(ST)h Fm(BC)8 b Fh(=1)39 b(01)390 4968 y Fu(Reply)29
+b(Prin)m(ter)h(Status.)40 b(The)30 b(reply)f(is)h(formatted)h(as)630
+5096 y Fr(@BDC)47 b(PS\\r\\nST:)p Fm(xx)6 b Fr(;\\f)390
+5230 y Fu(\(`)p Fr(\\r)p Fu(')29 b(is)e(carriage)i(return;)f(`)p
+Fr(\\n)p Fu(')g(is)g(newline;)f(`)p Fr(\\f)p Fu(')h(is)g(formfeed\).)40
+b(If)28 b Fm(xx)34 b Fu(\(the)29 b(reply)e(v)-5 b(alue\))28
+b(is)g(`)p Fr(0)p Fu(')390 5340 y(or)i(`)p Fr(2)p Fu(',)h(automatic)g
+(status)g(up)s(date)f(is)f(disabled;)f(if)i(`)p Fr(1)p
+Fu(')g(or)h(`)p Fr(3)p Fu(',)f(it)g(is)g(enabled.)p eop
+%%Page: 72 77
+72 76 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(72)2826 299 y(ESC/P2)30 b(remote)i(command)-3725 b
+Fh(*)38 b(SM)h Fm(BC)8 b Fh(=1)39 b(01)390 408 y Fu(Reply)29
+b(Prin)m(ter)h(Status)g(Rate.)42 b(The)30 b(reply)f(is)g(formatted)i
+(as)630 538 y Fr(@BDC)47 b(PS\\r\\nST:xx;\\f)390 673
+y Fu(\(`)p Fr(\\r)p Fu(')27 b(is)e(carriage)i(return;)g(`)p
+Fr(\\n)p Fu(')g(is)e(newline;)h(`)p Fr(\\f)p Fu(')h(is)e(formfeed\).)40
+b(See)27 b(`)p Fr(SM)j Fm(BC)8 b Fr(=2)p Fu(')26 b(ab)s(o)m(v)m(e)h
+(for)g(the)390 783 y(meaning)j(of)g(the)h(return)e(v)-5
+b(alue.)2826 1019 y(ESC/P2)30 b(remote)i(command)-3725
+b Fh(*)38 b(??)h Fm(BC)8 b Fh(=)p Fm(xx)45 b(y)8 b Fh([1])39
+b(...)g Fm(y)8 b Fh([xx])390 1128 y Fu(Ec)m(ho)45 b(P)m(arameters)g
+(\(p)s(erhaps)e(b)s(etter)h(describ)s(ed)e(as)i(Ec)m(ho)h(Commands\).)
+81 b(The)43 b(command)390 1238 y(string)33 b(is)g(executed)h(\(it)g(w)m
+(ould)f(app)s(ear)g(from)g(the)h(do)s(cumen)m(tation\),)h(and)f(the)g
+(string)f(sen)m(t)h(is)390 1347 y(returned)29 b(using)g(a)i(sequence)g
+(similar)d(to)k(that)f(describ)s(ed)d(in)i(the)g(`)p
+Fr(ST)g Fm(BC)8 b Fr(=1)p Fu(')30 b(and)g(`)p Fr(SM)g
+Fm(BC)8 b Fr(=1)p Fu(')390 1457 y(commands.)40 b(Note)32
+b(that)f(in)e(this)g(case)j(the)e(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(is)
+e(v)-5 b(ariable!)2826 1693 y(ESC/P2)30 b(remote)i(command)-3725
+b Fh(*)38 b(SM)h Fm(BC)8 b Fh(=2)39 b(00)g(02)390 1803
+y Fi(F)-8 b(unction)31 b(unkno)m(wn)p Fu(.)39 b(Used)30
+b(on)h(the)f(STC)f(3000)j(at)g(least)e(when)g(using)e(roll)h(feed.)150
+2062 y Ft(C.4)68 b(Appropriate)45 b(Remote)i(Commands)275
+2255 y Fu(All)25 b(of)h(the)h(remote)h(commands)e(describ)s(ed)e(ab)s
+(o)m(v)m(e)k(are)f(wrapp)s(ed)d(up)i(with)f(the)i(usual)e(b)s
+(oilerplate.)150 2365 y(The)40 b(\014les)f(alw)m(a)m(ys)j(start)f(with)
+e(`)p Fr(00)30 b(00)g(00)p Fu(')40 b(and)g(the)g(\\magic")i(command)e
+(describ)s(ed)f(ab)s(o)m(v)m(e,)44 b(then)150 2474 y(t)m(w)m(o)32
+b(`)p Fr(ESC)e(@)p Fu('s)g(to)i(reset)f(the)g(prin)m(ter.)41
+b(The)30 b(remote)i(command)e(sequences)h(come)h(next;)g(if)d(they)i
+(prin)m(t)150 2584 y(an)m(ything)26 b(that)i(is)d(usually)g(follo)m(w)m
+(ed)h(b)m(y)h(a)g(`)p Fr(FF)p Fu(')g(\(0C)g(hex\))g(c)m(haracter)i(to)e
+(feed)g(the)g(page,)h(then)f(the)g(\014le)150 2693 y(ends)j(with)f
+(another)h(t)m(w)m(o)i(`)p Fr(ESC)e(@)p Fu('s)g(to)h(get)g(bac)m(k)h
+(to)f(the)f(ground)g(state.)275 2829 y(An)g(alignmen)m(t)f(sequence)i
+(go)s(es)g(lik)m(e)f(this:)199 2964 y(1.)61 b(Host)31
+b(uses)f(`)p Fr(DT)p Fu(')g(to)h(prin)m(t)e(an)i(alignmen)m(t)e(sheet)
+199 3099 y(2.)61 b(User)30 b(ey)m(eballs)g(the)h(sheet)g(to)g(see)g
+(whic)m(h)e(is)g(the)i(b)s(est)f(aligned)f(pattern.)199
+3233 y(3.)61 b(Host)31 b(sends)f(a)g(`)p Fr(DA)p Fu(')h(command)f
+(indicating)e(whic)m(h)h(pattern)i(the)f(user)g(c)m(hose)199
+3368 y(4.)61 b(If)30 b(the)g(user)g(said)g Fr(")p Fu(realign)p
+Fr(")p Fu(,)e(meaning)i(he)g(isn't)g(done)g(y)m(et,)i(go)f(to)g(step)g
+(1)199 3503 y(5.)61 b(W)-8 b(e)32 b(are)e(done:)41 b(host)30
+b(sends)g(a)h(`)p Fr(SV)p Fu(')f(command)g(and)g(exits)275
+3664 y(The)g(sequence)i(used)e(\(b)m(y)h(the)h(STC)e(3000,)j(at)f
+(least\))g(to)f(prin)m(t)f(from)h(the)g(roll)f(feed)h(is)f(\(with)g(b)m
+(yte)150 3773 y(coun)m(t)h(omitted\))629 3903 y Fr(PM)47
+b(00)g(00)629 4006 y(SN)g(00)g(00)g(00)629 4110 y(EX)g(00)g(00)g(00)g
+(00)h(05)f(01)629 4214 y(ST)g(00)g(01)629 4318 y(SM)g(00)g(02)275
+4453 y Fu(The)29 b(sequence)i(used)f(b)m(y)g(the)h(STP)e(870)j(to)f
+(prin)m(t)e(on)h(plain)e(pap)s(er)i(is)629 4582 y Fr(PM)47
+b(00)g(00)629 4686 y(IR)g(00)g(03)629 4790 y(SN)g(00)g(00)g(01)629
+4893 y(SN)g(00)g(01)g(00)629 4997 y(SN)g(00)g(02)g(01)629
+5101 y(EX)g(00)g(00)g(00)g(00)h(05)f(00)629 5205 y(FP)g(00)g(00)g(00)
+150 5340 y Fu(and)30 b(the)g(job)g(\014nishes)f(with)p
+eop
+%%Page: 73 78
+73 77 bop 150 -116 a Fu(App)s(endix)28 b(C:)i(ESC/P2)2640
+b(73)629 299 y Fr(IR)47 b(00)g(02)629 403 y(LD)275 537
+y Fu(F)-8 b(or)43 b(di\013eren)m(t)f(pap)s(er)g(t)m(yp)s(e)h(settings)g
+(on)g(the)g(STP)f(870,)47 b(the)c(argumen)m(ts)h(to)f(`)p
+Fr(SN)p Fu(')g(v)-5 b(ary)d(.)78 b(The)150 647 y(argumen)m(ts)37
+b(to)h(the)f(\014rst)f(and)g(third)f(`)p Fr(SN)p Fu(')i(commands)f(are)
+h(as)g(outlined)e(in)h(the)h(description)e(of)i(the)150
+756 y(`)p Fr(SN)p Fu(')c(command)g(ab)s(o)m(v)m(e;)k(the)c(argumen)m
+(ts)h(to)g(the)f(second)h(\(\\platen)f(gap"\))i(are)e(`)p
+Fr(00)d(01)g(01)p Fu(')j(for)g(thic)m(k)150 866 y(pap)s(ers)e
+(\(\\matte)k(pap)s(er|hea)m(vyw)m(eigh)m(t",)f(\\photo)g(pap)s(er")e
+(and)g(\\premium)f(glossy)h(photo)h(pap)s(er"\))150 976
+y(and)d(`)p Fr(00)g(01)g(00)p Fu(')g(for)g(all)f(others.)275
+1110 y(F)-8 b(or)41 b(roll-mo)s(de)e(prin)m(ting,)i(the)f(STP)g(870's)h
+(sequence)g(c)m(hanges)h(as)e(follo)m(ws.)70 b(`)p Fr(IR)p
+Fu(''s)41 b(argumen)m(ts)150 1220 y(b)s(ecome)35 b(`)p
+Fr(00)30 b(01)p Fu(')k(in)g(the)h(header,)g(and)f(`)p
+Fr(00)d(00)p Fu(')j(after)h(the)g(job,)h(and)e(`)p Fr(EX)p
+Fu(''s)g(last)h(argumen)m(t)g(c)m(hanges)150 1329 y(from)30
+b(`)p Fr(00)p Fu(')g(to)h(`)p Fr(01)p Fu('.)275 1464
+y(F)-8 b(or)27 b(zero-margin)g(prin)m(ting)d(on)j(the)g(STP)e(870,)k
+(the)e(argumen)m(ts)g(to)h(`)p Fr(FP)p Fu(')e(b)s(ecome)h(`)p
+Fr(00)j(0xb0)g(0xff)p Fu('.)150 1573 y(This)h(mo)m(v)m(es)j(the)f
+(origin)e(ab)s(out)i(5.5mm)g(to)g(the)g(left,)h(to)f(a)g(p)s(oin)m(t)f
+(one)h(ten)m(th)g(of)g(an)g(inc)m(h)f(to)h(the)g(left)150
+1683 y(of)g(the)g(left-hand)f(edge)i(of)f(the)g(pap)s(er,)g(allo)m
+(wing)e(prin)m(ting)g(righ)m(t)h(up)g(to)i(\(and)f(b)s(ey)m(ond\))f
+(the)h(edge)h(of)150 1792 y(the)g(pap)s(er.)50 b(Some)34
+b(prin)m(ters)e(\(at)j(least)f(the)g(STP)f(870\))i(include)c(white)i
+(absorb)s(en)m(t)h(pads)f(at)h(the)g(left)150 1902 y(margin)h(p)s
+(osition)f(and)h(other)h(p)s(ositions)e(\(89mm)i(and)f(100mm)i(on)e
+(the)h(STP)f(870\))j(to)e(soak)h(up)d(ink)150 2012 y(whic)m(h)e(misses)
+g(the)i(edge)g(of)f(the)h(pap)s(er.)48 b(Prin)m(ting)32
+b(o\013)i(the)f(edge)h(of)g(pap)s(er)e(of)h(a)h(width)e(not)h(aligned)
+150 2121 y(with)27 b(a)h(pad)f(could)g(result)g(in)g(making)g(a)h(mess)
+g(of)g(the)g(inside)e(of)i(the)g(prin)m(ter)e(and)i(ink)e(getting)j(on)
+f(the)150 2231 y(rev)m(erse)j(of)g(the)f(pap)s(er.)p
+eop
+%%Page: 74 79
+74 78 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(74)150 299 y Fp(App)t(endix)53 b(D)81 b(Adding)53
+b(a)h(new)f(prin)l(ter)275 506 y Fu(This)36 b(app)s(endix)f(co)m(v)m
+(ers)40 b(adding)c(a)i(new)g(ESCP/2,)h(PCL,)f(or)g(Canon)f(prin)m(ter.)
+62 b(W)-8 b(riting)37 b(a)h(new)150 616 y(driv)m(er)29
+b(mo)s(dule)g(is)g(not)i(co)m(v)m(ered.)275 745 y(The)e(three)i(steps)f
+(to)h(adding)e(a)i(prin)m(ter)e(are:)199 874 y(1.)61
+b(Add)29 b(an)i(en)m(try)f(to)h(`)p Fr(printers.xml)p
+Fu(')199 1003 y(2.)61 b(Add)29 b(the)i(appropriate)e(co)s(de)i(and)f
+(data)h(to)g(the)g(appropriate)e(driv)m(er)g(mo)s(dule)199
+1132 y(3.)61 b(T)-8 b(une)30 b(the)g(prin)m(ter)275 1281
+y(Prin)m(ter)i(information)f(is)h(stored)h(in)f(t)m(w)m(o)i(places:)46
+b(in)32 b(`)p Fr(printers.xml)p Fu(')e(\(whic)m(h)i(con)m(tains)h(the)g
+(list)150 1391 y(of)25 b(prin)m(ter)f(mo)s(dels)f(a)m(v)-5
+b(ailable)25 b(to)h(the)f(the)g(upp)s(er-lev)m(el)e(application\),)i
+(and)f(in)g(the)h(appropriate)f(driv)m(er)150 1500 y(\014le)29
+b(\(`)p Fr(print-escp2.c)p Fu(',)f(`)p Fr(print-pcl.c)p
+Fu(',)g(or)j(`)p Fr(print-canon.c)p Fu('\).)150 1742
+y Ft(D.1)68 b(`)p Fl(printers.xml)p Ft(')275 1929 y Fu(`)p
+Fr(printers.xml)p Fu(')30 b(is)i(an)i(XML-lik)m(e)f(\014le)f(\(there's)
+i(no)f(formal)g(DTD\))h(that)g(con)m(tains)f(v)m(ery)h(simple)150
+2038 y(prin)m(ter)29 b(de\014nitions.)38 b(A)31 b(t)m(ypical)f
+(de\014nition)e(follo)m(ws:)390 2162 y Fr(<printer)46
+b(name="EPSON)e(Stylus)i(Color)h(1500")f(driver="escp2-1500">)390
+2266 y(<color>)390 2369 y(<model)g(value=2>)390 2473
+y(<gamma)g(value=0.597>)390 2577 y(<density)g(value=1.0>)390
+2681 y(<language)f(value=escp2>)390 2784 y(</printer>)275
+2914 y Fu(There)f(are)i(other)g(tags)g(that)g(ma)m(y)g(b)s(e)f(presen)m
+(t.)86 b(The)44 b(only)h(ones)g(that)h(are)g(mandatory)g(are)150
+3023 y(`)p Fr(<printer>)p Fu(',)51 b(`)p Fr(<color>)p
+Fu(',)h(`)p Fr(<model>)p Fu(',)g(and)c(`)p Fr(<language>)p
+Fu('.)93 b(The)48 b(other)h(optional)f(parameters)150
+3133 y(\(gamma)34 b(and)d(densit)m(y)h(in)f(this)g(case\))j(can)f(b)s
+(e)f(used)f(to)i(adjust)f(con)m(trol)h(settings.)47 b(This)30
+b(is)i(probably)150 3242 y(not)38 b(the)g(righ)m(t)f(place)h(for)f
+(them;)k(the)d(prin)m(ter)f(driv)m(ers)f(themselv)m(es)i(should)d(con)m
+(tain)j(this)f(informa-)150 3352 y(tion.)43 b(There's)30
+b(probably)g(no)h(go)s(o)s(d)g(reason)g(for)g(an)m(ything)g(but)f
+(gamma)i(and)f(densit)m(y)f(to)i(b)s(e)f(in)f(here.)150
+3462 y(Gamma)40 b(refers)f(to)g(the)h(prin)m(ter's)e(gamma)i(factor;)k
+(densit)m(y)39 b(is)f(the)h(desired)f(base)h(ink)f(densit)m(y)g(for)150
+3571 y(the)h(prin)m(ter.)66 b(The)39 b(Epson)g(driv)m(er)f(con)m(tains)
+h(the)g(densit)m(y)g(information)e(for)i(eac)m(h)i(prin)m(ter)d(at)i
+(eac)m(h)150 3681 y(resolution)27 b(in)m(ternally)-8
+b(.)38 b(An)28 b(ev)m(en)i(b)s(etter)e(driv)m(er)f(w)m(ould)g(adjust)h
+(densit)m(y)g(and)g(p)s(ossibly)d(ev)m(en)k(gamma)150
+3790 y(for)h(pap)s(er)f(t)m(yp)s(e.)41 b(All)29 b(the)i(more)f(reason)h
+(not)g(to)g(ha)m(v)m(e)g(that)g(information)e(here.)275
+3919 y(If)38 b(y)m(ou)h(really)f(are)h(curious)e(ab)s(out)i(what)g
+(tags)h(are)f(p)s(ermitted,)h(please)e(see)i(`)p Fr(printdefl.l)p
+Fu('.)63 b(I)150 4029 y(delib)s(erately)28 b(w)m(an)m(t)j(to)h(mak)m(e)
+f(this)e(obscure.)275 4158 y(An)m(yw)m(a)m(y)-8 b(,)32
+b(here's)e(the)h(de\014nition)d(of)i(the)h(tags)g(that)g(do)f(matter:)
+3095 4365 y(`)p Fr(printers.xml)p Fu(')d(tag)-3723 b
+Fh(<printer)41 b(name=")p Fm(longname)5 b Fh(")40 b(driver=")p
+Fm(driv)m(ername)5 b Fh(">)390 4475 y Fu(This)36 b(starts)i(the)g
+(de\014nition)e(of)i(a)g(prin)m(ter.)62 b(The)37 b Fm(longname)43
+b Fu(should)35 b(b)s(e)j(something)f(h)m(uman)390 4585
+y(readable;)29 b(the)g Fm(driv)m(ername)j Fu(should)26
+b(consist)i(of)h(alphan)m(umerics)d(and)i(h)m(yphens,)g(and)g(b)s(e)g
+(fairly)390 4694 y(short.)38 b(The)21 b Fm(longname)27
+b Fu(is)22 b(what)g(will)d(app)s(ear)j(in)f(the)h(GUI)h(listing)d(of)i
+(prin)m(ters;)i(the)e Fm(driv)m(ername)390 4804 y Fu(is)35
+b(what)h(is)f(actually)g(used)g(to)i(k)m(ey)f(in)m(to)g(the)g(list)f
+(of)h(prin)m(ters.)55 b(It)36 b(is)f(legal)h(to)g(ha)m(v)m(e)h(m)m
+(ultiple)390 4913 y(prin)m(ters)29 b(with)g(the)i(same)f(driv)m(er)f
+(name.)3095 5121 y(`)p Fr(printers.xml)p Fu(')e(tag)-3723
+b Fh(<color>)3095 5230 y Fu(`)p Fr(printers.xml)p Fu(')27
+b(tag)-3723 b Fh(<nocolor>)390 5340 y Fu(Indicates)30
+b(that)h(this)e(prin)m(ter)g(is)h(capable)g(of)g(color,)h(or)f(is)g
+(not)g(capable)h(of)f(color)h(resp)s(ectiv)m(ely)p eop
+%%Page: 75 80
+75 79 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(75)3095 299 y(`)p Fr(printers.xml)p Fu(')27
+b(tag)-3723 b Fh(<model)40 b(value=)p Fm(in)m(t)r Fh(>)390
+408 y Fu(This)27 b(de\014nes)h(a)i(mo)s(del)e(n)m(um)m(b)s(er.)39
+b(This)27 b(is)h(passed)g(in)m(to)h(the)h(driv)m(er,)e(whic)m(h)g(ma)m
+(y)h(do)g(whatev)m(er)390 518 y(it)35 b(cares)g(to)h(with)e(it|index)f
+(in)m(to)i(a)h(table,)g(compute)g(on,)g(or)f(whatev)m(er.)56
+b(This)33 b(need)i(not)h(b)s(e)390 628 y(unique.)3095
+862 y(`)p Fr(printers.xml)p Fu(')27 b(tag)-3723 b Fh(<language)41
+b(value=)p Fm(t)m(yp)s(e)5 b Fh(>)390 971 y Fu(This)39
+b(de\014nes)h(what)h(driv)m(er)f(mo)s(dule)f(this)h(prin)m(ter)g(uses.)
+72 b Fm(t)m(yp)s(e)46 b Fu(should)39 b(b)s(e)h(`)p Fr(escp2)p
+Fu(',)j(`)p Fr(pcl)p Fu(',)390 1081 y(`)p Fr(canon)p
+Fu(',)30 b(or)g(`)p Fr(ps)p Fu('.)3095 1315 y(`)p Fr(printers.xml)p
+Fu(')d(tag)-3723 b Fh(</printer>)390 1425 y Fu(This,)29
+b(of)h(course,)h(closes)g(o\013)f(a)h(prin)m(ter)e(de\014nition.)275
+1609 y(This)39 b(is)h(handled)g(v)m(ery)i(ad-ho)s(c.)73
+b(It's)42 b(ugly)-8 b(.)73 b(But)41 b(it's)g(reasonably)g(easy)h(to)g
+(extend,)j(and)40 b(it's)150 1719 y(buzzw)m(ord-complian)m(t.)150
+1976 y Ft(D.2)68 b(The)44 b(driv)l(er)i(\014le)275 2169
+y Fu(Adding)61 b(a)j(new)f(prin)m(ter)f(to)i(a)g(driv)m(er)e(mo)s(dule)
+g(\(`)p Fr(print-escp2.c)p Fu(',)69 b(`)p Fr(print-pcl.c)p
+Fu(',)g(or)150 2278 y(`)p Fr(print-canon.c)p Fu('|`)p
+Fr(print-ps.c)p Fu(')43 b(is)k(really)h(ad)g(ho)s(c\))g(requires)f(a)i
+(bit)f(more)g(planning.)92 b(Eac)m(h)150 2388 y(driv)m(er)41
+b(is)g(somewhat)h(di\013eren)m(t,)j(but)c(they)i(all)e(generally)g(ha)m
+(v)m(e)i(a)g(v)m(ector)g(of)f(prin)m(ter)f(de\014nitions,)150
+2497 y(and)35 b(the)g(co)s(de)h(do)s(es)f(some)g(sp)s(ecial)f(casing)h
+(based)g(on)g(particular)f(prin)m(ter)g(capabilities.)53
+b(The)35 b(PCL)150 2607 y(and)c(Canon)h(driv)m(ers)e(are)i(quite)f
+(similar;)f(the)i(Canon)g(driv)m(er)e(w)m(as)j(actually)e(cribb)s(ed)e
+(from)j(the)g(PCL)150 2716 y(driv)m(er,)d(but)h(it)g(then)g(returned)f
+(the)i(fa)m(v)m(or.)275 2851 y(The)j(Epson)h(driv)m(er)e(is)i(a)g
+(little)f(bit)g(di\013eren)m(t.)55 b(Canon)35 b(and)f(PCL)h(prin)m
+(ters)e(ha)m(v)m(e)k(some)e(amoun)m(t)150 2961 y(of)c(in)m(telligence;)
+f(a)h(lot)f(of)h(them)g(ha)m(v)m(e)g(sp)s(eci\014c)f(ink)f(options,)h
+(and)g(kno)m(w)h(ab)s(out)f(sp)s(eci\014c)g(pap)s(er)f(sizes)150
+3070 y(and)c(t)m(yp)s(es,)i(and)e(m)m(ust)h(b)s(e)f(told)h(the)g(righ)m
+(t)f(thing.)38 b(Epson)25 b(prin)m(ters)g(ha)m(v)m(e)i(somewhat)f(less)
+f(in)m(telligence)150 3180 y(and)34 b(will)f(more)i(or)g(less)f(do)h
+(exactly)h(what)e(the)i(host)f(tells)f(it)g(to)i(do)f(in)e(a)j(fairly)d
+(regular)h(fashion.)53 b(I)150 3289 y(actually)29 b(prefer)h(this;)f
+(it)g(isn't)g(materially)g(more)h(w)m(ork)g(for)g(the)g(host)g(to)g
+(compute)g(things)f(lik)m(e)g(exact)150 3399 y(pap)s(er)23
+b(sizes)h(and)g(suc)m(h,)h(it)f(allo)m(ws)g(a)g(lot)h(more)f(t)m(w)m
+(eaking,)j(and)d(it)f(ma)m(y)i(b)s(e)f(wh)m(y)g(Epson)f(has)h(b)s(een)g
+(more)150 3509 y(op)s(en)31 b(with)g(information)f({)i(the)g(comm)m
+(unication)f(proto)s(col)g(do)s(esn't)h(really)f(con)m(tain)h(v)m(ery)g
+(m)m(uc)m(h)g(IP)-8 b(,)150 3618 y(so)31 b(they)f(ha)m(v)m(e)i(less)d
+(reason)i(to)g(k)m(eep)g(it)f(secret.)275 3753 y(Someone)g(else)h(will)
+c(ha)m(v)m(e)32 b(to)f(\014ll)d(in)h(the)i(sections)f(ab)s(out)g(PCL)g
+(and)g(Canon)g(prin)m(ters.)150 4010 y Ft(D.3)68 b(Epson)45
+b(inkjet)g(prin)l(ters)275 4203 y Fu(The)34 b(`)p Fr
+(model_capabilities)p Fu(')c(v)m(ector)36 b(in)d(`)p
+Fr(print-escp2.c)p Fu(')f(con)m(tains)j(one)g(en)m(try)g(for)f(eac)m(h)
+i(de-)150 4312 y(\014ned)29 b(prin)m(ter)g(mo)s(del.)40
+b(The)30 b(`)p Fr(model)p Fu(')f(parameter)i(in)e(`)p
+Fr(printers.xml)p Fu(')f(is)h(an)h(index)f(in)m(to)i(this)e(table.)275
+4447 y(In)43 b(general,)k(the)d(new)f(prin)m(ters)g(ha)m(v)m(e)i(few)m
+(er)f(eccen)m(tricities)g(than)f(the)h(older)f(prin)m(ters.)80
+b(That)150 4556 y(do)s(esn't)30 b(mean)h(they're)f(simpler,)f(just)g
+(that)i(they're)g(more)g(consisten)m(t.)275 4691 y(An)f
+Fr(escp2_printer_t)c Fu(is)j(a)i(C)f(struct)g(de\014ned)f(as)i(follo)m
+(ws:)3474 4925 y(Data)h(t)m(yp)s(e)-3724 b Fk(escp2)p
+427 4925 35 5 v 41 w(prin)m(ter)p 817 4925 V 39 w(t)630
+5029 y Fr(typedef)46 b(struct)g(escp2_printer)630 5132
+y({)725 5236 y(model_cap_t)f(flags;)h(/*)h(Bitmask)f(of)h(flags,)g(see)
+f(below)h(*/)630 5340 y(/***********************)o(****)o(****)o(***)o
+(****)o(****)o(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o
+(***)o(***/)p eop
+%%Page: 76 81
+76 80 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(76)725 299 y Fr(int)47 b(nozzles;)f(/*)h(Number)f(of)h
+(nozzles)f(per)h(color)f(*/)725 403 y(int)h(min_nozzles;)e(/*)i
+(Minimum)f(number)g(of)h(nozzles)f(per)h(color)f(*/)725
+506 y(int)h(nozzle_separation;)c(/*)k(Separation)e(between)h(rows,)h
+(in)g(1/360")f(*/)725 610 y(int)h(black_nozzles;)d(/*)j(Number)g(of)g
+(black)f(nozzles)g(\(may)h(be)g(extra\))f(*/)725 714
+y(int)h(min_black_nozzles;)c(/*)k(#)h(of)f(black)f(nozzles)g(\(may)h
+(be)g(extra\))f(*/)725 818 y(int)h(black_nozzle_separation;)42
+b(/*)47 b(Separation)e(between)h(rows)g(*/)725 922 y(int)h
+(fast_nozzles;)e(/*)i(Number)f(of)h(fast)g(nozzles)e(*/)725
+1025 y(int)i(min_fast_nozzles;)c(/*)48 b(#)f(of)g(fast)g(nozzles)f
+(\(may)g(be)i(extra\))e(*/)725 1129 y(int)h(fast_nozzle_separation;)42
+b(/*)47 b(Separation)e(between)h(rows)g(*/)630 1233 y
+(/***********************)o(****)o(****)o(***)o(****)o(****)o(***)o
+(****)o(****)o(***)o(****)o(****)o(***)o(****)o(***)o(***/)725
+1337 y(int)h(xres;)g(/*)g(Normal)f(distance)g(between)f(dots)i(in)g(*/)
+630 1440 y(/*)g(softweave)e(mode)i(\(inverse)f(inches\))f(*/)725
+1544 y(int)i(enhanced_xres;)d(/*)j(Distance)f(between)g(dots)g(in)i
+(highest)d(*/)630 1648 y(/*)i(quality)f(modes)g(*/)725
+1752 y(int)h(base_separation;)d(/*)j(Basic)f(unit)h(of)g(row)g
+(separation)e(*/)725 1856 y(int)i(base_resolution;)d(/*)j(Base)g
+(hardware)e(spacing)h(\(above)g(this)h(*/)630 1959 y(/*)g(always)f
+(requires)g(multiple)f(passes\))h(*/)725 2063 y(int)h
+(enhanced_resolution;/*)42 b(Above)k(this)h(we)g(use)g(the)g(*/)821
+2167 y(/*)g(enhanced_xres)d(rather)i(than)h(xres)g(*/)725
+2271 y(int)g(resolution_scale;)139 b(/*)47 b(Scaling)f(factor)g(for)h
+(ESC\(D)f(command)g(*/)725 2374 y(int)h(max_black_resolution;)42
+b(/*)48 b(Above)e(this)h(resolution,)d(we)j(*/)916 2478
+y(/*)h(must)e(use)h(color)f(parameters)f(*/)916 2582
+y(/*)j(rather)e(than)g(\(faster\))g(black)g(*/)916 2686
+y(/*)i(only)e(parameters*/)725 2790 y(int)h(max_hres;)725
+2893 y(int)g(max_vres;)725 2997 y(int)g(min_hres;)725
+3101 y(int)g(min_vres;)630 3205 y(/***********************)o(****)o
+(****)o(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o(****)o
+(***)o(****)o(***)o(***/)725 3308 y(int)g(max_paper_width;)d(/*)j
+(Maximum)f(paper)g(width,)g(in)h(points)f(*/)725 3412
+y(int)h(max_paper_height;)c(/*)48 b(Maximum)d(paper)i(height,)f(in)h
+(points)f(*/)725 3516 y(int)h(min_paper_width;)d(/*)j(Maximum)f(paper)g
+(width,)g(in)h(points)f(*/)725 3620 y(int)h(min_paper_height;)c(/*)48
+b(Maximum)d(paper)i(height,)f(in)h(points)f(*/)630 3724
+y(/*)h(Printer)f(interleave:)f(*/)725 3827 y(int)i(m_left_margin;)d(/*)
+j(Left)g(margin,)f(points)g(*/)725 3931 y(int)h(m_right_margin;)d(/*)j
+(Right)g(margin,)e(points)h(*/)725 4035 y(int)h(m_top_margin;)e(/*)i
+(Absolute)e(top)i(margin,)f(points)g(*/)725 4139 y(int)h
+(m_bottom_margin;)d(/*)j(Absolute)e(bottom)i(margin,)e(points)h(*/)630
+4242 y(/*)h(ROLL)g(FEED:)f(*/)630 4346 y(/*)h(Softweave:)e(*/)725
+4450 y(int)i(roll_left_margin;)c(/*)48 b(Left)e(margin,)g(points)g(*/)
+725 4554 y(int)h(roll_right_margin;)c(/*)k(Right)g(margin,)f(points)g
+(*/)725 4658 y(int)h(roll_top_margin;)d(/*)j(Absolute)e(top)i(margin,)f
+(points)g(*/)725 4761 y(int)h(roll_bottom_margin;)c(/*)k(Absolute)f
+(bottom)g(margin,)g(points)g(*/)630 4865 y(/*)h(Printer)f(interleave:)f
+(*/)725 4969 y(int)i(m_roll_left_margin;)c(/*)k(Left)g(margin,)f
+(points)g(*/)725 5073 y(int)h(m_roll_right_margin;)c(/*)k(Right)f
+(margin,)g(points)g(*/)725 5176 y(int)h(m_roll_top_margin;)c(/*)k
+(Absolute)f(top)h(margin,)f(points)g(*/)725 5280 y(int)h
+(m_roll_bottom_margin;)42 b(/*)48 b(Absolute)d(bottom)h(margin,)g
+(points)g(*/)p eop
+%%Page: 77 82
+77 81 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(77)630 299 y Fr(/***********************)o(****)o(****)o
+(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o(****)o(***)o
+(****)o(***)o(***/)725 403 y(int)47 b(extra_feed;)e(/*)i(Extra)g
+(distance)e(the)i(paper)f(can)h(be)h(spaced)e(*/)630
+506 y(/*)h(beyond)f(the)h(bottom)f(margin,)g(in)h(1/360".)f(*/)630
+610 y(/*)h(\(maximum)f(useful)g(value)g(is)h(*/)630 714
+y(/*)g(nozzles)f(*)h(nozzle_separation\))c(*/)725 818
+y(int)k(separation_rows;)d(/*)j(Some)g(printers)e(require)h(funky)g
+(spacing)g(*/)630 922 y(/*)h(arguments)e(in)j(interleave)d(mode.)h(*/)
+725 1025 y(int)h(pseudo_separation_rows;/*)41 b(Some)47
+b(printers)e(require)h(funky)h(*/)630 1129 y(/*)g(spacing)f(arguments)f
+(in)i(softweave)f(mode)g(*/)725 1337 y(int)525 b(zero_margin_offset;)
+138 b(/*)47 b(Offset)f(to)h(use)g(to)g(achieve)f(*/)916
+1440 y(/*)i(zero-margin)c(printing)i(*/)725 1544 y(int)h
+(initial_vertical_offset;)725 1648 y(int)g(black_initial_vertical_off)o
+(set)o(;)725 1752 y(int)g(extra_720dpi_separation;)630
+1959 y(/***********************)o(****)o(****)o(***)o(****)o(****)o
+(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o(***)o(***/)725
+2063 y(const)g(int)g(*dot_sizes;)d(/*)k(Vector)e(of)h(dot)g(sizes)f
+(for)h(resolutions)e(*/)725 2167 y(const)i(double)f(*densities;)f(/*)i
+(List)f(of)i(densities)d(for)i(each)f(printer)g(*/)725
+2271 y(const)h(escp2_variable_inklist_t)41 b(*inks;)46
+b(/*)h(Choices)f(of)h(inks)g(for)g(this)f(printer)g(*/)630
+2374 y(/***********************)o(****)o(****)o(***)o(****)o(****)o
+(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o(***)o(***/)725
+2478 y(const)h(paperlist_t)e(*paperlist;)725 2582 y(const)i(res_t)f
+(*reslist;)725 2686 y(const)h(inklist_t)e(*inklist;)630
+2790 y(/***********************)o(****)o(****)o(***)o(****)o(****)o
+(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o(***)o(***/)725
+2893 y(const)i(int)g(*bits;)725 2997 y(const)g(int)g
+(*base_resolutions;)725 3101 y(const)g(input_slot_list_t)c
+(*input_slots;)630 3205 y(/***********************)o(****)o(****)o(***)
+o(****)o(****)o(***)o(****)o(****)o(***)o(****)o(****)o(***)o(****)o
+(***)o(***/)725 3308 y(const)k(init_sequence_t)c(*preinit_sequence;)725
+3412 y(const)k(init_sequence_t)c(*postinit_remote_sequence;)630
+3516 y(})k(escp2_printer_t;)275 3756 y Fu(The)c(prin)m(ter)g
+(de\014nition)f(blo)s(c)m(k)i(is)f(divided)f(in)m(to)i(8)h(sections.)82
+b(The)44 b(\014rst)g(section)g(is)f(a)i(set)g(of)150
+3866 y(miscellaneous)33 b(prin)m(ter)g(options.)53 b(These)34
+b(are)h(describ)s(ed)e(in)g(the)i(co)s(de,)h(and)e(will)e(not)j(b)s(e)f
+(discussed)150 3976 y(further)29 b(here.)275 4138 y(The)21
+b(second)i(section)f(describ)s(es)f(the)h(n)m(um)m(b)s(er)f(of)i
+(nozzles)f(and)g(the)h(separation)f(b)s(et)m(w)m(een)h(nozzles)f(in)150
+4248 y(base)28 b(units.)38 b(The)28 b(base)g(unit)e(is)h(1/360)p
+Fr(")j Fu(for)e(all)f(curren)m(tly)g(supp)s(orted)f(prin)m(ters,)h(but)
+g(future)g(prin)m(ters)150 4357 y(ma)m(y)k(supp)s(ort)e(a)h(smaller)f
+(base)i(unit.)275 4520 y(Man)m(y)k(prin)m(ters)e(ha)m(v)m(e)i(more)g
+(blac)m(k)f(nozzles)h(than)f(nozzles)h(of)f(other)h(colors,)g(and)f
+(when)g(used)f(in)150 4629 y(blac)m(k)j(and)g(white)f(mo)s(de,)j(it's)e
+(p)s(ossible)e(to)j(use)f(these)g(extra)h(nozzles,)h(whic)m(h)d(sp)s
+(eeds)h(up)f(prin)m(ting.)150 4739 y(As)i(an)f(example,)j(a)e(prin)m
+(ter)e(that)i(is)f(sp)s(eci\014ed)f(to)j(ha)m(v)m(e)g(48)f(cy)m(an,)i
+(magen)m(ta,)i(and)36 b(y)m(ello)m(w)g(nozzles,)150 4849
+y(and)f(144)h(blac)m(k)g(nozzles,)h(can)e(use)g(all)g(144)h(blac)m(k)g
+(nozzles)f(when)f(prin)m(ting)g(blac)m(k)h(ink)f(only)-8
+b(.)55 b(When)150 4958 y(prin)m(ting)28 b(in)h(color,)i(only)e(48)j
+(nozzles)e(of)h(eac)m(h)g(color)g(\(including)c(blac)m(k\))k(can)g(b)s
+(e)e(used.)275 5121 y(Most)45 b(prin)m(ters)e(can)h(prin)m(t)f(using)g
+(either)h(the)g(n)m(um)m(b)s(er)f(of)h(nozzles)h(a)m(v)-5
+b(ailable)44 b(or)g(an)m(y)g(smaller)150 5230 y(n)m(um)m(b)s(er.)39
+b(Some)29 b(prin)m(ters)e(require)h(that)h(all)f(of)h(the)g(nozzles)h
+(b)s(e)e(used.)39 b(Those)29 b(prin)m(ters)e(will)g(set)i
+Fr(min_)150 5340 y(nozzles)22 b Fu(and/or)i Fr(min_black_nozzles)19
+b Fu(to)25 b(the)f(same)g(v)-5 b(alue)23 b(as)i Fr(nozzles)c
+Fu(and/or)j Fr(black_nozzles)p Fu(.)p eop
+%%Page: 78 83
+78 82 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(78)275 299 y(The)31 b(third)g(section)h(de\014nes)f(basic)h
+(units)e(of)j(measure)f(for)g(the)g(prin)m(ter,)g(including)c(the)33
+b(standard)150 408 y(separation)24 b(b)s(et)m(w)m(een)g(dots,)h(the)f
+(base)g(nozzle)g(separation,)h(and)e(the)h(minim)m(um)d(and)i(maxim)m
+(um)g(prin)m(t-)150 518 y(ing)28 b(resolutions)f(the)h(prin)m(ter)g
+(supp)s(orts.)38 b(Most)29 b(of)g(these)g(are)g(fairly)e
+(self-explanatory)-8 b(,)29 b(but)f(some)h(are)150 628
+y(not)i(ob)m(vious.)275 774 y(Most)44 b(Epson)e(prin)m(ters,)j(other)f
+(than)f(the)g(high-end)f(St)m(ylus)g(Pro)h(mo)s(dels,)i(cannot)f(prin)m
+(t)e(dots)150 883 y(spaced)30 b(more)g(closely)g(than)g(1/360)p
+Fr(")i Fu(or)e(1/720)p Fr(")i Fu(apart)e(\(this)g(is)f(the)h(setting)g
+(for)g Fr(xres)p Fu(.)40 b(This)28 b(is)h(true)150 993
+y(ev)m(en)c(for)g(prin)m(ters)e(that)i(supp)s(ort)e(resolutions)g(of)i
+(1440)i(or)d(2880)j(DPI.)e(In)f(these)h(cases,)i(the)e(data)g(m)m(ust)
+150 1103 y(b)s(e)33 b(prin)m(ted)f(in)g(2,)j(4,)g(or)f(8)g(passes.)50
+b(While)33 b(the)g(prin)m(ter)g(can)g(p)s(osition)f(the)i(head)f(to)i
+(a)f(resolution)e(of)150 1212 y(1/1440)p Fr(")h Fu(or)d(1/2880)p
+Fr(")p Fu(,)j(the)e(head)f(cannot)h(dep)s(osit)e(ink)g(that)i(frequen)m
+(tly)-8 b(.)275 1358 y(Some)25 b(prin)m(ters)e(can)j(only)e(prin)m(t)f
+(in)h(their)g(v)m(ery)i(b)s(est)e(qualit)m(y)h(\(using)f(the)h
+(smallest)f(dots)h(a)m(v)-5 b(ailable\))150 1468 y(prin)m(ting)29
+b(at)k(a)f(lo)m(w)m(er)g(resolution.)43 b(F)-8 b(or)32
+b(example,)g(the)g(St)m(ylus)e(Photo)j(EX)e(can)h(normally)e(prin)m(t)g
+(with)150 1577 y(a)f(dot)h(spacing)e(of)h(1/720)p Fr(")p
+Fu(.)42 b(The)29 b(smallest)f(dot)h(size)g(cannot)h(b)s(e)e(prin)m(ted)
+g(with)f(a)j(dot)f(spacing)f(of)i(less)150 1687 y(than)i(1/360)p
+Fr(")p Fu(,)j(ho)m(w)m(ev)m(er.)47 b(In)32 b(this)f(case,)j(w)m(e)e
+(use)g Fr(enhanced_xres)d Fu(to)k(sp)s(ecify)e(the)h(resolution)f(to)i
+(b)s(e)150 1797 y(used)e(in)g(this)h(enhanced)g(mo)s(de,)g(and)g
+Fr(enhanced_resolution)27 b Fu(to)33 b(sp)s(ecify)e(the)h(prin)m(ting)e
+(resolution)150 1906 y(ab)s(o)m(v)m(e)i(whic)m(h)d(w)m(e)i(use)f(the)g
+Fr(enhanced_xres)p Fu(.)275 2052 y(The)22 b Fr(resolution_scale)c
+Fu(command)k(is)g(used)g(to)h(sp)s(ecify)f(scaling)f(factors)j(for)e
+(the)h(dot)g(separation)150 2162 y(on)30 b(new)m(er)h(prin)m(ters.)39
+b(It)30 b(should)f(alw)m(a)m(ys)i(b)s(e)e(14400)k(with)c(curren)m(t)h
+(prin)m(ters.)275 2308 y(The)i(fourth)g(section)h(sp)s(eci\014es)f(the)
+h(minim)m(um)d(and)j(maxim)m(um)f(pap)s(er)g(sizes,)h(and)g(the)g
+(margins.)150 2418 y(Some)f(prin)m(ters)f(allo)m(w)g(use)h(of)h(narro)m
+(w)m(er)f(margins)f(when)g(soft)m(w)m(ea)m(v)m(e)k(is)c(used;)i(b)s
+(oth)e(sets)i(of)f(margins)150 2527 y(are)f(sp)s(eci\014ed.)275
+2673 y(There)41 b(is)f(a)i(con)m(v)m(enien)m(t)h(`)p
+Fr(INCH)p Fu(')e(macro)h(de\014ned)e(to)i(mak)m(e)h(sp)s(eci\014cation)
+d(of)i(the)g Fr(max_paper_)150 2783 y(width)29 b Fu(and)h
+Fr(max_paper_height)c Fu(more)31 b(legible.)39 b(It)31
+b(m)m(ultiplies)c(72)32 b(b)m(y)e(the)h(pro)m(vided)e(expression)g(to)
+150 2892 y(get)j(the)e(appropriate)g(n)m(um)m(b)s(er)f(of)i(p)s(oin)m
+(ts.)40 b(F)-8 b(or)32 b(example,)e(to)i(sp)s(ecify)d(8.5)p
+Fr(")p Fu(,)j(`)p Fr(INCH\(17/2\))p Fu(')c(expands)150
+3002 y(to)j(`)p Fr(\(72)f(*)g(17/2\))p Fu(',)f(whic)m(h)g(is)h(ev)-5
+b(aluated)30 b(left)g(to)i(righ)m(t,)e(and)g(hence)g(generates)i(the)e
+(correct)i(v)-5 b(alue.)275 3148 y(The)21 b(\014fth)f(section)i(sp)s
+(eci\014es)e(some)i(miscellaneous)e(v)-5 b(alues)21 b(that)h(are)g
+(required)d(for)j(certain)f(prin)m(ters.)150 3258 y(F)-8
+b(or)28 b(most)f(prin)m(ters,)f(the)h(correct)h(v)-5
+b(alues)26 b(are)h(1)g(for)g Fr(separation_rows)22 b
+Fu(and)k(0)i(for)e(the)h(others.)40 b(V)-8 b(ery)g(,)150
+3367 y(v)m(ery)36 b(few)f(prin)m(ters)e(require)h(\(or)i(allo)m(w\))f
+Fr(separation_rows)c Fu(to)36 b(b)s(e)f(an)m(ything)f(but)h(1)g(and)g
+Fr(pseudo_)150 3477 y(separation_rows)28 b Fu(other)33
+b(than)f(zero.)47 b(The)32 b(St)m(ylus)f(Color)h(1520,)i(St)m(ylus)d
+(Color)h(800,)i(St)m(ylus)e(Color)150 3587 y(850,)g(and)e(\(strangely)h
+(enough)g(to)g(m)m(y)g(mind,)e(since)h(it's)g(a)i(new)e(prin)m(ter\))f
+(St)m(ylus)h(Color)g(660)i(seem)f(to)150 3696 y(b)s(e)f(the)g(only)g
+(exceptions.)275 3842 y(The)43 b Fr(zero_margin_offset)c
+Fu(is)k(used)h(to)g(sp)s(ecify)f(an)h(additional)e(negativ)m(e)j
+(horizon)m(tal)f(o\013set)150 3952 y(required)36 b(to)i(prin)m(t)e(to)j
+(the)e(edges)h(of)g(the)g(pap)s(er)e(on)i(new)m(er)f(St)m(ylus)g(Photo)
+h(prin)m(ters.)61 b(These)37 b(m)m(ust)150 4061 y(b)s(e)30
+b(determined)f(empirically;)e(go)s(o)s(d)j(starting)g(v)-5
+b(alues)30 b(are)h(100)g(for)f(1440)j(DPI)d(and)g(50)h(for)f(2880)i
+(DPI)150 4171 y(prin)m(ters.)39 b(The)30 b(goal)h(is)e(to)j(prin)m(t)d
+(to)i(the)f(edge)h(of)g(the)f(page,)i(but)d(not)i(o)m(v)m(er)h(it.)275
+4317 y(The)22 b(sixth)g(section)h(sp)s(eci\014es)e(head)i(o\013sets)g
+(for)g(prin)m(ters)e(that)j(do)f(not)g(ha)m(v)m(e)h(the)f(color)g(jets)
+g(aligned.)150 4427 y(Certain)28 b(prin)m(ters,)f(suc)m(h)i(as)f(the)h
+(St)m(ylus)f(Color)f(480,)k(ha)m(v)m(e)f(an)e(un)m(usual)f(head)h
+(arrangemen)m(t)h(whereb)m(y)150 4536 y(instead)38 b(of)g(all)g(of)g
+(the)h(colors)f(b)s(eing)f(aligned)g(v)m(ertically)-8
+b(,)41 b(the)d(nozzles)h(are)g(con\014gured)e(in)g(groups.)150
+4646 y(These)26 b(prin)m(ters)e(are)i(easy)h(to)g(determine;)f(if)f
+(the)h(normal)f(head)h(o\013set)h(of)f(zero)h(for)e(eac)m(h)i(color)g
+(is)d(used,)150 4755 y(the)29 b(prin)m(ting)e(will)g(b)s(e)h(v)m
+(ertically)h(out)g(of)h(alignmen)m(t.)39 b(Most)31 b(of)e(these)h(prin)
+m(ters)d(require)h(sp)s(eci\014cation)150 4865 y(of)g(a)h(negativ)m(e)g
+(o\013set)g(for)f(prin)m(ting)e(to)i(the)h(top)f(edge)h(of)f(the)g(pap)
+s(er;)g(t)m(ypically)f(these)h(prin)m(ters)f(do)h(not)150
+4975 y(require)h(suc)m(h)h(an)g(o\013set)i(when)d(prin)m(ting)f(blac)m
+(k)j(only)-8 b(.)275 5121 y(The)38 b(sev)m(en)m(th)h(section)g(sp)s
+(eci\014es)f(the)g(most)i(di\016cult)c(v)-5 b(alues)38
+b(to)i(tune,)g(the)f(dot)g(sizes,)i(prin)m(ting)150 5230
+y(densities,)28 b(and)f(ink)h(v)-5 b(alues)28 b(\(for)g(v)-5
+b(ariable)28 b(dot)h(size)f(enabled)g(prin)m(ters\).)39
+b(These)28 b(will)e(b)s(e)i(describ)s(ed)e(in)150 5340
+y(detail)k(b)s(elo)m(w.)p eop
+%%Page: 79 84
+79 83 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(79)275 299 y(The)42 b(last)g(section)h(sp)s(eci\014es)f
+(luminosit)m(y)-8 b(,)44 b(h)m(ue,)i(and)c(saturation)g(adjustmen)m(t)h
+(v)m(ectors)h(for)f(the)150 408 y(prin)m(ter,)35 b(and)f(the)h(pap)s
+(er)f(de\014nitions.)51 b(These)35 b(are)g(used)f(to)i(adjust)e(the)h
+(color)g(in)f(Photograph)h(and)150 518 y(Solid)h(Colors)h(output)h(mo)s
+(des.)64 b(These)37 b(are)i(eac)m(h)g(v)m(ectors)h(of)e(48)h
+(\(actually)f(49,)j(as)e(the)f(\014rst)f(v)-5 b(alue)150
+628 y(m)m(ust)35 b(b)s(e)g(duplicated\))f(doubles)g(that)i(remap)f(the)
+h(luminosit)m(y)-8 b(,)35 b(h)m(ue,)i(and)e(saturation)g(resp)s(ectiv)m
+(ely)-8 b(.)150 737 y(The)32 b(h)m(ue)h(is)e(calculated,)j(and)e(the)g
+(v)-5 b(alue)32 b(used)g(to)i(in)m(terp)s(olate)e(b)s(et)m(w)m(een)h
+(the)g(t)m(w)m(o)h(closest)f(p)s(oin)m(ts)e(in)150 847
+y(eac)m(h)h(v)m(ector.)275 984 y(The)37 b(pap)s(er)h(de\014nitions)e
+(is)h(a)i(set)g(of)g(pap)s(er)e(de\014nitions.)63 b(The)38
+b(pap)s(er)f(de\014nition)f(con)m(tains)j(the)150 1093
+y(name)30 b(of)g(the)g(pap)s(er)e(t)m(yp)s(e,)j(sp)s(ecial)d(settings)i
+(that)g(are)g(required)e(for)i(prin)m(ters)e(to)j(pro)s(cess)e(the)h
+(pap)s(er)150 1203 y(correctly)-8 b(,)31 b(and)f(a)h(set)g(of)f
+(adjustmen)m(t)h(v)-5 b(alues.)40 b(These)30 b(are)h(not)f(curren)m
+(tly)g(discussed)e(here.)275 1340 y(The)33 b(lists)g(of)h(dot)g(sizes)g
+(and)f(densities)f(con)m(tain)j(v)-5 b(alues)33 b(for)h(13)h(prin)m
+(ting)c(mo)s(des:)48 b(120/180)37 b(DPI)150 1450 y(using)22
+b(prin)m(ter)h(w)m(ea)m(ving)i(\(single)e(ro)m(w;)j(referred)d(to)i(as)
+f(\\in)m(terlea)m(v)m(e"\))i(and)e(\\soft")h(w)m(ea)m(ving)g(\(the)f
+(driv)m(er)150 1559 y(determines)39 b(the)h(exact)i(pattern)e(of)g(dot)
+h(la)m(y)m(out\),)i(360)f(DPI)e(in)m(terlea)m(v)m(e)h(and)e(soft)m(w)m
+(ea)m(v)m(e,)46 b(720x360)150 1669 y(DPI)36 b(in)m(terlea)m(v)m(e)g
+(and)f(soft)m(w)m(ea)m(v)m(e,)41 b(720)c(DPI)e(in)m(terlea)m(v)m(e)i
+(and)e(soft)m(w)m(ea)m(v)m(e,)40 b(1440x720)f(in)m(terlea)m(v)m(e)e
+(and)150 1778 y(soft)m(w)m(ea)m(v)m(e,)d(2880x720)f(in)m(terlea)m(v)m
+(e)f(and)d(soft)m(w)m(ea)m(v)m(e,)34 b(and)c(2880x1440)k(soft)m(w)m(ea)
+m(v)m(e)f(only)-8 b(.)275 1915 y(F)g(or)29 b(the)g(dot)f(sizes,)h(the)g
+(v)-5 b(alue)28 b(for)g(eac)m(h)i(elemen)m(t)f(in)f(the)g(v)m(ector)i
+(selects)f(the)g(dot)g(size)f(to)i(b)s(e)e(used)150 2025
+y(when)35 b(prin)m(ting)e(at)j(this)f(\(or)h(similar\))d(resolution.)55
+b(The)35 b(dot)h(sizes)f(are)h(determined)e(b)m(y)h(consulting)150
+2134 y(the)h(programming)f(man)m(ual)h(for)g(the)h(prin)m(ter)d(and)i
+(exp)s(erimen)m(ting)f(as)h(describ)s(ed)e(b)s(elo)m(w.)58
+b(Curren)m(t)150 2244 y(Epson)25 b(prin)m(ters)f(alw)m(a)m(ys)j(use)e
+(dot)i(sizes)e(less)g(than)h(`)p Fr(16)p Fu(',)h(or)f(`)p
+Fr(0x10)p Fu(',)g(to)h(indicate)e(single)g(dot)h(size)f(\(eac)m(h)150
+2354 y(dot)33 b(is)f(represen)m(ted)g(b)m(y)h(1)g(bit,)g(and)f(it's)g
+(either)g(prin)m(ted)f(or)i(not\),)h(and)e(dot)h(sizes)g(of)f(`)p
+Fr(16)p Fu(')h(or)g(greater)150 2463 y(to)39 b(indicate)f(v)-5
+b(ariable)37 b(dot)i(size)g(\(eac)m(h)h(dot)f(is)f(represen)m(ted)g(b)m
+(y)h(2)g(bits,)g(and)g(it)f(can)h(either)f(b)s(e)g(not)150
+2573 y(prin)m(ted)28 b(or)i(tak)m(e)h(on)e(2)h(or)g(3)g(v)-5
+b(alues,)29 b(represen)m(ting)g(the)h(relativ)m(e)f(size)h(of)g(the)f
+(prin)m(ted)f(dot\).)41 b(V)-8 b(ariable)150 2682 y(dot)33
+b(sizes)g(p)s(ermit)e(the)i(use)f(of)h(v)m(ery)g(small)f(dots)g(\(whic)
+m(h)g(w)m(ould)g(b)s(e)g(to)s(o)h(small)f(to)h(\014ll)e(the)i(page)h
+(and)150 2792 y(pro)s(duce)d(solid)g(blac)m(k\))i(in)f(ligh)m(t)g
+(areas,)i(while)c(allo)m(wing)i(the)h(page)g(to)g(b)s(e)f(\014lled)f
+(with)g(larger)h(dots)h(in)150 2902 y(dark)m(er)d(areas.)275
+3039 y(Ev)m(en)j(single)f(dot)h(size)g(prin)m(ters)f(can)i(usually)d
+(pro)s(duce)h(dots)h(of)h(di\013eren)m(t)e(sizes;)j(it's)e(just)g
+(illegal)150 3148 y(to)27 b(actually)e(try)h(to)g(switc)m(h)g(dot)g
+(size)g(during)d(a)k(page.)40 b(These)25 b(dots)h(are)h(also)e(m)m(uc)m
+(h)h(bigger)g(than)f(those)150 3258 y(used)30 b(in)f(true)h(v)-5
+b(ariable)29 b(dot)i(size)f(prin)m(ting.)275 3395 y(A)e(dot)h(size)f
+(of)h(`)p Fr(-1)p Fu(')f(indicates)g(that)h(this)f(resolution)f(is)g
+(illegal)g(for)h(the)h(prin)m(ter)e(in)g(question.)40
+b(An)m(y)150 3504 y(resolutions)27 b(that)j(w)m(ould)d(use)i(this)e
+(dot)i(size)g(will)d(not)j(b)s(e)f(presen)m(ted)h(to)g(the)g(user.)40
+b(A)29 b(dot)g(size)f(of)h(`)p Fr(-2)p Fu(')150 3614
+y(indicates)j(that)i(this)d(resolution)h(is)g(legal,)i(but)e(that)i
+(the)f(driv)m(er)f(is)g(not)h(to)h(attempt)g(to)g(set)f(an)m(y)h(dot)
+150 3724 y(size.)41 b(Some)30 b(v)m(ery)h(old)e(prin)m(ters)g(do)h(not)
+h(supp)s(ort)e(the)h(command)g(to)h(set)g(the)g(dot)g(size.)275
+3861 y(Most)f(prin)m(ters)e(supp)s(ort)f(a)j(dot)g(size)f(of)g(`)p
+Fr(0)p Fu(')h(as)f(a)h(mo)s(de-sp)s(eci\014c)e(default,)h(but)g(it's)g
+(often)h(a)f(bigger)150 3970 y(dot)23 b(than)f(necessary)-8
+b(.)39 b(Prin)m(ters)22 b(usually)e(also)i(supp)s(ort)f(some)i(dot)g
+(sizes)f(b)s(et)m(w)m(een)i(`)p Fr(1)p Fu(')e(and)g(`)p
+Fr(3)p Fu('.)39 b(Usually)150 4080 y(`)p Fr(1)p Fu(')31
+b(is)e(the)i(righ)m(t)e(dot)i(size)f(for)g(720)i(and)e(1440)i(dpi)d
+(prin)m(ting,)f(and)i(`)p Fr(3)p Fu(')g(w)m(orks)h(b)s(est)f(at)h(360)g
+(dpi.)275 4217 y(V)-8 b(ariable)26 b(dot)h(size)f(prin)m(ters)g
+(usually)e(supp)s(ort)h(2)i(or)g(3)g(sets)g(of)g(v)-5
+b(ariable)26 b(dot)h(sizes.)39 b(Older)25 b(prin)m(ters)150
+4326 y(based)33 b(on)f(a)h(6)h(picolitre)d(drop)h(\(the)h(480,)i(720,)g
+(740,)g(750,)g(900,)g(and)e(1200\))i(supp)s(ort)c(t)m(w)m(o:)47
+b(mo)s(de)32 b(16)150 4436 y(\(0x10)f(in)d(hexadecimal\))h(for)g
+(normal)g(v)-5 b(ariable)28 b(dots)h(at)i(1440)g(or)e(720)i(dpi,)d(and)
+h(mo)s(de)g(17)h(\(0x10\))h(for)150 4545 y(sp)s(ecial)f(larger)h(dots)h
+(at)g(360)h(dpi.)43 b(New)m(er)32 b(prin)m(ters)e(based)h(on)h(4)g
+(picolitre)e(drops)g(normally)g(supp)s(ort)150 4655 y(three)38
+b(sizes:)55 b(`)p Fr(0x10)p Fu(')37 b(for)g(4)h(pl)e(base)i(drops,)g(`)
+p Fr(0x11)p Fu(')f(for)h(6)g(pl)e(base)i(drops,)g(and)f(`)p
+Fr(0x12)p Fu(')g(for)g(sp)s(ecial)150 4765 y(large)i(drops.)64
+b(On)38 b(these)h(prin)m(ters,)h(`)p Fr(0x10)p Fu(')e(usually)f(w)m
+(orks)h(b)s(est)h(at)g(1440x720)j(and)c(`)p Fr(0x11)p
+Fu(')g(w)m(orks)150 4874 y(b)s(est)d(at)i(720x720.)60
+b(Unfortunately)-8 b(,)37 b(`)p Fr(0x10)p Fu(')e(do)s(esn't)h(seem)g
+(to)h(generate)g(quite)e(enough)h(densit)m(y)f(at)150
+4984 y(720x720,)d(b)s(ecause)c(if)g(it)g(did)f(the)h(output)g(w)m(ould)
+g(b)s(e)g(v)m(ery)h(smo)s(oth.)40 b(P)m(erhaps)28 b(it's)g(p)s(ossible)
+e(to)j(t)m(w)m(eak)150 5093 y(things)5 b(.)21 b(.)h(.)g(.)275
+5230 y(The)38 b(list)g(of)i(densities)d(is)i(a)g(list)f(of)i(base)f
+(densit)m(y)g(v)-5 b(alues)39 b(for)g(all)f(of)h(the)h(ab)s(o)m(v)m(e)g
+(listed)e(mo)s(des.)150 5340 y(\\Densit)m(y")47 b(refers)e(to)h(the)f
+(amoun)m(t)h(of)g(ink)e(dep)s(osited)g(when)h(a)g(solid)f(color)i(\(or)
+f(solid)f(blac)m(k\))i(is)p eop
+%%Page: 80 85
+80 84 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(80)150 299 y(prin)m(ted.)65 b(So)39 b(if)f(the)h(densit)m
+(y)g(is)f(`)p Fr(.5)p Fu(',)j(solid)c(blac)m(k)i(actually)g(prin)m(ts)f
+(only)g(half)g(the)h(p)s(ossible)e(dots.)150 408 y(\\Base)32
+b(densit)m(y")e(refers)f(to)i(the)g(fact)g(that)f(the)h(densit)m(y)e(v)
+-5 b(alue)30 b(can)g(b)s(e)g(scaled)g(in)f(the)h(GUI)h(or)f(on)g(the)
+150 518 y(Ghostscript)35 b(command)g(line.)54 b(The)35
+b(densit)m(y)g(v)-5 b(alue)35 b(sp)s(eci\014ed)f(\(whic)m(h)g(is)h(not)
+g(made)h(visible)d(to)j(the)150 628 y(user\))25 b(is)g(m)m(ultiplied)e
+(b)m(y)i(the)h(base)g(densit)m(y)f(to)i(obtain)e(the)h(e\013ectiv)m(e)i
+(densit)m(y)d(v)-5 b(alue.)39 b(All)24 b(other)i(things)150
+737 y(\(suc)m(h)38 b(as)g(ink)f(drop)g(size\))h(remaining)e(the)i
+(same,)j(doubling)35 b(the)j(resolution)f(requires)f(halving)h(the)150
+847 y(base)c(densit)m(y)-8 b(.)47 b(The)32 b(base)h(densit)m(y)e(in)h
+(the)g(densit)m(y)g(v)m(ector)j(ma)m(y)e(exceed)g(`)p
+Fr(1)p Fu(',)h(as)f(man)m(y)f(pap)s(er)g(t)m(yp)s(es)150
+956 y(require)25 b(lo)m(w)m(er)i(densit)m(y)f(than)h(the)g(base)g(driv)
+m(er.)38 b(The)26 b(driv)m(er)g(ensures)f(that)j(the)f(actual)g(densit)
+m(y)f(nev)m(er)150 1066 y(exceeds)31 b(1.)275 1208 y(T)-8
+b(uning)30 b(the)i(densit)m(y)f(should)f(b)s(e)h(done)h(on)g(high)e
+(qualit)m(y)i(pap)s(er)e(\(usually)h(glossy)g(photo)h(pap)s(er\).)150
+1318 y(The)26 b(goal)i(is)d(to)j(\014nd)d(the)i(lo)m(w)m(est)h(densit)m
+(y)e(v)-5 b(alue)26 b(that)h(results)f(in)f(solid)g(blac)m(k)i(\(no)g
+(visible)d(gaps)j(under)150 1428 y(a)j(fairly)e(high)h(p)s(o)m(w)m(er)h
+(magnifying)e(glass)i(or)g(loup)s(e\).)39 b(If)30 b(an)f(appropriate)g
+(densit)m(y)g(v)-5 b(alue)30 b(is)f(found)f(for)150 1537
+y(720)h(DPI,)f(it)g(could)f(b)s(e)g(divided)e(b)m(y)j(2)g(for)f
+(1440x720,)32 b(b)m(y)c(4)g(for)g(2880x720,)j(and)d(b)m(y)f(8)i(for)e
+(2880x1440.)275 1680 y(Ho)m(w)m(ev)m(er,)36 b(for)d(prin)m(ters)f(that)
+h(o\013er)h(a)g(c)m(hoice)g(of)f(dot)h(size,)g(this)e(ma)m(y)i(not)f(b)
+s(e)g(the)g(b)s(est)g(strategy)-8 b(.)150 1789 y(The)37
+b(b)s(est)g(c)m(hoice)h(for)f(dot)h(size)f(is)g(the)g(smallest)g(dot)h
+(size)f(that)h(allo)m(ws)f(c)m(ho)s(osing)g(a)h(densit)m(y)e(v)-5
+b(alue)150 1899 y(not)41 b(greater)h(than)e(1)h(that)g(giv)m(es)g(full)
+d(co)m(v)m(erage.)74 b(This)39 b(dot)i(size)f(ma)m(y)h(b)s(e)f
+(di\013eren)m(t)g(for)g(di\013eren)m(t)150 2008 y(resolutions.)f(T)-8
+b(uning)29 b(v)-5 b(ariable)29 b(dot)i(size)f(prin)m(ters)f(is)g(more)i
+(complicated;)f(the)h(pro)s(cess)f(is)f(describ)s(ed)150
+2118 y(b)s(elo)m(w.)275 2261 y(The)k(last)h(mem)m(b)s(er)g(is)f(a)i(p)s
+(oin)m(ter)e(to)i(a)g(structure)f(con)m(taining)g(a)g(list)f(of)i(ink)d
+(v)-5 b(alues)34 b(for)g(v)-5 b(ariable)150 2370 y(dot)33
+b(size)h(\(or)f(6)h(color\))f(inks.)48 b(W)-8 b(e)35
+b(mo)s(del)d(v)-5 b(ariable)32 b(dot)h(size)g(inks)f(as)h(pro)s(ducing)
+e(a)j(certain)f Fr(")p Fu(v)-5 b(alue)p Fr(")150 2480
+y Fu(of)34 b(ink)f(for)h(eac)m(h)h(a)m(v)-5 b(ailable)33
+b(dot)h(size,)h(where)f(the)g(largest)h(dot)f(size)g(has)f(a)i(v)-5
+b(alue)33 b(of)h(1.)53 b(6-color)34 b(inks)150 2589 y(are)d(handled)e
+(similarly;)e(the)k(ligh)m(t)f(cy)m(an)h(and)f(ligh)m(t)g(magen)m(ta)j
+(inks)c(are)i(treated)g(as)g(a)g(fractional)f(ink)150
+2699 y(v)-5 b(alue.)57 b(The)36 b(com)m(bination)f(of)h(v)-5
+b(ariable)35 b(dot)h(size)g(and)g(6)g(color)g(inks,)g(of)h(course,)g
+(just)f(creates)h(that)150 2808 y(man)m(y)30 b(more)h(di\013eren)m(t)f
+(ink)f(c)m(hoices.)275 2951 y(This)c(structure)i(is)f(actually)h
+(rather)g(complicated;)h(it)f(con)m(tains)h(en)m(tries)f(for)g(eac)m(h)
+h(com)m(bination)f(of)150 3061 y(ph)m(ysical)f(prin)m(ter)f(resolution)
+h(\(180,)j(360,)h(720,)f(and)d(1440)j(dpi\),)d(ink)g(colors)h(\(4,)i
+(6,)f(and)e(7\),)j(and)d(single)150 3170 y(and)i(v)-5
+b(ariable)28 b(dot)h(sizes)g(\(since)g(some)g(prin)m(ter)f(mo)s(des)g
+(can't)i(handle)e(v)-5 b(ariable)28 b(dot)h(size)g(inks\).)39
+b(Since)150 3280 y(there's)31 b(so)f(m)m(uc)m(h)h(data,)g(it's)f
+(actually)g(a)h(somewhat)g(deeply)e(nested)h(structure:)275
+3422 y(An)f Fr(escp2_printer_t)e Fu(con)m(tains)j(a)h(p)s(oin)m(ter)e
+(\(essen)m(tially)-8 b(,)30 b(a)h(reference)g(rather)f(than)g(a)h(cop)m
+(y\))g(to)150 3532 y(an)f Fr(escp2_variable_inklist_t)p
+Fu(.)275 3674 y(An)c Fr(escp2_variable_inklist_t)20 b
+Fu(con)m(tains)27 b(p)s(oin)m(ters)e(to)j Fr(escp2_variable_inkset_t)20
+b Fu(struc-)150 3784 y(tures.)39 b(There)25 b(is)g(one)h(suc)m(h)g(p)s
+(oin)m(ter)f(for)g(eac)m(h)i(com)m(bination)e(of)h(resolution,)g(dot)g
+(t)m(yp)s(e,)h(and)e(ink)g(colors)150 3893 y(as)31 b(describ)s(ed)d(ab)
+s(o)m(v)m(e.)42 b(Y)-8 b(es,)31 b(this)f(is)f(rather)h(in\015exible.)
+275 4036 y(An)c Fr(escp2_variable_inkset_t)20 b Fu(con)m(tains)26
+b(p)s(oin)m(ters)f(to)i Fr(escp2_variable_ink_t)21 b
+Fu(structures.)150 4145 y(There)30 b(is)f(one)i(suc)m(h)f(p)s(oin)m
+(ter)f(for)i(eac)m(h)g(of)g(the)f(four)g(colors)g(\(C,)h(M,)g(Y,)f(and)
+g(K\).)275 4288 y(An)g Fr(escp2_variable_ink_t)25 b Fu(con)m(tains)31
+b(a)h(p)s(oin)m(ter)d(to)j(the)f(actual)g(list)f(of)h(ink)e(v)-5
+b(alues)31 b(\()p Fr(simple_)150 4398 y(dither_range_t)p
+Fu(\),)c(the)j(n)m(um)m(b)s(er)f(of)i(ink)e(v)-5 b(alues,)29
+b(and)h(a)h(densit)m(y)e(v)-5 b(alue)30 b(to)h(b)s(e)e(used)h(for)g
+(computing)150 4507 y(the)24 b(transitions.)37 b(This)23
+b(densit)m(y)g(v)-5 b(alue)23 b(is)h(actually)f(a)i(scaling)e(v)-5
+b(alue;)26 b(it)d(is)h(m)m(ultiplied)c(b)m(y)k(the)g(e\013ectiv)m(e)150
+4617 y(densit)m(y)36 b(to)i(compute)f(the)g(densit)m(y)f(to)i(b)s(e)e
+(used)g(for)g(computing)g(the)h(transitions.)59 b(Normally)-8
+b(,)38 b(this)150 4726 y(v)-5 b(alue)34 b(is)g(`)p Fr(1)p
+Fu(',)j(but)d(in)f(some)j(cases)f(it)g(ma)m(y)g(b)s(e)f(p)s(ossible)f
+(to)i(get)h(smo)s(other)f(results)f(with)f(a)i(di\013eren)m(t)150
+4836 y(v)-5 b(alue)39 b(\(in)g(particular,)h(the)g(single)e(dot)i(size)
+g(6-color)g(inks)e(w)m(ork)i(b)s(est)f(with)g(the)g(e\013ectiv)m(e)j
+(densit)m(y)150 4945 y(scaled)27 b(to)h(`)p Fr(.75)p
+Fu(')e(for)h(this)f(purp)s(ose\).)38 b(A)27 b(lo)m(w)m(er)h(densit)m(y)
+e(lo)m(w)m(ers)h(the)g(transition)f(p)s(oin)m(ts,)g(whic)m(h)g(results)
+150 5055 y(in)j(more)i(ink)e(b)s(eing)g(dep)s(osited.)275
+5198 y(A)h Fr(simple_dither_range_t)25 b Fu(is)k(a)i(structure)f(con)m
+(taining)g(four)f(v)-5 b(alues:)199 5340 y(1.)61 b(The)30
+b(v)-5 b(alue)30 b(of)g(the)h(particular)e(ink)p eop
+%%Page: 81 86
+81 85 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(81)199 299 y(2.)61 b(The)30 b(bit)f(pattern)i(used)e(to)i
+(represen)m(t)g(the)f(ink)199 434 y(3.)61 b(Whether)31
+b(the)f(ink)f(is)h(ligh)m(t)f(\(0\))j(or)e(dark)g(\(1\),)i(for)e(inks)f
+(with)g(ligh)m(t)g(and)h(dark)g(v)-5 b(arian)m(ts)199
+570 y(4.)61 b(The)25 b(relativ)m(e)h(amoun)m(t)g(of)f(ink)g(actually)g
+(dep)s(osited)f(b)m(y)i(this)e(dot)i(\(not)g(curren)m(tly)f(used)f(for)
+i(m)m(uc)m(h;)330 679 y(it)35 b(can)i(b)s(e)e(used)g(for)g(ink)g
+(reduction)g(purp)s(oses,)g(to)i(reduce)f(the)g(amoun)m(t)g(of)g(ink)e
+(dep)s(osited)h(on)330 789 y(the)c(pap)s(er\).)275 951
+y(These)26 b(things)g(are)i(in)m(teresting)e(as)i(arra)m(ys.)40
+b(F)-8 b(rom)27 b(an)g(arra)m(y)h(of)f Fr(simple_dither_range_t)p
+Fu('s,)c(the)150 1060 y(dither)32 b(co)s(de)h(computes)g(transition)f
+(v)-5 b(alues)32 b(that)i(it)f(lo)s(oks)f(up)h(at)g(run)f(time)h(to)h
+(decide)e(what)h(ink)f(to)150 1170 y(prin)m(t,)d(as)i(w)m(ell)e(as)i
+(whether)f(to)h(prin)m(t)e(at)i(all.)275 1306 y Fi(Really)g
+Fu(confused)f(no)m(w?)40 b(Y)-8 b(up.)40 b(Y)-8 b(ou'll)30
+b(probably)f(\014nd)f(it)i(easier)h(to)g(simply)d(read)i(the)g(co)s
+(de.)150 1568 y Ft(D.4)68 b(T)-11 b(uning)44 b(the)h(prin)l(ter)275
+1762 y Fu(No)m(w,)35 b(ho)m(w)g(do)f(y)m(ou)g(use)g(all)f(this)g(to)i
+(tune)e(a)i(prin)m(ter?)50 b(There)34 b(are)g(a)g(n)m(um)m(b)s(er)f(of)
+h(w)m(a)m(ys)h(to)g(do)f(it;)150 1872 y(this)29 b(one)i(is)e(m)m(y)i(p)
+s(ersonal)e(fa)m(v)m(orite.)275 2008 y(There's)37 b(a)h(\014le)f(named)
+g(`)p Fr(cyan-sweep.tif)p Fu('.)59 b(This)36 b(consists)h(of)h(a)g
+(thin)e(bar)h(of)h(cy)m(an)g(sw)m(eeping)150 2118 y(from)33
+b(white)g(to)i(almost)f(pure)f(cy)m(an,)j(and)d(from)h(pure)e(cy)m(an)j
+(to)g(blac)m(k.)51 b(The)34 b(\014rst)f(thing)g(to)h(do)g(is)f(to)150
+2227 y(pic)m(k)39 b(the)g(appropriate)f Fr(simple_dither_range_t)33
+b Fu(\(or)39 b(create)i(a)e(whole)g(new)f Fr(escp2_variable_)150
+2337 y(inklist_t)p Fu(\))24 b(and)h(commen)m(t)i(out)f(all)f(but)g(the)
+h(dark)m(est)g(ink)f(\(this)g(means)h(y)m(ou'll)f(b)s(e)g(using)g(the)h
+(largest)150 2447 y(dots)37 b(of)h(dark)e(ink\).)60 b(A)m(t)39
+b(8.5)p Fr(")f Fu(width)d(\(the)j(width)d(of)i(a)h(letter-size)g(piece)
+f(of)g(pap)s(er\),)i(the)e(bar)g(will)150 2556 y(b)s(e)e(1/8)p
+Fr(")h Fu(high.)55 b(Prin)m(ting)34 b(it)h(on)g(wider)f(or)h(narro)m(w)
+m(er)h(pap)s(er)f(will)d(c)m(hange)37 b(the)f(heigh)m(t)f(accordingly)
+-8 b(.)150 2666 y(Prin)m(t)30 b(it)g(width-wise)f(across)i(a)g(piece)g
+(of)g(photo)g(qualit)m(y)f(pap)s(er)f(in)h(line)f(art)i(mo)s(de)f
+(using)g(ordered)g(or)150 2775 y(adaptiv)m(e)35 b(h)m(ybrid)e(dither.)
+54 b(Do)36 b(not)f(use)g(photographic)f(mo)s(de;)k(the)d(colors)g(in)f
+(photographic)g(mo)s(de)150 2885 y(v)-5 b(ary)29 b(non-linearly)d(dep)s
+(ending)h(up)s(on)g(the)i(presence)g(of)g(the)g(three)g(color)g(comp)s
+(onen)m(ts,)h(while)d(in)h(line)150 2995 y(art)36 b(mo)s(de)f(the)h
+(colors)g(are)g(m)m(uc)m(h)g(purer.)55 b(Mak)m(e)37 b(sure)e(that)h
+(all)f(the)h(color)f(adjustmen)m(ts)h(are)g(set)g(to)150
+3104 y(defaults)e(\(1.0\).)57 b(Use)36 b(the)f(highest)f(qualit)m(y)h
+(v)m(ersion)f(of)h(the)h(prin)m(t)e(mo)s(de)g(y)m(ou're)i(testing)f(to)
+h(reduce)150 3214 y(banding)21 b(and)h(other)h(artifacts.)39
+b(This)20 b(is)i(m)m(uc)m(h)h(easier)g(to)g(do)g(with)e(the)i(Gimp)e
+(than)i(with)e(Ghostscript.)275 3350 y(A)m(t)31 b(this)e(stage,)j(y)m
+(ou)f(w)m(an)m(t)g(to)g(lo)s(ok)f(for)g(four)g(things:)199
+3486 y(1.)61 b(The)30 b(blac)m(k)g(near)h(the)f(cen)m(ter)i(of)e(the)h
+(line)d(is)i(solid,)f(but)g(not)i(more)f(so)h(than)f(that.)199
+3622 y(2.)61 b(The)30 b(cy)m(an)h(immediately)e(to)i(the)f(left)g(of)h
+(the)g(blac)m(k)f(is)f Fn(almost)41 b Fu(solid.)199 3757
+y(3.)61 b(The)25 b(dark)h(cy)m(an)h(at)f(the)g(far)g(righ)m(t)g(of)g
+(the)g(page)h(is)e(solid,)g(but)g(not)h(more)g(so.)40
+b(Y)-8 b(ou)26 b(can)h(try)e(tuning)330 3867 y(the)31
+b(densit)m(y)e(so)i(that)g(it)f(isn't)f(quite)h(solid,)f(then)h(n)m
+(udging)f(up)g(the)i(densit)m(y)e(un)m(til)g(it)h(is.)199
+4002 y(4.)61 b(Both)29 b(sw)m(eeps)f(sw)m(eep)g(smo)s(othly)f(from)g
+(ligh)m(t)g(to)i(dark.)40 b(In)27 b(particular,)g(the)h(dark)f(half)g
+(of)h(the)g(bar)330 4112 y(shouldn't)g(visibly)g(c)m(hange)j(color;)g
+(it)f(should)e(go)k(smo)s(othly)d(from)h(cy)m(an)h(to)g(blac)m(k.)275
+4274 y(Rep)s(eat)h(this)e(stage)j(un)m(til)d(y)m(ou)i(ha)m(v)m(e)h(ev)m
+(erything)e(just)g(righ)m(t.)44 b(Use)32 b(the)g(p)s(ositioning)d(en)m
+(try)j(b)s(o)m(xes)150 4383 y(in)g(the)h(dialog)f(to)h(p)s(osition)e
+(eac)m(h)j(bar)f(exactly)h(1/8)p Fr(")f Fu(further)f(do)m(wn)g(the)h
+(page.)49 b(Adjacen)m(t)34 b(bars)f(will)150 4493 y(b)s(e)d(touc)m
+(hing.)275 4629 y(The)e(next)i(step)f(is)f(to)i(uncommen)m(t)g(out)f
+(the)h(second)f(dark)m(est)h(dot)f(size.)41 b(If)28 b(y)m(ou're)i
+(using)e(v)-5 b(ariable)150 4739 y(dots,)32 b(use)f(the)h(second)f
+(largest)h(dot)g(size)f(of)h(the)f(dark)g(ink)f(rather)i(than)f(the)g
+(largest)h(dot)g(size)f(of)h(the)150 4848 y(ligh)m(t)e(ink.)39
+b(This)29 b(will)e(giv)m(e)k(y)m(ou)g(t)m(w)m(o)h(inks.)275
+4985 y(When)j(y)m(ou)g(recompile)g(the)g(plugin,)f(y)m(ou)i(simply)d
+(need)i(to)h(cop)m(y)g(the)g(new)f(executable)g(in)m(to)h(the)150
+5094 y(correct)c(place.)40 b(Y)-8 b(ou)31 b(do)f(not)h(need)f(to)h
+(exit)f(and)g(restart)h(the)g(Gimp.)275 5230 y(Prin)m(t)c(another)j
+(bar)e(adjacen)m(t)i(to)g(the)f(\014rst)f(one.)40 b(Y)-8
+b(our)29 b(goal)h(is)e(to)h(matc)m(h)h(the)f(bar)g(using)e(a)i(single)
+150 5340 y(dot)i(size)f(as)h(closely)f(as)h(p)s(ossible.)38
+b(Y)-8 b(ou'll)30 b(\014nd)f(that)i(the)g(dark)f(region)g(of)g(the)h
+(bar)f(shouldn't)f(c)m(hange)p eop
+%%Page: 82 87
+82 86 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(82)150 299 y(to)33 b(an)m(y)f(great)i(degree,)f(but)f(the)g
+(ligh)m(t)f(half)g(probably)f(will.)44 b(If)31 b(the)i(ligh)m(ter)e
+(part)h(of)g(the)h(ligh)m(t)e(half)g(is)150 408 y(to)s(o)37
+b(dark,)h(y)m(ou)g(need)e(to)h(increase)g(the)g(v)-5
+b(alue)36 b(of)h(the)g(smaller)e(dot;)40 b(if)c(it's)g(to)s(o)i(ligh)m
+(t,)g(y)m(ou)f(need)f(to)150 518 y(decrease)e(the)g(v)-5
+b(alue.)48 b(The)33 b(reasoning)f(is)h(that)g(if)g(the)g(v)-5
+b(alue)33 b(is)f(to)s(o)i(lo)m(w,)g(the)f(ink)f(isn't)g(b)s(eing)g(giv)
+m(en)150 628 y(enough)g(credit)h(for)f(its)g(con)m(tribution)f(to)j
+(the)f(darkness)e(of)i(the)g(ink,)f(and)g(vice)h(v)m(ersa.)48
+b(Rep)s(eat)34 b(un)m(til)150 737 y(y)m(ou)29 b(ha)m(v)m(e)g(a)g(go)s
+(o)s(d)f(matc)m(h.)41 b(Mak)m(e)30 b(sure)d(y)m(ou)i(let)f(the)h(ink)e
+(dry)g(fully)-8 b(,)27 b(whic)m(h)g(will)f(tak)m(e)k(a)f(few)f(min)m
+(utes.)150 847 y(W)-8 b(et)32 b(ink)d(will)f(lo)s(ok)i(to)s(o)i(dark.)
+40 b(Don't)32 b(lo)s(ok)e(at)h(the)g(pap)s(er)e(to)s(o)j(closely;)e
+(hold)f(it)h(at)i(a)f(distance.)40 b(The)150 956 y(extra)e(graininess)e
+(of)h(the)h(largest)g(dot)f(size)h(will)d(probably)g(mak)m(e)k(it)e(lo)
+s(ok)g(ligh)m(ter)f(than)i(it)f(should;)150 1066 y(if)e(y)m(ou)h(hold)f
+(it)h(far)f(enough)h(a)m(w)m(a)m(y)i(so)e(that)h(y)m(ou)f(can't)h(see)g
+(the)f(dots,)i(y)m(ou'll)d(get)i(a)f(more)g(accurate)150
+1176 y(picture)29 b(of)i(what's)f(going)h(on.)275 1322
+y(After)j(y)m(ou)g(ha)m(v)m(e)h(what)f(lo)s(oks)f(lik)m(e)g(a)i(go)s(o)
+s(d)e(matc)m(h,)j(prin)m(t)d(another)h(bar)f(using)g(only)g(the)h
+(largest)150 1431 y(dot)29 b(size)g(\(or)g(dark)f(ink,)g(for)g(single)g
+(dot)h(size)f(6-color)i(prin)m(ters\).)39 b(Y)-8 b(ou)29
+b(w)m(an)m(t)h(to)f(ensure)f(that)i(the)f(bars)150 1541
+y(touc)m(hing)34 b(eac)m(h)g(other)g(lo)s(ok)g(iden)m(tical,)f(or)h(as)
+g(close)g(as)g(p)s(ossible)d(to)j(it;)h(y)m(our)f(ey)m(e)h(w)m(on't)f
+(giv)m(e)h(y)m(ou)f(a)150 1650 y(go)s(o)s(d)c(reading)e(if)h(the)h
+(bars)f(are)h(separated)h(from)e(eac)m(h)i(other.)40
+b(Y)-8 b(ou'll)29 b(probably)f(ha)m(v)m(e)j(to)g(rep)s(eat)f(the)150
+1760 y(pro)s(cedure.)275 1906 y(The)24 b(next)g(step)h(is)f(to)h
+(commen)m(t)h(out)f(all)e(but)h(the)h(largest)g(and)f(third-largest)f
+(dot)i(size,)h(and)e(rep)s(eat)150 2016 y(the)31 b(pro)s(cedure.)42
+b(When)31 b(they)g(matc)m(h,)i(use)e(all)f(three)h(dot)g(sizes)g(of)g
+(dark)g(ink.)42 b(Again,)31 b(the)g(goal)h(is)e(to)150
+2125 y(matc)m(h)h(the)g(single)e(dot)h(size.)275 2271
+y(Y)-8 b(ou'll)22 b(probably)g(\014nd)g(the)h(matc)m(h)i(is)d(imp)s
+(erfect.)37 b(No)m(w)24 b(y)m(ou)g(ha)m(v)m(e)h(to)f(\014gure)f(out)g
+(what)h(region)f(isn't)150 2381 y(righ)m(t,)37 b(whic)m(h)d(tak)m(es)j
+(some)f(exp)s(erimen)m(tation.)55 b(Ev)m(en)36 b(small)e(adjustmen)m
+(ts)h(can)h(mak)m(e)g(a)g(noticeable)150 2491 y(di\013erence)d(in)f
+(what)h(y)m(ou)h(see.)50 b(A)m(t)34 b(this)e(stage,)k(it's)d(v)m(ery)h
+(imp)s(ortan)m(t)e(to)i(hold)e(the)i(page)g(far)f(enough)150
+2600 y(from)28 b(y)m(our)h(ey)m(e;)i(when)d(y)m(ou)h(use)g(all)f(three)
+h(dot)g(sizes,)g(the)g(texture)h(will)c(b)s(e)i(m)m(uc)m(h)h(more)g(ev)
+m(en,)h(whic)m(h)150 2710 y(sometimes)g(mak)m(es)i(it)e(lo)s(ok)g(dark)
+m(er)g(and)g(sometimes)g(ligh)m(ter.)275 2856 y(After)j(this)g(is)f
+(calibrated,)i(it's)f(time)g(to)h(calibrate)f(the)h(ligh)m(t)e(ink)g
+(against)i(the)g(dark)f(ink.)48 b(T)-8 b(o)34 b(do)150
+2966 y(this,)d(commen)m(t)i(out)f(all)f(but)g(the)h(large)g(dot)g(v)m
+(ersion)f(of)h(the)g(t)m(w)m(o)i(inks,)d(and)g(rep)s(eat)h(the)g(pro)s
+(cedure.)150 3075 y(This)26 b(is)h(tric)m(kier,)h(b)s(ecause)g(the)g(h)
+m(ues)g(of)g(the)g(inks)f(migh)m(t)h(not)g(b)s(e)f(quite)h(iden)m
+(tical.)38 b(Lo)s(ok)29 b(at)f(the)g(dark)150 3185 y(half)37
+b(of)h(the)g(bar)g(as)g(w)m(ell)f(as)h(the)g(ligh)m(t)g(half)f(to)h
+(see)h(that)g(the)f(h)m(ue)g(really)e(do)s(esn't)i(c)m(hange)h(as)g(y)m
+(ou)150 3294 y(sw)m(eep)c(from)e(cy)m(an)j(to)f(blac)m(k.)52
+b(Sometimes)34 b(it's)g(easier)h(to)g(judge)f(that)h(w)m(a)m(y)-8
+b(.)54 b(Y)-8 b(ou)35 b(ma)m(y)g(\014nd)d(that)j(it)150
+3404 y(lo)s(oks)30 b(blotc)m(h)m(y)-8 b(,)31 b(in)e(whic)m(h)g(case)j
+(y)m(ou)f(should)d(switc)m(h)i(from)g(ordered)f(dither)g(to)i(adaptiv)m
+(e)g(h)m(ybrid.)275 3550 y(After)36 b(y)m(ou)h(ha)m(v)m(e)g(the)g(ligh)
+m(t)f(and)f(dark)h(inks)f(calibrated)h(against)g(eac)m(h)i(other,)g
+(it's)e(time)g(to)i(add)150 3660 y(ev)m(erything)33 b(bac)m(k)g(in.)48
+b(Usually)31 b(y)m(ou)i(don't)g(w)m(an)m(t)h(to)g(use)e(the)i(largest)f
+(dot)g(size)g(of)g(ligh)m(t)f(ink.)47 b(These)150 3769
+y(dots)24 b(will)e(b)s(e)h(m)m(uc)m(h)h(larger)g(than)g(the)g(small)f
+(dots)h(of)g(dark)f(ink,)i(but)e(they'll)g(still)f(b)s(e)h(ligh)m(ter.)
+38 b(This)23 b(will)150 3879 y(cause)34 b(problems)d(when)h(prin)m
+(ting)f(mixed)h(colors,)i(since)e(y)m(ou'll)g(b)s(e)h(dep)s(ositing)e
+(more)i(ink)f(on)h(ligh)m(ter)150 3988 y(regions)d(of)h(the)g(page,)g
+(and)f(y)m(ou'll)g(probably)f(get)i(strange)g(color)g(casts)g(that)h(y)
+m(ou)e(can't)i(get)g(rid)d(of)h(in)150 4098 y(neutral)f(tones.)42
+b(I)30 b(normally)e(use)i(only)g(the)g(smallest)g(one)h(or)f(t)m(w)m(o)
+i(dot)e(sizes)g(of)h(ligh)m(t)f(ink.)275 4244 y(After)35
+b(y)m(ou'v)m(e)h(t)m(w)m(eak)m(ed)h(ev)m(erything,)f(prin)m(t)d(the)i
+(color)g(bar)g(with)e(saturation)i(set)g(to)h(zero.)55
+b(This)150 4354 y(will)32 b(prin)m(t)g(neutral)i(tones)g(using)f(color)
+h(inks.)51 b(Y)-8 b(our)34 b(goal)h(here)f(is)f(to)i(lo)s(ok)f(for)g
+(neutral)f(tonalit)m(y)-8 b(.)52 b(If)150 4463 y(y)m(ou're)31
+b(using)e(a)i(6-color)h(prin)m(ter)d(and)h(get)h(a)g(y)m(ello)m(w)g
+(cast,)h(it)e(means)g(that)h(the)g(v)-5 b(alues)30 b(for)g(y)m(our)h
+(ligh)m(t)150 4573 y(inks)37 b(are)j(to)s(o)f(high)e(\(remem)m(b)s(er,)
+k(that)f(means)e(they're)i(getting)f(to)s(o)h(m)m(uc)m(h)f(credit,)h
+(so)f(y)m(ou're)h(not)150 4682 y(dep)s(ositing)33 b(enough)i(cy)m(an)g
+(and)f(magen)m(ta)j(ink,)e(and)f(the)h(y)m(ello)m(w)g(dominates\).)54
+b(If)35 b(y)m(ou)g(get)h(a)f(bluish)150 4792 y(or)30
+b(bluish-purple)25 b(cast,)31 b(y)m(our)f(ligh)m(t)f(inks)f(are)j(to)s
+(o)f(lo)m(w)g(\(y)m(ou're)h(not)f(giving)f(them)g(enough)h(credit,)g
+(so)150 4902 y(to)s(o)e(m)m(uc)m(h)g(cy)m(an)g(and)f(magen)m(ta)j(is)c
+(dep)s(osited,)h(whic)m(h)g(o)m(v)m(erwhelms)g(the)h(y)m(ello)m(w\).)40
+b(Mak)m(e)29 b(sure)e(y)m(ou)h(do)150 5011 y(this)e(on)i(v)m(ery)g
+(white,)f(v)m(ery)h(high)e(grade)i(inkjet)f(pap)s(er)f(that's)j
+(designed)d(for)h(1440x720)k(dpi)26 b(or)h(higher;)150
+5121 y(otherwise)e(the)g(ink)f(will)f(spread)h(on)h(con)m(tact)j(and)c
+(y)m(ou'll)h(get)h(v)-5 b(alues)25 b(that)g(aren't)h(really)e(true)h
+(for)g(high)150 5230 y(grade)33 b(pap)s(er.)47 b(Y)-8
+b(ou)33 b(can,)h(of)f(course,)h(calibrate)e(for)g(lo)m(w)h(grade)g(pap)
+s(er)f(if)f(that's)j(what)f(y)m(ou're)g(going)150 5340
+y(to)e(use,)f(but)g(that)h(shouldn't)e(b)s(e)g(put)h(in)m(to)g(the)h
+(distribution.)p eop
+%%Page: 83 88
+83 87 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(83)275 299 y(Y)-8 b(ou)43 b(can)f(also)h(fully)d
+(desaturate)k(this)d(bar)h(inside)e(the)j(Gimp)f(and)g(prin)m(t)f(it)h
+(as)h(mono)s(c)m(hrome)150 408 y(\(don't)38 b(prin)m(t)e(the)i(cy)m(an)
+g(as)f(mono)s(c)m(hrome;)42 b(the)37 b(driv)m(er)g(do)s(es)g(funn)m(y)f
+(things)g(with)g(luminance\),)i(for)150 518 y(comparison.)i(Y)-8
+b(ou'll)30 b(\014nd)e(it)i(v)m(ery)h(hard)e(to)i(get)h(rid)d(of)h(all)f
+(color)i(casts.)275 652 y(There)e(are)i(other)g(w)m(a)m(ys)g(of)g
+(tuning)d(prin)m(ters,)i(but)f(this)g(one)i(w)m(orks)f(prett)m(y)h(w)m
+(ell)f(for)g(me.)150 909 y Ft(D.5)68 b(Canon)45 b(inkjet)h(prin)l(ters)
+275 1101 y Fu(Basically)-8 b(,)39 b(a)f(new)f(Canon)g(prin)m(ter)g(can)
+h(b)s(e)f(added)g(to)h(`)p Fr(print-canon.c)p Fu(')d(in)h(a)i(similar)d
+(w)m(a)m(y)k(as)150 1210 y(describ)s(ed)28 b(ab)s(o)m(v)m(e)k(for)e
+(the)h(epson)f(inkjet)f(prin)m(ters.)39 b(The)30 b(main)g
+(di\013erences)f(are)i(noted)f(here:)275 1345 y(In)h(general,)i(Canon)f
+(prin)m(ters)f(ha)m(v)m(e)i(more)g(\\built-in)c(in)m(telligence")j
+(than)g(Epson)f(prin)m(ters)g(whic)m(h)150 1454 y(results)j(in)f(the)i
+(fact)h(that)g(the)f(driv)m(er)e(only)h(has)h(to)h(tell)e(the)h(prin)m
+(ting)e(conditions)g(lik)m(e)h(resolutions,)150 1564
+y(dot)i(sizes,)g(etc.)57 b(to)36 b(the)f(prin)m(ter)f(and)h(afterw)m
+(ards)g(transfer)g(the)h(raster)f(data)h(line)e(b)m(y)h(line)f(for)h
+(eac)m(h)150 1673 y(color)30 b(used.)275 1807 y Fr(canon_cap_t)d
+Fu(is)i(a)i(C)f(struct)g(de\014ned)f(as)i(follo)m(ws:)3474
+2040 y(Data)h(t)m(yp)s(e)-3724 b Fk(canon)p 449 2040
+35 5 v 40 w(cap)p 660 2040 V 41 w(t)630 2144 y Fr(typedef)46
+b(struct)g(canon_caps)f({)725 2247 y(int)i(model;)476
+b(/*)47 b(model)g(number)f(as)h(used)f(in)i(printers.xml)c(*/)725
+2351 y(int)j(max_width;)284 b(/*)47 b(maximum)f(printable)f(paper)i
+(size)f(*/)725 2455 y(int)h(max_height;)725 2559 y(int)g(base_res;)332
+b(/*)47 b(base)g(resolution)e(-)i(shall)g(be)g(150)g(or)g(180)g(*/)725
+2663 y(int)g(max_xdpi;)332 b(/*)47 b(maximum)f(horizontal)f(resolution)
+g(*/)725 2766 y(int)i(max_ydpi;)332 b(/*)47 b(maximum)f(vertical)g
+(resolution)f(*/)725 2870 y(int)i(max_quality;)725 2974
+y(int)g(border_left;)188 b(/*)47 b(left)g(margin,)f(points)g(*/)725
+3078 y(int)h(border_right;)140 b(/*)47 b(right)g(margin,)e(points)h(*/)
+725 3181 y(int)h(border_top;)236 b(/*)47 b(absolute)f(top)h(margin,)e
+(points)i(*/)725 3285 y(int)g(border_bottom;)92 b(/*)47
+b(absolute)f(bottom)g(margin,)g(points)g(*/)725 3389
+y(int)h(inks;)524 b(/*)47 b(installable)e(cartridges)g(\(CANON_INK_*\))
+f(*/)725 3493 y(int)j(slots;)476 b(/*)47 b(available)e(paperslots)g(*/)
+725 3597 y(int)i(features;)332 b(/*)47 b(special)f(bjl)h(settings)e(*/)
+725 3700 y(canon_dot_size_t)f(dot_sizes;)h(/*)i(Vector)f(of)h(dot)g
+(sizes)g(for)f(resolutions)f(*/)725 3804 y(canon_densities_t)f
+(densities;)h(/*)i(List)f(of)i(densities)d(for)i(each)f(printer)g(*/)
+725 3908 y(canon_variable_inklist_t)c(*inxs;)k(/*)h(Choices)f(of)h
+(inks)g(for)f(this)h(printer)f(*/)630 4012 y(})h(canon_cap_t;)275
+4195 y Fu(Since)38 b(there)i(are)g(Canon)f(prin)m(ters)f(whic)m(h)g
+(prin)m(t)g(in)h(resolutions)f(of)h(2^)p Fc(n)27 b Fs(\003)g
+Fu(150)41 b(dpi)d(\(e.g.)69 b(300,)150 4305 y(600,)44
+b(1200\))e(and)d(others)h(whic)m(h)e(supp)s(ort)g(resolutions)h(of)h
+(2^)p Fc(n)27 b Fs(\003)g Fu(180)41 b(dpi)d(\(e.g.)70
+b(360,)44 b(720,)g(1440\),)150 4414 y(there's)32 b(a)h(base)f
+(resolution)f(\(150)i(or)f(180,)i(resp)s(ectiv)m(ely\))e(giv)m(en)g(in)
+f(the)h Fr(canon_cap_t)p Fu(.)43 b(The)31 b(structs)150
+4524 y Fr(canon_dot_size_t)p Fu(,)c Fr(canon_densities_t)f
+Fu(and)k Fr(canon_variable_inklist_)o(t)25 b Fu(refer)30
+b(to)i(resolu-)150 4633 y(tions)e(b)s(eing)f(m)m(ultiples)f(of)i(the)h
+(base)f(resolution.)275 4767 y(F)-8 b(or)30 b(the)h(Canon)f(driv)m(er,)
+f(the)h(struct)g Fr(canon_dot_size_t)c Fu(holds)j(v)-5
+b(alues)29 b(for)h(a)h(mo)s(del's)e(capabil-)150 4877
+y(ities)i(at)h(a)g(giv)m(en)g(resolution:)42 b(`)p Fr(-1)p
+Fu(')32 b(if)f(the)g(resolution)g(is)g(not)h(supp)s(orted.)43
+b(`)p Fr(0)p Fu(')31 b(if)g(it)g(can)h(b)s(e)g(used)f(and)150
+4987 y(`)p Fr(1)p Fu(')g(if)e(the)h(resolution)f(can)i(b)s(e)f(used)f
+(for)i(v)-5 b(ariable)29 b(dot)h(size)h(prin)m(ting.)275
+5121 y(In)c Fr(canon_densities_t)c Fu(the)28 b(base)g(densities)f(for)g
+(eac)m(h)j(resolution)c(can)i(b)s(e)g(sp)s(eci\014ed)e(lik)m(e)h(for)h
+(an)150 5230 y(epson)35 b(prin)m(ter,)i(the)f(same)g(holds)e(true)i
+(for)f Fr(canon_variable_inklist_t)p Fu(.)51 b(See)36
+b(the)g(descriptions)150 5340 y(ab)s(o)m(v)m(e)c(to)f(learn)e(ab)s(out)
+h(ho)m(w)h(to)g(adjust)f(y)m(our)g(mo)s(del's)f(output)h(to)h(yield)e
+(nice)h(results.)p eop
+%%Page: 84 89
+84 88 bop 150 -116 a Fu(App)s(endix)28 b(D:)j(Adding)d(a)j(new)f(prin)m
+(ter)2112 b(84)275 299 y(There's)40 b(a)i(sligh)m(t)e(di\013erence)h
+(though)g(in)f(the)h(w)m(a)m(y)h(the)g(Canon)e(driv)m(er)g(and)h(the)g
+(escp2)h(driv)m(er)150 408 y(de\014ne)30 b(their)f(v)-5
+b(ariable)29 b(inklists:)38 b(In)30 b(the)g(Canon)g(driv)m(er,)g(y)m
+(ou)g(need)g(to)i(de\014ne)d(an)h(inklist)e(lik)m(e)i(this:)390
+537 y Fr(static)46 b(const)g(canon_variable_inklist_t)c
+(canon_ink_myinks[])g(=)390 641 y({)485 745 y({)581 848
+y(1,4,)47 b(/*)g(1bit/pixel,)d(4)k(colors)e(*/)581 952
+y(&ci_CMYK_1,)f(&ci_CMYK_1,)f(&ci_CMYK_1,)581 1056 y(&ci_CMYK_1,)h
+(&ci_CMYK_1,)f(&ci_CMYK_1,)485 1160 y(},)485 1264 y({)581
+1367 y(3,4,)j(/*)g(3bit/pixel,)d(4)k(colors)e(*/)581
+1471 y(&ci_CMYK_3,)f(&ci_CMYK_3,)f(&ci_CMYK_3,)581 1575
+y(&ci_CMYK_3,)h(&ci_CMYK_3,)f(&ci_CMYK_3,)485 1679 y(},)390
+1782 y(};)150 1917 y Fu(where)d(the)h(`)p Fr(&ci_CMYK_1)p
+Fu(')d(and)i(`)p Fr(&ci_CMYK_3)p Fu(')e(en)m(tries)i(are)h(references)g
+(to)g(a)g(previously)d(de\014ned)150 2027 y(const)31
+b(of)f(t)m(yp)s(e)h Fr(canon_variable_inkset_t)p Fu(.)p
+eop
+%%Page: 85 90
+85 89 bop 150 -116 a Fu(Data)32 b(T)m(yp)s(e)e(and)g(V)-8
+b(ariable)29 b(Index)2290 b(85)150 299 y Fp(Data)54 b(T)l(yp)t(e)g(and)
+f(V)-13 b(ariable)55 b(Index)150 642 y Ft(C)150 764 y
+Fe(canon_cap_t)23 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)46 b Fd(83)150 1023 y Ft(E)150 1145 y Fe(escp2_printer_t)15
+b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fd(75)150
+1404 y Ft(G)150 1526 y Fe(gimpprint_binary_age)7 b Fb(.)17
+b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)33 b Fd(25)150 1618 y Fe
+(gimpprint_current_interface)16 b Fb(.)i(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fd(25)150 1709 y Fe
+(gimpprint_interface_age)26 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fd(25)150
+1800 y Fe(gimpprint_major_version)26 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b
+Fd(25)2025 642 y Fe(gimpprint_micro_version)26 b Fb(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)47 b Fd(25)2025 737 y Fe(gimpprint_minor_version)26
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fd(25)2025 1012 y Ft(S)2025 1140 y Fe(stp_image_t)23
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46
+b Fd(23)2025 1234 y Fe(stp_option_t)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fd(21)2025 1329 y Fe(stp_outfunc_t)18
+b Fb(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fd(20)2025 1423 y Fe(stp_papersize_t)15 b Fb(.)g(.)e(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)40 b Fd(21)2025 1517 y Fe(stp_papersize_unit_t)7
+b Fb(.)17 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fd(21)2025 1612 y
+Fe(stp_printer_t)18 b Fb(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)43 b Fd(22)2025 1706 y Fe(stp_printfuncs_t)13 b Fb(.)j(.)c(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)39 b Fd(23)2025 1800 y Fe(stp_vars_t)24
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fd(15)p eop
+%%Page: 86 91
+86 90 bop 150 -116 a Fu(F)-8 b(unction)30 b(and)g(Macro)h(Index)2449
+b(86)150 299 y Fp(F)-13 b(unction)53 b(and)g(Macro)h(Index)150
+614 y Ft(*)150 737 y Fe(*)39 b(??)h Fa(BC)6 b Fe(=)p
+Fa(xx)45 b(y)6 b Fe([1])40 b(...)g Fa(y)6 b Fe([xx])g
+Fb(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)31
+b Fd(72)150 829 y Fe(*)39 b(AC)h Fa(BC)6 b Fe(=2)41 b(00)f
+Fa(xx)15 b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fd(69)150 921 y Fe(*)j(AI)h Fa(BC)6 b Fe(=3)41 b(00)f(00)f(00)10
+b Fb(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(67)150 1013 y Fe(*)k(CH)h
+Fa(BC)6 b Fe(=2)41 b(00)f Fa(xx)15 b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)36 b Fd(67)150 1105 y Fe(*)j(DA)h Fa(BC)6 b Fe(=4)41
+b(00)f Fa(xx)j Fe(00)d Fa(yy)20 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)41 b Fd(67)150
+1197 y Fe(*)e(DA)h Fa(BC)6 b Fe(=6)41 b(00)f Fa(xx)j
+Fe(00)d Fa(yy)45 b Fe(09)39 b(00)6 b Fb(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)32 b Fd(68)150 1289 y Fe(*)39
+b(DR)h Fa(BC)6 b Fe(=4)41 b(00)f(xx)f Fa(DT2)31 b Fb(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)50 b Fd(69)150 1381 y Fe(*)39 b(DT)h Fa(BC)6
+b Fe(=3)41 b(00)f Fa(xx)j Fe(00)25 b Fb(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49
+b Fd(67)150 1473 y Fe(*)39 b(DU)h Fa(BC)6 b Fe(=6)41
+b(00)f Fa(xx)j Fe(00)d(09)g(00)f Fa(yy)13 b Fb(.)e(.)i(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)32 b Fd(67)150 1565 y
+Fe(*)39 b(EX)h Fa(BC)6 b Fe(=3)41 b(00)f Fa(xx)j(yy)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)45 b Fd(70)150 1656 y Fe(*)39
+b(EX)h Fa(BC)6 b Fe(=6)41 b(00)f(00)f(00)h(00)g(0x05)g
+Fa(xx)13 b Fb(.)e(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
+b Fd(70)150 1748 y Fe(*)39 b(EX)h Fa(BC)6 b Fe(=6)41
+b(00)f(00)f(00)h(00)g(0x14)g Fa(xx)13 b Fb(.)e(.)i(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)33 b Fd(70)150 1840 y Fe(*)39 b(FP)h
+Fa(BC)6 b Fe(=3)41 b(00)f Fa(xx)j(yy)25 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)45
+b Fd(68)150 1932 y Fe(*)39 b(IK)h Fa(BC)6 b Fe(=2)41
+b(00)f Fa(xx)15 b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fd(69)150 2024 y Fe(*)j(IQ)h Fa(BC)6 b Fe(=1)41 b(01)18
+b Fb(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44
+b Fd(68)150 2116 y Fe(*)39 b(IR)h Fa(BC)6 b Fe(=2)41
+b(00)f Fa(xx)15 b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fd(68)150 2208 y Fe(*)j(LD)h Fa(BC)6 b Fe(=0)25 b Fb(.)12
+b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48
+b Fd(67)150 2300 y Fe(*)39 b(PH)h Fa(BC)6 b Fe(=2)41
+b(00)f Fa(xx)15 b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fd(70)150 2392 y Fe(*)j(PM)h Fa(BC)6 b Fe(=2)41 b(00)f(00)14
+b Fb(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(70)150
+2484 y Fe(*)g(PP)h Fa(BC)6 b Fe(=3)41 b(00)f Fa(xx)j(yy)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)45 b Fd(69)150 2576 y Fe(*)39
+b(PZ)h(BC=2)g(00)g(xx)15 b Fb(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+40 b Fd(70)150 2668 y Fe(*)f(RS)h Fa(BC)6 b Fe(=1)41
+b(01)18 b Fb(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44
+b Fd(68)150 2760 y Fe(*)39 b(SM)h Fa(BC)6 b Fe(=1)41
+b(01)18 b Fb(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44
+b Fd(72)150 2852 y Fe(*)39 b(SM)h Fa(BC)6 b Fe(=2)41
+b(00)f(02)14 b Fb(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39
+b Fd(72)150 2944 y Fe(*)g(SM)h Fa(BC)6 b Fe(=2)41 b(00)f
+Fa(xx)15 b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fd(71)150 3036 y Fe(*)j(SN)h Fa(BC)6 b Fe(=3)41 b(00)f
+Fa(xx)j(yy)25 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)45 b Fd(68)150
+3127 y Fe(*)39 b(ST)h Fa(BC)6 b Fe(=1)41 b(01)18 b Fb(.)13
+b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fd(71)150
+3219 y Fe(*)39 b(ST)h Fa(BC)6 b Fe(=2)41 b(00)f Fa(xx)15
+b Fb(.)c(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(70)150
+3311 y Fe(*)j(SV)h Fa(BC)6 b Fe(=0)25 b Fb(.)12 b(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fd(68)150 3559
+y Fl(<)150 3681 y Fe(</printer>)24 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fd(75)150 3773 y
+Fe(<color>)8 b Fb(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fd(74)150 3865 y Fe(<language)41
+b(value=)p Fa(t)n(yp)r(e)t Fe(>)9 b Fb(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)34
+b Fd(75)150 3957 y Fe(<model)41 b(value=)p Fa(in)n(t)r
+Fe(>)24 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fd(75)150
+4049 y Fe(<nocolor>)25 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)49 b Fd(74)150 4141 y Fe(<printer)41
+b(name=")p Fa(longname)t Fe(")304 4232 y(driver=")p Fa(driv)n(ername)t
+Fe(">)9 b Fb(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)35 b Fd(74)150 4480 y Ft(A)150 4602
+y Fe(AM_PATH_GIMPPRINT)12 b Fb(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37
+b Fd(13)150 4849 y Ft(E)150 4972 y Fe(ESC)j($)f Fa(OFFSET2)21
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(63)150
+5064 y Fe(ESC)h(\($)g Fa(BC)6 b Fe(=4)41 b Fa(OFFSET4)29
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)48 b Fd(63)150 5156 y Fe(ESC)40 b(\(/)g
+Fa(BC)6 b Fe(=4)41 b Fa(OFFSET4)29 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48
+b Fd(63)150 5248 y Fe(ESC)40 b(\(\\)g Fa(BC)6 b Fe(=4)41
+b Fa(UNITS2)j(OFFSET2)30 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)49 b Fd(63)150 5340 y Fe(ESC)40 b(\(C)g Fa(BC)6 b
+Fe(=2)41 b Fa(P)-6 b(A)n(GELENGTH2)20 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fd(62)2025 614 y
+Fe(ESC)g(\(C)f Fa(BC)6 b Fe(=4)41 b Fa(P)-6 b(A)n(GELENGTH4)21
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40
+b Fd(62)2025 725 y Fe(ESC)g(\(c)f Fa(BC)6 b Fe(=4)41
+b Fa(TOP2)46 b(LENGTH2)21 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)40 b Fd(62)2025 836 y Fe(ESC)g(\(c)f Fa(BC)6
+b Fe(=8)41 b Fa(TOP4)46 b(LENGTH4)21 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)40 b Fd(62)2025 947 y Fe(ESC)g(\(D)f
+Fa(BC)6 b Fe(=4)41 b Fa(BASE2)46 b(VER)-6 b(TICAL1)2178
+1039 y(HORIZONT)g(AL1)26 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48
+b Fd(65)2025 1150 y Fe(ESC)40 b(\(e)f Fa(BC)6 b Fe(=2)41
+b Fa(ZER)n(O1)k(DOTSIZE1)27 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)47 b Fd(62)2025 1261 y Fe(ESC)40 b(\(G)f Fa(BC)6
+b Fe(=1)41 b Fa(ON1)16 b Fb(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fd(61)2025 1372 y Fe(ESC)k(\(i)f Fa(BC)6 b Fe(=1)41
+b Fa(MICR)n(O)n(WEA)-9 b(VE1)15 b Fb(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)35 b Fd(62)2025 1483 y Fe(ESC)40
+b(\(K)f Fa(BC)6 b Fe(=2)41 b Fa(ZER)n(O1)k(GRA)-6 b(YMODE1)19
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fd(62)2025
+1594 y Fe(ESC)g(\(r)f Fa(BC)6 b Fe(=2)41 b Fa(DENSITY1)k(COLOR1)26
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fd(63)2025
+1705 y Fe(ESC)40 b(\(R)f Fa(BC)6 b Fe(=8)41 b(00)f(R)f(E)h(M)f(O)h(T)f
+(E)h(1)13 b Fb(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39
+b Fd(65)2025 1816 y Fe(ESC)h(\(s)f Fa(BC)6 b Fe(=1)41
+b Fa(SPEED1)18 b Fb(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fd(62)2025
+1927 y Fe(ESC)i(\(S)f Fa(BC)6 b Fe(=8)41 b Fa(WIDTH4)k(LENGTH4)19
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fd(62)2025
+2038 y Fe(ESC)h(\(U)f Fa(BC)6 b Fe(=1)41 b Fa(UNIT1)30
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)50 b Fd(61)2025 2149 y Fe(ESC)40
+b(\(U)f Fa(BC)6 b Fe(=5)41 b Fa(P)-6 b(A)n(GEUNITS1)45
+b(VUNIT1)f(HUNIT1)2178 2240 y(BASEUNIT2)13 b Fb(.)g(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)33 b Fd(61)2025 2351 y Fe(ESC)40 b(\(v)f
+Fa(BC)6 b Fe(=2)41 b Fa(AD)n(V)-9 b(ANCE2)27 b Fb(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47
+b Fd(63)2025 2462 y Fe(ESC)40 b(\(V)f Fa(BC)6 b Fe(=2)41
+b Fa(AD)n(V)-9 b(ANCE2)27 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fd(63)2025 2573
+y Fe(ESC)40 b(\(v)f Fa(BC)6 b Fe(=4)41 b Fa(AD)n(V)-9
+b(ANCE4)27 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)47 b Fd(63)2025 2684 y Fe(ESC)40 b(\(V)f
+Fa(BC)6 b Fe(=4)41 b Fa(AD)n(V)-9 b(ANCE4)27 b Fb(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47
+b Fd(63)2025 2795 y Fe(ESC)40 b(.)f Fa(COMPRESS1)46 b(VSEP1)f(HSEP1)g
+(LINES1)2178 2887 y(WIDTH2)g(data...)17 b Fb(.)d(.)e(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43
+b Fd(64)2025 2998 y Fe(ESC)d(@)11 b Fb(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37
+b Fd(61)2025 3109 y Fe(ESC)j(\\)f Fa(OFFSET2)21 b Fb(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fd(63)2025
+3220 y Fe(ESC)g(01)f(@EJL)h([sp])h(ID\\r\\n)22 b Fb(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)47 b Fd(65)2025 3331 y Fe(ESC)40 b(i)f Fa(COLOR1)45
+b(COMPRESS1)h(BITS1)f(BYTES2)2178 3422 y(LINES2)g(data...)25
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fd(64)2025 3533
+y Fe(ESC)40 b(r)f Fa(COLOR1)17 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)37 b Fd(63)2025 3644 y Fe(ESC)j(U)f Fa(DIRECTION1)22
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)42 b Fd(62)2025 3996 y
+Ft(G)2025 4159 y Fe(GIMPPRINT_BINARY_AGE)7 b Fb(.)17
+b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)33 b Fd(25)2025 4270 y Fe(GIMPPRINT_CHECK_VERSION)
+26 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)47 b Fd(25)2025 4381 y Fe(GIMPPRINT_CURRENT_INTERFACE)16
+b Fb(.)i(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fd(25)2025 4492 y Fe(GIMPPRINT_INTERFACE_AGE)26 b Fb(.)13
+b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)47 b Fd(25)2025 4603 y Fe(GIMPPRINT_MAJOR_VERSION)26
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fd(25)2025 4714 y Fe(GIMPPRINT_MICRO_VERSION)26
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fd(25)2025 4825 y Fe(GIMPPRINT_MINOR_VERSION)26
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fd(25)2025 5177 y Ft(N)2025 5340 y Fe(NC)39
+b Fa(BC)6 b Fe(=2)41 b(00)f(00)17 b Fb(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)43 b Fd(67)p eop
+%%Page: 87 92
+87 91 bop 150 -116 a Fu(F)-8 b(unction)30 b(and)g(Macro)h(Index)2449
+b(87)150 299 y Ft(S)150 422 y Fe(stp_allocate_copy)12
+b Fb(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fd(16)150 514
+y Fe(stp_allocate_lut)13 b Fb(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39
+b Fd(20)150 606 y Fe(stp_allocate_vars)12 b Fb(.)k(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)37 b Fd(16)150 698 y Fe(stp_check_version)12
+b Fb(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fd(24)150 790
+y Fe(stp_choose_colorfunc)7 b Fb(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fd(24)150 882 y Fe(stp_clear_all_options)c Fb(.)12
+b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)50 b Fd(21)150 974 y Fe(stp_clear_option)13
+b Fb(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fd(21)150
+1066 y Fe(stp_compute_lut)15 b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)40 b Fd(20)150 1158 y Fe(stp_compute_page_parameters)16
+b Fb(.)i(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41
+b Fd(24)150 1250 y Fe(stp_copy_vars)18 b Fb(.)d(.)d(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)43 b Fd(16)150 1342 y Fe
+(stp_default_dither_algorithm)15 b Fb(.)j(.)12 b(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(21)150 1434 y Fe(stp_default_settings)7
+b Fb(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fd(24)150 1526 y Fe
+(stp_dither_algorithm_count)17 b Fb(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fd(21)150 1619 y
+Fe(stp_dither_algorithm_name)18 b Fb(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fd(21)150 1711
+y Fe(stp_free_lut)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)45 b Fd(20)150 1803 y Fe(stp_free_vars)18
+b Fb(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
+b Fd(16)150 1895 y Fe(stp_get_app_gamma)12 b Fb(.)k(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)37 b Fd(19)150 1987 y Fe(stp_get_brightness)10
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(18)150
+2079 y Fe(stp_get_cmap)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)45 b Fd(20)150 2171 y Fe(stp_get_contrast)13
+b Fb(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fd(19)150
+2263 y Fe(stp_get_cyan)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)45 b Fd(19)150 2355 y Fe(stp_get_density)15
+b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fd(19)150
+2447 y Fe(stp_get_dither_algorithm)25 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 b Fd(17)150
+2539 y Fe(stp_get_driver)16 b Fb(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)42 b Fd(16)150 2631 y Fe(stp_get_errdata)15 b
+Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fd(20)150
+2723 y Fe(stp_get_errfunc)15 b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)40 b Fd(20)150 2815 y Fe(stp_get_gamma)18 b Fb(.)d(.)d(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 b Fd(18)150 2907 y Fe
+(stp_get_image_type)10 b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36
+b Fd(17)150 2999 y Fe(stp_get_ink_type)13 b Fb(.)j(.)d(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)39 b Fd(17)150 3091 y Fe(stp_get_input_color_model)18
+b Fb(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)44 b Fd(18)150 3183 y Fe(stp_get_left)22 b Fb(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45
+b Fd(17)150 3275 y Fe(stp_get_lut)23 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fd(19)150 3368 y
+Fe(stp_get_magenta)15 b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40
+b Fd(19)150 3460 y Fe(stp_get_media_size)10 b Fb(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(16)150 3552 y Fe
+(stp_get_media_source)7 b Fb(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fd(17)150 3644 y Fe(stp_get_media_type)10 b Fb(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(17)150 3736 y Fe
+(stp_get_option_by_index)26 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fd(21)150
+3828 y Fe(stp_get_option_by_name)28 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48
+b Fd(21)150 3920 y Fe(stp_get_orientation)9 b Fb(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)34 b Fd(17)150 4012 y Fe(stp_get_outdata)15
+b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fd(20)150
+4104 y Fe(stp_get_outfunc)15 b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)40 b Fd(20)150 4196 y Fe(stp_get_output_color_model)17
+b Fb(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+42 b Fd(18)150 4288 y Fe(stp_get_output_to)12 b Fb(.)k(.)c(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)37 b Fd(16)150 4380 y Fe(stp_get_output_type)9
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fd(17)150 4472
+y Fe(stp_get_page_height)9 b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
+b Fd(18)150 4564 y Fe(stp_get_page_width)10 b Fb(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(18)150 4656 y Fe
+(stp_get_papersize_by_index)17 b Fb(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fd(22)150 4748 y
+Fe(stp_get_papersize_by_name)18 b Fb(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fd(22)150 4840
+y Fe(stp_get_papersize_by_size)18 b Fb(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fd(22)150
+4932 y Fe(stp_get_ppd_file)13 b Fb(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+39 b Fd(16)150 5024 y Fe(stp_get_printer_by_driver)18
+b Fb(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)44 b Fd(22)2025 299 y Fe(stp_get_printer_by_index)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fd(22)2025 392 y Fe(stp_get_printer_by_long_name)15
+b Fb(.)i(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40
+b Fd(22)2025 484 y Fe(stp_get_printer_index_by_drive)q(r)10
+b Fb(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35
+b Fd(22)2025 577 y Fe(stp_get_resolution)10 b Fb(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(16)2025 670 y Fe
+(stp_get_saturation)10 b Fb(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fd(19)2025 762 y Fe(stp_get_scaling)15 b Fb(.)g(.)e(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)40 b Fd(18)2025 855 y Fe(stp_get_top)23
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46
+b Fd(17)2025 947 y Fe(stp_get_unit)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fd(18)2025 1040 y Fe(stp_get_yellow)16
+b Fb(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)42 b
+Fd(19)2025 1133 y Fe(stp_init)7 b Fb(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fd(15)2025
+1225 y Fe(stp_known_papersizes)7 b Fb(.)17 b(.)12 b(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fd(22)2025 1318 y Fe(stp_known_printers)10 b Fb(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(22)2025 1411 y Fe(stp_malloc)24
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48
+b Fd(15)2025 1503 y Fe(stp_maximum_settings)7 b Fb(.)17
+b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)33 b Fd(24)2025 1596 y Fe(stp_merge_printvars)9
+b Fb(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fd(20)2025 1689 y
+Fe(stp_minimum_settings)7 b Fb(.)17 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fd(24)2025 1781 y Fe(stp_option_count)13 b Fb(.)j(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)39 b Fd(21)2025 1874 y Fe(stp_option_data)15
+b Fb(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 b Fd(21)2025
+1967 y Fe(stp_option_length)12 b Fb(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38
+b Fd(21)2025 2059 y Fe(stp_option_name)15 b Fb(.)g(.)e(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)40 b Fd(21)2025 2152 y Fe(stp_papersize_get_bottom)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fd(22)2025 2245 y Fe(stp_papersize_get_height)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fd(22)2025 2337 y Fe(stp_papersize_get_left)27
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)48 b Fd(22)2025 2430 y Fe(stp_papersize_get_name)27
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)48 b Fd(22)2025 2523 y Fe(stp_papersize_get_right)26
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fd(22)2025 2615 y Fe(stp_papersize_get_top)29
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)50 b Fd(22)2025 2708 y Fe(stp_papersize_get_unit)27
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)48 b Fd(22)2025 2801 y Fe(stp_papersize_get_width)26
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)47 b Fd(22)2025 2893 y Fe(stp_printer_get_driver)27
+b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)48 b Fd(23)2025 2986 y Fe(stp_printer_get_long_name)18
+b Fb(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)44 b Fd(22)2025 3079 y Fe(stp_printer_get_model)29
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)50 b Fd(23)2025 3171 y Fe
+(stp_printer_get_printfuncs)17 b Fb(.)h(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fd(23)2025 3264 y
+Fe(stp_printer_get_printvars)18 b Fb(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fd(24)2025 3357
+y Fe(stp_set_app_gamma)12 b Fb(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38
+b Fd(19)2025 3449 y Fe(stp_set_brightness)10 b Fb(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(18)2025 3542 y Fe(stp_set_cmap)22
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fd(20)2025 3635 y Fe(stp_set_contrast)13 b Fb(.)j(.)c(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)39 b Fd(19)2025 3727 y Fe(stp_set_cyan)22
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fd(19)2025 3820 y Fe(stp_set_density)15 b Fb(.)g(.)e(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)40 b Fd(19)2025 3913 y Fe(stp_set_dither_algorithm)25
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)46 b Fd(17)2025 4005 y Fe(stp_set_dither_algorithm_n)17
+b Fb(.)h(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+43 b Fd(17)2025 4098 y Fe(stp_set_driver)16 b Fb(.)f(.)e(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)42 b Fd(16)2025 4191 y Fe(stp_set_driver_n)13
+b Fb(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fd(16)2025
+4283 y Fe(stp_set_errdata)15 b Fb(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)40 b Fd(20)2025 4376 y Fe(stp_set_errfunc)15 b Fb(.)g(.)e(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)40 b Fd(20)2025 4469 y Fe(stp_set_gamma)18
+b Fb(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43
+b Fd(18)2025 4561 y Fe(stp_set_image_type)10 b Fb(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(17)2025 4654 y Fe(stp_set_ink_type)
+13 b Fb(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fd(17)2025
+4747 y Fe(stp_set_ink_type_n)10 b Fb(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+36 b Fd(17)2025 4839 y Fe(stp_set_input_color_model)18
+b Fb(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)44 b Fd(18)2025 4932 y Fe(stp_set_left)22 b Fb(.)12
+b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45
+b Fd(17)2025 5024 y Fe(stp_set_lut)23 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46 b Fd(19)p eop
+%%Page: 88 93
+88 92 bop 150 -116 a Fu(F)-8 b(unction)30 b(and)g(Macro)h(Index)2449
+b(88)150 299 y Fe(stp_set_magenta)15 b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)40 b Fd(19)150 391 y Fe(stp_set_media_size)10
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(16)150
+484 y Fe(stp_set_media_size_n)7 b Fb(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fd(16)150 576 y Fe(stp_set_media_source)7 b Fb(.)17
+b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)33 b Fd(17)150 669 y Fe(stp_set_media_source_n)28
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)48 b Fd(17)150 761 y Fe(stp_set_media_type)10
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fd(17)150
+854 y Fe(stp_set_media_type_n)7 b Fb(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)33
+b Fd(17)150 946 y Fe(stp_set_option\(stp_vars_t)18 b
+Fb(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)44 b Fd(21)150 1038 y Fe(stp_set_orientation)9 b Fb(.)17
+b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)34 b Fd(17)150 1131 y Fe(stp_set_outdata)15
+b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fd(20)150
+1223 y Fe(stp_set_outfunc)15 b Fb(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
+h(.)40 b Fd(20)150 1316 y Fe(stp_set_output_color_model)17
+b Fb(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+42 b Fd(18)150 1408 y Fe(stp_set_output_to)12 b Fb(.)k(.)c(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)37 b Fd(16)150 1501 y Fe(stp_set_output_to_n)9
+b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fd(16)150 1593
+y Fe(stp_set_output_type)9 b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34
+b Fd(17)2025 299 y Fe(stp_set_page_height)9 b Fb(.)16
+b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)35 b Fd(18)2025 390 y Fe(stp_set_page_width)10
+b Fb(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(18)2025
+482 y Fe(stp_set_ppd_file)13 b Fb(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+39 b Fd(16)2025 573 y Fe(stp_set_ppd_file_n)10 b Fb(.)17
+b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(16)2025 664 y Fe
+(stp_set_resolution)10 b Fb(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36
+b Fd(16)2025 756 y Fe(stp_set_resolution_n)7 b Fb(.)17
+b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)33 b Fd(16)2025 847 y Fe(stp_set_saturation)10
+b Fb(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fd(19)2025
+938 y Fe(stp_set_scaling)15 b Fb(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)40 b Fd(18)2025 1030 y Fe(stp_set_top)23 b Fb(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46
+b Fd(17)2025 1121 y Fe(stp_set_unit)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fd(18)2025 1213 y Fe(stp_set_yellow)16
+b Fb(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)42 b
+Fd(19)2025 1472 y Ft(V)2025 1593 y Fe(VI)d Fa(BC)6 b
+Fe(=2)41 b(00)f(00)17 b Fb(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+43 b Fd(67)p eop
+%%Page: 89 94
+89 93 bop 150 -116 a Fu(Concept)31 b(Index)2927 b(89)150
+299 y Fp(Concept)52 b(Index)150 592 y Ft(A)150 714 y
+Fd(adding)26 b(a)g(prin)n(ter)18 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)44 b Fd(74)150 805 y(App)r(endices)8 b
+Fb(.)j(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)33
+b Fd(33)150 897 y Fe(autoconf)7 b Fb(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fd(13)150
+988 y Fe(automake)7 b Fb(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fd(13)150 1232 y Ft(B)150
+1354 y Fd(bugs)14 b Fb(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(32)150
+1611 y Ft(C)150 1733 y Fd(collisions)14 b Fb(.)h(.)d(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(47)150
+1824 y(CUPS)26 b(driv)n(er)20 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)47 b Fd(31)150 2068 y Ft(D)150
+2190 y Fd(dither)25 b(functions)7 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)32 b Fd(21)150 2281 y(dithering)12
+b Fb(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)38 b Fd(34)150 2373 y(driv)n(er)25 b(\014le)d
+Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)47 b Fd(75)150 2617 y Ft(E)150 2739 y Fd(Epson)26
+b(inkjet)f(prin)n(ters)9 b Fb(.)k(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35
+b Fd(75)150 2830 y(ESC/P2)25 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fd(61)150
+2921 y(ESC/P2)27 b(in)n(tro)r(duction)22 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)48 b Fd(61)150 3183 y Ft(F)150 3304 y Fd(functions)11
+b Fb(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)36 b Fd(15)150 3549 y Ft(G)150 3670 y Fd(ghostscript)27
+b(driv)n(er)14 b Fb(.)d(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39
+b Fd(31)150 3762 y(GIMP)26 b(Prin)n(t)g(plugin)d Fb(.)12
+b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fd(26)150 3853 y
+Fe(gimpprint-config)13 b Fb(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39
+b Fd(12)150 4112 y Ft(H)150 4234 y Fd(ho)n(w)26 b(to)g(read)20
+b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+46 b Fd(1)150 4478 y Ft(I)150 4600 y Fd(initialising)28
+b(libgimpprin)n(t)21 b Fb(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fd(15)150
+4691 y(in)n(tegrating)17 b Fb(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)43 b Fd(12)150 4948 y Ft(M)150
+5070 y Fd(m4)25 b(macros)18 b Fb(.)13 b(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fd(13)150 5161 y(main)25
+b(functions)f Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49
+b Fd(15)150 5253 y Fe(make)13 b Fb(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38
+b Fd(13)150 5344 y(man)n(ual,)25 b(ho)n(w)h(to)g(read)19
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fd(1)150
+5435 y(memory)24 b(allo)r(cation)16 b Fb(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)41 b Fd(15)2025 592 y Ft(N)2025 731 y Fd(new)26
+b(prin)n(ter)7 b Fb(.)k(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)32 b Fd(74)2025 1034 y Ft(O)2025 1173 y Fd(options)26
+b(functions)c Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47
+b Fd(21)2025 1273 y(o)n(v)n(ersampling)17 b Fb(.)12 b(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 b Fd(57)2025 1372
+y(o)n(v)n(erview)18 b Fb(.)13 b(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fd(10)2025 1662 y Ft(P)2025
+1801 y Fd(pap)r(er)25 b(functions)12 b Fb(.)h(.)g(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)38 b Fd(21)2025 1900 y(p)r(erfect)26
+b(w)n(ea)n(v)n(e)21 b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46
+b Fd(44,)27 b(48)2025 2000 y(Prin)n(t)e(plugin)14 b Fb(.)f(.)f(.)g(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(26)2025
+2100 y(prin)n(ter)25 b(functions)11 b Fb(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)37 b Fd(22)2025 2199 y(prin)n(ter,)25
+b(adding)d Fb(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47
+b Fd(74)2025 2299 y(prin)n(ter,)25 b(tuning)8 b Fb(.)k(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fd(81)2025 2399
+y(problems)12 b Fb(.)f(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
+g(.)g(.)h(.)f(.)g(.)38 b Fd(32)2025 2498 y(programs)8
+b Fb(.)k(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
+(.)h(.)33 b Fd(26)2025 2801 y Ft(R)2025 2940 y Fd(reading)23
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)49 b Fd(1)2025 3242 y Ft(S)2025 3381
+y Fd(settings)26 b(functions)15 b Fb(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)41 b Fd(24)2025 3481 y Fe(stp_vars_t)28 b Fd(functions)20
+b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fd(15)2025 3786 y
+Ft(T)2025 3924 y Fd(tuning)25 b(the)g(prin)n(ter)7 b
+Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33 b Fd(81)2025
+4227 y Ft(U)2025 4366 y Fd(using)22 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47
+b Fd(11)2025 4668 y Ft(V)2025 4807 y Fd(v)n(ersion)26
+b(functions)8 b Fb(.)k(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
+(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33
+b Fd(24)2025 5097 y Ft(W)2025 5236 y Fd(w)n(ea)n(ving)12
+b Fb(.)h(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
+f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)38 b Fd(41)2025 5336 y(w)n(ea)n(ving)26 b(algorithms)c
+Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
+(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fd(42)2025
+5435 y(w)n(ea)n(ving)26 b(collisions)13 b Fb(.)i(.)d(.)h(.)f(.)g(.)g(.)
+h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
+(.)h(.)f(.)g(.)39 b Fd(47)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/doc/html-stamp b/doc/html-stamp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/html-stamp
diff --git a/doc/manual-html/gimpprint_1.html b/doc/manual-html/gimpprint_1.html
new file mode 100644
index 0000000..efd7c7f
--- /dev/null
+++ b/doc/manual-html/gimpprint_1.html
@@ -0,0 +1,63 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Instructions</TITLE>
+</HEAD>
+<BODY>
+Go to the first, previous, <A HREF="gimpprint_2.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC1" HREF="gimpprint_toc.html#TOC1">Preface</A></H1>
+
+<P>
+<A NAME="IDX1"></A>
+<A NAME="IDX2"></A>
+<A NAME="IDX3"></A>
+This manual documents the use of the GIMP-Print package, focusing mainly on the
+libgimpprint library that is the core of GIMP-Print. Parts of the manual which
+describe the use of libgimpprint are aimed primarily at programmers, and do
+assume that the reader is familiar with C programming, and using standard
+programming tools on GNU or UNIX systems. Other parts of the manual document
+the use of the programs that make up the GIMP-Print package, and assume no
+knowledge other than the basics of using a shell and editor.
+
+</P>
+<P>
+The best way to learn how to use libgimpprint in your own programs is to read
+the manual from start to finish, using the examples given in the text to learn
+how it works. The bulk of the manual can be used as a reference once one
+understands the basics.
+
+</P>
+<P>
+The manual is split into several parts for the programmer. It starts
+with a simple usage example of how to link a program with libgimpprint,
+then how to integrate this into package build scripts, using
+@command{make}, @command{autoconf} and @command{automake}. This is
+followed by a detailed function reference, including descriptions of all
+the data types used.
+
+</P>
+<P>
+For the end-user, there is a section on all of the programs that come
+with GIMP-Print, including the GIMP @command{print} plugin, and the CUPS
+and Ghostscript drivers.
+
+</P>
+<P>
+The appendices at the end of the manual detail the dither and weave
+algorithms used in libgimpprint, the ESC/P2 printer control language
+used in Epson printers and how to add support for a new printer to
+libgimpprint.
+
+</P>
+<P>
+We hope you enjoy using GIMP-Print!
+--The GIMP-Print project
+<P><HR><P>
+Go to the first, previous, <A HREF="gimpprint_2.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_10.html b/doc/manual-html/gimpprint_10.html
new file mode 100644
index 0000000..03be2c3
--- /dev/null
+++ b/doc/manual-html/gimpprint_10.html
@@ -0,0 +1,53 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_9.html">previous</A>, <A HREF="gimpprint_11.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC15" HREF="gimpprint_toc.html#TOC15">4 Functions</A></H1>
+<P>
+<A NAME="IDX13"></A>
+
+</P>
+<P>
+This section of the manual is a complete reference to all of the functions
+comprising libgimpprint, with examples.
+
+</P>
+<P>
+All of the libgimpprint functions can be declared by including the master
+libgimpprint header, <TT>`&#60;gimp-print/gimp-print.h&#62;'</TT>. This should be done in
+every source file that uses gimpprint functions by putting
+
+</P>
+
+<PRE>
+#include &#60;gimp-print/gimp-print.h&#62;
+</PRE>
+
+<P>
+at the top of each file.
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_11.html#SEC16">Main functions</A>: Essential functions every program must call.
+<LI><A HREF="gimpprint_12.html#SEC17">stp_vars_t functions</A>: Using stp_vars_t.
+<LI><A HREF="gimpprint_13.html#SEC18">Dither functions</A>: Dither algorithms.
+<LI><A HREF="gimpprint_14.html#SEC19">Options functions</A>: Options.
+<LI><A HREF="gimpprint_15.html#SEC20">Paper functions</A>: Paper size and orientation.
+<LI><A HREF="gimpprint_16.html#SEC21">Printer functions</A>: Printer selection.
+<LI><A HREF="gimpprint_17.html#SEC22">Settings functions</A>: Getting and changing settings.
+<LI><A HREF="gimpprint_18.html#SEC23">Version functions</A>: Getting libgimpprint version information.
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_9.html">previous</A>, <A HREF="gimpprint_11.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_11.html b/doc/manual-html/gimpprint_11.html
new file mode 100644
index 0000000..3ba2822
--- /dev/null
+++ b/doc/manual-html/gimpprint_11.html
@@ -0,0 +1,86 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Main functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_10.html">previous</A>, <A HREF="gimpprint_12.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC16" HREF="gimpprint_toc.html#TOC16">4.1 Main functions</A></H2>
+<P>
+<A NAME="IDX14"></A>
+
+</P>
+<P>
+These functions are essential to the correct functioning of
+libgimpprint. All or most other functions in the library depend
+absolutely upon them. In the case of <CODE>stp_init</CODE>, this function
+<EM>must</EM> be called before any of the other functions in the library.
+
+</P>
+
+<P>
+<A NAME="IDX15"></A>
+<DL>
+<DT><U>Function:</U> int <B>stp_init</B> <I>(void)</I>
+<DD><A NAME="IDX16"></A>
+
+</P>
+<P>
+This function initialises the libgimpprint library. It must be called before
+any of the other libgimpprint functions are called. It is responsible for
+setting up message catalogues (for internationalisation). This function
+may be called more than once, at any stage during the execution of a
+program.
+
+</P>
+<P>
+It returns zero on success, nonzero on failure.
+</DL>
+
+</P>
+<P>
+<CODE>stp_init</CODE> might be used as follows:
+
+</P>
+
+<PRE>
+int
+main (int argc, char **argv)
+{
+ stp_init();
+
+ ...
+
+}
+</PRE>
+
+<P>
+<A NAME="IDX17"></A>
+<DL>
+<DT><U>Function:</U> void * <B>stp_malloc</B> <I>(size_t <VAR>size</VAR>)</I>
+<DD><A NAME="IDX18"></A>
+
+</P>
+<P>
+Where <VAR>size</VAR> is the amount of memory to allocate (in bytes).
+
+</P>
+<P>
+This function allocates memory. It will always return a pointer to the
+allocated memory. It will not return on failure.
+
+</P>
+<P>
+It returns a pointer to the allocated memory.
+</DL>
+
+</P>
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_10.html">previous</A>, <A HREF="gimpprint_12.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_12.html b/doc/manual-html/gimpprint_12.html
new file mode 100644
index 0000000..59eb45e
--- /dev/null
+++ b/doc/manual-html/gimpprint_12.html
@@ -0,0 +1,558 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - stp_vars_t functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_11.html">previous</A>, <A HREF="gimpprint_13.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC17" HREF="gimpprint_toc.html#TOC17">4.2 <CODE>stp_vars_t</CODE> functions</A></H2>
+<P>
+<A NAME="IDX19"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> void * <B>stp_vars_t</B>
+<DD><A NAME="IDX20"></A>
+This is an opaque data type, whose structure is not visible to the
+user. This object contains all of the information about settings for
+a given printer, such as color (contrast, brightness), the type of
+printer, the dithering algorithm in use, and so forth. Please see the
+<CODE>stp_set_*</CODE> and <CODE>stp_get_*</CODE> functions below for the
+accessors and mutators for this data type.
+</DL>
+
+</P>
+
+<P>
+<DL>
+<DT><U>Function:</U> stp_vars_t <B>stp_allocate_vars</B> <I>(void)</I>
+<DD><A NAME="IDX21"></A>
+Allocate a new <CODE>stp_vars_t</CODE> with default settings for all members.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_copy_vars</B> <I>(stp_vars_t <VAR>vd</VAR>, const stp_vars_t <VAR>vs</VAR>)</I>
+<DD><A NAME="IDX22"></A>
+Copy the settings from <VAR>vs</VAR> to <VAR>vd</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> stp_vars_t <B>stp_allocate_copy</B> <I>(const stp_vars_t <VAR>vs</VAR>)</I>
+<DD><A NAME="IDX23"></A>
+Allocate a new <CODE>stp_vars_t</CODE>, copying settings from <VAR>vs</VAR>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_free_vars</B> <I>(stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX24"></A>
+Free all resources associated with <VAR>vv</VAR>. <VAR>vv</VAR> must not be
+used in any way following this call.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_output_to</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX25"></A>
+<DT><U>Function:</U> void <B>stp_set_output_to</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX26"></A>
+<DT><U>Function:</U> void <B>stp_set_output_to_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX27"></A>
+Get or set the name of the command that this job will be printed to.
+This is used by front ends; the driver library always prints to a
+stream provided by the front end and never uses this directly.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_driver</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX28"></A>
+<DT><U>Function:</U> void <B>stp_set_driver</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX29"></A>
+<DT><U>Function:</U> void <B>stp_set_driver_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX30"></A>
+Get or set the name of the driver (the type of printer).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_ppd_file</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX31"></A>
+<DT><U>Function:</U> void <B>stp_set_ppd_file</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX32"></A>
+<DT><U>Function:</U> void <B>stp_set_ppd_file_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX33"></A>
+Get or set the name of the PPD file used by this print job. Normally,
+only PostScript printers use PPD files.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_resolution</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX34"></A>
+<DT><U>Function:</U> void <B>stp_set_resolution</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX35"></A>
+<DT><U>Function:</U> void <B>stp_set_resolution_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX36"></A>
+Get or set the resolution to be used in this print job. Different
+drivers support different resolutions, and many drivers support
+multiple quality settings for a given DPI resolution.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_media_size</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX37"></A>
+<DT><U>Function:</U> void <B>stp_set_media_size</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX38"></A>
+<DT><U>Function:</U> void <B>stp_set_media_size_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX39"></A>
+Get or set the name of the media size (e. g. A3, letter, legal) to be
+used in this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_media_type</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX40"></A>
+<DT><U>Function:</U> void <B>stp_set_media_type</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX41"></A>
+<DT><U>Function:</U> void <B>stp_set_media_type_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX42"></A>
+Get or set the name of the media type (e. g. plain paper, photo
+quality inkjet paper) to be used in this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_media_source</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX43"></A>
+<DT><U>Function:</U> void <B>stp_set_media_source</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX44"></A>
+<DT><U>Function:</U> void <B>stp_set_media_source_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX45"></A>
+Get or set the name of the media source (e. g. manual feed, tray A) to
+be used in this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_ink_type</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX46"></A>
+<DT><U>Function:</U> void <B>stp_set_ink_type</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX47"></A>
+<DT><U>Function:</U> void <B>stp_set_ink_type_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX48"></A>
+Get or set the name of the ink type (e. g. four color standard, six
+color photo) to be used in this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_get_dither_algorithm</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX49"></A>
+<DT><U>Function:</U> void <B>stp_set_dither_algorithm</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX50"></A>
+<DT><U>Function:</U> void <B>stp_set_dither_algorithm_n</B> <I>(stp_vars_t <VAR>vv</VAR>, const char *<VAR>val</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX51"></A>
+Get or set the dither algorithm to be used in this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_output_type</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX52"></A>
+<DT><U>Function:</U> void <B>stp_set_output_type</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX53"></A>
+Get or set the output type (color, grayscale, black and white) for
+this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_orientation</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX54"></A>
+<DT><U>Function:</U> void <B>stp_set_orientation</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX55"></A>
+Get or set the paper orientation for this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_left</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX56"></A>
+<DT><U>Function:</U> void <B>stp_set_left</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX57"></A>
+Get or set the left margin (in 1/72 inch units, or "points") for this
+print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_top</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX58"></A>
+<DT><U>Function:</U> void <B>stp_set_top</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX59"></A>
+Get or set the top margin (in 1/72 inch units, or "points") for this
+print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_image_type</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX60"></A>
+<DT><U>Function:</U> void <B>stp_set_image_type</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX61"></A>
+Get or set the image type (line art, continuous tone, solid colors)
+for this print job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_unit</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX62"></A>
+<DT><U>Function:</U> void <B>stp_set_unit</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX63"></A>
+Get or set the base unit (inches or centimeters) for this print job.
+This is provided for front ends; the package itself uses points as its
+unit of measurement.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_page_width</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX64"></A>
+<DT><U>Function:</U> void <B>stp_set_page_width</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX65"></A>
+Get or set the width of the printed region of the page.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_page_height</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX66"></A>
+<DT><U>Function:</U> void <B>stp_set_page_height</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX67"></A>
+Get or set the height of the printed region of the page.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_input_color_model</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX68"></A>
+<DT><U>Function:</U> void <B>stp_set_input_color_model</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX69"></A>
+Get or set the color model (currently RGB or CMY) of the input to the
+driver. Most front ends will use RGB input.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_output_color_model</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX70"></A>
+<DT><U>Function:</U> void <B>stp_set_output_color_model</B> <I>(stp_vars_t <VAR>vv</VAR>, int <VAR>val</VAR>)</I>
+<DD><A NAME="IDX71"></A>
+Get or set the color model (currently RGB or CMY) of the output of the
+driver. Most printers will use CMY.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_scaling</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX72"></A>
+<DT><U>Function:</U> void <B>stp_set_scaling</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX73"></A>
+Get or set the scaling factor of the image. If the scaling factor is
+greater than 0, it is interpreted as a percent (5.0-100.0 is the valid
+range) of the printable page region, using the more restrictive axis.
+For example, if the image to be printed should be 3" (wide) x 2"
+(high), and the printable page region is 8"x10.5", the scale factor
+should be 37.5 (3"/8").
+
+</P>
+<P>
+If the scaling is less than zero, it is interpreted as pixels per
+inch.
+
+</P>
+<P>
+It is likely that in the future this will be migrated into the front
+end. There is no particular reason why the driver needs to know about
+this.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_gamma</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX74"></A>
+<DT><U>Function:</U> void <B>stp_set_gamma</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX75"></A>
+Get or set the gamma of the print job (valid range: 0.1-4.0; default
+1.0). Note that this is not the absolute gamma used by the print job;
+it is scaled by the gamma appropriate for the printer. This is true
+for all of the numerical parameters.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_brightness</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX76"></A>
+<DT><U>Function:</U> void <B>stp_set_brightness</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX77"></A>
+Get or set the brightness of the print job (valid range: 0.0-2.0;
+default: 1.0). Any value other than 1.0 will result in some possible
+values not being used; if brightness is less than 1.0, no output point
+will be pure white, and if brightness is greater than 1.0, no output
+point will be pure black (or cyan, or magenta, or yellow).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_contrast</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX78"></A>
+<DT><U>Function:</U> void <B>stp_set_contrast</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX79"></A>
+Get or set the contrast of the print job (valid range: 0.0-4.0;
+default: 1.0). Values less than 1.0 will result in pure white or
+black not being used (0.0 will make the entire image 50% gray).
+Values greater than 1.0 do not hard clip; while the contrast in the
+midtones increases, it only asymptotically approaches the limits.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_cyan</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX80"></A>
+<DT><U>Function:</U> void <B>stp_set_cyan</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX81"></A>
+Get or set the cyan adjustment of the print job (range: 0.0-4.0; default:
+1.0). This currently adjusts the gamma of the cyan curve. It is
+scaled by the cyan adjustment for the printer model in question.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_magenta</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX82"></A>
+<DT><U>Function:</U> void <B>stp_set_magenta</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX83"></A>
+Get or set the magenta adjustment of the print job (range: 0.0-4.0; default:
+1.0). This currently adjusts the gamma of the magenta curve. It is
+scaled by the magenta adjustment for the printer model in question.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_yellow</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX84"></A>
+<DT><U>Function:</U> void <B>stp_set_yellow</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX85"></A>
+Get or set the yellow adjustment of the print job (range: 0.0-4.0; default:
+1.0). This currently adjusts the gamma of the yellow curve. It is
+scaled by the yellow adjustment for the printer model in question.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_saturation</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX86"></A>
+<DT><U>Function:</U> void <B>stp_set_saturation</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX87"></A>
+Get or set the saturation of the print job (range: 0.0-9.0; default: 1.0).
+Saturation of 0.0 produces grayscale output using composite (CMY or
+CMYK, as appropriate for the printer) color.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_density</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX88"></A>
+<DT><U>Function:</U> void <B>stp_set_density</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX89"></A>
+Get or set the density of the print job (range: 0.0-2.0; default:
+1.0). This adjusts the amount of ink deposited in a linear fashion
+for all channels. It is scaled by the density appropriate for the
+choice of printer, resolution, paper type, and other factors that the
+driver may deem appropriate.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> float <B>stp_get_app_gamma</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX90"></A>
+<DT><U>Function:</U> void <B>stp_set_app_gamma</B> <I>(stp_vars_t <VAR>vv</VAR>, float <VAR>val</VAR>)</I>
+<DD><A NAME="IDX91"></A>
+Get or set the gamma of the input (i. e. what the driving application
+uses).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void * <B>stp_get_lut</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX92"></A>
+<DT><U>Function:</U> void <B>stp_set_lut</B> <I>(stp_vars_t <VAR>vv</VAR>, void *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX93"></A>
+Get or set the color lookup table for the print job. This is useful
+outside of the library for computing a preview of the printed result.
+The lookup table itself should be treated as an opaque handle.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> unsigned char * <B>stp_get_cmap</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX94"></A>
+<DT><U>Function:</U> void <B>stp_set_cmap</B> <I>(stp_vars_t <VAR>vv</VAR>, unsigned char *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX95"></A>
+Get or set the color map for the print job. This is a table of R,G,B
+values for 8-bit indexed input. This may be moved outside of the
+library in the future; in this case, the front end would be required
+to do its own mapping and supply true-color RGB to the driver.
+</DL>
+
+</P>
+<P>
+The following methods are used to perform output and error reporting
+by the driver. The driver supplies a stream of output bytes; the
+front end is responsible for providing methods that accept this output
+and handle it appropriately.
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> stp_outfunc_t <B>stp_get_outfunc</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX96"></A>
+<DT><U>Function:</U> void <B>stp_set_outfunc</B> <I>(const stp_vars_t <VAR>vv</VAR>, stp_outfunc_t <VAR>val</VAR>)</I>
+<DD><A NAME="IDX97"></A>
+<DT><U>Function:</U> void * <B>stp_get_outdata</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX98"></A>
+<DT><U>Function:</U> void <B>stp_set_outdata</B> <I>(stp_vars_t <VAR>vv</VAR>, void *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX99"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> <B>stp_outfunc_t</B>
+<DD><A NAME="IDX100"></A>
+
+<PRE>
+typedef void (*stp_outfunc_t) (void *data,
+ const char *buffer, size_t bytes);
+</PRE>
+
+</DL>
+<P>
+Get or set the output function the driver will use. The front end
+must supply a suitable function for accepting the output data. The
+<CODE>stp_set_outdata</CODE> method provides a way of passing an appropriate
+object to the output function.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> stp_outfunc_t <B>stp_get_errfunc</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX101"></A>
+<DT><U>Function:</U> void <B>stp_set_errfunc</B> <I>(const stp_vars_t <VAR>vv</VAR>, stp_outfunc_t <VAR>val</VAR>)</I>
+<DD><A NAME="IDX102"></A>
+<DT><U>Function:</U> void * <B>stp_get_errdata</B> <I>(const stp_vars_t <VAR>vv</VAR>)</I>
+<DD><A NAME="IDX103"></A>
+<DT><U>Function:</U> void <B>stp_set_errdata</B> <I>(stp_vars_t <VAR>vv</VAR>, void *<VAR>val</VAR>)</I>
+<DD><A NAME="IDX104"></A>
+Get or set the error reporting function that the driver will use.
+This is used to report errors or debugging information, and must be
+supplied. A typical errfunc will simply print whatever it's passed to
+stderr.
+</DL>
+
+</P>
+<P>
+/*
+ * hue_map is an array of 49 doubles representing the mapping of hue
+ * from (0..6) to (0..6) in increments of .125. The hue_map is in CMY space,
+ * so hue=0 is cyan.
+ */
+typedef void (*stp_convert_t)(const stp_vars_t vars, const unsigned char *in,
+ unsigned short *out, int *zero_mask,
+ int width, int bpp, const unsigned char *cmap,
+ const double *hue_map, const double *lum_map,
+ const double *sat_map);
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_merge_printvars</B> <I>(stp_vars_t <VAR>user</VAR>, const stp_vars_t <VAR>print</VAR>)</I>
+<DD><A NAME="IDX105"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_allocate_lut</B> <I>(stp_vars_t <VAR>v</VAR>, size_t <VAR>steps</VAR>)</I>
+<DD><A NAME="IDX106"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_free_lut</B> <I>(stp_vars_t <VAR>v</VAR>)</I>
+<DD><A NAME="IDX107"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_compute_lut</B> <I>(stp_vars_t <VAR>v</VAR>, size_t <VAR>steps</VAR>)</I>
+<DD><A NAME="IDX108"></A>
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_11.html">previous</A>, <A HREF="gimpprint_13.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_13.html b/doc/manual-html/gimpprint_13.html
new file mode 100644
index 0000000..8942a5e
--- /dev/null
+++ b/doc/manual-html/gimpprint_13.html
@@ -0,0 +1,45 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Dither functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_12.html">previous</A>, <A HREF="gimpprint_14.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC18" HREF="gimpprint_toc.html#TOC18">4.3 Dither functions</A></H2>
+<P>
+<A NAME="IDX109"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> size_t <B>stp_dither_algorithm_count</B> <I>(void)</I>
+<DD><A NAME="IDX110"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_dither_algorithm_name</B> <I>(int <VAR>id</VAR>)</I>
+<DD><A NAME="IDX111"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_default_dither_algorithm</B> <I>(void)</I>
+<DD><A NAME="IDX112"></A>
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_12.html">previous</A>, <A HREF="gimpprint_14.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_14.html b/doc/manual-html/gimpprint_14.html
new file mode 100644
index 0000000..5384d1a
--- /dev/null
+++ b/doc/manual-html/gimpprint_14.html
@@ -0,0 +1,102 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Options functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_13.html">previous</A>, <A HREF="gimpprint_15.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC19" HREF="gimpprint_toc.html#TOC19">4.4 Options functions</A></H2>
+<P>
+<A NAME="IDX113"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> void * <B>stp_option_t</B>
+<DD><A NAME="IDX114"></A>
+This is an opaque data type, whose structure is not visible to the
+user.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_set_option(stp_vars_t</B> <I><VAR>v</VAR>, const char *<VAR>name</VAR>, const char *<VAR>data</VAR>, int <VAR>bytes</VAR>)</I>
+<DD><A NAME="IDX115"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_clear_option</B> <I>(stp_vars_t <VAR>v</VAR>, const char *<VAR>name</VAR>)</I>
+<DD><A NAME="IDX116"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_clear_all_options</B> <I>(stp_vars_t <VAR>v</VAR>)</I>
+<DD><A NAME="IDX117"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> size_t <B>stp_option_count</B> <I>(const stp_vars_t <VAR>v</VAR>)</I>
+<DD><A NAME="IDX118"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_option_t <B>stp_get_option_by_index</B> <I>(const stp_vars_t <VAR>v</VAR>, size_t <VAR>idx</VAR>)</I>
+<DD><A NAME="IDX119"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_option_t <B>stp_get_option_by_name</B> <I>(const stp_vars_t <VAR>v</VAR>, const char *<VAR>name</VAR>)</I>
+<DD><A NAME="IDX120"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_option_data</B> <I>(const stp_option_t <VAR>option</VAR>)</I>
+<DD><A NAME="IDX121"></A>
+<STRONG>Note</STRONG>: not null delimited!
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_option_name</B> <I>(const stp_option_t <VAR>option</VAR>)</I>
+<DD><A NAME="IDX122"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> size_t <B>stp_option_length</B> <I>(const stp_option_t <VAR>option</VAR>)</I>
+<DD><A NAME="IDX123"></A>
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_13.html">previous</A>, <A HREF="gimpprint_15.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_15.html b/doc/manual-html/gimpprint_15.html
new file mode 100644
index 0000000..3bc88e2
--- /dev/null
+++ b/doc/manual-html/gimpprint_15.html
@@ -0,0 +1,141 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Paper functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_14.html">previous</A>, <A HREF="gimpprint_16.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC20" HREF="gimpprint_toc.html#TOC20">4.5 Paper functions</A></H2>
+<P>
+<A NAME="IDX124"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> void * <B>stp_papersize_t</B>
+<DD><A NAME="IDX125"></A>
+This is an opaque data type, whose structure is not visible to the
+user.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> <B>stp_papersize_unit_t</B>
+<DD><A NAME="IDX126"></A>
+
+<PRE>
+typedef enum papersize_unit
+{
+ PAPERSIZE_ENGLISH,
+ PAPERSIZE_METRIC
+} stp_papersize_unit_t;
+</PRE>
+
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_known_papersizes</B> <I>(void)</I>
+<DD><A NAME="IDX127"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_papersize_t <B>stp_get_papersize_by_name</B> <I>(const char *<VAR>name</VAR>)</I>
+<DD><A NAME="IDX128"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_papersize_t <B>stp_get_papersize_by_size</B> <I>(int <VAR>l</VAR>, int <VAR>w</VAR>)</I>
+<DD><A NAME="IDX129"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_papersize_t <B>stp_get_papersize_by_index</B> <I>(int <VAR>index</VAR>)</I>
+<DD><A NAME="IDX130"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_papersize_get_name</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX131"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> unsigned <B>stp_papersize_get_width</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX132"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> unsigned <B>stp_papersize_get_height</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX133"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> unsigned <B>stp_papersize_get_top</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX134"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> unsigned <B>stp_papersize_get_left</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX135"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> unsigned <B>stp_papersize_get_bottom</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX136"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> unsigned <B>stp_papersize_get_right</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX137"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> stp_papersize_unit_t <B>stp_papersize_get_unit</B> <I>(const stp_papersize_t <VAR>pt</VAR>)</I>
+<DD><A NAME="IDX138"></A>
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_14.html">previous</A>, <A HREF="gimpprint_16.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_16.html b/doc/manual-html/gimpprint_16.html
new file mode 100644
index 0000000..dd8f55d
--- /dev/null
+++ b/doc/manual-html/gimpprint_16.html
@@ -0,0 +1,184 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Printer functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_15.html">previous</A>, <A HREF="gimpprint_17.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC21" HREF="gimpprint_toc.html#TOC21">4.6 Printer functions</A></H2>
+<P>
+<A NAME="IDX139"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> void * <B>stp_printer_t</B>
+<DD><A NAME="IDX140"></A>
+This is an opaque data type, whose structure is not visible to the
+user.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_known_printers</B> <I>(void)</I>
+<DD><A NAME="IDX141"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_printer_t <B>stp_get_printer_by_index</B> <I>(int <VAR>idx</VAR>)</I>
+<DD><A NAME="IDX142"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_printer_get_long_name</B> <I>(const stp_printer_t <VAR>p</VAR>)</I>
+<DD><A NAME="IDX143"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_printer_t <B>stp_get_printer_by_long_name</B> <I>(const char *<VAR>long_name</VAR>)</I>
+<DD><A NAME="IDX144"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_printer_t <B>stp_get_printer_by_driver</B> <I>(const char *<VAR>driver</VAR>)</I>
+<DD><A NAME="IDX145"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_get_printer_index_by_driver</B> <I>(const char *<VAR>driver</VAR>)</I>
+<DD><A NAME="IDX146"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_printer_get_driver</B> <I>(const stp_printer_t <VAR>p</VAR>)</I>
+<DD><A NAME="IDX147"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> int <B>stp_printer_get_model</B> <I>(const stp_printer_t <VAR>p</VAR>)</I>
+<DD><A NAME="IDX148"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_printfuncs_t * <B>stp_printer_get_printfuncs</B> <I>(const stp_printer_t <VAR>p</VAR>)</I>
+<DD><A NAME="IDX149"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Data type:</U> <B>stp_printfuncs_t</B>
+<DD><A NAME="IDX150"></A>
+
+<PRE>
+typedef struct
+{
+ char **(*parameters)(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name, int *count);
+ void (*media_size)(const stp_printer_t printer,
+ const stp_vars_t v, int *width,
+ int *height);
+ void (*imageable_area)(const stp_printer_t printer,
+ const stp_vars_t v,
+ int *left, int *right,
+ int *bottom, int *top);
+ void (*limit)(const stp_printer_t printer,
+ const stp_vars_t v,
+ int *width, int *height);
+ void (*print)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+ const char *(*default_parameters)(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name);
+ void (*describe_resolution)(const stp_printer_t printer,
+ const char *resolution,
+ int *x, int *y);
+ int (*verify)(const stp_printer_t p, const stp_vars_t v);
+} stp_printfuncs_t;
+</PRE>
+
+</DL>
+
+<P>
+<DL>
+<DT><U>Data type:</U> <B>stp_image_t</B>
+<DD><A NAME="IDX151"></A>
+
+<PRE>
+typedef struct stp_image
+{
+ void (*init)(struct stp_image *image);
+ void (*reset)(struct stp_image *image);
+ void (*transpose)(struct stp_image *image);
+ void (*hflip)(struct stp_image *image);
+ void (*vflip)(struct stp_image *image);
+ void (*crop)(struct stp_image *image,
+ int left, int top, int right,
+ int bottom);
+ void (*rotate_ccw)(struct stp_image *image);
+ void (*rotate_cw)(struct stp_image *image);
+ void (*rotate_180)(struct stp_image *image);
+ int (*bpp)(struct stp_image *image);
+ int (*width)(struct stp_image *image);
+ int (*height)(struct stp_image *image);
+ void (*get_row)(struct stp_image *image,
+ unsigned char *data, int row);
+ const char *(*get_appname)(struct stp_image *image);
+ void (*progress_init)(struct stp_image *image);
+ void (*note_progress)(struct stp_image *image,
+ double current, double total);
+ void (*progress_conclude)(struct stp_image *image);
+ void *rep;
+} stp_image_t;
+</PRE>
+
+<P>
+This is an abstract data type for interfacing with the program which
+created the image.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const stp_vars_t <B>stp_printer_get_printvars</B> <I>(const stp_printer_t <VAR>p</VAR>)</I>
+<DD><A NAME="IDX152"></A>
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_15.html">previous</A>, <A HREF="gimpprint_17.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_17.html b/doc/manual-html/gimpprint_17.html
new file mode 100644
index 0000000..f6dc2bb
--- /dev/null
+++ b/doc/manual-html/gimpprint_17.html
@@ -0,0 +1,61 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Settings functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_16.html">previous</A>, <A HREF="gimpprint_18.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC22" HREF="gimpprint_toc.html#TOC22">4.7 Settings functions</A></H2>
+<P>
+<A NAME="IDX153"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> stp_convert_t <B>stp_choose_colorfunc</B> <I>(int <VAR>output_type</VAR>, int <VAR>image_bpp</VAR>, const unsigned char *<VAR>cmap</VAR>, int *<VAR>out_bpp</VAR>, const stp_vars_t <VAR>v</VAR>)</I>
+<DD><A NAME="IDX154"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> void <B>stp_compute_page_parameters</B> <I>(int <VAR>page_right</VAR>, int <VAR>page_left</VAR>, int <VAR>page_top</VAR>, int <VAR>page_bottom</VAR>, double <VAR>scaling</VAR>, int <VAR>image_width</VAR>, int <VAR>image_height</VAR>, stp_image_t *<VAR>image</VAR>, int *<VAR>orientation</VAR>, int *{page_width}, int *<VAR>page_height</VAR>, int *<VAR>out_width</VAR>, int *<VAR>out_height</VAR>, int *<VAR>left</VAR>, int *<VAR>top</VAR>)</I>
+<DD><A NAME="IDX155"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_vars_t <B>stp_default_settings</B> <I>(void)</I>
+<DD><A NAME="IDX156"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_vars_t <B>stp_maximum_settings</B> <I>(void)</I>
+<DD><A NAME="IDX157"></A>
+
+</P>
+</DL>
+
+<P>
+<DL>
+<DT><U>Function:</U> const stp_vars_t <B>stp_minimum_settings</B> <I>(void)</I>
+<DD><A NAME="IDX158"></A>
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_16.html">previous</A>, <A HREF="gimpprint_18.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_18.html b/doc/manual-html/gimpprint_18.html
new file mode 100644
index 0000000..96bc5a4
--- /dev/null
+++ b/doc/manual-html/gimpprint_18.html
@@ -0,0 +1,156 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Version functions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_17.html">previous</A>, <A HREF="gimpprint_19.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC23" HREF="gimpprint_toc.html#TOC23">4.8 Version functions</A></H2>
+<P>
+<A NAME="IDX159"></A>
+
+</P>
+<P>
+<DL>
+<DT><U>Function:</U> const char * <B>stp_check_version</B> <I>(unsigned int <VAR>required_major</VAR>,</I>
+<DD><A NAME="IDX160"></A>
+unsigned int <VAR>required_minor</VAR>, unsigned int <VAR>required_micro</VAR>)
+
+</P>
+<P>
+This function checks whether the version of libgimpprint that the program
+is linked with is equal to the version number passed to it. If the version
+is the same, the function returns <CODE>NULL</CODE>. If any of the version
+numbers do not match (i.e. the library version is too old or too new), a string containing a desription of the difference is
+returned. The first error found is returned. The function checks in the order
+major, minor, micro.
+</DL>
+
+</P>
+
+
+<H3><A NAME="SEC24" HREF="gimpprint_toc.html#TOC24">4.8.1 Version macros</A></H3>
+
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_CHECK_VERSION</B> <I>(major,minor,micro)</I>
+<DD><A NAME="IDX161"></A>
+
+</P>
+<P>
+This macro returns zero if the version of the libgimpprint headers are
+greater or equal to the version given as an argument. It returns nonzero
+if the version of the libgimpprint headers are less than the argument.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_MAJOR_VERSION</B>
+<DD><A NAME="IDX162"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_MINOR_VERSION</B>
+<DD><A NAME="IDX163"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_MICRO_VERSION</B>
+<DD><A NAME="IDX164"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_CURRENT_INTERFACE</B>
+<DD><A NAME="IDX165"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_BINARY_AGE</B>
+<DD><A NAME="IDX166"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>GIMPPRINT_INTERFACE_AGE</B>
+<DD><A NAME="IDX167"></A>
+</DL>
+
+</P>
+<P>
+These macros are integers holding the version numbers. They should be
+used for compile-time checking only. To check version numbers at
+run-time, use the equivalent variables. Note that at present (4.1.x
+development branch) the library interface version numbers are not used.
+
+</P>
+
+
+<H3><A NAME="SEC25" HREF="gimpprint_toc.html#TOC25">4.8.2 Version variables</A></H3>
+
+<P>
+<DL>
+<DT><U>Variable:</U> const unsigned int <B>gimpprint_major_version</B>
+<DD><A NAME="IDX168"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const unsigned int <B>gimpprint_minor_version</B>
+<DD><A NAME="IDX169"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const unsigned int <B>gimpprint_micro_version</B>
+<DD><A NAME="IDX170"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const unsigned int <B>gimpprint_current_interface</B>
+<DD><A NAME="IDX171"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const unsigned int <B>gimpprint_binary_age</B>
+<DD><A NAME="IDX172"></A>
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>Variable:</U> const unsigned int <B>gimpprint_interface_age</B>
+<DD><A NAME="IDX173"></A>
+</DL>
+
+</P>
+<P>
+These variables hold the library version numbers. Because the version of
+the library may change on a system using shared libraries, these should
+be used instead of the equivalent macros when checking the library
+version at run-time. Note that library interface version numbers are not
+used in the development branch, but are in the stable branch.
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_17.html">previous</A>, <A HREF="gimpprint_19.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_19.html b/doc/manual-html/gimpprint_19.html
new file mode 100644
index 0000000..0ba0d14
--- /dev/null
+++ b/doc/manual-html/gimpprint_19.html
@@ -0,0 +1,38 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Programs</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_18.html">previous</A>, <A HREF="gimpprint_20.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC26" HREF="gimpprint_toc.html#TOC26">5 Programs</A></H1>
+<P>
+<A NAME="IDX174"></A>
+
+</P>
+<P>
+This chapter of the manual describes the use of some of the programs
+which use the GIMP-Print library (libgimpprint). Note that there is now
+a user manual in DocBook/SGML format, currently provided in HTML,
+PostScript and PDF formats which is distributed with GIMP-Print. This
+manual currently covers the use of the GIMP Print plugin and CUPS
+drivers.
+
+</P>
+
+
+<UL>
+<LI><A HREF="gimpprint_20.html#SEC27">The GIMP plugin</A>: The print plugin for the GIMP
+<LI><A HREF="gimpprint_21.html#SEC36">Ghostscript</A>: Printer driver
+<LI><A HREF="gimpprint_22.html#SEC37">CUPS</A>: Printer driver
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_18.html">previous</A>, <A HREF="gimpprint_20.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_2.html b/doc/manual-html/gimpprint_2.html
new file mode 100644
index 0000000..4820f55
--- /dev/null
+++ b/doc/manual-html/gimpprint_2.html
@@ -0,0 +1,495 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Copying</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_1.html">previous</A>, <A HREF="gimpprint_3.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+</P>
+
+
+<H1><A NAME="SEC2" HREF="gimpprint_toc.html#TOC2">GNU GENERAL PUBLIC LICENSE</A></H1>
+<P>
+Version 2, June 1991
+
+</P>
+
+<PRE>
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+675 Mass Ave, Cambridge, MA 02139, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</PRE>
+
+
+
+<H2><A NAME="SEC3" HREF="gimpprint_toc.html#TOC3">Preamble</A></H2>
+
+<P>
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+</P>
+<P>
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+</P>
+<P>
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+</P>
+<P>
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+</P>
+<P>
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+</P>
+<P>
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+</P>
+<P>
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+</P>
+<P>
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+</P>
+<P>
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+</P>
+
+<OL>
+<LI>
+
+This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+<LI>
+
+You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+<LI>
+
+You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+
+<OL>
+<LI>
+
+You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+<LI>
+
+You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+<LI>
+
+If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+</OL>
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+<LI>
+
+You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+
+<OL>
+<LI>
+
+Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+<LI>
+
+Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+<LI>
+
+Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+</OL>
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+<LI>
+
+You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+<LI>
+
+You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+<LI>
+
+Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+<LI>
+
+If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+<LI>
+
+If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+<LI>
+
+The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+<LI>
+
+If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+<LI>
+
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+<LI>
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+</OL>
+
+<P>
+END OF TERMS AND CONDITIONS
+
+</P>
+
+
+<H2><A NAME="SEC4" HREF="gimpprint_toc.html#TOC4">How to Apply These Terms to Your New Programs</A></H2>
+
+<P>
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+</P>
+<P>
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+</P>
+
+<PRE>
+<VAR>one line to give the program's name and an idea of what it does.</VAR>
+Copyright (C) 19<VAR>yy</VAR> <VAR>name of author</VAR>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+</PRE>
+
+<P>
+Also add information on how to contact you by electronic and paper mail.
+
+</P>
+<P>
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+</P>
+
+<PRE>
+Gnomovision version 69, Copyright (C) 19<VAR>yy</VAR> <VAR>name of author</VAR>
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'. This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c'
+for details.
+</PRE>
+
+<P>
+The hypothetical commands <SAMP>`show w'</SAMP> and <SAMP>`show c'</SAMP> should show
+the appropriate parts of the General Public License. Of course, the
+commands you use may be called something other than <SAMP>`show w'</SAMP> and
+<SAMP>`show c'</SAMP>; they could even be mouse-clicks or menu items--whatever
+suits your program.
+
+</P>
+<P>
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+</P>
+
+<PRE>
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written
+by James Hacker.
+
+<VAR>signature of Ty Coon</VAR>, 1 April 1989
+Ty Coon, President of Vice
+</PRE>
+
+<P>
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+</P>
+
+
+<H1><A NAME="SEC5" HREF="gimpprint_toc.html#TOC5">Copying summary</A></H1>
+<P>
+GIMP-Print is <STRONG>free</STRONG>; this means that everyone is free to use it and
+free to redistribute it on a free basis. GIMP-Print is not in the public
+domain; it is copyrighted and there are restrictions on its
+distribution, but these restrictions are designed to permit everything
+that a good cooperating citizen would want to do. What is not allowed is
+to try to prevent others from further sharing any version of GIMP-Print
+that they might get from you.
+
+</P>
+<P>
+Specifically, we want to make sure that you have the right to give away
+copies of GIMP-Print, that you receive source code or else can get it if
+you want it, that you can change GIMP-Print or use pieces of it in new
+free programs, and that you know you can do these things.
+
+</P>
+<P>
+To make sure that everyone has such rights, we have to forbid you to
+deprive anyone else of these rights. For example, if you distribute
+copies of GIMP-Print, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+</P>
+<P>
+Also, for our own protection, we must make certain that everyone finds
+out that there is no warranty for GIMP-Print. If GIMP-Print is modified
+by someone else and passed on, we want their recipients to know that
+what they have is not what we distributed, so that any problems
+introduced by others will no reflect on our reputation.
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_1.html">previous</A>, <A HREF="gimpprint_3.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_20.html b/doc/manual-html/gimpprint_20.html
new file mode 100644
index 0000000..e53165e
--- /dev/null
+++ b/doc/manual-html/gimpprint_20.html
@@ -0,0 +1,315 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - The GIMP plugin</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_19.html">previous</A>, <A HREF="gimpprint_21.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC27" HREF="gimpprint_toc.html#TOC27">5.1 The GIMP Print plugin</A></H2>
+<P>
+<A NAME="IDX175"></A>
+<A NAME="IDX176"></A>
+
+</P>
+<P>
+The GIMP Print plugin is the printing facility for the GNU Image
+Manipulation Program<A NAME="DOCF1" HREF="gimpprint_foot.html#FOOT1">(1)</A>}. This section
+examines the features offered by the Print plugin.
+
+</P>
+<P>
+The main window is divided into five panes:
+
+</P>
+
+
+
+<H3><A NAME="SEC28" HREF="gimpprint_toc.html#TOC28">5.1.1 Preview</A></H3>
+
+<P>
+The Preview pane contains a positioning widget that allows interactively
+positioning the output on the page. It contains an outer border,
+representing the sheet of paper; an inner border, representing the
+printable area of the printer; an arrow, pointing to the top of the page
+(the end that's fed into the printer); and a black rectangle,
+representing the position of the image on the page. The image can be
+moved around on the paper. When the first (left) button is used, the
+image is moved in screen pixels; when any other button is used, the
+image is moved in points<A NAME="DOCF2" HREF="gimpprint_foot.html#FOOT2">(2)</A>.
+The arrow resizes depending upon the media size chosen; the shaft of the
+arrow is always equal to one inch on the output.
+
+</P>
+<P>
+@image{print-main,,4in}
+
+</P>
+
+
+
+<H3><A NAME="SEC29" HREF="gimpprint_toc.html#TOC29">5.1.2 Printer Settings</A></H3>
+
+<P>
+The Printer Settings pane contains a dropdown menu for selecting a
+printer to print to. There is a special `printer' named <SAMP>`File'</SAMP>
+that allows you to choose a file to print to, rather than a printer
+queue. The Setup box to the right allows specification of a printer
+type, a PPD file<A NAME="DOCF3" HREF="gimpprint_foot.html#FOOT3">(3)</A>, and the command to
+be used to print. Each distinct printer in the Printer list can have
+different settings applied to it. Below that is a combo box allowing
+choice of media size. The choices are constrained to those that the
+printer supports. Below that are dropdown menus for choosing media type
+(what kind of paper), media source (what input tray), ink type, and
+resolution. All of these settings are printer-specific.
+
+</P>
+<P>
+@image{print-setup,,2in}
+
+</P>
+
+
+
+<H3><A NAME="SEC30" HREF="gimpprint_toc.html#TOC30">5.1.3 Position</A></H3>
+
+<P>
+The Position pane contains various widgets to place the image on the
+paper. These widgets work in conjunction with the Preview pane. At the
+top of the pane is a button to center the image on the paper (not on the
+printable area), and on either side buttons to center vertically and
+horizontally. Below these are four boxes that allow entry of the left,
+top, right, and bottom of the image. These positions are relative to
+the top left of the paper<A NAME="DOCF4" HREF="gimpprint_foot.html#FOOT4">(4)</A>. There are
+two additional boxes that allow specification of the right margin and
+bottom margin if you prefer; these are relative to the bottom right
+corner of the paper. Any of these may have values entered into them;
+the preview image will be moved appropriately.
+
+</P>
+<P>
+<STRONG>Note</STRONG>: These entries do not resize the image.
+
+</P>
+<P>
+Finally, there is a pick box for orientation (landscape or portrait).
+There is an <SAMP>`Auto'</SAMP> mode that picks the orientation that yields the
+orientation that best matches that of the image to be printed.
+
+</P>
+
+
+<H3><A NAME="SEC31" HREF="gimpprint_toc.html#TOC31">5.1.4 Scaling</A></H3>
+
+<P>
+The Scaling pane contains a slider that allows scaling of the image.
+The image can be scaled in either percent of the printable area
+(<STRONG>not</STRONG> the page in this case) or pixels per inch (PPI) via a
+radio button below the slider. PPI allows matching image resolution to
+printer resolution. The image may be scaled using either method to
+between 5 and 100% of the imageable area. It is not possible to crop
+with the Print plugin. In Percent mode, the image is scaled so that
+neither axis will be longer than the percent of the printable area
+specified. For example, if you print an image at 20%, it will be
+possible to tile the image 5 times on one axis and at least 5 times on
+the other. To the right of the radio button is a button called Set
+Image Scale. This sets the scaling to PPI, and sets the resolution as
+closely as possible to the resolution stored in the image. To the right
+of the Set Image Scale button are two boxes that allow entry of width
+and height of the image. These set the scaling mode to PPI. Specifying
+one automatically sets the other, and the image is repositioned as
+needed to prevent it from falling off the edge of the page.
+
+</P>
+<P>
+To its right is a button group that allows choosing English (inch)
+units or metric (centimeter) units.
+
+</P>
+
+
+<H3><A NAME="SEC32" HREF="gimpprint_toc.html#TOC32">5.1.5 Image Settings</A></H3>
+
+<P>
+The Image Settings pane allows choice of Line Art, Solid Colors, or
+Photograph image type. Line art or Solid Colors should be used for
+graphics containing mostly solid areas of color. They're very similar
+to each other. Photograph mode dithers more slowly, but produces more
+accurate colors. To the right of these three radio buttons is a button
+called Adjust Color. This pops up a new window that controls various
+output quality settings. That will be described separately. Finally,
+there is a choice of Black and White, Color and Monochrome output.
+Monochrome output can be used to print absolute black and white very
+quickly.
+
+</P>
+
+
+
+<H4><A NAME="SEC33" HREF="gimpprint_toc.html#TOC33">5.1.5.1 Adjust Output</A></H4>
+
+<P>
+The Adjust Output button button pops up a non-modal dialog that allows
+adjustment of various parameters related to the print quality. These
+are independent of the controls within the GIMP itself and only affect
+the print.
+
+</P>
+<P>
+@image{print-color,,2in}
+
+</P>
+<P>
+At the top of the window is a thumbnail of the image that changes to
+reflect the color settings of the image. This enables you to get an
+idea of how the image will print out as you adjust settings.
+
+</P>
+<P>
+Below that there are eight sliders:
+
+</P>
+<DL COMPACT>
+
+<DT><EM>Brightness</EM>
+<DD>
+(0--2.0, default 1.0) Adjust the brightness of the image.
+
+<DT><EM>Contrast</EM>
+<DD>
+(0--4.0, default 1.0) Adjust the output contrast.
+
+<DT><EM>Cyan, Magenta, Yellow</EM>
+<DD>
+(0--4.0, default 1.0) Adjust the cyan, magenta, and yellow in the
+output. These should not normally need to be adjusted very much; even
+very small adjustments can go quite a long way to restoring color
+balance.
+
+<DT><EM>Saturation</EM>
+<DD>
+(0--9.0, default 1.0) Adjust the color brilliance (saturation) of the
+output. Saturation of 0 means pure gray scale, with no color.
+Saturation of 9.0 will make just about anything but pure grays
+brilliantly colored.
+
+<DT><EM>Density</EM>
+<DD>
+(0.1--2.0, default 1.0) Adjust the density (amount of ink) in the print.
+The density is automatically corrected for the particular printer,
+resolution, and in some cases paper choices. If solid black in the
+input is not solid in the print, the density needs to be increased; if
+there is excessive ink bleed-through and muddy dark colors, the density
+should be decreased.
+
+<STRONG>Note</STRONG>: the density will not increase beyond a certain amount no
+matter what the slider is set to.
+
+<DT><EM>Gamma</EM>
+<DD>
+(0.1--4.0, default 1.0) Adjust the output gamma. The gamma value is
+automatically corrected for the choice of printer; this is used if you
+believe the automatic setting is incorrect.
+</DL>
+
+
+
+<H4><A NAME="SEC34" HREF="gimpprint_toc.html#TOC34">5.1.5.2 Dither Algorithm</A></H4>
+<P>
+There is also a selection box for the dither algorithm to be used in the
+pop-up dialog. There are currently seven choices:
+
+</P>
+<DL COMPACT>
+
+<DT><EM>Adaptive Hybrid</EM>
+<DD>
+Adaptive Hybrid usually yields the best output quality; it chooses a
+modified Floyd-Steinberg error diffusion algorithm or ordered dithering
+depending upon the image characteristics.
+
+<DT><EM>Ordered</EM>
+<DD>
+Ordered uses a pure ordered dither. It generally yields excellent
+quality for simple black and white or four color printers without
+variable drop size or drop modulation; it is not recommended if high
+quality is desired on six color printers. It is considerably faster
+than Adaptive Hybrid.
+
+<DT><EM>Fast</EM>
+<DD>
+Fast also uses a pure ordered dither, but uses a very simple black model
+and makes no attempt to handle multi-level (6-color, variable drop size,
+or drop modulation) at all cleanly. It is substantially faster than
+Ordered dither. The quality tends to be quite poor except on simple
+four color printers. On three color printers, quality is probably
+competitive with anything else.
+
+<DT><EM>Very Fast</EM>
+<DD>
+Very Fast is similar to Fast, except that it uses a very simple dither
+matrix that can be looked up much more quickly than the matrix used in
+the Fast dither. For simple pure black and white images dominated by
+horizontal and vertical lines, this may actually yield the best results;
+for other types of image, the quality will be poor.
+
+<DT><EM>Adaptive Random</EM>
+<DD>
+Adaptive Random is similar to Adaptive Hybrid, except that the
+modifications to the Floyd-Steinberg algorithm are slightly different.
+This is slower than Adaptive Hybrid on most systems. For some images
+the quality may be better than Adaptive Hybrid, but generally Adaptive
+Hybrid should yield slightly superior images.
+
+<DT><EM>Hybrid Floyd-Steinberg</EM>
+<DD>
+Hybrid Floyd-Steinberg uses the modified Floyd-Steinberg algorithm of
+Adaptive Hybrid on the entire image. Generally, the results are poor in
+pale regions.
+
+<DT><EM>Random Floyd-Steinberg</EM>
+<DD>
+Random Floyd-Steinberg uses the modified Floyd-Steinberg algorithm of
+Adaptive Random on the entire image. Generally, the results are poor in
+pale regions.
+</DL>
+
+
+
+<H3><A NAME="SEC35" HREF="gimpprint_toc.html#TOC35">5.1.6 Action Buttons</A></H3>
+
+<P>
+The last pane contains four action buttons:
+
+</P>
+<DL COMPACT>
+
+<DT><EM>Print and Save Settings</EM>
+<DD>
+Immediately print the image (or, if the File printer is chosen, display
+a file selection window to pick the output file), and save all current
+settings for all printers.
+
+<DT><EM>Save Settings</EM>
+<DD>
+Immediately save the settings, and continue working in the Print plugin.
+
+<DT><EM>Print</EM>
+<DD>
+Immediately print the image (or, if the <SAMP>`File'</SAMP> printer is chosen,
+display a file selection window to pick the output file), but do not
+save settings.
+
+<DT><EM>Cancel</EM>
+<DD>
+Immediately quit without saving settings or printing.
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_19.html">previous</A>, <A HREF="gimpprint_21.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_21.html b/doc/manual-html/gimpprint_21.html
new file mode 100644
index 0000000..9f83de8
--- /dev/null
+++ b/doc/manual-html/gimpprint_21.html
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Ghostscript</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_20.html">previous</A>, <A HREF="gimpprint_22.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC36" HREF="gimpprint_toc.html#TOC36">5.2 Ghostscript driver</A></H2>
+<P>
+<A NAME="IDX177"></A>
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_20.html">previous</A>, <A HREF="gimpprint_22.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_22.html b/doc/manual-html/gimpprint_22.html
new file mode 100644
index 0000000..11b0fec
--- /dev/null
+++ b/doc/manual-html/gimpprint_22.html
@@ -0,0 +1,22 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - CUPS</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_21.html">previous</A>, <A HREF="gimpprint_23.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC37" HREF="gimpprint_toc.html#TOC37">5.3 CUPS driver</A></H2>
+<P>
+<A NAME="IDX178"></A>
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_21.html">previous</A>, <A HREF="gimpprint_23.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_23.html b/doc/manual-html/gimpprint_23.html
new file mode 100644
index 0000000..e1bd23b
--- /dev/null
+++ b/doc/manual-html/gimpprint_23.html
@@ -0,0 +1,37 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Problems</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_22.html">previous</A>, <A HREF="gimpprint_24.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC38" HREF="gimpprint_toc.html#TOC38">6 Reporting Bugs</A></H1>
+<P>
+<A NAME="IDX179"></A>
+<A NAME="IDX180"></A>
+
+</P>
+<P>
+If you find a bug in GIMP-Print or have any suggestions for modification
+or improvement, please send electronic mail to the GIMP-Print bug
+reporting address <A NAME="DOCF5" HREF="gimpprint_foot.html#FOOT5">(5)</A>}. Include the version
+number, which you can find by running <SAMP>`gimpprint-config
+--version'</SAMP>. Also include in your message the output that the program
+produced and the output you expected, if applicable, otherwise the best
+description of the problem that you can provide.
+
+</P>
+<P>
+If you have other questions, comments or suggestions about GIMP-Print,
+contact the developers via electronic mail to the GIMP-Print mailing
+list <A NAME="DOCF6" HREF="gimpprint_foot.html#FOOT6">(6)</A>}. They will try to help you out,
+although they may not have time to fix your problems.
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_22.html">previous</A>, <A HREF="gimpprint_24.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_24.html b/doc/manual-html/gimpprint_24.html
new file mode 100644
index 0000000..31838f9
--- /dev/null
+++ b/doc/manual-html/gimpprint_24.html
@@ -0,0 +1,29 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Appendices</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_23.html">previous</A>, <A HREF="gimpprint_25.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC39" HREF="gimpprint_toc.html#TOC39">7 Appendices</A></H1>
+<P>
+<A NAME="IDX181"></A>
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_25.html#SEC40">Dithering</A>: Dither algorithms.
+<LI><A HREF="gimpprint_26.html#SEC41">Weaving</A>: Weaving algorithms.
+<LI><A HREF="gimpprint_34.html#SEC49">ESC/P2</A>: Epson ESC/P2 printer control language.
+<LI><A HREF="gimpprint_39.html#SEC54">New Printer</A>: Adding a new printer to libgimpprint.
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_23.html">previous</A>, <A HREF="gimpprint_25.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_25.html b/doc/manual-html/gimpprint_25.html
new file mode 100644
index 0000000..bbccb97
--- /dev/null
+++ b/doc/manual-html/gimpprint_25.html
@@ -0,0 +1,611 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Dithering</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_24.html">previous</A>, <A HREF="gimpprint_26.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC40" HREF="gimpprint_toc.html#TOC40">A Dithering</A></H1>
+<P>
+<A NAME="IDX182"></A>
+
+</P>
+<P>
+The dithering code in <TT>`print-dither.c'</TT> attempts to reproduce
+various shades of gray (or all colors) from only a few different inks
+(black, cyan, magenta, yellow, and sometimes light cyan and light
+magenta). The dots can't vary in darkness or size (except for certain
+special printers), and so we need to lay down a certain fraction of dots
+to represent each distinct level.
+
+</P>
+<P>
+This sounds straightforward; in practice, it isn't. Completely random
+distribution of dots (simple probabilistic dithering) would create
+grainy clumps and light spots. The smoothest pattern results from an
+equidistant spacing of dots. Approximating this requires sophisticated
+algorithms. We have two dithering algorithms, an ordered dither
+algorithm that uses a grid (matrix) to decide whether to print, and a
+modified Floyd-Steinberg error diffusion algorithm that uses a grid in a
+slightly different way.
+
+</P>
+
+<P>
+We currently have three dithering functions:
+
+</P>
+
+<OL>
+<LI>
+
+<CODE>dither_fastblack</CODE> produces pure black or white from a pre-dithered
+input. This is used for two purposes: for printing pure black and white
+very quickly (e. g. text), and for printing pre-screened monochrome
+output that was rasterized externally.
+
+<LI>
+
+<CODE>dither_black</CODE> produces black from grayscale input. The new
+dither_black can produce either a single or multiple levels of black,
+for printers supporting variable dot size.
+
+<LI>
+
+<CODE>dither_cmyk</CODE> produces 3, 4, 5, 6, or 7 color output (CMY, CMYK,
+CcMmYK, CcMmYy, CcMmYyK, or any variants). The new routine can handle
+single or multiple levels of each color.
+</OL>
+
+<P>
+There is a choice of dithering algorithms. Four of them are based on a
+basic error diffusion, with a few tweaks of my own. The other one is
+`ordered'. However, they all share the basic operation in common.
+First, the algorithm picks what kind of dot (if there are multiple dot
+sizes and/or tones that may be picked) is the candidate to be printed.
+This decision is made based on the darkness at the point being dithered.
+Then, it decides whether the dot will be printed at all. What this is
+based on depends upon which algorithm family we use. This is all
+described in more detail below.
+
+</P>
+
+<P>
+Ordered dithering works by comparing the value at a given point with the
+value of a tiled matrix. If the value at the point is greater than the
+value in the matrix, the dot is printed. The matrix should consist of a
+set of evenly spaced points between 0 and the upper limit. The choice
+of matrix is very important for print quality. A good dither matrix
+will emphasize high frequency components, which distributes dots evenly
+with a minimum of clumping. The matrices used here are all simple
+matrices that are expanded recursively to create larger matrices with
+the same kind of even point distribution. This is described below.
+
+</P>
+<P>
+Note that it is important to use different matrices for the two
+sub-operations, because otherwise the choice about whether to print and
+the choice of dot size will be correlated. The usual result is that the
+print is either too dark or too light, but there can be other problems.
+
+</P>
+<P>
+Ordered dithering works quite well on single dot size, four color
+printers. It has not been well tested on four color, variable dot size
+printers. It should be avoided on six color printers.
+
+</P>
+
+<P>
+Error diffusion works by taking the output error at a given pixel and
+"diffusing" it into surrounding pixels. Output error is the
+difference between the amount of ink output and the input level at each
+pixel. For simple printers, with one or four ink colors and only one
+dot size, the amount of ink output is either 65536 (i. e. full output)
+or 0 (no output). The difference between this and the input level is
+the error. Normal error diffusion adds part of this error to the
+adjoining pixels in the next column and the next row (the algorithm
+simply scans each row in turn, never backing up). The error adds up
+until it reaches a threshold (half of the full output level, or 32768),
+at which point a dot is output, the output is subtracted from the
+current value, and the (now negative) error is diffused similarly.
+
+</P>
+<P>
+Error diffusion works quite well in general, but it tends to generate
+artifacts which usually appear as worm-like lines or areas of anomalous
+density. I have devised some ways, as described below, of ameliorating
+these artifacts.
+
+</P>
+<P>
+There are two sub-classes of error diffusion that we use here, `random'
+and `hybrid'. One of the techniques that we use to ameliorate the
+artifacts is to use a fuzzy threshold rather than the hard threshold of
+half of the output level. Random error diffusion uses a pseudo-random
+number to perturb the threshold, while hybrid error diffusion uses a
+matrix. Hybrid error diffusion worked very poorly in 3.1.3, and I
+couldn't figure out why until I found a bug. It now works very well.
+
+</P>
+<P>
+There is one additional variant (on both sub-classes), called `adaptive
+hybrid' and `adaptive random'. The adaptive variant takes advantage of
+the fact that the patterns that ordered dithering create are less
+visible at very low densities, while the artifacts created by error
+diffusion are more objectionable at low densities. At low densities,
+therefore, it uses ordered dithering; at higher densities it uses error
+diffusion.
+
+</P>
+
+<P>
+Handling multiple output levels makes life a bit more complicated. In
+principle, it shouldn't be much harder: simply figure out what the ratio
+between the available output levels is and have multiple thresholds. In
+practice, getting these right involves a lot of trial and error. The
+other thing that's important is to maximize the number of dots that have
+some ink. This will reduce the amount of speckling. More on this
+later.
+
+</P>
+<P>
+The next question: how do we handle black when printing in color? Black
+ink is much darker than colored inks. It's possible to produce black by
+adding some mixture of cyan, magenta, and yellow--in principle. In
+practice, the black really isn't very black, and different inks and
+different papers will produce different color casts. However, by using
+CMY to produce gray, we can output a lot more dots! This makes for a much
+smoother image. What's more, one cyan, one magenta, and one yellow dot
+produce less darkness than one black dot, so we're outputting that many
+more dots. Better yet, with 6 or 7 color printers, we have to output even
+more light ink dots. So Epson Stylus Photo printers can produce really
+smooth grays--if we do everything right. The right idea is to use
+CMY at lower black levels, and gradually mix in black as the overall
+amount of ink increases, so the black dots don't really become visible
+within the ink mass.
+
+</P>
+<P>
+Variable dot sizes are handled by dividing the range between 0 and
+65536 into segments. Each segment can either represent a range in
+which all of one kind of ink (color and/or dot size) is used, with
+varying amounts of ink, or a transition region between inks, in which
+equal numbers of dots are printed but the amount of each ink will be
+adjusted throughout the range. Each range is represented by four
+numbers:
+
+</P>
+
+<OL>
+<LI>
+
+bottom of the range
+<LI>
+
+top of the range
+<LI>
+
+value of the lighter ink
+<LI>
+
+value of the darker ink
+</OL>
+
+<P>
+In addition, the bit patterns and which type of ink are also
+represented, but they don't affect the actual algorithm.
+
+</P>
+
+<P>
+As mentioned above, the basic algorithm is the same whether we use
+ordered dither or error diffusion. We perform the following steps on
+each color of each pixel:
+
+</P>
+
+<OL>
+<LI>
+
+Compute the value of the particular color we're printing. This isn't
+usually the pure CMY value; it's adjusted to improve saturation and to
+limit the use of black in light toned regions (to avoid speckling).
+
+<LI>
+
+Find the range containing this value.
+
+<LI>
+
+Compute where this value lies within the range. We scale the endpoints
+between 0 and 65536 for this purpose. So for example, if the bottom of
+the range is 10,000 and the top of the range is 20,000, and the value is
+12,500, we're 1/4 of the way between the bottom and the top of the
+range, so our scale point is 16384.
+
+<LI>
+
+Compute the "virtual value". The virtual value is the distance between
+the value of the lighter and the value of the darker ink. So if the
+value of the light ink is 32768 and the dark ink is 65536, we compute a
+virtual value scaled appropriately between these two values, which is
+40960 in this case.
+
+<LI>
+
+Using either error diffusion or ordered dither, the standard threshold
+is 1/2 of the value (20480 in this case). Using ordered dither, we want
+to compute a value between 0 and 40960 that we will compare the input
+value against to decide whether to print. Using pure error diffusion,
+we would compare the accumulated error against 20480 to decide whether
+to print. In practice, we use the same matrix method to decide whether
+to print. The correct amount of ink will be printed this way, but we
+minimize the squiggly lines characteristic of error diffusion by
+dithering the threshold in this fashion. A future enhancement will
+allow us to control the amount of dithering applied to the threshold.
+</OL>
+
+<P>
+The matrices were generated by Thomas Tonino
+@email{&#60;ttonino@bio.vu.nl&#62;} with an algorithm of his devising. The
+algorithm is designed to maximize the spacing between dots at any given
+density by searching the matrix for holes and placing a dot in the
+largest available hole. It requires careful selection of initial points
+to achieve good results, and is very time consuming. For best results,
+a different matrix must be used for modes with 2:1 aspect ratio
+(e.g. 1440x720) than for 1:1 (e. g. 720x720). It is essential with any
+of these matrices that every point be used. Skipping points generates
+low-frequency noise.
+
+</P>
+<P>
+It's essential to use different matrices for deciding whether to print
+and for deciding what color (dark or light) to print. This should be
+obvious; the decision about whether to print at all should be as
+independent as possible from the decision about what color to print,
+because any bias will result in excess light or dark ink being
+printed, shifting the tonal balance. We actually use the same
+matrices, but we shift them vertically and horizontally. Assuming
+that the matrices are not self-correlated, this will yield good
+results.
+
+</P>
+<P>
+The ranges are computed from a list of ink values (between 0 and 1 for
+each possible combination of dot size and ink tone, where the value
+represents the darkness of the ink) and the desired maximum density of
+the ink. This is done in dither_set_ranges, and needs more
+documentation.
+
+</P>
+
+<P>
+I stated earlier that I've tweaked the basic error diffusion algorithm.
+Here's what I've done to improve it:
+
+</P>
+
+<OL>
+<LI>
+
+We use a variable threshold to decide when to print, as discussed above.
+This does two things for us: it reduces the slightly squiggly diagonal
+lines that are the mark of error diffusion; and it allows us to lay down
+some ink even in very light areas near the edge of the image. The
+squiggly lines that error diffusion algorithms tend to generate are
+caused by the gradual accumulation of error. This error is partially
+added horizontally and partially vertically. The horizontal
+accumulation results in a dot eventually being printed. The vertical
+accumulation results in a dot getting laid down in roughly the same
+horizontal position in the next row. The diagonal squigglies result
+from the error being added to pixels one forward and one below the
+current pixel; these lines slope from the top right to the bottom left
+of the image.
+
+Error diffusion also results in pale areas being completely white near
+the top left of the image (the origin of the printing coordinates).
+This is because enough error has to accumulate for anything at all to
+get printed. In very pale areas it takes quite a long time to build up
+anything printable at all; this results in the bare spots.
+
+Randomizing the threshold somewhat breaks up the diagonals to some
+degree by randomizing the exact location that the accumulated output
+crosses the threshold. It reduces the false white areas by allowing
+some dots to be printed even when the accumulated output level is very
+low. It doesn't result in excess ink because the full output level is
+still subtracted and diffused.
+
+Excessive randomization leads to blobs at high densities. Therefore, as
+the density increases, the degree of randomization decreases.
+
+<LI>
+
+Alternating scan direction between rows (first row is scanned left to
+right, second is scanned right to left, and so on). This also helps
+break up white areas, and it also seems to break up squigglies a bit.
+Furthermore, it eliminates directional biases in the horizontal
+direction. This isn't necessary for ordered dither, but it doesn't hurt
+either.
+
+<LI>
+
+Diffusing the error into more pixels. Instead of diffusing the entire
+error into @math{(X+1, Y)} and @math{(X, Y+1)}, we diffuse it into
+@math{(X+1, Y)}, @math{(X+K, Y+1)}, @math{(X, Y+1)}, @math{(X-K, Y+1)}
+where @math{K} depends upon the output level (it never exceeds about 10
+dots, and is greater at higher output levels). This really reduces
+squigglies and graininess. The amount of this spread can be controlled;
+for line art, it should be less than for photographs (of course, line
+art doesn't usually contain much light color, but the <STRONG>error</STRONG>
+value can be small in places!) In addition to requiring more
+computation, a wide ink spread results in patterning at high dot
+densities (note that the dot density can be high even in fairly pale
+regions if multiple dot sizes are in use).
+
+<LI>
+
+Don't lay down any colored ink if we're laying down black ink. There's
+no point; the colored ink won't show. We still pretend that we did for
+purposes of error diffusion (otherwise excessive error will build up,
+and will take a long time to clear, resulting in heavy bleeding of ink
+into surrounding areas, which is very ugly indeed), but we don't bother
+wasting the ink. How well this will do with variable dot size remains
+to be seen.
+
+<LI>
+
+Oversampling. This is how to print 1440x720 with Epson Stylus printers.
+Printing full density at 1440x720 will result in excess ink being laid
+down. The trick is to print only every other dot. We still compute the
+error as though we printed every dot. It turns out that randomizing
+which dots are printed results in very speckled output. This can be
+taken too far; oversampling at 1440x1440 or 1440x2880 virtual resolution
+results in other problems. However, at present 1440x1440 (which is more
+accurately called "1440x720 enhanced", as the Epson printers cannot
+print 1440 rows per inch) does quite well, although it's slow.
+</OL>
+
+<P>
+What about multiple output levels? For 6 and 7 color printers, simply
+using different threshold levels has a problem: the pale inks have trouble
+being seen when a lot of darker ink is being printed. So rather than
+just using the output level of the particular color to decide which ink
+to print, we look at the total density (sum of all output levels).
+If the density's high enough, we prefer to use the dark ink. Speckling
+is less visible when there's a lot of ink, anyway. I haven't yet figured
+out what to do for multiple levels of one color.
+
+</P>
+<P>
+You'll note that I haven't quoted a single source on color or printing
+theory. I simply did all of this empirically.
+
+</P>
+<P>
+There are various other tricks to reduce speckling. One that I've seen
+is to reduce the amount of ink printed in regions where one color
+(particularly cyan, which is perceived as the darkest) is very pale.
+This does reduce speckling all right, but it also results in strange
+tonal curves and weird (to my eye) colors.
+
+</P>
+
+<P>
+Before any dither routine is used, <CODE>init_dither()</CODE> must be called.
+This takes three arguments: the input width (number of pixels in the
+input), the output width (number of pixels in the output), and a
+<CODE>vars_t</CODE> structure containing the parameters for the print job.
+
+</P>
+<P>
+<CODE>init_dither()</CODE> returns a pointer to an opaque object representing
+the dither. This object is passed as the first argument to all of the
+dither-related routines.
+
+</P>
+<P>
+After a page is fully dithered, <CODE>free_dither()</CODE> must be called to
+free the dither object and perform any cleanup. In the future, this may
+do more (such as flush output). This arrangement permits using these
+routines with programs that create multiple output pages, such as
+GhostScript.
+
+</P>
+<P>
+The dithering routines themselves have a number of control knobs that
+control internal aspects of the dithering process. These knobs are
+accessible via a number of functions that can be called after
+<CODE>init_dither()</CODE>.
+
+</P>
+
+<UL>
+<LI>
+
+<CODE>dither_set_density()</CODE> takes a double between 0 and 1 representing
+the desired ink density for printing solid colors. This is used in a
+number of places in the dithering routine to make decisions.
+
+<LI>
+
+<CODE>dither_set_black_density()</CODE> takes a double between 0 and 1
+representing the desired ink density for printing black ink in color
+printing. This is used to balance black against color ink. By default,
+this is equal to the density set by <CODE>dither_set_density()</CODE>. By
+setting it higher, more black ink will be printed. For example, if the
+base density is .4 and the black density is .8, twice as much black ink
+will be printed as would otherwise be called for.
+
+This is not used when printing in monochrome. When printing monochrome,
+the base density (<CODE>dither_set_density</CODE>) should be adjusted
+appropriately.
+
+<LI>
+
+<CODE>dither_set_ink_budget()</CODE> takes an unsigned number representing the
+most ink that may be deposited at a given point. This number is
+arbitrary; the limit is computed by summing the size of each ink dot,
+which is supplied as a parameter in <CODE>dither_set_<VAR>X</VAR>_ranges</CODE>.
+By default, there is no limit.
+
+<LI>
+
+<CODE>dither_set_black_lower()</CODE> takes a double that should be between 0
+and 1 that represents the lowest density level at which black ink will
+start to mix in with colored ink to generate grays. The lower this is,
+the less density is required to use black ink. Setting this too low
+will result in speckling from black dots, particularly on 6 and 7 color
+printers. Setting this too high will make it hard to get satisfactory
+black or may result in sharp transition between blended colors and
+black. Default: 0.0468.
+
+It is important to note that since the density scale is never linear
+(and since this value is adjusted via other things happening during the
+dithering process) that this does not mean that 95% gray will use any
+black ink. At this setting, there will be no black ink used until about
+50% gray.
+
+This only applies to color mode.
+
+This value should be set lower for printers capable of variable dot
+size, since more dots can be laid down close to each other.
+
+<LI>
+
+<CODE>dither_set_black_upper()</CODE> takes a double that should be between 0
+and 1 that represents the highest density level at which colored inks
+will be mixed to create gray. Setting this too low will result in
+speckly dark grays because there is not enough ink to fill all the
+holes, or sharp transition between blended colors and black if it is too
+close to the value of dither_set_black_upper(). Setting this too high
+will result in poor black and dark tone quality. Default: 0.5. This
+results in 10% and darker grays being printed with essentially all
+black.
+
+This only applies to color mode.
+
+<LI>
+
+<CODE>dither_set_black_levels()</CODE> takes three doubles that represent the
+amount of cyan, magenta, and yellow respectively that are blended to
+create gray. The defaults are 1.0 for each, which is probably too low
+for most printers. These values are adjusted to create a good gray
+balance. Setting these too low will result in pale light and midtone
+grays, with a sharp transition to darker tones as black mixes in.
+Setting them too high will result in overly dark grays and use of too
+much ink, possibly creating bleed-through.
+
+This only applies to color mode.
+
+<LI>
+
+<CODE>dither_set_randomizers()</CODE> takes four integer values representing
+the degree of randomness used for cyan, magenta, yellow, and black.
+This is used to allow some printing to take place in pale areas. Zero
+is the most random; greater than 8 or so gives very little randomness at
+all. Defaults are 0 for cyan, magenta, and yellow, and 4 for black.
+Setting the value for black too low will result in black speckling in
+pale areas. Setting values too high will result in pale areas getting
+no ink at all.
+
+This currently only applies to single dot size in color and black. It
+should be extended to operate in variable dot size mode, although
+actually applying it correctly will be tricky.
+
+<LI>
+
+<CODE>dither_set_ink_darkness()</CODE> takes three doubles representing the
+contribution to perceived darkness of cyan, magenta, and yellow. This
+is used to help decide when to switch between light and dark inks in 6
+and 7 color printers (with light cyan, light magenta, and possibly light
+yellow). Setting these too low will result in too much light ink being
+laid down, creating flat spots in the darkness curves and bleed-through.
+Setting them too high will result in dark ink being used in pale areas,
+creating speckle. The defaults are .4 for cyan, .3 for magenta, and .2
+for yellow. Dark cyan will show against yellow much more than dark
+magenta will show against cyan, since the cyan appears much darker than
+the yellow.
+
+<LI>
+
+<CODE>dither_set_light_inks()</CODE> takes three doubles between 0 and 1
+representing the ratio in darkness between the light and dark versions
+of the inks. Setting these too low will result in too much dark ink
+being used in pale areas, creating speckling, while setting them too
+high will result in very smooth texture but too much use of light ink,
+resulting in flat spots in the density curves and ink bleed-through.
+There are no defaults. Any light ink specified as zero indicates that
+there is no light ink for that color.
+
+This only applies to 6 and 7 color printers in single dot size color
+mode, and only to those inks which have light versions (usually cyan and
+magenta).
+
+<LI>
+
+<CODE>dither_set_ink_spread()</CODE> takes a small integer representing the
+amount of ink spread in the dither. Larger numbers mean less spread.
+Larger values are appropriate for line art and solid tones; they will
+yield sharper transitions but more dither artifacts. Smaller values are
+more appropriate for photos. They will reduce resolution and sharpness
+but reduce dither artifacts up to a point. A value of 16 or higher
+implies minimum ink spread at any resolution no matter what the
+overdensity. A value of 14 is typical for photos on single dot size, 6
+color printers. For 4 color printers, subtract 1 (more spread; the dots
+are farther apart). For variable dot size printers, add 1 (more small
+dots are printed; less spread is desirable).
+
+<LI>
+
+<CODE>dither_set_adaptive_divisor()</CODE> takes a float representing the
+transition point between error diffusion and ordered dither if adaptive
+dithering is used. The float is a fraction of the printing density.
+For example, if you wish the transition to be at 1/4 of the maximum
+density (which works well on simple 4-color printers), you would pass
+.25 here. With six colors and/or with multiple dot sizes, the values
+should be set lower.
+
+<LI>
+
+<CODE>dither_set_transition()</CODE> takes a float representing the exponent
+of the transition curve between light and dark inks/dot sizes. A value
+less than 1 (typical when using error diffusion) mixes in less dark
+ink/small dots at lower ends of the range, to reduce speckling. When
+using ordered dithering, this must be set to 1.
+
+<LI>
+
+<CODE>dither_set_<VAR>X</VAR>_ranges_simple</CODE> (<VAR>X</VAR>=<SAMP>`c'</SAMP>, <SAMP>`m'</SAMP>,
+<SAMP>`y'</SAMP>, or <SAMP>`k'</SAMP>) describes the ink choices available for each
+color. This is useful in typical cases where a four color printer with
+variable dot sizes is in use. It is passed an array of doubles between
+(0, 1] representing the relative darkness of each dot size. The dot
+sizes are assigned bit patterns (and ink quantities, see
+<CODE>dither_set_ink_budget()</CODE> above) from 1 to the number of levels.
+This also requires a density, which is the desired density for this
+color. This density need not equal the density specified in
+<CODE>dither_set_density()</CODE>. Setting it lower will tend to print more
+dark ink (because the curves are calculated for this color assuming a
+lower density than is actually supplied).
+
+<LI>
+
+<CODE>dither_set_<VAR>X</VAR>_ranges</CODE> (<VAR>X</VAR>=<SAMP>`c'</SAMP>, <SAMP>`m'</SAMP>, <SAMP>`y'</SAMP>,
+or <SAMP>`k'</SAMP>) describes in a more general way the ink choices available
+for each color. For each possible ink choice, a bit pattern, dot size,
+value (i. e. relative darkness), and whether the ink is the dark or
+light variant ink is specified.
+</UL>
+
+<P>
+---Robert Krawitz @email{&#60;rlk@alum.mit.edu&#62;} May 8, 2000
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_24.html">previous</A>, <A HREF="gimpprint_26.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_26.html b/doc/manual-html/gimpprint_26.html
new file mode 100644
index 0000000..49ba0d0
--- /dev/null
+++ b/doc/manual-html/gimpprint_26.html
@@ -0,0 +1,31 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Weaving</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_25.html">previous</A>, <A HREF="gimpprint_27.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC41" HREF="gimpprint_toc.html#TOC41">B Weaving for inkjet printers</A></H1>
+<P>
+<A NAME="IDX183"></A>
+
+</P>
+<P>
+by Charles Briscoe-Smith and Robert Krawitz.
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_27.html#SEC42">Weaving introduction</A>: Just what is weaving?
+<LI><A HREF="gimpprint_28.html#SEC43">Weaving algorithms</A>: How to weave.
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_25.html">previous</A>, <A HREF="gimpprint_27.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_27.html b/doc/manual-html/gimpprint_27.html
new file mode 100644
index 0000000..dbd76d4
--- /dev/null
+++ b/doc/manual-html/gimpprint_27.html
@@ -0,0 +1,152 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Weaving introduction</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_26.html">previous</A>, <A HREF="gimpprint_28.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC42" HREF="gimpprint_toc.html#TOC42">B.1 Introduction</A></H2>
+
+<P>
+The Epson Stylus Color/Photo printers don't have memory to print using
+all of the nozzles in the print head. For example, the Stylus Photo
+700/EX has 32 nozzles. At 720 dpi, with an 8" wide image, a single line
+requires @math{(8 * 720 * 6 / 8)} bytes, or 4320 bytes (because the
+Stylus Photo printers have 6 ink colors). To use 32 nozzles per color
+would require 138240 bytes. It's actually worse than that, though,
+because the nozzles are spaced 8 rows apart. Therefore, in order to
+store enough data to permit sending the page as a simple raster, the
+printer would require enough memory to store 256 rows, or 1105920 bytes.
+Considering that the Photo EX can print 11" wide, we're looking at more
+like 1.5 MB. In fact, these printers are capable of 1440 dpi horizontal
+resolution. This would require 3 MB. The printers actually have
+64K-256K.
+
+</P>
+<P>
+With the newer (740/750 and later) printers it's even worse, since these
+printers support multiple dot sizes; of course, the even newer
+2880x720 printers don't help either.
+
+</P>
+<P>
+Older Epson printers had a mode called <STRONG>MicroWeave</STRONG> (tm). In this
+mode, the host fed the printer individual rows of dots, and the printer
+bundled them up and sent them to the print head in the correct order to
+achieve high quality. This MicroWeave mode still works in new printers,
+but in some cases the implementation is very minimal: the printer uses
+exactly one nozzle of each color (the first one). This makes printing
+extremely slow (more than 30 minutes for one 8.5x11" page), although the
+quality is extremely high with no visible banding whatsoever. It's not
+good for the print head, though, since no ink is flowing through the
+other nozzles. This leads to drying of ink and possible permanent
+damage to the print head.
+
+</P>
+<P>
+By the way, although the Epson manual says that microweave mode should be
+used at 720 dpi, 360 dpi continues to work in much the same way. At 360
+dpi, data is fed to the printer one row at a time on all Epson printers.
+The pattern that the printer uses to print is very prone to banding.
+However, 360 dpi is inherently a low quality mode; if you're using it,
+presumably you don't much care about quality. It is possible to do
+microweave at 360 DPI, with significantly improved quality.
+
+</P>
+<P>
+Except for the Stylus Pro printers (5000, 5500, 7000, 7500, 9000,
+9500, and when it's released the 10000), which can do microweave at
+any resolution, printers from roughly the Stylus Color 600 and later
+do not have the capability to do MicroWeave correctly in many cases
+(some printers can do MicroWeave correctly at 720 DPI). Instead, the
+host must arrange the output in the order that it will be sent to the
+print head. This is a very complex process; the jets in the print
+head are spaced more than one row (1/720") apart, so we can't simply
+send consecutive rows of dots to the printer. Instead, we have to
+pass e. g. the first, ninth, 17th, 25th... rows in order for them to
+print in the correct position on the paper. This interleaving process
+is called "soft" weaving.
+
+</P>
+<P>
+This decision was probably made to save money on memory in the
+printer. It certainly makes the driver code far more complicated than
+it would be if the printer could arrange the output. Is that a bad
+thing? Usually this takes far less CPU time than the dithering
+process, and it does allow us more control over the printing process,
+e.g. to reduce banding. Conceivably, we could even use this ability
+to map out bad jets.
+
+</P>
+<P>
+Interestingly, apparently the Windows (and presumably Macintosh) drivers
+for most or all Epson printers still list a "microweave" mode.
+Experiments have demonstrated that this does not in fact use the
+"microweave" mode of the printer. Possibly it does nothing, or it
+uses a different weave pattern from what the non-"microweave" mode
+does. This is unnecessarily confusing, at least for people who write
+drivers who try to explain them to people who don't.
+
+</P>
+<P>
+What makes this interesting is that there are many different ways of of
+accomplishing this goal. The naive way would be to divide the image up
+into groups of 256 rows (for a printer with 32 jets and a separation of
+8 rows), and print all the mod8=0 rows in the first pass, mod8=1 rows in
+the second, and so forth. The problem with this approach is that the
+individual ink jets are not perfectly uniform; some emit slightly bigger
+or smaller drops than others. Since each group of 8 adjacent rows is
+printed with the same nozzle, that means that there will be distinct
+streaks of lighter and darker bands within the image (8 rows is 1/90",
+which is visible; 1/720" is not). Possibly worse is that these patterns
+will repeat every 256 rows. This creates banding patterns that are
+about 1/3" wide.
+
+</P>
+<P>
+So we have to do something to break up this patterning.
+
+</P>
+<P>
+Epson does not publish the weaving algorithms that they use in their
+bundled drivers. Indeed, their developer web site
+(http://www.ercipd.com/isv/edr_docs.htm) does not even describe how to
+do this weaving at all; it says that the only way to achieve 720 dpi is
+to use MicroWeave. It does note (correctly) that 1440 dpi horizontal
+can only be achieved by the driver (i. e. in software). The manual
+actually makes it fairly clear how to do this (it requires two passes
+with horizontal head movement between passes), and it is presumably
+possible to do this with MicroWeave.
+
+</P>
+<P>
+The information about how to do this is apparently available under
+non-disclosure agreement (NDA). It's actually easy enough to reverse
+engineer what's inside a print file with a simple Perl script, which is
+supplied with the Gimp-Print distribution as tests/parse-escp2. In any
+event, we weren't particularly interested in the weaving patterns Epson
+used. There are many factors that go into choosing a good weaving
+pattern; we're learning them as we go along. Issues such as drying time
+(giving the ink a few seconds more or less to dry can have highly
+visible effects) affect the quality of the output.
+
+</P>
+<P>
+The Uniprint GhostScript driver has been able to do weaving for a long
+time. It uses patterns that must be specified for each choice of
+resolution and printer. We preferred an algorithmic approach that
+computes a weave pattern for any given choice of inputs. This
+obviously requires extensive testing; we developed a test suite
+specifically for this purpose.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_26.html">previous</A>, <A HREF="gimpprint_28.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_28.html b/doc/manual-html/gimpprint_28.html
new file mode 100644
index 0000000..3116157
--- /dev/null
+++ b/doc/manual-html/gimpprint_28.html
@@ -0,0 +1,77 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Weaving algorithms</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_27.html">previous</A>, <A HREF="gimpprint_29.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC43" HREF="gimpprint_toc.html#TOC43">B.2 Weaving algorithms</A></H2>
+<P>
+<A NAME="IDX184"></A>
+
+</P>
+<P>
+I considered a few algorithms to perform the weave. The first one I
+devised let me use only @math{(jets-distance_between_jets+1)}
+nozzles, or 25. This is OK in principle, but it's slower than using all
+nozzles. By playing around with it some more, I came up with an
+algorithm that lets me use all of the nozzles, except near the top and
+bottom of the page.
+
+</P>
+<P>
+This still produces some banding, though. Even better quality can be
+achieved by using multiple nozzles on the same line. How do we do
+this? In 1440x720 mode, we're printing two output lines at the same
+vertical position. However, if we want four passes, we have to
+effectively print each line twice. Actually doing this would increase
+the density, so what we do is print half the dots on each pass. This
+produces near-perfect output, and it's far faster than using (pseudo)
+"MicroWeave".
+
+</P>
+<P>
+Yet another complication is how to get near the top and bottom of the
+page. This algorithm lets us print to within one head width of the
+top of the page, and a bit more than one head width from the bottom.
+That leaves a lot of blank space. Doing the weave properly outside of
+this region is increasingly difficult as we get closer to the edge of
+the paper; in the interior region, any nozzle can print any line, but
+near the top and bottom edges, only some nozzles can print. We
+originally handled this by using the naive way mentioned above near
+the borders, and switching over to the high quality method in the
+interior. Unfortunately, this meant that the quality is quite visibly
+degraded near the top and bottom of the page. We have since devised
+better algorithms that allow printing to the extreme top and bottom of
+the region that can physically be printed, with only minimal loss of
+quality.
+
+</P>
+<P>
+Epson does not advertise that the printers can print at the very top
+of the page, although in practice most of them can. The quality is
+degraded to some degree, and we have observed that in some cases not
+all of the dots get printed. Epson may have decided that the
+degradation in quality is sufficient that printing in that region
+should not be allowed. That is a valid decision, although we have
+taken another approach.
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_29.html#SEC44">Simple weaving algorithms</A>: Starting to weave.
+<LI><A HREF="gimpprint_30.html#SEC45">Perfect weaving</A>: Improving the weave.
+<LI><A HREF="gimpprint_31.html#SEC46">Weaving collisions</A>: Bang!
+<LI><A HREF="gimpprint_32.html#SEC47">What is perfect weaving?</A>: What makes a "perfect" weave?
+<LI><A HREF="gimpprint_33.html#SEC48">Oversampling</A>: Increasing resolution, reducing banding
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_27.html">previous</A>, <A HREF="gimpprint_29.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_29.html b/doc/manual-html/gimpprint_29.html
new file mode 100644
index 0000000..bd893a6
--- /dev/null
+++ b/doc/manual-html/gimpprint_29.html
@@ -0,0 +1,111 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Simple weaving algorithms</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_28.html">previous</A>, <A HREF="gimpprint_30.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H3><A NAME="SEC44" HREF="gimpprint_toc.html#TOC44">B.2.1 Simple weaving algorithms</A></H3>
+
+<P>
+The initial problem is to calculate the starting position of each
+pass; the row number of the printer's top jet when printing that pass.
+Since we assume the paper cannot be reverse-fed, the print head must,
+for each pass, start either further down the page than the previous
+pass or at the same position. Each pass's start point is therefore at
+a non-negative offset from the previous pass's start point.
+
+</P>
+<P>
+Once we have a formula for the starting row of each pass, we then turn
+that "inside out" to get a formula for the pass number containing each
+row.
+
+</P>
+<P>
+First, let's define how our printer works. We measure vertical
+position on the paper in "rows"; the resolution with which the printer
+can position the paper vertically. The print head contains @math{J} ink
+jets, which are spaced @math{S} rows apart.
+
+</P>
+<P>
+Consider a very simple case: we want to print a page as quickly as
+possible, and we mostly don't care how sparse the printing is, so long
+as it's fairly even.
+
+</P>
+<P>
+It's pretty obvious how to do this. We make one pass with the print
+head, printing @math{J} lines of data, each line @math{S} rows after the
+previous one. We then advance the paper by @math{S*J} rows and print
+the next row. For example, if @math{J=7} and @math{S=4}, this method
+can be illustrated like this:
+
+</P>
+
+<PRE>
+pass number
+| row number-------&#62;
+| | 111111111122222222223333333333444444444455555555556666666666
+| 0123456789012345678901234567890123456789012345678901234567890123456789
+0 *---*---*---*---*---*---*
+1 *---*---*---*---*---*---*
+2 \-----------------------/ *---*---*---*---*---*-
+ 7 jets \---/
+ 4 rows offset from one jet to the next
+ \---------------------------/
+ 7*4=28 rows offset from one pass to the next
+</PRE>
+
+<P>
+In these examples, the vertical axis can be thought of as the time axis,
+with the pass number shown at the left margin, while the row number runs
+horizontally. A <SAMP>`*'</SAMP> shows each row printed by a pass, and a row of
+<SAMP>`-'</SAMP> is used to link together the rows printed by one pass of the
+print head. The first pass is numbered <SAMP>`0'</SAMP> and starts at row 0.
+Each subsequent pass @math{p} starts at row @math{p*S*J}. Each pass
+prints @math{J} lines, each line being @math{S} rows after the previous
+one. (For ease of viewing this file on a standard terminal, I'm
+clipping the examples at column 80.)
+
+</P>
+<P>
+This method covers the whole page with lines printed evenly @math{S}
+rows apart. However, we want to fill in all the other rows with
+printing to get a full-density page (we're ignoring oversampling at this
+stage). Where we have previously printed a single pass, we'll now print
+a "pass block": we print extra passes to fill in the empty rows. A
+naive implementation might look like this:
+
+</P>
+
+<PRE>
+0 *---*---*---*---*---*---*
+1 *---*---*---*---*---*---*
+2 *---*---*---*---*---*---*
+3 *---*---*---*---*---*---*
+4 *---*---*---*---*---*---*
+5 *---*---*---*---*---*---*
+6 *---*---*---*---*---*---*
+7 *---*---*---*---*---*---*
+8 *---*---*---*---*---*-
+9 *---*---*---*---*---*
+10 *---*---*---*---*---
+11 *---*---*---*---*--
+</PRE>
+
+<P>
+(Now you can see why this process is called "weaving"!)
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_28.html">previous</A>, <A HREF="gimpprint_30.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_3.html b/doc/manual-html/gimpprint_3.html
new file mode 100644
index 0000000..e64b2eb
--- /dev/null
+++ b/doc/manual-html/gimpprint_3.html
@@ -0,0 +1,41 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Overview</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_2.html">previous</A>, <A HREF="gimpprint_4.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC6" HREF="gimpprint_toc.html#TOC6">1 Overview</A></H1>
+<P>
+<A NAME="IDX4"></A>
+
+</P>
+<P>
+The GIMP-Print package is a collection of programs and a library for
+high quality printing on modern inkjets, including `photographic
+quality' models which offer very high resolutions and several inks.
+
+</P>
+
+<P>
+META: Short history of the project
+
+</P>
+<P>
+GIMP-Print is the print facility of the <STRONG>GNU Image Manipulation Program</STRONG>
+(GIMP). It is in addition
+a suite of drivers that may be used with common UNIX spooling systems
+using GhostScript or CUPS. These drivers provide printing quality for
+UNIX/Linux on a par with proprietary vendor-supplied drivers in many
+cases, and can be used for many of the most demanding printing tasks.
+The core of GIMP-Print is a shared library (libgimpprint) which may be
+used by any program that wishes to produce high-qulaity printed output.
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_2.html">previous</A>, <A HREF="gimpprint_4.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_30.html b/doc/manual-html/gimpprint_30.html
new file mode 100644
index 0000000..b947f40
--- /dev/null
+++ b/doc/manual-html/gimpprint_30.html
@@ -0,0 +1,246 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Perfect weaving</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_29.html">previous</A>, <A HREF="gimpprint_31.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H3><A NAME="SEC45" HREF="gimpprint_toc.html#TOC45">B.2.2 Perfect weaving</A></H3>
+<P>
+<A NAME="IDX185"></A>
+
+</P>
+<P>
+This simple weave pattern prints every row, but will give conspicuous
+banding patterns for the reasons discussed above.
+
+</P>
+<P>
+Let's start improving this for our simple case. We can reduce banding
+by making sure that any given jet never prints a row too close to
+another row printed by the same jet. This means we want to space the
+rows printed by a given jet evenly down the page. In turn, this
+implies we want to advance the paper by as nearly an equal amount
+after each pass as possible.
+
+</P>
+<P>
+Each pass block prints @math{S*J} lines in @math{S} passes. The first
+line printed in each pass block is @math{S*J} rows lower on the page
+than the first line printed in the previous pass block. Therefore, if
+we advance the paper by @math{J} rows between each pass, we can print
+the right number of passes in each block and advance the paper perfectly
+evenly.
+
+</P>
+<P>
+Here's what this "perfect" weave looks like:
+
+</P>
+
+<PRE>
+ start of full weave
+ |
+0 *---*---*---*---*---*---*
+1 *---*---*---*---*---*---*
+2 *---*---*---*---*---*---*
+3 *---*---*---*---*---*---*
+4 *---*---*---*---*---*---*
+5 *---*---*---*---*---*---*
+6 *---*---*---*---*---*---*
+7 *---*---*---*---*---*---*
+8 *---*---*---*---*---*-
+9 *---*---*---*--
+10 *---*---
+11 *
+</PRE>
+
+<P>
+You'll notice that, for the first few rows, this weave is too sparse.
+It is not until the row marked "start of full weave" that every
+subsequent row is printed. We can calculate this start position as
+follows:
+
+</P>
+
+<PRE>
+@math{start = (S-1) * (J-1)}
+</PRE>
+
+<P>
+For the moment, we will ignore this problem with the weave. We'll
+consider later how to fill in the missing rows.
+
+</P>
+<P>
+Let's look at a few more examples of perfect weaves:
+
+</P>
+
+<P>
+@math{S=2}, @math{J=7}, @math{start=(2-1)*(7-1)=6}:
+
+</P>
+
+<PRE>
+ starting row of full weave
+ |
+0 *-*-*-*-*-*-*
+1 *-*-*-*-*-*-*
+2 *-*-*-*-*-*-*
+3 *-*-*-*-*-*-*
+4 *-*-*-*-*-*-*
+5 *-*-*-*-*-*-*
+6 *-*-*-*-*-*-*
+7 *-*-*-*-*-*-*
+</PRE>
+
+<P>
+@math{S=7}, @math{J=2}, @math{start=6}:
+
+</P>
+
+<PRE>
+ start
+ |
+0 *------*
+1 *------*
+2 *------*
+3 *------*
+4 *------*
+5 *------*
+6 *------*
+7 *------*
+8 *------*
+9 *------*
+</PRE>
+
+<P>
+@math{S=4}, @math{J=13}, @math{start=36}:
+
+</P>
+
+<PRE>
+ start
+ |
+0 *---*---*---*---*---*---*---*---*---*---*---*---*
+1 *---*---*---*---*---*---*---*---*---*---*---*---*
+2 *---*---*---*---*---*---*---*---*---*---*---*---*
+3 *---*---*---*---*---*---*---*---*---*--
+4 *---*---*---*---*---*---*-
+5 *---*---*---*
+</PRE>
+
+<P>
+@math{S=13}, @math{J=4}, @math{start=36}:
+
+</P>
+
+<PRE>
+ start
+ |
+0 *------------*------------*------------*
+1 *------------*------------*------------*
+2 *------------*------------*------------*
+3 *------------*------------*------------*
+4 *------------*------------*------------*
+5 *------------*------------*------------*
+6 *------------*------------*------------*
+7 *------------*------------*------------*
+8 *------------*------------*------------*
+9 *------------*------------*------------*
+10 *------------*------------*-----------
+11 *------------*------------*-------
+12 *------------*------------*---
+13 *------------*------------
+14 *------------*--------
+15 *------------*----
+16 *------------*
+17 *---------
+18 *-----
+19 *-
+</PRE>
+
+<P>
+@math{S=8}, @math{J=5}, @math{start=28}:
+
+</P>
+
+<PRE>
+ start
+ |
+0 *-------*-------*-------*-------*
+1 *-------*-------*-------*-------*
+2 *-------*-------*-------*-------*
+3 *-------*-------*-------*-------*
+4 *-------*-------*-------*-------*
+5 *-------*-------*-------*-------*
+6 *-------*-------*-------*-------*
+7 *-------*-------*-------*-------*
+8 *-------*-------*-------*-------*
+9 *-------*-------*-------*-------*
+10 *-------*-------*-------*---
+11 *-------*-------*------
+12 *-------*-------*-
+13 *-------*----
+14 *-------
+15 *--
+</PRE>
+
+<P>
+@math{S=9}, @math{J=5}, @math{start=32}:
+
+</P>
+
+<PRE>
+ start
+ |
+0 *--------*--------*--------*--------*
+1 *--------*--------*--------*--------*
+2 *--------*--------*--------*--------*
+3 *--------*--------*--------*--------*
+4 *--------*--------*--------*--------*
+5 *--------*--------*--------*--------*
+6 *--------*--------*--------*--------*
+7 *--------*--------*--------*--------*
+8 *--------*--------*--------*--------*
+9 *--------*--------*--------*-----
+10 *--------*--------*--------*
+11 *--------*--------*----
+12 *--------*--------
+13 *--------*---
+14 *-------
+15 *--
+</PRE>
+
+<P>
+@math{S=6}, @math{J=7}, @math{start=30}:
+
+</P>
+
+<PRE>
+ start
+ |
+0 *-----*-----*-----*-----*-----*-----*
+1 *-----*-----*-----*-----*-----*-----*
+2 *-----*-----*-----*-----*-----*-----*
+3 *-----*-----*-----*-----*-----*-----*
+4 *-----*-----*-----*-----*-----*-----*
+5 *-----*-----*-----*-----*-----*-----*
+6 *-----*-----*-----*-----*-----*-----
+7 *-----*-----*-----*-----*----
+8 *-----*-----*-----*---
+9 *-----*-----*--
+10 *-----*-
+11 *
+</PRE>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_29.html">previous</A>, <A HREF="gimpprint_31.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_31.html b/doc/manual-html/gimpprint_31.html
new file mode 100644
index 0000000..c4c1a4b
--- /dev/null
+++ b/doc/manual-html/gimpprint_31.html
@@ -0,0 +1,87 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Weaving collisions</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_30.html">previous</A>, <A HREF="gimpprint_32.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H3><A NAME="SEC46" HREF="gimpprint_toc.html#TOC46">B.2.3 Weaving collisions</A></H3>
+<P>
+<A NAME="IDX186"></A>
+<A NAME="IDX187"></A>
+
+</P>
+<P>
+This perfect weave is not possible in all cases. Let's look at another
+example:
+
+</P>
+<P>
+@math{S=6}, @math{J=4}:
+
+</P>
+
+<PRE>
+0 *-----*-----*-----*
+1 *-----*-----*-----*
+2 *-----*-----*-----*
+3 *-----*-----*-----*
+4 ^ *-^---*-----*-----*
+5 | ^ | *-^---*-----*-----*
+ OUCH! ^ | ^
+ | |
+</PRE>
+
+<P>
+Here we have a collision. Some lines printed in later passes overprint
+lines printed by earlier passes. We can see why by considering which
+row number is printed by a given jet number @math{j} (numbered from 0)
+of a given pass, @math{p}:
+
+</P>
+
+<PRE>
+@math{row(p, j) = p*J + j*S}
+</PRE>
+
+<P>
+Because @math{J=4} and @math{S=6} have a common factor of 2, jet 2 of
+pass 0 prints the same row as jet 0 of pass 3:
+
+</P>
+
+<PRE>
+@math{row(0, 2) = 0*4 + 2*6 = 12}
+@math{row(3, 0) = 3*4 + 0*6 = 12}
+</PRE>
+
+<P>
+In fact, with this particular weave pattern, jets 0 and 1 of pass
+@math{p+3} always overprint jets 2 and 3 of pass @math{p}. We'll
+represent overprinting rows by a <SAMP>`^'</SAMP> in our diagrams, and correct
+rows by <SAMP>`*'</SAMP>:
+
+</P>
+<P>
+@math{S=6} @math{J=4}:
+
+</P>
+
+<PRE>
+0 *-----*-----*-----*
+1 *-----*-----*-----*
+2 *-----*-----*-----*
+3 ^-----^-----*-----*
+4 ^-----^-----*-----*
+5 ^-----^-----*-----*
+</PRE>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_30.html">previous</A>, <A HREF="gimpprint_32.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_32.html b/doc/manual-html/gimpprint_32.html
new file mode 100644
index 0000000..3a118f5
--- /dev/null
+++ b/doc/manual-html/gimpprint_32.html
@@ -0,0 +1,723 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - What is perfect weaving?</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_31.html">previous</A>, <A HREF="gimpprint_33.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H3><A NAME="SEC47" HREF="gimpprint_toc.html#TOC47">B.2.4 What makes a "perfect" weave?</A></H3>
+<P>
+<A NAME="IDX188"></A>
+
+</P>
+<P>
+So what causes the perfect weave cases to be perfect, and the other
+cases not to be? In all the perfect cases above, @math{S} and @math{J}
+are relatively prime (i.e. their greatest common divisor (GCD) is 1).
+As we mentioned above, @math{S=6} and @math{J=4} have a common factor,
+which causes the overprinting. Where @math{S} and @math{J} have a GCD
+of 1, they have no common factor other than 1 and, as a result, no
+overprinting occurs. If @math{S} and @math{J} are not relatively prime,
+their common factor will cause overprinting.
+
+</P>
+<P>
+We can work out the greatest common divisor of a pair of natural numbers
+using Euler's algorithm:
+
+</P>
+
+<UL>
+<LI>Start with the two numbers: (e.g.) 9, 24
+
+<LI>Swap them if necessary so that the larger one comes first: 24, 9
+
+<LI>Subtract the second number from the first: 15, 9
+
+<LI>Repeat until the first number becomes smaller: 6, 9
+
+<LI>Swap the numbers again, so the larger one comes first: 9, 6
+
+<LI>Subtract again: 3, 6
+
+<LI>Swap: 6, 3
+
+<LI>Subtract: 3, 3
+
+<LI>And again: 0, 3
+
+<LI>When one of the numbers becomes 0, the other number is the GCD of the two numbers you started with.
+
+</UL>
+
+<P>
+These repeated subtractions can be done with C's <SAMP>`%'</SAMP> operator, so we
+can write this in C as follows:
+
+</P>
+
+<PRE>
+unsigned int
+gcd(unsigned int x, unsigned int y)
+{
+ if (y == 0)
+ return x;
+ while (x != 0) {
+ if (y &#62; x)
+ swap (&#38;x, &#38;y);
+ x %= y;
+ }
+ return y;
+}
+</PRE>
+
+<P>
+<SAMP>`gcd(S,J)'</SAMP> will feature quite prominently in our weaving algorithm.
+
+</P>
+<P>
+If @math{0 &#60;= j &#60; J}, there should only be a single pair @math{(p, j)}
+for any given row number. If @math{S} and @math{J} are not relatively
+prime, this assumption breaks down. (For conciseness, let
+@math{G=GCD(S,J)}.)
+
+</P>
+<P>
+@math{S=8}, @math{J=6}, @math{G=2}:
+
+</P>
+
+<PRE>
+0 *-------*-------*-------*-------*-------*
+1 *-------*-------*-------*-------*-------*
+2 *-------*-------*-------*-------*-------*
+3 *-------*-------*-------*-------*-------*
+4 ^-------^-------^-------*-------*-------*
+5 ^-------^-------^-------*-------*-------*
+</PRE>
+
+<P>
+In this case, jets 0, 1 and 2 of pass @math{p+4} collide with jets 3, 4
+and 5 of pass @math{p}.
+
+</P>
+<P>
+How can we calculate these numbers? Suppose we were to print using
+fewer jets, say @math{J/G} jets. The greatest common divisor of
+@math{J/G} and @math{S} is 1, enabling a perfect weave. But to get a
+perfect weave, we also have to advance the paper by a factor of @math{G}
+less:
+
+</P>
+
+<PRE>
+0 *-------*-------* - - -
+1 *-------*-------* - - -
+2 *-------*-------* - - -
+3 *-------*-------* - - -
+4 *-------*-------* - - -
+5 *-------*-------* - - -
+</PRE>
+
+<P>
+If we left the paper advance alone, we'd get a sparse weave; only one
+row can be printed every @math{G} rows:
+
+</P>
+
+<PRE>
+0 *-------*-------* - - -
+1 *-------*-------* - - -
+2 *-------*-------* - - -
+3 *-------*-------* - - -
+4 *-------*-------* - - -
+5 *-------*-------* - - -
+ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
+ These rows need filling in.
+</PRE>
+
+<P>
+The rows that would have been printed by the jets we've now omitted
+(shown as <SAMP>`-'</SAMP>) are printed by other jets on later passes.
+
+</P>
+<P>
+Let's analyse this. Consider how a pass @math{p} could collide with
+pass 0. Pass @math{p} starts at offset @math{p*J}. Pass 0 prints at
+rows which are multiples of @math{S}. If @math{p*J} is exactly
+divisible by @math{S}, a collision has occurred, unless @math{p*J &#62;=
+J*S} (which will happen when we finish a pass block).
+
+</P>
+<P>
+So, we want to find @math{p} and @math{q} such that @math{p*J=q*S} and
+@math{p} is minimised. Then @math{p} is the number of rows before a
+collision, and @math{q} is the number of jets in pass 0 which are not
+involved in the collision. To do this, we find the lowest common
+multiple of @math{J} and @math{S}, which is @math{L=J*S/G}. @math{L/J}
+is the number of rows before a collision, and @math{L/S} is the number
+of jets in the first pass not involved in the collision.
+
+</P>
+<P>
+Thus, we see that the first @math{J/G} rows printed by a given pass are
+not overprinted by any later pass. However, the rest of the rows
+printed by pass @math{p} are overprinted by the first
+@math{J-(J/G)} jets of pass @math{p+(S/G)}. We will use @math{C}
+to refer to @math{S/G}, the number of rows after which a collision
+occurs.
+
+</P>
+<P>
+Another example:
+
+</P>
+<P>
+@math{S=6}, @math{J=9}, @math{G=3}, @math{C=S/G=2}:
+
+</P>
+
+<PRE>
+0 *-----*-----*-----*-----*-----*-----*-----*-----*
+1 *-----*-----*-----*-----*-----*-----*-----*-----*
+2 ^-----^-----^-----^-----^-----^-----*-----*-----*
+3 ^-----^-----^-----^-----^-----^-----*-----*-----*
+4 ^-----^-----^-----^-----^-----^-----*-----
+5 ^-----^-----^-----^-----^-----^--
+ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
+ These rows need filling in.
+</PRE>
+
+<P>
+In this case, the first @math{J-(J/G) = 9-9/3 = 6} jets of pass
+@math{p+(6/3)=p+2} collide with the last 6 jets of pass @math{p}. Only
+one row in every @math{G=2} rows is printed by this weave.
+
+</P>
+<P>
+@math{S=9}, @math{J=6}, @math{G=3}, @math{C=3}:
+
+</P>
+
+<PRE>
+0 *--------*--------*--------*--------*--------*
+1 *--------*--------*--------*--------*--------*
+2 *--------*--------*--------*--------*--------*
+3 ^--------^--------^--------^--------*--------*
+4 ^--------^--------^--------^--------*--------*
+5 ^--------^--------^--------^--------*--------*
+</PRE>
+
+<P>
+Here, the first @math{J-(J/G) = 6-6/3 = 4} jets of pass
+@math{p+(9/3)=p+3} collide with the last 4 jets of pass @math{p}.
+
+</P>
+<P>
+Note that, in these overprinting cases, only rows divisible by @math{G}
+are ever printed. The other rows, those not divisible by @math{G}, are
+not touched by this weave.
+
+</P>
+<P>
+We can modify our weave pattern to avoid overprinting any rows and
+simultaneously fill in the missing rows. Instead of using @math{J}
+alone to determine the start of each pass from the previous pass, we
+adjust the starting position of some passes. As mentioned before, we
+will divide the page into pass blocks, with @math{S} passes in each
+block. This ensures that the first jet of the first pass in a block
+prints the row which the @math{J}th jet of the first pass of the
+previous block would have printed, if the print head had one extra jet.
+
+</P>
+<P>
+Looking back at an example of a perfect weave, we can divide it into
+pass blocks:
+
+</P>
+<P>
+@math{S=7}, @math{J=2}, @math{G=1}:
+
+</P>
+
+<PRE>
+ imaginary extra jet
+ |
+0 *------* * &#60;--start of pass block 0
+1 *------* |
+2 *------* |
+3 *------*|
+4 *-----|*
+5 *---|--*
+6 *-|----*
+ |
+7 *------* &#60;--start of pass block 1
+8 *------*
+9 *------*
+</PRE>
+
+<P>
+We can now calculate the start of a given pass by reference to its pass
+block. The first pass of pass block @math{b} always starts at row
+@math{(b*S*J)}. The start row of each of the other passes in the block
+are calculated using offsets from this row.
+
+</P>
+<P>
+For the example above, there are 7 passes in each pass block, and their
+offsets are 0, 2, 4, 6, 8, 10 and 12. The next pass block is offset
+@math{S*J=14} rows from the start of the current pass block.
+
+</P>
+<P>
+The simplest way to modify the "perfect" weave pattern to give a
+correct weave in cases where @math{G!=1} is to simply change any offsets
+which would result in a collision, until the collision disappears.
+Every printed row in the weave, as we have shown it up to now, is
+separated from each of its neighbouring printed rows by @math{G} blank
+rows. We will add an extra offset to each colliding pass in such a way
+that we push the pass onto these otherwise blank rows.
+
+</P>
+<P>
+We have seen that, unless @math{G=1}, the plain weave pattern results in
+each pass colliding with the pass @math{S/G} passes before. We will now
+subdivide our pass block into subblocks, each consisting of @math{B=S/G}
+passes. There are therefore @math{G} subblocks in a pass block.
+
+</P>
+<P>
+For each subblock, the passes in that subblock have a constant offset
+added to them. The offset is different for each subblock in a block.
+There are many ways we can choose the offsets, but the simplest is to
+make the offset equal to the subblock number (starting from 0).
+
+</P>
+<P>
+Thus, the passes in the first subblock in each pass block remain at the
+offsets we've already calculated from @math{J}. The passes in the
+second subblock each have 1 added to their offset, the passes in the
+third subblock have 2 added, and so on. Thus, the offset of pass
+@math{p} (numbered relative to the start of its pass block) is @math{p*J
++ floor(p/B)}.
+
+</P>
+<P>
+This gives us a weave pattern looking like this:
+
+</P>
+<P>
+@math{S=6}, @math{J=9}, @math{G=3}, @math{B=2}:
+
+</P>
+
+<PRE>
+0 *-----*-----*-----*-----*-----*-----*-----*-----*
+1 ^ *-----*-----*-----*-----*-----*-----*-----*-----*
+2 | +-&#62; *-----*-----*-----*-----*-----*-----*-----*-----*
+3 | | *-----*-----*-----*-----*-----*-----*-----*-----*
+4 | | +-&#62; *-----*-----*-----*-----*-----*-----*---
+5 | | | *-----*-----*-----*-----*-----*
+6 | | | +-&#62; *-----*-----*-----*-----
+7 | | | | *-----*-----*--
+ | | | start of pass block 1
+ | | | (offset returns to 0)
+ | | start of subblock 2 (offset 2 rows)
+ | start of subblock 1 (following passes offset by 1 row)
+ start of passblock 0, subblock 0 (pass start calculated as p*J)
+</PRE>
+
+<P>
+@math{S=9}, @math{J=6}, @math{G=3}, @math{B=3}:
+
+</P>
+
+<PRE>
+0 *--------*--------*--------*--------*--------*
+1 *--------*--------*--------*--------*--------*
+2 *--------*--------*--------*--------*--------*
+3 *--------*--------*--------*--------*--------*
+4 *--------*--------*--------*--------*--------*
+5 *--------*--------*--------*--------*--------*
+6 *--------*--------*--------*--------*---
+7 *--------*--------*--------*------
+8 *--------*--------*--------*
+9 *--------*--------*-----
+10 \---/ *--------*--------
+11 small offset *--------*--
+12 *----
+</PRE>
+
+<P>
+This method of choosing offsets for subblocks can result in an occasional
+small offset (as shown above) between one pass and the next, particularly
+when @math{G} is large compared to @math{J}. For example:
+
+</P>
+<P>
+@math{S=8}, @math{J=4}, @math{G=4}, @math{B=2}:
+
+</P>
+
+<PRE>
+0 *-------*-------*-------*
+1 *-------*-------*-------*
+2 *-------*-------*-------*
+3 *-------*-------*-------*
+4 *-------*-------*-------*
+5 *-------*-------*-------*
+6 *-------*-------*-------*
+7 *-------*-------*-------*
+8 *-------*-------*-------*
+9 \/ *-------*-------*-------*
+ very small offset!
+</PRE>
+
+<P>
+We can plot the offset against the subblock number as follows:
+
+</P>
+
+<PRE>
+subblock number
+| offset
+| |
+| 0123
+0 *
+1 *
+2 *
+3 *
+0 *
+1 *
+2 *
+3 *
+</PRE>
+
+<P>
+The discontinuity in this plot results in the small offset between
+passes.
+
+</P>
+<P>
+As we said at the beginning, we want the offsets from each pass to the
+next to be as similar as possible. We can fix this by calculating the
+offset for a given subblock b as follows:
+
+</P>
+
+<PRE>
+ offset(b) = 2*b , if b &#60; ceiling(G/2)
+ = 2*(G-b)-1 , otherwise
+</PRE>
+
+<P>
+We can visualise this as follows, for @math{G=10}:
+
+</P>
+
+<PRE>
+ 0123456789
+0 *
+1 *
+2 *
+3 *
+4 *
+5 *
+6 *
+7 *
+8 *
+9 *
+0 *
+1 *
+2 *
+3 *
+4 *
+5 *
+6 *
+7 *
+8 *
+9 *
+</PRE>
+
+<P>
+and for @math{G=11}:
+
+</P>
+
+<PRE>
+ 1
+ 01234567890
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 4 *
+ 5 *
+ 6 *
+ 7 *
+ 8 *
+ 9 *
+10 *
+ 0 *
+ 1 *
+ 2 *
+ 3 *
+ 4 *
+ 5 *
+ 6 *
+ 7 *
+ 8 *
+ 9 *
+10 *
+</PRE>
+
+<P>
+This gives a weave looking like this:
+
+</P>
+<P>
+@math{S=12}, @math{J=6}, @math{G=6}, @math{B=2}:
+
+</P>
+
+<PRE>
+0 *-----------*-----------*-----------*-----------*-----------*
+1 *-----------*-----------*-----------*-----------*-----------*
+2 *-----------*-----------*-----------*-----------*-----------*
+3 *-----------*-----------*-----------*-----------*---------
+4 *-----------*-----------*-----------*-----------*-
+5 *-----------*-----------*-----------*-------
+6 *-----------*-----------*-----------*
+7 *-----------*-----------*------
+8 *-----------*-----------*--
+9 *-----------*--------
+10 *-----------*----
+11 *----------
+12 *-----
+</PRE>
+
+<P>
+This method ensures that the offset between passes is always in the range
+@math{[J-2,J+2]}.
+
+</P>
+<P>
+(This might seem odd, but it occurs to me that a good weave pattern
+might also make a good score for bell ringers. When church bells are
+rung, a list of "changes" are used. For example, if 8 bells are being
+used, they will, at first, be rung in order: 12345678. If the first
+change is for bells 5 and 6, the bells will then be rung in the order
+12346578. If the second change is 1 and 2, the next notes are 21346578.
+After a long list of changes, the order the bells are rung in can become
+quite complex.
+
+</P>
+<P>
+For a group of bell-ringers to change the order of the notes, they must
+each either delay their bell's next ring, hasten it, or keep it the same
+as the time it takes to ring all the bells once. The length of time
+between each ring of a given bell can only be changed a little each
+time, though; with an ink-jet weave pattern, we want the same to apply
+to the distance between passes.)
+
+</P>
+<P>
+Finally, knowing the number of jets @math{J} and their separation
+@math{S}, we can calculate the starting row of any given pass @math{p}
+as follows:
+
+</P>
+
+<PRE>
+passesperblock = S
+passblock = floor(p / passesperblock)
+offsetinpassblock = p - passblock * passesperblock
+subblocksperblock = gcd(S, J)
+passespersubblock = S / subblocksperblock
+subpassblock = floor(offsetinpassblock / passespersubblock)
+if subpassblock &#60; ceiling(subblocksperblock/2)
+ subblockoffset = 2*subpassblock
+else
+ subblockoffset = 2*(subblocksperblock-subpassblock)-1
+startingrow = passblock * S * J + offsetinpassblock * J + subblockoffset
+</PRE>
+
+<P>
+We can simplify this down to the following:
+
+</P>
+
+<PRE>
+subblocksperblock = gcd(S, J)
+subpassblock = floor((p % S) * subblocksperblock / S)
+if subpassblock * 2 &#60; subblocksperblock
+ subblockoffset = 2*subpassblock
+else
+ subblockoffset = 2*(subblocksperblock-subpassblock)-1
+startingrow = p * J + subblockoffset
+</PRE>
+
+<P>
+So the row number of jet @math{j} of pass @math{p} is
+
+</P>
+
+<PRE>
+subblocksperblock = gcd(S, J)
+
+subblockoffset(p)
+ = 2*subpassblock , if subpassblock * 2 &#60; subblocksperblock
+ = 2*(subblocksperblock-subpassblock)-1 , otherwise
+ where
+ subpassblock = floor((p % S) * subblocksperblock / S)
+
+row(j, p) = p * J + subblockoffset(p) + j * S
+</PRE>
+
+<P>
+Together with the inequality @math{0 &#60;= j &#60; J}, we can use this
+definition in reverse to calculate the pass number containing a given
+row, @math{r}. Working out the inverse definition involves a little
+guesswork, but one possible result is as follows. Given a row,
+@math{r}, which is known to be the first row of a pass, we can calculate
+the pass number as follows:
+
+</P>
+
+<PRE>
+subblocksperblock = gcd(S, J)
+subblockoffset = r % subblocksperblock
+pass = (r - subblockoffset) / J
+</PRE>
+
+<P>
+If @math{G==1}, we can determine the pass number with this algorithm:
+
+</P>
+
+<PRE>
+offset = r % J
+pass = (r - offset) / J
+while (offset % S != 0)
+{
+ pass--
+ offset += J
+}
+jet = offset / S
+</PRE>
+
+<P>
+Generalising, we come up with this algorithm. Given @math{r}, @math{S}
+and @math{J}:
+
+</P>
+
+<PRE>
+G = gcd(S, J)
+passespersubblock = S/G
+subblockoffset = r % G
+subpassblock = subblockoffset / 2 , if subblockoffset % 2 == 0
+ = G - (subblockoffset+1)/2 , otherwise
+baserow = r - subblockoffset - (subpassblock * passespersubblock * J)
+offset = baserow % J
+pass = (baserow - offset) / J
+while (offset % S != 0)
+{
+ offset += J
+ pass -= 1
+}
+subblockretreat = floor(pass / passespersubblock) % G
+pass -= subblockretreat * passespersubblock
+pass += subpassblock * passespersubblock
+jet = (r - subblockoffset - pass * J) / S
+</PRE>
+
+<P>
+Let's look at some examples of imperfect but correct weave patterns:
+
+</P>
+<P>
+@math{S=6}, @math{J=4}, @math{GCD=2},
+<BR>passesperblock=@math{S}=6,
+<BR>passespersubblock=@math{S/G}=6/2=3:
+
+</P>
+
+<PRE>
+0 *-----*-----*-----*
+1 *-----*-----*-----*
+2 *-----*-----*-----*
+3 *-----*-----*-----*
+4 *-----*-----*-----*
+5 *-----*-----*-----*
+6 *-----*-----*-----*
+7 *-----*-----*-----*
+8 *-----*-----*-----*
+9 *-----*-----*-----*
+10 *-----*-----*-----*
+11 *-----*-----*-----*
+12 *-----*-----*-----*
+13 *-----*-----*-----*
+14 *-----*-----*-----*
+15 *-----*-----*----
+16 *-----*-----*
+17 *-----*--
+18 *-----
+19 *-
+</PRE>
+
+<P>
+@math{S=8}, @math{J=6}, @math{G=2},
+<BR>passesperblock=@math{S}=8,
+<BR>passespersubblock=@math{S/G}=8/2=4:
+
+</P>
+
+<PRE>
+0 *-------*-------*-------*-------*-------*
+1 *-------*-------*-------*-------*-------*
+2 *-------*-------*-------*-------*-------*
+3 *-------*-------*-------*-------*-------*
+4 *-------*-------*-------*-------*-------*
+5 *-------*-------*-------*-------*-------*
+6 *-------*-------*-------*-------*-------*
+7 *-------*-------*-------*-------*--
+8 *-------*-------*-------*-----
+9 *-------*-------*-------
+10 *-------*-------*-
+11 *-------*---
+12 *----
+</PRE>
+
+<P>
+@math{S=6}, @math{J=12}, @math{G=6},
+<BR>passesperblock=@math{S}=6,
+<BR>passespersubblock=@math{S/G}=6/6=1:
+
+</P>
+
+<PRE>
+0 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*
+1 *-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*---
+2 *-----*-----*-----*-----*-----*-----*-----*-----*-
+3 *-----*-----*-----*-----*-----*-----*
+4 *-----*-----*-----*-----*--
+5 *-----*-----*----
+6 *-----
+</PRE>
+
+<P>
+We have now solved the basic weaving problem. There are two further
+refinements we need to consider: oversampling, and filling in the
+missing rows at the start of the weave.
+
+</P>
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_31.html">previous</A>, <A HREF="gimpprint_33.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_33.html b/doc/manual-html/gimpprint_33.html
new file mode 100644
index 0000000..edf4627
--- /dev/null
+++ b/doc/manual-html/gimpprint_33.html
@@ -0,0 +1,247 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Oversampling</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_32.html">previous</A>, <A HREF="gimpprint_34.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H3><A NAME="SEC48" HREF="gimpprint_toc.html#TOC48">B.2.5 Oversampling</A></H3>
+<P>
+<A NAME="IDX189"></A>
+
+</P>
+<P>
+By oversampling, we mean printing on the same row more than once.
+There are two reasons for oversampling: to increase the horizontal
+resolution of the printout and to reduce banding.
+
+</P>
+<P>
+Oversampling to increase horizontal resolution is necessary because,
+although the printer might be able to position an ink drop to, for
+example, 1/1440" horizontally, it may not be able to lay down two such
+drops 1/1440" apart. If it can print two drops 1/720" apart, 2x
+oversampling will be necessary to get a 1/1440" horizontal resolution.
+If it can only print two drops 1/360" apart, 4x oversampling will be
+necessary for a 1/1440" horizontal resolution. The printer enforces
+this "drop spacing" by only accepting raster passes with a horizontal
+resolution matching the spacing with which it can print dots, so we
+must print passes at different horizontal positions if we are to
+obtain a higher horizontal resolution. (Another reason it does this
+may be to reduce the amount of memory needed in the printer.)
+
+</P>
+<P>
+Oversampling can also be done to decrease the banding apparent in an
+image. By splitting a row into two or more sets of dots ("lines") and
+printing each line on the same row, but with a different nozzle for
+each line, we can get a smoother print.
+
+</P>
+<P>
+To quantify these two kinds of oversampling, we'll introduce two new
+constants: @math{H} shows how many different horizontal offsets we want
+to print at (the "horizontal oversampling") while @math{O} shows how
+many times we want to print each row, over and above the number of times
+necessary for horizontal oversampling (the "extra oversampling").
+
+</P>
+<P>
+It is necessary for all the lines printed by a given pass to have the
+same horizontal offset, but there need not be any relation between
+them in terms of extra oversampling. For the moment, however, we will
+treat all oversampling as potentially requiring this alignment; all
+lines in one pass must be derived from the original row data in the
+same way. Thus, we'll assume @math{O=1} for now.
+
+</P>
+<P>
+So, how do we do this oversampling? In fact, it can be done easily:
+advance the paper by a factor of @math{H} less between each pass. We'll
+define a new variable, @math{A}, to show how much we advance the paper
+between passes. Previously, we'd have defined @math{A=J}; we now let
+@math{A=J/H}. This also affects our pass blocks. Printing one pass
+block used to involve advancing the paper @math{S*J} rows; it now
+advances the paper @math{S*J/H} rows. We therefore name a group of
+@math{H} pass blocks a "band". Printing one band involves advancing
+the paper @math{S*J} rows, as a pass block did before.
+
+</P>
+<P>
+To keep our weave pattern working correctly, so that overprinting does
+not occur within a pass block, we also have to redefine @math{G} as
+@math{GCD(S,A)}. Here's an example of an oversampled weave pattern:
+
+</P>
+<P>
+@math{S=4}, @math{J=10}, @math{H=2}, @math{A=J/H=10/2=5},
+@math{G=GCD(4,5)=1},
+<BR>passesperblock=@math{S}=4,
+<BR>passespersubblock=@math{S/G}=4/1=4:
+
+</P>
+
+<PRE>
+0 *---*---*---*---*---*---*---*---*---*
+1 *---*---*---*---*---*---*---*---*---*
+2 *---*---*---*---*---*---*---*---*---*
+3 *---*---*---*---*---*---*---*---*---*
+4 *---*---*---*---*---*---*---*---*---*
+5 *---*---*---*---*---*---*---*---*---*
+6 *---*---*---*---*---*---*---*---*---*
+7 *---*---*---*---*---*---*---*---*---*
+8 *---*---*---*---*---*---*---*---*---*
+9 *---*---*---*---*---*---*---*---*
+10 *---*---*---*---*---*---*---
+11 *---*---*---*---*---*--
+12 *---*---*---*---*-
+13 *---*---*---*
+14 *---*---
+15 *--
+</PRE>
+
+<P>
+Now we have to determine which line is printed by each jet on each
+pass. If we number each line generated as we split up a row, we can
+use these numbers. We'll number the lines in our diagram by replacing
+the <SAMP>`*'</SAMP>s with integers in the range [0...@math{H-1}].
+
+</P>
+<P>
+Overprinting occurs once per pass block, so we can simply print pass
+block 0 with line 0, pass block 1 with line 1, pass block 2 with line
+2, etc, wrapping to 0 when we've run out of lines:
+
+</P>
+
+<PRE>
+0 0--0---0--0---0--0---0--0---0--0
+1 0--0---0--0---0--0---0--0---0--0
+2 0--0---0--0---0--0---0--0---0--0
+3 0--0---0--0---0--0---0--0---0--0
+4 1--1---1--1---1--1---1--1---1--1
+5 1--1---1--1---1--1---1--1---1--1
+6 1--1---1--1---1--1---1--1---1--1
+7 1--1---1--1---1--1---1--1---1--1
+8 0--0---0--0---0--0---0--0---0--0
+9 0--0---0--0---0--0---0--0---0
+10 0--0---0--0---0--0---0---
+11 0--0---0--0---0--0--
+12 1--1---1--1---1-
+13 1--1---1--1
+14 1--1---
+15 1--
+</PRE>
+
+<P>
+@math{S=4}, @math{J=12}, @math{H=2}, @math{A=J/H=12/2=6}, @math{G=GCD(4,6)=2},
+<BR>passesperblock=@math{S}=4,
+<BR>passespersubblock=@math{S/G}=4/2=2:
+
+</P>
+
+<PRE>
+0 0--0---0--0---0--0---0--0---0--0---0--0
+1 0--0---0--0---0--0---0--0---0--0---0--0
+2 0--0---0--0---0--0---0--0---0--0---0--0
+3 0--0---0--0---0--0---0--0---0--0---0--0
+4 1--1---1--1---1--1---1--1---1--1---1--1
+5 1--1---1--1---1--1---1--1---1--1---1--1
+6 1--1---1--1---1--1---1--1---1--1---1
+7 1--1---1--1---1--1---1--1---1--
+8 0--0---0--0---0--0---0--0-
+9 0--0---0--0---0--0---
+10 0--0---0--0---0
+11 0--0---0--
+12 1--1-
+</PRE>
+
+<P>
+But what do we do if @math{J} is not an exact multiple of @math{H}?
+This is a difficult problem, which I struggled with for quite a few days
+before giving in and taking the easy (but less elegant) way out. The
+easy solution is to round @math{J/H} down, then add on the accumulated
+error at the end of each band.
+
+</P>
+<P>
+@math{S=4}, @math{J=11}, @math{H=2} @math{A=floor(J/H)=floor(11/2)=5}, @math{G=GCD(4,5)},
+<BR>passesperblock=@math{S}=4,
+<BR>passespersubblock=@math{S/G}=4/1=4
+
+</P>
+
+<PRE>
+Band 0:
+0 0--0---0--0---0--0---0--0---0--0---0
+1 0--0---0--0---0--0---0--0---0--0---0
+2 0--0---0--0---0--0---0--0---0--0---0
+3 0--0---0--0---0--0---0--0---0--0---0
+4 1--1---1--1---1--1---1--1---1--1---1
+5 1--1---1--1---1--1---1--1---1--1---1
+6 1--1---1--1---1--1---1--1---1--1---1
+7 1--1---1--1---1--1---1--1---1--1---
+
+Band 1:
+8 | 0--0---0--0---0--0---0--0---0-
+9 \-----------------------------------------/ 0--0---0--0---0--0---0--0
+10 S*J rows 0--0---0--0---0--0---
+11 0--0---0--0---0--
+12 1--1---1--1-
+13 1--1---1
+14 1---
+</PRE>
+
+<P>
+We can calculate the starting row and subpass number of a given pass
+in this scheme as follows:
+
+</P>
+
+<PRE>
+A = floor(J / H)
+subblocksperblock = gcd(S, A)
+subpassblock = floor((p % S) * subblocksperblock / S)
+if subpassblock * 2 &#60; subblocksperblock
+ subblockoffset = 2*subpassblock
+else
+ subblockoffset = 2*(subblocksperblock-subpassblock)-1
+band = floor(P / (S * H))
+passinband = P % (S * H)
+startingrow = band * S * J + passinband * A + subblockoffset
+subpass = passinband / S
+</PRE>
+
+<P>
+So the row number of jet @math{j} of pass @math{p} is
+
+</P>
+
+<PRE>
+A = floor(J / H)
+subblocksperblock = gcd(S, A)
+
+subblockoffset(p)
+ = 2*subpassblock , if subpassblock * 2 &#60; subblocksperblock
+ = 2*(subblocksperblock-subpassblock)-1 , otherwise
+ where
+ subpassblock = floor((p % S) * subblocksperblock / S)
+
+band(p) = floor(p / (S * H))
+passinband(p) = p % (S * H)
+
+row(j, p) = band(p) * S * J + passinband(p) * A + subblockoffset(p) + j * S
+row(j, p) = p * J + subblockoffset(p) + j * S
+</PRE>
+
+<P>
+To be continued@enddots{}
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_32.html">previous</A>, <A HREF="gimpprint_34.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_34.html b/doc/manual-html/gimpprint_34.html
new file mode 100644
index 0000000..95372ef
--- /dev/null
+++ b/doc/manual-html/gimpprint_34.html
@@ -0,0 +1,29 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - ESC/P2</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_33.html">previous</A>, <A HREF="gimpprint_35.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC49" HREF="gimpprint_toc.html#TOC49">C ESC/P2</A></H1>
+<P>
+<A NAME="IDX190"></A>
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_35.html#SEC50">ESC/P2 Introduction</A>: What is ESC/P2
+<LI><A HREF="gimpprint_36.html#SEC51">ESC/P2 Standard Commands</A>: Normal ESC/P2 commands
+<LI><A HREF="gimpprint_37.html#SEC52">ESC/P2 Remote Mode Commands</A>: Exotic ESC/P2 commands
+<LI><A HREF="gimpprint_38.html#SEC53">ESC/P2 Appropriate Remote Commands</A>: Useful remote command sequences
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_33.html">previous</A>, <A HREF="gimpprint_35.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_35.html b/doc/manual-html/gimpprint_35.html
new file mode 100644
index 0000000..38adfb3
--- /dev/null
+++ b/doc/manual-html/gimpprint_35.html
@@ -0,0 +1,52 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - ESC/P2 Introduction</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_34.html">previous</A>, <A HREF="gimpprint_36.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC50" HREF="gimpprint_toc.html#TOC50">C.1 Introduction to ESC/P2</A></H2>
+<P>
+<A NAME="IDX191"></A>
+
+</P>
+<P>
+This is a description of the ESC/P2 raster commands used by the
+gimp-print plugin and Ghostscript driver, which is a subset of the
+complete command set. The full documents are found on
+@url{http://www.ercipd.com/isv/edr_docs.htm}. Note that these are
+<STRONG>not</STRONG> always correct, and are certainly not complete.
+
+</P>
+<P>
+All ESCP/2 raster commands begin with the <SAMP>`ESC'</SAMP> character (1b hex),
+followed by either one or two command characters and arguments where
+applicable. Older commands generally have one command character. Newer
+commands usually have a <SAMP>`('</SAMP> (left parenthesis) followed by a
+command character and a byte count for the arguments that follow. The
+byte count is a 16-bit (2 byte) binary integer, in little endian order.
+
+</P>
+<P>
+All arguments listed here are of the form <SAMP>`name[bytes]'</SAMP> where
+<SAMP>`[bytes]'</SAMP> is the number of bytes that comprise the argument. The
+arguments themselves are usually one, two, or four byte integers, always
+little endian (the least significant bits come first). Presumably this
+is to match Intel processors.
+
+</P>
+<P>
+In some cases, the same command sequence identifies different versions
+of the same command, depending upon the number of bytes of arguments.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_34.html">previous</A>, <A HREF="gimpprint_36.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_36.html b/doc/manual-html/gimpprint_36.html
new file mode 100644
index 0000000..d7e1677
--- /dev/null
+++ b/doc/manual-html/gimpprint_36.html
@@ -0,0 +1,560 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - ESC/P2 Standard Commands</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_35.html">previous</A>, <A HREF="gimpprint_37.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC51" HREF="gimpprint_toc.html#TOC51">C.2 Standard commands</A></H2>
+
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC @</CODE></B>
+<DD><A NAME="IDX192"></A>
+Reset the printer. Discards any output, ejects the existing page,
+returns all settings to their default. Always use this before printing
+a page.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (G <VAR>BC</VAR>=1 <VAR>ON1</VAR></CODE></B>
+<DD><A NAME="IDX193"></A>
+Turn on graphics mode. <VAR>ON</VAR> should be <SAMP>`1'</SAMP> (turn on graphics
+mode).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (U <VAR>BC</VAR>=1 <VAR>UNIT1</VAR></CODE></B>
+<DD><A NAME="IDX194"></A>
+Set basic unit of measurement used by printer. This is expressed in
+multiples of 1/3600". At 720 DPI, <VAR>UNIT</VAR> is <SAMP>`5'</SAMP>; at 360 DPI,
+<VAR>UNIT</VAR> is <SAMP>`10'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (U <VAR>BC</VAR>=5 <VAR>PAGEUNITS1</VAR> <VAR>VUNIT1</VAR> <VAR>HUNIT1</VAR> <VAR>BASEUNIT2</VAR></CODE></B>
+<DD><A NAME="IDX195"></A>
+Set basic units of measurement used by the printer. <VAR>PAGEUNIT</VAR> is
+the unit of page measurement (for commands that set page dimensions and
+the like). <VAR>VUNIT</VAR> is the unit of vertical measurement (for
+vertical movement commands). <VAR>HUNIT</VAR> is the unit of horizontal
+movement (for horizontal positioning commands). All of these units are
+expressed in <VAR>BASEUNIT</VAR>, which is in reciprocal inches. Typically,
+<VAR>BASEUNIT</VAR> is <SAMP>`1440'</SAMP>. In 720 DPI mode, <VAR>PAGEUNIT</VAR>,
+<VAR>VUNIT</VAR>, and <VAR>HUNIT</VAR> are all <SAMP>`2'</SAMP>; in 1440x720 DPI mode,
+<VAR>PAGEUNIT</VAR> and <VAR>VUNIT</VAR> are normally set to <SAMP>`2'</SAMP>; <VAR>HUNIT</VAR>
+is set to <SAMP>`1'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (K <VAR>BC</VAR>=2 <VAR>ZERO1</VAR> <VAR>GRAYMODE1</VAR></CODE></B>
+<DD><A NAME="IDX196"></A>
+Set color or grayscale mode, on printers supporting an explicit
+grayscale mode. These printers can be identified because they are
+advertised as having more black nozzles than nozzles of individual
+colors. Setting grayscale mode allows use of these extra nozzles for
+faster printing. <VAR>GRAYMODE</VAR> should be <SAMP>`0'</SAMP> or <SAMP>`2'</SAMP> for
+color, <SAMP>`1'</SAMP> for grayscale. <VAR>ZERO</VAR> should always be <SAMP>`0'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (i <VAR>BC</VAR>=1 <VAR>MICROWEAVE1</VAR></CODE></B>
+<DD><A NAME="IDX197"></A>
+If <VAR>MICROWEAVE</VAR> is <SAMP>`1'</SAMP>, use microweave mode. On older
+printers, this is used to turn on microweave; on newer printers, it
+prints one row at a time. All printers support this mode. It should
+only be used at 720 (or 1440x720) DPI. The Epson Stylus Pro series
+indicates additional modes:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`2'</SAMP>
+<DD>
+"Full-overlap"
+<DT><SAMP>`3'</SAMP>
+<DD>
+"Four-pass"
+<DT><SAMP>`4'</SAMP>
+<DD>
+"Full-overlap 2"
+</DL>
+
+<P>
+Any of these commands can be used with the high four bits set to either
+<SAMP>`3'</SAMP> or <SAMP>`0'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC U <VAR>DIRECTION1</VAR></CODE></B>
+<DD><A NAME="IDX198"></A>
+If <VAR>DIRECTION</VAR> is <SAMP>`1'</SAMP>, print unidirectionally; if <SAMP>`0'</SAMP>,
+print bidirectionally.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (s <VAR>BC</VAR>=1 <VAR>SPEED1</VAR></CODE></B>
+<DD><A NAME="IDX199"></A>
+On some older printers, this controls the print head speed. <VAR>SPEED</VAR>
+of <SAMP>`2'</SAMP> is 10 inches/sec; SPEED of <SAMP>`0'</SAMP> or 1 is 20.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (e <VAR>BC</VAR>=2 <VAR>ZERO1</VAR> <VAR>DOTSIZE1</VAR></CODE></B>
+<DD><A NAME="IDX200"></A>
+Choose print dotsize. <VAR>DOTSIZE</VAR> can take on various values,
+depending upon the printer. Almost all printers support <SAMP>`0'</SAMP> and
+<SAMP>`2'</SAMP>. Variable dot size printers allow a value of <VAR>16</VAR>. Other
+than the value of <VAR>16</VAR>, this appears to be ignored at resolutions of
+720 DPI and above.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (C <VAR>BC</VAR>=2 <VAR>PAGELENGTH2</VAR></CODE></B>
+<DD><A NAME="IDX201"></A>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (C <VAR>BC</VAR>=4 <VAR>PAGELENGTH4</VAR></CODE></B>
+<DD><A NAME="IDX202"></A>
+Set the length of the page in "pageunits" (see <SAMP>`ESC (U'</SAMP> above).
+The second form of the command allows setting of longer page lengths on
+new printers (these happen to be the printers that support variable dot
+size).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (c <VAR>BC</VAR>=4 <VAR>TOP2</VAR> <VAR>LENGTH2</VAR></CODE></B>
+<DD><A NAME="IDX203"></A>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (c <VAR>BC</VAR>=8 <VAR>TOP4</VAR> <VAR>LENGTH4</VAR></CODE></B>
+<DD><A NAME="IDX204"></A>
+Set the vertical page margins of the page in "pageunits" (see <SAMP>`ESC
+(U'</SAMP> above). The margins are specified as the top of the page and the
+length of the page. The second form of the command allows setting of
+longer page lengths on new printers (these happen to be the printers
+that support variable dot size).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (S <VAR>BC</VAR>=8 <VAR>WIDTH4</VAR> <VAR>LENGTH4</VAR></CODE></B>
+<DD><A NAME="IDX205"></A>
+Set the width and length of the printed page region in "pageunits" (see
+<SAMP>`ESC (U'</SAMP> above).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (v <VAR>BC</VAR>=2 <VAR>ADVANCE2</VAR></CODE></B>
+<DD><A NAME="IDX206"></A>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (v <VAR>BC</VAR>=4 <VAR>ADVANCE4</VAR></CODE></B>
+<DD><A NAME="IDX207"></A>
+Feed vertically <VAR>ADVANCE</VAR> "vertical units" (see <SAMP>`ESC (U'</SAMP> above)
+from the current print head position.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (V <VAR>BC</VAR>=2 <VAR>ADVANCE2</VAR></CODE></B>
+<DD><A NAME="IDX208"></A>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (V <VAR>BC</VAR>=4 <VAR>ADVANCE4</VAR></CODE></B>
+<DD><A NAME="IDX209"></A>
+Feed vertically <VAR>ADVANCE</VAR> "vertical units" (see <SAMP>`ESC (U'</SAMP> above)
+from the top margin.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC ($ <VAR>BC</VAR>=4 <VAR>OFFSET4</VAR></CODE></B>
+<DD><A NAME="IDX210"></A>
+Set horizontal position to <VAR>OFFSET</VAR> from the left margin. This
+command operates on printers of the 740 class and newer (all printers
+with variable dot size).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC $ <VAR>OFFSET2</VAR></CODE></B>
+<DD><A NAME="IDX211"></A>
+Set horizontal position to <VAR>OFFSET</VAR> from the left margin. This
+command operates on printers of the 740 class and newer (all printers
+with variable dot size).
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (\ <VAR>BC</VAR>=4 <VAR>UNITS2</VAR> <VAR>OFFSET2</VAR></CODE></B>
+<DD><A NAME="IDX212"></A>
+Set horizontal position to <VAR>OFFSET</VAR> from the previous print head
+position, measured in <VAR>UNITS</VAR>. <VAR>UNITS</VAR> is measured in inverse
+inches, and should be set to 1440 in all cases. This operates on all
+1440 dpi printers that do not support variable dot size.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (/ <VAR>BC</VAR>=4 <VAR>OFFSET4</VAR></CODE></B>
+<DD><A NAME="IDX213"></A>
+Set horizontal position to <VAR>OFFSET</VAR> from the previous print head
+position, measured in "horizontal units" (see <SAMP>`ESC (U'</SAMP> above).
+This operates on all variable dot size printers.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC \ <VAR>OFFSET2</VAR></CODE></B>
+<DD><A NAME="IDX214"></A>
+Set horizontal position to <VAR>OFFSET</VAR> from the previous print head
+position, measured in basic unit of measurement (see <SAMP>`ESC (U'</SAMP>
+above). This is used on all 720 dpi printers, and can also be used on
+1440 dpi printers in lower resolutions to save a few bytes. Note that
+<VAR>OFFSET</VAR> may be negative. The range of values for this command is
+between <SAMP>`-16384'</SAMP> and <SAMP>`16383'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC r <VAR>COLOR1</VAR></CODE></B>
+<DD><A NAME="IDX215"></A>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (r <VAR>BC</VAR>=2 <VAR>DENSITY1</VAR> <VAR>COLOR1</VAR></CODE></B>
+<DD><A NAME="IDX216"></A>
+Set the ink color. The first form is used on four-color printers; the
+second on six-color printers. <VAR>DENSITY</VAR> is <SAMP>`0'</SAMP> for dark inks,
+<SAMP>`1'</SAMP> for light. <VAR>COLOR</VAR> is
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`0'</SAMP>
+<DD>
+black
+<DT><SAMP>`1'</SAMP>
+<DD>
+magenta
+<DT><SAMP>`2'</SAMP>
+<DD>
+cyan
+<DT><SAMP>`4'</SAMP>
+<DD>
+yellow
+</DL>
+
+<P>
+This command is not used on variable dot size printers in softweave
+mode.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC . <VAR>COMPRESS1</VAR> <VAR>VSEP1</VAR> <VAR>HSEP1</VAR> <VAR>LINES1</VAR> <VAR>WIDTH2</VAR> <VAR>data...</VAR></CODE></B>
+<DD><A NAME="IDX217"></A>
+ Print data. <VAR>COMPRESS</VAR> signifies the compression mode:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`0'</SAMP>
+<DD>
+no compression
+<DT><SAMP>`1'</SAMP>
+<DD>
+TIFF compression (incorrectly documented as "run length encoded")
+<DT><SAMP>`2'</SAMP>
+<DD>
+TIFF compression with a special command set.
+</DL>
+
+<P>
+<VAR>VSEP</VAR> depends upon resolution and printer type. At 360 DPI, it is
+always <SAMP>`10'</SAMP>. At 720 DPI, it is normally <SAMP>`5'</SAMP>5. On the ESC
+600, it is <SAMP>`40'</SAMP> (@math{8 * 5}). On some other printers, it varies.
+
+</P>
+<P>
+<VAR>HSEP1</VAR> is <SAMP>`10'</SAMP> at 360 DPI and <SAMP>`5'</SAMP> at 720 or 1440 DPI
+(1440 DPI cannot be printed in one pass; it is printed in two passes,
+with the dots separated in each pass by 1/720").
+
+</P>
+<P>
+<VAR>LINES</VAR> is the number of lines to be printed. It should be <SAMP>`1'</SAMP>
+in microweave and 360 DPI. At 720 DPI softweave, it should be the
+number of lines to be actually printed.
+
+</P>
+<P>
+<VAR>WIDTH</VAR> is the number of pixels to be printed in each row.
+Following this command, a carriage return (<SAMP>`13'</SAMP> decimal, <SAMP>`0A'</SAMP>
+hex) should be output to return the print head position to the left
+margin.
+
+</P>
+<P>
+The basic data format is a string of bytes, with data from left to right
+on the page. Within each byte, the highest bit is first.
+
+</P>
+<P>
+The TIFF compression is implemented as one count byte followed by one or
+more data bytes. There are two cases:
+
+</P>
+
+<OL>
+<LI>
+
+If the count byte is <SAMP>`128'</SAMP> or less, it is followed by @math{[count]
++ 1} data bytes. So if the count byte is <SAMP>`0'</SAMP>, it is followed by 1
+data byte; if it is <SAMP>`128'</SAMP>, it is followed by 129 data bytes.
+
+<LI>
+
+If the count byte is greater than 128, it is followed by one byte. This
+byte is repeated (257 - [count]) times. So if [count] is 129, the next
+byte is treated as though it were repeated 128 times; if [count] is 255,
+it is treated as though it were repeated twice.
+</OL>
+
+</DL>
+
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC i <VAR>COLOR1</VAR> <VAR>COMPRESS1</VAR> <VAR>BITS1</VAR> <VAR>BYTES2</VAR> <VAR>LINES2</VAR> <VAR>data...</VAR></CODE></B>
+<DD><A NAME="IDX218"></A>
+Print data in the newer printers (that support variable dot size), and
+Stylus Pro models.
+
+</P>
+<P>
+<VAR>COLOR</VAR> is the color:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`0'</SAMP>
+<DD>
+black
+<DT><SAMP>`1'</SAMP>
+<DD>
+magenta
+<DT><SAMP>`2'</SAMP>
+<DD>
+cyan
+<DT><SAMP>`4'</SAMP>
+<DD>
+yellow
+<DT><SAMP>`17'</SAMP>
+<DD>
+light magenta
+<DT><SAMP>`18'</SAMP>
+<DD>
+light cyan
+</DL>
+
+<P>
+<VAR>COMPRESS</VAR> signifies the
+compression mode:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`0'</SAMP>
+<DD>
+no compression
+<DT><SAMP>`1'</SAMP>
+<DD>
+TIFF compression (incorrectly documented as "run length encoded")
+<DT><SAMP>`2'</SAMP>
+<DD>
+TIFF compression with a special command set.
+</DL>
+
+<P>
+<VAR>BITS</VAR> is the number of bits per pixel.
+
+</P>
+<P>
+<VAR>BYTES</VAR> is the number of bytes wide for each row (@math{ceiling(BITS
+* width_of_row, 8)}). Note that this is different from the <SAMP>`ESC .'</SAMP>
+command above.
+
+</P>
+<P>
+<VAR>LINES</VAR> is the number of lines to be printed. This command is the
+only way to get variable dot size printing. In variable dot mode, the
+size of the dots increases as the value (<SAMP>`1'</SAMP>, <SAMP>`2'</SAMP>, or
+<SAMP>`3'</SAMP>) increases.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (D <VAR>BC</VAR>=4 <VAR>BASE2</VAR> <VAR>VERTICAL1</VAR> <VAR>HORIZONTAL1</VAR></CODE></B>
+<DD><A NAME="IDX219"></A>
+Set printer horizontal and vertical spacing. It only applies to
+variable dot size printers in softweave mode (and possibly other high
+end printers).
+
+</P>
+<P>
+<VAR>BASE</VAR> is the base unit for this command; it must be <SAMP>`14400'</SAMP>.
+
+</P>
+<P>
+<VAR>VERTICAL</VAR> is the distance in these units between printed rows; it
+should be (@math{separation_in_nozzles * BASE / 720}).
+
+</P>
+<P>
+<VAR>HORIZONTAL</VAR> is the horizontal separation between dots in a row.
+Depending upon the printer, this should be either (@math{14400 / 720})
+or (@math{14400 / 360}). The Stylus Pro 9000 manual suggests that the
+settings should match the chosen resolution, but that is apparently not
+the case (or not always the case) on other printers.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC (R <VAR>BC</VAR>=8 00 R E M O T E 1</CODE></B>
+<DD><A NAME="IDX220"></A>
+Enters "remote mode". This is a special, undocumented command set that
+is used to set up various printer options, such as paper feed tray, and
+perform utility functions such as head cleaning and alignment. It does
+not appear that anything here is actually required to make the printer
+print. Our best understanding of what is in a remote command sequence
+is described in a separate section below.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 command:</U> <B><CODE>ESC 01 @EJL [sp] ID\r\n</CODE></B>
+<DD><A NAME="IDX221"></A>
+Return the printer ID. This is considered a remote mode command,
+although the syntax is that of a conventional command. This returns the
+following information:
+
+</P>
+
+<PRE>
+@EJL ID\r
+MFG:EPSON;
+CMD:ESCPL2,BDC;
+MDL:[printer model];
+CLS:PRINTER;
+DES:EPSON [printer model];
+\f
+</PRE>
+
+</DL>
+
+<P>
+After all data has been sent, a form feed byte should be sent.
+
+</P>
+<P>
+All newer Epson printers (STC 440, STP 750) require the following
+command to be sent at least once to enable printing at all. This
+command specifically takes the printer out of the Epson packet mode
+communication protocol (whatever that is) and enables normal data
+transfer. Sending it multiple times is is not harmful, so it is
+normally sent at the beginning of each job:
+
+</P>
+
+<PRE>
+ESC 01@EJL[space]1284.4[newline]@EJL[space][space][space][space]
+[space][newline]ESC@
+</PRE>
+
+<P>
+The proper sequence of initialization commands is:
+
+</P>
+
+<PRE>
+magic command
+ESC
+remote mode if needed
+ESC (G
+ESC (U
+ESC (K (if appropriate)
+ESC (i
+ESC U (if needed)
+ESC (s (if appropriate)
+ESC (e
+ESC (C
+ESC (c
+ESC (S
+ESC (D (if needed)
+ESC (V (optional -- this can be accomplished with ESC (v)
+</PRE>
+
+<P>
+For printing, the proper sequence is:
+
+</P>
+
+<PRE>
+ESC (v
+</PRE>
+
+<P>
+and repeat for each color:
+
+</P>
+
+<PRE>
+ESC ($ or ESC (\ or ESC \
+ESC (r or ESC r (if needed--not used with <SAMP>`ESC i'</SAMP> and not needed if the color
+has not changed from the previous printed line)
+ESC . or ESC i ...data... [return] (0A hex)
+</PRE>
+
+<P>
+To terminate a page:
+
+</P>
+
+<PRE>
+[formfeed] (0C hex)
+ESC @
+</PRE>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_35.html">previous</A>, <A HREF="gimpprint_37.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_37.html b/doc/manual-html/gimpprint_37.html
new file mode 100644
index 0000000..d2cbd44
--- /dev/null
+++ b/doc/manual-html/gimpprint_37.html
@@ -0,0 +1,663 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - ESC/P2 Remote Mode Commands</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_36.html">previous</A>, <A HREF="gimpprint_38.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC52" HREF="gimpprint_toc.html#TOC52">C.3 Remote Mode Commands</A></H2>
+
+<P>
+The following description of remote commands comes out of an
+examination of the sequences used by the printer utilities bundled
+with the Windows drivers for the ESC740, and from other sources (some
+Epson manuals, experimentation, analysis of print files). It is
+largely speculative as these commands are not all documented in the
+Epson documentation we have access to. Generally, newer manuals
+provide more thorough documentation.
+
+</P>
+<P>
+Remote command mode is entered when the printer is sent the following
+sequence:
+
+</P>
+
+<PRE>
+ESC (R BC=8 00 R E M O T E 1
+</PRE>
+
+<P>
+Remote mode commands are then sent, and terminated with the following
+sequence:
+
+</P>
+
+<PRE>
+ESC 00 00 00
+</PRE>
+
+<P>
+All remote mode commands must be sent before the initial <SAMP>`ESC (G'</SAMP>
+command is sent.
+
+</P>
+<P>
+This introductory sequence is then followed by a sequence of commands.
+Each command is constructed as follows:
+
+</P>
+
+<UL>
+<LI>Two ASCII bytes indicating the function
+
+<LI>A byte count (two bytes, little-endian) for the parameters
+
+<LI>Binary parameters, if any
+
+</UL>
+
+<P>
+This is a list of all remote commands we have seen:
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>NC <VAR>BC</VAR>=2 00 00</CODE></B>
+<DD><A NAME="IDX222"></A>
+Print a nozzle check pattern
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>VI <VAR>BC</VAR>=2 00 00</CODE></B>
+<DD><A NAME="IDX223"></A>
+on my 740, prints the following:
+
+</P>
+
+<PRE>
+W01286 I02382\r\n
+</PRE>
+
+<P>
+probably "version information"
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* AI <VAR>BC</VAR>=3 00 00 00</CODE></B>
+<DD><A NAME="IDX224"></A>
+Prints a "printer ID". On one 870, prints the following:
+
+<PRE>
+51-51-50-51-49-48\r\n
+</PRE>
+
+<P>
+The Windows driver has a text entry field where this number can be
+entered, but its purpose is unknown.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* LD <VAR>BC</VAR>=0</CODE></B>
+<DD><A NAME="IDX225"></A>
+Load printer defaults from NVRAM, DIP switches, and/or ROM. This
+apparently does not load factory defaults per se, but any settings that
+are saved. This is commonly used right at the end of each print job
+after the <SAMP>`ESC @'</SAMP> printer reset command.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* CH <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX226"></A>
+Perform a head cleaning cycle. The heads to clean are determined by
+parameter <VAR>xx</VAR>:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`00'</SAMP>
+<DD>
+clean all heads
+<DT><SAMP>`01'</SAMP>
+<DD>
+clean black head
+<DT><SAMP>`02'</SAMP>
+<DD>
+clean color heads
+</DL>
+
+<P>
+While <VAR>xx</VAR> = <SAMP>`00'</SAMP> is probably supported by all printers, <VAR>xx</VAR> =
+<SAMP>`01'</SAMP> and <SAMP>`02'</SAMP> may well not be.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* DT <VAR>BC</VAR>=3 00 <VAR>xx</VAR> 00</CODE></B>
+<DD><A NAME="IDX227"></A>
+Print an alignment pattern. There are three patterns, which are picked
+via the choice of <VAR>xx</VAR>. Pattern <SAMP>`0'</SAMP> is coarse, pattern
+<SAMP>`1'</SAMP> is medium, and pattern <SAMP>`2'</SAMP> is fine.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* DU <VAR>BC</VAR>=6 00 <VAR>xx</VAR> 00 09 00 <VAR>yy</VAR></CODE></B>
+<DD><A NAME="IDX228"></A>
+Print another alignment pattern. It isn't entirely clear what <VAR>xx</VAR>
+and <VAR>yy</VAR> are, but it appears that <VAR>xx</VAR> takes on the values
+<SAMP>`1'</SAMP> and <SAMP>`2'</SAMP> , and <VAR>yy</VAR> takes on the values <SAMP>`0'</SAMP> and
+<VAR>1</VAR>. This may only work on the 580 and/or 480.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* DA <VAR>BC</VAR>=4 00 <VAR>xx</VAR> 00 <VAR>yy</VAR></CODE></B>
+<DD><A NAME="IDX229"></A>
+Set results for the first alignment pattern. <VAR>xx</VAR> is the pattern
+(<SAMP>`1'</SAMP>--<SAMP>`3'</SAMP>); <VAR>yy</VAR> is the best choice from the set
+(<SAMP>`1'</SAMP>--<SAMP>`7'</SAMP> or <SAMP>`1'</SAMP>--<SAMP>`15'</SAMP>). This does not save to
+NVRAM, so when the printer is powered off, the setting will be lost.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* DA <VAR>BC</VAR>=6 00 <VAR>xx</VAR> 00 <VAR>yy</VAR> 09 00</CODE></B>
+<DD><A NAME="IDX230"></A>
+Set results for alternate alignment pattern. <VAR>xx</VAR> appears to be the
+pass, and <VAR>yy</VAR> appears to be the optimum pattern. This does not
+save to NVRAM, so when the printer is powered off, the setting will be
+lost.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* SV <VAR>BC</VAR>=0</CODE></B>
+<DD><A NAME="IDX231"></A>
+Save the current settings to NVRAM.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* RS <VAR>BC</VAR>=1 01</CODE></B>
+<DD><A NAME="IDX232"></A>
+Reset the printer.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* IQ <VAR>BC</VAR>=1 01</CODE></B>
+<DD><A NAME="IDX233"></A>
+Get ink quantity. This requires direct access to the printer port. The
+return looks like
+
+</P>
+
+<PRE>
+IQ:KKCCMMYY
+</PRE>
+
+<P>
+or
+
+</P>
+
+<PRE>
+IQ:KKCCMMYYccmm
+</PRE>
+
+<P>
+(for 4-color and 6-color printers respectively), where each pair of
+digits are hexadecimal representations of percent.
+</DL>
+
+</P>
+<P>
+The following two commands have been observed on an STP 870.
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* IR <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX234"></A>
+<STRONG>Function unknown</STRONG>. This command has been observed on an STP 870
+with <VAR>xx</VAR>=<SAMP>`03'</SAMP> at the start of a job and <VAR>xx</VAR>=<SAMP>`02'</SAMP> at
+the end of a job (where it is followed by an <SAMP>`LD'</SAMP> command). When
+in roll mode, the values change to <VAR>xx</VAR>=<SAMP>`01'</SAMP> at the start of a
+job and <VAR>xx</VAR>=<SAMP>`00'</SAMP> at the end of a job.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* FP <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></B>
+<DD><A NAME="IDX235"></A>
+<VAR>xx</VAR>=<SAMP>`00'</SAMP> and <VAR>yy</VAR>=<SAMP>`00'</SAMP> selects the printer's normal
+left margin (about 3mm). <VAR>xx</VAR>=<SAMP>`0xb0'</SAMP> and <VAR>yy</VAR>=<SAMP>`0xff'</SAMP>
+selects zero-margin mode, where the left-most print position is shifted
+to a point about 0.1" to the left of the left-hand edge of the paper,
+allowing printing up to (and off) the left-hand edge of the paper.
+</DL>
+
+</P>
+<P>
+The commands below are partially documented in the Stylus Pro 9000
+manual. Much of this information is interpreted; none is tested.
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* SN <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></B>
+<DD><A NAME="IDX236"></A>
+Select Mechanism Sequence. <VAR>xx</VAR> controls which sub-operation is
+performed. <VAR>xx</VAR>=<SAMP>`00'</SAMP> selects the "Feed paper sequence
+setting". <VAR>yy</VAR> can take on the following values (on the STP 870,
+at any rate):
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`0'</SAMP>
+<DD>
+default
+<DT><SAMP>`1'</SAMP>
+<DD>
+plain paper
+<DT><SAMP>`2'</SAMP>
+<DD>
+postcards
+<DT><SAMP>`3'</SAMP>
+<DD>
+film (photo quality glossy film, transparencies)
+<DT><SAMP>`4'</SAMP>
+<DD>
+envelopes
+<DT><SAMP>`5'</SAMP>
+<DD>
+plain paper (fast load)
+<DT><SAMP>`6'</SAMP>
+<DD>
+back light film (although this has been observed with heavyweight matte
+paper)
+<DT><SAMP>`7'</SAMP>
+<DD>
+matte paper (observed with 360 dpi inkjet paper, and photo quality
+inkjet paper)
+<DT><SAMP>`8'</SAMP>
+<DD>
+photo paper
+</DL>
+
+<P>
+Experimentation suggests that this setting changes details of how the
+printers' cut sheet feeder works, presumably to tune it for different
+types of paper.
+
+</P>
+<P>
+<VAR>xx</VAR>=<SAMP>`01'</SAMP> controls the platen gap setting; <VAR>yy</VAR>=<SAMP>`00'</SAMP>
+is the default, <VAR>yy</VAR>=<SAMP>`1'</SAMP> or <SAMP>`2'</SAMP> are higher settings.
+
+</P>
+<P>
+<VAR>xx</VAR>=<SAMP>`02'</SAMP> controls paper loading speed (<VAR>yy</VAR>=<SAMP>`0'</SAMP> is
+normal, <SAMP>`1'</SAMP> is fast, <SAMP>`2'</SAMP> is slow). It appears that <SAMP>`1'</SAMP>
+is used when printing on "plain paper", "360dpi ink jet paper" or
+"ink jet transparencies", and <VAR>yy</VAR>=<SAMP>`00'</SAMP> for all other paper
+type settings.
+
+</P>
+<P>
+<VAR>xx</VAR>=<SAMP>`07'</SAMP> controls duplex printing for printers with that
+capability (<VAR>yy</VAR>=<VAR>0</VAR> is default, for non-duplex printing;
+<SAMP>`1'</SAMP> is front side of the paper, and <VAR>2</VAR> is back side).
+
+</P>
+<P>
+<VAR>xx</VAR>=<SAMP>`09'</SAMP> controls zero margin printing on the printers with
+the capability of printing zero-margin on all sides (Stylus Photo
+780/790, 890, and 1280/1290). <VAR>yy</VAR>=<SAMP>`0'</SAMP> is the default;
+<SAMP>`1'</SAMP> enables zero margin printing.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* PP <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></B>
+<DD><A NAME="IDX237"></A>
+Set Paper Path. <VAR>xx</VAR>=<SAMP>`2'</SAMP> indicates manual feed,
+<VAR>xx</VAR>=<SAMP>`3'</SAMP> is for roll paper. <VAR>yy</VAR> selects "paper path
+number".
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* AC <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX238"></A>
+Set Auto Cutting State. <VAR>xx</VAR>=<SAMP>`0'</SAMP> selects auto cutting off,
+<VAR>xx</VAR>=<SAMP>`1'</SAMP> selects auto cutting on, and <VAR>xx</VAR>=<SAMP>`2'</SAMP>
+indicates horizontal print page line on. It appears that with auto
+cutting on, roll paper is cut automatically at the point a formfeed
+character is sent. The formfeed character is normally used to eject a
+page; with this turned on, it also cuts the roll paper. Horizontal
+print page line on prints a narrow line of black dots at the position
+the paper should be cut manually.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* DR <VAR>BC</VAR>=4 00 xx <VAR>DT2</VAR></CODE></B>
+<DD><A NAME="IDX239"></A>
+Set Drying Time. <VAR>xx</VAR>=<SAMP>`00'</SAMP> sets the drying time "per scan"
+(per pass?); <VAR>xx</VAR>=<SAMP>`01'</SAMP> sets the drying time per page. <VAR>DT</VAR>
+indicates the drying time, which is in seconds if page mode is used and
+in milliseconds if scan mode is used. <VAR>DT</VAR> must not exceed 3600
+seconds in per-page mode and 10000 milliseconds in per-scan mode.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* IK <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX240"></A>
+Select Ink Type. <VAR>xx</VAR>=<SAMP>`00'</SAMP> selects dye ink. Pigment ink is
+apparently selected by <VAR>xx</VAR>=<SAMP>`01'</SAMP>. This probably does not apply
+to the consumer-grade printers.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* PZ BC=2 00 xx</CODE></B>
+<DD><A NAME="IDX241"></A>
+Set Pause After Printing. <VAR>xx</VAR>=<SAMP>`00'</SAMP> selects no pause after
+printing; <VAR>xx</VAR>=<SAMP>`01'</SAMP> selects pause after printing. If turned
+on, the printer is paused after the page is ejected (by the FF
+byte). If cutting is turned on, the printer is paused <STRONG>after</STRONG>
+the cutting or printing of the horizontal cut line.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* EX <VAR>BC</VAR>=6 00 00 00 00 0x14 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX242"></A>
+Set Vertical Print Page Line Mode. <VAR>xx</VAR>=<SAMP>`00'</SAMP> is off,
+<VAR>xx</VAR>=<SAMP>`01'</SAMP> is on. If turned on, this prints vertical trim lines
+at the left and right margins.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* EX <VAR>BC</VAR>=6 00 00 00 00 0x05 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX243"></A>
+Set Roll Paper Mode. If <VAR>xx</VAR> is <SAMP>`0'</SAMP>, roll paper mode is off;
+if <VAR>xx</VAR> is <SAMP>`1'</SAMP>, roll paper mode is on.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* EX <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></B>
+<DD><A NAME="IDX244"></A>
+Appears to be a synonym for the <SAMP>`SN'</SAMP> command described above.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* PH <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX245"></A>
+Select Paper Thickness. Set the paper thickness <VAR>xx</VAR> in .1 mm
+units. This must not exceed 0x10 (1.6 mm). If the thickness is set
+"more than" .6 mm (which probably means "at least" .6 mm, since the
+other case reads "less than 0.5 mm"), the platen gap is set high
+irrespective of the <SAMP>`SN'</SAMP> command.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* PM <VAR>BC</VAR>=2 00 00</CODE></B>
+<DD><A NAME="IDX246"></A>
+<STRONG>Function unknown</STRONG>. Used on the STC 3000 at least when using roll
+feed, and on the STP 870 in all print files analysed to date.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* ST <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX247"></A>
+Epson's STP 750/1200 programming guide refers to the <SAMP>`ST'</SAMP> command
+as "Set printer state reply". If <VAR>xx</VAR> is <SAMP>`0'</SAMP> or <SAMP>`2'</SAMP>,
+the printer will not send status replies. If <VAR>xx</VAR> is <SAMP>`1'</SAMP> or
+<SAMP>`3'</SAMP>, the printer will send status replies. The status replies
+consist of state, error codes, ink leve, firmware version, and warning
+status.
+
+</P>
+<P>
+The actual reply is documented as
+
+</P>
+
+<PRE>
+@BDC ST\r
+ST: xx;
+[ER: yy;]
+IQ: n1n2n3n4;
+[WR: w1,w2...;]
+RV: zz;
+AI:CW:02kkccmmyy, MI:mm
+[TC:tttt;]
+INK:...;
+\f
+</PRE>
+
+<P>
+(<SAMP>`\r'</SAMP> is carriage return; <SAMP>`\n'</SAMP> is newline; <SAMP>`\f'</SAMP> is
+formfeed.)
+
+</P>
+<P>
+<SAMP>`ST'</SAMP> is the printer status:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`00'</SAMP>
+<DD>
+Error
+<DT><SAMP>`01'</SAMP>
+<DD>
+Self-test
+<DT><SAMP>`02'</SAMP>
+<DD>
+Busy
+<DT><SAMP>`03'</SAMP>
+<DD>
+Waiting while printing
+<DT><SAMP>`04'</SAMP>
+<DD>
+Idle
+<DT><SAMP>`07'</SAMP>
+<DD>
+Cleaning/filling ink heads
+<DT><SAMP>`08'</SAMP>
+<DD>
+Not yet initialized/filling heads
+</DL>
+
+<P>
+<SAMP>`ER'</SAMP>, if provided, is the error status:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`00'</SAMP>
+<DD>
+Fatal error
+<DT><SAMP>`01'</SAMP>
+<DD>
+Interface not selected
+<DT><SAMP>`04'</SAMP>
+<DD>
+Paper jam
+<DT><SAMP>`05'</SAMP>
+<DD>
+Out of ink
+<DT><SAMP>`06'</SAMP>
+<DD>
+Paper out
+</DL>
+
+<P>
+<SAMP>`IQ'</SAMP> is the amount of ink left, as a (decimal!) percentage
+expressed in hexadecimal. The values are black, cyan, magenta, and
+yellow (presumably 6-color printers supply light cyan and light magenta
+inks as additional parameters).
+
+</P>
+<P>
+<SAMP>`WR'</SAMP>, if provided, is the warning status:
+
+</P>
+<DL COMPACT>
+
+<DT><SAMP>`10'</SAMP>
+<DD>
+Black ink low
+<DT><SAMP>`11'</SAMP>
+<DD>
+Cyan
+<DT><SAMP>`12'</SAMP>
+<DD>
+Magenta
+<DT><SAMP>`13'</SAMP>
+<DD>
+Yellow
+<DT><SAMP>`14'</SAMP>
+<DD>
+Light cyan (presumably)
+<DT><SAMP>`15'</SAMP>
+<DD>
+Light magenta (presumably)
+</DL>
+
+<P>
+<SAMP>`RV'</SAMP> is the firmware revision (one byte ASCII).
+
+</P>
+<P>
+<SAMP>`AI'</SAMP> is actuator information. These are two byte ASCII codes that
+indicate "ink weight rank ID" of KCMY, respectively.
+
+</P>
+<P>
+<SAMP>`TC'</SAMP>, if provided, is the total time of cleaning or ink filling (?).
+
+</P>
+<P>
+<SAMP>`INK:'</SAMP> and <SAMP>`MI'</SAMP> are <STRONG>not documented</STRONG>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* SM <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></B>
+<DD><A NAME="IDX248"></A>
+Set Status Reply Rate. <VAR>xx</VAR> is the repeat interval in seconds. If
+<VAR>xx</VAR> is <SAMP>`0'</SAMP>, the status is returned only when the printer's
+state changes.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* ST <VAR>BC</VAR>=1 01</CODE></B>
+<DD><A NAME="IDX249"></A>
+Reply Printer Status. The reply is formatted as
+
+</P>
+
+<PRE>
+@BDC PS\r\nST:<VAR>xx</VAR>;\f
+</PRE>
+
+<P>
+(<SAMP>`\r'</SAMP> is carriage return; <SAMP>`\n'</SAMP> is newline; <SAMP>`\f'</SAMP> is
+formfeed). If <VAR>xx</VAR> (the reply value) is <SAMP>`0'</SAMP> or <SAMP>`2'</SAMP>,
+automatic status update is disabled; if <SAMP>`1'</SAMP> or <SAMP>`3'</SAMP>, it is
+enabled.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* SM <VAR>BC</VAR>=1 01</CODE></B>
+<DD><A NAME="IDX250"></A>
+Reply Printer Status Rate. The reply is formatted as
+
+</P>
+
+<PRE>
+@BDC PS\r\nST:xx;\f
+</PRE>
+
+<P>
+(<SAMP>`\r'</SAMP> is carriage return; <SAMP>`\n'</SAMP> is newline; <SAMP>`\f'</SAMP> is
+formfeed). See <SAMP>`SM <VAR>BC</VAR>=2'</SAMP> above for the meaning of the return
+value.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* ?? <VAR>BC</VAR>=<VAR>xx</VAR> <VAR>y</VAR>[1] ... <VAR>y</VAR>[xx]</CODE></B>
+<DD><A NAME="IDX251"></A>
+Echo Parameters (perhaps better described as Echo Commands). The
+command string is executed (it would appear from the documentation), and
+the string sent is returned using a sequence similar to that described
+in the <SAMP>`ST <VAR>BC</VAR>=1'</SAMP> and <SAMP>`SM <VAR>BC</VAR>=1'</SAMP> commands. Note
+that in this case the number of bytes is variable!
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U>ESC/P2 remote command:</U> <B><CODE>* SM <VAR>BC</VAR>=2 00 02</CODE></B>
+<DD><A NAME="IDX252"></A>
+<STRONG>Function unknown</STRONG>. Used on the STC 3000 at least when using
+roll feed.
+</DL>
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_36.html">previous</A>, <A HREF="gimpprint_38.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_38.html b/doc/manual-html/gimpprint_38.html
new file mode 100644
index 0000000..a71d5f1
--- /dev/null
+++ b/doc/manual-html/gimpprint_38.html
@@ -0,0 +1,115 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - ESC/P2 Appropriate Remote Commands</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_37.html">previous</A>, <A HREF="gimpprint_39.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC53" HREF="gimpprint_toc.html#TOC53">C.4 Appropriate Remote Commands</A></H2>
+
+<P>
+All of the remote commands described above are wrapped up with the usual
+boilerplate. The files always start with <SAMP>`00 00 00'</SAMP> and the
+"magic" command described above, then two <SAMP>`ESC @'</SAMP>s to reset the
+printer. The remote command sequences come next; if they print anything
+that is usually followed by a <SAMP>`FF'</SAMP> (0C hex) character to feed the
+page, then the file ends with another two <SAMP>`ESC @'</SAMP>s to get back to
+the ground state.
+
+</P>
+<P>
+An alignment sequence goes like this:
+
+</P>
+
+<OL>
+<LI>Host uses <SAMP>`DT'</SAMP> to print an alignment sheet
+
+<LI>User eyeballs the sheet to see which is the best aligned pattern.
+
+<LI>Host sends a <SAMP>`DA'</SAMP> command indicating which pattern the user chose
+
+<LI>If the user said "realign", meaning he isn't done yet, go to step 1
+
+<LI>We are done: host sends a <SAMP>`SV'</SAMP> command and exits
+
+</OL>
+
+<P>
+The sequence used (by the STC 3000, at least) to print from the roll
+feed is (with byte count omitted)
+
+</P>
+
+<PRE>
+ PM 00 00
+ SN 00 00 00
+ EX 00 00 00 00 05 01
+ ST 00 01
+ SM 00 02
+</PRE>
+
+<P>
+The sequence used by the STP 870 to print on plain paper is
+
+</P>
+
+<PRE>
+ PM 00 00
+ IR 00 03
+ SN 00 00 01
+ SN 00 01 00
+ SN 00 02 01
+ EX 00 00 00 00 05 00
+ FP 00 00 00
+</PRE>
+
+<P>
+and the job finishes with
+
+</P>
+
+<PRE>
+ IR 00 02
+ LD
+</PRE>
+
+<P>
+For different paper type settings on the STP 870, the arguments to
+<SAMP>`SN'</SAMP> vary. The arguments to the first and third <SAMP>`SN'</SAMP> commands
+are as outlined in the description of the <SAMP>`SN'</SAMP> command above; the
+arguments to the second ("platen gap") are <SAMP>`00 01 01'</SAMP> for thick
+papers ("matte paper--heavyweight", "photo paper" and "premium
+glossy photo paper") and <SAMP>`00 01 00'</SAMP> for all others.
+
+</P>
+<P>
+For roll-mode printing, the STP 870's sequence changes as follows.
+<SAMP>`IR'</SAMP>'s arguments become <SAMP>`00 01'</SAMP> in the header, and <SAMP>`00
+00'</SAMP> after the job, and <SAMP>`EX'</SAMP>'s last argument changes from <SAMP>`00'</SAMP>
+to <SAMP>`01'</SAMP>.
+
+</P>
+<P>
+For zero-margin printing on the STP 870, the arguments to <SAMP>`FP'</SAMP> become
+<SAMP>`00 0xb0 0xff'</SAMP>. This moves the origin about 5.5mm to the left, to a
+point one tenth of an inch to the left of the left-hand edge of the
+paper, allowing printing right up to (and beyond) the edge of the
+paper. Some printers (at least the STP 870) include white absorbent
+pads at the left margin position and other positions (89mm and 100mm
+on the STP 870) to soak up ink which misses the edge of the paper.
+Printing off the edge of paper of a width not aligned with a pad could
+result in making a mess of the inside of the printer and ink getting
+on the reverse of the paper.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_37.html">previous</A>, <A HREF="gimpprint_39.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_39.html b/doc/manual-html/gimpprint_39.html
new file mode 100644
index 0000000..fd25fb0
--- /dev/null
+++ b/doc/manual-html/gimpprint_39.html
@@ -0,0 +1,59 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - New Printer</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_38.html">previous</A>, <A HREF="gimpprint_40.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC54" HREF="gimpprint_toc.html#TOC54">D Adding a new printer</A></H1>
+<P>
+<A NAME="IDX253"></A>
+<A NAME="IDX254"></A>
+<A NAME="IDX255"></A>
+
+</P>
+
+<P>
+This appendix covers adding a new ESCP/2, PCL, or Canon printer.
+Writing a new driver module is not covered.
+
+</P>
+<P>
+The three steps to adding a printer are:
+
+</P>
+
+<OL>
+<LI>Add an entry to <TT>`printers.xml'</TT>
+
+<LI>Add the appropriate code and data to the appropriate driver module
+
+<LI>Tune the printer
+
+</OL>
+
+<P>
+Printer information is stored in two places: in <TT>`printers.xml'</TT>
+(which contains the list of printer models available to the the
+upper-level application), and in the appropriate driver file
+(<TT>`print-escp2.c'</TT>, <TT>`print-pcl.c'</TT>, or <TT>`print-canon.c'</TT>).
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_40.html#SEC55">printers.xml</A>: File format description.
+<LI><A HREF="gimpprint_41.html#SEC56">Driver file</A>: Data structures to use.
+<LI><A HREF="gimpprint_42.html#SEC57">Epson inkjet printers</A>: Adding an Epson printer.
+<LI><A HREF="gimpprint_43.html#SEC58">Tuning Epson printers</A>: Tweaking settings.
+<LI><A HREF="gimpprint_44.html#SEC59">Canon inkjet printers</A>: Adding a Canon printer.
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_38.html">previous</A>, <A HREF="gimpprint_40.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_4.html b/doc/manual-html/gimpprint_4.html
new file mode 100644
index 0000000..5b262af
--- /dev/null
+++ b/doc/manual-html/gimpprint_4.html
@@ -0,0 +1,82 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Using libgimpprint</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_3.html">previous</A>, <A HREF="gimpprint_5.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC7" HREF="gimpprint_toc.html#TOC7">2 Using libgimpprint</A></H1>
+<P>
+<A NAME="IDX5"></A>
+
+</P>
+<P>
+This chapter describes how to write programs that use libgimpprint.
+
+</P>
+
+
+
+<H2><A NAME="SEC8" HREF="gimpprint_toc.html#TOC8">2.1 Code prerequisites</A></H2>
+<P>
+To use libgimpprint with a program, several steps must be taken:
+
+</P>
+
+<OL>
+<LI>Include the master libgimpprint header <CODE>&#60;gimp-print/gimp-print.h&#62;.</CODE>
+
+<LI>Call <CODE>stp_init()</CODE>.
+
+<LI>Link with libgimpprint.
+
+</OL>
+
+<P>
+The following is a short example program. It does not do anything useful,
+but it does everything required to link with libgimpprint and call other
+functions from libgimpprint.
+
+</P>
+
+<PRE>
+#include &#60;gimp-print/gimp-print.h&#62;
+
+int
+main (int argc, char *argv[])
+{
+ stp_init ();
+ return (0);
+}
+</PRE>
+
+
+
+<H2><A NAME="SEC9" HREF="gimpprint_toc.html#TOC9">2.2 Linking with libgimpprint</A></H2>
+
+<P>
+To link a program with libgimpprint, then <SAMP>`-lgimpprint'</SAMP> needs to be passed
+to the compiler when linking. For example, to compile and link <TT>`prog.c'</TT>
+the following commands would be used:
+
+</P>
+
+<PRE>
+gcc -c prog.c
+gcc -o prog -lgimpprint prog.o
+</PRE>
+
+<P>
+The compiler and linker flags needed may vary depending on the options
+GIMP-Print was configured with when it was built. The
+@command{gimpprint-config} script will give the correct parameters for
+the local installation (see section <A HREF="gimpprint_6.html#SEC11">3.1 @command{gimpprint-config}</A>).
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_3.html">previous</A>, <A HREF="gimpprint_5.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_40.html b/doc/manual-html/gimpprint_40.html
new file mode 100644
index 0000000..d71cf27
--- /dev/null
+++ b/doc/manual-html/gimpprint_40.html
@@ -0,0 +1,115 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - printers.xml</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_39.html">previous</A>, <A HREF="gimpprint_41.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC55" HREF="gimpprint_toc.html#TOC55">D.1 <TT>`printers.xml'</TT></A></H2>
+
+<P>
+<TT>`printers.xml'</TT> is an XML-like file (there's no formal DTD) that
+contains very simple printer definitions. A typical definition follows:
+
+</P>
+
+<PRE>
+&#60;printer name="EPSON Stylus Color 1500" driver="escp2-1500"&#62;
+&#60;color&#62;
+&#60;model value=2&#62;
+&#60;gamma value=0.597&#62;
+&#60;density value=1.0&#62;
+&#60;language value=escp2&#62;
+&#60;/printer&#62;
+</PRE>
+
+<P>
+There are other tags that may be present. The only ones that are
+mandatory are <SAMP>`&#60;printer&#62;'</SAMP>, <SAMP>`&#60;color&#62;'</SAMP>, <SAMP>`&#60;model&#62;'</SAMP>, and
+<SAMP>`&#60;language&#62;'</SAMP>. The other optional parameters (gamma and density in
+this case) can be used to adjust control settings. This is probably not
+the right place for them; the printer drivers themselves should contain
+this information. There's probably no good reason for anything but
+gamma and density to be in here. Gamma refers to the printer's gamma
+factor; density is the desired base ink density for the printer. The
+Epson driver contains the density information for each printer at each
+resolution internally. An even better driver would adjust density and
+possibly even gamma for paper type. All the more reason not to have
+that information here.
+
+</P>
+<P>
+If you really are curious about what tags are permitted, please see
+<TT>`printdefl.l'</TT>. I deliberately want to make this obscure.
+
+</P>
+<P>
+Anyway, here's the definition of the tags that do matter:
+
+</P>
+<P>
+<DL>
+<DT><U><TT>`printers.xml'</TT> tag:</U> <B><CODE>&#60;printer name="<VAR>longname</VAR>" driver="<VAR>drivername</VAR>"&#62;</CODE></B>
+<DD><A NAME="IDX256"></A>
+This starts the definition of a printer. The <VAR>longname</VAR> should be
+something human readable; the <VAR>drivername</VAR> should consist of
+alphanumerics and hyphens, and be fairly short. The <VAR>longname</VAR> is
+what will appear in the GUI listing of printers; the <VAR>drivername</VAR> is
+what is actually used to key into the list of printers. It is legal to
+have multiple printers with the same driver name.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U><TT>`printers.xml'</TT> tag:</U> <B><CODE>&#60;color&#62;</CODE></B>
+<DD><A NAME="IDX257"></A>
+<DT><U><TT>`printers.xml'</TT> tag:</U> <B><CODE>&#60;nocolor&#62;</CODE></B>
+<DD><A NAME="IDX258"></A>
+Indicates that this printer is capable of color, or is not capable of
+color respectively
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U><TT>`printers.xml'</TT> tag:</U> <B><CODE>&#60;model value=<VAR>int</VAR>&#62;</CODE></B>
+<DD><A NAME="IDX259"></A>
+This defines a model number. This is passed into the driver, which may
+do whatever it cares to with it--index into a table, compute on, or
+whatever. This need not be unique.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U><TT>`printers.xml'</TT> tag:</U> <B><CODE>&#60;language value=<VAR>type</VAR>&#62;</CODE></B>
+<DD><A NAME="IDX260"></A>
+This defines what driver module this printer uses. <VAR>type</VAR> should be
+<SAMP>`escp2'</SAMP>, <SAMP>`pcl'</SAMP>, <SAMP>`canon'</SAMP>, or <SAMP>`ps'</SAMP>.
+</DL>
+
+</P>
+<P>
+<DL>
+<DT><U><TT>`printers.xml'</TT> tag:</U> <B><CODE>&#60;/printer&#62;</CODE></B>
+<DD><A NAME="IDX261"></A>
+This, of course, closes off a printer definition.
+</DL>
+
+</P>
+<P>
+This is handled very ad-hoc. It's ugly. But it's reasonably easy to
+extend, and it's buzzword-compliant.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_39.html">previous</A>, <A HREF="gimpprint_41.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_41.html b/doc/manual-html/gimpprint_41.html
new file mode 100644
index 0000000..8f7fde6
--- /dev/null
+++ b/doc/manual-html/gimpprint_41.html
@@ -0,0 +1,52 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Driver file</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_40.html">previous</A>, <A HREF="gimpprint_42.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC56" HREF="gimpprint_toc.html#TOC56">D.2 The driver file</A></H2>
+<P>
+<A NAME="IDX262"></A>
+
+</P>
+<P>
+Adding a new printer to a driver module (<TT>`print-escp2.c'</TT>,
+<TT>`print-pcl.c'</TT>, or <TT>`print-canon.c'</TT>---<TT>`print-ps.c'</TT> is
+really ad hoc) requires a bit more planning. Each driver is somewhat
+different, but they all generally have a vector of printer definitions,
+and the code does some special casing based on particular printer
+capabilities. The PCL and Canon drivers are quite similar; the Canon
+driver was actually cribbed from the PCL driver, but it then returned
+the favor.
+
+</P>
+<P>
+The Epson driver is a little bit different. Canon and PCL printers
+have some amount of intelligence; a lot of them have specific ink
+options, and know about specific paper sizes and types, and must be
+told the right thing. Epson printers have somewhat less intelligence
+and will more or less do exactly what the host tells it to do in a
+fairly regular fashion. I actually prefer this; it isn't materially
+more work for the host to compute things like exact paper sizes and
+such, it allows a lot more tweaking, and it may be why Epson has been
+more open with information -- the communication protocol doesn't
+really contain very much IP, so they have less reason to keep it
+secret.
+
+</P>
+<P>
+Someone else will have to fill in the sections about PCL and Canon
+printers.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_40.html">previous</A>, <A HREF="gimpprint_42.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_42.html b/doc/manual-html/gimpprint_42.html
new file mode 100644
index 0000000..4c5e557
--- /dev/null
+++ b/doc/manual-html/gimpprint_42.html
@@ -0,0 +1,457 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Epson inkjet printers</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_41.html">previous</A>, <A HREF="gimpprint_43.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC57" HREF="gimpprint_toc.html#TOC57">D.3 Epson inkjet printers</A></H2>
+<P>
+<A NAME="IDX263"></A>
+
+</P>
+<P>
+The <SAMP>`model_capabilities'</SAMP> vector in <TT>`print-escp2.c'</TT> contains
+one entry for each defined printer model. The <SAMP>`model'</SAMP> parameter in
+<TT>`printers.xml'</TT> is an index into this table.
+
+</P>
+<P>
+In general, the new printers have fewer eccentricities than the older
+printers. That doesn't mean they're simpler, just that they're more
+consistent.
+
+</P>
+<P>
+An <CODE>escp2_printer_t</CODE> is a C struct defined as follows:
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> <B>escp2_printer_t</B>
+<DD><A NAME="IDX264"></A>
+
+<PRE>
+typedef struct escp2_printer
+{
+ model_cap_t flags; /* Bitmask of flags, see below */
+/*****************************************************************************/
+ int nozzles; /* Number of nozzles per color */
+ int min_nozzles; /* Minimum number of nozzles per color */
+ int nozzle_separation; /* Separation between rows, in 1/360" */
+ int black_nozzles; /* Number of black nozzles (may be extra) */
+ int min_black_nozzles; /* # of black nozzles (may be extra) */
+ int black_nozzle_separation; /* Separation between rows */
+ int fast_nozzles; /* Number of fast nozzles */
+ int min_fast_nozzles; /* # of fast nozzles (may be extra) */
+ int fast_nozzle_separation; /* Separation between rows */
+/*****************************************************************************/
+ int xres; /* Normal distance between dots in */
+ /* softweave mode (inverse inches) */
+ int enhanced_xres; /* Distance between dots in highest */
+ /* quality modes */
+ int base_separation; /* Basic unit of row separation */
+ int base_resolution; /* Base hardware spacing (above this */
+ /* always requires multiple passes) */
+ int enhanced_resolution;/* Above this we use the */
+ /* enhanced_xres rather than xres */
+ int resolution_scale; /* Scaling factor for ESC(D command */
+ int max_black_resolution; /* Above this resolution, we */
+ /* must use color parameters */
+ /* rather than (faster) black */
+ /* only parameters*/
+ int max_hres;
+ int max_vres;
+ int min_hres;
+ int min_vres;
+/*****************************************************************************/
+ int max_paper_width; /* Maximum paper width, in points */
+ int max_paper_height; /* Maximum paper height, in points */
+ int min_paper_width; /* Maximum paper width, in points */
+ int min_paper_height; /* Maximum paper height, in points */
+ /* Printer interleave: */
+ int m_left_margin; /* Left margin, points */
+ int m_right_margin; /* Right margin, points */
+ int m_top_margin; /* Absolute top margin, points */
+ int m_bottom_margin; /* Absolute bottom margin, points */
+ /* ROLL FEED: */
+ /* Softweave: */
+ int roll_left_margin; /* Left margin, points */
+ int roll_right_margin; /* Right margin, points */
+ int roll_top_margin; /* Absolute top margin, points */
+ int roll_bottom_margin; /* Absolute bottom margin, points */
+ /* Printer interleave: */
+ int m_roll_left_margin; /* Left margin, points */
+ int m_roll_right_margin; /* Right margin, points */
+ int m_roll_top_margin; /* Absolute top margin, points */
+ int m_roll_bottom_margin; /* Absolute bottom margin, points */
+/*****************************************************************************/
+ int extra_feed; /* Extra distance the paper can be spaced */
+ /* beyond the bottom margin, in 1/360". */
+ /* (maximum useful value is */
+ /* nozzles * nozzle_separation) */
+ int separation_rows; /* Some printers require funky spacing */
+ /* arguments in interleave mode. */
+ int pseudo_separation_rows;/* Some printers require funky */
+ /* spacing arguments in softweave mode */
+
+ int zero_margin_offset; /* Offset to use to achieve */
+ /* zero-margin printing */
+ int initial_vertical_offset;
+ int black_initial_vertical_offset;
+ int extra_720dpi_separation;
+
+/*****************************************************************************/
+ const int *dot_sizes; /* Vector of dot sizes for resolutions */
+ const double *densities; /* List of densities for each printer */
+ const escp2_variable_inklist_t *inks; /* Choices of inks for this printer */
+/*****************************************************************************/
+ const paperlist_t *paperlist;
+ const res_t *reslist;
+ const inklist_t *inklist;
+/*****************************************************************************/
+ const int *bits;
+ const int *base_resolutions;
+ const input_slot_list_t *input_slots;
+/*****************************************************************************/
+ const init_sequence_t *preinit_sequence;
+ const init_sequence_t *postinit_remote_sequence;
+} escp2_printer_t;
+</PRE>
+
+</DL>
+
+<P>
+The printer definition block is divided into 8 sections. The first
+section is a set of miscellaneous printer options. These are
+described in the code, and will not be discussed further here.
+
+</P>
+
+<P>
+The second section describes the number of nozzles and the separation
+between nozzles in base units. The base unit is 1/360" for all
+currently supported printers, but future printers may support a
+smaller base unit.
+
+</P>
+<P>
+Many printers have more black nozzles than nozzles of other colors,
+and when used in black and white mode, it's possible to use these
+extra nozzles, which speeds up printing. As an example, a printer
+that is specified to have 48 cyan, magenta, and yellow nozzles, and
+144 black nozzles, can use all 144 black nozzles when printing black
+ink only. When printing in color, only 48 nozzles of each color
+(including black) can be used.
+
+</P>
+<P>
+Most printers can print using either the number of nozzles available
+or any smaller number. Some printers require that all of the nozzles
+be used. Those printers will set <CODE>min_nozzles</CODE> and/or
+<CODE>min_black_nozzles</CODE> to the same value as <CODE>nozzles</CODE> and/or
+<CODE>black_nozzles</CODE>.
+
+</P>
+
+<P>
+The third section defines basic units of measure for the printer,
+including the standard separation between dots, the base nozzle
+separation, and the minimum and maximum printing resolutions the
+printer supports. Most of these are fairly self-explanatory, but some
+are not obvious.
+
+</P>
+<P>
+Most Epson printers, other than the high-end Stylus Pro models, cannot
+print dots spaced more closely than 1/360" or 1/720" apart (this is
+the setting for <CODE>xres</CODE>. This is true even for printers that
+support resolutions of 1440 or 2880 DPI. In these cases, the data
+must be printed in 2, 4, or 8 passes. While the printer can position
+the head to a resolution of 1/1440" or 1/2880", the head cannot
+deposit ink that frequently.
+
+</P>
+<P>
+Some printers can only print in their very best quality (using the
+smallest dots available) printing at a lower resolution. For example,
+the Stylus Photo EX can normally print with a dot spacing of 1/720".
+The smallest dot size cannot be printed with a dot spacing of less
+than 1/360", however. In this case, we use <CODE>enhanced_xres</CODE>
+to specify the resolution to be used in this enhanced mode, and
+<CODE>enhanced_resolution</CODE> to specify the printing resolution above
+which we use the <CODE>enhanced_xres</CODE>.
+
+</P>
+<P>
+The <CODE>resolution_scale</CODE> command is used to specify scaling factors
+for the dot separation on newer printers. It should always be 14400
+with current printers.
+
+</P>
+
+<P>
+The fourth section specifies the minimum and maximum paper sizes, and
+the margins. Some printers allow use of narrower margins when
+softweave is used; both sets of margins are specified.
+
+</P>
+<P>
+There is a convenient <SAMP>`INCH'</SAMP> macro defined to make specification of
+the <CODE>max_paper_width</CODE> and <CODE>max_paper_height</CODE> more legible. It
+multiplies 72 by the provided expression to get the appropriate number
+of points. For example, to specify 8.5", <SAMP>`INCH(17/2)'</SAMP> expands to
+<SAMP>`(72 * 17/2)'</SAMP>, which is evaluated left to right, and hence
+generates the correct value.
+
+</P>
+
+<P>
+The fifth section specifies some miscellaneous values that are
+required for certain printers. For most printers, the correct values
+are 1 for <CODE>separation_rows</CODE> and 0 for the others. Very, very few
+printers require (or allow) <CODE>separation_rows</CODE> to be anything but
+1 and <CODE>pseudo_separation_rows</CODE> other than zero. The Stylus Color
+1520, Stylus Color 800, Stylus Color 850, and (strangely enough to my
+mind, since it's a new printer) Stylus Color 660 seem to be the only
+exceptions.
+
+</P>
+<P>
+The <CODE>zero_margin_offset</CODE> is used to specify an additional
+negative horizontal offset required to print to the edges of the paper
+on newer Stylus Photo printers. These must be determined empirically;
+good starting values are 100 for 1440 DPI and 50 for 2880 DPI
+printers. The goal is to print to the edge of the page, but not over
+it.
+
+</P>
+
+<P>
+The sixth section specifies head offsets for printers that do not have
+the color jets aligned. Certain printers, such as the Stylus Color
+480, have an unusual head arrangement whereby instead of all of the
+colors being aligned vertically, the nozzles are configured in
+groups. These printers are easy to determine; if the normal head
+offset of zero for each color is used, the printing will be vertically
+out of alignment. Most of these printers require specification of a
+negative offset for printing to the top edge of the paper; typically
+these printers do not require such an offset when printing black only.
+
+</P>
+<P>
+The seventh section specifies the most difficult values to tune, the
+dot sizes, printing densities, and ink values (for variable dot size
+enabled printers). These will be described in detail below.
+
+</P>
+
+<P>
+The last section specifies luminosity, hue, and saturation adjustment
+vectors for the printer, and the paper definitions. These are used to
+adjust the color in Photograph and Solid Colors output modes. These are
+each vectors of 48 (actually 49, as the first value must be duplicated)
+doubles that remap the luminosity, hue, and saturation respectively.
+The hue is calculated, and the value used to interpolate between the two
+closest points in each vector.
+
+</P>
+<P>
+The paper definitions is a set of paper definitions. The paper
+definition contains the name of the paper type, special settings that
+are required for printers to process the paper correctly, and a set of
+adjustment values. These are not currently discussed here.
+
+</P>
+
+<P>
+The lists of dot sizes and densities contain values for 13 printing
+modes: 120/180 DPI using printer weaving (single row;
+referred to as "interleave") and "soft" weaving (the driver
+determines the exact pattern of dot layout), 360 DPI interleave and
+softweave, 720x360 DPI interleave and softweave, 720 DPI interleave
+and softweave, 1440x720 interleave and softweave, 2880x720 interleave
+and softweave, and 2880x1440 softweave only.
+
+</P>
+<P>
+For the dot sizes, the value for each element in the vector selects
+the dot size to be used when printing at this (or similar)
+resolution. The dot sizes are determined by consulting the
+programming manual for the printer and experimenting as described
+below. Current Epson printers always use dot sizes less than
+<SAMP>`16'</SAMP>, or <SAMP>`0x10'</SAMP>, to indicate single dot size (each dot is
+represented by 1 bit, and it's either printed or not), and dot sizes
+of <SAMP>`16'</SAMP> or greater to indicate variable dot size (each dot is
+represented by 2 bits, and it can either be not printed or take on 2
+or 3 values, representing the relative size of the printed dot).
+Variable dot sizes permit the use of very small dots (which would be
+too small to fill the page and produce solid black) in light areas,
+while allowing the page to be filled with larger dots in darker areas.
+
+</P>
+<P>
+Even single dot size printers can usually produce dots of different
+sizes; it's just illegal to actually try to switch dot size during a
+page. These dots are also much bigger than those used in true
+variable dot size printing.
+
+</P>
+<P>
+A dot size of <SAMP>`-1'</SAMP> indicates that this resolution is illegal for
+the printer in question. Any resolutions that would use this dot size
+will not be presented to the user. A dot size of <SAMP>`-2'</SAMP> indicates
+that this resolution is legal, but that the driver is not to attempt
+to set any dot size. Some very old printers do not support the
+command to set the dot size.
+
+</P>
+<P>
+Most printers support a dot size of <SAMP>`0'</SAMP> as a mode-specific default,
+but it's often a bigger dot than necessary. Printers usually also
+support some dot sizes between <SAMP>`1'</SAMP> and <SAMP>`3'</SAMP>. Usually <SAMP>`1'</SAMP>
+is the right dot size for 720 and 1440 dpi printing, and <SAMP>`3'</SAMP> works
+best at 360 dpi.
+
+</P>
+<P>
+Variable dot size printers usually support 2 or 3 sets of variable dot
+sizes. Older printers based on a 6 picolitre drop (the 480, 720, 740,
+750, 900, and 1200) support two: mode 16 (0x10 in hexadecimal) for
+normal variable dots at 1440 or 720 dpi, and mode 17 (0x10) for
+special larger dots at 360 dpi. Newer printers based on 4 picolitre
+drops normally support three sizes: <SAMP>`0x10'</SAMP> for 4 pl base drops,
+<SAMP>`0x11'</SAMP> for 6 pl base drops, and <SAMP>`0x12'</SAMP> for special large
+drops. On these printers, <SAMP>`0x10'</SAMP> usually works best at 1440x720
+and <SAMP>`0x11'</SAMP> works best at 720x720. Unfortunately, <SAMP>`0x10'</SAMP>
+doesn't seem to generate quite enough density at 720x720, because if
+it did the output would be very smooth. Perhaps it's possible to
+tweak things@enddots{}
+
+</P>
+
+<P>
+The list of densities is a list of base density values for all of the
+above listed modes. "Density" refers to the amount of ink deposited
+when a solid color (or solid black) is printed. So if the density is
+<SAMP>`.5'</SAMP>, solid black actually prints only half the possible dots.
+"Base density" refers to the fact that the density value can be
+scaled in the GUI or on the Ghostscript command line. The density
+value specified (which is not made visible to the user) is multiplied
+by the base density to obtain the effective density value. All other
+things (such as ink drop size) remaining the same, doubling the
+resolution requires halving the base density. The base density in the
+density vector may exceed <SAMP>`1'</SAMP>, as many paper types require lower
+density than the base driver. The driver ensures that the actual
+density never exceeds 1.
+
+</P>
+<P>
+Tuning the density should be done on high quality paper (usually
+glossy photo paper). The goal is to find the lowest density value
+that results in solid black (no visible gaps under a fairly high power
+magnifying glass or loupe). If an appropriate density value is found
+for 720 DPI, it could be divided by 2 for 1440x720, by 4 for 2880x720,
+and by 8 for 2880x1440.
+
+</P>
+<P>
+However, for printers that offer a choice of dot size, this may not be
+the best strategy. The best choice for dot size is the smallest dot
+size that allows choosing a density value not greater than 1 that
+gives full coverage. This dot size may be different for different
+resolutions. Tuning variable dot size printers is more complicated;
+the process is described below.
+
+</P>
+<P>
+The last member is a pointer to a structure containing a list of ink
+values for variable dot size (or 6 color) inks. We model variable dot
+size inks as producing a certain "value" of ink for each available dot
+size, where the largest dot size has a value of 1. 6-color inks are
+handled similarly; the light cyan and light magenta inks are treated
+as a fractional ink value. The combination of variable dot size and 6
+color inks, of course, just creates that many more different ink
+choices.
+
+</P>
+<P>
+This structure is actually rather complicated; it contains entries for
+each combination of physical printer resolution (180, 360, 720, and
+1440 dpi), ink colors (4, 6, and 7), and single and variable dot sizes
+(since some printer modes can't handle variable dot size inks). Since
+there's so much data, it's actually a somewhat deeply nested
+structure:
+
+</P>
+<P>
+An <CODE>escp2_printer_t</CODE> contains a pointer (essentially, a reference
+rather than a copy) to an <CODE>escp2_variable_inklist_t</CODE>.
+
+</P>
+<P>
+An <CODE>escp2_variable_inklist_t</CODE> contains pointers to
+<CODE>escp2_variable_inkset_t</CODE> structures. There is one such pointer
+for each combination of resolution, dot type, and ink colors as
+described above. Yes, this is rather inflexible.
+
+</P>
+<P>
+An <CODE>escp2_variable_inkset_t</CODE> contains pointers to
+<CODE>escp2_variable_ink_t</CODE> structures. There is one such pointer for
+each of the four colors (C, M, Y, and K).
+
+</P>
+<P>
+An <CODE>escp2_variable_ink_t</CODE> contains a pointer to the actual list of
+ink values (<CODE>simple_dither_range_t</CODE>), the number of ink values, and
+a density value to be used for computing the transitions. This density
+value is actually a scaling value; it is multiplied by the effective
+density to compute the density to be used for computing the transitions.
+Normally, this value is <SAMP>`1'</SAMP>, but in some cases it may be possible
+to get smoother results with a different value (in particular, the
+single dot size 6-color inks work best with the effective density scaled
+to <SAMP>`.75'</SAMP> for this purpose). A lower density lowers the transition
+points, which results in more ink being deposited.
+
+</P>
+<P>
+A <CODE>simple_dither_range_t</CODE> is a structure containing four values:
+
+</P>
+
+<OL>
+<LI>The value of the particular ink
+
+<LI>The bit pattern used to represent the ink
+
+<LI>Whether the ink is light (0) or dark (1), for inks with light and dark variants
+
+<LI>The relative amount of ink actually deposited by this dot (not
+
+currently used for much; it can be used for ink reduction purposes, to
+reduce the amount of ink deposited on the paper).
+</OL>
+
+<P>
+These things are interesting as arrays. From an array of
+<CODE>simple_dither_range_t</CODE>'s, the dither code computes transition
+values that it looks up at run time to decide what ink to print, as well
+as whether to print at all.
+
+</P>
+<P>
+<STRONG>Really</STRONG> confused now? Yup. You'll probably find it easier to
+simply read the code.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_41.html">previous</A>, <A HREF="gimpprint_43.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_43.html b/doc/manual-html/gimpprint_43.html
new file mode 100644
index 0000000..381ac9c
--- /dev/null
+++ b/doc/manual-html/gimpprint_43.html
@@ -0,0 +1,189 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Tuning Epson printers</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_42.html">previous</A>, <A HREF="gimpprint_44.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC58" HREF="gimpprint_toc.html#TOC58">D.4 Tuning the printer</A></H2>
+<P>
+<A NAME="IDX265"></A>
+<A NAME="IDX266"></A>
+
+</P>
+<P>
+Now, how do you use all this to tune a printer? There are a number of
+ways to do it; this one is my personal favorite.
+
+</P>
+<P>
+There's a file named <TT>`cyan-sweep.tif'</TT>. This consists of a thin bar
+of cyan sweeping from white to almost pure cyan, and from pure cyan to
+black. The first thing to do is to pick the appropriate
+<CODE>simple_dither_range_t</CODE> (or create a whole new
+<CODE>escp2_variable_inklist_t</CODE>) and comment out all but the darkest ink
+(this means you'll be using the largest dots of dark ink). At 8.5"
+width (the width of a letter-size piece of paper), the bar will be 1/8"
+high. Printing it on wider or narrower paper will change the height
+accordingly. Print it width-wise across a piece of photo quality paper
+in line art mode using ordered or adaptive hybrid dither. Do not use
+photographic mode; the colors in photographic mode vary non-linearly
+depending upon the presence of the three color components, while in line
+art mode the colors are much purer. Make sure that all the color
+adjustments are set to defaults (1.0). Use the highest quality version
+of the print mode you're testing to reduce banding and other artifacts.
+This is much easier to do with the Gimp than with Ghostscript.
+
+</P>
+<P>
+At this stage, you want to look for four things:
+
+</P>
+
+<OL>
+<LI>
+
+The black near the center of the line is solid, but not more so than
+that.
+
+<LI>
+
+The cyan immediately to the left of the black is <EM>almost</EM> solid.
+
+<LI>
+
+The dark cyan at the far right of the page is solid, but not more so.
+You can try tuning the density so that it isn't quite solid, then
+nudging up the density until it is.
+
+<LI>
+
+Both sweeps sweep smoothly from light to dark. In particular, the dark
+half of the bar shouldn't visibly change color; it should go smoothly
+from cyan to black.
+</OL>
+
+<P>
+Repeat this stage until you have everything just right. Use the
+positioning entry boxes in the dialog to position each bar exactly
+1/8" further down the page. Adjacent bars will be touching.
+
+</P>
+<P>
+The next step is to uncomment out the second darkest dot size. If
+you're using variable dots, use the second largest dot size of the
+dark ink rather than the largest dot size of the light ink. This will
+give you two inks.
+
+</P>
+<P>
+When you recompile the plugin, you simply need to copy the new
+executable into the correct place. You do not need to exit and
+restart the Gimp.
+
+</P>
+<P>
+Print another bar adjacent to the first one. Your goal is to match
+the bar using a single dot size as closely as possible. You'll find
+that the dark region of the bar shouldn't change to any great degree,
+but the light half probably will. If the lighter part of the light
+half is too dark, you need to increase the value of the smaller dot;
+if it's too light, you need to decrease the value. The reasoning is
+that if the value is too low, the ink isn't being given enough credit
+for its contribution to the darkness of the ink, and vice versa.
+Repeat until you have a good match. Make sure you let the ink dry
+fully, which will take a few minutes. Wet ink will look too dark.
+Don't look at the paper too closely; hold it at a distance. The extra
+graininess of the largest dot size will probably make it look lighter
+than it should; if you hold it far enough away so that you can't see
+the dots, you'll get a more accurate picture of what's going on.
+
+</P>
+<P>
+After you have what looks like a good match, print another bar using
+only the largest dot size (or dark ink, for single dot size 6-color
+printers). You want to ensure that the bars touching each other look
+identical, or as close as possible to it; your eye won't give you a
+good reading if the bars are separated from each other. You'll
+probably have to repeat the procedure.
+
+</P>
+<P>
+The next step is to comment out all but the largest and third-largest
+dot size, and repeat the procedure. When they match, use all three
+dot sizes of dark ink. Again, the goal is to match the single dot
+size.
+
+</P>
+<P>
+You'll probably find the match is imperfect. Now you have to figure
+out what region isn't right, which takes some experimentation. Even
+small adjustments can make a noticeable difference in what you see.
+At this stage, it's very important to hold the page far enough from
+your eye; when you use all three dot sizes, the texture will be much
+more even, which sometimes makes it look darker and sometimes lighter.
+
+</P>
+<P>
+After this is calibrated, it's time to calibrate the light ink against
+the dark ink. To do this, comment out all but the large dot version
+of the two inks, and repeat the procedure. This is trickier, because
+the hues of the inks might not be quite identical. Look at the dark
+half of the bar as well as the light half to see that the hue really
+doesn't change as you sweep from cyan to black. Sometimes it's easier
+to judge that way. You may find that it looks blotchy, in which case
+you should switch from ordered dither to adaptive hybrid.
+
+</P>
+<P>
+After you have the light and dark inks calibrated against each other,
+it's time to add everything back in. Usually you don't want to use
+the largest dot size of light ink. These dots will be much larger
+than the small dots of dark ink, but they'll still be lighter. This
+will cause problems when printing mixed colors, since you'll be
+depositing more ink on lighter regions of the page, and you'll
+probably get strange color casts that you can't get rid of in neutral
+tones. I normally use only the smallest one or two dot sizes of light
+ink.
+
+</P>
+<P>
+After you've tweaked everything, print the color bar with saturation
+set to zero. This will print neutral tones using color inks. Your
+goal here is to look for neutral tonality. If you're using a 6-color
+printer and get a yellow cast, it means that the values for your light
+inks are too high (remember, that means they're getting too much
+credit, so you're not depositing enough cyan and magenta ink, and the
+yellow dominates). If you get a bluish or bluish-purple cast, your
+light inks are too low (you're not giving them enough credit, so too
+much cyan and magenta is deposited, which overwhelms the yellow).
+Make sure you do this on very white, very high grade inkjet paper
+that's designed for 1440x720 dpi or higher; otherwise the ink will
+spread on contact and you'll get values that aren't really true for
+high grade paper. You can, of course, calibrate for low grade paper
+if that's what you're going to use, but that shouldn't be put into the
+distribution.
+
+</P>
+<P>
+You can also fully desaturate this bar inside the Gimp and print it as
+monochrome (don't print the cyan as monochrome; the driver does funny
+things with luminance), for comparison. You'll find it very hard to
+get rid of all color casts.
+
+</P>
+<P>
+There are other ways of tuning printers, but this one works pretty
+well for me.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_42.html">previous</A>, <A HREF="gimpprint_44.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_44.html b/doc/manual-html/gimpprint_44.html
new file mode 100644
index 0000000..6e54c81
--- /dev/null
+++ b/doc/manual-html/gimpprint_44.html
@@ -0,0 +1,117 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Canon inkjet printers</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_43.html">previous</A>, <A HREF="gimpprint_45.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC59" HREF="gimpprint_toc.html#TOC59">D.5 Canon inkjet printers</A></H2>
+
+<P>
+Basically, a new Canon printer can be added to <TT>`print-canon.c'</TT> in a
+similar way as described above for the epson inkjet printers. The main
+differences are noted here:
+
+</P>
+<P>
+In general, Canon printers have more "built-in intelligence" than Epson
+printers which results in the fact that the driver only has to tell the
+printing conditions like resolutions, dot sizes, etc. to the printer and
+afterwards transfer the raster data line by line for each color used.
+
+</P>
+<P>
+<CODE>canon_cap_t</CODE> is a C struct defined as follows:
+
+</P>
+<P>
+<DL>
+<DT><U>Data type:</U> <B>canon_cap_t</B>
+<DD><A NAME="IDX267"></A>
+
+<PRE>
+typedef struct canon_caps {
+ int model; /* model number as used in printers.xml */
+ int max_width; /* maximum printable paper size */
+ int max_height;
+ int base_res; /* base resolution - shall be 150 or 180 */
+ int max_xdpi; /* maximum horizontal resolution */
+ int max_ydpi; /* maximum vertical resolution */
+ int max_quality;
+ int border_left; /* left margin, points */
+ int border_right; /* right margin, points */
+ int border_top; /* absolute top margin, points */
+ int border_bottom; /* absolute bottom margin, points */
+ int inks; /* installable cartridges (CANON_INK_*) */
+ int slots; /* available paperslots */
+ int features; /* special bjl settings */
+ canon_dot_size_t dot_sizes; /* Vector of dot sizes for resolutions */
+ canon_densities_t densities; /* List of densities for each printer */
+ canon_variable_inklist_t *inxs; /* Choices of inks for this printer */
+} canon_cap_t;
+</PRE>
+
+</DL>
+
+<P>
+Since there are Canon printers which print in resolutions of
+@math{2^n*150} dpi (e.g. 300, 600, 1200) and others which support
+resolutions of @math{2^n*180} dpi (e.g. 360, 720, 1440), there's a base
+resolution (150 or 180, respectively) given in the
+<CODE>canon_cap_t</CODE>. The structs <CODE>canon_dot_size_t</CODE>,
+<CODE>canon_densities_t</CODE> and <CODE>canon_variable_inklist_t</CODE> refer to
+resolutions being multiples of the base resolution.
+
+</P>
+<P>
+For the Canon driver, the struct <CODE>canon_dot_size_t</CODE> holds values
+for a model's capabilities at a given resolution: <SAMP>`-1'</SAMP> if the
+resolution is not supported. <SAMP>`0'</SAMP> if it can be used and <SAMP>`1'</SAMP> if
+the resolution can be used for variable dot size printing.
+
+</P>
+<P>
+In <CODE>canon_densities_t</CODE> the base densities for each resolution can
+be specified like for an epson printer, the same holds true for
+<CODE>canon_variable_inklist_t</CODE>. See the descriptions above to learn
+about how to adjust your model's output to yield nice results.
+
+</P>
+<P>
+There's a slight difference though in the way the Canon driver and the escp2
+driver define their variable inklists: In the Canon driver, you need to define
+an inklist like this:
+
+</P>
+
+<PRE>
+static const canon_variable_inklist_t canon_ink_myinks[] =
+{
+ {
+ 1,4, /* 1bit/pixel, 4 colors */
+ &#38;ci_CMYK_1, &#38;ci_CMYK_1, &#38;ci_CMYK_1,
+ &#38;ci_CMYK_1, &#38;ci_CMYK_1, &#38;ci_CMYK_1,
+ },
+ {
+ 3,4, /* 3bit/pixel, 4 colors */
+ &#38;ci_CMYK_3, &#38;ci_CMYK_3, &#38;ci_CMYK_3,
+ &#38;ci_CMYK_3, &#38;ci_CMYK_3, &#38;ci_CMYK_3,
+ },
+};
+</PRE>
+
+<P>
+where the <SAMP>`&#38;ci_CMYK_1'</SAMP> and <SAMP>`&#38;ci_CMYK_3'</SAMP> entries are references
+to a previously defined const of type <CODE>canon_variable_inkset_t</CODE>.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_43.html">previous</A>, <A HREF="gimpprint_45.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_45.html b/doc/manual-html/gimpprint_45.html
new file mode 100644
index 0000000..b7214b1
--- /dev/null
+++ b/doc/manual-html/gimpprint_45.html
@@ -0,0 +1,49 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Data Type and Variable Index</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_44.html">previous</A>, <A HREF="gimpprint_46.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC60" HREF="gimpprint_toc.html#TOC60">Data Type and Variable Index</A></H1>
+
+<P>
+<H2>c</H2>
+<DIR>
+<LI><A HREF="gimpprint_44.html#IDX267">canon_cap_t</A>
+</DIR>
+<H2>e</H2>
+<DIR>
+<LI><A HREF="gimpprint_42.html#IDX264">escp2_printer_t</A>
+</DIR>
+<H2>g</H2>
+<DIR>
+<LI><A HREF="gimpprint_18.html#IDX172">gimpprint_binary_age</A>
+<LI><A HREF="gimpprint_18.html#IDX171">gimpprint_current_interface</A>
+<LI><A HREF="gimpprint_18.html#IDX173">gimpprint_interface_age</A>
+<LI><A HREF="gimpprint_18.html#IDX168">gimpprint_major_version</A>
+<LI><A HREF="gimpprint_18.html#IDX170">gimpprint_micro_version</A>
+<LI><A HREF="gimpprint_18.html#IDX169">gimpprint_minor_version</A>
+</DIR>
+<H2>s</H2>
+<DIR>
+<LI><A HREF="gimpprint_16.html#IDX151">stp_image_t</A>
+<LI><A HREF="gimpprint_14.html#IDX114">stp_option_t</A>
+<LI><A HREF="gimpprint_12.html#IDX100">stp_outfunc_t</A>
+<LI><A HREF="gimpprint_15.html#IDX125">stp_papersize_t</A>
+<LI><A HREF="gimpprint_15.html#IDX126">stp_papersize_unit_t</A>
+<LI><A HREF="gimpprint_16.html#IDX140">stp_printer_t</A>
+<LI><A HREF="gimpprint_16.html#IDX150">stp_printfuncs_t</A>
+<LI><A HREF="gimpprint_12.html#IDX20">stp_vars_t</A>
+</DIR>
+
+</P>
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_44.html">previous</A>, <A HREF="gimpprint_46.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_46.html b/doc/manual-html/gimpprint_46.html
new file mode 100644
index 0000000..88bb95b
--- /dev/null
+++ b/doc/manual-html/gimpprint_46.html
@@ -0,0 +1,249 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Function and Macro Index</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_45.html">previous</A>, <A HREF="gimpprint_47.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC61" HREF="gimpprint_toc.html#TOC61">Function and Macro Index</A></H1>
+
+<P>
+<H2>*</H2>
+<DIR>
+<LI><A HREF="gimpprint_37.html#IDX251"><CODE>* ?? <VAR>BC</VAR>=<VAR>xx</VAR> <VAR>y</VAR>[1] ... <VAR>y</VAR>[xx]</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX238"><CODE>* AC <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX224"><CODE>* AI <VAR>BC</VAR>=3 00 00 00</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX226"><CODE>* CH <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX229"><CODE>* DA <VAR>BC</VAR>=4 00 <VAR>xx</VAR> 00 <VAR>yy</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX230"><CODE>* DA <VAR>BC</VAR>=6 00 <VAR>xx</VAR> 00 <VAR>yy</VAR> 09 00</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX239"><CODE>* DR <VAR>BC</VAR>=4 00 xx <VAR>DT2</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX227"><CODE>* DT <VAR>BC</VAR>=3 00 <VAR>xx</VAR> 00</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX228"><CODE>* DU <VAR>BC</VAR>=6 00 <VAR>xx</VAR> 00 09 00 <VAR>yy</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX244"><CODE>* EX <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX243"><CODE>* EX <VAR>BC</VAR>=6 00 00 00 00 0x05 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX242"><CODE>* EX <VAR>BC</VAR>=6 00 00 00 00 0x14 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX235"><CODE>* FP <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX240"><CODE>* IK <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX233"><CODE>* IQ <VAR>BC</VAR>=1 01</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX234"><CODE>* IR <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX225"><CODE>* LD <VAR>BC</VAR>=0</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX245"><CODE>* PH <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX246"><CODE>* PM <VAR>BC</VAR>=2 00 00</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX237"><CODE>* PP <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX241"><CODE>* PZ BC=2 00 xx</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX232"><CODE>* RS <VAR>BC</VAR>=1 01</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX248"><CODE>* SM <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX250"><CODE>* SM <VAR>BC</VAR>=1 01</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX252"><CODE>* SM <VAR>BC</VAR>=2 00 02</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX236"><CODE>* SN <VAR>BC</VAR>=3 00 <VAR>xx</VAR> <VAR>yy</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX247"><CODE>* ST <VAR>BC</VAR>=2 00 <VAR>xx</VAR></CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX249"><CODE>* ST <VAR>BC</VAR>=1 01</CODE></A>
+<LI><A HREF="gimpprint_37.html#IDX231"><CODE>* SV <VAR>BC</VAR>=0</CODE></A>
+</DIR>
+<H2>&#60;</H2>
+<DIR>
+<LI><A HREF="gimpprint_40.html#IDX261"><CODE>&#60;/printer&#62;</CODE></A>
+<LI><A HREF="gimpprint_40.html#IDX257"><CODE>&#60;color&#62;</CODE></A>
+<LI><A HREF="gimpprint_40.html#IDX260"><CODE>&#60;language value=<VAR>type</VAR>&#62;</CODE></A>
+<LI><A HREF="gimpprint_40.html#IDX259"><CODE>&#60;model value=<VAR>int</VAR>&#62;</CODE></A>
+<LI><A HREF="gimpprint_40.html#IDX258"><CODE>&#60;nocolor&#62;</CODE></A>
+<LI><A HREF="gimpprint_40.html#IDX256"><CODE>&#60;printer name="<VAR>longname</VAR>" driver="<VAR>drivername</VAR>"&#62;</CODE></A>
+</DIR>
+<H2>a</H2>
+<DIR>
+<LI><A HREF="gimpprint_8.html#IDX11">AM_PATH_GIMPPRINT</A>
+</DIR>
+<H2>e</H2>
+<DIR>
+<LI><A HREF="gimpprint_36.html#IDX211"><CODE>ESC $ <VAR>OFFSET2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX210"><CODE>ESC ($ <VAR>BC</VAR>=4 <VAR>OFFSET4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX213"><CODE>ESC (/ <VAR>BC</VAR>=4 <VAR>OFFSET4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX212"><CODE>ESC (\ <VAR>BC</VAR>=4 <VAR>UNITS2</VAR> <VAR>OFFSET2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX201"><CODE>ESC (C <VAR>BC</VAR>=2 <VAR>PAGELENGTH2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX202"><CODE>ESC (C <VAR>BC</VAR>=4 <VAR>PAGELENGTH4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX203"><CODE>ESC (c <VAR>BC</VAR>=4 <VAR>TOP2</VAR> <VAR>LENGTH2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX204"><CODE>ESC (c <VAR>BC</VAR>=8 <VAR>TOP4</VAR> <VAR>LENGTH4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX219"><CODE>ESC (D <VAR>BC</VAR>=4 <VAR>BASE2</VAR> <VAR>VERTICAL1</VAR> <VAR>HORIZONTAL1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX200"><CODE>ESC (e <VAR>BC</VAR>=2 <VAR>ZERO1</VAR> <VAR>DOTSIZE1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX193"><CODE>ESC (G <VAR>BC</VAR>=1 <VAR>ON1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX197"><CODE>ESC (i <VAR>BC</VAR>=1 <VAR>MICROWEAVE1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX196"><CODE>ESC (K <VAR>BC</VAR>=2 <VAR>ZERO1</VAR> <VAR>GRAYMODE1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX216"><CODE>ESC (r <VAR>BC</VAR>=2 <VAR>DENSITY1</VAR> <VAR>COLOR1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX220"><CODE>ESC (R <VAR>BC</VAR>=8 00 R E M O T E 1</CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX199"><CODE>ESC (s <VAR>BC</VAR>=1 <VAR>SPEED1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX205"><CODE>ESC (S <VAR>BC</VAR>=8 <VAR>WIDTH4</VAR> <VAR>LENGTH4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX194"><CODE>ESC (U <VAR>BC</VAR>=1 <VAR>UNIT1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX195"><CODE>ESC (U <VAR>BC</VAR>=5 <VAR>PAGEUNITS1</VAR> <VAR>VUNIT1</VAR> <VAR>HUNIT1</VAR> <VAR>BASEUNIT2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX206"><CODE>ESC (v <VAR>BC</VAR>=2 <VAR>ADVANCE2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX208"><CODE>ESC (V <VAR>BC</VAR>=2 <VAR>ADVANCE2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX207"><CODE>ESC (v <VAR>BC</VAR>=4 <VAR>ADVANCE4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX209"><CODE>ESC (V <VAR>BC</VAR>=4 <VAR>ADVANCE4</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX217"><CODE>ESC . <VAR>COMPRESS1</VAR> <VAR>VSEP1</VAR> <VAR>HSEP1</VAR> <VAR>LINES1</VAR> <VAR>WIDTH2</VAR> <VAR>data...</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX221"><CODE>ESC 01 @EJL [sp] ID\r\n</CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX192"><CODE>ESC @</CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX214"><CODE>ESC \ <VAR>OFFSET2</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX218"><CODE>ESC i <VAR>COLOR1</VAR> <VAR>COMPRESS1</VAR> <VAR>BITS1</VAR> <VAR>BYTES2</VAR> <VAR>LINES2</VAR> <VAR>data...</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX215"><CODE>ESC r <VAR>COLOR1</VAR></CODE></A>
+<LI><A HREF="gimpprint_36.html#IDX198"><CODE>ESC U <VAR>DIRECTION1</VAR></CODE></A>
+</DIR>
+<H2>g</H2>
+<DIR>
+<LI><A HREF="gimpprint_18.html#IDX166">GIMPPRINT_BINARY_AGE</A>
+<LI><A HREF="gimpprint_18.html#IDX161">GIMPPRINT_CHECK_VERSION</A>
+<LI><A HREF="gimpprint_18.html#IDX165">GIMPPRINT_CURRENT_INTERFACE</A>
+<LI><A HREF="gimpprint_18.html#IDX167">GIMPPRINT_INTERFACE_AGE</A>
+<LI><A HREF="gimpprint_18.html#IDX162">GIMPPRINT_MAJOR_VERSION</A>
+<LI><A HREF="gimpprint_18.html#IDX164">GIMPPRINT_MICRO_VERSION</A>
+<LI><A HREF="gimpprint_18.html#IDX163">GIMPPRINT_MINOR_VERSION</A>
+</DIR>
+<H2>n</H2>
+<DIR>
+<LI><A HREF="gimpprint_37.html#IDX222"><CODE>NC <VAR>BC</VAR>=2 00 00</CODE></A>
+</DIR>
+<H2>s</H2>
+<DIR>
+<LI><A HREF="gimpprint_12.html#IDX23">stp_allocate_copy</A>
+<LI><A HREF="gimpprint_12.html#IDX106">stp_allocate_lut</A>
+<LI><A HREF="gimpprint_12.html#IDX21">stp_allocate_vars</A>
+<LI><A HREF="gimpprint_18.html#IDX160">stp_check_version</A>
+<LI><A HREF="gimpprint_17.html#IDX154">stp_choose_colorfunc</A>
+<LI><A HREF="gimpprint_14.html#IDX117">stp_clear_all_options</A>
+<LI><A HREF="gimpprint_14.html#IDX116">stp_clear_option</A>
+<LI><A HREF="gimpprint_12.html#IDX108">stp_compute_lut</A>
+<LI><A HREF="gimpprint_17.html#IDX155">stp_compute_page_parameters</A>
+<LI><A HREF="gimpprint_12.html#IDX22">stp_copy_vars</A>
+<LI><A HREF="gimpprint_13.html#IDX112">stp_default_dither_algorithm</A>
+<LI><A HREF="gimpprint_17.html#IDX156">stp_default_settings</A>
+<LI><A HREF="gimpprint_13.html#IDX110">stp_dither_algorithm_count</A>
+<LI><A HREF="gimpprint_13.html#IDX111">stp_dither_algorithm_name</A>
+<LI><A HREF="gimpprint_12.html#IDX107">stp_free_lut</A>
+<LI><A HREF="gimpprint_12.html#IDX24">stp_free_vars</A>
+<LI><A HREF="gimpprint_12.html#IDX90">stp_get_app_gamma</A>
+<LI><A HREF="gimpprint_12.html#IDX76">stp_get_brightness</A>
+<LI><A HREF="gimpprint_12.html#IDX94">stp_get_cmap</A>
+<LI><A HREF="gimpprint_12.html#IDX78">stp_get_contrast</A>
+<LI><A HREF="gimpprint_12.html#IDX80">stp_get_cyan</A>
+<LI><A HREF="gimpprint_12.html#IDX88">stp_get_density</A>
+<LI><A HREF="gimpprint_12.html#IDX49">stp_get_dither_algorithm</A>
+<LI><A HREF="gimpprint_12.html#IDX28">stp_get_driver</A>
+<LI><A HREF="gimpprint_12.html#IDX103">stp_get_errdata</A>
+<LI><A HREF="gimpprint_12.html#IDX101">stp_get_errfunc</A>
+<LI><A HREF="gimpprint_12.html#IDX74">stp_get_gamma</A>
+<LI><A HREF="gimpprint_12.html#IDX60">stp_get_image_type</A>
+<LI><A HREF="gimpprint_12.html#IDX46">stp_get_ink_type</A>
+<LI><A HREF="gimpprint_12.html#IDX68">stp_get_input_color_model</A>
+<LI><A HREF="gimpprint_12.html#IDX56">stp_get_left</A>
+<LI><A HREF="gimpprint_12.html#IDX92">stp_get_lut</A>
+<LI><A HREF="gimpprint_12.html#IDX82">stp_get_magenta</A>
+<LI><A HREF="gimpprint_12.html#IDX37">stp_get_media_size</A>
+<LI><A HREF="gimpprint_12.html#IDX43">stp_get_media_source</A>
+<LI><A HREF="gimpprint_12.html#IDX40">stp_get_media_type</A>
+<LI><A HREF="gimpprint_14.html#IDX119">stp_get_option_by_index</A>
+<LI><A HREF="gimpprint_14.html#IDX120">stp_get_option_by_name</A>
+<LI><A HREF="gimpprint_12.html#IDX54">stp_get_orientation</A>
+<LI><A HREF="gimpprint_12.html#IDX98">stp_get_outdata</A>
+<LI><A HREF="gimpprint_12.html#IDX96">stp_get_outfunc</A>
+<LI><A HREF="gimpprint_12.html#IDX70">stp_get_output_color_model</A>
+<LI><A HREF="gimpprint_12.html#IDX25">stp_get_output_to</A>
+<LI><A HREF="gimpprint_12.html#IDX52">stp_get_output_type</A>
+<LI><A HREF="gimpprint_12.html#IDX66">stp_get_page_height</A>
+<LI><A HREF="gimpprint_12.html#IDX64">stp_get_page_width</A>
+<LI><A HREF="gimpprint_15.html#IDX130">stp_get_papersize_by_index</A>
+<LI><A HREF="gimpprint_15.html#IDX128">stp_get_papersize_by_name</A>
+<LI><A HREF="gimpprint_15.html#IDX129">stp_get_papersize_by_size</A>
+<LI><A HREF="gimpprint_12.html#IDX31">stp_get_ppd_file</A>
+<LI><A HREF="gimpprint_16.html#IDX145">stp_get_printer_by_driver</A>
+<LI><A HREF="gimpprint_16.html#IDX142">stp_get_printer_by_index</A>
+<LI><A HREF="gimpprint_16.html#IDX144">stp_get_printer_by_long_name</A>
+<LI><A HREF="gimpprint_16.html#IDX146">stp_get_printer_index_by_driver</A>
+<LI><A HREF="gimpprint_12.html#IDX34">stp_get_resolution</A>
+<LI><A HREF="gimpprint_12.html#IDX86">stp_get_saturation</A>
+<LI><A HREF="gimpprint_12.html#IDX72">stp_get_scaling</A>
+<LI><A HREF="gimpprint_12.html#IDX58">stp_get_top</A>
+<LI><A HREF="gimpprint_12.html#IDX62">stp_get_unit</A>
+<LI><A HREF="gimpprint_12.html#IDX84">stp_get_yellow</A>
+<LI><A HREF="gimpprint_11.html#IDX16">stp_init</A>
+<LI><A HREF="gimpprint_15.html#IDX127">stp_known_papersizes</A>
+<LI><A HREF="gimpprint_16.html#IDX141">stp_known_printers</A>
+<LI><A HREF="gimpprint_11.html#IDX18">stp_malloc</A>
+<LI><A HREF="gimpprint_17.html#IDX157">stp_maximum_settings</A>
+<LI><A HREF="gimpprint_12.html#IDX105">stp_merge_printvars</A>
+<LI><A HREF="gimpprint_17.html#IDX158">stp_minimum_settings</A>
+<LI><A HREF="gimpprint_14.html#IDX118">stp_option_count</A>
+<LI><A HREF="gimpprint_14.html#IDX121">stp_option_data</A>
+<LI><A HREF="gimpprint_14.html#IDX123">stp_option_length</A>
+<LI><A HREF="gimpprint_14.html#IDX122">stp_option_name</A>
+<LI><A HREF="gimpprint_15.html#IDX136">stp_papersize_get_bottom</A>
+<LI><A HREF="gimpprint_15.html#IDX133">stp_papersize_get_height</A>
+<LI><A HREF="gimpprint_15.html#IDX135">stp_papersize_get_left</A>
+<LI><A HREF="gimpprint_15.html#IDX131">stp_papersize_get_name</A>
+<LI><A HREF="gimpprint_15.html#IDX137">stp_papersize_get_right</A>
+<LI><A HREF="gimpprint_15.html#IDX134">stp_papersize_get_top</A>
+<LI><A HREF="gimpprint_15.html#IDX138">stp_papersize_get_unit</A>
+<LI><A HREF="gimpprint_15.html#IDX132">stp_papersize_get_width</A>
+<LI><A HREF="gimpprint_16.html#IDX147">stp_printer_get_driver</A>
+<LI><A HREF="gimpprint_16.html#IDX143">stp_printer_get_long_name</A>
+<LI><A HREF="gimpprint_16.html#IDX148">stp_printer_get_model</A>
+<LI><A HREF="gimpprint_16.html#IDX149">stp_printer_get_printfuncs</A>
+<LI><A HREF="gimpprint_16.html#IDX152">stp_printer_get_printvars</A>
+<LI><A HREF="gimpprint_12.html#IDX91">stp_set_app_gamma</A>
+<LI><A HREF="gimpprint_12.html#IDX77">stp_set_brightness</A>
+<LI><A HREF="gimpprint_12.html#IDX95">stp_set_cmap</A>
+<LI><A HREF="gimpprint_12.html#IDX79">stp_set_contrast</A>
+<LI><A HREF="gimpprint_12.html#IDX81">stp_set_cyan</A>
+<LI><A HREF="gimpprint_12.html#IDX89">stp_set_density</A>
+<LI><A HREF="gimpprint_12.html#IDX50">stp_set_dither_algorithm</A>
+<LI><A HREF="gimpprint_12.html#IDX51">stp_set_dither_algorithm_n</A>
+<LI><A HREF="gimpprint_12.html#IDX29">stp_set_driver</A>
+<LI><A HREF="gimpprint_12.html#IDX30">stp_set_driver_n</A>
+<LI><A HREF="gimpprint_12.html#IDX104">stp_set_errdata</A>
+<LI><A HREF="gimpprint_12.html#IDX102">stp_set_errfunc</A>
+<LI><A HREF="gimpprint_12.html#IDX75">stp_set_gamma</A>
+<LI><A HREF="gimpprint_12.html#IDX61">stp_set_image_type</A>
+<LI><A HREF="gimpprint_12.html#IDX47">stp_set_ink_type</A>
+<LI><A HREF="gimpprint_12.html#IDX48">stp_set_ink_type_n</A>
+<LI><A HREF="gimpprint_12.html#IDX69">stp_set_input_color_model</A>
+<LI><A HREF="gimpprint_12.html#IDX57">stp_set_left</A>
+<LI><A HREF="gimpprint_12.html#IDX93">stp_set_lut</A>
+<LI><A HREF="gimpprint_12.html#IDX83">stp_set_magenta</A>
+<LI><A HREF="gimpprint_12.html#IDX38">stp_set_media_size</A>
+<LI><A HREF="gimpprint_12.html#IDX39">stp_set_media_size_n</A>
+<LI><A HREF="gimpprint_12.html#IDX44">stp_set_media_source</A>
+<LI><A HREF="gimpprint_12.html#IDX45">stp_set_media_source_n</A>
+<LI><A HREF="gimpprint_12.html#IDX41">stp_set_media_type</A>
+<LI><A HREF="gimpprint_12.html#IDX42">stp_set_media_type_n</A>
+<LI><A HREF="gimpprint_14.html#IDX115">stp_set_option(stp_vars_t</A>
+<LI><A HREF="gimpprint_12.html#IDX55">stp_set_orientation</A>
+<LI><A HREF="gimpprint_12.html#IDX99">stp_set_outdata</A>
+<LI><A HREF="gimpprint_12.html#IDX97">stp_set_outfunc</A>
+<LI><A HREF="gimpprint_12.html#IDX71">stp_set_output_color_model</A>
+<LI><A HREF="gimpprint_12.html#IDX26">stp_set_output_to</A>
+<LI><A HREF="gimpprint_12.html#IDX27">stp_set_output_to_n</A>
+<LI><A HREF="gimpprint_12.html#IDX53">stp_set_output_type</A>
+<LI><A HREF="gimpprint_12.html#IDX67">stp_set_page_height</A>
+<LI><A HREF="gimpprint_12.html#IDX65">stp_set_page_width</A>
+<LI><A HREF="gimpprint_12.html#IDX32">stp_set_ppd_file</A>
+<LI><A HREF="gimpprint_12.html#IDX33">stp_set_ppd_file_n</A>
+<LI><A HREF="gimpprint_12.html#IDX35">stp_set_resolution</A>
+<LI><A HREF="gimpprint_12.html#IDX36">stp_set_resolution_n</A>
+<LI><A HREF="gimpprint_12.html#IDX87">stp_set_saturation</A>
+<LI><A HREF="gimpprint_12.html#IDX73">stp_set_scaling</A>
+<LI><A HREF="gimpprint_12.html#IDX59">stp_set_top</A>
+<LI><A HREF="gimpprint_12.html#IDX63">stp_set_unit</A>
+<LI><A HREF="gimpprint_12.html#IDX85">stp_set_yellow</A>
+</DIR>
+<H2>v</H2>
+<DIR>
+<LI><A HREF="gimpprint_37.html#IDX223"><CODE>VI <VAR>BC</VAR>=2 00 00</CODE></A>
+</DIR>
+
+</P>
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_45.html">previous</A>, <A HREF="gimpprint_47.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_47.html b/doc/manual-html/gimpprint_47.html
new file mode 100644
index 0000000..46f8520
--- /dev/null
+++ b/doc/manual-html/gimpprint_47.html
@@ -0,0 +1,124 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Concept Index</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_46.html">previous</A>, next, last section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC62" HREF="gimpprint_toc.html#TOC62">Concept Index</A></H1>
+
+<P>
+<H2>a</H2>
+<DIR>
+<LI><A HREF="gimpprint_39.html#IDX253">adding a printer</A>
+<LI><A HREF="gimpprint_24.html#IDX181">Appendices</A>
+<LI><A HREF="gimpprint_8.html#IDX9">autoconf</A>
+<LI><A HREF="gimpprint_9.html#IDX12">automake</A>
+</DIR>
+<H2>b</H2>
+<DIR>
+<LI><A HREF="gimpprint_23.html#IDX179">bugs</A>
+</DIR>
+<H2>c</H2>
+<DIR>
+<LI><A HREF="gimpprint_31.html#IDX186">collisions</A>
+<LI><A HREF="gimpprint_22.html#IDX178">CUPS driver</A>
+</DIR>
+<H2>d</H2>
+<DIR>
+<LI><A HREF="gimpprint_13.html#IDX109">dither functions</A>
+<LI><A HREF="gimpprint_25.html#IDX182">dithering</A>
+<LI><A HREF="gimpprint_41.html#IDX262">driver file</A>
+</DIR>
+<H2>e</H2>
+<DIR>
+<LI><A HREF="gimpprint_42.html#IDX263">Epson inkjet printers</A>
+<LI><A HREF="gimpprint_34.html#IDX190">ESC/P2</A>
+<LI><A HREF="gimpprint_35.html#IDX191">ESC/P2 introduction</A>
+</DIR>
+<H2>f</H2>
+<DIR>
+<LI><A HREF="gimpprint_10.html#IDX13">functions</A>
+</DIR>
+<H2>g</H2>
+<DIR>
+<LI><A HREF="gimpprint_21.html#IDX177">ghostscript driver</A>
+<LI><A HREF="gimpprint_20.html#IDX175">GIMP Print plugin</A>
+<LI><A HREF="gimpprint_6.html#IDX7">gimpprint-config</A>
+</DIR>
+<H2>h</H2>
+<DIR>
+<LI><A HREF="gimpprint_1.html#IDX3">how to read</A>
+</DIR>
+<H2>i</H2>
+<DIR>
+<LI><A HREF="gimpprint_11.html#IDX15">initialising libgimpprint</A>
+<LI><A HREF="gimpprint_5.html#IDX6">integrating</A>
+</DIR>
+<H2>m</H2>
+<DIR>
+<LI><A HREF="gimpprint_8.html#IDX10">m4 macros</A>
+<LI><A HREF="gimpprint_11.html#IDX14">main functions</A>
+<LI><A HREF="gimpprint_7.html#IDX8">make</A>
+<LI><A HREF="gimpprint_1.html#IDX2">manual, how to read</A>
+<LI><A HREF="gimpprint_11.html#IDX17">memory allocation</A>
+</DIR>
+<H2>n</H2>
+<DIR>
+<LI><A HREF="gimpprint_39.html#IDX255">new printer</A>
+</DIR>
+<H2>o</H2>
+<DIR>
+<LI><A HREF="gimpprint_14.html#IDX113">options functions</A>
+<LI><A HREF="gimpprint_33.html#IDX189">oversampling</A>
+<LI><A HREF="gimpprint_3.html#IDX4">overview</A>
+</DIR>
+<H2>p</H2>
+<DIR>
+<LI><A HREF="gimpprint_15.html#IDX124">paper functions</A>
+<LI><A HREF="gimpprint_30.html#IDX185">perfect weave</A>, <A HREF="gimpprint_32.html#IDX188">perfect weave</A>
+<LI><A HREF="gimpprint_20.html#IDX176">Print plugin</A>
+<LI><A HREF="gimpprint_16.html#IDX139">printer functions</A>
+<LI><A HREF="gimpprint_39.html#IDX254">printer, adding</A>
+<LI><A HREF="gimpprint_43.html#IDX266">printer, tuning</A>
+<LI><A HREF="gimpprint_23.html#IDX180">problems</A>
+<LI><A HREF="gimpprint_19.html#IDX174">programs</A>
+</DIR>
+<H2>r</H2>
+<DIR>
+<LI><A HREF="gimpprint_1.html#IDX1">reading</A>
+</DIR>
+<H2>s</H2>
+<DIR>
+<LI><A HREF="gimpprint_17.html#IDX153">settings functions</A>
+<LI><A HREF="gimpprint_12.html#IDX19"><CODE>stp_vars_t</CODE> functions</A>
+</DIR>
+<H2>t</H2>
+<DIR>
+<LI><A HREF="gimpprint_43.html#IDX265">tuning the printer</A>
+</DIR>
+<H2>u</H2>
+<DIR>
+<LI><A HREF="gimpprint_4.html#IDX5">using</A>
+</DIR>
+<H2>v</H2>
+<DIR>
+<LI><A HREF="gimpprint_18.html#IDX159">version functions</A>
+</DIR>
+<H2>w</H2>
+<DIR>
+<LI><A HREF="gimpprint_26.html#IDX183">weaving</A>
+<LI><A HREF="gimpprint_28.html#IDX184">weaving algorithms</A>
+<LI><A HREF="gimpprint_31.html#IDX187">weaving collisions</A>
+</DIR>
+
+</P>
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_46.html">previous</A>, next, last section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_5.html b/doc/manual-html/gimpprint_5.html
new file mode 100644
index 0000000..75dbead
--- /dev/null
+++ b/doc/manual-html/gimpprint_5.html
@@ -0,0 +1,36 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Integrating libgimpprint</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_4.html">previous</A>, <A HREF="gimpprint_6.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H1><A NAME="SEC10" HREF="gimpprint_toc.html#TOC10">3 Integrating libgimpprint</A></H1>
+<P>
+<A NAME="IDX6"></A>
+
+</P>
+<P>
+This chapter describes how to integrate the compiling and linking of
+programs using libgimpprint with build scripts. Commonly used systems include
+@command{make}, but more commonly <TT>`Makefile'</TT> files are generated by using
+tools such as @command{autoconf} and @command{automake}.
+
+</P>
+
+<UL>
+<LI><A HREF="gimpprint_6.html#SEC11">gimpprint-config</A>: Getting the correct compiler and linker flags
+<LI><A HREF="gimpprint_7.html#SEC12">make</A>: Normal makefiles
+<LI><A HREF="gimpprint_8.html#SEC13">autoconf</A>: Macro to automatically check for libgimpprint
+<LI><A HREF="gimpprint_9.html#SEC14">automake</A>: Automatically defined variables to use
+</UL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_4.html">previous</A>, <A HREF="gimpprint_6.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_6.html b/doc/manual-html/gimpprint_6.html
new file mode 100644
index 0000000..a0bc835
--- /dev/null
+++ b/doc/manual-html/gimpprint_6.html
@@ -0,0 +1,106 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - gimpprint-config</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_5.html">previous</A>, <A HREF="gimpprint_7.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC11" HREF="gimpprint_toc.html#TOC11">3.1 @command{gimpprint-config}</A></H2>
+<P>
+<A NAME="IDX7"></A>
+
+</P>
+<P>
+Depending on the setup of the computer system GIMP-Print was installed on, as
+well as the options passed to @command{configure} when configuring the
+package when it was built, the @env{CFLAGS} and @env{LIBS} parameters
+needed to compile and link programs with libgimpprint may vary. To make it
+simple to determine what these are on any given system, the script
+@command{gimpprint-config} was created. It's job is to output the
+correct parameters for the setup on your system. The following options
+are available:
+
+</P>
+
+<PRE>
+roger@whinlatter:~/gimpprint/devel$ gimpprint-config --help
+Usage: gimpprint-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Libraries:
+ gimpprint
+</PRE>
+
+<P>
+The @option{--prefix} and @option{--exec-prefix} options are only needed if the
+installed locations of parts of GIMP-Print are different from the configured
+locations. These should never be needed if GIMP-Print was properly configured
+and installed.
+
+</P>
+<P>
+The installed version of GIMP-Print can be obtained with the
+@option{--version} option:
+
+</P>
+
+<PRE>
+roger@whinlatter:~/gimpprint/devel$ gimpprint-config --version
+4.2.7
+</PRE>
+
+<P>
+The correct @env{CFLAGS} to use can be obtained with the @option{--cflags}
+option:
+
+</P>
+
+<PRE>
+roger@whinlatter:~/gimpprint/devel$ gimpprint-config --cflags
+
+</PRE>
+
+<P>
+In this case, there are no special @env{CFLAGS} required to compile programs.
+
+</P>
+<P>
+The correct @env{LIBS} to use can the obtained with the @option{--libs} option:
+
+</P>
+
+<PRE>
+roger@whinlatter:~/gimpprint/devel$ gimpprint-config --libs
+-L/usr/lib -lgimpprint -lm
+</PRE>
+
+<P>
+The command can be used from the shell by enclosing it in backquotes <SAMP>``'</SAMP>:
+
+</P>
+
+<PRE>
+gcc `gimpprint-config --cflags` -c prog.c
+gcc `gimpprint-config --libs` -o prog prog.o
+</PRE>
+
+<P>
+However, this is not the way it it typically used. Normally it is used in a
+<TT>`Makefile'</TT> (see section <A HREF="gimpprint_7.html#SEC12">3.2 @command{make}</A>) or by an @command{m4} macro in a @command{configure}
+script (see section <A HREF="gimpprint_8.html#SEC13">3.3 @command{autoconf}</A>).
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_5.html">previous</A>, <A HREF="gimpprint_7.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_7.html b/doc/manual-html/gimpprint_7.html
new file mode 100644
index 0000000..7a792c3
--- /dev/null
+++ b/doc/manual-html/gimpprint_7.html
@@ -0,0 +1,39 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - make</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_6.html">previous</A>, <A HREF="gimpprint_8.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC12" HREF="gimpprint_toc.html#TOC12">3.2 @command{make}</A></H2>
+<P>
+<A NAME="IDX8"></A>
+
+</P>
+<P>
+If you use @command{make} with your own <TT>`Makefile'</TT> files, then you are on
+your own. This manual offers no assistance with doing this. Only the following
+suggestion is offered:
+
+</P>
+
+<PRE>
+GIMPPRINT_VERSION = $(shell gimpprint-config --version)
+GIMPPRINT_CFLAGS = $(shell gimpprint-config --cflags)
+GIMPPRINT_LIBS = $(shell gimpprint-config --libs)
+</PRE>
+
+<P>
+How you choose to use these variables is entirely up to you. See Info file `make', node `Top', for more information.
+
+</P>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_6.html">previous</A>, <A HREF="gimpprint_8.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_8.html b/doc/manual-html/gimpprint_8.html
new file mode 100644
index 0000000..e35f343
--- /dev/null
+++ b/doc/manual-html/gimpprint_8.html
@@ -0,0 +1,66 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - autoconf</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_7.html">previous</A>, <A HREF="gimpprint_9.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC13" HREF="gimpprint_toc.html#TOC13">3.3 @command{autoconf}</A></H2>
+<P>
+<A NAME="IDX9"></A>
+<A NAME="IDX10"></A>
+
+</P>
+<P>
+The @command{autoconf} program produces a Bourne shell script called
+<TT>`configure'</TT> from a template file called <TT>`configure.in'</TT>.
+<TT>`configure.in'</TT> contains both Bourne shell script, and @command{m4} macros.
+@command{autoconf} expands the @command{m4} macros into `real' shell script.
+The resulting <TT>`configure'</TT> script performs various checks for installed
+programs, compiler characteristics and other system information such as
+available headers and libraries. See Info file `autoconf', node `Top', for
+more information.
+
+</P>
+<P>
+GIMP-Print provides an @command{m4} macro, <CODE>AM_PATH_GIMPPRINT</CODE>, suitable for
+use in a <TT>`configure.in'</TT>. It defines the environment variables
+@env{GIMPPRINT_CFLAGS}, @env{GIMPPRINT_LIBS} and @env{GIMPPRINT_CONFIG}. You can
+optionally specify a minimum version of the library to use, and shell script to
+run if the test suceeds or fails.
+
+</P>
+<P>
+<DL>
+<DT><U>Macro:</U> <B>AM_PATH_GIMPPRINT</B> <I>([<VAR>minimum-version</VAR> [, <VAR>action-if-found</VAR> [, <VAR>action-if-not-found</VAR>]]])</I>
+<DD><A NAME="IDX11"></A>
+Check for an installed version of GIMP-Print greater than or equal to
+<VAR>minimum-version</VAR>.
+
+</P>
+<P>
+<VAR>action-if-found</VAR> is a list of shell commands to run if the check
+for the library succeeds; <VAR>action-if-not-found</VAR> is a list of
+shell commands to run if the check fails.
+
+</P>
+<P>
+The macro sets the following environment variables: @env{GIMPPRINT_CFLAGS},
+@env{GIMPPRINT_LIBS} and @env{GIMPPRINT_CONFIG}. It also will substitute them
+into any <TT>`Makefile.in'</TT> you specify in <CODE>AC_OUTPUT</CODE> because it calls
+<CODE>AC_SUBST</CODE> for each of them. However, you will probably be using
+@command{automake} to generate your <TT>`Makefile.in'</TT> files
+(see section <A HREF="gimpprint_9.html#SEC14">3.4 @command{automake}</A>).
+
+</P>
+</DL>
+
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_7.html">previous</A>, <A HREF="gimpprint_9.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_9.html b/doc/manual-html/gimpprint_9.html
new file mode 100644
index 0000000..93d7d58
--- /dev/null
+++ b/doc/manual-html/gimpprint_9.html
@@ -0,0 +1,79 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - automake</TITLE>
+</HEAD>
+<BODY>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_8.html">previous</A>, <A HREF="gimpprint_10.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+<P><HR><P>
+
+
+<H2><A NAME="SEC14" HREF="gimpprint_toc.html#TOC14">3.4 @command{automake}</A></H2>
+<P>
+<A NAME="IDX12"></A>
+
+</P>
+<P>
+The @command{automake} program can be used to generate <TT>`Makefile.in'</TT> files
+suitable for use with a <TT>`configure'</TT> script generated by
+@command{autoconf}. As @command{automake} <EM>requires</EM> @command{autoconf},
+this section will assume the use of a <TT>`configure'</TT> script which uses the
+<CODE>AM_PATH_GIMPPRINT</CODE> macro (there is little point in <EM>not</EM> using it!).
+
+</P>
+<P>
+It is highly recommeded that you use GNU @command{autoconf} and
+@command{automake}. They will allow you to make your software build on most
+platforms with most compilers. @command{automake} makes writing complex
+<TT>`Makefile'</TT> files very easy, by expressing how to build your packages
+in terms of what files are required to build a project and the installation
+locations of the files. It imposes a few limitations over using plain
+<TT>`Makefile'</TT> files, such as in the use of conditionals, but these problems
+are vastly outweighed by the benefits it brings. It also creates many extra
+targets in the generated <TT>`Makefile.in'</TT> files such as @command{dist},
+@command{distcheck}, @command{clean}, @command{distclean},
+@command{maintainer-clean} and @command{tags}, and there are many more more
+available. See Info file `automake', node `Top', for more information.
+
+</P>
+<P>
+Because <CODE>AM_PATH_GIMPPRINT</CODE> calls <CODE>AC_SUBST</CODE> to substitute
+@env{GIMPPRINT_CFLAGS}, @env{GIMPPRINT_LIBS} and @env{GIMPPRINT_CONFIG},
+@command{automake} will automatically set these variables in the
+<TT>`Makefile.in'</TT> files it generates, requiring no additional effort on
+your part!
+
+</P>
+<P>
+As in previous examples, we will make a program @command{prog} from a file <TT>`prog.c'</TT>. This is how one might build write a <TT>`Makefile.am'</TT> to do this:
+
+</P>
+
+<PRE>
+AUTOMAKE_OPTIONS = 1.4 gnu
+MAINT_CHARSET = latin1
+
+@SET_MAKE@
+
+CFLAGS = @CFLAGS@
+
+INCLUDES = @INCLUDES@ $(GIMPPRINT_CFLAGS)
+
+bin_PROGRAMS = prog
+prog_SOURCES = prog.c
+prog_LDADD = $(GIMPPRINT_LIBS)
+
+MAINTAINERCLEANFILES = Makefile.in
+</PRE>
+
+<P>
+That's all there is to it! Please note that this example also requires the
+macro <CODE>AC_PROG_MAKE_SET</CODE> to be used in <TT>`configure.in'</TT> and the use of
+<CODE>AC_SUBST</CODE> to substitute @env{CFLAGS} and @env{INCLUDES} where
+<CODE>@CFLAGS@</CODE> and <CODE>@INCLUDES@</CODE> are found in the file, respectively.
+<P><HR><P>
+Go to the <A HREF="gimpprint_1.html">first</A>, <A HREF="gimpprint_8.html">previous</A>, <A HREF="gimpprint_10.html">next</A>, <A HREF="gimpprint_47.html">last</A> section, <A HREF="gimpprint_toc.html">table of contents</A>.
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_foot.html b/doc/manual-html/gimpprint_foot.html
new file mode 100644
index 0000000..1980040
--- /dev/null
+++ b/doc/manual-html/gimpprint_foot.html
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Footnotes</TITLE>
+</HEAD>
+<BODY>
+<H1>GIMP-Print</H1>
+<H2>The print plugin for the GIMP</H2>
+<H2>Version 4.2.7, 27 October 2001</H2>
+<ADDRESS>The GIMP-Print Project</ADDRESS>
+<P>
+<P><HR><P>
+<H3><A NAME="FOOT1" HREF="gimpprint_20.html#DOCF1">(1)</A></H3>
+<P>@uref{http://www.gimp.org
+<H3><A NAME="FOOT2" HREF="gimpprint_20.html#DOCF2">(2)</A></H3>
+<P>The output resolution of the plugin.
+<H3><A NAME="FOOT3" HREF="gimpprint_20.html#DOCF3">(3)</A></H3>
+<P>For Postscript printers.
+<H3><A NAME="FOOT4" HREF="gimpprint_20.html#DOCF4">(4)</A></H3>
+<P>Again, that's relative to the paper
+corner, not the printable area, which is usually smaller.
+<H3><A NAME="FOOT5" HREF="gimpprint_23.html#DOCF5">(5)</A></H3>
+<P>@email{gimp-print-devel@lists.sourceforge.net
+<H3><A NAME="FOOT6" HREF="gimpprint_23.html#DOCF6">(6)</A></H3>
+<P>@email{gimp-print-devel@lists.sourceforge.net
+<P><HR><P>
+This document was generated on 11 June 2004 using the
+<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
+translator version 1.51.</P>
+</BODY>
+</HTML>
diff --git a/doc/manual-html/gimpprint_toc.html b/doc/manual-html/gimpprint_toc.html
new file mode 100644
index 0000000..4c34629
--- /dev/null
+++ b/doc/manual-html/gimpprint_toc.html
@@ -0,0 +1,108 @@
+<HTML>
+<HEAD>
+<!-- This HTML file has been created by texi2html 1.51
+ from .././gimpprint.texi on 11 June 2004 -->
+
+<TITLE>GIMP-Print - Table of Contents</TITLE>
+</HEAD>
+<BODY>
+<H1>GIMP-Print</H1>
+<H2>The print plugin for the GIMP</H2>
+<H2>Version 4.2.7, 27 October 2001</H2>
+<ADDRESS>The GIMP-Print Project</ADDRESS>
+<P>
+<P><HR><P>
+<UL>
+<LI><A NAME="TOC1" HREF="gimpprint_1.html#SEC1">Preface</A>
+<LI><A NAME="TOC2" HREF="gimpprint_2.html#SEC2">GNU GENERAL PUBLIC LICENSE</A>
+<UL>
+<LI><A NAME="TOC3" HREF="gimpprint_2.html#SEC3">Preamble</A>
+<LI><A NAME="TOC4" HREF="gimpprint_2.html#SEC4">How to Apply These Terms to Your New Programs</A>
+</UL>
+<LI><A NAME="TOC5" HREF="gimpprint_2.html#SEC5">Copying summary</A>
+<LI><A NAME="TOC6" HREF="gimpprint_3.html#SEC6">1 Overview</A>
+<LI><A NAME="TOC7" HREF="gimpprint_4.html#SEC7">2 Using libgimpprint</A>
+<UL>
+<LI><A NAME="TOC8" HREF="gimpprint_4.html#SEC8">2.1 Code prerequisites</A>
+<LI><A NAME="TOC9" HREF="gimpprint_4.html#SEC9">2.2 Linking with libgimpprint</A>
+</UL>
+<LI><A NAME="TOC10" HREF="gimpprint_5.html#SEC10">3 Integrating libgimpprint</A>
+<UL>
+<LI><A NAME="TOC11" HREF="gimpprint_6.html#SEC11">3.1 @command{gimpprint-config}</A>
+<LI><A NAME="TOC12" HREF="gimpprint_7.html#SEC12">3.2 @command{make}</A>
+<LI><A NAME="TOC13" HREF="gimpprint_8.html#SEC13">3.3 @command{autoconf}</A>
+<LI><A NAME="TOC14" HREF="gimpprint_9.html#SEC14">3.4 @command{automake}</A>
+</UL>
+<LI><A NAME="TOC15" HREF="gimpprint_10.html#SEC15">4 Functions</A>
+<UL>
+<LI><A NAME="TOC16" HREF="gimpprint_11.html#SEC16">4.1 Main functions</A>
+<LI><A NAME="TOC17" HREF="gimpprint_12.html#SEC17">4.2 <CODE>stp_vars_t</CODE> functions</A>
+<LI><A NAME="TOC18" HREF="gimpprint_13.html#SEC18">4.3 Dither functions</A>
+<LI><A NAME="TOC19" HREF="gimpprint_14.html#SEC19">4.4 Options functions</A>
+<LI><A NAME="TOC20" HREF="gimpprint_15.html#SEC20">4.5 Paper functions</A>
+<LI><A NAME="TOC21" HREF="gimpprint_16.html#SEC21">4.6 Printer functions</A>
+<LI><A NAME="TOC22" HREF="gimpprint_17.html#SEC22">4.7 Settings functions</A>
+<LI><A NAME="TOC23" HREF="gimpprint_18.html#SEC23">4.8 Version functions</A>
+<UL>
+<LI><A NAME="TOC24" HREF="gimpprint_18.html#SEC24">4.8.1 Version macros</A>
+<LI><A NAME="TOC25" HREF="gimpprint_18.html#SEC25">4.8.2 Version variables</A>
+</UL>
+</UL>
+<LI><A NAME="TOC26" HREF="gimpprint_19.html#SEC26">5 Programs</A>
+<UL>
+<LI><A NAME="TOC27" HREF="gimpprint_20.html#SEC27">5.1 The GIMP Print plugin</A>
+<UL>
+<LI><A NAME="TOC28" HREF="gimpprint_20.html#SEC28">5.1.1 Preview</A>
+<LI><A NAME="TOC29" HREF="gimpprint_20.html#SEC29">5.1.2 Printer Settings</A>
+<LI><A NAME="TOC30" HREF="gimpprint_20.html#SEC30">5.1.3 Position</A>
+<LI><A NAME="TOC31" HREF="gimpprint_20.html#SEC31">5.1.4 Scaling</A>
+<LI><A NAME="TOC32" HREF="gimpprint_20.html#SEC32">5.1.5 Image Settings</A>
+<UL>
+<LI><A NAME="TOC33" HREF="gimpprint_20.html#SEC33">5.1.5.1 Adjust Output</A>
+<LI><A NAME="TOC34" HREF="gimpprint_20.html#SEC34">5.1.5.2 Dither Algorithm</A>
+</UL>
+<LI><A NAME="TOC35" HREF="gimpprint_20.html#SEC35">5.1.6 Action Buttons</A>
+</UL>
+<LI><A NAME="TOC36" HREF="gimpprint_21.html#SEC36">5.2 Ghostscript driver</A>
+<LI><A NAME="TOC37" HREF="gimpprint_22.html#SEC37">5.3 CUPS driver</A>
+</UL>
+<LI><A NAME="TOC38" HREF="gimpprint_23.html#SEC38">6 Reporting Bugs</A>
+<LI><A NAME="TOC39" HREF="gimpprint_24.html#SEC39">7 Appendices</A>
+<LI><A NAME="TOC40" HREF="gimpprint_25.html#SEC40">A Dithering</A>
+<LI><A NAME="TOC41" HREF="gimpprint_26.html#SEC41">B Weaving for inkjet printers</A>
+<UL>
+<LI><A NAME="TOC42" HREF="gimpprint_27.html#SEC42">B.1 Introduction</A>
+<LI><A NAME="TOC43" HREF="gimpprint_28.html#SEC43">B.2 Weaving algorithms</A>
+<UL>
+<LI><A NAME="TOC44" HREF="gimpprint_29.html#SEC44">B.2.1 Simple weaving algorithms</A>
+<LI><A NAME="TOC45" HREF="gimpprint_30.html#SEC45">B.2.2 Perfect weaving</A>
+<LI><A NAME="TOC46" HREF="gimpprint_31.html#SEC46">B.2.3 Weaving collisions</A>
+<LI><A NAME="TOC47" HREF="gimpprint_32.html#SEC47">B.2.4 What makes a "perfect" weave?</A>
+<LI><A NAME="TOC48" HREF="gimpprint_33.html#SEC48">B.2.5 Oversampling</A>
+</UL>
+</UL>
+<LI><A NAME="TOC49" HREF="gimpprint_34.html#SEC49">C ESC/P2</A>
+<UL>
+<LI><A NAME="TOC50" HREF="gimpprint_35.html#SEC50">C.1 Introduction to ESC/P2</A>
+<LI><A NAME="TOC51" HREF="gimpprint_36.html#SEC51">C.2 Standard commands</A>
+<LI><A NAME="TOC52" HREF="gimpprint_37.html#SEC52">C.3 Remote Mode Commands</A>
+<LI><A NAME="TOC53" HREF="gimpprint_38.html#SEC53">C.4 Appropriate Remote Commands</A>
+</UL>
+<LI><A NAME="TOC54" HREF="gimpprint_39.html#SEC54">D Adding a new printer</A>
+<UL>
+<LI><A NAME="TOC55" HREF="gimpprint_40.html#SEC55">D.1 <TT>`printers.xml'</TT></A>
+<LI><A NAME="TOC56" HREF="gimpprint_41.html#SEC56">D.2 The driver file</A>
+<LI><A NAME="TOC57" HREF="gimpprint_42.html#SEC57">D.3 Epson inkjet printers</A>
+<LI><A NAME="TOC58" HREF="gimpprint_43.html#SEC58">D.4 Tuning the printer</A>
+<LI><A NAME="TOC59" HREF="gimpprint_44.html#SEC59">D.5 Canon inkjet printers</A>
+</UL>
+<LI><A NAME="TOC60" HREF="gimpprint_45.html#SEC60">Data Type and Variable Index</A>
+<LI><A NAME="TOC61" HREF="gimpprint_46.html#SEC61">Function and Macro Index</A>
+<LI><A NAME="TOC62" HREF="gimpprint_47.html#SEC62">Concept Index</A>
+</UL>
+<P><HR><P>
+This document was generated on 11 June 2004 using the
+<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
+translator version 1.51.</P>
+</BODY>
+</HTML>
diff --git a/doc/manual-html/print-color.png b/doc/manual-html/print-color.png
new file mode 100644
index 0000000..db1af3f
--- /dev/null
+++ b/doc/manual-html/print-color.png
Binary files differ
diff --git a/doc/manual-html/print-main.png b/doc/manual-html/print-main.png
new file mode 100644
index 0000000..2d78222
--- /dev/null
+++ b/doc/manual-html/print-main.png
Binary files differ
diff --git a/doc/manual-html/print-setup.png b/doc/manual-html/print-setup.png
new file mode 100644
index 0000000..904e03b
--- /dev/null
+++ b/doc/manual-html/print-setup.png
Binary files differ
diff --git a/doc/new-printer.texi b/doc/new-printer.texi
index 672d92c..8ab4f2e 100644
--- a/doc/new-printer.texi
+++ b/doc/new-printer.texi
@@ -152,6 +152,9 @@ typedef struct escp2_printer
int black_nozzles; /* Number of black nozzles (may be extra) */
int min_black_nozzles; /* # of black nozzles (may be extra) */
int black_nozzle_separation; /* Separation between rows */
+ int fast_nozzles; /* Number of fast nozzles */
+ int min_fast_nozzles; /* # of fast nozzles (may be extra) */
+ int fast_nozzle_separation; /* Separation between rows */
/*****************************************************************************/
int xres; /* Normal distance between dots in */
/* softweave mode (inverse inches) */
@@ -176,44 +179,53 @@ typedef struct escp2_printer
int max_paper_height; /* Maximum paper height, in points */
int min_paper_width; /* Maximum paper width, in points */
int min_paper_height; /* Maximum paper height, in points */
- /* Softweave: */
- int left_margin; /* Left margin, points */
- int right_margin; /* Right margin, points */
- int top_margin; /* Absolute top margin, points */
- int bottom_margin; /* Absolute bottom margin, points */
- /* "Micro"weave: */
+ /* Printer interleave: */
int m_left_margin; /* Left margin, points */
int m_right_margin; /* Right margin, points */
int m_top_margin; /* Absolute top margin, points */
int m_bottom_margin; /* Absolute bottom margin, points */
+ /* ROLL FEED: */
+ /* Softweave: */
+ int roll_left_margin; /* Left margin, points */
+ int roll_right_margin; /* Right margin, points */
+ int roll_top_margin; /* Absolute top margin, points */
+ int roll_bottom_margin; /* Absolute bottom margin, points */
+ /* Printer interleave: */
+ int m_roll_left_margin; /* Left margin, points */
+ int m_roll_right_margin; /* Right margin, points */
+ int m_roll_top_margin; /* Absolute top margin, points */
+ int m_roll_bottom_margin; /* Absolute bottom margin, points */
/*****************************************************************************/
int extra_feed; /* Extra distance the paper can be spaced */
/* beyond the bottom margin, in 1/360". */
/* (maximum useful value is */
/* nozzles * nozzle_separation) */
int separation_rows; /* Some printers require funky spacing */
- /* arguments in microweave mode. */
+ /* arguments in interleave mode. */
int pseudo_separation_rows;/* Some printers require funky */
/* spacing arguments in softweave mode */
int zero_margin_offset; /* Offset to use to achieve */
/* zero-margin printing */
-/*****************************************************************************/
- /* The stylus 480 and 580 have an unusual arrangement of
- color jets that need special handling */
- const int *head_offset;
int initial_vertical_offset;
int black_initial_vertical_offset;
+ int extra_720dpi_separation;
/*****************************************************************************/
const int *dot_sizes; /* Vector of dot sizes for resolutions */
const double *densities; /* List of densities for each printer */
const escp2_variable_inklist_t *inks; /* Choices of inks for this printer */
/*****************************************************************************/
- const double *lum_adjustment;
- const double *hue_adjustment;
- const double *sat_adjustment;
const paperlist_t *paperlist;
+ const res_t *reslist;
+ const inklist_t *inklist;
+/*****************************************************************************/
+ const int *bits;
+ const int *base_resolutions;
+ const input_slot_list_t *input_slots;
+/*****************************************************************************/
+ const init_sequence_t *preinit_sequence;
+ const init_sequence_t *postinit_remote_sequence;
@} escp2_printer_t;
@end example
@end deftypevr
@@ -330,13 +342,12 @@ adjustment values. These are not currently discussed here.
The lists of dot sizes and densities contain values for 13 printing
-modes: 120/180 DPI using printer weaving (single row; incorrectly
-referred to as ``microweave'') and ``soft'' weaving (the driver
-determines the exact pattern of dot layout), 360 DPI microweave and
-softweave, 720x360 DPI microweave and softweave, 720 DPI microweave
-and softweave, 1440x720 microweave and softweave, 2880x720 microweave
-and softweave, and 2880x1440 softweave only. Printer weaving is
-referred to as ``microweave'' for historical reasons.
+modes: 120/180 DPI using printer weaving (single row;
+referred to as ``interleave'') and ``soft'' weaving (the driver
+determines the exact pattern of dot layout), 360 DPI interleave and
+softweave, 720x360 DPI interleave and softweave, 720 DPI interleave
+and softweave, 1440x720 interleave and softweave, 2880x720 interleave
+and softweave, and 2880x1440 softweave only.
For the dot sizes, the value for each element in the vector selects
the dot size to be used when printing at this (or similar)
diff --git a/doc/print-color.eps b/doc/print-color.eps
new file mode 100644
index 0000000..7c68f37
--- /dev/null
+++ b/doc/print-color.eps
@@ -0,0 +1,788 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (print-color.eps)
+%%CreationDate: (Sun Feb 29 19:56:02 2004)
+%%BoundingBox: 0 0 382 406
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 382 406
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+383 407
+12.000000
+383 407
+0
+0
+0
+GhVN?ED2SjhZ*W-^\lPFpqt%gO>Ot11r^Ag0fCflU8CBdRaif'=']4f9cLReX_ogSf1hX:_<
+eVA_5TpAA)4`H$%ei+3^L>dOfg4BQ:b5S[8JH=8k1I[IF$1+m<H(1h7N,smbd9>J(O9&;m3pG
+Y"S-SaJY@1J<5kSd(^q,Z*%EHq?JC%KS6YDJ*l@qQ_XS>cdb8,dA'53i1uHr:mUk9jnqW5pp#
+>:jBmrH$[dE[no2?'gE.O;k.o=Ak/Q;.lM#Mt?gdW3qOJl1nU:D_%P8rj[Jc'1`8C%(Yoi0/\
+WaeJkN^r%lf#2KnaXL5j+$C3r$,>B4r=7Tr[E1-n.GL]f#.:\cHOV<r#[:^SN?H>YPOg3L\LN
+3j?L0Fq0DkT98ML'p#k;K\$l)cQUAM)qp"NC_qHchp@"R;Y7L1#V_'1dn([jNT>(BsCEib`rU
+3J[]W3-(qt&l5\FTI'!5I+C2_XH'ru(j[NP>e=D]\+$GOdi(r8td:4Dc78J)C77nbM_FNuNS7
+kNY9Yjn%diIntp%s(hE-k,7X.SC/K^q-4[(&c+`D5D%5-GBL&@>T1A0cdcD$X4BLHjn"E%bYE
+P7U$*T=kDu.AOO1a\&**9%n)QUDL:R/]2cC5_5!8?(LLg5'k79n!olos%bqg'jFpSKRfYdL^&
++8NV#h352qAjr)?7,XKm([`*oCo?]20Zgfnr'(:G?7_X\3]b&B7<dWh`ks$TmtPj&UaTQj=fA
+>rQYl85JH^a5Ee?id/Q?-`BBi#ImM@eT)-_)b^XF!i?LNKq2_V)KS5$XXns!.X$;$_hf&3B.K
+@?.ho+]m4PPAYk=eE;kb$5JQh,.0ht_WfIK!B5&*%a'O*1,>5nakDqD[\HHT=<L%toUhK`:_X
+qR?L0oZ+us6:+"*s-qtc=$$II6:+$=h^%,),UE"88\dhe8EaEDJ<,eRd(^h,+!Df$In9]*fc9
+2<q;;;:ju>HGR2JaqF)$SrPIqpp_urFNNf>bIar<Nj8*G-F29[3k*=gd.f\a`QCp[AkZ%q.@m
+-NY5$U6N?@h[VOf\42,)qj#b;[0t<k?ACCUQ2P0n225IBmI(S051-NRSTu/5fnG>HsFM.b.1H
+rD5H#3j2PQ2PB(dh=%\i5k$h17([52#EfnR7+rBcS`,ZI775u+D\Hq=A+G*r'Y6Z0]>TsT50I
+VNYKROML,$7:t'qnib:(]$;0^$69KD$:lk.m@:jr>4YT[,o6%dJ+3Rfcq+ZoP)-JL1We*2mnN
+bX"Z-'L3NY#>+t6:]s=?!^HhJ!@$KVSP9FcA95N(-aA1tCm*0O_\9ZticenF3D.&I^(HC8koQ
+_F8Z.3$!S[G'DrXo"IaQ&k?+eP#o+moRdpf&^NM[K");3G+UOc-c)B,QXj'+Bg6cTjD*j=]\%
+?IObU5I8Iq+N(F.]=n2V4<E@QHQeOQs6EB<64_FXqc#C.'jQNPt8#FE[;>K&RU+A$:Ir<]E7-
+:&R:@3EqgsM9&PiIQ&hVd%-GI!O8`^p/VA0`HC(@Q.6<g4,)05/P8N[r[#/;96ZX:WH-e31it
+Bip61&.F(.5\N<K!MQ"SEt;EhU]G74o:b-kem!6AYt'&W1TObs=XUJ58'Mi02Fa%6hl;I,YP/
+gkd^?_/P4(0a:,cnBjJ;lY_$'l#q+"_4^l>p<dd<'e:s3nB3Fjl<o[,?"S8Kpj!fCCZ-X1Ial
+:o"4-1FCg^0^%5iN'a-0]@=j7Tueu5QH;6+5M-''I!\=?@<H(^E!AZR;W6H\jcDO5=CR%$L3N
+C[tUC'0XbO][Zh0k/+X(*Qq9nT>,?6XVMDCZ0[E*[t>l$qW1`#50q<?Oba>=BD3*&D`'(/:aP
+sk*7X&5l1nqY(1LPR[:o7JNb08q5@YTg1AV_Km"oF`6a=6c@[SWasEug!l\W5/V8?^8oc)u7?
+IjRd/lKl!^9bRJ58)t+8B@^n4>4i1Gd;?.8ETX1;`5X,9bn^@q_)m*s3b[]6Sgl,>PfjF:I_C
++0XD^Y]?ClI9j4&n-]UWRX)`fXu:I1n8fg=CZ6]GI\^U\"'b&8\q\Hj^8Ig$RX,D^eZ;jBKTa
+A+q20bob?6.SO]!6dn`aL(OA]6&8dY6J\P&1?M=aQ=Fs+=9#s%!c`#_?h)o>f6?A`,>![[>SJ
+Tin4S)E"R+W1JC_S-'L)dlk\CGC-nd(Kp[lX3j'o-5q\d4RlR)AlPNGr6#2TJ&]C!U<a\FsV5
+\TO!SXjj6PkcA--PPY4jsL-gj)4NNk^A2.VQ;7$VW>SMu:&Kret^aH`,nB'hl';+mu5-kXl,c
+2ENA1YU>$/Q.H4N:U#%/Dk@_LS-T@JZK6EU_]`Iac>G)kC"jH>)d,Pn%-/ct90*`(Ot6Bjm?j
+SPB%;5`;5r#+FiP@1>HJnVidRC,TjP9$MQ[4K2k$-0l:.;9n3Bl:S%@nYK^/+Q`3K<(hI,bbm
+jsrCHBEl3S^dOf1PCEQ%Pp\d)XI`ZIQe2ZgVL08I"FSt0if^sI65b$j1^rb\lVKs_W.-0X3Ec
+HWT7@$\X9&a^Oa=q"mqRYtQU#Q7g_8l761m2G1h6!K/F!bbV$]`P4q:eFQH&&g;g/VRGgP!$g
+OTP-'UMboKci00-,pgeGq`TR+%I$2sk2oY#Q:.6"hi11EtO"ic>><[d239Fg\R!pE2%XJBDl(
+d!&Q^-0Kkj5%=K6@X+R!I@Q>8t=ji?]^qRb2K8Gs0J2cr.n[C\WaH-7qH`jp)fr;:DIQZ]_49
+q6#>GEkWj_)l5Y?@r3r-Q1A$#O%NM+jq1JQ3M[01odl9P+Rq;JLCdB-H2up%0`E>L8d+k(rrg
+!"n5R32(INO'W.9:TqKKbV%Vlr.GG9FG3p!S.$M-0C9$pt&eh&Rn7e7rD2F>.ZNU'GKN7rF$X
+bHH\<(Wcd%J;3L$DC^]MA8r=7p/%:q']AQR2A@c+C0qX7?HRS:F+k^>m^::F+;/AD?6C,e!uh
+8@Zp6emnRgW`98$_UC@$ECP3iiK>Y@djJ[\i#3bBJf1(gdht5:G`G6L,C8&O=]89VCf[n!DN;
+Tu<<Wb#?H(fdpFmQ3g3?9\TITjul1c23-To'p?H)?b&'l5Mcqf3TIq2UC]MqKN?)hgBt@BGp#
+MDE56IMo,[8013o)Y#;q?9n,g_A\@tLYuSDeF5[)micoc_K>iG:L[-,q`aX:!F#`/O/$nP\eX
+FV%$k0QQc$0Dm5rZEL[e4uDhXl!qCQC9N-Z@V2aXtpg1"$`K4Z^b;Q//3\I'(*:om(<$HSR/,
+Tj='-k\nY"9j\eI'PI-T5<q6n4ClDG+-N%hOA%"_Pmju%<6EId8<A\%$0nDS"X6pSK)])0Yl(
+"hQZO]Pp8Hi[YsP`\h(L+VUNK"2LaIK]9-0`GhG?OSmO>$>/uOY]V&cDQKP;o:;aDQ>#[=/q/
+I]F;R!9n+38`)Pc&)//nU<3V[E7&KR,B1&nTofq@07cO?A(^/`Oe_HOWgm_T+@57IV],0>V!!
+mgJV)Ja7Ri*QI$DYWmd>6a.SaodTMsM=1?+HifT@Qlh)t&)%b3h$mjSRWlWQ"*usG\"S7$C.k
+5S"K`)4)kgCFFV.SgTp29\%2>j><XAL.PUqS@+%8gGbsT;[8/<f8P9[`EZR>jHD!jOXH12A/p
+SU!WJC!ijj!!8"j5_WWpiq.=&N;(l3UUG!_;G=6qA?HaDrls"?LOVtK,tEVB"CYUDWA,?3fS5
+<nS843oXrVfbB<`_L0s4ZeacTqHSrI/As\D<Prr-iZO0mYq5KmVPgUgeHSO9NCb=]c#u?K4/B
+YV\oI6Tm7IhHE:*P-"Ysq.=5e%lq-P1YGJ`H77#-SN.@rQ-:oF_A/@=Jmf7ppZbf#-]OU\ebI
+WaIgeo91lq8,Es5XakCERM@M=#(8KMGG9NkC*/.I/$pV$g'irLl4$RlLN4Cb*e?Y8ZIP$QU1=
+F<b>FK7W>Gea$i&cipgdG-52"^unO_&IDMG-)c;$)SadEDJ':]PPC5d@,)>!CD#bu9,L)G/T_
+SPaCLADaoEQlQj%nF7qn"@unYF-U^HJ7S#U!(O9-=/LTWTRXk*Hea@n;<8)>$eAo<uTfB[&S@
+BabuFsTO;t(ccb!Eb&]>0/Z(s/F!3c1cm358.+<om.oL#A4H7:O&8t&)4[]_b^Pd(pJgV.DK`
+=bklesi)="T/eA+3LN?U;FB[\L'-U\@3!+$o)]YWN<b1GGfTILrVW_71T3:V]d-rE_<ELAK`)
+/V@q&ZuT,_K;Je:btuNT>`Xad.+Y+d$MeG$'L9).71r.X/`<s;^aJF\nB'hf_`[*(0_5i>W@?
++f1)]&p";;qRO"ii@.3E%ES94AJ0V_B4*"3?sU5ud"$sEC3%te0#fti2mULs?soX448$b]#UR
+eX"9DEV87]N3'g20A,.<D,h>^Xd?hbpt:;.=&Ie2?giHVcD#8V7\3d:GFLnfi?,b&tTd.F&Br
+/oVY6.Jtr^0G/W,HCIRk(_P]-FN*nFCn%ipmpDnKR_Y"\!hS`eblmL.e$eoZ'Fm(uCm\Aun$'
+lB94p'2SBKqI,B4+]4q#Ch!6GF%jQ)NSu=p9#[TIiO]G%_qN\eM.r:i8V="t5@+[MEm48le5Y
+J>2.ek+b0MaV"WHX@p>VS,4^"%q_6$iS76(bXRtii(St$`g@TSgrK0qVqd4?F4//l%Rp\J]8m
+OC_cBP)n5^>m*W44"TUB::hJ?\pKmk9F:%T<J>u,A@4a$\2L2J$HdF)%>@1BE>ku@2QP)`.`X
+e<@t"*.]sAY4pJMtrX&[R,EdTiK<pU<Ee:]9,.8A-Wa>,AofkN9DVpRkXgbJo(e#_#J%lrrc+
+R>jl+BJAHG;5DfA/f\V.d%_]'@q`$WDL#j/q7q&DeHPK_F_"\n<eM')prBW8(M>I1LXb:RF[#
+^nq(Gn4IQ:&%haq@ZiJmni)MBH8aOu8?'6IACr,q)m,JBoD?TBo1c-_'uBI-.;n>/4coK#nRf
+A"4Fu4Wb=^N4TrLk*2'R*K1GHZB'3GN*:M=LQO3D4#g[-/MkFA%(5W;(']a<CZ8%j"*t.ikca
+$+)Z"RJC$Db^LkZs.^K&[`j>W?G.6(SXCN9oMdOF5,@QL=_\r_(A#K48!b$7EiL=@#1?:(A&n
+I(/D8$iBWcS9<'n5BHRL>N.&L[]Zkf,5!f`aCUhn"\b?gH2X26uO<]ha$?2=DD8.%auqAIi5@
+Y@B;fe&K%*l?B)rlW'?*l-_Ykgg'UgHJS$jj4/(@<jYg)&5d:W,)^$e#aWlnL7Ss2^b>GJPOu
+rc;X@p>VS,6!/k3&,"jb"GJ(\!i^A1GIG"D:*75K;b4P<R9Nn=H,+@88m%G;)4rWBT1H0kP!u
+LQc#Ve%qu:\'9l!(hmKiKbHr4C>uaS+[&1%%+[.8__E0MC)Ns^5f6GVr@6Z#dT=QV$@9n[Q.&
+Z(O,Vs3dk0Z?KlfmG/ESfe`eh&).6E\oOLU7Z%C%Pt]nC>X`k)gFO2*dNcbfPs4D))s)#=er+
+2E=0rMO(>L@m_%)USF@3`!W`-HpTd]oMe)[(Zn-b@j'H6P]5`d!-E#C=K8VHOAL*W2bM_&(J4
+b.YDb'.^h[K"_BI1f:uk.A5X*V6Fm4%q2gDp[ogEn]+XVTk5GRWbR>Re1VJ=b>_M!10GS&3N3
+f:Lp$r"ePAV_&3TK0`#O`*UdDor?j&X0H37Z!I%c4TIAnK9*aYlo&n;`XY-JgX7U1^9QiAu^/
+32,@a/T4X1>f2Yl+Vhaj10DXQ"`K^uVOW38#%S]*VI)rF+`Bp8'D&d`j$DCYPRGTK82q3*+D+
+-N+5tB[rt7UJ!Z0h1!:P2X3oE&WThdCVLA`@hIgB7/XCooW-Zm+a:'3'9^jHcl#.3!Wo`U5odB
+%uZAa!JfisVg;T_;OP%RGFA<D$pSU##n%DCE\)+bsMWau2W$&LBl-4bBEYOKM!&7)1/h'Ca-+
+ref&"!^<#d5+#f*P3E8$':]GMDN*J61?E"\KIJimLH4\]I0Yr<9_L2Tj,B6Z4hTCc6jFA@:7F
+7\@_@]j(/>`-e\o'(hUOF5^fVU)CH/<RUm?5)):^F@k%thX8k(9J;(u8#YacB']HuU?@c!8g]
+T=9C6XkKlb1oBGJCG#RY9W!lgl9r?U/$@H0lBMN$3HRQ\%uj6k9=.I0Q\@gk?tcls&7Q6L:&&
+8D<O09:*V;a0V<s]*OP.[g'D1/RU:j/3:sDInL3\';0rGW_pCT,We8YHTrs&`09j(GYnII)b"
+<i7KTc"iX[CJS8./7u*0R-"5$=5&:H%qhq#'Up54]0WA>Y`^jF[^[9J@JrHAq)ccM9FY_DsR<
+LAANH.0icR9_C,Oj/eNP4e1p!r=7\n0PP.I`+0g"=u^$Q9G?k4GYcXR!u#fNe1dTV[$L5s`\i
+^U)-:fMaf.m-.<r=l0f`a?N6)nek+n6*Kq+CsNgN[@-A(jm;B[<<8-BLu,Bb))&&N4C%jO&eJ
+-16^]N=%%%+gg_\qIm@fXoMf!S^aZ5=P%]k\`n')_>W02T#)Mg/"F8*>m[#o:%G(JA)5I3n1p
+'g6\Ho!pt'-H3Tgj;"'1>'$<A9fEK5(P\l&#$VE<D<fA4OUkL4!!Qd+X/J7KoXos-X\c9V2LS
++((TB?%ck9l[S0JgO=Lm]u07[`f:_$D-mR3#toag?]b!N,a][W0U8\K9%=ENXq8(4L2apElck
+Qtg'PaA`gO#,_#d2/p!aZSe9'EE:99C>RS3^7+dr9IcI3A5^6S3KnL/P]B75R:=H43E+!:$1E
+^r:R$\\I2AkE8DZgF!q?h25ste\q_@M-d"B+mn6^h"$',1k!=W8RTFH&pqKlZ:L:%].B@6Z,3
+^8@q*Tdl?qD6ibBRLuBGL<LITb7,^1tJE#2:T>K>rAuBT^"ONSqd(A<;WAj5fI50PbCb\Gpu?
+D6+.h'CEZt0i00uDpgeGq`TN"Zr\253VYS+254]B3:N/M9q(^0UEo+k4&^J!K5KnC#k8g'7i-
+ZX0D4J'je&+iq1EF\AQn^C,@]#-Q(1rNL1biKJ7aFa11Ngpk0V`,Ib6QRFT]#u1+/ns"aTn))
+/!qr%>0_4=dk[eYR?fU6aL$V71"2jj$L.FYh*WrX6k!"<&;qZW$fMZ:D^%/uJ.MVkGhr/G"d]
+li%Lh'"mmFi!2CklBkj:]<#<L/I@YWP=;]FFT5jP%NCe""F(uC#H/MttPrWHtCKC3;a?UE9Nc
+l@f:&6&n-gkUd#;!^[):<9o<A2@a8;7$h]2(2Q58\T^Neg97<c2GHR+8Fb!cMbQ3+#rioVgmX
+S4=B;0RHMLN6h;:ekNG$Vo,O0rH_/.HFO&?tiBW-G);6jQB%W;U=,%_5=u%pIBZdP2_j1^j))
+c&>aAAL;6\]_$ei]Vn!OWG?rIC=A<'R&@!L7A"VQ!+m4AC*iV.n*#/5B-4Amq-k1rX0d;An7c
+j'E)_,[q)8M'EYNXXHMEg`4@J&AA.WI^m'.p;#pE@gE0hkd/1X&$$/Q<cn#/UDmi-@CEs^7[j
+^dm5WpZ-6l8Cj)"nTd\FMgYLhgb>.grS93Su)Ku4fK;WE97qio`;J_^\"/AjA+2O@gH%-reT>
+)JRKaHp:+*caZc$Tj7ZnB'gA`b1mLo:263o_\bS)+HBOa=rk;=GERgqAsV:!SqH"Vs-n(Oleo
+tI;.EtBUrYZ*4t@c0h9F]1k/<MpM<L-,t2=$9dpuYeBbF/Q?BO8RAFeeg0%J6Vrg1npSgb_R:
+KllMBpB/Pg?RUL9_[4cVQ[?_L%O&U\Gm!nI4i_E@6Ip8PCB@MB`s*+:<T8hJmdlpa1N,IQ5#[
+G]:WUb<rKC_J2SZ5It[p[,PmT54-A1SS5Lj"#J5i?u3m\XY:TcDapK&FaDOqijF*F>`4qjGX7
+8NWpmA"#LqD06A6&5<M3RtGo969fMmIq19<(EWWdd9$2A%<!^>;mO8-s!KMR?O),=`Yn9Mg+1
+dbu;V)^S,h],/Kkapi(pN1j[7u@Btp8)GlV0/(eZg>9LNr-1/Bhm*@AD7MsAn[]CdgQ][W)'W
+@_7BbbVQ$&^2U:SI20#YV<)$4M`QBVZm]nrEH&SRSb$lonUi_cRPEajrp^T`T$msC.V%?<EOF
+TQUlS3XYE/-/1NhIR8!SI@\il,I>^3&>^&:+Q.AOf6TcJ%ce'd*1E]c1gZ3+INeN$]35[H!fY
+]Of$NbrB,sN?5Z#]NgN_=rbrK3A$i%_EeY)X&5k5*[Pu0@#"g<b-4<pN?p!=6!Aq..96`LA7Y
+g+g"[)Gho,=\Hnl*)4Q'2-PA*M7S=!f"Napsf1dtc/,:U3:3BTstI6*N28?sm?gC12?m((0>"
+?R7'9[c*u;k.]E[S5(.`MU7(gnd3SL)B5'=YiY*,dhhu*Mk)Tokg]Q<(9t-Td%_O0]`s!]g^U
++(6;B4@UY(U&B3O(F>JP7)E1R`-K.P3*QN+-c6rn7Y`Ig:&=3L'q-isUU'DK>3'W(;K<X!:mY
+Ao=Ft5c?`L1T\44.TT.5Tg8iFG"g>#AqNlcj\!J62A&g5,$?*3$nc*M1jA?knnE<3!3)L##Af
+XFOQ,dP>X%@sn[7afqWJ"]?m)^et3*lq>,AS,4(qbQ9s=31XBkB9&,C3K[c!`N`R+cI-p/,>#
+J1*1ikq*ZYOs,hP%M>Fa8(H`#FQ`K%R;`+Y1Y1s*0t[bRQ2b,3oM7&Z0N+j@MOCF6!l7I;[-O
+&H^d3^cu0ari4TW49t?S!4.[)PCo2`I:GX/G)g!U\Hl=,8n#?E2@M*$"j="3:&A)M;iOm[W,E
+%kRHI%+6U?$nDLAUT+0bC6(%$6YTKu*r7Qrlp#>pfSEe$S(7[4V_1Xc$EM=2gNR0QCAHQ8ej+
+Ts9lLA[B%d@pt$Y:&&2;"\DDAC<YOB5hj!h7B;;3%@`4<h].,-7"q;?3s)MZnL6/-2AZmU:Ja
+E$iio3DRh=1;ueA'=/,'k?*nB8c!$YEf]VkLSsBqdh1cY'`7=H(8Eb,Sk4+]@7QQJgGDE6MQe
+\VQ3eIJZ"]__&G72)"BcOObntR^WP-F=!&^NNql..mV2pnnWUR4K9=]hS*m23.Z('0[=QlJiR
+,Vlq3AYWM@8GiS&sj:,.ZQ/k\.hAM(u=43+2k\icMI(!(M41O/poX3[R$Fgj)dMSD0XA66SI<
+a`lUugBgKEMYFAA;%UCSk2WAC+WXLk]a5KLdl_1>t;`a9sU9Y,Q1t\p"R0q]6fNNhX$HUAo?B
+2E>ONLC%KG@DG$i"7D!^>;mO8*6FpOKSacHIluPN(XS,I<n216gkP$qKd6Qf(E)mPp!"ke'PY
+N!#:1]0feef%]PJYUdqX0J0bI*iCI*[LcYp1lej*-4L"@")RJ5mKRHSeG6'9Z?h0B&(TQ8jeh
+Sf<k>4HB)+=,LKNi;lmdo6PWDo[Vdt>;.hl:7^m;tV.9Met:#J>Xk@<_3i`m=dEI8\C-NTV4p
+s=p04?2B<kohkoidElsrHQA;P?'O6if.iGkX;NVYF4p<$-1b>ZkZS1*,3E6#,q2Se;/bM:tFV
+4*@eGK;ha$Glr7K,$JUft;LqOLCa_Z5*06=l[1!4-=>%Ru!ouqW8AHUr'(F$*IZ7-\;mQl,,W
+RTscomC83#\]5MBc&Aa#H1Qk8cUX*4X8-#]4!RDmAI@]0blZNg:g42efkF[K'P01u;W(O+uuM
+HeI=ch7'J*;tga//ll>Sjr2cFWif7a@--!>fNCC'q%]4h;0JAH2G1_pTp66@`>9u7O?n(/k>O
+@,`7Y8EEL:82,RRHe+-,B6+O1,ZB0ZCV7?[uF\R68kgOhJ"7q4d?YbB@"f6_MM)m=GEQj$")W
+&C?L*Cj:QfEcUUSi5N"*`"\'Im#8sYuc_$Zm`,p:(?9!CfOo%&t:AT6%S#NXHd9i#mt6G=TjQ
+q9+.sl^aK!lnB'gA`[B$a3R4FL_C*IH$muYr9lhl2d4+p$*1<W"%Ypg$7d(,!@"Ng9BFE5a*I
+ED)]#fs4/Yb0"C%AOr3a96RHJ%jA%Gt"N@`((S%C*oEh&s*8<e!ig!7b/LlD*o*.rA8<=Dju5
+&kalUf#-JTP]j>$4=)!^Inl+PK29tk,R%*Zm0U/=d2Koj-r,QfVf=NunQl2"5Mkosn%i3\1^p
+(,&1?hCmDj2cFB0CI`R/S9e;4tn3+Bo!-6-pD1TaIkEM+1F)R*"uMFQs7LS>QrF=>UI7hm)qT
+N$n&.`dk,:k<'Zes8TOa/TadaKW;_q,3"bnAuF7ag)%sZFP8+B,5r,l!NrUIK?'D:*hn\_ao@
+mdgSrjln1e<oM'?O8p>s+@6/>S1!Y=]qgu27d2HE=.(fEDnBp6lH%[LTgY?Ubd5]@ICG\#M+(
+U"VF`u=E:j7WIbH1]#)B74-W\..oOd/(/FL1m-jddqc8(h#\>:;A8n.SDf'Xq#jQ9f:)B2U^[
+`1IZUNoRei$rOYV`nTN5)+7s7Du*?"`<d&i>rY$$<sS8Q*A@0IW"%9X]\&,eh0?XIcW]gs)2C
+mFfT)k5Z/:?bRSdM/?9K?F`9qr9eRF:DE\4_"TgXOXC<0B,TL;W\eg_do_eM1=9!CVd8J.7@i
+3QP$-i4PGal\&lB5RaB=\dl;e-m]<N(e;%MP7X%S)icRqJL@"6MCV<a6=#[&`g`%p'#.$ds?X
+0f@f7sLPHX(bq>H>ff$ba-]JToI8.TZoiKdbR<;lA`^ZMag.SO8V<.j0>u[Amnf01+;IO#0Vj
+)\J;A3X//8h5iQ%`j!3DFKL7IOf,.ZJXNGUEfG![m#AN8`#0lGGS9Nn8o^$/d[*FC#sY5jQ;7
++]K!376?P%j*;RR>G:K(e(miCid_2.R^(b'II3tH`Eje_1h3uqja-90`/].+>)R5YP\RJ6$C`
+m)TZ29mMNi@]!`B2&Q_?[)'dZs76iI-NGm.:qi0/QqpgeG1ifd]a-aeJ#P#M)jn;25G/jkgBM
+fLX@?^N(IkRMSl8EW].!ZW%gh[S;BdlP@;DqX5aLPqI61coCiAD>^P)5-L,RkE/tU](WZ>[lM
+Xem+lNS(dJ85"Ek#W\%2<WVi-K+&UG*nlEoZYk0b`bq+=9;?I<aV*n,L>84c=6%'Y!;E0e,D$
+%c<GVo\2'Z\);NoOda0*P26`sZ2nn_e[/%M.OO5s/YtTmdugi@-:A^"D5%-TY+5_;f.o0gX3I
+h5r(a@V7K?(a.F?>9gT-USJZpFc^=BTaL*C-rOQW$;r2$<+(sm"_Cdba79l(bHS>ZGu?1r^df
+[.P@Y'qA90uqo0$`!3KrOr%&X`.N&,L@'9`hn3>UReR(ccE$.0dSn4br6l+"P1+8`^XH"_?,B
+:)uVf\rXF6*m,Z.r=N]b?$NLaX/MI(TG0bL+_&"ZK<-L(2?'FodA7VW;_mY&#_V.b0s<HZi#6
+o%4lp_ZBHhWV">*3StMmFi`@RT-%hQ531@_3,cVNVMW;YmN^TQIj10.L%RM2O1O^>7ih-M]>^
+18pb!GC'j,&4af^QBcH[DIM`abRlAO2_%4&+AT%XBQG2.C>W8e'FIa6#j-WlN+_XOj.JMkV]&
+eNg.S)AQ:%;-8C7$EPYnE]N\`YZ(gH&XGtm\,a&IpcuVBRhG54k'i<94\e^mEf,tr-gi[1Rq#
+lehP)[AOW`H\%f>M_dGa2;LOF'o>dRgIO-<iZG1^N>6M"cWCi'!#/XL/;@8f)okG^\d"q0`\A
+^)UPRAg(GeK7V/L2%r5buDEtb'0i3ZhuDthdG[Tb%b)W)PtJVGa+A+MN:U+>R#u4GW#_J&l0l
+o-k95c#GQGmN$lZ>$t<QD:\[fO7>1tn?.^q9`?65.@okn;D()`"B.p];6f*Yi/_FZ)W<oEgf[
+>Z%7VlhZ7KYR4Z+^ghoiP:R[5pFE`L89XemOa]Kds0'@RUHd.j-:Y1-(Yd5V,9/&Je$E8AHT'
+'Ca-+I`<bSg&%;-iH0ZMEDFLjRH2;'L;FqB`R,6F@iPg%mH:^7c4N+OjhNhA)lCkOX+NQYG$S
+OsAQin,>A:[i[N;l!dFcR<cY9U[De=WYFW[pO"7"0.CLhQD25dC%Q`?6K2R9W[MA%O*::ZC]>
+0:/\nI(RFcU'K8LF@V/UAYtr9B1jC.[-f%i:/f#`ipft72V)F@s8Kr!\!f<b_r#5lu56S"Sj/
+][:<E*8o5u]@S8@4G@OQ!A/8u<A"s>Lg9J@,77O@o```Jql61"tZlZ8`Z!)oL/IJP_;M,^!/6
+>-37",<*.Bp/f@QF!OYXF5b79Cg(D?3-<j9YNk=TUe?glM6S/`;gt^h9*7;k0@g,g(rL6ao#j
+ib4Ff!(Zs/?g$naSSgJn*4X#&X0am#*FMYb]56j/JsM<O?_FBVD&mHgSArn-oEbsK;;]BJ(=o
+$g9f$q\;/9RISsi-Kl_up2j`+>86H)ff=&FF"V2$LHR`,L[<O/ilP!'NJU1e0D44;cD_Y,89#
+s9-H[MZGAYr.KgEKgZ)'#58I2LD^^K2!u>L9PY/)sl5(O7bCF>>`n.U2I'u`**Ni1#iiZV!V:
+5MUb1tDT4..$M>f\6pWt:ema=CbI*F2+^]kL23t5G<!dOJ`!YRj@>Pt^9<_NQ77G:_6<&IT!M
+A^O^aGUUp^YS6rikJ`^aHt_32c1bndZlV:/!>Ui`M;;!W)^6\PBVh_eqMjknrEq+T(N4?(ppH
+HbO%B-$Jq-dRA3^9qScZ1U_Ztj%!p#UYuXS7Q**.cG5lmW&mT<S#ee>9b#W6WjG`+ZgnA:LKX
+U5jTeo!T<\e>.juu^iH@i%;S8ElN>ZP+@m^UhP?=GBE?)qP'Lbk5`k$/k$Y!rQC]/Lr$`OA/(
+Y0"'bog'AZ+;$XCfk7;@4qu";:(.$$W`_$dY&A&=OE#f7P&J4`.34unf*]uO(G_$Wl%^d`)R@
+aOJbR>$;6Uc;Ludo/2"ga3>Rl&<sDM66rN(shua"P/5*c+RsQ!ER0@u83#1IaP`[XIDDCc(a)
+5qI:S3[m,BUOX4A;Z:N^40-g"0$S=1!FmSr;sH^lJ#nS>4b(PF687[^=H7_BpK::"1-7n2BSN
+=n;i?-`B2Rl=8<`V><W\Su5K2b(EYA=^F\1Ju.RnD.iB>8iO(q4XFkm?:@^W"pJ_B9OVKF.hc
+"sa,1^77'Rqpjl9Ga`:<mRIRq,5G`_A\rXeW*O`/:GIOqg6R2&AAZ*YHC4!D$tCkgSq]QWAD,
+0u(XAh5ZEM&o;.Z(rF6C9^lr`EFgm_BKF)WNf!J>U=D@OK3o1$mI]",nS1[;hUYEHm%@2I0o[
+ZF2,M'H3'X0:.?(gi'`Bp0ocDslD)\K&NAMu%Qioscsc*&5Pr0hbt@:jp3*dCP9":M1"0s5WL
+Y->ZK9Ch2RDW^%<#2F()uOApH!(rU[Au,7p5cl22D"odo7@GPP\ImQ[<n^HmcCAA*FcO2R%EH
+V5mb/P*0Aj0;^-VKA8;(;ohZW2hBaDEb!1M+u]qX3(-&g!YG/Nnj;Dga9Bs&7"Z'(+mOj(#*B
+Xp?AQ09l@d4[OVo>VEnZZ)MB!j]RZV)FNZL3?aJh[)/TPsSd3>Iq3?$tWOeY7'&ig]J;#k0X*
+%1hu5S5+B"FRL1!M=2rn)JJ9K&Hl\JtibLG[lD52a,'#3I/lcWrr:2O&p/1Cuq!H][Xn.*B\9
+!3AW66RbMLj@@NB29f*d@Uo0o;qDpOcYYN5B/RPXBb8S*jjq/==/,=95T2KW83?OT/G:@aY\?
+2-&Utf(nFV:hhZTuHVAAh#sOV/lf7RE&Y*b'DNjrp7MnN6sG&BKJg&)JW%/:hRCL6c4d1$jhG
+^DODuYV&E6@WX7mk@.O/_7U&N7;-%]em'&5d@:S30(c\fbXHq4C3-)lKf0`I,%sA@MkC\KR=g
+A:-ur.M"*kAKEZiO;nB'eqI'U;t`@![j`"_6qN("SS?mNZp@gn?;bf@L)Dn,$Pk-n*s*5"2FX
+*sp"`W7SCpX%J[CBo2<lo)3!`6[1OC#LF/Ial:o"4-1FCuG251t5@*A##?.<:bcta43;Li__"
+/XQ8s[WlqB)o>slo+lf/'mZMT\+h(%Q7Eg`8Y!Y[9ZkOr<P&$.]KD6A'<[50oiDg_%KjZ&*L%
+#nq>6%G">QksJM8>I]Y<`*pfTsFd*50PC/O?9;Q@,(k@EM+;1:/ZdE>b43_QX`#0cJ$0(S`l!
+\iaYmTP=ci9;#T"eRBpCTjeTJMbo]IGqM^0+VUP?"DJ>QEWgcq0EIe^mNHsU$i&L]^uoTgP7t
+SL@X*jlU\rEXRj/nqdl0t(PM\Fb)W8"e3c/t@C%#J[(Vf7n(D^=6o7Dh^gXsojZUTDt`/bB*8
+C+^KSuJKiL.s]I[!\d?-T-9MbnDSX.f!g*?WQZmEkW[ZF/=7R`e2609)1jupI_r"bafqq6`(R
+^&u;rY\HRi7Li5b!';@78AJj<\i!'<B^qUrI@X*dh.`0On%'G52/c+)9p'@`toLdNE#+]O;=U
+jsPQr]oo&?Q*i(8,q!$nJ#YJ]?fM?]J:rF:r9Y;7-h$V,/h!8do8P.e967K!H\a01O&-a;1Ht
+(K(hP7$-IP01Wf*WtOpDjqdI.r.NDpC!KC,1!-C#@hZKg@UtGV;3(Mj*8sUN7u->Mdd*Q=JF5
+T2gGia*?k;X1][FX>(>@!>RWu)s(L#I&A4I<Z)Yf_lT/?&43k!SC7E7W.q57uAYG"8,[oIfKa
+Yt_q6G]+2^+/<hV0kkS(Q8+%Pj1RVP40nTpPJZ)1('fl83M^gDBsBK?B/,*U,rtDJar+5DFZr
+%s.f($K4c]>V&1\u?jZ1(d(^I,9sDde]+Nj<d((3`@[N'^.RO"n['#,Q&N!-h=9JL?1p0=H.b
+#5#<rhV[<3:[_3Re\?,Z*Wu@MokQ;'q#[%jajk>E#:FOQN8[(D;j\:UVS-PKj&Z:O3&6fkDcL
+n;0Y[GCl#%7`Q>`jb/\g&I.((3Qt>JD`Hr$TVmig)dQKNl_1YCNXjbp]OL#7'5_UaU4jDC][4
+SL"$?2R]RcA0RVQTbZ!GP]C:7f#>0UXohc%s"8\K^oQ1I^1:R&.c``J(D9Zj,aXHN(/R"n+X"
+rS0(#E_&tjHE+_&`8Z%5")#.\.[g:#X49a*r$K>4pK>N\9;;Z*.qh,mmR2!f]98#MV`46hMTT
+V=@uuX!n1bgDaLK5`XQTf%mr)D7;,q]qR*8M"M-J;Y"$qkBF:FcJ8-Bp.o<Jj$44k@6,"$Z@`
+\+:Zingr-s3j,O%@&6WtOpDjrVD&qk*AGRH/IC;\P+D3'#"B-mLq4)I^_3i%T(1)0!qe5[PVH
+2L;HHpMdX#6QNgSTu0R9M-&DU\V2pd^M)UQ"+0_-DW(=OSu^gQ*C&$$>YUE:m:s)/fV7Hk8iA
+3pIQ7jX^/N1<1,]iQ?HNq8XHE!P0oq09'U^GH?UX/bOr>U;8,P&McQ`2o_G=\>&:t-!2urtWn
+1*DM&(`uR<FW06p:]\I".KACh<<[KmW*F;KOkD4gL5CBmG$"!'ugkCDh2=QoJ/7@7/[>>(.2.
++m5e30!f[oZePNB"Z4Ia$Tick$$0:n1=U*PW']hWl"9j],aVF<e[KLu`\VK[BRpg'#pD<<j6l
+;QS</@e6hAKnSa2eN6g`.EuG>=/Y(`8p\O#LmfDWOD"^[:#>*?;M,aNU\33ne7ci>!U7ReW/!
+2Ee/O]NE4G)KtFk?H\@DT%22^VHLm!Q2ISDD$m_;o8K3Z;Du_n?82me^0SgD&iPXCL574=WC?
+YC;Qh:D6fJsB0-bWSd?bEI`qYGt*^N$ns)[Zn$]c4/V_N9!K*Ph7$N3c;[NF(KkcI8Ij658+M
+ZW%]@+p>.EjY7fEBBWN0PlAj.iM&W^BM$7T\Bb>##l=)ZOZ9.:e@?cK8NZ*'VK7gjNCCEJSZ3
+]`/s+5i3R(tT:CE(?`DCZ'Ca-+IYH,7'U+`NM(g[#G_f:.N/_l+a63dRDMEplbK5iu_#`EZA&
+(RKQ+e;Gn)?kC^U;F*VTZnnD035UWf`;gg't]hB3tbUWhZ\N<ZNi-fiu]/)Kr+5WT#oacW9Tm
+"jQ-can\d_gLU5TQtN3W?-$UaS&@E8ik*:qOZnV$,E`L,]Rb;J@OD_h7JJj^?U[eH^bPVln/d
+:])Qjl2F9I47fFObW=kK<soalE[UAHB]4pfD]R%Jo.!pu&DFUsFlTm7F_A^Km2UE&rfU38&/-
+.$O!Pmj)j:_uK!"Q`fd8>0.FZ9lV?:pM&r$&Y$7.Rq7;"ak=oI'P4&T5<pCHlgKe4i?`dR@<.
+68L>[p2o.n<nM*du1?RWX#bu9,L)G/T_SPaCLADaonYVS&*r<KnUP%/MoU>#!dG;f\>3Ia4=q
+dG2%dN:lTY6@eC=oHEAM%cLr),n_RMSuj;=[%"]+jT_k;bQKQI6u;VoAR%8lHnf-#=7d!tij%
+@mmmGW?rnJ6c+BK]84.[kXgHb_KZ07D]j!#rn$,2J`eo#F;R&n5qVFVTt_MS(LYddpGm=[Mp>
+sC3<\q>R%?YAPA&bW@jRQcLLC_cO.ifuojt)X!SsNtDF7D11n12)6+$a9@T9F]iXqEWL3s_.<
+^O577JW#t76qt?MZnL6/HMJ[DOs'Ti;=QN$i%pti%mI:q[q+In6Up-0uc^Dj^W+[PA]4pB%4q
+YKAcjflJoC6+Y/1.*:)V/%ZX`V2q)F!oeq,#kV;Y_-@THt9@%A_*3,d?L(54E>2$#;TOGU(QW
+<rU8R!LC$=54F76,]efe)7[@Wk@hY)o8KBG'i7&^ACaOD[Rg%ET-B3.q!u&MkWbN:?]]5D>a2
+J[aT&$#_%NDo,M8TbA9EL&En$^C&^M=LI@@$/JVFHi]Pr@6P*`)XU=q<<_D]BNE!S&,HVimR=
+ej[C`(^K6@L"*ee2Ve6AU"%-9rXXG:7*b+t-&7S+b6.o@RCF;YG(!^9bSJ58)t.t#('@VV(4&
+LJkb'B6\[-:U#_j4"@4gl)\`d`FQ\7L'dpA(\d-.rY)7eA^l;(pn8+baTp`g?<J6%3p9qoGT]
+`Vl,+63kB+jdW&C4CXmNAGZ@InMI.lJYN-E%qoa7fcEBiSPOXQ?>,Al6aBf1"`4R5PH"8st5)
+5@+aj6&&,Aoj7,=L8tDT2Ag"TOFrTAXX>pCo^o\DG6P8IW<:q]"b&KC&fC2<]Gth63JM$d20s
+=2XY3g,3P,%-'-W4p8b(kat9'51EZ.Ft[ru6+[M)4/(=;oera@U"kTaNDQ]HffI1r6-3l_$;n
+/3dX2`[Kk(M\(('bH<<>A;gdCj!Qsk<0F&W!cP,S_"-[7koj;;N!RIDpc_RQ(6_jka&k2>;#n
++8>Lj)$:k4UcOSU4]p+*&fZaicf5J[W'I3RnX;.kh";@5[PP8f?gSYLmFWII]K/H9p^_i-*L<
+h83plKYKH)Xjju9AM`DpAPsY19GZi7o7'n+I7J\3+4\0`@E?=W[`'-]@K!6-Q+!YGcTFLl2i&
+q1gBt0TdoKEIT_>Z(`oru+5CBJnKd<u(e26a_#o.)M/d=)e3<A817r#?,[kRXBW!:$1Em69_`
+T\Y7#h9_BR]`Y9)Te&XOAgfR3X;LMN.$6j)$:QHgQ(VM&,^BGTfp7.a2YRbHR0@ud;k0?<pCX
+8LrZ?L]pY,he[t"<:jeN,$OH:$:L6.LO&@.!$)@5!tVFHk;.+-:1`GAuu)mTC@\k1G0)f3)We
+Z'Qg2X@;BX))Tg:p"PMG'9sQY*Q4pl*co+d]TsaCY/"NhTqeJqgRtrqZf5Hkke_s5'`]JQk&W
+E/5t"kHC15^""+bGN8#5Z0fI2O_i.b:[4jAWHi4BInueB('8&b,(c^El3B[Hb%-Zp,dbi'4(=
+"baVr>"OhF?@&dA,c0$G,>hWi&M0>IAQFl)^aL_T>F,'_>osm3:8<*#HtVr"sH5OL^C9'aY9-
+f+8rhp^2V>0m<s'TAfYZ?5)*`\9d'e@%n%h?XrFb7QOrU*1"o)Ur>S\qEBN,/50\a4H1Bk]&/
+)<D0.[$pBJ".U&AQ0^4bV^co_PU4W9oCl6qn):co6`@FS:Ep)%NcJ[?%iHQ_!qMDC!sU28"&5
+3kl:'NHH,MRgLl.BMO8]S]K;_JG$$$d8a@R:U]5%m<T\1$)qdOq6nQfU*N;i\9Cn`[m&XnpWf
+u]o8Bt1%Cit@0=DQ]W5\DK0^N1=t[1%^4gW&$tpJSo1gP/.aBM(UYq*$^3WPtkcL[_b1kJ=8G
+H74h.!t=3@1CmaBJ^,O`qpl':D(HZ6:rWp^KWp,A]fqK"7rO?\,C&hEJH!L<C!\#nodepL*>,
+N-)o4'eGmmq@WlkoR-f4a"Xp;fRf^$kl(SYpX&^GFDjPD(><+cl`4\_$-`dTT1?f*:d"pB;(/
+#hr,L4,L9):NO$^E"<I5l$ULFJHgK3nWQLH?39)'*As+sO#Oisg#j?h'C0H8ru/2Pc!GaP(3g
+<#,69\Gi>0fdD;0U#O$YV7fQ6pDK7))j?h@a)o\JbQbneMGpqLlN'!n$On*_Jg1WC)Bi)eB";
+?5p[<]S<n<2T(=]AC)N-(:,VK2kc^dhbh7$^Lc?WT:V^]*D^4F7`eBWjM+PW5&H)^ih[pjIgb
+AZ@_=n>M=5b3RWum?c9`0ih1WE**0uEc=/DV/SJ:[=Ul[W+Ce#+mk6VfeT>G496c4?Rp%pCjE
+)q"L/RU:^0AZ->WGQFi):d+u8%.[TO*J*PgC8rDATW/Wf4fI!>E>cne&8`oU;f%`g.HX\$=]r
+_AY_l4?`dEH_+m'Q-$SXN_lnl$iAuE0"A7guB4#8dl8!tE1g<,0dV?WIRB<%:i1Qs.L0_0dGM
+(U.I9QY5Na1.H*2TAo;CLTuTqeFu+A5pOHOq@jBE^o>>:W@?*_bu5iGuqkpPmiKe.VDSrTTDG
+?(Q].Mk=<OIPSXW:i_tXo&U#:A'6AZ=DhIK_]Ye\miNg7='baY&IMlX^0_,mY-<S"":_*cE6/
+Mj5cbn65UCKGZUAGr&+/-"E\n5X58,GA]4b`%-TQpu],oRIo]`@/6.%Z"f.-bOi4+`oRO?SE!
+rK(!O64@iob-nJ4Z_<%J;,tK2R/9[,$B$I:ifam-^VG5IbHkHFB$S<L'Q[%3-CM7tCL_OPfjQ
+L9\R],\OI:Q0HC6KDD.;5?["7Ho51K14#?*[\ZqRk^e\Yi1P8Ydu9K)HmM@YqF.%$)P;9soSM
+mZfS11&58K^h[S`Jg'<-=TZiR"4pnO!&W_R35E!8GEdh6.Cgs#Jhk53T51t2Z`A,ggb<ZJE&[
+;I`;(>N*X7j5HMQ&r.Lac0^p+ZH=6^VV@,)L7o'B$FjOpOq(Zt56@/q(VpY>^RSQ6@(=]O_i>
+&:*:d,E/Z]H7rh,BCuJXXK<<hW+e8L5j06bEM4gE>3T_Pc$9iD[u!NR(4c.t?SXLp.G"@=a+4
+$a\&Q1[eb$MKpT@PK_dL[kU+ir%OJ>>deTsOL]i&HC6QFB4B0-S:S4'k4Hl@0WS\abA8-(/^-
++m8])i3QQ!E1if]HB"Z(12lC!bh;p1,aR;-=Z9NNu$B"FLH&^s(D"\^/56nX$a%&jLFG7b?03
+esp]5p,7%n9a)7_<ZdO-<t^RCm__`nR7CTM@g5tK<XuXW##PJoU0)F_XoF=h<;D"mS;t18*=O
+3SV-V\[%Bd&':Rg2jqQ;SBQtOI-'U&LnN>n*W-]Gg>1=OCoH:.TKk*Ctp-?8(A_SB^;So?a.c
+F=M'iqiW_X%WY.nm*bEJ:Y47TL@0iPGp(/"BmJR9j%dXK5*tX>j9^-<F77.kA&nQ-kk^iKY/D
+b)0bAAT24WIq>I#A];<f@TlnhY,iI@<k;=4oIDF4.kA2r(%"VeD5GTW-o;YGRR0;G-o;\HW^9
+!S-n#E+H(e&A.*)aLg-S)/-r^uiP!YkJ:_4EMjb8;b:_4BLJjKL]bK):Zr=I'r(?:5,7jN[_#
+R_"G">Doql"PB)s#;PhSX>q#h%#n`2f<$u3ip*5EXdYR\9o0\0#;@Yab5QgnZ;gt(SF!RN\@*
+TiS6H#[@sE#9hfm$4oF>:)]J5BlZi5:]_E\BHOb1@3%@9i%1Z$NTF);<.OqZ<(Wsn)jWF86KL
+#$V4_^mF=2Ll&qqq/_(b7:<@&Ukp!WrVO(-#Tm-dSbSSU!umC!Y7ok@gI)H!6PK=m"Wtqj6!*
+UH(hCNlE%J3HjM_c`n]b?&mVigTkY;Z7/F@QKg"?ZW(M8bYk]6q%E"[.*JhQ6YV;*)+lZcbYX
+g<H%r%%Kc(6G6n46c%^?G:.>/??`A&IRSM4Z-nBSl1a-7*00.,MZ]3o\fC]YjAY`?OTJfuWK/
+Ee%i:BUBs&)Wf&@m[X:(OC&7)dhh!=XVMZn<"K!gX4LX9f#OYd%H,n!O&Gp:uZa(lK*9%%St5
+dU]q(#GcV8L-.l.ISRQF8#<j>Jpof1hs4<I#qKF65MRe5r;dd2PA764F4<o-+nm'6lOQYscVj
+HYiE@OIkNfuKWZa=:(RcSLSegrCG**cs&L:nIn1GiZV9[f)8=.8tB4!%;oOP1E';J\q0.7Hso
+l6I=4<$eM;;Xo;.#HU]tQ=+Q]dKHTe.9U1mSDlNOitTH]N):-2U3VE5#\>]^66Lj43.+SJ_Jf
+a"CCYjjERP0)(VdS%_hICd==7Joa5@d=7aPeecPHF<K^T.bYn,`ZEP[>"7We>hf8WSupp^tZl
+>Td^&)*^k`MmI^V1D6u<uURk$I:5B>_-C*4B7.T)%P8k8d\-).OE_QJK839/&UK^5"/NZT474
+QnB#`+^P^>m6d&`U0p(F3Nmh-WZCG*m1W.<Cm2=X+*)1K6:$Y/M*c`sRrY0]X1ad!0deJ?I#O
+G&ZT3t0@\j^AoCl>VGcDDF90re`"]MDOlas\!%as4!K:_mL,4\EVn%T=!Pj^!a2/.YSlU+f,(
+OI4AS:(B&tpepT,i/Y\i`LgSo%)P15RieChN-Ol^)o&n%c%.AYkT<=`(k*OB%p"'r_8RQ7#&p
+7HH8@TVcl)@V&'f<m9omk#SC-<&(@S]l<%Hg?`p4PUU;fh8GX7&D9%5:4PG>Pr7q=S]K?'e??
+\Jgn`"a[:@qur?Q1-669)'*As+O6W'qbCR50JoH(s+Lsj[,8a--e,_3^Z\t;e\;AS:!kSMRF3
+hP8m?GqLFk7#8?H2A8e"#3))+G@l2-VFeALY4/14nW/\%K*a?Kt$<)#4l4=n%<!B60;R&L_4R
+;/ZRq(h*V#aWSU#Z\6r=o-35"j93KejG<#]Cc6jl":sR=ZZ7RrR)UY_=eM`5iq$qsfRTf=Vr@
+A&*d^#;/`d4:]gWN$J,KMJk&U0Eh=S3rAEW)5!@:cA;08[!(Jg*ZoJjUOua.`cf#JMV"<eZ3C
+Xn?>.,o'qS8hVEh7'O4W?P$jUMiOeT,gHR.6HJMJrJX8&bLiDX!Hn1!N!".s-Wk#V#o1:4uR$
+j.BmVE(3Ek96a$F='#9V#:=2$'$WY3)47ZQ5Bj:m#SG28ooZ_#`\Rl#dZ$TI>Amel@RLifs\\
+^GrEoE';.D%`]I/qWLTeoL@Q55q^D'@ek<!/e[I!tYjsH)h(3bK1e"*rJm60cGtd@.cX8khYl
+ns_0cYm)N*h1H2MWG?#(3rI`?dIe0)XYCG8%JG%`9-p8+<o$k:Pm7Jo1R\p>MMZm3]1YEOH*H
+h9bBUDC83Dd%H)m*Nup2j^u0(_=MC]Dnn.YaHUpIJ]Hk3>_d&3*j*8-.J?eN[fecBY^I6.@0r
+R#X+X8'pJ62-X8(aVn]<Pl`))0rBa3"U9lW3_:QeWekY,r9OnLbO0oj75I%St</J/KL@t0lZG
+A.Q7'VmHS_ZII4WLmZjJ@[hlqUmdMQ5MUVW:<_Jbsj?d\#K!rnJC;)ek]0*@dPa>SZMgS&dKp
+7.DEppRhXO)Zr8YRN9)d__f,h3;tr3N9,q$.\.V8\&:JW0jG2ED+2%BoNJfD+*9a!0KlQ=sco
+H\2XO(,>aUgWW5[,=6bW'CT#=cA`K6OqI8rpte]W&ea=t&.q;CbL!6a"83C-9rFR0p>o4JBQ!
+3NDE7Qjf&*TMgY1<S/T`Gm1X5Z)%jJ79EX.Vmn58;p>1ZTB0(#ZA^@iP$oc`Kng)431K"$"*t
+TMMUNI+A;p41D,H<_3.-e<0J+FXL=dSYml\kd1^.R*6\D":Zdd=*_aiN>[9g;tArDF=DJIs+]
+@c>Ab":]e<&c:uAGo6F-<P&]FI^l>8q(F7(r\F9IY4A'$EmB9-%<tr=q3n;>Y3mp!e#&nMS^@
+Q%mbS-#GWA(4rCrrEoUpOc9'B-JM5%5fbcmj_)X%"/8-'@f`<r(iNsKkR@lIt<"BnYnV/*gGN
+'>X:29<.4.^B0nRg9bE(l7d%B*:cE?u)F:bB^tFca\KY6K?M&6E:q"PYFL&n>thT44mT:GMT^
+Hu_nm\[]R[L64;[.4uk`89-W)ks]pXS;P]3j^a&<HaJJe)WG^lefZR9*1UMgJA$E#B5*g.d7;
+)2]=cX?f^Tc#DJEHn]>YO5RiKp;W4pBn$**>kN`0A]I#R`nPhfa70W!B(D5G1nb$QR*Yl#t>6
+PNk#@"@Iaj&-@OARJ9LPed$5(o-ja$ptS3F1C.`hM4iZ^2ua*_P[lW-ZErC+,ut:"D=iM[c$c
+h1]r!#&#[Wb1uV.R<'>K.)bN7gG2bq2T%DtH46g&?9J^2t4K1eE"-0=!8;V'b*g8rhLOCpWe6
+oa"40)11_6s\e&S"`W2O*\[\k;`3F8m2O$tF!@;@Fk^n:6&mBB,MBd;tpY&N]B#1/*%N[NJ'V
+3'9uPJ<i8:S7V^/H[R_tBt@$6LB]]LVPn^D_b$DOg.Aa/A;d!Qj4)_[rgf$Y<8F3fR#:3o>?U
+tVAJWj'U\$%:Y>@!ib0(LnZ2>5'5>c*k^dNR:LG=R&1GGWOS\Tq=^5Cot(nEs?0aF6kTDG5Ri
+g^s)/pulufa4/d`s6*64bEF0GfPD76YIIT>CB>9nX9bV,@9ehU)PKPGeOj3Ff<pO=?C&qGcDW
+=)Eb0WZiLD3W)DV0"Wie9?QCV,fNj,8;Nt6k]*)=gYZVBC):j_M[Y.Fr<PkZ$.hoL`B6JP8T;
+>P8*r_-pJq5moA"8S-'B)oXcF]STd_8!$*(L)Np<u&qMiWM>m.[g;6aN7/(QGn;E3dYQrCqH/
+;"k4&2R`S0Q;KQ":btf<FZ*F&qM!(-<*Z9t$L7pF]?Jtm8h[I'9Z`?s1f=/kbDd3a9;-og0&l
+1ZoJq#*d#l0]$0^CD1^\(:kCRB>_af0_pi+fB1N%Tu_YXhU2h?1mEG>o#O5MT?hR)56+hTi9A
+KO[9TePGY&^U40\Sfp_;:gY73ZQ]0a`c1@ipgVO2)qC$FTW,P+AlU_!gRfmXi##oG1BuU'\f[
+m9nFr3fHeJV&jF9:$(k\phtU`Mb]#;]=Gi4d6O>B`)2N8jb390p@8;O?%!$B[p&JrYNm;[t8*
+_u`[lO4"qq^U]dHm[N6/tZX-J7troepuP;0RZH@CBHSMj7!PC9CE^Q&SkD)PHXV'pg?KRIt17
+9W\2a;Br6WV8U0l/rIDU\XoNj$GW6!7spK?\K!fYTKS!i&nm9bC_UO!BF<bk*8^GM>p%qnifk
+C#]?oKORhJVXj0^VS3Wc,m-S8.'iPY_fn&'3Y*&jSJLhD&'F>o6FnPglNFa-62,OIJGMM'0Pd
+boWoO#Go.(%s(RTth^0`-']]6[9-`UtA]OOT_.(+;A<Q):k)B.Cr.H'Qa;m-hfP`%iJ"qP$f]
+`Kbsnhc:0c6VC0<]"Zkg+H&))rg1E<*c/IEar^Da7K.cjZg$>=,-;AY%D)D19Y#4ISfQ!HC/%
+$/$?";%hS$#S/RHcso?D>S9jUY=<:UuV\hbs.WCV)"nMUgl=l!WW9'S",C/O^a[p^mZ]`0i`V
+Eqgc0pJZ;iJTp-N7r^#;[tA@]_cqT&iPXtf]]R3a0"gPdaU'B8EFK>0N'M:"Eu$l"KXq1Hdta
+jGOI>U&&Pr+nVAkT^EMO8'FZ?0cFZU)?imD@/1t]"O^'7Q8YXaQ+$LEpc7if``fNs2I;M_?W=
+b9?_fI4c9<I=oqI#=s;5/l<lnQB<Vc,J34^uml`&^H+k*MR1t;fd';iT(F752*Xhol/PXX,@`
+@#9E0Ga^.'R2O_X!]KsFh]7-OS=*@]E)l!$5gFfh/QVB\CA#@tu`p]k;8>UlpDTXW:?;F]/CH
+n`h1KJ9?q3[Eh;;B%ZAr9>^p`9U:LputhaPj60hFp5#_!?!Q)T=48]H"l33P=FnMa![#iWV:%
+/j/=4ZP08Z8)5#BNSnM$N`tr%&=sk,9cor\j)Ga.7NCj4Tl*iq;:UL*3]sErU`K>:Z*,#[)XL
+I6:BSNblr%;j!p+HeeR=pU>AG@E@WN8B8[,H$)oPi[L:+)WTS-)Q<PkZ$q_p^,^[XlL&ngDl(
+Es9@3?-uM!^1Upo$]V:a_BIIe+OSJV`9'^<X1383G<'?NP/gYhk93pNE-sH@FmC%#MCgsh.:=
+SZ-CLY+5$3+2&E5MYd'[tYGjW[70hp8epg<F3S(W9g</\:P^L8=%E3(J^J3+F'Y[=nP'ADd71
+Lt_E$BuP&pQSMGne<:GW(BS3RmlpN"<tAOL]A\Kr5o8EWWZ/W#<M5,<0.de:PS*3&H/<IAf'a
+J-h8SnQ6;Ih0;>KrLMT=6_tQFgTdXk]:0tp@$_cn)mD\`1*s@ZYYC.[FV)[!V$<Eb&6<57"</
+hpIMErU#]!'-'NZT.MRe5rP?l/j+W$?Cpr"#,EoA&A+jM]ZHB'%2Ve5._k+mcU2f11-3]ZQ"F
+b5oD3;>T4Dm4GQAh-Rk)R%RCaKC!Wqq1EpF[&c>@[iK3hm05NRL<*\g"8TUNlk.r3(Nd7XDaf
+6RC2K^qC\gE;:<6P'udA\r$4]Y."%&,3oX6_:ZikDi+NHn-1GFb[8GG,nO*qLcf&k.Nqaaiii
+jAW>WCq4o`V;7EF91[7e!>kO'3YD_BT08hhQVl<16Wl6q%X[G%6RS]/q1e@@%`kgTdLgjio4&
+@(R?3)mE%jX\+B`fHSAu3c'sF=G)T2CoG2T$.`0cSJZ-8p_73aI#>K7_Ir[_Hr=3s^f[+hq[>
+p'&8!'+fm-?MTkB*Ydr]mql)*9*gRfJ!a^I952Hn*[35Y[\m/<43CGZLKfM=jV]7-XV7s98US
+WR(XgUc&.'q77`q1@nXfQ`FV2C_q13(*LUf"Xl2.Fu4%WJ]4u8mYug$PX[qq(i^*V6G[U.<.&
+&K/lnD:mF@I!XI_0/;hKbGVf]J*$ftqikp3up:ITUKh;S"-VuOX]jo\VJj!0$[UAh@_unZBLL
+"NY1gu.O4*j`[NA<Z>3jDtGm94=Aa4=:IRN^*eM],e<YZZZS8dH.Cb-A2])eIYuKCr-DYJN=,
+elH1\(kONE.H+3IQ1-6brf'^"'q`Do5#I'O>R3&<ce/;rBBer+l8G2N::b+_cutVJFq38?*Mm
+>7K3%\MfR&nG!LbXiG_lV\]1g]nfjUPVMqYAef"i+BRm*P.A#_b&j&rCNW74Y;VS&&a.`u(+m
+7W\X_!9sE4N#=:'\BQo8l6=WO&AeGm)`a5%_FOLSUrg%E?)TbfG2E/+El%=V]S!Jf\sdZ2p,D
+SGG&aRA`ME,L@$5<B#QY9[LH[2!4MT0Wu3)p6q2uYYb`;.p"8&VbrT[h@T,?H[6iLST`uIdf[
+t]`.Vqpj]`RN]=BC9#19@Om=t/$'5p1`O!c,_VZ\f8cp_6dUI#>K7^aH[M:Q1DA6[-'PA71G(
+ISTe(nT)cHVi-agdXICg5</L$LMtOcSJE^\YH`S=^&9cpU<-*(M$>3:^88Q%*FD[q8Ze"iT<R
+Ee2RQG(L?d6(I$^j3<5(f?CQuTXqA1T-NjX"o*bBI',uRcE;_2@&,t28Mb:*u7S+>3r_kmi#V
+6DD"9lY!,@T+,\+G=eIqB>Jskf$"M2S--?JW1>q0THTPfJ%md<c#!J_[n^7@!s-JS$Ch'ogZ%
+O_>8&NdplZ2f'0D6Mm_qSgPWD`=KB8A2:aZNTRoE8JH>m5"Eb9s+K3*p.FqI,N<F#H!&7:SPj
+g-59)'*Aru7TLJ)YN.`.\@!!h>gXDjh^Xh,ADVl'S:&:7I5QUDt06DcU$m*#dm'5C7bQPF3a2
+NCJA4@!<F%d^-943ZUH4ZFu7"/So=aBars"oBf#]WT'sNSlG1_3KMe`R#Fhkno6)h<V%pOpK)
+BrQoiL%9uP:CXqOW^]Dsqm1'46S8-fbC+=]WYJ=lm`!r)rg$/cQ6/V$IoLB%thN3C(M)N:bKF
+U]m;0XM#dCXBNpju"ipJT2-Fet@@!oP;ga#.c\=Y!Mq'[&u^d)JB+.ciC!E-(k8!5TLsLC&f\
+Z"\=.V5/g_4T475<iKIB_-Q6DQ`8C^[!qafZAt!$:4]?G_l($h1STYrhUDt68Lm;!K/VC^icR
+Z]q1\55mIl-_C"#"iFT]_"=T%EL*/Tkp[[]lljXW!d.oDM.mUZ1$#^8^%kEh9Aq#oTA9jYKdU
+X_*QGdRmPs.4Jo+LghON"Peb02WV:iZPBIA88L_B/#"5@70nc)-\?gUHs>Ob!r$<:2T)d;':U
+_j$"KGYZ3f)VYQus/`./DI6C9^KZk:<;kh1d[%FB#Yk6C/$6b=E,ld<9bc0M$*#PC,7XFk7>P
+\Zsp$i*uU#p9nS7KBCf<GN^[K8MN4I#><E5/l=W`$_sM:OEnLHQe+Z\.E%UQMtUp4S2D=0.1%
+hFP8`hj2<@dLH/u.%1B?Mo%/=slfFe-QVHg(ng=Nhki-f4p2odC*A;)O^5ZL.:tNW]2#LJ#%i
+]dp`=J2\:VftM2UkYOj"%Nb8]hjLH!J4!.X>";RW9GbZ!'\TJGYGcLKl,\Pt4mt;1\LK7/%n<
+#JiQjgC=1#pr)ZZiSFai/i\#`@OK0>?u-';b$clWV$o_&(tak_m4`I2BcE#cd'FJC,3VJZg]H
+:IBK)]71Kl`2GnW#$W.ep;#h;Bm2aFVKo(Aqc&(s"nXFkUHWn'K\5_T3t2(2[-_Pd/YiD[u!"
+/#K@5+,Du*\;=d``RnV&Anka"ZS`i^bf[eoM*a!jBn*mg$,lk1!6!'r56\7/\EgZli"3adUM?
+='<`6uftcGsrhS]f*W/[Q*\@h<][/un'0A)L>g:S5Gtu=:-!M'G,Nn<;^+86C>.u;ZWg^+^pe
+iDF&G(-,lU6sD=Y&Fja<*_9#Vo;R%O5s!nO&*R7(=/O.a1o/IfR4'i-c;W$!\*&*l5dDN:4g>
+5)`IX=oh8"LA#(a&,LIe/;?_)j"Buj6MF7=GG)8^\h[sBd(UO&gX*SBR]TDEd'*\Rbtr;4@M@
+fhe-R;QLmed7Y".#'8CjJD/]<6@I+FPO.C)S@'Qa;6:Mpo>LIig/R><R=@5PpD!q-=1SE9Z*"
+!5`_dH@<LP(2.FA`Kmi3ehq/9"Tec6&tX07PCs7Bf4:IjAc;cFRcZ.]cI#R`uh_e^5^,J)Of<
+\i<;*b2mPe>SW]TpGYZPmHFCn>VO"-VI(,QB,]'F?)e-NbcBgtI;+S6JcQ`B?EqRL9K@DV$NZ
+nBYU.5eZMVs\cHP6<]phJ`8!q++f3Wb'N'8J;k#\+)o;@RCV/-dm$(^;$MT*4:H@+l.O54hgK
+])qiBkhH9rDJ7"&hhBXPB\iba3RhVRfFHFi.(;MdJp[sk2FFnZ2*shmU1scUlVXnsijC0JPjg
+-99)'*As2&Ctc#f,J76ZNI0u@%Kd08A70Jpu22!7$71W<KEI?X<Wl*8W!9%Pbf<]Ve%(uue;[
+.SI`bRkMl)eh1Vd`&85?Kkk4NdY);C88=nVC$biiC,U5NU0^9CF.:WfHI/qStF/MY*Np&[T<"
+$KHF/k,N_)L4=/uk6G>)1X2r&-grmd/7-Z'D'SrAHoEBo?8+8O_4U;"nnC>E\#PTs_Sq]UeM5
+(o;$=gI\WIa^K=<>ME'Ea-<G6m>`0NGqkKq??3r@%:NF?Tc^5%lIo?@g\@B\j2X)!YC?fEkP<
+P\![-LO:'+[R.D+24GcFKIS,j)c3d\icQYR$^%*8:Q\YoVjR>t52!^@8]I-R0HT6P"\&P%cS@?
+%TSN,;$omLDjG]YY2VoM:?c/D>ns4uZ%W\kI'>==]9UglK7c#igH5E]0rmJVu3Y#kLV2^gGf\
+=?:2)M@JC?0Rg?<#@G@(2XBlD^,TZ^+rhWN5//&tZ.7S!Yeh4<rhj6>?XN#Ph<>SO01cW<OX)
+6Mq9\<=$?oi%(0n_Z)B=0>X]>qZL.W^`gb:Eu7-%Z$M?k"7%[DA/I@bJZ$jr$ZcbNO2H2F4]6
+ADK)QlRX.VNSmA"?]TQNJfpH_^Yoj0KAL.Vm9/gtm.?B2VaODRFG#gt<'g'!6D'cS9%?c&]h/
+)aFNrD.er8Z!;lMX`ucM]p(VGX'!b/AopFGo3(2]T[n<qX'fXd5O\d0KiJ9A`;,]DtW_J?;?q
+L@A;T!E<C^Zii&Fn*PAPM<Qeb'GccZe9t[3/^RBS1]VM9)aWD6Sa_@hhO,SfsG"[+SRX,9%/,
+=md\oN6Li]/1:"oJr-(?EabEsATj,YfSe61eH9ha-`Gk"`bM!8h#M^&b\MY1MTV"VXLeT>[)u
+,:?lI!>[\MNaq!Mo[Ud*$mljN8($oR\ndsg!hDiS3t1L"Zra$q!1G!^7KW731fQeA!Tb@N`/s
+FUh%%NK:pUU/&ZW9)Z3_6b+l7aTFfY;=.H+3!Q1-6brYqKks269&@3WY/"i^V&c8%0"Y_RG#(
+j'e,P&kg'Z-beYR:5rnoNLGrjBqkUlK'TRSL-CV]P6:l(]Vk2f"j']8$s=Nj7O0kS+s%=(,`9
+RE_s^U,qge$/*EaTRUuDjQ6n&qX6)hW%@-i\bR<P1>/^#!FpRk'niGhq77N3b3@*;jrs7"QK[
+1ie#'8&YT8)f_Gi+-X%G*$ghSqqc`o"_%$6uajq?ec,A*>3I]SO9<@$\]P*6)X=;hse=TpMJE
+.HkN?I0/e+d!?PR#GJ,KqCsftT\9of,nt\Lhi53QOR5;-)5Q"`[2"kLW";;.&S:8O>$JkAa=?
+.IbcUf&:G0n.P*nb9@n]=Y$o,$&`;jDS]KaYsL\IY_FttnrTUk[4cAaS59YZiK(A\7"mH<kCH
+H^K#kVD^pJ^,l/oXrkn#p'&mdalFq><(3P)]B3eH+f>@'n9*/U>T$3#O?Y(`lkdVPO_U/J!SG
+daWJGXQ.%/@73N*AFsDJ;\Z_.C,LqXhQ\^-OW".c^&NkiZO5Y#0mmD>(i'%NM'-*o)Tu$N9(f
+Or*D-.`bGnWQKA)K6:.:GCHP6/`;k]n6*cU%R^3pWGc)VUs"IhJk@BKcLB@Aj^2TaIeiTmR!#
+I?7O'D@^9i:pU8P1/r+C7"gHB-%(TX&jF:i5O^*Q1]O*B4H(s/@WI$V!#K8cT4Z<bkS,7:L*m
+kI1Lt!7PRGC![k_?bIuq#8SEZlr9Ws;^NV"(Omc'J&Xq!L8r):e\2Vr8D]npnAD/0(,a>"E"P
+oNZj\t$OcdjjB2[CdjJeS5RcGbpT%@U:["YDANur(4[GO>e=q7-5[k"sgoK]F3*p#jW)h`8$^
+KleqXKhG<&n#?Nu,+(:lIj(C'sKTX`f^'DhC(cmA%7eF@tZO3R2@=/5A-dhl:oIlk9%c),<ld
+1(hX[ge:,W&:^I0:"7TrNk<!#-'epS4kmZ9>,u6b3A"AWU^s`>48`.,.S8Vt_b#;p>1JTB.nN
+8S/d,M(p%0_[o`S9Et9"QAK=q4cE,*^6?r97dRd#@sF63@>:il=u\af\UFa/kr3\7`#0eJ##9
+BiX68j[H?=7E3RpT#$_:"6C?SLCdE%e,:+0gXE*Q.B4b&f<[$EYH*3&(C$%K"O<QngmBbBm(O
+B2UuJp]e'IE5Y[b)F9"Lmnr5,('tg"6R=KrrRRT_:o9?#@*n=nJNZ;_>$$L[:A8b=O4k4N1n]
+;d%KhJQqtQJ#if.Q;5*kek`t@Z$+^esb0bYXX`\<+)OdEtf:q5DW2*62K]3!m'%H<(X9(8++P
+haO*KY)-Ka?[4X8&bHiDX9Pn1!N!IseOVAg0p(QsO/M^uR&1dnG"RQt"jmfHasM7W"*E1,@(#
+<e`17%5QGZ?nW>?S2W01AAGuB?1dGCe%lnBI9LsOk\[#kM&m-+;UaGmQ\mCASI5?FVk]iI1>]
++oKTu1FrZRu;Ou>&8auLs2%3\4Er!dp%EY`2g+uP1p!90=W]nGlN#l]W?'Dt>p0#DCS]*kbLE
+9K%(M=E5QVSgJ&Yb$KD%7@673/bKtQqtWl/r]7lkA>=U"oTD(Hk!ZRTm[77-dX>5o<Ze+"18O
+H:I=^WPYrn>6@JoW'$0d?AhTrh<:,@7$l)tihMeb"-%(TR&jF:i^[T@C\X[2J'q_<.1Eg?GQk
+&WE/5t"kHC15^""+bG>dQ;)@r.C7@G\IKC11Y7Oa`%3))a9]@`ZW`J\`talT*k=3?83*hJ&b"
+KsOLDd;VQL?R)IKoI>,j6'%Oce^H+F]9Y&u?.HS6TsKo3MWlPPUkgs`S.P0#jDDtt+u=i#FX4
+&E>7eK*n0!>]R-TD)&q";9It7EC\1YX,^dL-$047J7OUbJXLZL<#Bef*3qEBSC"f>lK5<t86h
+.l027d""&WM"YSm4Y57J`c-h3=^0P)P2]K8LSAIO@"C-FU'%QTOo:AHVc#CU`:-(+Pq]*+[kW
+hp_6jWI#>K7`i$%u:OX%N>`@>AZQUqQ0G@i+QK`*IoIr/AP`s3\-LH1g@q([Z@4k_$[kK_]=?
+l9K12:FN`/'Nf"7L@eXCo%qGBF=.)/NfeKaUVFf5P'@\OHd&$n-Bk6,/qroph.aVNsCpIFXjR
+cs')FR%A>E7/T\K[t$*lS]FML1P+%8'#,YTMWcb2^EN@[k,uNb#i?AA0>i2E/i+J3@,cNl?c8
+<4,@.O&%8/('^;PO3I@n<&%]5:pCdlYfFJ":oK2+:GNR5Crp=I^g$CY=Rjoj2[TqNO-VkJJFM
+C0O5U@'.7O.k\J81RNE)j6bjfFG0bKMPHG_P`du(I!OQI.E2#N\M>Y0#[)XZN4ZN\MVQiLRBT
+gSP2iMTq)^29T:ebbbULq$Qfd4dEb36'4rkc(cO3f@'#8@4n!Ua^5c&BUMYss0[dmd)W"CKgr
+Q^WGEiRc(m6[Wc_-4)[9Sf6^7+X+c;cVBAtYZ<7(ab??bdQ?]uYJ\E?fT6M*DTeM5VG')hMRe
+])hqMnGN^_27SG")M"Rn':1Cj`g@&W7TdEZV&Mc<0Q8(]?c&mskn=o[Tr/@U/^U+Uk@s/:L%Z
+57)pkTOo./1XK_bfijA=Amq(rd]6N.,Q%RX9NRR\OWLT8%Llp=,Y`*6*IWJ"(;<PkZ$qZf;8J
+)aI0`?ua;5/QCmQPZ"s0K7211p\68VjMUIBp'>q1H&i7R2KVjb-Zle5sFYu_d94a9UV8'121.
+%Mb-&RFRXjA#qZg-9XJcDM/a!bC;q21;_b.[9Ym*dpZi]^0j;c!P`]]M,`G^nSs]8p)&=qXA6
+?Vio(0rY6"Un3Bd@R@mRG][n=L!C`1.is)gl/b%`A5a>ee'o'baY&IMlX^0Ofde"H*jZhdYL_
+oR.2?H'l=!;2:`=d/>]k+//9WF<<dF*no.XD+*t7d(B_Y8Mlrfl8^9YTo_QHMn6qP4+s%)O?S
+8r$:r+6.#3$dau2VoTnH4(<PkZ$qepj_rl1k?aMKDjq%3-*bQjN-AU^)k*\L5Ck@AIn3BM:?A
+k/70B%G,+L"Sb(qjHj5P*nriArOqNR-A'LcV+Sm3i9;Y[kZ^UF;#a2pe]4jND-==;DP(V9$UC
+!P;4J#R?TI0c(p"'.eu?R6obo)-A5%u(dgKE>Srk?;Y*E^&>)C5)IX/.DTppghZ;V/GfSbaKB
+i^]f.leG`iife&0mNMm=iN<+VP'=kkc.XDOA.inN;-35kep<T0m61F=kitU&BDHWmTT-bo9Ko
+MM@<k]`@/8:cnjU;:O,]-:LWdU_6YoK4GKBG*MJFek5]OF8s*i--_]#<u/=Zj%=tT+Vkhq#d?
+#+_DDWA(8b2QZ7sCPSHTu(UWa6)De7eBr#kV0bkEl2B&:J=Oa.'#?-MW&n)1L3b??O-EOgeH9
+jH7'Ve3)o3>HU-jqQ%]RB'sq``t*:;Wb!IP;$([S=%uMAjsoNR2%E.Hj[Ce13'+a8;%Q_+Zb\
+R*<^"/2\#don4gabKR4?@lu;l_M,B4=a-[Sdf3fVPjYDQCU#1f8'?iq5$nuk"k::Xu5d*Q<-d
+]7ggPWEqBRLuImm-J&e8M)?<N'5Unc^G%6[fGd:I4\6C(<UW!*,(FZ547f+Pr-a/L>e%Y7a%<
+*"+9%?=A#2knPOH\@BE.$6q&0X`0uL5_66F:)E+CE2l09JWg8k$a^X.>2X@NecIE,%Mm](?uL
+VY!_ih:$T&RM<M2P%N]_H0C@c8bZR*qp4>hDao5)WLQ)?B57@s'4lgpA&=du<Gcg#(6Q<Caln
+M8:S.9`TfR=aN_Z8n^:8>_J>+;RHmMS!:"K:&-\h[c=i\%QamEQ\N@!tu=b+33"N7Rlm:'c%1
+[%Ui`FI=:nDN#tagcA6Ccn4bjUet]PbTBl!G(?aEA@4TV]j0T$ZW:>$5hGiGk,u,q/6B:)K3$
+uOA20_HF6WH)g_'9]I/&ojiC_pO'7ViWDc2[I4V>aa,T475<i)=$h^r6@b"\&h-'tB?<+OA_'
+Vt9QA3L-L`R?Ph$0@Q6IBTBtj>'%(331+3*QG$FiZSZ6-bgMSaf+RaLlr]u76Z%Qp)7F).PbB
+EkFde;(WmXkDWCTteOS',5HcXorPbqQRU*R_#'ZDMe-RhYcR%tjma'oO`$mI-R'*uT4+,)q<R
+39.`nG"a"K@>`M2s`0L*#P0\n2Pk9K4P0eXghiVjWXOaJ04[X]brs[(lYuO"+<*ho[%a?'-5f
+7BPkeX<h+'I],J>a`g[E^9neq!32(k-Nk.9mA>lV]</Q<.GZ99C("i+:5+>4?'O)l2MRgLl.K
+#0$T!:C&H%tlp=Cts/ZT1eDkfIfo94sQS=k]3U>N0=N_\lW6Zt).`Aq-8_Bpp-loT7',%4QIs
+W)']D8R7M5,hjBEjT1h`e0LtfY]5f*74R=s`$pbR5#,7>[4t9`XM.KPI9&fdNj:c>;1udl"d(
+q8jq,aE/ql@nbeu4VKdVhY+E#H?iQ"Y7`kD0'N>jKTGJH6?b;b6r0JJ)B.t4qba!#gpJ;\h0Q
+uTrqYDh]3_&(r&9TO7cB[`YDMro1r>4G?DhU^To2-t(6b::0'KNs(@j`n?H:Wi/p%1Ys,<J<p
+gW2tMON:J`?/)aE[Q1-6b<q.X:NDG!<T4LK4%->!\@j&tJ/>niua`&^sB82Uag=*DljQJr@Ve
+AfPP2p#6rCQ]HTK,;:K#U4t(>0G#50f0*FYRY"ZgBq\U25]b';7J(`X#T=W!lT:VYi(46^3:,
+)ko11l6%A\XIQ25T&oPXbu#=N+HXW[%_`@a.<lJE`Slcm&]R3MJ'?kq5=U(2mY01#M[NT,\2&
+WYj6.M9Gm$?6nXTh"LL:t7Kg'lq7]-Q")"C`>[,#EIUU:bJFne4[pY'Ve'ogI_6\AIjGe!i.W
+ZYB;?@cU,4B7.aA<>B8>)GhNYYTka("ag%=W+Z*Yc3:OYuSZ=R/8!#jB(kSAh:EK:R2A]$tM>
+eiH1N[1oDDCRGqb7p*=KHN]uB?K%:&VM]@\^5L/+&bqY[Tdhno)_QF1;pXg(T/kkY<[Y<?H@T
+/AW+Opj9S>U+nauLpQPQt<?LGD)0rKPU5HA3%S.t&+-ZeS39QbqJkGk,h:i6(!('IFKta"\XS
+=;WuK(nQB1O'd:ElG]D8r@[_&nFHe,j"QJ/3.`2%^9QV5&G-(gkelRqHtpMY,MIM6@5lKsdF=
+$IFa-E7;seh1'rklYU;9DY:,G5=_QuiS;rFSo20G#'E3KNOUl\QL;M%%HfI=i615J=0DT)Aa5
+"/HXT475,I.F?5/9<Pd=I,(#6VC\*0TbF5RaW^3;OgA-q1+Y8g(Uj43?%("N7JgtpGj(%ItYK
+IR_pt9BtR)+Lg<=3KBu^5DP#QB[KY:r@$@3$5Lm)VS>"(qV2pLJb.Xmk9ppdE*_P7iG#L088f
+,IU=RN!K:C8*V3:`HXiK"Cr:LQ)2OZ9L6@1C*e`76kQnY=us?8$bN_sDusJaXr41Ch;>\jl1s
+'qH+f3<\.<54-6J1YPN92<&E_R_/+(*q+:3PR`[V][;bk>+ocP9,bI9`cDTf=5fMZ:FT*ja,r
+D&P+el[&h3NS@BTgn$C$IRXUJE+p_7-_I#>K7`$`UElmb1:L,*")1[pL4.8D8TH,-B^SVs"sd
+iP:O5"D@fNmJ]<--X1Zqa9]Zd2\rrJ];sRk1CEArXM$feBLlQ__rT@VV1%,ju1a22Z?.1S'!0
+0>a4,T]p#`d=mM`&P1;K?R:)k^i]gO_UZcn/a!_eL@lT80)-BhA,]GW$_'fN)\/`G`3W.sYO$
+7s[L!bl$(CUdq:#P>WS0(,=#X5`W1CLQWpilc\oqB?`1F@KWKVf"CG2nf.%@q`BLY&qYV&^pf
+nR=;GfAO.WFU`S!Kr:06;;d6ML[%\^_k[78]sE^#U.Y4Us6G-u#="<;&<_d0OG4=pL):hbB`k
+/!)q[u^`G!ePCYcBqlUt7)'"dHu_(Ai+?0QO?C`f7[?+]YW\CE3M[90)F45F'I[6OcW[M13m/
+=Z[W6eAqon%Ef2gtOo]\T@ec9ZYGG1NUl9chVS+ba`_]Z(q@[q,j#>"ZaZJ`gf`Hb.rrRQmVX
+=$H^?5"N]bu5K`0C/brZ5fl7L.iMk!_0ui'C1e-.U_W/Q#\B+B%4FD\b0!P!g>DBZ^/9d`FNm
+hhDQ;%Ht4N3&=XRBfX$#]!;9eWPn=kU]P#(>=/paaP"\?;$,a'!_I,tD+n_)4_beBV'2/84)7
+6d.X5h#5IRc`C/ZI)5FjVZ$;pp0G_:f<B$143+RR'[=Pjis#?h#`YaeD#b%Df\2)kHVi=Rg.o
+;1'K&DMDB#SciiQ8Z\cj&IiJg"imDQ2snS/`[)tEJWXPJaMlL8%1SuKP)<Hqt/*oDXk2IK5_*
+\Kt1>23J>qas^^JtEf'Il3N,@;-m*$a;$$$h>u9#P56`OboJDQnJ3E%EZZ8"N]aeYPc1/s0sA
+IX#r>dZWB,2RAV\-`$ft&BFM65,*.5oNXKYfcbi+4E0dV=fQ*F-#J#234&3&kT1p]cfZ/_b=P
+q<5*c<]7e'4mF<d&NDEVb^#i[Du3\F'XGg0*.LP/Ah7`&.d%oG=ZFA\f0fhSQqOR(JF4T/(0m
+1NkL$-e#N]5kB,GHjrg1ph1*94,X%U7`,DZ&)kFTW#J!=5MkkHHTcV_)t.n.mA$UBJiDGgnK;
+.VKs(ZpgkSu*TR8+nBu\jR]\&&'\)Fm".':CN[<SDMO&t;Fbuh:YO).'Y"Wf'^iEG#@L6\T;;
+1e^T/6e)[7E@(!U&nlg@t#ISF"es\ZSR_m90TgV5-@6CEAKi%kFXu]k8Hjno&;XT?/aJ[*5'3
+gUHC9JhI.<=fl_kdca.,;m:U_>$kEcPFau'A\G%7mpN&hHRsWi\2`CB6Tpt_)A_ktnd`IqfXQ
+j3T=5;G'hj:EXA,.:N42A0#/8\t?k:CN0Ra5*CO/kHU_/:m_`OtT^rIikKbkd\E9hbSCBoP'u
+E#l^.LAGn;3/5"Ae.-!3"hZdIRa\2V5ZL&*l9f+nhX&8%::tQ\^*EDQ)_)>,I4JW<_9;_[Fq7
+p3M<CAuC_KD[n^KI]CrJ'm:gApNeR2)d*o;jM9mC%J<`S)7EYPUo:WouT'R,fbY8Bo5,Gtg*$
+B\VE47\N%LNto$aMt;co!r&sE>t(%S)OCnQ[IhZI"("=J+1ldNdT02=*X-gcX,Vh#Z(Di-\g=
+O*K:Hn3lg8nfl;c6K0293"/jf*c^#7"q[IcDE^pY0]@k]Q`in(BanfMKlen'RXD)<I)_2G=ir
+T#MZ_E`HT6"9Gb<BG#?C'qdnLgut_4p=%e]`V0Ed8>i5%<s[1:r*?^LtQA9`KWW^V,1MfC>>G
+W#<Xf@sDW#D\(m1$`G&^S#<N2!,qL>6Q]Y#_(WFjC+%RS`@FIJEZ<RN`/C`GCVb)hnB;q9[1c
+=oitkGbGpA3UiFcB"V@J[:ih78Q=G?W2UMpn7h11(aX=2-[[CEgWb=]%H"H/2#ZPnaZOBmZ($
+BUO6H$Pd@KA"qFR>DfENsh(tgrtiM\UI18f5A]Cr0D^_na%Y/s3=OZH/\mPcdN_?f,5VOAB2/
+q5K1MfH/Jg0^L9bgp\&QM2g9AK\W]b.f\"#pY?9]-\i+Fd`0pe0q?nggi5QQ/5%DQ<Q@I&"]3
+)LoV4XufRDj[:RQn$TOfPpqTRk;PRJ-`'l^1u$XPY_,L?\.\mHkjk]T-?+_kqFd0o":MZ!eKQ
+?,/+KnEO_h+$b*9?KoA=*k^!^(HYK;'[If9ZYas`+J*=:8IL!P&!-0FnP9"`)/G\F\e,Hk_a@
+Yu5TNnUU9Fjr<hWnW<c5d3%EP`g?0,1s(/)iT\.gqL\?d"[=(=N.jqf5J!;#b9-P*P)0Ja[4R
+@'RsBethtq7$dRa3B:YkBi4oiPdOC)s,`b%M&*[G<Bl:]gFX%Y\T?@#M=$ZmJT0&`rj"km9rX
+HpNCP#-[-P?EsJ2gg"=<!_lQ)D])CF4b*j)HIE'FCgpi-R?*)](nkZcuR:T)DD.LaH(,p2,4c
+;M^W]CpFEqt(+H^D9Cb^Q$a^LkJTVSCE`f5@8@3aTLSp#C:.%'PV!h([Dd^l(R)iA@,J^iTI!
+V@TLdGcD]YG2e@Rpr*h-hM0&\ib,Aqdt6-InF.J]ZkGmQGb>AD)H"!RpMIl4F]_e)T@RCq(%O
+<DY"`$,!I5D^;NBP?a=5$$;CjB8Jn!N?)HfMM/B$<FbfRol4Ntr6H8_X5iq<f9G"Y$AfIfM]E
+AIXdq$4*.jeZsW>is!u4?(-`_]8T7Vp=nP&:;aM(hD4uO.Tt'$+BU!E"<J$ZaG]CS_SRN]0!N
+tS]u"f3lK#?D"nD(^L5li\Rcju5%W7s<pnnc5LK3[/"0SsaE?6>f"f]E=n4Wif5f.5/?7[/G?
+F>mQWGq\'6E&=p1qmP@)dMi^Wa'ODP6>WT"g"ma77@j8k8FD0V5q-Os)r-)F#=Zj8CCo_dbiS
+Zl<dAZ2,ji5(\RD:im6Z[c79%XP/HH4h,\`mV,-V'37##`AT:)MYoNj<JtEGaK*2+buhUb\Jp
+W/JOS[&\/*b/=AXnN--.Q*k%`*l_ONr''OXs*B'(7"#;`Z*HR>U]4t]7oEAKi%k6G>,`[fs<d
+M7e$n_ttCrLIRSEps-+%Iq@Sp(#Lf?roRRpT^K[m6*Sebl_=Zof-09EpjV.DW?aECd,Y3<]5E
+PL-N"n0C/=Nb:_@^B2p`<S%.u5qR3Z'J`ZQ0pH+\kZLg(,WF9c]f=](s2nA2_(APE;Qcr[[gf
+KlVQ<@eCG_YHY1$oc9:ja:E?,P".n`Uh@N+2H6*k?fVL[`Z)'Fj!:IQYu4qg5QI)hjimmjRTe
+JpZ4UnfUuA@RUZjmmI'qgq=AF2.Kc&nf"cT)jYB\i]?/O,,YWh<ajBf/DPpF%9QGX43B:-/[E
+N\=c.JNQs5M0X"h3lZO/Ff!9s<HOb`0]\31e[13$M&dUqDbP)lZ*I,)qqb@ga=HnOsK#gWtOl
+idljj/Fgs1!&2P)ZB$fj7-H!(i8[#iD(FR`mtX.Zub\EmQS]4Ipqs3D#,q,pTe3<lZ]Z&'5hM
+r9bXQG=kUTM>Nu$8'u+>Uqcm4?Z?KFI(/*LpnJb`n@o3D2X_5Jn>lGr=SmuXeZV-\Y3&;UeqB
+J[\i!*4f8)Z>\2i`7*E:54C)+MFGX;o+"do\>T(&_7kL\r4Kh2T$.ES"&=4+b+'/3Se8X]X#'
+`VYb/#<=l.du6AXYc&-A[pe5rACk6U/afRRr$oqJN3#apgjjYbQs5S2CGD^q)5W^+K%\,1\Jd
+8^OC!_\"dkmBg[fB2%]3gt[S3Jg4t]7oEAP)bo?RF4>is*U0E.O*^>mo<*$!t;dl]A#hNKemf
+[\1*#!9EKhT<Z*H/L3]I`[mCgq02j>IgM_c26/#LQ+CKYatI3XD?g]7b0E#Wh,Kjj2P:!hIFO
+:/:X/T.Ts3BV&NP-9,=_oR[71L,$-qJJl44NJpG>ZI?`Cq1[BL%grK&P9Y:0+Q<d#;2(TcgdP
+39j`KFX\^4=0ia?>O<!T`n5c9C%:K14Tue;8lLZ1&%)gQ6gp$X.O?$guZ&q0OfF-aK2'eV).9
+A8];tXdE1F\[@f'K/lrQfSkb`R(WO,.kn"DZdrSt):D0??@j'6R'@RYM_MgU[hiFU5,RH#[N+
+(gNO2p\q8j%1no5D-O.-H;cW+;^_FnAY)<&PCT"DeEk;[^@VnV8LPO(FuUR,6jO*@k(PO1kcp
+]qD;Z1SZ4p2f]ch#/+7I*1SWCtd1SAi;KN^6*R<__#(qo/g"'ZLU.rXJYH'<rAEJDfD8.AJHb
+EKdCM;>fJYIYinZ]HCP/"Er!VsH[r[$1Adun\sjR1R@_='"ZMNc*Eh!U23+amA<%jT)"T@fh@
+Sh@`nUU=mDn!Gbius6DTq@`S>4.bJrDTu*5q2Eb\k8`I@.DIZZ]eY1M/ORAg:o*6i'iZf-.gC
+kr"i*Kc-@7I1rJr_"7uh?B3dliq>-$/&ek.9In,ie[V^e[h[o2!i4p&/IuPUpdmAmP)5fA!0W
+DtOF5j-aRJ]?`JYu(c]8JDNLW0qo'Nn2-Vobm3&0.ac"Ko!BQs47f3aR[4$MBG1"q(e[&r`D_
+*aRgZN&>h?X3GKbLjPT`qFd@[WC'Q-el\1S&^td`Yq&[CY3fUCW#6ElS&;3GF.3j]i+Hk/+:,
+tjfQ"q]NKOAND3K%Y@"8RmE59_nX%G>?X,Phr!VP]c]+8R4oY3ij,ZAfrlCkl5PXaBKb&Q<;#
+(!HJua)I^UiL/X*62,RXJgMk(:U`=cILcIl,Kdh!p0DJ0jNAVQ9t$?KV-Om%ukMs6*f*/A/N@
+4L&EM]"'Xn/.:qEpTj#FP4S-ln'(UV^R*_?jlCmM?ZL';Mf16&D_?tHbED6c-C1K's%11ZOF5
+j-bs+U">2$>te##p55',l1fs>>;R58L4]Qs,3cX3na_8:m6F)l::04);5l-a.dQK@;mY?8&=j
+iWk_giH8"@H%1ZhuDVe%mKX46`X:lIe;#X++*@ZTE"iP:H\0cP>=C<o[?T#qs:Z85QCWh0>-f
+&9/"!Vo#iulkj-j(J+_>nJ+]jLq0]p.?[mLa`f4oNq.=2Lj]cZ:<E3%!?!U`7;tJjmmqpa`V7
+*h@Y-.2F%mHqqYQ+RiJ)AW"Y\i.'`l?#Z55M4WWTiH(5Ak@VroB8=[Vt';CY,`F]6Ac$l)/n&
+meuLYcWXLU56(QPf%/FNqtD0lE8]*:6Z$[W?[hf^H[GWk?[[(hkg<n\NcfMgIf8rkJ,S\?]=Y\
+%H@#Sa\%d@_br:'!IJs-C-Vp<R(`<&AgM[<%#LAo#1Ggq1mbGAEkKeYPh00Yg?6$[.lB.4VdF
+#5(Z-/IeO,o?Os8D[nY?nncmFi(8r,DW2oc#i-r9I_iEr&Q]re':lAgAJ?a2:G3DFX2ZHp!AK
+j(9PYaiD:i5&Nj\OaK9MjPsht+3DR@83Uo\nr\;^N9'#2,Tk.K_alt/7e2[h4H/@]AgAJ?a2:
+G3DFX2ZHp!AKj(9PYaiD:i5&Nj\OaK9MjPsht+3DR@83UpG,1/CK-PcYIne"2JK&e/0E!49Q#
+WGSNKM:s",p+;c^s00DUa#.-[$[Gb8Nmp[$'A&91>%8-S:2M$_fP]OcV0!o[tj$SOdio#l2PL
+OG6iW]0DS.&Ak^9YJ*LHL##<G?3J$qcj56B:&1_<ao!(_8bK$JaR[Wtl!ftGN.$Id*O0eB`XG
+DVeCNbs8aGE7SZ%DY8+;=S"l&0Tk/+PE9Oh\uU'Om\^_WDC[rc)1,@FqV'(!#;'+o,7!AsTb?
+?h+MM6\=Y:eiZ7a<^NZK5+sXhP>4<8ru++&O@&[G753I8a(B!_,p/%;OaO5AGKn0Fo&5W?R6u
+hr+33IVeEdNG2bXo"'IR_(Y\/d'Bnk\Y;(7Zh'g*_58JZegjV,!B?\i.MO?cs:.5#]u/<Z&/,
+Thq85"<]9-gIlSWqi#)q:L72jQ$8!'_aPuK%;0""?k9A3eJ1CW7_mj1!.J.1SZ/iKY8O#-QaS
+$hfa]3L][;T7PgdhI&u\B\/Cab'UOk$h%EZXISLH0I/KK5+qqI:C5Cq,8K:E+b/ss4iq12ML-
+@@LP!hK"[3J14=nr=bn<eS3Fg&$5S+?BA&;_V[K-e-W%!=*9,!#1JI&pCr%*;!FG7[]XFTW'H
+S2mH>OF2_#!u%:t,o;cXAB@=Ii<YU-&Af#)+!KEi*M7?*bp4rFne&_J<,;17ai=O^k;j/\,:J
+1ij&N^bmsJreVqERgim:2ML?)h^T;13mm)qg-?;rE74o%q1.r<+Cq:KdpP)gi49Kr)La3qaaC
+9.Z[pN)HA,a!JU^PPMOE@i0KML<WQj=_<(L"IapH>?'2TEN2t*m(<`_[3oGW:DZA#M_A-=P3/
+4U)#fab9nu+YV$&odo[IG#3@O#b&HHM@ZlemLqDg02Yf%@B<R,QWlTa"[1g+aHCdAHKj?E#nd
+u2H1\-rE0i)Q[K^L_h8SIcDm,;PI4sGPK5"<]9-\@I)r*ge3O%:CbOUmY!p50-T$JeCKI(\;%
+nn4#^83Tf-)>P,@HeW,!]P<MsA2pqZ't2e,KR7$9QomP>`!u:BUMlgdis9YGa1pjl"bF:[L.F
+MMMmMu*SN'md;\=FgBLk=QEE59?@sC[2L:UI=M,1HZLkHD*_3/(fL,tV-OdpY`51ZbtL?'S44
+,Blg\cHR>$6_Mt[:ZV(I"W&0K&e/0E!49Q#iQ&PNtB/?,Te1_,=k!b#Y0u(KQ%$:oGY0-8RA^
+`,D7#7er6GgNsSS-D^i=g:^6M\pBj99]559\),!EX:rcI$o!+/"l+t;S_SM.&A\9B4C.JfgE*
+PRb?'jX4#Tf0?243#AjuJDn'$82jRg9Iul4d:[A*+tb%Z`'W55A$mW(q6%e#4OYHn<:(I%2C\
+I*C(P'ZX\('Z_ZgnDI.OXB4Ks'Sp^,Qbm8eq9\_(4sGQr?1W'*I-A*Y9B3pII"K4&7:_/6,8,
+fFj>4mZRgS^Pa=K>[_]t[Vndu0rnhF$<5+rFgaG9YTHpe&+N-sj"),'#-m"'61[ZuX0j3JcDO
+aN\91\*9m[O^9V6=7-U8h'=PB%K4c[\Ic6jPpMcaN)&p=7&RI68$;]q7oaq/r6K_4u+rm5X(%
+9(2)_R4GLo;A#Oa.SbP$OWCSF')(aJ&A#Nn:&BTbfjC>mW@n8dM\:^0+XW*pF//?#8<,9KOa[
+ZUk,tL3d#Y0u(KQ%$:HpML+PItGJ7gM%MXk>3M*tt09lTf]STFBtB=7(aVo<A=gB!2c&6Q[0a
+P)j1%:3S7s#mW+5Q1:GnW9tD/iOF8O\h;+F&NhB^HELalBJL3fYZO\d7.RV^-:1(73/&+CR(:
+;qG)Iff55EQ`6Y]:?a_Z%h-]]^*Ell@2I*'DXU<:MM*H:=P@UY%LMHU4J:-O--LYW\k/4,($$
+Tpf/Z\9_qndu0Rm[B3kj?o!R?4lB7KT(3q)AlL@7`8_76dKA!j<G:nBB1kj!hPAA$*(Ri*YLJ
+"BOK=JS`D".Lu`%kK7&Vs24:\<7`5X3jDu6>q1pK<1\.50B<R+k4qX5h;9rs$83[%>&J`F..6
+Jgs_n0j!,-1o)a.bb:2EO:YZ\9aG%J$d!DkQ1O#][r+^Zg5?&@a6*Lu`&)p8-PIq7oaq/r6K_
+4u+t-+s/=2N$jIgnduq\A+DA(]u!NlR_;$5Pb8GNm.)m\YuHP?`#J9P?L9Hm+!KE*9Z>Ql:pX
+4/i<cMAH\LN*KU<At+!H:^83TAM!B\"<[@9`oZK*6`)lV?S'p=Ua:="&*]LG^%o>[hS6f7^lJ
+5<LQLr?!J$k:>!1-VTtQJ."E(R<-f:HhbP$JTN)4uQ]5jPpLeP7LTk@qfT`bsE%c/P.30lYdt
+(UkVfMOcPogr,&p16L9mH;f>29KH$a81dYs"a'sG<a!mb*a%RLmlX411LPgsmKY8Y'M5pmj%,
+-Dk"-eM2foP2=&kLe8+1K@I*hBtg.\V.p%1fT@6pAa%a[[TfccBa^jk!/r$*;uOQ;</>@?Gq*
+!g.kh,aXQ(n]?jQ@jS#5is;6=%m;t#KbZ.B`QV31+%doCI/MYB.[#ikGXakd9"s]`Va"kDiWJ
+AJEPe;g!]S3@NkU(-O!DRd+9/3E[AOqgap3+LF?rShoT>gjq,kX>q$<&?1&2[O?=>3Fc!DP+8
+l,^bG53!?==Q^ZiXP]cYP&frNtC_%VIJiqW7`\Sn-%:1]gD9%6;.]KNtB/?,Te1_,=k!b#Y0u
+(KFj.dq$8,`61PW)%G9'DfPW$]ac_\rDP1/hQ:a=f3'G$Qn/=S1bT#@g%/'"n!M<sT'o>9u9+
+B"`1;6<gWF9-TLc\2F=hH+(C.JfgR&#+G8sSJ$Uj,Qs9]j10r701#&`Pn>A.B,\b2d(24b<l(
+9jXpBa37!O_@fe'II^f%&#0JqdG<(,`-:?816qF8(gli*?D>T_9H?E=/;?iLI)6@(*jp7(8j<
+69^kttH-6c2^@HFG\36$FY4)`b*J@sqfJr%&$j#6]eq.D69CNbE?Rj*2(C?2$ITcu6Zndu2H1
+\-rEWHWuB!n61:$#>8$5)FSb=S[XLFBBe1O[(06_]A<)i.RKY'1ZTT7lZ*5jMN78YuL9#`;dl
+;MWBu6GXakdP/$B>_EIJsH<)$Y8TNmeU:03CE68Muo('&\B:n7KUr4Dus/&!k#O[Hf,5EK;PE
+?CB`9C_Vi^"Y()Np.m-6jTUK(,.T%!AbX';&kf'aZ07K-e-W%!=*9,!#1JI&pCr%*;!FG7[]X
+FT^-PV*]EYC<]j1q$8.@"Na.>i<YU-&8o:DDc#h5P*[`q#iPuf21(&<@tN0N*=/h\Pek$&Wnl
+$G4uV?JlkL^akT`G^o!+-,Q+C&LQYBC]*_+.rntEWrfLDm_a/7UY3qk<`*g7,JhQ\oAeiK4_"
+KbconhJ&YM[tdJil?q(bZs3^"Yk_`-Qf5$O;b>cn5l](Z\%7J7^[tWN1Hp<0iJ>43ga%%_5<r
+m_.8dk&McOP?slgua=IBZ`Yf0]6PE!SAk5+*&9lC>D=V-+cX(%6Yk!XD*O?#;B=$5%PC1T9I,
+_ptnsO$F:3QGdXi;1iX%%iSPg#5:b`I535k6Wl+Wn$M<bb6]j:`$Fa)4!a+"$gM'c&O)eHE%.
+`eiF91/):$$psM>_k.mC,5M$(N-pSKH.s)-<I<A!Q!pB>AbNK$&"KW`2Ja]Mq=loIV''_Ye.B
+aBSQNGZP`cRD`9E2$"o?<eOF/U/n<6c@&U*1hq&&C'@4+7`?6KqR:^0R9q&&C!.R\=:%Ja,0p
+)&sR&FL[<@d=5sfdhaF"P&sS6Lk^T9F6lC&Af#)+!KEi*M7H-bp4rFne&_J<,;17ai=O^k;j/
+\,:J1ij&N^bmsJreVqERgim:2ML?)h^T+g$2m)qLiIk;iUn&^@M?==dJaiC:%OaN\<A+F&CF=
+[m&]2%JV\mIYP?U/:<$cfLr+#=`/o7'FWp;r)h0r,")%(p'`8Kf16nKf9tM(0T'Fhk,3M1lt^
+.;Eit?MX?u""Q]hS$@]<p_Cn@,`oNO5&QPp;e,M.,?e(P-3L)6%_$\'a[[TfccBa^`ApNO';8
+G?'KN1@X?8n6Hpe$uI#MU%O'uL_=QO$n&ILkq&IHB3nmQ:W?=B5NHmG<jr4+"$P)nXJ7Qs;a]
+^7Ju>?G=+,R:J?D0CWQ%)bI-f[2!Ano9sTjQ#.i(P0A-;*uV$jM_`,^eUCPIjp@@1,L6ub;^[
+fiDhue+%+j7m)5gT.mu]1b$`=D+%%&AKh+tO+Wp%#*^fK1_B$QoCu#(KH\E$&TN\['83T@r.7
+*M:69'SX,D:"=a[ZWq#a15[_@\%8+bV(25$"n_CSu+RZ+aIDd7>CCNtn[YD)OsoKfD7sJVlqV
+JE13klD4:K?!+q!AH\gECuBDIoF@%F'dOmi@7WRW,PbG-o'md@J'3T_L'*]g&rYg\"j+f3(a1
+aYRacre`Bj&d/2>6on6oU1T\2rm8IE'N`u,MTUp0DEduecI+^e^%=N_0u%_6<8[+;G%P8Mm3'
+.=jB-aCT>T<RWI+ca_niCU=Z5&i9%q'7j]8V[oGR1D[_':<hdT>VAOI#S(HDEY3n'GqH"3Cj<
+^IjJc0i(E2cZZB;A;UF:A`iD!8gcI4:IfoZL#/8Cm$k/(:F@adSK+82^J6@1b;\CuNCs#ZZ_h
+*8fCa8a$Q:/j8#U]tc3'i6]l8^(;a=n3!X@Y/kerHKI-\<km$pYJ-6p?*.KHS.'cq9*sb.WdC
+o!U&&,Uc;V5)I6*q1Q`oXbT;.IqVP'm#OUAM414GEInIZ:BX<EUc:l)&9]Al$t862\f!e:;>i
+u7Hu;7AJ^>^8`%kopM/]'%n?A@%TmY(a*/rMO$4NUcq3[Efa_-bRk26!]A0?!9-aCTAT?(l>T
+P.q3*j_(-6XjeR=\5);C&+.(J:c@I[W`S9&eQ=@%11d8MU9G=8M/,",to=K7/;N/N9$1)@[0_
+s[DX.(\CWG/5icAq5sC%6La)'%YU1kN(5aR`RV4'j=(i&#&Z[!c:5C#7Z\6`]Cn\u?4@[7BSA
+Sr9aX=@3,Teu'8D5EjOl;Oil]`%'A2#8NVb%["K\!Z1P%9]9b[VY\ICl!r=leTol<`F4%*?P(
+,TeO-52O2=I%3[sZ%@"e-h5C#qT+H7"pm]gYsKGjD2P+hZ/]q<oF@%F&Af#)+!H:^83T?G8!&
++O&<7n/#U(0Rne"2JJsh"VSk2fciGm*&j7N'^63rXIAsX(G&L8GAKHj#O6;/7l5@ngB'6ch7&
+Rrn]^@d^J`Slk&#se%n@]HA-^\E?T5pRNqV@:SeOF2_#!m/KEI"ZG?aiBKjKG-?D;;2e53#CN
+`KZ_@"oK$qe./AZJLTq8TS>=(H+/b<=4-GYD*7#G.W3*'6PYZs*Q@-W8Ob*`gC4m;6-^'OXH;
+^u?7?*C\pI+Qa;bm`9[&=R7n=E07@d:3rd/5!E7u.`8W2NkN@[m_='`jZB-hM:9=J@)`i<H"l
+[(qW5Q3kgs'D4W.EZ%Pcq#m7<@T2h0.8ES-#n.6L6.i21fFf"Z=L3lN?r7Am'=D)T:d/<+8<B
+ksCec%n8%=+0RU$M+JrU2oZuU!8R'HY%+.(.u[!ikb_C(E*,MYOX"YH\L&YFFp*#hih$9HNbI
+cN=5SU:j0b+[l@4@U=:I%n'R_?NIm2R71oes+BL7eoHdA!9FR&T1u3o!)NmZ-m<C<BeOZljA&
+r(&@R'fd4:'I';8+4:sGd08(Ac\h!FCEeGc2jM\Yr5%3nLBYu<sgH-8u+5mE%n:S<N&Q8+i83
+UMJ8\ouo2*qZ,'?Na<4XjL[U..\iHQr9AW@%iW>1<g,GY]S,1%e6$3iD/"ZBt@Ij)h<!oU\T;
+@d66o&E++PQ:.ValbGZGI"[l5U/m7O!QdifWCQM6,Te2"5k6WT+!I.>nhDC3+e7JfI%6crb8!
+_+%EV*Gi<YU-&Af%'j<K<hFqZ-nYJ0kUkn]s(,$"-UkGEN2&OM:&`9I,b&0c8m5H,6,W;~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 382 406
+%%EOF
diff --git a/doc/print-color.txt b/doc/print-color.txt
new file mode 100644
index 0000000..69fdede
--- /dev/null
+++ b/doc/print-color.txt
@@ -0,0 +1 @@
+[Figure not available in Info format]
diff --git a/doc/print-main.eps b/doc/print-main.eps
new file mode 100644
index 0000000..05a6b3f
--- /dev/null
+++ b/doc/print-main.eps
@@ -0,0 +1,551 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (print-main.eps)
+%%CreationDate: (Sun Feb 29 19:56:03 2004)
+%%BoundingBox: 0 0 647 647
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 647 647
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+648 648
+12.000000
+648 648
+0
+0
+0
+GhVQ@$[`q*^%hWSdL0pV25M*AV*KTN.8WW)5sPT6;*b^^r@9fAUBjI,"?iJF`KTuqMAV0u7K
+e8B+p8KDK5a@1U(@Hr1E`%669q5$V)6]MP&L?HrH2E.o#roAI:hX5IduF*Sa=YI4L6i9bjK)p
+Z2ak)zzzz!!!!A4Z.-mI;[SA+WsF"G!P_<'mce,hsnlkE*`MU459bRmKTI9q@4?[T+,nWj;:F
+OfBueQ;#*oAn("S-D%eF<id4n&J95s"k<uKodq_0jmU_:Sc>0#:dhRd?Gq7)*Qr*/n#>D$T/?
+"c4Su=h.ct/jqcjo7sd5``/RlKk?h.rSYnm*N4!sd?0.LZgu>M_#O"[+^QpXA\e2\r8"aH=pM(
+%2VLAZ,,4k^GnSWRm<;b9Qad%g&nhL#FW5]<1BTd_8M>Gs1nuZVqA:q%D]tW#8=K:8\kRcdcA
+tbOIYZ[C6[.31[b/=n"\3"kW)(s-?u:IBT!NJ/i7o5$s>U"6uL3#F`F,9HnX_]gtD["?g+pS.
+`3P?G!Q2T7NRH#BH^,?1pEg%^bDRmP:t!UTfpLZK:dD:TpguDaKdf"=\QJq(/oAr%"u;]<dk(
+=a<<<8?URO/Llj#;7[/YG5>Li4[P*:U<A'a$Jo?c('EbU@$H7eg%'UR$Rc:l$lF[N!sM2]!Me
+"QT]##h?kg0\'HCB_N'`k^JtpM>;<Tc3E%-"A#0=E0G"K7R'L_e'[TtS<]]$9MjQ2`i`><+I8
+pTu!H/oQ_huW)V8%S[BSXjeLL]"ejg+JWuQH6P]PI&Sudm#K5HpWkjTY0SE3G=!13bN-<BnP/
+7*LK$e^NOYTZq7r0-MC-i[X6GUY"99f-][X45H]Fi2Qc#Z[VRasH0gne@n&D:*n<5bl\:NHlU
+Qo4gM3eCR[T?cN=#7-`;1jjF;ZJd\nmYD]_5o^ks]l8V6"o>X@MB7#Nbr&l0a_lh]fO90/m,Z
+^\k?AG+i13*EdcMSG*1IlQeKm;,2M"1ql\Eg3r23fn0OU*2oLW^Mpg!"k.hmX6nSa>5)?%]Cq
+WI3H%g9XqTRQCtlP]KU,d$RV-HCW-3"+e1lpr7lQAK<Bk)+h5Cpn,IX>i)+Bkm`/$$MV(Q\69
+a94lbH']XBB6V$Ui3e+d3Hj'Q&"djqgU-P2bM\%o"3*,VMjR4`H((NEqu-o_p?Cma34;IQZ!i
+eBC.X"qJLqXh.>N/\c!o#krW=OhN.*OF56KFa3<gphos@j\*J9?D>U$U=q@4QZ=$T%r/$@*SC
+"Y/\AfQ/2U!.>5@mgMplVtZl#KhPAH4HZb>tUcRpM<OCZUg]ZMI^LiG!SG=&qF/:Fm1FDL(;$
+H13/kmqV*)Q`a!Bp']rIoAmotjdK-0(FRC%4sZK/="^KpC>!t'gN<VUgnXnMoD62,>ONBkp3_
+>PmSe;o3baApO3R)PDJ&c#gU/).gN(6^k!Q$t3cJQWr,!D9NGI0lD#K=?Fd';;*A_0c<X+Nio
+[2dKiZXY?IVZ0)(T@%o(n8.!MIT'o>qU9qp"*`l>$:lgXR2?3IBq"YIm,F^J!-)kaO>@S'=Wd
+?SLhNR*kG;lr4^td?+K]7\bcfGo<WK7a5j_Mb0>\Ph6:kfl3.8km,*<Gr4X9?dsFqtcf.+!c^
+WPZoj'Yo]Q;-X410QMLXm,O[5?0B5'Hds,H!H5F)p;lgG\C]^4+@p\f%8Xa4'.OU<BCPX7dM#
+&AM+/!^.02*6G8TA(/eYXJ*g0Dg$D>UMP<H2QW4\ITa-HeiY:[+-BQQQ5>k0F+99aDjA)p+FV
+"h-SL\(0+i!)/8pi0c]j2[PJ<V1pO?<54_j21%iN%?i.5+uqgW`r?cN2\=3U./aZeNFW9_$&O
+3V\4eoC+1m:X^Y4akA::X*c@Icd@8ei"O3[IK?8%1=N4ceG=7qpDeb7agCWWhIU?\m4XO+N2C
+UEZuCn@8Js1d*:$eXB'NgS]bF<WTGDd]Z[TX?@PC%Xd4smabIRR^E/a7b@U/rZ>Q)3]i/7O:"
+K5G#!1hAT?4*+jb8WRTBFB^^*_0S8Y/(6SipC\*]*H\Ob;5s"s,t@s%eFBFhbWaNr#@)*8#\q
+r`rUMn%<J?NZ[W8^3I-<k.*'VmF6O[%Z=)Pg%:EkNCQcYGj!$AIE'g^*E,%V/nYo)[ch`Q=`c
+[CA[),4F-6%Nje5adBL%<DQe,<]VSC6M?J5+HCqNPM]1Y';/fS\o%G/e<Y)r=CangqWe\s<=%
+2o)$X?0G5SLgslG\GA!#645MJX&b!5CQ#XUPJO!s,N]=K=c&/f[[O*o:#Iqm<c=Omb.G$o3/j
+g\+uPb(4C(Ddtok!O.Fkkm`G,0`n0TA[WW!`c76DAdH*Krk]2R(@/Hqc,3?S_o#d%&%*A+EbK
+<QM[nY;_;'+L@pUqntD33L2aNY[bqXnmJHF[k*>l:TQ*gCROb#d09WU&X+=6.87L>MZc_=t)P
+3:cV=,9H56m/Gjcgs^?6mG/.gmQ09pcM?iJHagHPGsUc/DmmkQVg52d/Xh)sdu7cUV]FGEGsV
+E(h<W'UW?&P"8;"nbqWP4RQh/:ECR6QLfT[mr6LlrTX4:KH]'QKIjk&UZ9sT)?4L[WUr\&PE]
+dt7i^T<W1CZWj.jgI&;ld^%C9CfDhEp3sPd6HajkN-L*ad8Ta;kB+IXH[4d*]ill#2f+C^u9e
+.5GYp[m<A1DoUDESYNt'Fb-$/Bgpu#I3qd6$hlXG3mTD,'S_h#sM2PtpUhT\QNDn]e0QE`]EH
+CHc9VT^uAOr/)n(@/9e=]&!?#7*B1R@'KH._-h=FT=E-I;F;)TuVgrE/_r8EW.5ZOF:7%b#!O
++kaA&?J-I%#Glp@XB6^.Xd2IXae)q%V9d7*Ss<M]apidib9uDWa5mq,(,)$:LZQa8jKu\C$2;
+Vun!0[IGNb.G%j$,a5lH]@#Bo_[E(06nTChLAKC6;Y](YoBkAKI+luH/(SC:\dr)Cl+j-s\1E
+)H#M9iDR:S@G5#_S#_^[]^W5JM(T$3F,\`1['^L=DYR=1R;@6.he],jZj@+WcU8tXqY=_Cd/r
+;b9F.5CE$gOH?j5,oWOCk<FYo**q#@ZXd"1(Q91\">:d=&\Qnr3BmW+ZJ%pC*?9.at3TH1kg"
+YUu^Qi;IQG[VX>'T_uJh%'!^T;qaO8AR\W4-YacQ:?e]7%A.f.V@9I!Wh.T5!3A`7A(N/MiE(
+SpoapWUFYl]V'8]h@8N.e;p"p2er9Q&,`I$80A>Y]3MpDq>\Te<_cNidl@Zrin:nZqcfQ<Pk&
+qZ28e5cag'W-?QN6k2FNmK5Os+3]'a.TLU#tok'Oi/[8T/Rd-GF4QbiCE@Ce"q8R>USCL<3(X
+6&"NjQU<RGD/0OKIjIjmRQ?H#N_i[jQ^Vsmug=]QO@\no59f!YE;b5+Xd:X54g'[l6<3G);=u
+BK6?&kf]0%2o=iY^gD>5"I_KIX;n@06WG@9MFj<1RA*,N5gE#*RHUQ',6^stn\7jn"VJYKRNn
+_*Qm#:egPO#Xu6^KUPr%:)*40OKu2=`dJPo%c7;;:3TWp3jY]e'k.Blr%ZQU&l,lg.,=*g;Ie
+/6nOl^S]H@G\qo]f5$"WIR*V,(Z_"IjJ`mBqh4SmQ[9g;]C)$CG0>kNEn0X>nseb#lXfUOEpi
+%0Aug=A,!#XMH2fhbLpLX,dt`,Dgu'f_%*Ul6J'J@K4+4J[LZ<]h5IPpiqmpA\ft#qN3bf1BT
+6>2>PQ`Y&ju6)kF4#YHS&XjB3-JoOQmq^'[]LK/\ot+m\suLWFP6=u43]"/r_L3C>Go[0M*Z'
+<6s1T"`uar'2)`fcWWG=[ocM17]9pn0b<_I<:u1?@Y;a5)6=*kH0<^[ArN^Ht4DDp4O2utJ96
+[jerEaBP<Na)&Y5"jkpbKDL')Bg^3TiO#_HCp-C!q7#]VeW`G*M?Bkg8[K#A;TubZNN4h1EB*
+qt8P.gG>t7HcdC8PNR'`g9kGMSG$fDCn38\A_bMlEOC_E:2Ln*Z#TF2L/H^TNuV.Y@K]u^/9A
+D(^NdI_(h_i\G.CLr@c\>@=8)KQqR/qTjk"'V>XH*R=n>LWI[;Y,8[7CjdcFSq])8kHr1^j6;
+H>t1:Hft`4<P/Vb<9/%LJI*H:-*hVm;6n."g[4DEo,JienO^N'BBi,.3Er(*-RDpQn*6d)k+4
+ki7-un;el1W:[OW.V0Cq[So#it:RKWh@:JEpD*,asCYr`/le$&X`f+aU1M5%ud7pB*2/YRW@H
+<7@&R3e&<O;LZ*ihF:#U>[Aet7G;nU/fb^4Q>u2-it4jo+qsV28M3B/m)oGT^]al3up_f+L.E
++*8B:596WEDg$EdbF?8SiYd%08br7Yo([k.BXdp$:0I90l+0/u]0^DJ9Wkp&IWiG1qGk)aMfS
+g=o!OP"Q]@;/hCck;+Wo?ckWQ6WO-heDfSoes[d-#"HLJ`)Scr')pRBU=n)Vd*8KE.OCu9Bif
+"'gFFr],HrAKRGN+o:4h)K+J_mUfU[i&%%HE5a3F?-,eh;rmRa,]`eZKo_s*)"srf<W?FAbF_
+i$El*armUVnJ.P3N]'QKIjg?kR9%H*L00CQZbN7t0H2LuojH&liXg7:pEq`RSa%tgJn&l.lEm
+;/Crafe*75"GH/8gPf*%pEuQd^*q3b@KjPNE:DYZ(SBG3JhEm+r8ulM86>mf1qBlTMYHLJR4q
+FDC^--FYUpfWstSc$PFW[-P6!S]<Y6*n)fQlhX0tlc*jC]/<m>W'#4Uq37H4C8UTOD!,@Ta&7
+BCQg<Z`inlE$53eZ!:YWe>l[e>dRj`d$m'YK7]3G(4?1t\:bF:D>S(,#^AbFOCir@,AJ!H;na
+]!E,j1gdJDj#mYO[&kNQMjYJ^-K9TPM_rVSY)5f4t5+]Vu6I+q8qCPL\hKc[+F6q\q0Hsn,LD
+?^AloppWU02?ehXXZTE>YHMc"JB6AT<7f.t<\%[>qbBp*C+#[h1rO,GtO)*NlRteJKlXt$>2g
+%OUR$s.A<I5u&L*9j*/tKaaVPi*V-._1fK\P>X]It4V]DVM/g$k0;g+R7=A@3^:4=nhY8Y3I_
+<no<'FNWVaZMYO0n>5]kpZ2>Fjkd2as*dhV4sROd<.=E>\bVe:rII=;mm$U=r<@_V:]Ct"lML
+RP]e-kjHtV(!s4X=8loCVDgp,m\gUDZQ<pRf8C\^eDoD>F:HM=546RFYX5H^\t9`:!HlDBW@h
+1dOp'OA02EZSB'Im,brc?GU6Ir!$CeZtlU?<n`?*g=!maI5?:92"Bc5KH',Q03%HB<IPc5EVi
+sOXCsgj6)8AQ7P7+*][(=C6St\/,(,H[-[14Isg"d*=Ma+&+'2DI_AhMgXEl<pQ,%7qYn.Qn*
+\oW]Q<u'419TXG0=N12P2sWd>+SW2,%aIF@*m^D<c<e?+9dRg'Mj]UZf!PQh/:mbDDq9^:&-o
+nlm/BI<>(i4Pott[lgh(9a5L"Q`cTRQcfb$P(-^bc[A=[^FIP^P*MZ*'d&dV&'.]<*d[bR_2$
+o.nA%-^QQFrVa+_4A?-mZAIbe)oe(%dVft)ON7D$"#5I^=@*F$7bIIjEo(*-c:FPPrs,:>Ah1
+9Q)p0m,R=XIVbG1Q!ehHk'd1=iPYGb%%ij$V?\5rP*97'&!17O$bF/k\p$<YIsk-Cq<D#h'JP
+.Q]3rI`p73r(%U'iZJf9GYZNf2;`:-ts8'C0s-0U'PkFJe>'KVsMan4=pTFKC&+BD16[Bi!Hd
+B!M\pqJfldkm&*W'sVU9;1H?L(%$>J;tmq.m;QSMm8-jCsSqSD8)Eq"b/(lZV0sFrFZ3.(X6B
+jZKj4Ef/%Jql/^%'r/tCr/e!"P.qGtn*BQ&lZ1l0\SIDaYt8ii.+`C%.lPOG?BZJD-;.[/Df1
+ZC2ot/@aJ]"`NW519%hAQY97o_t2t675q@C(3%XkSUmE9ecqEt".[s%._?0=CQG1?K#IJ<3<c
+M^eeS?Ffr5&J]k:GtrE@,p=C)TEk$5Bce4Xf'_#Cc/NP,CqQ4ZK6;#5t7-Ognr=RH29HqLC">
+[QdssZnkd<74DoE8>94mBr%4!(Y*D*#aDD$"j(c,JQ!F<?r90bniU_*hF7RjoA^N=)l+bE^=3
+(W<Q?W@GkjV(Hhtb('4-oR^Hro2k^[5<G;pTpEFRR]8<VN964hfOQlhTphcY_M.9.enjg-"Ej
+7CC/n9g5k&iZSckp9#LDF5=o/F?-DcEd@2:5;g:1p'rmHY`M-]!XTk_C/"'d7TmDjqU`oJ6$[
+:K4L.HU]NUW(P!Ak3DLG8tGZLtR.6m'\+$LuDr[-ek-=?#&diXj=r[Nmjo%q.&U!&2IEVJD-^
+E5H!QMpu)m+_Q,^%:!*p:@VXc\oEtrHIG-kB6-=:A[e![*JYEbKLWhV]WB]gA@<c*SNJ]@Db"
+8f8ndnDWCr3S5hFg)*iT5Z;p`_WRk_K#'joZqU\?sJ64JG_uGf_4Y-:)?1)r83Zj]K?MVPbEp
+85I^&-phAb,M@jGZ0sl1abr>NM5I3U?r1n=$$QXr,s_npu4=eA(asI=!U2h>R8C?,,70b;ijL
+cKO'Re;io\eNW:4XkOlJ;Z$IU.IUS"l&_bKq_sPiX's54oqQ-KNS&t<B,+\V&0nc&Q+FVBo=$
+BVP@mt?dkAlD4XY_b.JGtOG<[^p>:qit,hMrsI_JL)Gdgr)-/Z:.cFHA=]0SW+Xo.>sEqE/hD
+6:,4pP/BF10F;,JN^a#5O[od]:RP7pPb\(TBkA(PcjCLka_=NNYrpRTDni@Bh,U*3NRMSgD4X
+Q5h!5+)n26i0R?duel1m(N1nEt7@+%nLb;o./oQu^K<f6O4S+.eeM#+<QCc.YhFH[g4`]jD\a
+b12Wo(uqDjBek8m8B[F+5fLrir!aIJLeoH!dltr`,Bd"kf_dB^Vc&G<T_KViUT@psHhC5L_dlR
+%B]Th:it#2>r?VC%(DUH>rcBKrpR4CY<m7k4/$YNLSZZG';o5)%BeGWZO78DQBnsr8NTKNs*=
+mb5c!>Q`ViFIea^][JJ-d?[hS7o'#-)i,VusJD@\/IWMFBn2pHbYN<'*jhc1$^J2FgTmZCFjl
+HH)O*k)jC6H&u+F>(YgE/:0qd"i\NYn./B`F$8oM'g>DsbE5C&<*MS_l;MYKf^dG"eFX^?s_,
+nT.mRD;W"NN(%6S2iXEW3,2@/f&Q$cN3:oM"C9;&\suhN^Hi[8$1[/ePTP-lq9:P,-83+b0>8
+hb=3?_&as2tg!tRrs4js!.\bTjJY![Zp/o?rts"':NSL7c)927QK:ABM?k6L+)_dq^-R6*p9:
+E?I+1,s-n^spL);^_64RFjTHgRa68]!n6W2.:mqpi.>7[V6gB[WS&o/RugXNuGE>e>T7H[r*0
+GZ=1\-qQ73+X/Vf9=[e\KWbq>LZQNmQW=AJjW1hD6.s6.)bOX)>d_A[\4=SjVo#QH(J%'NDam
+X/1hcqhd?QiML=FPXKr89ZbEfMu+6-_Sa52Rb9]LS!/RiFFahEG`=D)2D-RPAcsG5_;6n(W%i
+n(uN>p70REqrFnc-[!_*fJ.$np?fo0c5P:iA"2Up@i%i\dkl&dj7lI\@n,%1)GrG&/%V6N20:
+jVgA%n:gp,l6Y`ohCGa_9mmk/O+9a94lbH']XBB6V$Ui3gAX[e]7.hCG^J,69hh^Dc3a_dBf9
+c(uq/b4g@jelIO90OR:IR:d?IQ@-.q=8uTg298P]*s.7m_F[#qEM5`ha_kRrQj.[a3<iJNu;6
+lRGN3WD9!eugZtcEmQ[[^hhfUi:O)Jh*d8IU3-.d2PYq,68&"d&b]Gk?k]1"WjnuCIZ@fDfhX
+m8<?Rr=]P1@n$$W"sP]s?W@H"*1DGK[n5aTFKDI90'c]6%=&\,VM2SgV96>HTtdXuKQ:qiJ0+
+,o7UJ/UJ"VX)@DGHOQE#YQ(\0qn=bnpXGa\5.tJ#M*#g-FEZhe1HRe)?2Jta>7[@[ElaL-"",
+_TG='ckEK*&@D:i`JrT(*H`f-kPMCrNT?-Xt3S3IcpFtgAJYJ2D'f#k$HakD2HdjM1Iq<,ZDs
+!LrpO$%iG4E69]f?*S6je5?/Ja^d1kKCR%b2$]$=-MG=0tHro\`kfYIc8XR$O5A[+8GB?rBK)
+Ln%uZmQ9BQ.\QefXmFq60SNBX)WT061gJ=3eg,Pkhf]gZLRBl%IPFE=]B\[B._jiIS1IfoSVo
+tJsQh-(ekE#;e/ltfQ.Hd'N=2c+a*ni"]?]beuA[#OmXcPE$am)CW`V\bhh=B@ijk8P4hf"US
+Ijn/u-BDLXs0l*r2p5RSPb-@bcR6f+4tK?fPe5d,FN;4M\(2)flG3C7%d7]#hg=$?4Vu^ms3D
+`lhqG4(laq8/3N)h_*Et`gX6&@tRZFRVo\QQAn!MaP^k@GJa4>/n\o,AU\sucBfm!,^LF(_!U
+@MSQ+n!j<XipR#/mjgDS&TK=0+WEr<oq@4?*4Ofr5BDSDuQKOf/A-+j8-gXe`E:8k],:F?hF-
+aD)1Tr=adERqO,!@WP!2Dr8W0MmVC8N-$f1u=nrC"q_@ZkO[HfP%0#q(JborA^ZY!4[ia+HbC
+MesqfcDXDqC'ElF_A&NgAMTS*.5O\Pp[cgGb`aF4!LT2]XcPn^*+%qi%SJ4/Qm.?-Y"4>e0^V
+&TF;>QpZZkNAq.rF?+h%]e3BpQnDHoD#".pU"/`1oCD`Mg%75Ve12I[P`>FZCNmmTgL\:Inuq
+@jrQf'RAb,-*1:UEj^EMpW,3r!h=&,'ha2pTad.?]Hr;2TYee.ik+4bYn4*pr$i1AgXm(V_7Y
+,g`0[dW&B_`ccSB3sm_kI-no;tFX7004)BdkOc?h`\MYs7,coO0+m<QSXOP=0B8UQ^oM4Q.L"
+=7(D*Lnu(d;?>%a$^G'>Eg%GY1?@S>Pqe(2/Zo_!Jg[!&#N]jH6JO,X'6N6pPO$fDOkj`fkgE
+u1@,S+dUq_lT&)s-eFjQ6nlr<BfAK3\+'\Tke=?8(2\<R-%n:*#Qp%a'RY%DD5l_5%#jE9&hR
+n+p8G@EX!.q/aluh;&J-kZVpukPT*Wp24g+ZaFr4"YFebRs-o+dHo1:brD\Bg9D*NO/sG<TPj
+,a[3MT.XPs&C1Pma=<o5n[?F=o^E1Q4*M=Z1%Iin0KU0`d6SM%N\6#j_!OXR-Odcdtg`,rO>[
+WM=f=hRCugUR';*rdP0f?48KZ>?)eq23t9<dq_O3X4YXX6%c0Em]g9h&#-fs,\ls0;nHcn^#@
+_.u0/O)gmu0E;7?LLYUe]p?pf64*h\!g:dN/?1Y8bh!;8+4YLO,D/nkokI'Yu<q?g!0:I/ae+
+A\X:-#moi]HJHm8GrUDXGM:F?-,[Z>K8%GM2OK7&YlBrVEhONth1ZU!)!3<8gq#n&MT$@XCYm
+jf4EOI*puTZ=9@ep9He9+Fd]D94*cF4>42;b7,u`QRh.&VrX#Ua^Ro3Hf_>!jKs^'`!>A@J!Q
+jq%39K8i5'm[W5#HaiNN+o>h?UF07*?jBm8AZ?$fi/\_D<hG54W)S?lCC4M>>"Vjh<?^SpjY9
+iI+%o@oTZ/?%H<?JXi4CI_-mb8Ea8SZD4EA(q[0c9YAnO0(4N3[`XaMrCJbA_3i]SJMuA6Y\0
+e/itRWQ`EIPrC)e5V>h:p>9h]KH2+$&Vgc2>)7cM<DL"ROHVCU/Q+"HMpNtu5pWL+jAC3R2fg
+!XZGD@/bRiL9FFO72q(L/b8^b>QIs.jS*97-!=f<aZ"mWm^Tg@a7HS^6ZTkmQl?1ptUmWFa(>
+R\tXSdF9D1-GQm,gB/D7mp/.i:>Mid[3N]?jc#qWcIH!<=`GtLS*6A1CN`inFb62<4"%$A9UF
+4@H2mh`Bqj5&)%#amp3RdVbP!T8HpN(NQ&#>kbFXg-+-YG#Odg[XRQjAj\,>_j\_mrXml,:\Y
+N>B-b/m`,LOL`AD3Ohb%ILiRYjORTH_/hRmq[?`S_^p$)*L'Rf"KN]>s"S33W%hW1I'YYj4Mr
+:UKaT:d6-O;72$IqD*,LPh!PV]GHN#NUMfD>[3N]<jc#qW^-e%Hlc["J<kn:No@Sb+.D+r8@(
+KSXo'\5XI!P<"4[(7,/#;>7\TbU>oiLtVrGppr\`ur#r-#XGAm'M6I,c\:o4QMD,<>aMo)AZT
+,FW3DY7/\Qio$u;%d`c>rgc:(\'p2I4++,Bqi>jFqI%q!pNLM!<6+WT[nf)mFiqNPP7DE#3.K
+>/4e'I[ei7inL+tLM7nos%\S^_7UIUb0-I>8LI>>]48SQogeZVA&YMd((fB^Ud5?5H>D7OfBq
+-<Qr`uD-r[_15'`p`lY8<]nJ]J%l,(L=0NWViL2Q-[R9/*,*ujM=?^qp3]u<,VMa>^reZEJ+2
+aC:Wg]nsplF3D8E@hia2;,)rMDHVT`V5:X8e4Z*&?_-)O%b^=d;G4g:4(\ZGJh_T+upXFW&VX
+2trC%mXE]<uRhF6eLM>/nm+*]J/ff^5-I9Pkb4WF=;bocprF)_npIWtBG6UZc`)nTeL;A'nlV
+[5P&.X&lE,rJuH0?Emu4'2K$!qWO@QHe-uaCs?70^&5Ls?gbR<mBmsMIrXT(+(+`a%t=;rIkP
+-[r2k*SS[7_lB+1C0l+rF/imicn?9R:2Y9'q;(H_)/jkP,_m]sl5]C'[hDL;;%hO_L;IEu9gZ
+.INEr)^B%20F7Q]@XdKmPFmsIHPh@49)nfqd6hi!S?di_"@pPE5M\aDHO.$L4p"R=EmZM7fm,
+Gjh.>2q.&sjfFDM:q2L(G1M4k<C"$\=R^Lmf]BurN55"UALE(?U;+DZ"^A#>0_]SmIa$9Rn:O
+VM,TDe+hcT'sD1XA2TlX0\gH0:aMdaE0P"W(EaaX*9[HKjOX?[fs/='Tgk2:l2brQR:Yr0uUA
+k)MOk\F\!-]=Y\A/R.q8^\m2eLE9X5I/.954ndB(:T[a(U;+JCq<+AW[;+6\2/CdF>IT([qG!
+G;%1NbHHR'.,?-Xt3S3IcpG+d$#3Ig75?I@m4Z08Iq?)Gg@6^RD%0'A9aQQ>9F?-XP'S6+qsO
+HG-8QeSmpjn-r36p[12W\ikZT:4]dJ)J:m9a*>b/B4X^80A>P$m8#])2O)$",IOp"sTeb!+J?
+_JV`MFJ/H[F+JN=g=oZ1:k,A!@0n@X!7[J[>$JXYRDecBuUIL:FKE>E`,-!)2QX@rBX5]'+%D`
+%]$XEr\U<D]*bf^=q#VU9;Lkm[QcS@.($m<40AKW2.Cd-%TX>#1o6C37Z%-b(L@]4K3k>*s:_
+3pRp[r<D=c[IC8S"u,\kF/F&4iC,22f\5jfB@L^Qg4Vu0rc!p:(^b9,0ENEe[LFgAQs#(jsK=
+L>B+af/Rk&6'\7C,',jl//uOLX!tf+@bI38(J!U-'3^p`Pq<i:bR.q/alaSt<TGTr=JasgH\s
+rkE)2Q@q/mEcP^TKfOTBKOOE6i$pZ]YkM@$c;^c#p,;fCU*!([3\5UW`I6='&Jj7E@^B]'T@0
+D:pb@@g.5u<\jtP(IUJ<Y+M9tHAM3#druft`Al6+U7oaj<jtN*(F82-EhFBheRbp5l<)MH,`4
+5;<@PtRs$oE"l*>VDWn?Di$_j7.c0)?a%\W9<>R+([%Wo6pk]/;@6gVI9fO_P8qBpoub>XKTl
+bC08Sr\0t(#qQGMhWkI:M#-k/gEiRla#XBG%/^o^<=^[qn=`@5?0W;n!Cr*+58enc;F6Q^_c[
+T>a80ok]2REEmE=sX8XJU@8rRl_oGcBK\k\s+M?(_4E4t7B*oiWbN?-?bt9Nk]Z:0\27f:sY/
+/Y\LsY@kq5h*4UAi@J"qXYYja?PiD:%MQJM*G<1+t-d+M?(_*)K$]glE!P>rJ<d?<.n.GbN;`
+Vp9(BT0cJ=]3Oa"#f*CdZPYrPUW](f)qO4SJ?Qh5GrTT>4_>*F[*[q$dRe1Yf7?7C]*of*F?-
+*Q@iFgdi/0,hL_3q<,5mHIED>*4AH4HZbP=VE;a?ZM`/$&/)dQ2>?-]K/jAaJb]VQUL2S,DoF
+?'MH3Nq-ps!\V%-H(8SCZmP56^L_J6^MkoeE(HFE>%8AD>lohi?5a1>O$]P:7(R3/uO4Pk7q:
+J+,_a5d,gM>jV6)']V<UFA'nim\stOeS-$9l=*-HPXLEA`Ef*ROa)i3hU<=u6GaH*E=aqiO*Y
+r#<b`fuFft-PHp7]oV70rP/mPTL4aE!e(%t!YDjTcN+7_Ir*$L"d:XTPsdoUmLY(ia`0nd&V%
+B3Yo=RQk7ll#jPB`H3!fU<>!YbJ%8*4f^/1EBPl:S-V2hke(07$eK`,cTaga'kc!l$]9"67@1
+]"l^XI(Rak0-&M1ECQ\QT.<ojF9/gF\E3<aNXFV)3#lb).:d<QD/]6=-cM"s.$-tnq^3?EWb6
+X;4AfmUipI'3iLUW^(Wdq-IU/uO4P>7nG_q&L6FG?K!];j>n#25=ltM=9cRR_Jq5-h&s>5$/l
+pa0(qAHUuLp`/?7GJ1ao0n2_f&4`@Ec9AcY9]t3R<7F[7V3p+.2*VO`p3F%oaC8.*_YiF58ED
+9Pa?$989/gF\E3<aN8nq-^0A(Q9hlZm<iqrD$qOdq#Hg%Tc.orL!^Y;t!S[`)d&s8?tPU=[R+
+8aS_`&%l>^$q*@IeX'3]IG+2TEp3<<hIZZ;Q`D,oK368K]-`mt".;NCFY5bJ0eQ7!5EBZ,O/h
+Z:\5cC@f6^S;]-u!8Q`%n$4LT+8Q$%7Vds&5(A19b3bOlH9Q\!@0GaD.boqHL5-@am=YmY/'M
+_9@[2-i[hct.9C4gQ.=?-XOMcc:4%bK(d:C^?T0[0*,Gq.%f`#J,llU!%^mEgIAu7@,%Y1@g2
+Qk7q:J+,_a5ct28K?-]MC&'.:-\]\jDkVA5OF?-Ns@ugJd#ql/]?G+lhTZbCu\dT]NF;]mj/d
+$nA>m;LIb5c!>Q[stV14U4hAKW2.S6,RUf1!-$Gb8*\%m7E36p[12Wbq>La<5+fW=AJjW1hC"
+VUWuSS18[W7HB9DkDD7GA`OA-c7?Jr58IOJTZbCu\suiD3I`Tklp-o"5BJohk]6Z)Dsd+7`@#
+9PP]KNbJ]u5UQb?EiIl5.2ns/[l8U6RO3P0Z^L!#6L8eLLR&b!*2/B@Rlf5=T;m*TAeF7S-uk
+8FNHAV^Alh5#qK$<rj6.4kL_/n^!:fB(-jdq'YC$Jo@G'AN'lf3M^20!#mWk7(]M47Cm=$.[d
+'h<"4Gb0t",ZYA14asjbLHehqH/*O=p?=.mD=d9L+\dW+E^:WaCJmPj-?>uJ!4'Z+,%k-khpO
+;cO]5l,$T?"A\l<R2USL&ElVX%$#DGHP9Yr'%.$Sbok15@L:/o+M6GI[9@NHHRoh619*]\`CZ
+oD5b2D55na7F%7;Z97!)>rfmtOJ'c^k2a8"Q?S@+T;88"&D-*MFbVF+mf6["el`4Mqm!i_l$R
+*tpEi1ErZYVXbOXu)Zbgf%aIIj+=`ZjFS]pre0`(UN6I>ITkpJIM`#%ZY=I/^=0:+#3]po\Pm
+\Ggp!tc9Ab>tPmL3n>/>aKk7fE3]mH-DK?Ek!o@?=+2e;Kg_N_/pR9S0E11MYqp>hrgD5VsE6
+,qGuluVuQM7Y4'DSICloY<aP78G(&7*n&LI0;L[Jhl_BRp".>A5/f,M"pQ[rY?1qT?\r>F;bB
+ZOCo>fk^YoW$`nqSj\'j]*,M_7*<A`OA-c7?Jr58IOJTZbCu\suiD3I`Tklp-o"5BJohdQ\j!
+"m%AGBqrj:[a=-K.ZHIZV^AqG+*d<^;h6PGJ*8Y<(sun;,.\1*7W]N(Lb8dc&R>SbU<<OG7$i
+I\k]1"o^L%f1'&n=K.6m=c1(XUpcE"CuIisB6.A\rL,GBiE".<%SQZK1Vj_Ffi&)q-i\KVN*)
+>QXdo850`O%#BUkVD^a0'<sTc6%rs44%R"%pdI2\su"9>J"-#`MT/8\dW*Z>n0@f<f3N\^6p@
+*-$4=`q=^N17/\aJcGAh8+hH_1*iD8EbP/1aQK*@<fOMB?5H*d$O?%DCSBtOOFIagr?$8+eBG
+:Nm+`s&Vs%/PM/A3Z;[[8ZLR7!=YYoO9iVnG.3$JUUU2g:ill^VXh]53u)gK`VC/'`+IId285
+[OsYfdqs/,s"am2\(?t%*ICiK"+r3.R7!=YWB;(YNst-AlHI*?:S!n(-C/m>O)6u.43pK(6`-
+fOCQ;]`Ah0bI]sqD+GKu)<At>dGAQsuT16=M<3?6pKq@9D%q6J:6-a38mq4?6M(*WB(Hd0_-o
+jt]sm+@RQVq<%'F;`.>\f=Ic?1utr[[I"VQ*#L"[TC5DhW5;mTmsg[BDH]'=^elMA.DlT8*?*
+pd.>nm[gMu#FX><,I9#TYCu8C[hhD(.AtA&^pWKCi?8#re\SKQ'+<nB:Noj9bMBUO:ZKCJr:4
+^"Coi&iJ.".o7iE45T]-`mt".;NC_hn@*Yj6D_-b#Ym=$*%meplSDlV"]J?1s^Sj`K*7W.1gm
+^\W#S9XE`Hq(/h9TD.IDLn`'Xk0R\7GeN;\!h]4P58IPu?>I-2gn;jQn9S\.*4hY)(8$ZT5aR
+TtFP.3d:MU2%Qh/7lb78V3q*UM?MD"(Q7@,%Y1@g2Qk7q:J+,_a5ct28K?-]MC&'.:-\]\jDk
+VA5OF?-Ns@ugJd#ql/]?G+lhTZbCu\dT]NF;]mj/d$nA>m;LIb5c!>Q[stV14U4hAKW2.S6,R
+Uf1!-$Gb8*\%m7E36p[12Wbq>La<5+fW=AJjW1hC"VUWuSS8.)*7<6H.F%%)41@g2Qk7q:J+,
+_a5ct28K?-Xt3S3IcpG+d%"+1dtDF?+iP[s#<&MG6+OF;`.>\uZa:8o`*SkGPT?S[6MJpC7@t
+kkqF>L:/27c:Tg@obG^6*#AK'.gEh1S1bD"lrN5'&7#JqLG%nON"sfJYM&#>fXgEq=b!/XFM*
+(`2';"'`U<mH&u`u7F""<c\m3ot\dW*Z?.Kl2b:ui=PA%-KXs<;'=F"KNI8sT\Z2BLBZ$g\mY
+(LL`eNF8kA_WBXSqC*N=`IZt7FHIU5]Ks*P_*?ae9BkVYOVk?mIfRLa.?<,^nAk9k0R\1Og1-
+B<F:RQ;m37$Y?Bl=AZrK*PUMA@]AB)oP.\ZsFTqFV7==eOoMZ+"bNsNuFI-hfVTV6ect12;<,
+s!*`A&O`0"]tuNTU&BAcrjr)0S(J<O=r!QPHpYl!;YYN4mCqbN\[ubN&QRPuDK0$+^OU%UBQ*
+15]E(kM)LZ7ur[K5W.;oR8MR]L?Pqpmgia><-V]nW%L.^9UC=SU!#JA@qkE26-F&?e`Gk`V"G
+1qmsGc8ZLe+TB';<-MY0]TbLVt94!+uT)9<f/X>;V4ge"W\OS(6l"=pVg?Cg0dI9Eg!6!$'UQ
+RbkLot0RZ@(HbW%UIX')9_'>Ctf\0Vl63u\(hn(^+\AGQW3;>Qb@:2Su<;pf;Fs`=![#&b7iF
+r<=b4/P_-(#YXbcHjl_'&m_<i]a;hd]=+&k+r`F9qH`cNfEe?"-'j]*,MpKFeTZbCu\suiD3I
+`Tklp-o"5BJohk]6Z)FP23t,Ceot?I@m4Z08Iq>t4h?jh+4cJ;b2,]A09C/d'cnQh.46k/a0`
+i6m,5`Ht;_\r?Q\b5c!>Q[stV14U4hAKW2.$m8#])2O)$",IOp"sTeb!+J?_JV`MFJ/H[F+<n
+B*+@^GjLkmYcL_3ns,,36\@RQQ6M!-UE(sun;,.\1*7W]N(Lb8dc&R>SbU<<OG7$iI\kV@Z*d
+:FFE\dT]NF;]mj/d$nA>m;KFXig\OJh@.&UsnF6!(@O^E"VLD7[K5Vl#[dCD!3Y4MCo"0$G$Y
+UU<<P:Jh@/.kV@[gTZ_j9\dY5]kVD(R/d&$Z\dZ*Cb5ePo/d&9?14ZBtbCD+S%%o*61>o09?*
+8IRd#6.T$"O`U#$b05bDLe(>CHPi6C.^S#'S\m,hb/QFLgt2l8_gM5IIa"TKnhE=/L,nFa:i0
+YYA[."cPd7!E\N8cXZ2H?EZ#_]<(diB%b@ohcPhPIiBGj:OJcK&4L>>[XA1Hf6o(d*V<=bG@I
+tp$4k4[.#3^GkVD]Vbq=A!YQ")\Gof&eeHFfao49&=9QW:\f9]uP9`SM`1(]R^?+,?t+1lR)c
+MOm,>"o!'kV<]H[CQbhQfp19&R>SP,J":O7$dqmLb8cAd:E;4U<>eiF;[?&kV<\]>m:ib\dUt
+pQN>$\/cu^5AH4HZb<SI;)*j/E1(Y%'"qW#j$q*LM!Q9dH!tipl!&:4k5X]]35`Fn^&.r1P&0
+nap6q!B*1Q;*JeBJ?3$q*LMP>f7s:/49>\kA>?M1*&G*t#Rf6q!B*;nuC.a;^24L_!88c.-ln
+lVP?,$iL5:YqDoIb<SI;3B77Jjb0Gbje,[r<@[PYF&8dfQBdo`Cfdi8oX^nCkV<\]>u",q=#h
+GGFkO0BPnP[OWP8l'.$nhM8@.X[?!F)<VE*iq&.r2C:'"EV+c1AF;+$l^:6e[/?eHsS^'RiDM
+h*UWb<SI;3B77Jjb+n-^?d^3`%g-ejmjBrdnH)QhAolkrm9cf'QB<N;Y;YH6(Z+<g2-$%V<'.
+E>V8`M//VY&LFsg$k]1\N\B5+4U!$b@>ZIY(&S:nenXX>'\dUtpQ]k@`<DH*8],]hg?V[pOb.
+^MXH+tF_kjkO(/cu^5jl@+pPnOeDb>q'iHlM8AY-=Q\bKq$T*kt\%AKW2.S=BY`E^F7"E`Ef*
+aqe7e,,<?'.Gu[',eI>7+M%tL7$j*9^f=,8?-X"m$q*LMP7u+oa8(m3TUVj&X$k@s%&(j07!(
+FL&Q_!J7lj/Q8a'A)MCrNI>m;LIbK5UHb._5-jSN3eXrm-!H5!Ko[U$`FH\1iW^-"j_QTd^_j
+U@j+5X]]S3=0h2s18^3^])#krfrUG1tq]MMf_ulN@niL>m;LIbK3>dbDM/QTCJko\SoMG-O*#
++1P@@_&^f_$,hHVjqn[AL?kkV?]kcN>CG%umGHY.k3E,,s&.r2C:($1-XqQGZkB]i5n\hq`@V
+BjD6g-9:&RA.,6LVrQiH]6G?\TB.$q*LMPEXeZ071CCg3-W^rRe8sl?g?*6eAf).@)k?\sspc
+)2O)$-`;Kq>SccoOtLAQ>m;LIbK23e.`_EgW^N10KJ!?=dH0F'E0[1_AaP@-B*_cI,,39&.Gu
+['KJ$mC>m;LIbK23k.OQLR>qY&FJ1^p9dH0F'E0V*"d4PrJ;=+NY'jV"fU<CY-i$p*"Md7qOf
+f./^J&7N!im;6Z,.a;7!j6Q11=p)AM\Tr,s5CNShh)l./cu^5jl@+pPnT=_0"Y0:/'[@?8BkU
+ckV<\]>u",q=#hEAlE]F!f_%aV3TAk+EJOTP\t#8lY&Ziae7EFeIakf/jmmc#!aUh2G?Gn05`
+IBDVgth<ODK'mH>Ara;7<jHE$RfO:R?Wgk]1\N\B5-">aMRM2#Ao<i[[I'(`g0r6q!B*;d/9@
+`$(%/h,9]J\E$Mod:FF=\t#9/`2_PG1ZW&=g5D%N\dUu+6^IhlLFrZ@d:E;4U<>eiF;[?&kV<
+\]>m:ib\dUtpQN>$\/cu^5AH4HZb<SI;)*j/E1(Y%'"qW#j$q*LM!Q9dH!tipl!&:4k5X]]S3
+S"+"kqK,#Af4Y:9kVW2DPPB?1it`<D4A;H+@?LGNFKig/rp*?#,8&ibD@YgW/!1Gieo7\@<7d
+U6$(=n)/r$2PJ_s_:tXRbER:43>m=Q]jlCBR/eg3fGoS[(9U>c]F?)?$W!e=(>oj6q3R_QT'j
+^MO%@o#9-q;+"T_:Eg45Z6sF/qtSW"%ha5,a;/FDc!"Xf;)pqBhW_giOEiLb=%6L?:Ad]<$M'
+FZic<pHWT$(_>cSc0_o)]mcuq8QI`.>m;LIb?grPRpLA4V0T'Uk^;(L$Di7#jb,V&STC9d0)M
+5=e)g-[B[3"u"0Ujnf4_ZhF<1Q!LBY8*520-0g=@E*2dMI6RQ=Z7/gE==ZI`d":=M9f=0?\m0
+"XS5Kqiaa#ATH:G1l3XQ0<76*&QhPQN:00fkWDo-T[m*:8,jF*i0N5:n*Cra,VbS&^b0ndEnD
+NBU@7fda$!dg15:cG'"UXLb=%6L?lcGc^2QJaSZ.Ja[3bVlpR2`j.JDF\dZ*CbI5f;I@%@nHZ
+ZBIK6Fd!I;'a[l#K*W^E6ZmF$$#XE.'o<I?VllDRp6E7$j+T#=.C'k'k///rtYISEVfeMCp93
+"*HfSjZr#b&.r2C%L;9HTZ_o5AKW2.S/`$gKu2t)O+ZSbkq_1S/glDVFeQ%MbN#6UB=\M]U<C
+Y-*N6$P'EJne)o[WX>oj6^$q*CJP>bZNCoR,qAJgoKEZF)PV?1$mrm53V0quiV7!';3N9E#.&
+R>SP,J":O7$dqmW/=jbEl7\YO+!?GAs_7-W7kaI@Fa4VVJP\/.WlWM-+Y)"[`s:]P9C+b7PS@
+nQcFY0"*'1s#cGkS[BAJ@-45CM>oj6q3R_QT(L<%;#O4WaF-jp5F3\kFn3r](`IYTsf\GS.d$
+umt#(4h[G]BB/'K1/\*&QhPQN:I4l*B[c0Ua6EqGY@-S-S?%\(ir'J*MEV:)4Aie_R+f9c;tg
+h6kF`Xld#odtt\*Q[p\9<0otRGf24]>upk[c1<S=qd%e./ljH-pAH#UF`XJM$WtiHRk=dtU<B
+udkL)S35HR$g;kKU0T%I!aHg,R0gXNd%S:<9S[5D53!+#_t0.VKCUWZNC4-27?g%BsKAZlK,C
+[HG@p3gi-p<Rj+Trac-g%BIpp#^=5EN``tF>gUS>Ost#]\=IJR6l%!rVCQEM9`MhGeT^1iS)G
+'Qdsj?$J"6oS"'$2=K\X[mRaJ`@#.-l=ac\jB21eVbDN@Rd,jgXB[3"u"29ZGALmOQg'VtqNq
+g=A\f>^Z>')cic(0<MJUC+(Qcs?6.u0sU/fW#YS,.$dTNAInbN3`jS?lpb"X'.Pdq-_kXZk$L
+4-/#TJ%o7Kp+A#k9eppc:2QJHrJ'R,=LlsuRkf)YFh6qO\VKE)J66BZbCP=q)M&EL.MOdbGoS
+[(SE[omO;5=jZKk(\Lsb-G>o[\Kni1=.3HKrZ+H(9hA]sNu6Sq;c"*JUf\]a$+3Thq7(4aWN;
+jUu3%1^n,_<*A2KBA\^Gut&E7[It-c%3Gcf\GS.d%#/3%gtYFkd#'-U]9R]RL6Qa@`7C]NrrY
+lbX%SdCRm'-*jZ8bF'"Ah][m8t)I3OSN\1E'U!#^;d:L*AF;ZJd\dTF0/cu8IQN<l.A_UC$::
+8+n_lCE79\J3<F;Zc()dRpY>,VC[?r7VW)o[WX>oj6^%%)Z"gX`rj&"4mT2KsEd2!8,f_ZGoT
+\nkSd%b/J6jt;^Ik+%?T=9)5gQYgN_J\!hnguWP&S9$Cq$UDkuZ>H^(:_sA+]0$RlF"ZT`!D$
+@d0&,6:;E8$&(Tp!qRclg45XOATEZD$Kn%*ME:"Qq4;$ZAO@pZl9PX,e'f=m.WK!WY7)p\8SF
+LH<sS(h]u2!7Q!JJ87SZJqK_!d-NAr,q/'58ps_.uogr#NR_f^T<g6X?V$9G<,MS95&B^p/h:
+A@`[^*)@+MIdq'X*Z#nZBmTfUdmAH646scc^M?C9<8\/c16#Yjil_$c%*-^'oHHnb0dGHbmml
+LElXoJ#aC7@DQc0[@uRWG@L5RQN<ZLb<b]^.[0c1rmX68;@#$K\[unTZ,0lY*8B*]qcEFBf(9
+TOT$Ve%!uXjN['2=h:-M1&r_\p\!We'D:PW454`K>Ii=R#@sC#E@)1FiPmuP^.mJ>^;!_!GX&
+s6M9YEF%[qI9b<QD$T._SAA_2Ed5#=<OqfFia0orBYD!mNH\(<TQcC$9e.7iZJlp)6WkO1Jek
+Zp1"\nFlUk,HN92n*8&l>4pCCi6Frd$umt##^Q.lcY0T"Id*N`#,-!Urte<3p>,Hgf<.b?K7\
+=B=\MI+LUrR4)a+@ApV/K=SX2\_V";.pK#QCd.r=F)S\4=Vt4Y5>R0Pe@pU3ek7bpo#DQ<Hg"
+\#pDHCot0M6AXpSC&R0bYW/<@D\Oni1=.R4\RjLptRmdhD=mTIpp:GBk/bk=h4n'Z>I7m/")"
+<cF]a'K1/\*&QhPQ[ok?]bRu`k!32lD!pjRB[4/ULBSf3FP4+R*2ndJc!;@qbrHU3YQ1JX0&+
+r<>L1)$E#ZcPc!;@q\dXsY/j%ZG>H0hu)91gA*/AdB#p;(9$ks[e#)km8JV'Z?J5PMc:iLLo0
+FD(i$B?_@7\S!j_9li0.!-=T34]M8Ke<H28!a7Oct/m.kV?N[\dT8m>m?6SQYic$GtpAaXj=R
+0+M%suKeD*oF0-*EQOQHO!Me"QRprOCE\dCF&-YIg!Me"QRprOCEp0h)kV?N[\nk<h[8%3;2B
+Q3/N'`kJMRh<[U!)SnbCEIRZ;!(*3]V<8Hup5[$=1+1>3hWdd\!64Q-7e';on1.q<0SAPSh$6
+PH>COB_>)/Djd?CiDq5t<R)AkCd,E=(aZ=;LX&rI3=#Cp#U-eGr,&6Og%L=rjo9I@(%6H;+-p
+jf*^Z4<8!a7O`6r5K"0_)celF*?02/P#;>`66S@o'mZL_CmX.YjD3\(;"k5/PZbLo=N!McI>A
+T`;UYGp3\&9Fugo^ueg;Yf1?mj]/@rErI?QS+bg/d"R7m<gp[M2Ip[R'S<fo4?P<JQB]lH+Js
+7TZ_j_Wn:lOQkVLRD-83sS?qC`l#NZKA\]]@S1hM"-hc`.eOs+9QNI[i$!kh5\dTE%L%f)tof
+T[N?+.E'Ale_+f-.HuaS")&6^3>%bo9s60"MH.-&'*@<X29qi6GuMXbrE)Wu'dO=_/Rr>h*M,
+]cgZ>+'f)0_WQ@#'Q^C?6^Q%fQN<l.AXd/3F`Q]Oq<0SA'Y8*ZbdC1U>rEd1#)km8D2PmTae?
+o?UW\0bkd!o;f/bp6fmIlZ0FD*o.HXe]LG#'W/d"S:b;R=Elf?E(o?h-b.!4.^pB*5`'O<V%)
+dNYAdRKS\9'6:5&6-'H.TGUe?kg0\'HCB_N'`k^JtpM>;<Tc3E-)sO$=*iCN\1E'U!#^;"mRj
+n'R4a<5XB(,Go/eMfE$PTX7f[Xzzzz'McS"-n4&2ml(7I+<k#`6aW*u!rrlK79*VhU7DsgkKB
+\0?FR=53<0'9>bAi5Qe1fRZ#,6\T)o!hA;ZH9oK!BRU+WY/C?<WW/3pU-^(^Qt6th#ZBBbkBc
+gC@Q':8;b@\LDMnSuAFJGdjaZ>58=\uboo[Utj,!6Ce*kKB,hFLiIOok!gHkV<,\a.d\/o)AM
+thhed#=8SR-o6tKU5S6ENEr+uT!$K<;d:HWk"oo?*-G"#=4>@<G5gEo:b5_MV!F5m0^`7G6!!
+%)eAH2_S6'hTP0F(kf!#Vlmh]i_&Pa/)g!!&4r&YPRdEQr(][EV=1QN."@c5E9QlnZC7_5/SA
+T>H`6/m%od,lg2T6UO4_3Ib=@RQJVSKQ9(X!4",)>qZ/`Zm'TP+-IT@>RhR#m)iItD+AO%1e7
+"Tjc^56U0tSE&RDiR]Q[6ER^jCj!844%A_/@Wc;rYj.aN+$CE269*&OF1jg^7%#MlJl*%h6Ej
+kF@u]\9OH)tA$]m!:'\V`ETdgOA3GM0;X9ShHE_GhpsA90$8f\lj)7>QD&[h"e7t?$?3iF)kQ
+0%B/CYNQF4A[`qY?Vf\=Z"3?IT\t%'0fTf_`hXV_(-UjKaHJb(@=g6o^^))/E\t[Ai)*k&fIs
+kH?hiqJT%P$?0A,EusbP<J>\u^`@""8uP?.LQF^:Wb)^+\)[l9C?3SfqC"GI-FP\,^&@&m\O&
+bFMIrbPucYmWiW>/r+\"=a`0=9U>e@=OQ[89(RFU3;*#U>Ad52gST<l[(X$(pXIjkIVdm8je_
+n-TZ[<j-cWo.pAO<W>]r,U76Y'RilfD`3EuQiMpM:C7$i1I\L'nu?9&#\\"%Top.sS\=3=.%/
+WV:!Mpl5;.#8je\Zjsq0a%KtZCH'j.e`U!!W[6f+'mGX=gmNL!5NiJ75Muga.G#!Xt3i_!19i
+%TPTIpZLM67!!%[>QN7(?#@0eeeUFYL9="3l)1\`[bD:sEKg*)L.>cBY93SaDN$6H,2S+i\GZ
+8?kbM!n-X/IjU).NSO^lW.6>t.4E.Q#OaI;R[;@o^u3U_uLc&J:'29lsM[&Re5T+4<P9QKIJ]
+A[p_sTntDf,9dPqq*UV7`mS+?\dVY&.Q#OaI7/`321J.1h,p,HTA;+Q=gCGD"l&n`;HpA-m`T
+gLGcdNGHLqBf+&CK=Uu/A3%fi/)A[0Eb%ug'jp#]1[9u/\2MQBdk=\/-2WC=b9mcr1*nPfCA?
+Ts3$pN#0Q-!Me#@s_1QG4:H>8!OVFTPLGc?"Y$3mnnQG;XRWY#=)_0XM.\>?1r#dZP;NElC4R
+eOe?"2h]dV`R&;+P]mP%7<9,tZ8Er#^%a/1VPEc@mk=M!!<pCV.;Y^=D5:iVfA];`8%>&G*'[
+,i#pm0f\%(F#Y'6W^nQX+d;\FnEC]5rkTr<><n;kN\^4X0/DlTCIa[lkr!OX0R\g9+r&OQKl0
+]3LB%[J?Ms8@)'bCjUa0$C\G]--ECj%(^UZQ>5(LH#1H_W:/"lDI*PrYIXIHVH=U9]hN?"b[Q
+q3f?s>d*pE,9+sO1fE[F2mpX`0tEHYAbB@B6ddUA`fY,]-X\MD;RMDWqt<TS>cA`&,fLkBtLj
+bL#-7.o:0Y-mE/Gl9&SGUe.\o_Q98K.aC[p%@c(dp7.r?Y@>FCkBg7dO[^r4q'QaX)Sf!cpAg
+G3+'sm>^"d<jV"aRX3[J]G,9/e$?q^e5Ai?.Ufb5odhU'$^4P`RIDs8UL<+-U294DC2\;M`p:
+>k-r@75n/uqLm3EGs3M!KVjHpR^5$9HH9):I<`AXD:.[+Wm(9?U8j\6PKd]Q0Z3l#^)"<hYT&
+Dqr_5q6?cGl7Yqhl!B+PhtIjp\F]kDAXl+@Yib1t8Og=..3J/'ff(,?/h=)#QfEAdAl)gGCqV
+^NMC;\TL%7CD,d]LUWD'WBb*m+D1Yp5nW%LS)?hOppTVjcd/T@?_'r9%LVg\tuMMPl2eIQf6>
+UVW#Z;m$!7?fCcUY>NsV";+WI)]'4/(`T/KQ<O3#Q45+>WDjH,GT><niACgDseTFYA8Hd[H7P
+&hQP4Qjh&^%gW4_Y$eJNAa%@?a><>G6]9?hp'G#+Tj&k7[;V.%QNcU592#$RsASXr-'iE8`;O
+XY5Zo@\U@9Nf7^83T<&#Z^irlAM=1F2^#[Pk%og5D&cWZUMcH;k#q^,/Q+=W\6\idNR;U`!'`
+/gF5j4XtiOZE=tSXH/1%`;!_P82GoO,9e0DRcq%@,/TG15GX-R/Bu_CbAbFq65*YU7mn1lo7o
+0MNMX2^F;_6+<+r#LqD(!1k3iH^BnjuG6r\J3Zp@'f%ZFE;[eXU#/_(muL,;-KkVAm35nMT'>
+Q@GfQN7(?#@.N6^`7G6!!%)eAH2_S&ZEkQ!$H!E?*<m*joGH1MJAck!rr<$zzz5d@-b+oM2/s
+'NKlo)\ml\Wh.!Cj2ekGB+)l-lQ=e]Mds>L0L6I3F.%cX=11;L9=mdk?M3h7B6&P!s%9*ej7J
+2D77H0h9bJVc?j[4aS.</mSreU!!!kQq9b`o&ZhcGCJ3\JC9K.'FudJb=dqX4[+_.?$38.3c-
+P?"?*j*C48%@kI%K"KK)0EOo"AH_?$?2W;!ece"TT6gI[@aj)#MFS,/cN$N2t-jb6@r3/:sHH
+=&+V/jZp"&lZ>.\7A@s*J93'mAa?I:Q?I\WR-QV8Gs0RBS/Cn#B^/$d_M/'k'N1/Ja25XW)7W
+3;J:a^lQhB6^SJhSH#lmdeeN.'gJ)>B`$sY%X5g`R0H#*H\:e$cP!&+X`"ouFYF;Y@ag7JIX"
+Q"t9,_RcP6*VY:r7M.5(qL+Y`K'H-d=<hO$),O-;!\I0)+Y6C#(g;STZ]T@kV<\`3s&[lP!bR
+eT\'k?16<KeS-cnSYOg#+TrI3R^uI44!aR_5OsNbCY3,DrI'2)&p,Wp#>rH'c01H].8T+9BIe
+RDgGASmS"M/EB-!R=Ok4M1:3`ed3kd'0i796<hID0Op.dG/,q#8S*g?$Hp(@]L2fFd>QBhCgC
+A#$!Om(9Sc^W>:+V`YT$8!cq^CU#).^0S0)g=#k59D'@+^28n8,LC"sPbW&3hB*JHepQIMo5I
+RBhoX>5Q]:*1@BVNRS1j2%<6SD+E^?oSct.8t7_(pLk1I:NmBt7f\ni_4WNkcM_KFQ+M.j*Yd
+,f!q6C#r06TCiGig",eS-a;j=Dp=agGUQX.K*3FXk+0Z.G(+r0uN!Y8"e&f(trfjd\Z%SDd4n
+hFC(@fB*)?s=_4$:;7;X5*h+d/@7R!67]B(f,0D3<n&M<Kk+KnP/#QNu,]nIOff,\?:L\ZFnT
+k^J6*MT\A^cmmXH%=Xf*b^>hN*ZKd:Mp7d`a=O%X%srO9QWWU=p!,W9A7KE""Q13s&\G'2d$[
+\dS_\N^/q^jNqH\.!>a)$m^T\"$s1:ct+=[F;Y@A*J#gFae?mC;!\I0)+Y6C#(g;STZ]T@kV<
+\`3s&[lP!bReT\'k?16<Ke$j=P05aR&_<3+2VmaO+3;S2[*k`!1Rg8R;[?Lq+*2=D`U'UqJ'i
+h8U+hmAB+6C.fAXW\J"p#FqfE1jE:Nbrel2nZ+=6C4a"VpPrlTtb?2FU7Wg)"/[7]XC7CXYmj
+c0+cSj9%$uTZsM]l/W%_O>ri2t/,7aD-_o^lJuX%JFsut\IM8dA$]O_m)TcdWMWN5gOqa.)2"
+_ofF$A]nZAMN0RD8SN'L/^)N,7mT6+cJ'>H^cZ]SYbKfLp=]W$U//ocqh+R;F1M??+/,G:r65
+_K,".l=$d,VXGW1I6\R9$!ju&_UXDmf7UWc[e@:2p&$ZXSgcdTCqH)'*iD2D/(Vm&Od`&F5BQ
+1+)U<IUp`@7<4LEUjPMAXtAQ5!@%^PO)jQSq'?>KKSd<r#"]kogJANgd=lubUBIG]m=R09'\<
+?='$4."5+g,acj\q717+T:hh;7J66)^!$I-+?a!RG?ns2t:1(4<5gaVl7>U*^k:TWb7^l"%)>
+_mrD,+f:P+-(1ML:4OZmnR2/5@"20@uI[A6qS&2,D`Tr?CqB-)gVP'<5H=H)"V9<0QOJ`27,,
+;;fV=2k7QJQ-%GD7Q-S)I'/E\+hil^cb,kT<7BoZ!H1D-!6+qPVU^3a5mmiZO!iqJ[6mj?ntF
+?&l5)`ApciNfr^>r=,P_>T)8iduiH=qjp2+maO/6lT?KWr*rg=a!p^>k>I$%ZJtW/Lj'GEU>`
+t3=oH_<rMf+G,d^Er<Up%?^*=D8OF?TRb0bc,B.\Kaa1f_uCYXk[EgNo;^&m<L\\,*0H`)aXj
+Z,E#gErfhpaPZO^.1Mn-\<%*m^e1RpZS8oTegf))pU9k\nnp:Xma=m7nf'-fJe]V0*]u*qdnY
+pK%F\GhSf)iI4&Y$5[ep[=+.8^Gs'T)#JkP;5nDnmOm13hMIe$DmVYKCm;W=_=CFYU&[K,.NI
+=&=[o==qN*YuOa]t1mrC'\6RUZg`Q`@:REm_JBJ\pKUcC`='fo#59&"R@6!2kW764P&HL$CDu
+MScN:[:HPc5]s=V(u&UE#O!oS'KZA%#*M??JY:X-kVA5>\dS_\N^/q^jNqH\.!>a)$m^T\"$s
+1:ct+=[F;Y@A*J#gFae?mC;!\I0)+Y6Cc@dK:QDgu`o2_.*2=D`s_e]gCkNiIrfh=Ha!#tGn&
+`k@uk,JA0m]O%AiWGGuRr?CaMX,M8GV<>t!]pHh2ULq/MX*Yp:jC57(,9tmdH+%?>rGreaDX2
+Je7htPDSBKQUAefe7+[iRh9,EI]bW%afFd>QC!&kFVcfq@^>B-k\?4%NFH.qZbH+eG`I4_HC^
+-WW-7_U>gAHb)Ufjt73HlS<cK4q%ouqRH4k!1]=`g&a)ogH<7@JY:ls!f"?cs1.Uj4pt'[q7d
+e[&7,P*tO>YpuMRU.DW9b=8aYfk[=!@=lcS>M'POZ8l/?m$6]uY:odeJ?/J_LjhUfr#NTKqgd
+f0/ON#L\ni^+PY8[;*;$^@`Pg,/G4+g@3NqYP+V^ioY!39c4EeXqa*9k*X37Z\P8K*.)f',nV
++[/@Vn@#[1spU1WcpK"XYPPMJM*GPN=F:D=a<X(TB]?_gHS%f1D]D(Cs@g*1Xqh0(1/qob9j8
+`ZQdOmMI#rSmFV*TF?'TiZ;E+#XGF0I_!B10ZJ%V-P?O:^J+V0#_j/]PLp@c"bEg1Q-(Rj,fO
+e^l%GC&mm.-4[s7\*i[]h"'A^cmmXPPcpY:ht]ABX"hiHeW]+8%d#aoatp/ut%L#,9<')qq%?
+$hF>]5H;tXr.i1M5aMpZ8i,3J#O$1T<'AC_:3,rPLgWa2phqK;8j:U5BF=8D:gT1qlj.\N8.J
+o0Jmq6Cb<U+31(Y-]!aQ"n6^N@sfFd=&O;th?"BF.fg5:kB!t!AYXo:2/I&k(qe_Ud$51*pA!
+6d`q!<=fDTIp<HJ>?n&Go-M]UnZRUm/R+dzzz!0A;Qro5R1!:XpWrlZkn!:XpW5$nNpzzzzz!
+$I58s1Q/2C2.K#cPSC.nR=W@'m)Qh,Rj9A2G,-QHduG5UG8A1@Q`[>QXKsh;h_Zg2NE,=@Q`\
+iGfD8PGQLHE5?6XO(GEca?ArO0kV<R_I]C2'04'TM]GSt>d:F/HrD\@.?G%-$GVPf[U<>5Y>l
+/6[>BsLE4bpOJ.]unlIbaN8E75XfSsdK@`euIe&2A?2n]qbfLiHii1\nNsIDF<Enp"aYiu'M]
+$pu;rjjJk*s&]3+Ef/IoTCYRuRo`qF.V+lg7a1OGR]"meO(T4_T(/Pu0LQ7R[cLUG;*A..S&Z
+?a_iK/IC[*cdRM-?GpipB\iu'M]$pu<=qJs)>Ghkg8Gt+$Tj.=O(qK+`a(sdHSAJcVbo4?P<i
+O\C"4^E4O-,k[C'i4h@?B$RM&`X`^\dUqChW=#d.r4]q:]5mZfB)YNOXlh^Sls!V`euIe&GbX
+46!dn.g1BqA3FC&U`\UqC)29iFbJ*Gc<hK"!lM]A$a7Iia,N]srk;?1Gpiotgcg@c7+jC,$J`
+E0P.jIX0T.\"mr;Nd*i,LF!bTBXR1CPGhO=8St1]$<h^9:YcAJg#Z.%#25b<#78;uQ!3m4!k^
+5AeaB'_D,*hkq(!hMA+T[`A.)nY42\"<C>nlF</_k)ZF7bNa:,q#4D^&r[`)`KL#1DAD._STG
+`07Rn/O3pu*[q;^`4qJp_*iPhbce6J.^hY\6-\dUsQ&I"qiHT>L5GUE&q"UQnu4>ibO%bG:bc
+/V-W@0eog@+90L#L"8c\f=n0kHWPNeT7V2a>#`M@+90L#L"8c\f?G#?$"+^N!ipG+a!G,'`KF
+Vs";`IVi<^W4Yt,+.!*DW9.X@$k52D6='to\C>7LsSX4Ud2@@`R5P=jn3(AJe,0em[EniHoI"
+F+a4EH/FN#,cS+bFmjp*6-;X]cd\",FCE)@+G_,-P@^>o-)GmY2_UN#eO`$lRCH?p*I<QXL0u
+kHUQkSX9!s7_]>_$_`(8b+.L`RH"sF3THM<N+]fe1(9kkTB_s9L@2A5?%hE:Ldb2qmC6f_p]P
+0^G\.uV))&Q06Nl4@?([[2*o"B2VXq%dH</Vm;m-SC'.r=L).dD$pWOMITZeD%ls`*;7@.G=d
+-pj0T=F-X,AZ.iihoZ!ehchY[^"j+PTf(T)iSFBkV<PYH^E:_<2W.I/jab0]<<k,4$GqJ17l%
+mGfGXo_[o]EI^sKnmqJ-bGu:-EW17>/i4NF#RlDcFQuh%=F*rQpB0>d:nVe8iL*6o3T*F-9MK
+[cJqOgfpnOsk]))&Q06f`\\%J39%9bED4;8su^,)g0'(sdHSAJh-Iql0R!_/0O"g^?8/5o!om
+;o<k"M_;mYm&(11pYs/:`f'AG(L;b=fM<5Am_t+SN#1Ll0=hQZPkNQaGR/NKX7fG\Mt)`Biu'
+M]$kq.+&*"N\`\Uq[B=t6m8-T%ozzzzJ40>84)VZ>~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 647 647
+%%EOF
diff --git a/doc/print-main.txt b/doc/print-main.txt
new file mode 100644
index 0000000..69fdede
--- /dev/null
+++ b/doc/print-main.txt
@@ -0,0 +1 @@
+[Figure not available in Info format]
diff --git a/doc/print-setup.eps b/doc/print-setup.eps
new file mode 100644
index 0000000..5488cda
--- /dev/null
+++ b/doc/print-setup.eps
@@ -0,0 +1,225 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (print-setup.eps)
+%%CreationDate: (Sun Feb 29 19:56:03 2004)
+%%BoundingBox: 0 0 289 226
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 289 226
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+290 227
+12.000000
+290 227
+1
+0
+0
+13
+000000
+ffffff
+cccccc
+7f7f7f
+e5e5e5
+999999
+b2b2b2
+d6d6d6
+969696
+888888
+fdfdfd
+c3c3c3
+00009c
+GhVPUM.2r.%#/?AQ#=kD5OW(N+k[D=a*70"$T/KnrfE'R*rq*6.BGsdL9?kaGn=/@DBq*CD?
+Rh^S>U6DU"aHZQI,Ws-:n(K3nK#2Qdp,'0KDkpKGK>='*:R6AjYp0cqOFdDfR:T7&Q&]aAC8u
+]i/kAcW%,X6JjkW0:UC?FR$r%Ft]WjbarOe&^mM(!'7A./^4E>_O`]=NX.d_T>_II%%6^5#Rm
+\X$.523>KlM:4/%F(I4\7[+nu$jMe\jPmluho2CUVl+`k,:07.h)?VMORU8cDb^<Z&<:fH=-K
+U0<nUQ!_+.=ILW*SSkQ&:-/;NAQjJeEpb@%dQ+*H-T<Vcjad$I>4nk;\NpEm6]-&G!`7n7%=,
+\TdLI>S:hG$+iHqXE@O9<B1P2bn@qp+$+4ZeUe#2dAC&#RKRWV)-I^4m2IKEp$P4A1D<kR,qt
+H<PWShiH>H@bNKRU>YpA/!IcusD63FE)tn&0n'&b+o=ha[t4,Q"I%$P4V[<iAJ96.lT./"nkO
+#U-#PcnD(^&je5_;L8_'O:Y#1UhgY.hX18YhX4D+?;Bt_k3icLdPaI7MZ4BUg&u(Za;5*@(8H
+Y:NuSa0[]OdF81EG\9Pd0Z6HY!Ud"mcMKVCpl\Ag@ML5:pM&dV["TX#.b+\++N7p^@(a</6O!
+20K/NuUP.fa.O#eW7mM;%O.^KYTU*3XuIIRY+EV\H44-7-J[P3\R1#YrtL1a!"D0[Khu9H[#A
+0KG)d#Cu71F%V#=\#rRkW&jeou>!d@@HebPj]J;XW(e_mB6-FRj64+=I(>F2AWQs=dQfX:q_0
+nQmTIt'%4%0)#IUjBqiMK.^5;Ak%Z2L=QFf!`>gq.ud,e!.Scq&g.8I,VG+Z(dE!W28R8$59i
+Hf^`[_t=4&KG5Vp/[e/P%nER-^\sgY,*s\jgH1M=O[gdPMT,;Qgt;tpm^F:":rRm1EmHC08:Q
+Toc'C;A#LVDt*E1#P&0m#;JUJt4W;kM!-ff_aZ`5#O=R35F_#EIk0P='"FT;X*9'qcl!GJDL7
+X;YJImV):*$,(j+<n2?K+B>_Wu5PK.t.A<6?#]`grjHPp=8U)#D@In9F+q&WGBQJ"1B$k64+=
+I)qtlqW90KFGP]O0YbBuaQ\b%Ls7W4,Cd03h)3Z^`ni9#Cl9;Xp9rS*E^,;TRC-h&IP_>,0)O
+Ab4j86hAmG;]T?g`,f`$F-hb2bm4"ip.G]gKkB9uZ9fj)UO8UWp7?;"0Sl6JMN=69$'0nFi1S
+\O*YIF@V#^535JSlrTc%,%OACi>50Yh=D4.5Mt=`3VK`\6N.6;U_#T)9AT,`)""8T,*u-eEb!
+]u(gCfDf[g0klJV]0KYi&V';>\ab_J/d*CA<-rO>8ZY!PJ3Qf;b;+[g"?&jiU%%p;DsGC*-Lm
+dL1a\@1N+$/ng8GN7"?,r@lF0r99dCEPr\!&YqL3a1u:[VoG`+XD_)KM\N@p'ToQp3hB#]g3t
+Am=!SXC7e<mKG5VpYMVP1;&kBgV1/;m#t6IDZJXM_8<-<@E52?5IFI!bb-au.*1o%hTh=Y3"8
+]+nme2_/Y"Gad-E)(%^&=,!db;R5!,B">nh:F&3+$6VF,#dX!rmr#L.IoD^_!O?1lD.7IH&?G
+B$Yk(+58==IZ%)%Zm;FYTb=Un\JC$TIUVBkIMbC3F/u+JES2k/Y8_1Bs+nf0RS,u'P7Z_!KK'
+8]:-sc#&E4sg3!ga'6AUg:icL.kf_$-O`ZDpRU.hMDKN>QqL#8uZAkJm4_M`iQPs;,kQ/lM4d
+-bE%QUR<;f52qg"?(quVTG'^;!W]I;^rpt9=ueuK^SQ"d&5LFT.D/(8I0;K6C`]?-R$E"#]UJ
+DS:hG$+iHqXE@N_)Aj"Tj"J\OO.8:[HX[c$t3k.cf#pCJA1SGW!Th"G0l]7#Z!?#G8GGt;TlU
+0sD>`<k4d>',\+nT:M.eV>TpH`J8:O_hpJaneR=n)Rt4<ZhkhN,&L4M%-NM@#[qILZY;d2aD1
+j9`J)rKC[V=8<FO<(b#_+q#a'J3SZ[%/0-1Kod>)!%[<t33XQ[b33IZi"ZAG)ELrNQkQ%?!q(
+_j#t9o(3?mMi>TcH$!mR>bn*\SXi"@3uA`3[m\4XV5#gWbsH!,'=d$TR\aNIgY@TZR(M,%a\'
+[X.[8gu*/<`A`^-q,er(qDHgZos,iaFsDO&F,?RcJ3053hb+_O^LV#$-ab>`(:5S&ji+A&18X
+>8I0;K6C`]?-R$E"#]UJDS:hG$+iMJ8C-;j(?Wf^t^S'gmianX5&?#AXMGt@4&ZRsZF[SRlo+
+XN]KFfLS`+_\-q&4>UTtD8P,a9gkLeuZ]fC91GPTo`EKJ$iK$6^bV<<t;sYPf*>,>;0Nd_o]`
+:F<"[mdH^.SPR*TCNPigZO&+6'7q$AHU]EPMR&[B(F'UQk&.k'BVeX)Sm6qW#\E\724TP5f)c
+XQG_-8KK^"Ig.*oR8/_GejWJp.S`U<GA.a#OaFa@pIdpc"r9aGaL#pCq1M$W5.<f[OJbd\giI
+!oQ,TtD7%,a;@dIZpC*6AUg:i\VOH'#UB>+uGaA&1:+AFK1>I;PJ&r7Lqi/:%V,]X`sjE#K>N
+22u~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 289 226
+%%EOF
diff --git a/doc/print-setup.txt b/doc/print-setup.txt
new file mode 100644
index 0000000..69fdede
--- /dev/null
+++ b/doc/print-setup.txt
@@ -0,0 +1 @@
+[Figure not available in Info format]
diff --git a/doc/stamp-vti b/doc/stamp-vti
new file mode 100644
index 0000000..e9a4321
--- /dev/null
+++ b/doc/stamp-vti
@@ -0,0 +1,3 @@
+@set UPDATED 27 October 2001
+@set EDITION 4.2.7
+@set VERSION 4.2.7
diff --git a/doc/users_guide/.cvsignore b/doc/users_guide/.cvsignore
deleted file mode 100644
index ba5c952..0000000
--- a/doc/users_guide/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-Makefile.in
-Makefile
-users-guide.tex
-users-guide.log
-users-guide
-users-guide.aux
-users-guide.dvi
-users-guide.ps
-users-guide.pdf
-users-guide.out
-html-stamp
-html
diff --git a/doc/users_guide/Makefile.am b/doc/users_guide/Makefile.am
index a91b1d6..406bc1f 100644
--- a/doc/users_guide/Makefile.am
+++ b/doc/users_guide/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.28 2001/11/08 13:15:18 rlk Exp $
+## $Id: Makefile.am,v 1.28.2.4 2003/12/07 14:57:33 rlk Exp $
## Copyright (C) 2001 Andy Stewart and Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -27,6 +27,13 @@ MAINT_CHARSET = latin1
## Variables
MANUAL = users-guide
+MANUAL_SRC_FILES = $(srcdir)/$(MANUAL).sgml \
+ $(srcdir)/title.sgml \
+ $(srcdir)/history.sgml \
+ $(srcdir)/gimp.sgml \
+ $(srcdir)/cups.sgml \
+ $(srcdir)/utils.sgml \
+ $(srcdir)/gfdl.sgml
HTMLDIR = html
OUTPUTS = \
@@ -94,7 +101,7 @@ dist-hook: $(USER_GUIDE)
fi ; \
done
-$(MANUAL).pdf: ./$(MANUAL).sgml
+$(MANUAL).pdf: $(MANUAL_SRC_FILES)
if test $(srcdir) = '.' ; then \
: ; \
else \
@@ -121,11 +128,19 @@ pdf: $(MANUAL).pdf
ps: $(MANUAL).ps
-$(MANUAL).ps: $(MANUAL).sgml $(EPS_IMAGES)
- sed -e 's/\.png"/.eps"/g' -e 's/FORMAT="PNG"/FORMAT="EPS"/g' $< > $(MANUAL)-eps.sgml
+$(MANUAL).ps: $(MANUAL_SRC_FILES) $(EPS_IMAGES)
+ for i in $(MANUAL_SRC_FILES); do \
+ j=`basename $$i .sgml`; \
+ sed -e 's/\.png"/.eps"/g' \
+ -e 's/FORMAT="PNG"/FORMAT="EPS"/g' $$i > $$j-eps.sgml; \
+ done
+ cat $(MANUAL).sgml | sed -e 's/\.sgml"/-eps.sgml"/g' > $(MANUAL)-eps.sgml
$(DB2PS) $(MANUAL)-eps.sgml
mv $(MANUAL)-eps.ps $(MANUAL).ps
- -$(RM) -f $(MANUAL)-eps.*
+ for i in $(MANUAL_SRC_FILES); do \
+ j=`basename $$i .sgml`; \
+ $(RM) -f $${j}-eps.*; \
+ done
%.eps:
if test ! -d figures ; then mkdir figures ; fi
@@ -136,7 +151,7 @@ html: html-stamp
# This ugly workaround with SOURCE is because db2html doesn't seem to like
# "./users-guide.sgml". Note that db2ps does not have the same limitation.
# html-stamp should *only* be called by html--it's just a timestamp!
-html-stamp: $(MANUAL).sgml $(PNG_IMAGES)
+html-stamp: $(srcdir)/$(MANUAL).sgml $(PNG_IMAGES)
if test $(srcdir) = '.' ; then \
: ; \
else \
@@ -165,29 +180,29 @@ install-data-local: $(STANDARD_TARGETS)
$(INSTALL_DATA) $(srcdir)/$(MANUAL).pdf $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
fi ; \
if test -d $(HTMLDIR) ; then \
- cd $(HTMLDIR) ; \
+ HTMLGENDIR="$(HTMLDIR)" ; \
elif test -d $(srcdir)/$(HTMLDIR) ; then \
- cd $(srcdir)/$(HTMLDIR) ; \
+ HTMLGENDIR="$(srcdir)/$(HTMLDIR)" ; \
else \
exit 1 ; \
fi ; \
- for file in *.html *.css ; do \
+ for file in $$HTMLGENDIR/*.html $$HTMLGENDIR/*.css ; do \
if test -f $$file ; then \
$(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html ; \
fi ; \
done ; \
- cd figures ; \
- for file in *.png ; do \
+ for file in $$HTMLGENDIR/figures/*.png ; do \
if test -f $$file ; then \
$(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/figures ; \
fi ; \
done ; \
- cd ../stylesheet-images ; \
- for file in * ; do \
- if test -f $$file ; then \
- $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/stylesheet-images ; \
- fi ; \
- done ; \
+ if test -d $$HTMLGENDIR/stylesheet-images ; then \
+ for file in $$HTMLGENDIR/stylesheet-images/* ; do \
+ if test -f $$file ; then \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/stylesheet-images ; \
+ fi ; \
+ done ; \
+ fi ; \
fi
uninstall-local:
@@ -210,7 +225,7 @@ clean-local:
if test $(srcdir) = "." ; then \
: ; \
else \
- $(RM) -f $(MANUAL).sgml ; \
+ $(RM) -f $(MANUAL_SRC_FILES); \
$(RM) -rf figures ; \
fi
-$(RM) -rf *.tex *.log *.aux *.dvi *.gz *.out *.junk *.out *.fot
@@ -263,6 +278,6 @@ help:
MAINTAINERCLEANFILES = Makefile.in html-stamp
-EXTRA_DIST = README $(MANUAL).sgml html-stamp
+EXTRA_DIST = README $(MANUAL_SRC_FILES) html-stamp
.PHONY: docs html ps pdf help
diff --git a/doc/users_guide/Makefile.in b/doc/users_guide/Makefile.in
new file mode 100644
index 0000000..23428df
--- /dev/null
+++ b/doc/users_guide/Makefile.in
@@ -0,0 +1,520 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+MANUAL = users-guide
+MANUAL_SRC_FILES = $(srcdir)/$(MANUAL).sgml $(srcdir)/title.sgml $(srcdir)/history.sgml $(srcdir)/gimp.sgml $(srcdir)/cups.sgml $(srcdir)/utils.sgml $(srcdir)/gfdl.sgml
+
+HTMLDIR = html
+
+OUTPUTS = $(MANUAL).pdf $(MANUAL).ps html
+
+
+USER_GUIDE = $(MANUAL).pdf html $(MANUAL).ps
+
+STANDARD_TARGETS = @USER_GUIDE@
+
+DISTHOOKDIRS = figures $(HTMLDIR)
+DISTHOOKFILES = $(STANDARD_TARGETS)
+
+PNG_IMAGES = figures/cups_admin.png figures/cups_admin_device.png figures/cups_admin_make.png figures/cups_admin_model.png figures/cups_admin_success.png figures/cups_config_printer.png figures/cups_my_printer.png figures/cups_printers.png figures/cups_startup.png figures/gimp-print-gui-1.png figures/gimp-print-gui.png figures/gimp-print-new-printer.png figures/gimp-print-print-color-adjust.png figures/gimp-print-setup.png figures/gimp_image.png figures/gimp_startup.png
+
+
+EPS_IMAGES = $(addsuffix .eps,$(basename $(PNG_IMAGES)))
+@MAINTAINER_MODE_TRUE@MAINT_MODE = true
+@MAINTAINER_MODE_FALSE@MAINT_MODE = false
+@MAINTAINER_MODE_TRUE@ALL_LOCAL_TARGETS = docs
+@MAINTAINER_MODE_FALSE@ALL_LOCAL_TARGETS = $(STANDARD_TARGETS)
+
+CLEAN_MANUALS = $(RM) -f $(MANUAL).pdf $(MANUAL).ps ; $(RM) -rf html-stamp $(HTMLDIR) ; $(RM) -f $(EPS_IMAGES)
+
+
+MAINTAINERCLEANFILES = Makefile.in html-stamp
+
+EXTRA_DIST = README $(MANUAL_SRC_FILES) html-stamp
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+DIST_COMMON = README Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/users_guide/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = doc/users_guide
+
+distdir: $(DISTFILES)
+ $(mkinstalldirs) $(distdir)/$(srcdir)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-data-local
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-local
+uninstall: uninstall-am
+all-am: Makefile all-local
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am clean-local
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am \
+ maintainer-clean-local
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-local install-data-am install-data install-am install \
+uninstall-local uninstall-am uninstall all-local all-redirect all-am \
+all installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+dist-hook: $(USER_GUIDE)
+ for dir in $(DISTHOOKDIRS) ; do \
+ if test -d $(srcdir)/$$dir ; then \
+ mkdir $(distdir)/$$dir; \
+ for dirfile in $(srcdir)/$$dir/*; do \
+ if test -f $$dirfile ; then \
+ cp -p $$dirfile $(distdir)/$$dir ; \
+ fi ; \
+ if test -d $$dirfile ; then \
+ cp -pR $$dirfile $(distdir)/$$dir ; \
+ fi ; \
+ done \
+ fi \
+ done
+ for file in $(DISTHOOKFILES) ; do \
+ if test -f $$file ; then \
+ cp -p $$file $(distdir) ; \
+ fi ; \
+ done
+
+$(MANUAL).pdf: $(MANUAL_SRC_FILES)
+ if test $(srcdir) = '.' ; then \
+ : ; \
+ else \
+ if test -L $(notdir $<) ; then \
+ $(RM) $(notdir $<) ; \
+ fi ; \
+ $(LN_S) $< $(notdir $<) ; \
+ if test -d figures ; then \
+ : ; \
+ else \
+ mkdir figures ; \
+ fi ; \
+ for image in $(addprefix $(srcdir)/, $(PNG_IMAGES)) ; do \
+ cp -p $$image figures/`basename $$image` ; \
+ done ; \
+ fi ; \
+ $(DB2PDF) $(MANUAL).sgml
+
+docs: html ps pdf
+
+all-local: $(ALL_LOCAL_TARGETS)
+
+pdf: $(MANUAL).pdf
+
+ps: $(MANUAL).ps
+
+$(MANUAL).ps: $(MANUAL_SRC_FILES) $(EPS_IMAGES)
+ for i in $(MANUAL_SRC_FILES); do \
+ j=`basename $$i .sgml`; \
+ sed -e 's/\.png"/.eps"/g' \
+ -e 's/FORMAT="PNG"/FORMAT="EPS"/g' $$i > $$j-eps.sgml; \
+ done
+ cat $(MANUAL).sgml | sed -e 's/\.sgml"/-eps.sgml"/g' > $(MANUAL)-eps.sgml
+ $(DB2PS) $(MANUAL)-eps.sgml
+ mv $(MANUAL)-eps.ps $(MANUAL).ps
+ for i in $(MANUAL_SRC_FILES); do \
+ j=`basename $$i .sgml`; \
+ $(RM) -f $${j}-eps.*; \
+ done
+
+%.eps:
+ if test ! -d figures ; then mkdir figures ; fi
+ $(CONVERT) $(srcdir)/$(basename $@).png EPS2:$@
+
+html: html-stamp
+
+# This ugly workaround with SOURCE is because db2html doesn't seem to like
+# "./users-guide.sgml". Note that db2ps does not have the same limitation.
+# html-stamp should *only* be called by html--it's just a timestamp!
+html-stamp: $(srcdir)/$(MANUAL).sgml $(PNG_IMAGES)
+ if test $(srcdir) = '.' ; then \
+ : ; \
+ else \
+ if test -L $(notdir $<) ; then \
+ $(RM) $(notdir $<) ; \
+ fi ; \
+ $(LN_S) $< $(notdir $<) ; \
+ fi
+ $(DB2HTML) $(MANUAL).sgml
+ -mkdir $(MANUAL)/figures
+ for image in $(addprefix $(srcdir)/, $(PNG_IMAGES)) ; do \
+ cp -p $$image $(MANUAL)/figures/`basename $$image` ; \
+ done
+ -$(RM) -rf $(HTMLDIR)
+ mv $(MANUAL) $(HTMLDIR)
+ chmod a+rx $(HTMLDIR)
+ touch html-stamp
+
+install-data-local: $(STANDARD_TARGETS)
+ if test -n '$(STANDARD_TARGETS)' ; then \
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/figures ; \
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/stylesheet-images ; \
+ if test -f $(MANUAL).pdf ; then \
+ $(INSTALL_DATA) $(MANUAL).pdf $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
+ elif test -f $(srcdir)/$(MANUAL).pdf ; then \
+ $(INSTALL_DATA) $(srcdir)/$(MANUAL).pdf $(DESTDIR)$(datadir)/$(PACKAGE)/doc ; \
+ fi ; \
+ if test -d $(HTMLDIR) ; then \
+ HTMLGENDIR="$(HTMLDIR)" ; \
+ elif test -d $(srcdir)/$(HTMLDIR) ; then \
+ HTMLGENDIR="$(srcdir)/$(HTMLDIR)" ; \
+ else \
+ exit 1 ; \
+ fi ; \
+ for file in $$HTMLGENDIR/*.html $$HTMLGENDIR/*.css ; do \
+ if test -f $$file ; then \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html ; \
+ fi ; \
+ done ; \
+ for file in $$HTMLGENDIR/figures/*.png ; do \
+ if test -f $$file ; then \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/figures ; \
+ fi ; \
+ done ; \
+ if test -d $$HTMLGENDIR/stylesheet-images ; then \
+ for file in $$HTMLGENDIR/stylesheet-images/* ; do \
+ if test -f $$file ; then \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/$(PACKAGE)/doc/html/stylesheet-images ; \
+ fi ; \
+ done ; \
+ fi ; \
+ fi
+
+uninstall-local:
+ -$(RM) -r $(DESTDIR)$(datadir)/$(PACKAGE)/doc
+
+clean-local:
+ if test $(srcdir) = "." -a $(MAINT_MODE) = false ; then \
+ echo "clean-local: Not removing $(HTMLDIR)" ; \
+ echo 'clean-local: Not removing $(MANUAL).pdf' ; \
+ echo 'clean-local: Not removing $(MANUAL).ps' ; \
+ echo 'clean-local: Not removing EPS figures' ; \
+ else \
+ $(CLEAN_MANUALS) ; \
+ fi
+ if test $(srcdir) = "." ; then \
+ : ; \
+ else \
+ $(RM) -f $(MANUAL_SRC_FILES); \
+ $(RM) -rf figures ; \
+ fi
+ -$(RM) -rf *.tex *.log *.aux *.dvi *.gz *.out *.junk *.out *.fot
+ -$(RM) -rf db2html* DB2HTML*
+
+veryclean:
+ $(MAKE) MAINT_MODE=true clean
+
+maintainer-clean-local:
+ $(CLEAN_MANUALS)
+
+#
+# This is my (so far failed) attempt to create an index for this documentation.
+#
+#
+#index.sgml:
+# $(PERL) /usr/share/sgml/docbook/docbook-dsssl-stylesheets-1.64/bin/collateindex.pl -N -o index.sgml
+#
+# $(JADE) -V html-index \
+# -t sgml \
+# -c /usr/share/sgml/CATALOG.jade_dsl \
+# -c /usr/share/sgml/CATALOG.docbook-dsssl-stylesheets \
+# -c /usr/share/sgml/CATALOG.gnome \
+# -c /usr/share/sgml/CATALOG.docbook_4 \
+# -c /usr/share/sgml/CATALOG.docbook_3 \
+# -D /usr/share/sgml/docbook/docbook-dsssl-stylesheets-1.64 \
+# -d /usr/share/sgml/docbook-toys/suse-both.dsl \
+# -o index.sgml \
+# gimp-print-users-guide-4.1.99-b3.sgml
+#
+#
+# END failed attempt at index creation.
+#
+
+help:
+ @echo " "
+ @echo "Supported targets in this Makefile:"
+ @echo " docs - creates PS, PDF, and HTML documentation files"
+ @echo " ps - creates PostScript documentation"
+ @echo " pdf - creates PDF documentation"
+ @echo " html - creates HTML documentation"
+ @echo " clean - deletes machine generated files, but not outputs"
+ @echo " veryclean - deletes output files in addition"
+ @echo " help - prints this help text"
+ @echo " "
+
+.PHONY: docs html ps pdf help
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/doc/users_guide/cups.sgml b/doc/users_guide/cups.sgml
new file mode 100644
index 0000000..60988a5
--- /dev/null
+++ b/doc/users_guide/cups.sgml
@@ -0,0 +1,316 @@
+
+ <chapter><title>CUPS and Gimp-Print</title>
+ <sect1><title>Introduction</title>
+ <para>
+ CUPS is an acronym which stands for <emphasis>C</emphasis>ommon
+<emphasis>U</emphasis>nix <emphasis>P</emphasis>rinting
+<emphasis>S</emphasis>ystem. It is assumed that the reader has
+properly installed the CUPS software and the Gimp-Print software.
+This section will discuss adding a printer to CUPS that uses a
+Gimp-Print printer driver, as well as how to modify the various
+settings supplied by Gimp-Print. This will be a rather quick
+explanation, as the CUPS software is quite well documented, and it is
+not my intention to attempt to duplicate the CUPS documentation here.
+ </para>
+ </sect1>
+
+ <sect1><title>CUPS Printer Installation</title>
+ <para>
+This explanation will use the web interface provided by CUPS. First,
+aim your favorite web browser at
+<ulink url="http://localhost:631">the CUPS server</ulink>. The
+following screen should appear within your browser.
+ </para>
+
+ <figure><title>The CUPS Startup Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="45" fileref="figures/cups_startup.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Startup Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+Now, you may click on either the word <guilabel>Printers</guilabel> in the bar at the top
+of the page, or you may click on the <guilabel>Manage Printers</guilabel> text. In
+either case, the next screen you see will look like this one if you
+have not yet configured any printers.
+ </para>
+
+ <figure><title>The CUPS Printers Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="45" fileref="figures/cups_printers.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Printers Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+At this time, click on the <guibutton>Add Printer</guibutton> button.
+You will then see the Admin screen (shown below).
+ </para>
+
+ <figure><title>The CUPS Admin Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="45" fileref="figures/cups_admin.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Admin Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+Notice in the screenshot that the three boxes are shown after the
+author filled them in for his printer at home. You will need to fill
+in an appropriate name of your printer, its location, and a
+description which meets your own needs. Once this is done, click on
+the <guibutton>Continue</guibutton> button, and then this screen will appear.
+ </para>
+
+ <figure id="fig-cups-admin-device"><title>The CUPS Admin Device Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="35" fileref="figures/cups_admin_device.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Admin Device Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+Click on the drop down menu next to the word
+<guilabel>Device</guilabel> and a list of possible printer devices
+appears. Select the device appropriate for your printer. Note that
+there are a range of serial, parallel, USB, and other devices from
+which to choose. Once the selection is made, click the
+<guibutton>Continue</guibutton> button. Now, this screen appears.
+ </para>
+
+ <figure><title>The CUPS Admin Model/Driver Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="35" fileref="figures/cups_admin_make.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Admin Model/Driver Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <caution>
+ <title>Caution Regarding USB Printers</title>
+
+ <para>
+CUPS versions 1.1.11 and later <emphasis>REQUIRE</emphasis>
+the user to insure that the desired USB printer is powered on
+<emphasis>AND</emphasis> physically connected to the USB bus
+<emphasis>BEFORE</emphasis> starting the CUPS software.
+ </para>
+ <para>
+CUPS must see the USB printer when the software starts. The CUPS software
+is typically started when the computer boots. Note that one cannot
+simply plug in the USB printer and power it on after CUPS has started.
+(Note that this does not apply to parallel port printers).
+ </para>
+ <para>
+If the USB printer was not connected and powered on at the time CUPS was
+started, there will not be a USB printer shown in the
+list of devices on the CUPS Admin Device Window (see
+<xref linkend="fig-cups-admin-device">). In this event, stop the CUPS
+software, properly connect and power on the USB printer, and restart
+the CUPS software.
+ </para>
+ <para>
+From the list of devices shown in the CUPS Admin Device Window
+(see <xref linkend="fig-cups-admin-device">), a clever user might
+attempt to avoid this issue by selecting
+<guimenuitem>Internet Printing Protocol</guimenuitem>
+and then enter something similar to 'usb:/dev/usblp0' in the next
+screen. However, this fails later in the configuration process with a
+"client_error_not_possible" error message with no other explanation.
+Note that entering 'file:/dev/usblp0' will not work either. While CUPS
+will allow this, printing will not actually work in some situations.
+ </para>
+ <para>
+CUPS versions 1.1.10 and earlier exhibit similar behavior with regard
+to not displaying the USB printer if it was not connected to the USB
+bus and powered up prior to starting the CUPS software. However,
+these versions of CUPS will indeed allow the user to enter the name of
+the USB connection, unlike versions 1.1.11 and later.
+ </para>
+ </caution>
+
+ <para>
+Select the manufacturer of your printer and click the
+<guibutton>Continue</guibutton> button. A window will appear which
+asks you to select the specific model number for your printer.
+ </para>
+
+ <para>
+Scroll through the long list and find the model number for your
+printer. Notice carefully that there are many different languages
+supported for each printer, as denoted by the initials in parenthesis.
+(en) would be for English, (da) for Danish, (sv) for Swedish, (fr) for
+French, (no) for Norwegian, (pl) for Polish, and (en_GB) for British
+English (see <xref linkend="fig-cups-admin-model">). Also take note
+of the Gimp-Print revision for the driver, and ensure that it is
+indeed the version of Gimp-Print which you have most recently
+installed. Once you have made the proper selection, click on the
+<guibutton>Continue</guibutton> button.
+ </para>
+
+ <figure id="fig-cups-admin-model"><title>The 2nd CUPS Admin Model/Driver Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="55" fileref="figures/cups_admin_model.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The 2nd CUPS Admin Model/Driver Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <figure><title>The CUPS Admin Success Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="39" fileref="figures/cups_admin_success.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Admin Success Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+Congratulations! You should now see the CUPS window indicating that
+your printer was successfully installed. Notice the sentence which
+reads "Printer your_printer has been added successfully". Click on
+your_printer, which will be the underlined name for your printer.
+ </para>
+
+ <figure id="fig-cups-my-printer"><title>The CUPS Window for Your Printer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="65" fileref="figures/cups_my_printer.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Window for Your Printer</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+After clicking on your_printer (epson_870 in this example), a window
+will appear similar to that shown in <xref linkend="fig-cups-my-printer">.
+It would probably be a good idea at this point to click on the
+<guibutton>Print Test Page</guibutton> button to ensure that
+everything is working properly. Take note of the Gimp-Print revision
+printed on this screen and confirm once again that it is the expected
+revision.
+ </para>
+
+ </sect1>
+
+ <sect1><title>Configuring your Printer in CUPS</title>
+
+ <para>
+With reference to <xref linkend="fig-cups-my-printer">, click
+on the <guibutton>Configure Printer</guibutton> button. A partial
+screenshot of the printer configuration window appears in
+<xref linkend="fig-cups-printer-config-window">.
+The contents of this window will vary depending on precisely which
+printer you selected when you configured CUPS for your printer. The
+screenshot shows the selections made by the author for his printer.
+The individual selections will not be explained in detail here, as
+they are the same selections which are available when using the
+Gimp-Print plugin to the GIMP. These selections are explained in
+detail in various sections of <xref linkend="ch-gimp-and-gimp-print">.
+ </para>
+
+ <figure id="fig-cups-printer-config-window"><title>The CUPS Printer Cofiguration Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="30" fileref="figures/cups_config_printer.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The CUPS Printer Configuration Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+
+ </sect1>
+
+ <sect1><title>Using CUPS from the Command Line</title>
+
+ <para>
+ It is possible to use the CUPS printing system from the command
+line. While this document will not delve into all of the specifics of
+the CUPS command line interface, there are portions of this interface
+which are specific to the Gimp-Print software.
+ </para>
+
+ <para>
+The command line is in some cases a more convenient way to generate
+printed output (e.g. when printing from a script). However, most
+people (including the author) cannot easily predict what a command
+line option of "-o stpCyan=1350" will do to the output. It is
+therefore a good idea to use the GIMP to view the image and the
+Gimp-Print plugin to preview these settings before relying on the
+command line.
+ </para>
+
+ <para>
+When using CUPS from the command line, the command will have this
+general format:
+
+ <programlisting>
+ <![ CDATA [
+ lpr -P my_printer_name \
+ -o option1=<choice1> \
+ -o option2=<choice2> \
+ /path/to/printfile
+ ]]>
+ </programlisting>
+
+When typing the command directly onto the command line, put all of the
+command line options on one line, and do not type the "\" characters.
+The list of possible options which are specific to Gimp-Print,
+followed by some of the supported choices, are shown below:
+
+ <programlisting>
+ <![ CDATA [
+ -o PageSize=<...| A3 | A4 | A4 | ...>
+ -o InputSlot=<Roll | Standard>
+ -o MediaType=< ..| Inkjet | Plain | GlossyPaper | ...>
+ -o Resolution=<360sw | 360swuni ...| 1440x720 >
+ -o ColorModel=<Black | RGB | Gray | CMYK>
+ -o stpBrightness=<0...2000>
+ -o stpContrast=<0...2000>
+ -o stpCyan=<0...4000>
+ -o stpDensity=<0...2000>
+ -o stpDither=<0...4000>
+ -o stpGamma=<0...4000>
+ -o stpImageType=<LineArt | Continuous | SolidTone>
+ -o stpInkType=<PhotoCMY | CMYK | PhotoCMYK | RGB>
+ -o stpMagenta=<0...4000>
+ -o stpSaturation=<0...9000>
+ -o stpYellow=<0...4000>
+ ]]>
+ </programlisting>
+
+For more detailed information, consult the appropriate sections of <xref linkend="ch-gimp-and-gimp-print">.
+ </para>
+
+ </sect1>
+
+ </chapter>
diff --git a/doc/users_guide/figures/.cvsignore b/doc/users_guide/figures/.cvsignore
deleted file mode 100644
index f7b5423..0000000
--- a/doc/users_guide/figures/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.eps
diff --git a/doc/users_guide/figures/CVS/Entries b/doc/users_guide/figures/CVS/Entries
new file mode 100644
index 0000000..9984d4b
--- /dev/null
+++ b/doc/users_guide/figures/CVS/Entries
@@ -0,0 +1,19 @@
+/.cvsignore/1.1/Sat Oct 6 22:10:48 2001//Tgimp-print-4_2_branch
+/README/1.3/Sat Oct 27 17:08:14 2001//Tgimp-print-4_2_branch
+/cups_admin.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/cups_admin_device.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/cups_admin_make.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/cups_admin_model.png/1.2/Sat Nov 24 00:42:16 2001//Tgimp-print-4_2_branch
+/cups_admin_success.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/cups_config_printer.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/cups_my_printer.png/1.2/Sat Nov 24 00:42:18 2001//Tgimp-print-4_2_branch
+/cups_printers.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/cups_startup.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp-print-gui-1.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp-print-gui.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp-print-new-printer.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp-print-print-color-adjust.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp-print-setup.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp_image.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+/gimp_startup.png/1.1/Tue Oct 2 02:08:45 2001//Tgimp-print-4_2_branch
+D
diff --git a/doc/users_guide/figures/CVS/Repository b/doc/users_guide/figures/CVS/Repository
new file mode 100644
index 0000000..3897ed4
--- /dev/null
+++ b/doc/users_guide/figures/CVS/Repository
@@ -0,0 +1 @@
+print/doc/users_guide/figures
diff --git a/doc/users_guide/figures/CVS/Root b/doc/users_guide/figures/CVS/Root
new file mode 100644
index 0000000..437b605
--- /dev/null
+++ b/doc/users_guide/figures/CVS/Root
@@ -0,0 +1 @@
+rlk@cvs.sourceforge.net:/cvsroot/gimp-print
diff --git a/doc/users_guide/figures/CVS/Tag b/doc/users_guide/figures/CVS/Tag
new file mode 100644
index 0000000..5e5b854
--- /dev/null
+++ b/doc/users_guide/figures/CVS/Tag
@@ -0,0 +1 @@
+Tgimp-print-4_2_branch
diff --git a/doc/users_guide/figures/cups_admin.eps b/doc/users_guide/figures/cups_admin.eps
new file mode 100644
index 0000000..d33f637
--- /dev/null
+++ b/doc/users_guide/figures/cups_admin.eps
@@ -0,0 +1,594 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+b7b7b7
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUBl`L]QA'PR;nhpV_@OJra;bQAF7B*?EZ@C#34#RMF(ZjG)TgXtZOK7Dgt=:HCaA*!^B
+'^\"TT5+$+5?+JD.e\5]'miTJeJE:`Gc3VDclDGPta^"k)/5Yf%$D-Q'M_GU`$o*T168H]>Kc
+>]#CFYi67pKr$Rpo"]ACnR5Dt-K#NE=eA[e."7dNWWO#h&cX)5G>o!B9@+_-T>*g2=(PqTA_j
+0K?VClI5D%ToKtCBj<7P%#7MMfXlUE(;c$VutB+jk1a9g[@UtLT&:-sIm&riQ?[u)IP[k5n)/
+I_%_,Lk:/`f&VZYlp!?:qsM,Uc8Le,?.]6=`*,gK(`)pm(I%$6%6<Y9g-eH-uQ)oB[R!jh4N&
+[C"6F6Hd\q10kq(XBNhh*4mCb(n_Hdg,0$VLic/0g6kt'O/$0&LfMMC1.cQ'6VI\2d/\JEH?#
+%`ImYKQ^8_?fM(KFlVod%':lYXbBOpQtCNJ.XM:?81%H]g:uDN;l0'S)YdTA`Tc\0k)lQk$&(
+bQZK#V?:Q8dfHk-l1k2T$,BNar<5RXU[V#rDDqs;4eE7g[^j`8YKGYf;W@:lV`6iDg'APTL7P
+q^8k>(eX-Ip?h_o['IhgOS_p7'j-'ZJ3Z'\$u+-N[a8@8aH`;2dL(2p")mV[kSZ)t/e!jrp2C
+--Qfrqqq3V2=FL('E&54usJTL7-_PS#MAM"BSZ/f<,%Rrq#dPB4^:Ehj-]GC?t+U`Q(IrMdg2
+R1,E.jOm69N.Xja$R[VsAO6rS,T;TZWap.3Mhj-][Bfc9g1A+j/G?7_4ps>D0q$cOSBbn.+CM
+`6k==glAdrp7m^)Ob.:HH!E-20kl;9Z:R2I0GEk+f&s;J(&jegWNnX,X<4343lNs7odqfll5Y
+R?:@e/%p0TIC^Y;F=M+GT;9KNCF:(UHr+l^IE\[-.uYk)%PJH!@PMZrEGC^%W/gMW>cc3ikW<
+C(Rqi(_hWeQ3e&jfSW:5Yf+&ald`6%Do+D(;6NN;I<e#D^[e[F[B^]&K(QAi_:X0&8(RbFS;r
+$>>g?VfZ\kt/?gX#I<>RTX,I[ZE2.^+nQO8cB+_iVN^CCt?"NjXSGeA2SbfS_rn]9UT&#9PU>
++PYl0?1!%8'<SPBnkt83@[B67W5*X^4BBrK#Z,XtH:-;otX%7*5k7UC)+$sft8j2E^CB^WmMI
+J)`%Ee"<neLlblk)m-HaRC<cb>fKqPmQhD(k),>`WJX<\nkhI7D^mY%+3q7T#4[D<=-ArFMc_
+DTq1\N\7GrOL$3%f#^E_=:U`6PL$Pg]$n]L<e!<#B1phnU2L]Vhb]6G0Nn9&>PoKlMq"3fC>-
+;AWTNGT;<UT2g+5i.h.jPmE*[]4#`:FQLl)dkgoX[29Ll\:Hs?$j.pj<VHs>q]U(4?cq1o2GU
+Y5q7a%4-DLhe+AWY-';k`hQs;iMH"ZDLM`7?Sr[9@.]X@WQ;]Zhep0o?ig_.EZD#7J>pRY-rY
+O0DaC6EDiQPnKI#fU#qdcMrL6`<a3&u<jcpO^Y2BLQo>MdheLcoIB44-/hripc(!rp)l6_/e5
+kpn;RJrbUnC,)-uJE@f#3N4eQ.Q(<)dUd.rgC!r]J<*[,8?hC'tKk)iYq6>F=je^.laEW_LT0
+S3F#mbN>U_g9fMDh"fNJd\8M,2qEU>[>q_\*U2j2MTlo3SjC*X->JH-;"f6geWpJOXP0U$ZST
+<ia\@]<pS=kW);c3E1EXK0bu3c6$>nnSp0lGtjX0=oUV%u9Ea*@ldR%>9D>Ep`$YiP/P`D)'3
+@*rl6#XZ]D>h2n[n>p3U:7ERl=qh_\e6ZaW:m3m,i,2h/lgXt%bdMMcNq7e)l9uY`bceFfopU
+MSE]+S8#7TpcE4bEm$D&,3N8X#\f"0%U017&Q(03Qj:l%Ae`K=*R;k1W=;6K"G.impPqP@)&?
+,q;2s4Yid7F$?h4bH+mSSlu#a^X@)2(Q_Obh5Yj1Ka`OBD$kr_SDY=*K-5Z2+($5>#f6o50De
+2&!C&B+-=,BBQ)g@0GhbPiS3Zjm'-6-^CdAmRQ'u'$!STpn`)']I1COSneX3qG[cJ6\_L(2iM
+'?gZd%!ol8EoXdeC'Ppa78APqkeV;,*PDIRatm%(`T[_#^Y]iX=a0<BM>S_BUX5(-Z7OmYs@[
+SGWJ%Z?j_g5=KR[q7L:Z''O<F?k&lcKQ*R9<KR/NU`*SLCDLO*3sljrhQ]#W=[m]@OnL]I[tS
+-d`]tGOMi0U*Ckk@qqK>KKLs-@]I/+QTJj^*geBf\]t63hWbi1ZEPp)X/g\fuEV'8/L=e%s_p
+7'j-,.2Sr9""XpD7E/Ft)tVC'0MaGRb","LpNXi]GlPM_JHXrI++sg][ad(aU37l6h>bIeH8,
+S@_&E$_sQY^+qb-f;Ykl"_n-fB^+0]F,+uuVm^U[W"&B-Ugq/,9ETa7g<*9c2UI)BcDWCtJ+c
+A-S@_&E$Zj->>CVmJ$O"0t%0-A.zzi1@%-L47H="^DH*qBfS2cabG"K5\kDs*V*&c:`"+N4?h
+&<P?,\fh^W(N.VAsjjmU^PIaXV<c2qVkg)kDDm*sP4*Qh'N*P;uf$tg?b0*D;/'\$oV<$RhIQ
+%).@Ohd[%Esdf9YY;Q:+*FA>'`+*]2lX_LYj3I9B=s@/%ST[Y;bjr[)-.Wn8-^U#Aqna):9n0
+a\DE'5E_Sp)Wff3K$N4Zc+B+jS*;quYe3VU;Zemc^SNN)-O'6*GIbP;B[)MS]*5tC.a1.pD9$
+=)>%!TW-3SY<oV+ZD9l7eWrHLfC2Ub=a_4#XpD;)GGRVLT#D2"keejaQdRX5H?rI*Af2m[/V$
+i[/Pa`\JDoa]bD=$!'/e\96h2sJ_A%4SH>hV,'K,46e)m"sSIM#K;!m+Dk+DiFj\Zkn3a"-if
+'H9`VQpL9Ep<=oGh5PMW'fB*!`8:0)JcV_W]$=`9h2GeK\>Z+'eEC7^R[T<[g%pM55?X'A0(F
+q5T^SnT.<er+!R"Z)goi#j)7IQ0[SRF2*NGbl9aG>6kcf`$f7?M+0?FlL%>+`K^LuT;E2W@`f
+bN;N8@QU&PN/\gfRJH!GSg!<SJLjGE\+QP<6O,J0;u'OrrN[Z5g2#$89m4<7j5WbZMP3-/.s5
+^d>O)g&kJaJRZ8^/,7?LpK_r-AX/*.jY0/CP@O9'32N%sYLN3/dZl!([SBr7Hl*7?(<=03^L/
+?Q@?EG@((>H<3W4)X).)mS;$P>Q2>&@rS37W!&,?(3#qT^#j,mBPpB-gIM<:;$u0ESkWeG9-X
+\>a4'DJo0Ara(JtpHVp9%b(-3DkO)*sWqH\C(@@ou53`/Sk;I!lNNujC?g?Bf*;aHbff8;_5F
+[LR+3E#&P`&G&04#)C%9Y'Y'',?2\uh<icb?M>A$N[=G-lr_o'C$O)tfq\Dk.s<.a,!CFs_5)
+mOF*Tgbo8bVCtQP'jS/V+Ue$V-_7C)6=9-8^oD8?eTPbnfU@tA;["qSNpOhjF"OfIf,[8[54?
+bTk4g9OT^t=+Ees:JRO#(JA%]q/GVA-"77c75SOXDgW^iF^1:k]F>HLDQr2Hu?D072%2jF]a+
+[``iW8CUJ'=NpDiHuW?B:\u1ePX/+D_Cdaap06'pVd`hX/ltGVH#LOMJan:^:C?/C9(R'R=F?
+VVCV8ge8MD-mu8)mUV\"h],K^TbAg.ZQQ%tW0\8D2lL"FBXe+q@5f%,,)gg8IVSCn:GICF[\5
+rVX]cE)N9C&ucMVI@_b`&+BB-gNB@FM^M+>)8r=OGi;<L):,a(?FD7l;mFiEJ6Ydjj'%4%D.d
+g^-iZds-,4,:Zn&\[Bg6]tT10is9kWB\6<O3pcfO:?_Bu7lHC9Y,=^DhX3,D]pVA"85f2XX\#
+;\Am/D\gB7;RW+tY-\<4\+oj7Nl?-&&p8bZClC=g)Qd]9>PA%@Rs,2J0;S0k>nZE7<.I<uEpC
+1FX4[^FlGaJ9;LBW`/Z4Xk7#+6d,(7D8'4$0J:"j/Ub%U&#aCN?^8G2galUNJM].8Oclqj'Yi
+^"s9u"OWS?Ygro+ngXc&em__\1\+]B_eL?1tNR;CTG0.6!(&tME`S1.@SG';M11JEOLj\s1Z2
+*<)A<<QHECf9J7Gp`Q,.St'?RKj<*Q.7.=kFkP@]1,*`00Td[C+(*;ql<3A2[GG^%hkGIH!Ge
+R,L3mg0S&dmqS#iD`)]S[aF2?41DjW;H#g)dJRNfcW\!J4+5-$mS&n_Sjk@coBo"*I=s5ug6A
+_ue'DpHf-dlYC%\N%q%16H#*epA<WDOR-mc>GCKGd4eV='*M7r4AUfWh$ADUX7SCWb^Wa4ja8
++O3?nIbIX8aagHHGAA47SdepeVhPlhIVBUYV^5R,&Z"PAN%EUr*#YPV"/XbPpRHcSQmqH]hQV
+<;^*8DDUV4af0#=FgZ0k)moF9pK1E+&r@Wm$=X?'5Y]5]$EPB\>QTF``HQ2FH$DpTZn(Vq]]/
+Mlj=GNHe46j9d]nE#rmB%c'eG9$D?(O^2D7E"dm>g#-!cARG1;`%\nego`np&1!`46BjI$02N
+/qur?m9W0-O+Pf]:er6Xc<Vm$G1O1gL4X?-;Ni.i\f&saM76uqL+K4]=@HA6qJW=df(Q-,S%/
+m6Ank86o(ZD6=d5^?7V9Z4Xej1#p9RQH->pGZ(XY8m0]/bZ>+<aF2,5$87UX-D<K,kj)Ws7ek
+oI9P959\rB=%3i6>"E=j>OU%-.ueB86uL<JuGc`KK-+s+TSR&O@S\32D/pQ1\BAR-#*3$M>O_
+kjP0BJ<g!N]=@"F[2WD>B,PX0r10(mN]ndRl-_C/%K=*R=D/4JelI@MYl&,_fMofGNq6<iH7d
+i9"c#fS[Ebd/SZ-DEaY5S#)8KBthESF.UD9'T(D:TYQ.L4l),+MR;4&,PLCr3j)1NHb)DS9n*
+kI_aPbG6DsMVe\L0Y].01RjIJ$EGZ51RiYnBjl!oQ%*bj<I9<X_1Z'h*8#^)'@s-?O`*mu;D3
+^+QoCL)4a?VP$,0+@9chuT-&KtK7\h3(a;#6"0(3=_LM>U1(FB?p,PBN;p1Uk2A>ahp58uQ,I
+Ag<5X3C"o."ZBl]2PQbB;c]9DH'G4Pri3O:?W=kYcX=IX,V<b76<uQ:"SHWafa1ciTF9"'fG]
+-Dq`8]Q!-G9YrCYj#NVbOh]#jiA&dZI:-$2UCaY#k,C?>"2d^qk7GjNdg;.E;mjI?CpNi_,mK
+t"u1k34Z5"XY]ER!1I,gQfJQd5Ns&.RFg\m@:s015'gr/I7k]og#%(b3dVc&e)QQ.5+rYr1k2
+)LG<8^0/2mN-qEWPA*-pYL`!r`b8*D[P2S\fQ5%jO6T=JC&me40?d"_1XrL]f`?Z<lt+JR<_o
+;jh'^A^]sDi[Zk/e#C#P"dj6NL2CT@ajq2Jd(c\EeqI,)a$(oJ\(dT7#&PXg&CP>#RLY/]h2i
+7iif2lg=`<m$+UpoTlaO_8<D<,3C=00\W4FHq#k*H3E`Za^tIon7!J&14/u3UQe@rRlCf/aGY
+r+55q<\1B*+c(9Zpg$E'^'^nfXN(CX\7D"nGhtODqB(;_XP<Ebh/WeHDV)'P@3h)p;aPML+N^
+_3!9[Lg'1FV!'K:3eklLN/>miqOY=/5LtN:<pu/c*;VX;G9[M6XRL05AaB_fkec/qZOS#eAa?
+!r\R1RVV6:I.(bPWKh*ra-5AV"e16.-GCG'LVh\*R9*ol&&V<!ocF&E>]dlG;d3aes$ns^YWm
+!g6-UTE)rjlR%F-'MF\OIak_HD2E;Oh37<d@J&a=gT:mL\&dAHs=+N&o`[d,CjMlk,_np<(ES
+#OT&l:R:g#n+4G?uC@X9C:qidUKB3-m[Pe[SV[^]CH2Fq`mi'rLW"R/S6X#>T@`WA*K-TiEYG
+Lhn`-;LLSnAfgm^\]DQ`XPX?JYmXjnl*fY)"2GMA#RcuiW[(tuZ_l%l1B<JaS=4Bm6T\A5T5_
+WC&CGi`QU6MiK-kc?$B%B)`7>>WFMo?@bZ+Lg8[$rq4P_K]Ooc1Kl6bTp$23Kgo(.IU-r=(uJ
+krbg!oE'f:&[Z/Wf!J+]a-,*+/3j+`j_0ud<E%9eSnmr3<-Iq%7Jm"5Dn%XQIJ--@DHD^?(h.
+&8E$%;bTRlHeT60]5T?^h7CKbJT?K#j/BI^;tU-#N_C+d[=Zg2>*6!`o0<SASi2mfCuLJhtj>
+?ARUC?6P%?u=91<RPf[kf(_FF66Hd*R,QVEGWJ-\M`-:eXCVrjY#$lkt64^7+p=c.mo$#SThb
+IF!1JE(._*sBV?<lHl^WUal\//:'PlS4s+tH!I;.u@,ZMDeE=QXlH2OW\:&*Z\!F4V=AQ>pmg
+bh8C]2`tOok[azzzzzz!:V""Sh6o/40OAYnW,m7.$.%,C'/Z)o4:`;\/Q[B#/G?me-77P\@f3
+>oLHCP?HF5L7fXA2;]F=&P8<\:d?2!2%N^R&92&8YqGoWY^gJoL6#GOdpudGi:`Ho'?=*iCJN
+Mlp"1<^W'<QXmF4-q:g;(s@hM`nC0;q<X<&apZzzzzzz!!(qmndN<Q+>ki%&0$uJL^d#``!.O
+k@KR8FZ%34lV:paX-C$NG"\N9?9%NXT\SDOWc^iQ$[b6Ct>CZ9Q,?>aLD;TkJMX@t8RCLtXSE
+fWS[1s1'8*:q.,I^6<JRlE_mn`<mq9INiboIoCmeN9#%QhMEEAP"Jcf>hZV501<*F:?FaKp)7
+iA5J="eS:K&j^AqamIU?7)7=Bb^7cNf:.rt<).qZ^pB)bRpkj&@ra*-L#0%(D9n>J1:9Oi-+,
+$"_4tu\[FKTOkI=$0NZHXM[F$dXgI!bhD0<B$Kq@kgX"9\AfQ[$4Oq+aY[bKlL#X=8p`i/95)
+(.=I9*!QD[=RQZWA_g,>g?HV6#PUi`et:H!uH!7fH<+l&XS=`EW[+sWRr=Q0Tp4I"onW'zzpi
+b#FB("CQC!>DiZa-17p4!uKilA?Zg*R#="4I:YJa%^=^iVhYi!,SErRk?Q7;=(;/MmgBh%$3dF
+%],lq6k2b2Q6"tOB1(pe>@kt,q?D&*Iuj]7o5]@<40?E/s#A8@FCk1pNu*5C:bM)I]_i#TARW
+<7Tr@FA+3oM&%TuLf_32b[G?k9X5M+4bfEL#SD"VEQ0`MIbUN"-a:2mr*Ca/IT1*K&Tq'iH%q
+FA!"=$/*n3Cj",H/isee5C04Xp,<7B)CTMM#gL0n*lqjp/j($F9m&gt[G)No%u,H$rgAILiPH
+D:9.kB;gj)LYe]4WJT+o6W`0ZLYSQ2WVJI.,1Q;d5]'miTJeJE:`Gc3W!uE*dJ=)(GO>DeI^I
+b#2?3^Wzz^r%r%,Lkjemb7\Tbh_-^JnkZ+K<+QN3hSAb*Dd]B%]Bh1#Lir1inTcib)p:Pm[:g
+=#dmq?ocO$VC7G$7WDM>,cio3IC1DV2$K?V_AuP)8S>:t>n/=L%&(+<gC6*&<X4lLd*Z#0%'Y
+S,)2WC4?i@0(V+GC%(-=Z&^U_3T_K)Y9siG#:0U60f(9cOsaHWW&2ktb9+P*QV`ITg.M%*IdB
++lV&N<1^[d8'Br0[ll@PGN<L3SeThP2WK*5C<Hj&B@Oqn^t#3g=iCTQ>t(VK8tQfbW/ZQ.2A,
+hs1VV,W#eo^'@W-'Rk6HH^i"(s"AtW4p)fcN4O)`dkFMYt'_N+*?ShO\b@lS+P8o^Q5T0uJ-&
+!k)oRXs1A(0.aOpH*K%Mo)lT*sSm3K'@g>^iVhY?ojr=0HEt/Qju51&5:-*()ta-zz!!!"D=Q
+Y'cg:YX8q`g(NgNut?/R`+-<?=g=e-;cPC'2oc[=RRmg;"9Fcf(ktUU)_"Rh&"*(i#NFnh5Cl
+_WJb:mFL0<L>#+)e2D,sEob[N#<2I?k^?lS:Q:9m>F0O)B5g.R,9Z_Qr^e3ZirIbb!U8Cg!f(
+nr`1H0n'hGL%b2Y,[(e^KQ"1?C.;d85FJ40B67T=WB;;l5?d;r^.08Z;0'85VB,q-WO!r3KJh
+"-OS`%*r7cpVJ9M*78]gO\)@a/b3@4g^#00X0`VD<9riEF4n((%738Gf"h#nQU8U*iST#Y/i@
+kd9D.TB#BV_perRo='OgNW_[W8W3,VY_7J@k<&1kX(8/+hn3aB+mn%qX?F<e)(771TW9rF4!)
+k2/T.!fC>95Q*/4?X-W,40(HCLBFY\=(`]?`\nON<KWfN=#eNSMS[%PQn8/f7;=P0k,'BOo+f
+>Bi>?CcSra[\:.5c++"@F%['EAm)$ag:fJ?e2D]RI[3E2>YFkOd(.]aa1@RU>G/F(J_In]5]'
+miTJeJE:`Gc34=q+<a,^uTe-5mQ!!!!aQ03Yr^4:^)kKZ#24J"3gRK7^:j7pC4`V0&`s#5/i_
+*`4-fH<+,L+Bi4FJ`Fk9K27j@4!=pJ,>VF"Q3^5Nc\8teetI'\Ui`;;im8aET1p0VRD3Un@/G
+X:@Omdb5`T;JePJR'#Jddd0KB"XqZhi7r<`s[J^QBJZH=TD=N!_mP9;_iF:]!8LYM$5De163O
+O^F-cIV;%"p;%])GRrq59^G]#eVL-cHDu(s:On['Rt^!q82-aq^9T>a5O-Jif".K]$`?0I=5-
+)uos=zzzzzz!!!!E&:X+iZ_+Q0r8?a-56(Z`zzzzzzz!!#JSP2<AD&dql(7!^eAXmDmG+Ak#8
+3'/tT98_#*@J?uEn:?FJ\T;>C!tMI!,g4[OZV?(dS=.uuXh@Qqa\,Z5`<O"#<3=;0%OccbV.p
+qGbuOMlPkS&iRsIs?fbsR]fUBo*HU;ERS+X("EJE)Rg[`+UZA`^G<q.@%a\,eg9&e`2D:pr))
+`"Pc;/0kNX"CK6H`N.#//OL%Q$lX2o&Qid)r;c-gIXd-S`_N<<&HU8?f]qKH0^@$T9&ld\A(_
+f(2'jAD6++WI1#^ahYjdU;(1!Ypc=@WP:KLopFPhp>uFnJ9VLgcV^5@Zie]L3`j9c8ZJ7dC7@
+La9l-XQe@m*4Z;qqL%T:7+82cUg_mWdV*c9GD-WL"g#oiQ#f[1V_VF0A+cQ2$?nU+B3JS#70-
+9)MQ90GNWQ<q\AV[=JFFp1J,5E`Hof@X3dH1Tqag1DF&'@hW0I=eek<6ap,9`>-KY,ctA;'.G
+?Y`25M1c+!6%CK*2aZ=Ah)pP?X9nmZRk'\)7`-uSWY0pr(NAZ*VAO>deW(oodi7k8?G2WM>I?
+3QV#B7S^gi4%bRq\$E@g3@dc+kZVVS%,Q.UeJGf<OK@IK_5X&[AL+8aLaojFKjJ.^#cYnW3'0
+FY4BMJVi=Jd)WddjWE-!M0l$=CVV>6hZC\hcpS@%&>Z4k^$H]9lJ"oR5C2;hcan`PH<QC[Wh-
+!YqYo*!kT?+4;2QE$*04pof=gTUC7C>SIgN^,'_c#E-Mga_q[G>)'9bW7&d7BSu*k+3ObO_;Z
+)-IS`#JE>EJ'a1OUY88*M\:O%k:s55rZ9<0Or8s\E8iV3d6*Is/3Ci8V:,sh^=D9^idR!BNKu
+'Sl7Mrl8ZkCNo-Prh[oLVBb\BVM-!mC\jIL_1F40e8fqleb;>.37A8Rp?W89]!$eEV$!c#>S'
+'V/@fRMM+n*[Ncb1g"C*Qefk!-9smIKR2[),4kuLVAS@bn4P@EU8>;$j^s=:.6+I1=X1>6Vm'
+t&A&[8_]lFPVlZ!S\5#Ym3C.T?pf_r"ZfoY?Z2uo?m+AVq;];lYI#rF.m7Hp1?OEb15p]=O;_
+pfs'pD#Ye=5P0CMou:8$?BL],,&+>c>)>AuQ@'>iED]g,*Hmei`IupJtMWVM(Pp]8j,XkBa=F
+75/eeP\b>B,\qML&hCT@D6HmWMiEA5Ah1iJ@C'D<m7W;nrP3K?QT/97FaKT+AD$#dUAJ-RjkD
+/\N[ORuqa'i$q)/,mmWM*q;!p;E>I=:LR]n]`_'\Dh9=M]iP/Zb^=*LeEQ4'0i=M!\i+7uK`Z
+r`u\`^f3'.I8'e[ZJnt\lNia81FKo>k1?e'R.#S=R()RUDlYfGKqJcZ>=;@"lVU!-Y>fa%lPT
+@hg3Eh-+d:mZ),BGAp"sB81KD\SXmM[+^@AY0#E4onh)T&"OhA>AAX.]ju5KrR]WTL-^NO*P,
+=J9_t=Y_Qai4P8TdGV7'G=37_Bu*&pS^Pam=k2`8DB$am`V:S)&rL%u"4qP1kmGk;oI8RUI8D
+,`H3EB.=63PGYCZD4K9M)mLroIPOVHM\HDPW]4ktM@C9L`\JP$b1(%84f0;[)fQ$4C4"scM+q
+8GW%HS)G$:3^`WKSC2K(7KpcQBon`*g`,#_5SEIOn6TMZ$mbr0:U@Y*(t$n8'l,K75DA2uX^q
+ULnmX\WerG.cNQX[L$Hqm)bM[6:c3=\i3\2>YjH)rDFgo\n*lm/DWVC.J#=1sXDM;aD`"*<e`
+Ha^eqLfnRO<_NaKtkt*<<PJ(NRAk"61TASI&aA0fn<+l2\?Z1:s_tkbKW5:ZI%JRF">bn5':+
+COMAeN4E_Cs0=.SXdaiFU2M34TXa$k5tqAiVo=`Y8^g/0GB4>%?2Wm'km\hh"_IDtEYP<iOTH
+YJEntV^po7`5_Z0=csi1Wu4p:ZSjuI!.^P[dp"#6g#K>OA\A$uCU_J((^LT+2a0crXpe[,08e
+>j7VCjQ)$<t0:hmVnkfE+C)ft*m&c$Y,#2FlOh)uIkHP?1f-7fPCMUs+(Y\Z`a\s7s+%o^%C!
+k7K&JJ1W6,"61dkX#Kc,pKs)2!?7p0@n>7Tu`4JCrKO*=>,pp8V^ZXTqjFNcW:)kLorW*RN6E
+A"?Xjuhh4k:c8b/3MVMm@JFoR/Cd#,@Zf]`1<-09nn8-^l1m4I'9iF$t]blo*C5Fq@kipBEg;
+<B)=$9>N)4EAiaj#0,=`%<e;RJAZ>j1Qa\4/sF&s5XY-]L]USb$^b^i6]HI9UHjglnV\]<\2p
+@kaKiDM_c1eIK>#j2u]sEhh;QT>a@'a7hNg]jl(m@HeO5*Y3XHB[Ep=rDt?PIL8HmG-`,dTXL
+K94mo!\Rih\2zzz!!(q)nf*,D=9(#eT26Jo%&LDY%!-(`VFp$`U?Z[bc>c6*Wn!D-d.k6!6#s
+Yrh\2jX?2<kp%%hTRW/j`QmBM5r`W3DPa()/e[9@]Y#IQ]%<c(0Q&A0KZSUNT@QdmOEFul1C%
+81)?=VOR-cc=)HJ,fB2YFar'_tah8M:tu<+g\iHTXG*Aq6j$+Y2`M2\ttL8:Wlb)7JlOoBm-)
+$pe*`+^U==#.YJFfZEfILFH1hch5LriB1RpIKD_=e<,H)1s/re,gS;Q1;D!Z"G&/W#eh%]9Jf
+'*nSqQ5T2n^t]qtTjMf0[DjlU4,a!M`LD[^t0RBn"GqD%B"I-^A/qG+t2f=n"Q/\".t>C#m!&
+qAf1>:_$CQe@+bQ-+.HdM8`ANXjiQ'hH?jq[9+#,D%As/:V)cg=Dgp_^RYupSA]HY4T/@GkOb
+,9V:69?]sJK^VC**#^XR2%2AJRCXQso7F]rJDkHs/V$YilPP/G"tZpDD;:tsU"dZ^8gdNpK!C
+2r?G(<OWla\@[fq)79/fMOS.;Z^/TN14"1n85)KM+r?*V*FJ6eE5b/s+T/JM-<]$l8mt[jLa2
+B]=O2&@T*N'Pd!pBC"7Jh7K.,2fIE%UK(X!7Z/n-JQ(&DUOe(SiW,;FHMLXU>*f@ZlWH(bilD
+.HHZspQF;P!-W:*)919KFW"2Eb*I1P9R\-D+/8ei0RW<<$N=et'/agX8h25+-=NC#I_eMOlim
+Bt9=8[`)-ZC+DHp.@UUE(gWpq2%R)NK5O[[ebV29$<!7T9"CM6M2fTd?MLs!V`lIk$/L:eeLY
+,Th+1u*l(t8rjsB'-C.<':<.f+iW(m-6V%m3K"iU9rW9p:WpS;9GWVNLbChcjog6U7>KcdIb+
+N$gO>&@l'E@S0$SWoYS?W2@K3N:OXdE37,CA[l"oVA$WfWnFWXh)u)S5jd0T_CEmbsVDUqKJX
+_'^bh:<Va\tZ*2=A69oBp+/j#b:tp+TUtWuKN;:-EB&N2<%o8D7G=AQLmb?9Ihq!g+_1:d#g;
+%fX5)^Qfhgk_3o++2&~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
diff --git a/doc/users_guide/figures/cups_admin_device.eps b/doc/users_guide/figures/cups_admin_device.eps
new file mode 100644
index 0000000..637fbf8
--- /dev/null
+++ b/doc/users_guide/figures/cups_admin_device.eps
@@ -0,0 +1,581 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_device.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUl#u't[Y6#VRXOqgP(QJG*/[+HGMrGWUiH]MO*Z_b?>HMp2JoD:0*rIu>3_uO)Oma6^A
+tb_1B?j]-e&@g#1NkF#LitG#LitG#LitG#>psEW-@i;_+-9$[CCgY5#!kYhYC(+6NQ+G#kH-!
+*)pd]HF2ZL;2Zr"(s+"\o?WJ5!cSCi;4I/KAWIJ@e6*Hi(er@A+a?8ki2I.@GnJ1Xj*#QBAut
+2SkO;qZJD1[djr<+MMPI2[Z8Pg\qP_S*i4Jf<g.l/qlj5?;E0(ijjda6h2h]GK"RQpo3cCLY;
+Ho[HbpKB+G`Ki"?a0gAgsE:8@Nliqg^m=`7p0^!>t"(V#0HbXMF*!\(0c*T>#AO+D/@T%[G@G
+,QYFo1#"R+A_'s,W!TLh.b=BuNpVrh#\ed(qD.h2L$6lM&o0[4TK&DC+^S2o)W9p0MR^^7[ZE
+Qt2L=r+?p'*8^$cH1JQpM3l3",V#afLX28Yd8_$1+*/,R(Y&m<$etPr0uj=,1/A:`Hnj:`Hnd
+:`FWn:`Hnd:`Hnd:`HndT>*Pj\/15*Jg'ni"=NqW2[fV05+c.uO1nf4.Za"a&tcpbc1-Y@-@g
+eom%aHSKG%G&>fp^QD3+,GYJQ0@m%aHSKGI]DB9,pE6#j.AV)AXU>Wmqtpd'f(DjIpHg[\eu:
+n+;a[U]@7pJ3YL\hecOCkUO'TdP]#=I?M/RbBTZmd,^-<En?6IkUhn++>jprUp&n853q',H3d
+FH;t]HqO3+@Rt9(JiYS;:)miXI>CTcT?N6VCk"?Mq^OBN*q.]'1M_<L4h;*KRD=V)=7108Uc6
+S<PIl+TU7a;dhno6h0^sI_j7W"oKS+(>`8aO!-2LSgrc*O1`d]KY\V)GpbiRQL$r]Vl_YP[82
+m*)E+NF%!q4q1%D>ni=o-`&Qpg8iN-+7u#OSF^K"9C']Y_dd.K/7tG;9l2@%4cg^$ZfPm'6g(
+Oho6i%>>?u%m\pY]Q.!u[$O!n*=Uq+1m5!Qa7N_4/pIeiSZn8-3/I(\0J)QTi3q9P[*7I'OoO
+-PiL]ln^cla:"UAn$Z9MpaNgHne(bJpR@o5ST]/D/uo*$HfHi0>#]rh2/+dW_M!+4@F$B\#6:
+Fk1-n>@QS8."j]*&[UP/]4'g3hZ*0PKeArrDg^[4(cUoGHHL1j5hhkknHjqRhXR[,"m-9]@@s
+ba/Q-[14=8Jpsp2)Id2F!oBiSX4bP%i=Wg*gAp,j1]B4A'V+A87mZCg#Q[dM\H,p0X]*rcn3b
+q>3E>>Iqkj^.ji?6]HS(ZM%9VrZ*MEd[K`A`k/4Hk4(,UN20Kk%]tP9\Xk,B+Zp?ii.[f.C2f
+6GQA_.O8=,`_bPcbKX/!nJM(kN@4_5hqC@br./GMA@1Prtb7="HL)gMt97;htUC9qs0@e4@3]
+faNhH?:TsR^1Yc/Gl>$W7pO-4r`dRfhp)<j[%#UT\#Wf=`I0Ye^cDNASp9^X>X9Dif0`$f>b5
+kLZN@"-Y>0B"Z+&2P='(8M(MXF<DQ2CoG"]8(nCgb<`Y^&QeHo7ePJ<ngJYGuNh`.7c_`j!_k
+M'JE`6`%Eg+Oro530LPc;o`Xj<PVI3^BoK6h#`C")s($T4"uO%4)rE:JnXD-'RRGD9\D2d1&\
+q0gbij^uFH7agDpKPudNR878>DCGuuKtd+m4'8m>\Oh"s-m)$[gh,ldZk6D=>Q2=qJm(!$XlI
+Ae9aU].eD'bDgT]Bu(FOX"X<<C`W2hMlJZ14=Z@shUIu)g=C=5"A5/Tfe>3dQ8m?2bLiM]5o?
+?s4j*?6OR.<TOi?0AHbP-.BoqU;WMR#<:;l'H.U0N1Vt,upG,).^bcb%"J>3k5,H_0<W1@Nk"
+8p`V7<,Yoat\Bul9;>>rN>XA.Dm)gG'&mS"\fc-l,p</=Fm'lrEEpJR#Rq9:$W/^]o"1-\&2(
+ALE#gtT0:il3(Dp.^?<3]^*+*jnk*(T,M(WpmKOn:a?mNi8m88lU[mVGkPG5T$Y*fe7LolmrT
+'hFroR?^9?-+B_7Rp=gOGfP9HmP!/F"L\3epcDQLlqR07Droi7DsQKoT<QBcX0$W=FDZ4(B1k
+,E.L1'ZiZ,-F[Xl']hs4Tsore3ihmLleqR_WeXL@tRde2"(5@6bj2Zunr=U(L:ZSrNb.^njlk
+q`@J=e=bib""V,HPMe!<^=Pap<ih:ikuL#:V\W>c+uL8dJZu&&,:n:UVHj-7<s!iP^%YbJ`e3
+U4!=#)i9#EFmq@>,_K9o/O1CmDXq:BFB^*$45<80+F"k`!UFQJ]0Le,&/#+><^"UV#TJeKWOc
+FcLGDp2+C+CZ_g;"8#3po)J@`5HO><*#>"pQd0RIl4+cbUm!O00&h_ORmU2OrjU'`qa0"onW'
+zzE(a7#A&%3%,HdhiHWRE9kM1RO+$;F:p>p+mSX.u%>&h[7Rsod4GG!sX"U@iGla=.oY&pLiS
+D;Vf1nV2@hVVB!pX)tF&*+0![]5@T8mY85<,)>EV'H<'p:]-S'jFOKH=CLZB#dV-FF'X_<m%b
+:hj*nP)uP/k?Qo>OJ&*gRo_!)aRSh_,&Y9q&c(n'Z1b1Vh1j+V:oNSU-8!CU?HdpaGRshaYHa
+b5t(05Bgms:]Th7'bVmZcYd*aN^R3/m!sbh]"#H]rWI[W6FG]e$B[o*YV@A4KLrV5B=4gV,fa
+?(2i\c",)5]JXQ\(eqDT]5g4oIk.QYJp?o-UAFbuh0';^`#&@%m?.VhJd*T?E@@A3Q5X*GS=B
+(_d=r98B9'Q'gr/TcJ+ge`n(:tpjd$&5FXrLqPWf!pNDTJ8WtCK2hlGQ[e5[?"s4#q,?<6nY&
+oCq+]Wd&*<Q)>(l6(7:T$p/8EFZtrEd%`c&(s-^hcd.b=!t6a?;qlAQ*Og?ZP^!MIOacbQp@8
+,"C'Q&VRL^^'+UEm?2?Tp,uV-qm9d=QF7g:]:>^TejI9nNmTk"k:3V`'M).*&hL%+0"LBdYF_
+TC2=`egrVe9YR*%N&4##_;2p9`Q'!)*baXVS#Y)`ZWO/,.m]IrIEO6#Fj&8F'n7H8Y^>]F]"H
+qG1uFQ"!fCJ?^oLQud&of%?\g4l5Y7b>*0hR@2`td?.:l;-R\(>"dArlJL1;gZVul[p+88l9c
+<(e=uF(@4+6t.A8+grTg?:2nf)6H=a82Dc2#=p0IQ(P4,f:Ee-8TpT`GeB[cp\53sa4MUl+G)
+q1h,+*_"!UKmKK9^$eP+L]QD$-N6Fhe(<H:YW&Degl6Q&0E'XD%B[);O4LP%4Vn=-Fsf=Of>p
+-QVAmBCGot5]M#\WQ.XRF(d":;1"3Vgb]gI+he3su\U*uZ7;$Mo8@=kT;LSjPDf2Mr]t6^GX,#
+%\[l/2?gBP(Q)_JLqjP+d1m%pH]ZI[l*D9RD5g$6mfHb.nF.j*u':SSr)3i*Y7/(GO+C,"L:[
+9Shd2`bo]UFGk,)l/Xt!kd,S,j%n1I:oUi3PF`FKEDt$F[e_pJR5oG2O+YaXI`/V4&JL<gV!F
+3lR!^=jYg(.2K,Ti[$at(S?BG?/G8.`@[aE:;&0(a[[:dQ2qu'KT"d3RN/`k(P95+2(G,0J\<
+e/H8?hhMmI'B,?14A%e3q,fb8>T^[W]==C3R,6F1Bg!BYEf8DbJimeV`\:E+\9.qQgs;0!HAN
+9U&Sfs0/5?c)M_j[JqfQ?@UJJ!Y`?Ao/<A<XgYRfF2O!%`AZi,)j=+Qg8UjmjRi-e&$.#2.&/
+MqKQ>`"X]j(gD2DL9A)/\oG([[W0>1X]NQBP,Uohn:%;&dFFZ0AVU?H2.[b.QndqW[rdO#_WN
+20Z&/KOJWNm)D+c<>*g:;Vsa':0"U^MU%GC#@gBVs:@lr3:7RS]Y\[K]Yd%2j0&Yr!>0:^?V&
+e]tct@FM<V!'l'n6eiH,:[G*`DDae2k:19u1%sCuBHLfJ+N<jTbSU]>Z>i5AihLBe;h9f8/ZR
+2T;V)A)n8WZQVe*2&q=052!bo&_rHpM"cU_$u0mT_cN#o.#i0-"CmmM!qu$]07sD.jU>Er3@m
+HBBfe[29k&9sN4FG3(9<`\_kO0i^p'A+-)ng5pU$M)0T+?+IT5qHY`e[]RBjbrSe,Q$:EBQ(%
+\dp@]lGH<0TZgRB_5%;36fmP9+]L%cCp*@"7#<jllT?%2M%XgsOAT[U*YjC@c/*`2"RFSgQh=
+AJi\[BB4*\du]h&mISR.'KZ!W3X+*1i8W%<JT"^8JFes)A6ikZJ=)tolf)D:/>(h[u2i\eea$
+>YV^:),&UJp0cT@]I\j5<U!'jQNM\bP?X,(YXii/\diohpD_k",pH5j1lgc'V&#V=d_0s\!Gu
+rJmXHC-tke,qi]Pk-oV('(OhUXdPMO@*ipbl($rnYd;<\_sI8+RL[QO&MZXn/@%^7J\jbO[ai
+"2CgHgp'(F^e^\H5tDo$+"NpWT$Fnb?M^$3A6DIf;qP>Vr\[`)01B%Y0i3^dG?7tK]ecgHU$1
+6qe<C28DT7]5npTE\.>r%&dSS5Zq&?BCQ+QAXDXTooLt_Kp3knR.(+lN2b09^gPu?;lI1H(ab
+h[7/.U+P0inM[`CQnS&`[es.#[A@aM\1AAj1Rs`]E@hD8W*p?fPJF;OOsn#q1G9N,^1k?.EK:
+X&@IeTR)[`*7NefFb@mD;kKCl9@49DJaYRHVW,LEHhmVW88Lg+e"K<ubKHD\)khD?EFQ9O4P'
+);s4S.AjB5=m.<pl!tS(g%]2[cu/;q4k5A$)WRKNk'\LX0#52'$JiAns`js(7.acgJZ_m5=aK
+IH'"m<Tc!rkhBF?G7$(Oej$5_lmlG*RjRY%D-OL3m=HpZPO^3^+O7ei;!)E%=<8&u<J"klla5
+*[il3EskGPBK!qV##V+B:%n?<N`\M_U?,t4e7_DKKK/#/LpL>kVYVM(hlFEU;$G(:<Ab_`mid
+J)b9bhP$,)!L"s^^[)J=jZT-f!Oe&DkgBDkM:o"Q+j6WG'b*TgX]^]%D>*qbd>hrF]30_[<cP
+%XQ-a4's8'2g_+JMI%+il*KaWCf#'.ZH7<UrS'eT?9.IW+Uf)DWY9r=RR,;(Qg2kj-c7M'9jm
+3b=^*$X`A\VRLYZ9T5e_2ViCE"&RZ1MY)n_ku>Za>4U*[/_Re\(#!>*9YTeB8PTZXXZXX_F-)
+%<Z@%R_Nk.Y'8jm4iTs4?8L^X/g^HW<c$$<h.)L\gGZ*nSX#7VAh&iXj4.?)gK:Qqh\PBl4*S
+rZma4Dd:/<"h[tQ[g]0bn6R%"YSgKsTRCX(k<2.Nq<0nHH6U;c3c8rHbUbO:Y_SZO7$'Fpkb/
+Y/3'd!6R%A"Apm>@0fc<1<#6cSAYfp_Ip:dC2QRDKip!;9G0VKqm6YR29LI<GO\5Cd+8)oSp<
+R")t>u\%%juo`V]ILl5-:SbDUEnIc&QQ40F0$uO2hY=m$HgPTumh=fAF$1:3`M"HV^[!V1,f^
+!.>`Rg\6p5F:15q]b#hWD32?'[MrpB6(4a1AsO@7VX0Uo[392&dIaQ^O)p-O:Hj-6L#ATgbqb
+%$O!-0XQBEA%[i*HI&B3!TAYai7KnR/iUI0^ES<mb'C?JH<NTQjZ1l=X>ak4m_]Jihi%gQEUK
+C!/$c:4EB.k?c[H2GHJllFX`;hi4]r-%T/M_&Fq^\5KUaurb=@.:BuQ0](W1FJn!=K1\u(E[-
+PW>EA>"pniU`fQ(O"OcCRcr`Y3X$p_&.*fDgUb2;<fHFg_tb>q,o>XI2GP6V'<7-/Dt'8$?8#
+d&&Is7&G6KZMGpXE\YrG@j??:LB)9,<M)RdLA+T)FEAqGR[A%U1cdc3ZFgRVo^/MVP^2;aa/T
+kcNjL!*^TXTlAo<)?.@_ek>QTA!OS!/sAXj1-.Hd\WfY$J,l#j]^9H]":$=ccEJ1Ye(t'si";
+23!it%pAMjW7>1e[7`*7F]"Gm#>G,OT>D)08oJ<o6a$c!4'QK(,-lVgCb&DTE0kUNbH@kEkRU
+J^q+r]5qPg3;H6RH9>3I,V'+22t-/=KbZ5FNLcg8S@2T8H=q3h7DK:At\WO6>n_[iH?aS(JYW
+5bj6/9f<MTW:Nk\NA5QUYObZSg*MnX^1="o?u1S5:XS)UlDBbfL4,FQ^d-UV(t$"fq%0UU4`&
+a[X4o0kLRdCW1VM'b-YZtgRP92"l@Rp_5>llqW9_-9B0]Z)q&codX^Ct-cRbC2CC]W2T$-kYd
+YkI6OEDJTr71u<SR='I:.@O1^;Q1XlPsW[r%\.\j199zzzzzz!!!#u"Hn7=:d9/1NB,r^rW&T
+V.Nt`"gl0ID6#GOl9McZ.QQ`"[E&RobQVj@Mk`>YBn7Uu'!2`'37Q!W1-"n,WoB<K4-R7(Qd8
+Z=DQ-K@`RS6@N)n6XAh[sRq2K3G`^')piDN#A?e-9e$g\JqAUeLs!JZD)L),V=.:h+F<E!?:B
+zzzzzz!5R4I"b<jCC>c6[CuC==CuC==CuC==CuC==CuC=Y;/P`n4t<,%-9/Wm2Q)Ys"dZt&\>
+F2Fom9+7.emh>=K)J3fjF7!\`Q.l<AiLT>iLgGY[?atf,j_XgdZ.t3M&4]^$ms>$Mr(,C,eLC
+M\tE,"ZpWLTXH6-(2@ob&Bsg'(T&Ap/;!SYLu*L+BL0p?g[fD0[0]((H=:9U$],G=`8Y8$'>[
+M>/+Grl#>j0]E#Z3=J4sfBH:_uDbr`UDD+nV>gXC+Y[3akhbKJP#1`.)O8Q-^DF247:3LHbRO
+o&u>lAX'\q'mP8VAjYd&>ggGZnTf63P_sa#uefdYBpS;c^tKm#4BNB[G=>jj]c-N\X>'.gm87
+YEfScp2fKPqM%+J-B5k$++?)!Bo>LpMJOs)n2#mUVzzz!59!DpH<eDZ[Ymph<g7h4M'4\.Gs\
+O(JrjrJD.g;JD.g;JD.g;JD.g;JD.dBfRG4n$`ujiWj\WFSY8S@$7Ti&9Oq0p?J]qpAt"8(Y"
+#[kDQ5UqTn.I&80UN9E<J5>%Ru^kJC:#Ae93]cB8pcSM/!^#c7\AY@^T2dE5(%^1S&+[<!cjq
+L9/CU9^L<M5#6%8.XeWNGm;-N_7_\CC?%&9^e8_+;'o-1BMdI6#b=CjS'^!]ZXoTZR-P@F:#m
+1J(dAuIU3sd>=qWW?&;@,X!G]4qd5<lmY[0rR&/3S`-h(@\<"k8[:a)3597.[1EY=R?[jOV#4
+9_\NVM(YgJ)k?;@S]l@<ss(^9r^*$.\D&ZD;IE6r#CnA.lu2RQ(V&rOaXrW,d"&*RV"oG+32Q
+>CQb'49hIU>4-GIda:i=#&nJV3%!p#pq`M:V\[nD^nXVM"(R`aMkLlYjQ^5n`9'I^<Knp1QHS
+fBl9/pihq^OjJ%g$JJpZ"BDn^6giGg^%c5I`3SmK_5GmK_5GmK_5GmK_SGr'if[ftSun;f#8L
+zz!!'MH0E:r0K7EB_G_*uLS0Km!oEM2_ht+h\j2ZWk?$c!>>U25K%8>`4@2+>CQjD*!<+KI$k
+')VOf)RoB02,FNAY"o$S/W<k56Y1m(FO^r2gm7ULEGK93l-:e>mKjM'V(PSPa$V6AKSu4L/K^
+b!O_m!CAS%>JVuNaD1"M:kW46,iG@D+74FVJ5De1V.CI96,fM56N.c*:qXIG2oqu/\qSd-^-H
+-H#(sC%g[$*V`#2jdBSL\YLE*"+9&Nk%9mKfD]"SW$pM?<hYzzzzzz!!!"Lo+:]5c]rrKLeZk
+65?I[^zzzzzzzz0En-er%=Wb;+mg?$)Xnk:_>JtU7*;[NYq:<7;oIC4K\iSA0I\X;g%78a0p+
+gAC2*L/Ok.M1N,5(HEkk]Q`R$@*I:(@[4)J0&H(A8WbL6i=8co5%M^P&(s"9EBB6O2CF7)T`7
+bn8lZLP%N,NQ_'Ri\tRGRD.iFCQ)QaBp?8Uk6XA_6EZbd>>:WN@&?2Vo@]<h!Jc/nS=fqkWfE
+fiQ]^^.4'hPE#p"V]3D#1fm^"F7$u[F2buAo<FC<Q`8\`!=.+DL0ud6:qme$5<6nrOl7Ij+U]
+("7SQ(Pn8#V2[TJn`h<@H\86lACUu;L'ndX8M$^DcIGcfH$Vpn1*#hDo'KLe9c8SPB.2DX(8Y
+qKF5^@bDX-"t]:fP5.7A-gJoU*.#92ekurM3;88/$kK8,M"T$Q*=<`['6rpK.)FdC.h0!lk)P
++^u?$2bH;`!Xc^.#D5jU87A2uu=.A+W8NnE5>oFAF<2NAAGhea+UXN:F2j"fp)A1ID7^#@`6"
+NtkS*qKVk?Ka0!Xj,ebb']!,e>\XGTrZ[W%HZ_CT4rQ.Taq%[?8RLaV,.qE*]m!im:;ZlSip*
+=`$a$B\f_(o)f79'1d"8?#@ft1-[g'D-V")X!_X4et&g'ESG3jM_pK8f(;k@1r0m6Kko-Bf",
+\Un+n8CH3r3Q`d8l>[-95:1p"-?O&"QhQ(".gQ8GhC2F171CHdkf=`'m6pUlrKl=S.?d>MaLf
+@tDTM2((Ve]*%"BXM,OCJ>J?*c*/RBS[0okON^?9P0SWA1*!o&E0FW9=*2?[u1lK(=k4q,^j;
+UM.B$e2OnFf5+AJ7Mffgu^NB9;pU?U(5h$;W]54O22fIra8P0`PS9@bD^TC].A5tF*0C^U\-1
+BpDNO-?Ac-FT%*d.L?go\o/*S$YBI)b%=]n"gSQUSKF&]8OUn]cLU7:lA=V*hos!8u6uIbqm-
+<3eq%q(S&;F?%,'3KAMeRLt[b18l$7F%\*F4uF^[`n7Cq*1*&Z4Csej`I1W]=q_=1NUE(<Q,R
+/$Or^LcAuF4nT$rM"ktt3pG8JLd]G/`O;'kgGhMdRj`T3DJHFM[;c`OSF(fX2mpS'4-1Y"D/X
+=,>S<OjcZ2T&+o208WYenQ]tPVCI1QP&uir92+C">^95Os;H7A<2afZ'$'^mQMBCC`I"EgF9!
+=Rggh8:epZI#?nFG`p'(r%rGFmGYC?+k?@ZSmG+aPmbc5JBKpgXAj3b5J!S(EkGd0;nD'FN2M
+8gm)0JT5^r2]3IJf"Y<r0mkb:mhie)q5Ge/%p3;+;4^e%-5[a-eLn1qBfT4;h&>5E2#BM(FL5
+=s@kWqj?_9dJB%_ah97Wg[ci+3H8M',kPU\UPGUiQ7*%d=`@#j^WbDn[n&!(bFMp`4sAcM&la
+Mf[H0b^lj9EHVTFM-N91X7%%=;uNFnJ=)3X-H?c2OTo35Hks.h[geAS$6Ldlt@U(Wj>9/;u8N
+u5R)2]:MRC3)mmnPFH5->?cB30u'GZjcJl-".Mb4]>4:R<2_'D:?]aD/`WWrFD?qQAA%=:!C4
+7E!$9OOTMk^9Pn\",Ppr2!IqDL[Q/J*AEc-@D-V#4AQ`%QNI6T:Jj%]SH%oJbo1':X.Ba.d?;
+]o_<l8@P9j05'YhG9a`LLTcY,amOP7(f$D+WE8eAej/eAel4K]U+W^ma!>,XjVS(+tST[9^h^
+nV9=+<M)F(&2.no/4\b!9JdJa_Oi64E_@/mj30D<71uNrAB7#2Z's`*X"c=Y@eo9;/VW3&d]t
+b=-c1>egeI+te5=2-!1E7Rg%e$1':i+nc;kS"MBZl]OX<dD"eg(^*]U\CV[SR1k\;D)Q,c$C)
+Hf?\5&-'s40a8<?hb4l8pQo0YI7&ucG'PoC-9s!cQtJ)mQMo^&OF[;7X\t5!rr>23`g_TigM)
+5=]Y+_o;l6$?sk6hAD$N&9tE-.Bt4B$j-j5?.hrIt^f.6";POn`&$F-1O$r'dFW9i^`b!Im'V
+A*mc^Kq>#ZA>_fmtG2Rd<laqE.I9&I:M%IfWk$Kprd],MA%bnjl/l[qO8Y(dY7d4[Y>NNQ'mG
+-s/.Q1<G=.Yn9Q;'`NLa0EH@#M72c<7j?#c55?@\_L9FDcVW[lR0(g+0&1bbK,-'",>uq.K#+
+d!!msPbeMg4]3Y,[jDQ+rAaHNNQ"gu>@4K)S`U^g+&K]M+*VQ@5-A?"9$Q54d.)lf%BO$oe#d
+m[cpA#F\n3AFiWA`&dl/<?U+o<&3q8dqS<aWhDYZ.e^Y@9iR97;arOk`Z^[FoHbU3]\Su(7$"
+mT]s8D7uRcn%)4bhn6Hm3[];QY!k!G`DXe.Se-l?XzzzzzzzzzzzzzzzzzzzzzzzzzzR*%&^m
+`,`d47NWbJ\.W+p6f>bh19q7o;A>;n'QdJKMg6t/X<"%GFtYkH4dp[Pg>uEYOH#sHuspopk7@
+m)lRT\:toPD\([.kA`*5YgU#hf-HuceRrZoGQ_Sk0*n+Z?j72<B%$loV_8Q?n%Yt)^p"*OQab
+>Tg5("\l>L'#oo!4&)ScnN:H6]qk2PoaV;M?/.b<ASmT>eYO*i8d-cK/F!Jo)Mq$US'#F!JB]
+?VQ#$Uc&BS@QTAWnsQLPcG[K@2:V=NOHJ&6iKKd9.)#;3fs)ZSW4'5nb]D6+X1#plT0HtOX0%
+_I63^Jc7Vm4Toud36LYA>SqFIX)[dI_1qQo+*W,Fcs<78j9S+8T9Ff$1TXJp'mY=iUd;NnG@&
+R/rp[A1'+gN'_:!c!&p#"I$pP/:[V<;u9PW8T-@MoG3N>!L'BjA2m92YSt)=PJs;*e*D3<,F[
+NelgnnC?pl+oZqMH`>7"4PX8+ANlm(^Q%7T&5*_9&\54el+a&i]-SnD-DH^pICtc@$-Ul>W\X
+F;dEb=.WEe83kp0MRTZRs%N:Tl[KIf1qLp.Wt*dUV0=hko8\EB;SiV&#Oa1"X9'b5&=REao#a
+3Ep9^7=t,J`j+VMWKWeeS!BQ)1TG<j^RBZ2gRa:r25taorUQn26&]9Os3cPccX*0MDG3&>U,F
+f/F";llD&8fq=6H(F3,8FJ0q1HiLi))d$D58G*=_LT:W:,<oXL9f3SSAD1ppAUka3q)Q@tj/9
+s6q?b+N)WEco+@m=H&'Ue5MpiPd-sFhR9]cVAm_HB`"I>Nf)(;Rqq,W\[2jLb20;cdf,N9"@F
+K<`,@WSI6gRdLJh;D,Atc;'/BkXOlc8jk9:#oXHNQXcG\G0i<[j>`IJ(!omD>D`_\o;89"($u
+8b=;^%I#&l@?7B4*"PQ,4<M^2)7@f@-ht3sC9"a_MsXhrDI-XX4hYM7`?)c#_d-Vj2ed^-5BJ
+'VMnXGY5B/^DZWg`l#U@+!/-l5(>%OD3'-NIJdUBp_F:J+&Eod+.l?hLVY(Jrr_9E0g#~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
diff --git a/doc/users_guide/figures/cups_admin_make.eps b/doc/users_guide/figures/cups_admin_make.eps
new file mode 100644
index 0000000..a3caa31
--- /dev/null
+++ b/doc/users_guide/figures/cups_admin_make.eps
@@ -0,0 +1,599 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_make.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 510
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 510
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 511
+12.000000
+622 511
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+9a9a9a
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUlZ2!r[Y6#VRWWdnaMtG"%a?0=466@tUf0^alF/aaCJIGZ2Ad%;a-QpfXLj4b/saW*T)
+_i#!C.sFTJfUUW"%5YC'4-Zg-@fo2GapY2ITGNk-kTaaW1'N($,!u@YE@(0;Uhm!:GO`YPcI-
+e[F]9<]hW'r/(lEjIX?`kJpR'W5(9*F#L"6;1b8uCHNBG$2Q"PGNanQ;M+>L#l.]oG]d%&/F,
+4Un7"b8q[qB@/)7UkUK;;DD(nca]e0tLDrqFB]9$EV:O&RgK/>Y@jhqD6,A[K/BWF,@ESKK9g
+>_%.0gTZo@m"B&MBuBc&IjXK#3%h^*>)k*PgpQ,7FYW^+aG/s;2?p]@T/=\1Q$J.`[3iFg\lt
+GR9%"2YUAgtE/NADK;biZ]I/,LC]*UrCD#%FG4iAI+JPJ&Hro%j61B]Q^S45':g6X@NSEGSRF
+n>JL=)P7nI6``-A[Rd@1"`Ni$,83-)4'V,`ugm#-`0C&/<o`[*_ThoZTl-QlUX06Z(bQ5]*/8
+:`FWn:`H><e->1=[=NXOrVQ_i(6<p[&H#B.,PPk-$\!H:SmH8p^089%O)C9s?U$Wsq2*WKJ;#
+rKUYDVu&m;\Mb@e8#O)F%I_M1#9UYDVu(0N"$O&=Z0ioWdrg*Dc#o-A)2#:Zsj>N/7kl^K,Mg
++<2;4*SGgrD8-Cb&drJ&SdN%*=4i<Ap/2Q[:p]<fFOl]D-aXM[JnMCo@M^Ec/4gUqU@FMPKM4
+t:)1a%Shi/adug)*r$JdfK@]nLepZt8m=$W'bI-roc/4gUIMfZcU,2I@2g<lO2Yh'k=UQ*(`[
+(01^GWHA7P7^gk4<IY"@F-ANS6kV2W<PJK%P/)iq.['NLh.:1#;0<:hlck+'rg?kC5\I^NNne
+Cj'@=d7Q([Ue`"o7Mgb'r^ghJ^36N]m0>d%2<VX+G1'PLA+5l<Or1OFT;FN3Np]HaX2XpU"@M
+@RD=_TmfNZ,C/i<HU#>t7AllT*/(^P24[=*IK[@NT:(>\i-Y@-%HEVOddokCL'D9@>,:b#AHB
+6iq08U!7o2n@\r=^reeR'7u%1#TAe_?9)nq10qPBA2E]SRn&))BX.#qqXhC%oo+_$h=k:/_le
+t&t;tW>)DWFM_/&>+gi&#]\M_&HAl^[e>@OEWTEh&p$nd+PO<ThE;H[b[_cNN6"`?AY\.$u>a
+`+R.oQ0/ah6&s<nYr.?>[DH'>hNGh'LOEHaR0HLIf_$3--alrfX7?7V;8O7[G`j$%;hjC?s0;
+s&oBu,aL#f@pi(GAP]8p#:B<hA`M*=3L&*Z<AW3#9f:7hMaC3Se`P59kgm@7K($Pi5mX(X"Y0
+ed\3%6)fT('Efs]\=pH1LZCmt_/):qe6!j4H=#KhYSF)`O5=Bn^pI,%3J6ZA/X4h'.HgpG_Hg
+4$.gQYJ^qQ=iopD.8WUFTtiMJ"nZOg1>9TUN610jS#S9R\,MtS<U(V>BfDIESI_OD!m*:Nk4*
+ce(/rM(TT0F2H*h9Alrnj88TZXASS"*.4LCNU+mF0B0d^lX%h/CgTRI=8r%7fWj^Q![*e*j["
+YJ`Zu&EQ8o7aLo).`g>;dj?C,9>bEoYp3P89ELXg&bNl#jY(l:BOi1QSt`nVjbjZ`&j&_m8);
+XYq65NnUkqN7^Hm]&$_sD6Z"j+\^T@Kl3s<<aKX8<c(HHdbQe'HVu?&`NC^C"SSfHJ$-;S(<p
+"JGdUF:_JUCe2LaF>XL?Ko8Xh%_LnZ0keX!#He<Y406C*3f6u?QoBNlsUiB/QkFd(<ubIHs2X
+Er;i=hRQNI.m3.e@:cFS\rlK3[YC.:Hr>t-CX"k>H<%d6;8'C<,I(pO@ASM*fIn^_6(0Q^@E!
+c$VBs1%rjoZGq^DZNG_ng_L'el%)OB&B*N@=i,Ta1]n>#S5HWSTHJ:))[uT+L7Fmoag;nIH//
+B&bV"Dh9dQ+:'A+I%2bOV0&Z/59uH*:ElB4^((b&l('oK!3E,n*I<n&])-D"O[nr+j"F4<*&+
+<OlNQ8GB&6auu_egY0bDY4%[iF19nH2f!8^g4",@SZ=F;VV:U-12k1@Fn1PS/98mJ/)DZ0g"!
+mW>4oGK!8Sq_k;gI=E**%b\l[d9=8o;i>%o'a<O%h>epj<6G;dXjF%G;N@)nC@E.=@jO\f%oj
+*T3e!c#&(c#1ZomG4<:V7$i[n:l@5]9Kh0j6-gE$*cL8_`kY;9)Jlhpc\KLmr-@DgSMj[Wsq0
+%nU!N/,J`.2,G*9ehh:7Z)")I[*aKoXNR?0oX+#*En(1s/Y=BB7Ht/+Wr$.s]I_FIX6(g+iKT
+V;LSNFisH*roi5]'m7.in?mYo*#seQ*.][=J@;F='/Tr\YPRld5k;hj>p[fnP,A\j50mdf9@J
+zz!:ItkII)#=g>bZF[s.MFI]iXHJ+1s(%kh""mBY5"dY^\8hXp-g]DEjlcT$/I?K]nn]@)uDE
+H5!5dX9WGH[jeKha\J#4HM)[gSVI#<:Y'mUIt,B)^RMs[Qg8!<3[0lV?^^6DmnQ1?)JLmAtpo
+Hq;#`=[`@hYp+(fGlYboUNP=8/75G9t1W"3=V\uijMe5DUQ)5&=PQ$^2_pKaqp)\AMrat&i`8
+5@WWJ)'\g:JE)8b\IXd[_$+gS;q$*f&.uPd+H"CN%W2e2D3'VPaSuBmrBVNbg?u[FFh'Ctg&X
+7+5ap8MaJT05jS>2F^V^gMWP.bhpG*N?B9*L?SSa4WLm@cbqd?eb,(c(Rt[7DQt^_d$GYT(6"
+`gBJBuCY,s_<DW2l.2Z)2Aj*YBe>:C*$6-icG#GL/;T2H2r5IhZj.K$m5AO9[UOmufT436/sI
+mp#_CRQ%Tn>:fiH;P-i:<759a=D/0fJ`0CJH$e9BC/p(eb/2Q(>Og_j0V]Blso0F[_8;jCF[>
+d#J.]:[Th3aa,'hPU:d#nI]a$R9(CWK*]E0G/HhTX!4A)1Wa<.&Em*Lr?5)#1Odhn[^6ojjR2
+Dm.[-H:;3k++I7qXk))ssdh;Ph)#ZJ&7_9J\l7'WiA@3*`F%pYIrXE'(6hD(ND`Z!S70eU/7I
+&8s_nT3O$!`3GC)'@2oaS6<1<NU9?qj8D_7m8V]!)4A/U*>rE+[;E$CCPgbKrS+o')u\O6_a.
+XgqG?uAV<GAaE%=+G<'h+o]%;@WC-))\F=Ojs^Ie+gcu%MJ'E"Y#P]P@2[ND!fMiPAqeVDnN!
+C^e-h7]df@h3rl@]rJuaUIAoIio4R;W<r>V7+X%EM!`qXcL0YcXl)\"L@^:E`#I"25ig;U$>$
+IJiYYUGP/6PflttY@k=gHSQm=51cm%UXaW"B\'BqVFj.SJp,6p`mOO0TgpSHXAo:6:'jSG^Ta
+LP^-Cq:,6JpSR^o?]4e95T6fU@t?dfm%DNp=\hHS;c]pDmeF59K7Vk4GfmTXR(D2MgX_Sg85RA
+%\kfp`S+/74R,,a-64oe0D)Z$Ec/RhU`u,H`H+MEHO19GFaS0TR=4$dbn)tPHKp?iBeB^B9W:
+rkXU!S^\cgP.Nar:+V[F)DlQQS1p*o@?$':RlHNt\<*Oj2.e>=#`_9sXg%oRYpq8CkCp]h0r6
+Srd&2R+=>Ih#&"FIo4Y24'Qp$14:%2>nP9Ot>^f(PF8D9hj$%+gpiXgaM%D/$\l>&dcqS_:93
+riCgR1MlqHj/!LY+',bO>'6[Mp1qK?qP0Vt)#p][[i#o$F?Cp62V^r.XA_<q0`cE%7s20r.D<
+F8")A2:.amN[65f.-5u$PQ2FfBYM;:j`Ne?.4cb5l>NC_LiUod@d%FMPckcP.!=jbbX*91'/R
+l1L]QhE-qTdMu?BkaIUF_"NOO#H-dV'J_f3cUUmn]S@eSbE"6>,n^TQ9R9>GH6lf)PQt5eFfV
+H9E'V/7:5`2_-UNC>.2/&m1jB=Ok(F;lZIPnVV[3OFIg9@b8qY*MY,i%Q$X+_)Fsh55J";r4h
+Ugag:<u2\n4Z/0hE>KM^2%IlqrO&mTm*k@5_cbXRI*IjcMl_mX+9j6).7_:A2O:-KdPm9sP>O
+-eX58iAGh:Z_nW(][.L*`OI(WH9Z4NN2/4'4?bNc:#0:IT`Nl/GY!ZI^*haH]Bf<!:D+/>_2Z
+^JVHb'YQFBn0qPQ@,TBtjraO`dlXr,c]ku,%7kga>&?g+qZ0ZD_tZ8Hb#fc:Rb6M?F7^\X+S_
++SQ/R;LFGs05u]q#aX/g1';)%-L5&Hl&NYWX>Nlp1hIO@3jIZQ0qA>OSdW@i%U8RhTi25LM^_
+s[,uJDfW6'?<_*6aj#/FIG/Gi:OhTs:qK`i:?RK&lWWE%:V,B@aPX9Iq`+-i)7VV:^V`&JJI"
+gUuWQf2I'XVK/eM'4g,]<[khXEAY[b:)sADUO/CE7N5bU"'ARji+HDT3-Tk\.)nH&KL3KLst8
+=jg&PcS*<!q3:f.?dpjnfUj\P#>mN,,`FC;(!f&SB?^k2I1-[M/;3X=CoSHS)N0'-,0bu^.)a
+u3/$7@I7BX7rB\Sd$PQaor`qE7"rRC*UMles:;(ap$2cac7GLuHBhM'Yp[HU&$I\Z$V>#JQT1
+Mb;p8nBCE3MbsRGMUBACqUO=D)5t09kN,uY7*33E.7^77^R#l[iVZW%b.p52(EudZOc(_&m%W
+G+*?9`\T=H85mDdiW+1+4@=3?p#>uKqO2dQ'IGVIg%,';]Bndl:[;@:'gC?=r8HDb[+Ebm\i.
+joLg,>c_?+HGWA.;oZcYW@'`ALh9)g=g;bq5NTRg%N'WFDn'Yu]?)\6GG7]?aNI2=9_ZAog;r
+rapt^cQ:!6m5<V+;e"LiS#s;eUMY@ChC(c^>Q-=GYciFDDQ:LU[iO7oG8oPI.4M;1%cS<V3+[
+8F)tP<6W_0M>G+M`<=PQ""+8p0/?!ptm0c)9/iZ;^K-FJT][NmC%KeO85mdb#qO!-U4[OIoL1L
+%I:&KANC1oA2bn`]l@?=n)B(*_u%`5$Mk@9V$LSCY(6N,>=kj49\14Y(qZg"i61Zu$%tWAO5S
+[3O/&p8Y06mu#Xe;e#.'[Bjh#nDU6X-YD+,9cf/X=u.7LH.,\h)o(W3)`=J?$V2c><h@fkgii
+8oX%Rfb`d)Z)Nd*Rr$)5be_/%`M(I)``pNEug%,![p8UAUoR;%'DK#]/(?RSE81,Lkl3B*;#=
+Wul^RGT+>_!POpA_VqpZsh8;\9Z]<E;(D`V)bRo;[SkSIN9rIB#F&A8$sA+c,\5S7i=+J`f%*
+:Xnch8er4I(j0k_pAmFrkY4SXt&FYCkS<R<QG!4%Y#g@-=He#N9o$j*l=hPZmeka\&E-eA"/$
+A".8P^tA-DhIe@\a5i/4lPq2A4"J/SUQcM?L+>d!M?p1=PbNk+&/_Me:eJK!DDA$ZQSFYAZ2B
+cGlm82M>4\1<o#5mGp@e=:u_9Ia[6_Cdns`ULlORj5o;IFJ(5M5]%UsQigZ\Pf*2;`j+>@?<r
+Y#:=P4n^Z\+uf55JRh2dKa[A/pK'>7]p(YdQeVKD00Ouabq"2UU>c!F'tKFrB([S6r`Hg9/ER
+H330#R0Z+5(JWGAu.`30Gmb(6Rt-QN0j'7YF03`6hoRq3-L=Db=sY:Db-e:E>C.uSlUqBGtrK
+=l$Za>3nuI[r<O2Oa54qN,$T@1QdU?Pm'koQ%7a`AN>qkhaAftR['9kDM]aT!Uq@e?5N6cX/V
+`3(k]WK2?1r)Y9c9?/-q74Y5TO]sc]<snYhF8)j^b'-=XQB<A#u*4mA]PBWL(,6CBWe?B=ZMe
+TdMGSMMskWLPpj9pt_9$KXd(pW,L<d>cPce6sU-E:MD45dQ_%F]H90PX7'0_].Z\&Qh>e+\[R
+f5%IO.PB1btN[[ikaV'aI\S9A'IoTg(e5*e!+FP%E&dSEj0rh?;WXn,`@G$:.$Fc8a%@@ilE:
+N;L?F7Q#<JpWZi@Zp/`:Eu^p6WQ??)XFZC[S&K@2,P,W4%t+?:LQ=\V)P`rTk=M1*N_1N&_X-
+/[LL>S\4\j8AG<+'BFcc(q+rR<r_pf2l&!c+Br6[FRuk1/.H#2>/GkQIoZU0kA7,7FJm\?@$u
+WFaUt1tL%c;u;,!.*^UDiICA[u7C"&1YQb<;"\)eK#g[M7\&WpSZo2)!^unrHDIDpUsR1)ra1
+MO1C+_PK"IRQ4\afV3rgCUPUg2.tL_?)SjnQ1B$-g"Tj`6P$i#pOcIe'_KX'OI#aj68PG53i3
+D/iDGQ)%.#Wp5441hdVeMEr.c9UcU5>0b!eC<2go(;.oZ`);d[iEa6fRCG3T:R!<<*"zzzzzz
+p`2o>>>XcMn+A^"++F8e+I*Mf#4=rmbFgb42^YI4JD1W3)lSLanhS?D+8q=O(&faI"2HaLg8L
+m)ZikM]B-*Ufn76'5,+<8p\'c,o7[%NmC'42SI#gf#[=NZ<oHg.gE+cgkTJgb=fZH]B-Z'd#%
+Eo$]Ajg?T6&iR7_AN=Rzzzzzz!!(o?(BAc3e3I"V2Gb!A%9*I>!u6C>5XceR:m&n8dgsL>2s-
+\QM\l-<8^u@G\?E%>RncNCL7#aV[;B,E>NVLu$[9C.3#M81eJb\j$Ym#_@!6:/UsmjPf$N2]O
+)1\"6qeBIm4QmhS$bOg8%)+qG6fifD8I6`(]X%=?UE,t8t>i7p%FPq$\hMDD>3+2C5XhY>WU0
+Y:tt-/(<o\N80lBQMYa16OMFhs8M!]mSTpsa?D:StK62G1-*_LI$rOblAs$68Qf'NoQ$FVF/O
+][%Uq58d;F+kG/GpoE:i4T5#usgV$OupKZkrb@(T?_M4Ap"u4Xj;GT.dDl=/r\?<H&uH8TXF:
+?qu#4DH5HPosWMHnQA1t&4%(Br@=B\jsiF*]^R?617aaH4$gNaGc3%oZZEJ*T&X,YjRXsRg-@
+f==5,OP/\=pc*l/7oHO@<7Dnmo5KA=6ZAeH'D"th^$fH<+lM&F8:_1<bAQ5T`'zz!!&5poC;%
+=J8`b]@bX#V.,`i)KUdf,e-7N+[=NWhD4hqH)lO"k#3oXHB',=S)n7h-A]"C3D;_!ND4hq9D=
+0Xpqr7XK2D?4=ACSU*3SiIVD;ZUP:MOGgg^hm=k(Kd0"N(GOJbc!S'4h#!H.i8+JW'<r2K.6$
+'\A;tTJeJ*ge.Y?JD*7OTJfUWW"%5YC'4-Zg-@fo2Gap_%FdaugS=aC't[fk2HqM':`HorGb[
+k<Wj_O0Q=*Ha)n6(q&tMH)kI2N:.>jf<>#60JLe%]6X3J7DD;[l][F)-UA83?]Tf+SBW]'SG(
+"<G"-Q0D4!M&'<`l;l#UP7F;FQf5o(=gE#6>bY,k^"1R;A7"4,q#BEE$`#\!9sTmJU0RuTH6o
+KW!CfVl2e;DH9c>?*`*fS8%P0fn3)tQTf6e]o\.O(bS"Xm(J/dK-9EU8f/0^k^!m4#"/Fh!ji
+JP<U=ob+jiabFe-7PBpUB6G-d-8bh($nY`\C)&a]DP1D;[JMDTZMQUgW2>Z6N_g"grpOoT%Z5
+C5[Ek7J%"rJ^K^*;i8F6T9^6N\j:2k,()<q?Z./rB(+@.Op@GL2DBjNmj04i`'A1t+ue;f_RL
+%K"SYJR4eO]0&#]re")7r2JD*7OTJfW-pn,8nccYu8k!Eom3rRq<;Vk.T[=RX8^BmoE:NU72"
+mZB#JW%nDdcG3ghl.o5oE;RQX%Cj-I1n*[#%f)Y>Io;#C'1firseZiD&Ba5=\.\Nr%/f-6#GO
+<pj/D<cRmW5PZVi+o72/oTH6oKW!CfVl2e;DH9c>?*`*fS#LitC!O[K)OO[XQG?&84<&qV.$a
+kPDn2j]nY>P9nQ%NZ[C',::<Eo$R7fmE-2^8s/&XeXW+5]m6(^^)3OHPRW"BX?nIpIf_^dng@
+c"Tj:D.$r_j#1$Y[gi8eAZ-&sUoZJ:fK6#@%&-3tm+iYI]LfQg-G<QWj14.KnI;mW-E)n`Q$g
+]!JD1!9TJfUW@Dq86Xlb9OTDdii#do6<+_pW.'''=5"#D-We@[g5a)pGD[=R'UC(hf!D:'0L#
+%iC0RXuM;kXiV'#iT?,[:XjkAdRCHjBkK(q6>1C%9uEfqqE`OjTj9>XoiD@omka]4if7uG_7'
+t2K0Ii[LHsRG6)F\omka]4aR)2%+GLL!:D.`H9c>?*`*fS#LitC!O[K)5]*/8:`H><e->3Sri
+m#]Aj66Ehr1./nK1LlD;ZW9>:6a14JMlE>I&1D8cC_0e-7O(<a/NC;k#1OK_%L'2K4dPD8CUr
+s6lGX9aL"a[=L%XC*Wa<;J'[%-7p7a6#C!<4gp>R1"*02OiS"q.@<Bj42olm:`CL_@?pm?;c]
+AYF]D<Ys0>t0%:#^u^L5L_2R`<KO.nk;%?(>^&jSUQ2Gap_%FbJp"8.2u5Wtbu:_0K6e,sFfo
+n^*/e$WC'q);<:SWs'PQU5Os,lGqfEefO#RiAn40;1:C%HRPc$*#8N2ZE`ke,K[`[=PRg_5p^
+;;"EF4ko$E/9IEi0kYW;n-FjN6#"Fa.[_*uQaZ$#Mh7`1@\"GWuOaPrMcOuCT62h5!JPd-DUn
+nm+%Eq)OhSrpt^\TRt6>^*M\<d3\!O[K)5]*/8:`H><e->1=[=NWhD4hqH)lO"k#3l5sJU0Ru
+TH6oKW!CfVl2e;DH9c>?*`*fS#LitC!O[K)5]*/8:`H><e->1=[=NWhD4hqH)lO"k#3l5sJU0
+RuTH6oKW!CfVl2e;DH9c>?*`*fS#LitC!O[K)5]*/8:`H><e->1=[=NWhD4hqH)lSN'S%3cc;
+8BYR5-[Cjz!!)pl]_qBq(&[[ok^8$Gj5h2Y=eI]-NW6UsCk)K`Iuhl<GUdSD)rq4#E'lRAc4i
+s*kXOItbetdOmgtO4!I,MhR'$e=\f`jI2_^hQ$F6ra:B%BQoWe$1rXOG-#laGZ14X#2@)SS2V
+"EIkq`s#bQ%E]YW9nN'[_JLoE&6+FNR&sn>mBdL>]&4L.0Yq2-]sn2Uc+Y6UmNHYOjM'Qh`j^
+os7CA158h`/Uf[WuA%B+>G*,:]!'Ce%Es4%F]CMU=fPq$DK&)Za-J0aWzzzzzzz!:W&nn:R@d
+IP)i7K:eQ\zzzzzzzz!),^-"s4!_`,"V%0[B<ua&U%\L$26nB1Io*8C9q1E#r'__6X\-\k?Vt
+*lliSP%E#TZRnX0S=.uuX1_X"a\,Z5`<O"#U:2T[3=u,EQE"ZSPH4\j.D#p&=q%2BZSV0GfY/
+cS\AZf0%f=G@Kc+7Pr[@]1atgZd8]A`_-SK2=6k]LEC<Nd=6(_kN:JtCQ>&Co1m]AC`Z<U)3<
+;&oZbEMBpg\;O5`gnqSE4fHOV5fqdIE]'fkaa.4G+SG^]Y@.j`\TTI2UVbm5)%^u@/e8Nk)4<
+lTamKsn0Mi?SqUP#-+1_9'Zs0t>!^:TBHdo3Ga<5<QH%;#+q62JHM3NU8.WOOMFJbPcV9SW=k
+-!Q450GJld+13C8D'X3Yu"mg'$YlF/p][.f>:G-*fdm1JO.RPh7530S8DjYO#t8qZ[P)jIW>&
+a]5T7"N^c;:TQ1\Ad"0SN(mt[AW8/H)4FoLJla5nOL021:D?Zo2RMCkqeR2l^9Y&$,Wdms5qQ
+QQMR44"2?gMa#3'LF'pC)N:j0\AM$T53'1OHIKX3gV$ZYaJ<*f_k=3h/[OhktX&e63AYM*Z5B
+HbIi)k+:<[\QU(m(I0**=1mC88:l6g6d"oG'(+F\DHd[:XiDr4&pQ8[aW54Bc?*/l(us0"]Nn
+dY"eB;f44u5oCo'F-/>CVh?qB$9n-<=@C7u*GOkI1<7Td0UlKk<'-m^qjqIQUeL(.8Sen_0ga
+j;cH;SPGHCM&qd?#'@g:5BIXgZojehhC1_+(_^\p3C[/5LW0A7R,WFu%\P&Pi2-1olUX\L=^q
+@33=]V!i+HOj#5jJeJU08+SQbZ0[(?QVKd/qGremLtY--03bI;eQ_lcP$GseVbL,oDsK!!196
+hQQ?\\gP'?K]c:Qp*ACi/0U[6m#C2KQEW89]!/(W!]!O^`:M0'U[]&,C(]A)\Ao(JVqLN3Is^
+n[=1hnZ?nZ:PN$0GLa53$I!k%/ZtW,<X6!WL-5BQ9IP0e<51t'5p[*irYF0VlZ!S\5+SHF+V6
+@dC"!QZP^nmZ2umHg8SZP:MGL:F>'!Y]8L8=?4(B?W01_uCrT#C-d".rrQTA<27M#X@o+nRh2
+ARPY#O/cBLO)cV8@X2[2CTsX]a(JpJtL,;o1feh*tZ@o=YrE&^1Zb8<0W"Ou5;/`(Foh]DGQT
+Z#NaMfh*u)fPF*-LJjkY+)&sj&uTNNhR-cUj"^MJp9jDOgSIuld_D3!d!kV1c$XQWr[d[&cVq
+5+kG=*R`>Kk9P$YW)"X]OoYN+Nq[F-WC0#>&>:\Pq>W%GGZU5UE%Ve%<eNf1?-dH&#BZ88;@I
+d/S3'3Pm]>9Y]mH_5,LB`HAGjBe-fm:@!gOr,o$&pgj?hS[_r$^<W7,^<">^!,c'f17BHgPoL
+kT+LH7#qEfDg@?jL[KOutdq$='OldT)#,CQc)bhm:)3Uk]?c2ggk-qj`p.9BPBG?)6,8plCLe
+;'c/BM^"/Rl)E50EZWX#>1?-P(n_0M1[&b.15\Tk9,"/.&*(m[8s,c_TfOe2Am^V@>/9?9=RP
+PQg%f=;CES&3PPrg.6sd;l2J)m1K<lfml<?UUDI+:1WWN6#BkFfk";e)teT:g-U1giq!;Z`og
+P9=B&TE4MRW;TWEgad5G^Y\A7raL(mR\J[hii=\^T&@C7D,)c@X(:/DnY$58_Lb8gE/[Nm$%T
+!WHN%'+4dgVu1#po?U5Ih48M[[3cZFs]Zn<Piqo7(FV-O`Ac,1dp?$]JF(@V-$F^QBdh*.UrD
+AmZp1_@W#>>KbIn.D<ZfJ95:Eb4Fdk7WU,#*VMRblH"SpiA4@/sk"(aa><urUZ4/0;E@IX0$-
+ed2952mHBOh._GcuOS>D`;1pr6MlHLfg<J$nrKlLK;kTZT&*o3>`LrU*%9*oYUBWmle^4obS5
+fpQtU`1/t3R9"A&lXH>:@pgQkUt]uE9tE*-CVBpUj-lL+R5+tai2P4LCSVWM%qatD/J7fbDBh
+&JgpW!4\2T!,2'H*6Uj,V>!_ZQNfiA`s+/ZCK!o*Bd^l,"-P9Mn1]9,Cf6tCM"7W$!J@_HXi7
+360e(=,;jp/3?'FQa_aO]4g/q\?mLfY&V8ZX^F3ONW%B-B,fi`c6>Rnjo/Md[MjOp+-]B[?-D
+>72I`abB=7],O&4c1kk6XL`s=*QA?arSiRY:(=.'"r]DK<B[SFWS+iAWg9R6FC26pRkj<,`7O
+E&18->cR`h^R+ff!k[]\:N:/WI!iPGZ@3a.Xm$?okc5M'1Pfa)Ai)E=YJZBf=<c+k#$=re@e(
+9K!ZP[Qr2Yi;4`g3=WRWS07T*(ot*u2Pr`VIkLKJ6SUGazzzzzzz!8PFe!:$fhTFtU.)lSKlg
+K0+m<In?<r3#8[HZ\F1TbfS$9-n9=h:F'chSd`4l27^^$nmpM7qZLk0<"9KJ_Ht$[GAiDX)5O
+VG?kH]4UY#%dX7.`.T`0d3NJM>3=U-qT7;em@-q&1UA1A,cd2Xjp"*OQ_1hFr5("Yk>;)epo"
+'J-Sciud3[;.p<i,.`;RrB#lRiS=hpok1Su)?X0'-HP6JU:M(5.]Za!9h2s(],d+gf@Q'&0;i
+/mkU3j?idVhEc#)!pN:9*59M)Q-rmG>+>t0Lh^-d__R:!D:S@Uj2[47jD+!+UQC#VW"E7Kg,]
+uIU4_0kLAmcDM/Ckd::4`Nnke(arh6-MgGWVao]ng_8D0oL?+2>`bt(P]<^po%T%*JZ8o<n5=
+pV(o8JpY_=%Wh#h-&F?F/"Dq>ch&is(_M&s,oURg=Y'$87?.X;Yg,Us/'P[5.&VH/lu7iKVj7
+E$S&T`[^?fafQUA9LenAUmJGA]PFbju,d!k[EG]5%aiI3"c%o*K2J],0=[,s9!a@=ZR9ECjD<
+K3&buhDS3:Z+\k/6ZeL"`,T^7OuPFk4"#GBKF!F_@\mVGAbNYg.:"mXgsr4^0R_RUhT>Cn!.q
+Gu*_dVT!.YkP0pLg\n><?eDfb@VAN:NDm;MlW"Lk(i$g-kPCrPB<<%M7Z+.hN7H_-T\J/A-VN
+"C-Ja`O^J)kKP7D&+\V\0>Z#++UCthlC0IK#e(2D(%==Hu3PU/A''7i$7@qsKa:cC2oeqI(oD
+0)a#KfQ,qgKAd+$"6O]Ctl;F5:8TedtOpr/7G[)87C'eUh7O\,icp[<c+[4UM]<oS$JS8-aqG
+18?cr-gJcMWPKH=lkG-2*kt1,b=&N6=J#HhN%!tl0C9nS4F*YIdXQ;k;RcZ-E8Y&V1=GK4.D;
+Ut:T!VE'>BTeF<Hm:oMq-]6(d(T#F!(FRs'9:q0uks&Q%*\CqlW%5"P!/DJ_Ht$[GAi$Wic20
+bh!T!JZ!E-Y*70"MG`-'\#YSIerHY95Wtbu:lhfXZ,>KYi;WiX,E=)~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 510
+%%EOF
diff --git a/doc/users_guide/figures/cups_admin_model.eps b/doc/users_guide/figures/cups_admin_model.eps
new file mode 100644
index 0000000..2d4f37c
--- /dev/null
+++ b/doc/users_guide/figures/cups_admin_model.eps
@@ -0,0 +1,620 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_model.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 620 501
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 620 501
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+621 502
+12.000000
+621 502
+1
+0
+0
+256
+000000
+ffffff
+b03060
+d9d9d9
+c0c0c0
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+0000ff
+990066
+ff0000
+ffffcc
+00ff00
+e7e7e7
+6f6f6f
+800000
+333366
+6666cc
+808080
+9999ff
+000080
+222222
+ffff00
+808000
+008080
+429aa7
+00ffff
+00373c
+008000
+ff6633
+ff66cc
+7f7f7f
+ccccff
+ffffbf
+d4d4ff
+bbbbbb
+8080ff
+5151ba
+cc9966
+996699
+33ff99
+0099ff
+1a5f67
+0000ee
+551a8b
+a3a3a3
+8b8b8b
+000033
+000066
+000099
+0000cc
+003300
+003333
+003366
+003399
+0033cc
+0033ff
+006600
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333300
+333333
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339933
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+666633
+666666
+666699
+6666ff
+669900
+669933
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+9966cc
+9966ff
+999900
+999933
+999966
+999999
+9999cc
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+cccc99
+cccccc
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff00ff
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+8c8c8c
+cccca3
+8c8c70
+b5b5b5
+cdc0b0
+eedfcc
+f6e7d4
+716a61
+8b8378
+a6a6a6
+GhVPU>B\`C[YCj&iQ5a.,YLCAS<^cXg]O-L5Ks#iLrgLG08A>>cKs^mpR8E@638=GrdWZFUo
+IS,:U;Z'OtU/bBI_7LBGu:&CsZ,_CsZ\oCsZ\oCsZ\oCsZ]:YR)QIDLO,,J]r*cX<<jj.iLP;
+H7A6a'@;FYa=BJqU9Mo-_2;;^/Z^p@,S)G$^YZ.$TZcX8fUPG]qibto>r;Y@_$']MJtJtY4I2
+YP/jfPLgoerFN+LhB*+!Fik[KFRq>0fEi`(W6N!9YhmrB9J^6ObpFsOn3:O(1&6(/g[EY8GbS
+Cm$scpi"Ia)&(lYf21LC]J;-j#cE$MC"YOL:Z&qOa%/qEY;qCb-8j/&^a5\P4t!YKEsps2X<=
+\R2?_u2W"OO(KYFq[-!o?]@!Xp+gAp!@TqFTDY2Ybn\LJC64AM6j=skiTo)"jO4FC=DQ*I`.V
+o-o#rQD?(>m5u/i=J8G(SB482s9PB2pR<kX]Y.f%H2u-/hCjLrBXC3Y\;T(KB,NVDTj0;$\(E
+r;Hn:cijU*TZI>hTIU>Q6'DVZ6'DVZ6'LR!Q`grWOfnXW6Kg3S\@?<9=m2XHleTI%m@3c<FmW
+cil0F[*CN7D!r>.6Km<\/3.7l8FbiePg4km@`q*oJam<\/3.7l>HaOt]DHWE2^Lk8>fno,t\n
+Uje]Fg8k"C\+ll!&gT5Cl@H1\"B_?`EKO@<MEV,f]3PJRi0t?R$jcj%5to[mFmPJD,k"[ReaG
+g?OtK?k#Tb%9j(F)[Z56)rchbKU=`_3R_bib784SIQF(<%oVg;KCORhL/\aHm*p,(_1O`7<p!
+[Rh??E'YkgjWdYfRtjcdoX\%$nX:;r7jb\ftc_)Re1*fu$),Y&4>GDpKd.>?;McXe/<0<`&DS
+.'[lf)ahG2(Hsrtc&]VgbeG`2_64a/85me`]B7QU8XkXT&c\X<Z`f@'C\pED7a3e$gJV3>B&"
+D:/[:\Nr@ll'3k?,54O*$/%<Pm^T$93f?uL2=NjO+&!)`M:llQ71FMt^LCgXr'fG4h&=Yp*R/
+bh3VAG+Xe[MiU4fTc..W?>*B$b<LE2![Vt98B!A.\BXM/LFa#G(@nNr#0nZY!?OB3jqLAc*N?
+aX77_-FE9MuF]I'^/]oqYS%5A#`L;R!rqtC7LLr.5[4^*h'jbd!5m,-(@^&!S$`RieQMPi,l:
+.+5a.%N.Z<$b;;o#L*7J6$0O\a]94jTbAA2jAm?Kk*_g%W'?Cq_tE_S>2\,t$(ng*!(J,hJR2
+4@l``A?\p@2D7D<f\_Pe*WK9H22`Q+c+j3"IP$,1Ir?b4.N8=rAF2Hor7b1G$8pqoN,OpFpj#
+p(7P/FO;R88gc4Z9.c6inY?ep[M#PGQ!q)#FkkWJHQ\Q>t^7?i'U&NV_.;oSfmc$+]Di:WVb,
+RC^kl/Z>4nfFN`h"8[l=kY]J*k$"Yk6EjXS]c^f))a4mrcnnZ>J89o?-P-/4DW::XCur]ZcqR
+PX>h/1YWXr:AtDb'.\85CNI2JujZMU7BcPmmGs6RY-"\scdVmW:@$=m#Puu4;U[XL5UmJ%!6J
+!cEYqg-9,1sUmr&&ihp1u0oZ/')_dAps`o7(o!l,Vf(o0R^Q7@.9WE1SYNNDeC[CJF5CleQ4d
+%-ibqJ8M/W5H.t2^0#?\KmT_aB,_"4mL%-DY;^8[qBW:Zg'hbj)kAXCGd^_Bq=#\IPsV*CBIX
+O^P(l]YB',Mf;E%3^Rk7^d.USF>_3TS!\,_H<6=INQH;_YseNDjBJ'?IQ>A2uk8X%7`Obc&78
+I>m7Uq[\N'`ArS/_#=<6$WkT8>4TCK'eLORmKhlUFYHt)KkPEdZ%/V2HsnLAnh64@DWk0=S/o
+S6'Ih?k%]c-;mV*:Ke7]*4uMaU*OEVm_6($M^>]mi#taI'%rj3FGr4K_"e.U[mnSe)#G7*K'Z
+Bfu&<`G%+1Bi=b?A"\qke(3&^NAY)Dcr(r'LOlg!SJ$r>,_6Cim&tC,eEO<GA'J'GbiS9E-6+
+e`n?:bmWXkT9SB3h<8S<G_49s'tpEGniWZKgZ$t8raTA!>;OB"WZ[F;<piElD0&4:S?FR<*.G
+.r/lu\\2?:1H/cW?G.sk2hq+Wk.j4P>"VaIQj>OgD1d]NYsk,Ur"bV-;6?nhk$*=q-oe`6JjK
+D7m1S=:#99ZgNV[ed>Xjhe)[O$U\fKe5b`Sbq+,j+Bp+led]YP5q*"h/&[qekY$uUgQ8LL\lV
+(F,SEdkR1M!ipD'ZAgusHI$O0S?h;!+?+X63\prA*]2AL852[TW9C#N('cX^n%>U^j_nF1.!d
+#C0jLE`(g$eZNB,&,c<Fs6kkVPGO4`'4.J.:e*+iiuhmGle\Cum'q%I0$$a*grio_A*`Q(n=;W
+%LH_TWb2Am>M,!TW1ah?L*Vlm/fS_Wtp:0#_F0)Jfk>N+:*Rl9BbltpFABfi'GMP8+im2"S<S
+>ftO)9g2YONd]t/00DbA'd=%2@k8V!2]oA!)UV]Y'382lU1nQXIO"Ub2HgMG5=4D3XG,TSNMC
+qC="jR&e'QNVYT3L'$X;*bEK//@Sm5/[pkrCgFP[?5]#OU3qq#+a<6MS%PoKLd_ok=8k!URdE
+kP@n/?rR'K18dE:LZh2lV:OU=Li7X!Qp&19G>$S`m5?h'_4a$W6(2n&``C_@hHm?jD!61#a:/
+uq7BcD/m3(fS`b0Te?pXC*!HVe`:oR%8a7*o;?GdbPm39e?c+^it]3T36g?j%ga-l`b=PS_N[
+Drg.hm_urF7i5^i30;Mlu_2ckFaF#U]!8Pj2lmg;uS>::i(!mdH2"lDE$65D.68TZG2B`>B3'
+V=Esn?m.!kcJC:&PoEZ01hX'g+/j`A2a8WO<]\K+jC$V5MSOGZA+LYTU"0i7)PWJBNojmIJSd
+5$4Z>?srfkItQ*+@fR&N6e_PV)d"Koiq3VrD0C3QWKdd8oZnVQjG47dMmU4SNuh'M4SLXa/YB
+bfs@J3.0h%,@=E`C`_\mgY&*+CtP]2c88nPjM8tG<)Ii(fM"4_i`2&`F>aX*]]qp#HFr4AWSX
+!(HWVG7ZL>p'3^("ISb!'KlRfolm.I`7;PZ8)R.lq>q$5N0MXalkJ?^oKQud#n<mQ6e0g=X)'
+@*^hj2K;"%h:,mgW$h3*J&(*Is5eS7fPAe]@FBb5#`\!+e"BSgkak-PgG&^k&%fd[uL81)J-)
+!Dc2#=2OiN@'7I&)PWPjsD13T#n(MmTV@PVN_8OXU\SG-C`Z'/,@]^XCh@/NbIiu2F-omRkV4
+PrMEM'\/NON6iF.)eD,2)g#\L8d"(19sQW&i=kTT2^n?+m=,p0G(/MriKo]dq$mB#iQWkSH$s
+CWom^>P=>j[Y_&/?Vtpp[cn$dGnT3TDY:#a.bg_fDXMWHq;S7T%^p5)D;T*Zg6-*tjfpb)lG[
+r?q.XW92TVHg]X=*\rM/q6hXe,.*NDbYH@/P+nYgcnX].(kWNabtpH"[n8(plk]#qfuXZL"K<
+82W*)Oo0Mc9sWgTm+dq3)rd">nrjGKfBi\PPpK>9*\ZcqV:Bdn!2rl'M#SbW_TphSZXtYFB_o
+5c"G!p>MZ$rr&_#8;jf;IIWp,)hAR/6*TgB$f&OAMRA[uO>gN4sIE#t;D%D\ReSM>l#o5+&lY
+X8?S`Nm6ZaCjhmECX2D/VRA>-0jqgrAttG2/lXCJK#$D9$7?m"G7c.!DaoFe.se5PVqD+8(T.
+K\uS[Rt57RmHjMUE%PY+9)6iR7+AYOe^;C4o^Wh0X;bCpU[_;Tb$AqpC+?^#3HB+uFYb7gmHb
+d;md1^g8!9_gh:XW._9C1>h0"2j/%XHG/T0(*l**$OBcXMn]$[W'9:u'_Nm'!<X0oTM.1+IW%
+\"U]r+`??Spc!CIVNB?o#Jc5DH'63L,7_@\o(J`aIb.lkaR%Sg=n.-b/W&;]g'a^ZEnGq#2O*
+dT=55sIT'@Sm(o`V8.Rh+E\5-fj41oG?X;.WmbNA;CY[<<h6A<'R%uV90$,OWpJo7`?+XRJ_`
+Z4h=lD0ras2TGIJ:bCK:5V&p@c34-KdPo9sP>P-b0V-_J=$2-Vj-Y"ec]A`OOllHJ]d678fPn
+N]3i@WE\^D1r(^h*`D"_h2NK2"*ORFk6Kb4OW0X(9X,(3c_)RYs0R.MPMJ;*q6k.arSmZ/>mP
+Wf^%o><gY?r`VDJN^[$FHLS*ee^`r;dO=5WL%H>2aoo5)#7Iihcbr]jJdp/eg3_mPZ9^Ah"n<
+Q.g\HS]Yb@2)f18(T(caSf>!YjFu%D<KF'm3]2c>'%8]Cf[u./#7]l0q2a!GMnb>8mh/pI6.e
+,YJ%%peH#U*;CQHg9#7$0\EB7(JEEGEC?N%IQSs:SfIVXOJ=:ab,Q+X'r9_8hDQ!0!c1[DLn(
+r1khk8/(DRcg`^J%4g7l+a:`08b2R^X-IUbI5O3^;?^]D:8B4J.d$n;CGh)>e1Qq#Q`*#`7Tb
+A(b#JnZ7r5\W7=hP(f8eL/%@!?XqLX;P[G-*JIUBB;JIBS8m?k7F.i%;[u3@);@Bta8Jbo=)>
+j<MK7k'?Vf;amRcT:IIqV(Yj"MtrLdaQR])4Bb^-UJJo'm>LLa]EXtP'a4&5qJChAO3brf4r_
+(_&R(WJ+87*jG1hm$+oJU4c#6A=lBemV6CCk\,O6,O_+],$8<..C/&D<3@hn`>T.88Z:-)HX6
+7H/l%]A7qI/)3P]`ZgF/ng[_Ek"\e$&e<XCYh^XWLfb@u.EXuBr)SdViH#D4kpK[R!UcH2%jo
+OTVJbENPP\O[/@G7+?et^p4F/PRt%^k2*ZU*LHApC,T^4nAs>P)b/`3X:j[R8d^ch?LUI!al@
+D"5D2_S5T?\>]MDcF.l%h+b+b;c5e**5qAK30ecW:!AZSb:17\gDO1/6#l;-J+Z0/GCOmE@P1
+QlP4N)lCf5&:B1oO.08-<l8!c_%E"(EVSkX4%Y&*H66u2kHBM=7CikCK54_8Me(?.8m:>gHG0
+I,6;*GV$(j4WY0\FIj3cUV>ADDun[4knQF-nW+sm@\QrKBen1]2CN7'Ng.Hg$,t0q!BD@Hfj#
+J(mn./1Ge"aQc#l5Dn=@t9r@R"Oc$i7HSlSJIJhZ*Bs1[/YAUc\De:pcoGQ>.Pl4;G[k7G[\8
+f7/ei$4JA+%Sej0p[d9[`ooEeG]*9CnTnZUgN";D+1/od^ugD,%][G+f>V0\^O%Pj;2V#EH(;
+SBm-CM-/4VXhM$Ea6F8FD0u%pS`E8N16oeinS()VgKN*cB8^9.=*M]pf$XH[WuaAcD@<dJG(8
+4g0K0h&carI+[klL1S`u6dM`J?>PHu*shIlA-g[SpOHY9C=.><CfFA%B7WT]_/`3Cpfg*Nqs6
+;STb0i'QmjS0X7VkRg^:>N(%Z)j/tnJ[GE?=]XuK8%l7KNWFQc0-ZpmsEqo&oVbQjJrQ&1(^@
+WAf:"1qsX:+HgXGnBfj\m*:T\ug2=?nT/N2+Ru7oLM4+h:(VNrF[L)-Rf)7/620>:"bj/h[Z$
+C,$9!=4I;CCN`*VaEOeVa`g35Q0H2T^J]9nW:)PMH$@U#=Jb*O8.J<pCI<5YtGhXl.,70B8O.
+/D6*uiIfHacfm_jRpMCFO<4#Or)r5E/WU)u#9?NaSX+%0>qkekO#%si]9=[4[cYpiV01tOS'W
+TGN'(pY)u8sE/AV5N@eXS<5B^9TiH=VUO]1FB@Ydc!lg+>jZ=_j*b*)"&U0!V%eBt/jH8!0i<
+OVKK-];j(0EYE5[-c)4:AsrZ]u9SI_j;I7jeV922d4E>)1c<GNg?XUG$Y(YCe#aWO84WBQ'aS
+1@r^QnNF`=iYK%ij].NpFHS'tXQ]9M#^<SrE9A.qAY(qLNFDj=s^28)DU"O>4c3OJhR6ncojh
+)=(XGaU<'qnnT%909J?E)W7MGh1@,9B(ebZ^pS\r`KRZ"S`)P.+n`m]_F:C$^p]cRZCA8+`5&
+;N53]PXWtIL45C`anD532m]f`-NcFl;JUK0Z$hJ:"3F;_1-*uo=(*S)_dcEtQ--[eWG%o188.
+5PRYD=qZU\mI_%Xg:*Ds,Y`t79I3V0V-K#*Gr$u%f0[,Lo.Pd,Xg*C[&ua`>"p4'JXcInO\3I
+a5-86P7"t._FEEk%.IAJ$/uj"#^KX[u$gi03?D\4/I!Ho6Q!mMsehCea=GmcDd*+:Ht@"AVo=
+ClXNA^Lc=q:ZY!MIIIld!V,"DE$>I40kER%$MSA\4oo[S(lgB;1cQgWH0aIPrf.OXTd6`m42T
+g]qi&K8-^4+mSGKrpR:)jC&&-P91"@3S%5nF/b&-P91"@3S%5nF/b&-P91"@3T@G=qkr5eY4N
+)RBBmk5djPV$$fWkYfPc).8(LV#dedcrh!3%@Tn@dUg3M+8q=O(&f\r!^VH,@&$7)Z33>2Y$=
+'Wd![?1M'1?GDl"rqe5mM[J.9)O_ESd`!]K8Z$?ulm#$k9$(Vg5\>\qM,RuOj.@"ZH3nRVh[\
+raqg7,\IU5nF/b&-P91"@3S%5nF/b&-P91"@3S%5nF/b&-P91F9?iETO@n9d$+TIcu]>)cu]>
+)cu]>)cu]>)cu_;V2Z6)=pr:UWa5YqR'1arZ=2mZ&jnC!>`VY!QmgMk9Qo`R""k^-Pl*514%)
+\*QWJ`,K@S$s3fjEt>3j0>?%U3:!F,i2bR<fZ(=noG[d!;iu&*,IN9e,ppn.K+BhX.uQQhU7f
+U5$#8Zp1G(hXb-k/IK::;]6%P8:f^[3'TbnRjTdKU%"0Ub=k?PBf[LpAMp^ofPX.<_=eq@)BG
+I!MslL`o1k*rFd>JY'Al0eQrXu]cs&7*>ubOSp7Ci>26cQPoM4%J=;%Y7gH1DjcHqK!1^IL$+
+cQ_27lSTKi_p"=ge(u_VS_$SDDZ#+*OF-4dQ,e(f_0Db.Uk%HSBnh9!ooB"07qSMn*f$W?(UX
+eYmVfoZU5`VFFEgom?X=dJ=cWP@"Te)J(SXo[d<N$F;Gk2g'uF6h4k1Z#25_+1lsTA#+_j3XF
+W:n7%M+3G_8c<M53EK"@3S%5nF/b&-P91F;+L(F?NpAnH%ALefjj6mDbb>2@3*RK7`K?ZjudE
+YX'(hLJ>Ga2X%FJCk-@X3S4fHl/&W"pjhbl$F"6sgm:Rf]0.=n]Dq)%j$bUEMH)03\C?29a+?
+bojFSrF,dkdSYUFcllKp7!g&*6I>_e^jYUS/!Zj53#r2[Wql8?3^=3LTMX)]BJk9I+eRn?),\
+_XVq8I@R-=\-hi+Ao^Yj4D!/&3W$'A.u1Q!&ikN+p:I^*/2X9OMU'2M*fiMCbfX=(i2)!Xob)
+$c-Z0@@AD'sdctGKKq?J1?FI'0/M9HJkQ*TXcX`$&_^="^OWJS2Bc^Q?fTG58FX\-^O@TQeJ8
+G_I4<h%R"c&'s,9MY#WT5c#])6+_(pP*cZ(+dpVB%K6H+EQ6i\Y^2\!_ST"m@GcM6J#[;hRpS
+>@AKtC9Wi/b[I7e'5oYk(kjNVQ?T)Y-f0o)fHW*rM@_m_V+cP5,0<1a[SX%[@/DTb@uXb4ZUI
+,m=HPP<Lp7SMLQC,5LWMm6@?Xh<<S0]cDcAi'iEeV][f;0cCpEY%<pLsA-q\>SB<l3;[B:VY8
+9R\/EWd&9HGPnlhY<DR(AhUW2@aP6S^$'dE==5TYWBH7L0$,?`p&'i)+hBaN?$F/'/GkHLZHS
+8]Wf]DhXcH5F?731+XN&m9,$83du-"bF(7,&CH)5m?oqZWec31^G>ZPXa-gAqY^P4[gSrG;3E
+j_X(`<uW4qEs5c$fB"'8.$'j*"S;afGM$4G]V'=D%_PP6pPkJ8I&Mkl\.a-GTi<-50e)k"0J6
+46g_gYk<d25H_lca\&PP=O[Lj-.n@cn`>Otog\^1RjS6k"^n+MMTq?9AJ,dii^\S0RjV,V7gi
+>\q#T77YSG/TfK@86K)i=l@:R$p[0IY\J'uT*'!PXY2VM3:R7)5gj):NjNXZ!CM6LF[A9IJh2
+1?lfJ.7tqqjRS%=+h$P-\i#4@IrPj!c3)m5FDKj@%0i?%BrPR^]rF<'4:oYP6nI%o;"=,*S"Y
+V,67dK*B*o,$C`E(U*SgI+Fn;/Crq>)njC`LSU\T&P;*\X3tF7'XOoWQ==/$aN!?*AKf3<h_1
+p3uWK3g.''WtF%Bp:oXY>dPk/h0*A=/frec=GifU2,JmD0"pfK:%0#M;M!NODig=HQneA=FrX
+aWb+3"rfHrp=_XN$kHt[Y[R.a+;9-5$eV>/m?;CY%-L#KJ1^j\Cn;V]q..s)%1hGG'4:oYP6n
+Go[`J[)!8D#cCk-@X!B+bcoEMTG;RTFL[t"pW-Y\IkdA^nrJ8GR.ab0BZ6dL'GI#Q=67rB`jF
+s:b0=g<6-4rP/fTFBJmJ.7tq;]eMb&:eUsfF$XeCn==0!4L9_A%p-o#911&_Te9pD$np/>K(1
+efu4K9GnR>e!&eYb/8q+*Ak-5<Y[R-658/S7b-6;gc'+n:'X2$;jCA=.GS!*-!#o=89RmSV9d
+[X[fHq8>")O/-Y[R.!2io'Q2Zq_/_o<d"@In$+<9M[6fW]W6YY>THD,tJE$k>B^,9DCo^kU*t
+//-..&!7V=Yal;/@2t!GPGJ<^[P;0"^<<nh)n:CWc'*\FP-E?BMDZukMk=PO,[fr$\msF*qiD
+n.o4/\2ZI29]<eq>iql$a,!B,,,E.lK"rCm:#/&M":2G]?Bo>AFWG]L")]oim,3,G1V:7hME6
+=$(nSI$5l9HP(Z5T5F&3k3SWCsW013nV;\^c&_e0PnDF'R$p8DY/h_TWn7+d_<>]5qCS*^c&S
+a-uAj9c',t/G!l]t`p=JF@Ika=0n%oE?3Y3^JLu-Y?[h3AL[@HGScijS_a^+1RjWgjmuK22lO
++Xi:Sp=9G3sfs<7hQ<-u>L9AcUS1YVG%sg4Kji5PaG5^ih0ZdRn,U0n73U=uO)iK&-%\8\d4s
+CtLjQhE35USlNRL->]UG]I"Jh!AA(G*BB^0&[5^8A;?.\Z?hf:)`CJugl*%W_h7a+"P<_/A--
+RtD)),M^c%S\)do./J.7tq]n,OKY7\Q."?-7h$C`E$V8D8mbJBK,LbD!bX>e%Pg,o\o7YZm\.
+lL0-QH;MSZY9MXfK@82_$[tD#&GO#<Z">8o46M11=@3g^kU*t%&Bsh(4behYgKo=r<^76_)G.
+:4rLSa!?3pmQ8_UFg!89P!B+bcltZ[,>nsf/^Njj)Mgu8+-RTR8_h7a+"P<_/A--RtD)),M^c
+%S\)do./J8NHRPC/Mc?M7/-Ms&?)!S`j.-du_#+qL7M+j9j6!:4uFa_EPgancm)E0VFYZ3f1'
+L+RZ^?[h3ADh6p1af:'LhEM>!`eKJ]l(p:6Z8T@jrKADUH*dU\BfAi92D',i['.33rKH>`!Og
+Hb.h&.)Z$DKu;h-Ig7Up&5[!siY&:eUSfU2,JNPS*O,A`r6@Ec_Q9GXoDRk,mhK^IFka`%p0Z
+X!nrg/,&s7<W\/k/h^dA-o6igHQSQA&'u(Cf>2BAE,AlgQCDc&=OXZ1M0*/[!sj!?C\nO@(Y^
+daY=3/d^&(VAq0m9a4rd+a2(jtq)h?$m6bc_P`g6i[irPA#P!uaYQ;2S"P<_/A--RtD)),M^c
+%S\)`CJ]Zh[IJ1OuSTD#A8f2G^V+A)kr@fW]W6YY>THD,Y8BUb%_>GS!(DCtLkl3>V6P83WsP
+D!/W8(dqg(,f-s6*t?m!^rCbgCCE+9s1FgK-"+>1Cp]mF)i<q@Vq=+7*?G3h;ddN*8`!hFc'-
+ZP3NN6>Cn;VW!jGr<2Jes)-GYA\PEQ<WiBdBP!c3C(1'';K2OOOa@%0i?%BrPR^kU*td;482O
+!Teh!,ND&pu<i?Sn(X:\euMT)dpSGaV/&l>@ITe@+].^@e1jVRDb@G)ArJ")?Da4SkLrVb2@o
+/oJ3o,)n#k![2]-<YS@@>fK;ap-,n%8I1gAmnCikO2;";bEfIn)mFXN=nli9K(H0fhRU^D\mD
+cmMfP!Xk=r#`0caS0tQ7N*G!O-#(,k!DPRjXW_JZQBgJt^F1>eBO0!o)rX;V.6iE(S6IH;\hh
+W<f_:oAi.U%(8HY\>9^)RsVnnj51Sf2pL'qE[OU>%G:.mIPU^f?2k,]TSj,\!Og)a*`r=7dls
+oq5a1H=5H_S@rI6:C[=.G^LEHkS+:*RlZJPWWqZQlhIdMMMGGk168@&A8cli;MFOpHjq`i]X4
+`jI\M`&ic%F>u@.!ed)Qj>VHq-D"'1r!>-FpXggd6#7G!7hb1i7aj\qPQTDF`?nirMGXPs6t7
+-UFu&.CR5(5',=c>,>(ScLU%HO%K.\380+r59k!o<YX.I;1t_S&in@somR/FL2G?W7U&$.19c
+ep]B&+j^#Z*b52-o*"8ilS9ZV`prc"EeRqLEnWkVCjh?+U6dh$B(BT]q+7n^)Bp(*dKR@Ika$
+Ts-*gJfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)3_ofAp_i>Z\0QOm1XZd:5nF
+/b&-P91"@3S%5nF/b&-P91"@3S%5nF/b&-P91"@3S%5nI"];!Ru,T--EmQ\7@n?RobX9MgO[M
+EEtpcdrc`MT(%,?"uF)&CK:<ZL`TplT3.nBT(OZrP"#SeXNVQ=R!q#<`?sA]pqKu-4:\&r7r-
+gD;A8mrG,V$.p-W8O]ot(hf$819_LI[92dgOQT^8U^UF)<paqbBGdETkO*ON-dUJ%YrafN]mb
+lBPBn[(LXmHQ:YDc,l-<QRlad1(5."?O5<S7/W8C;V/&E2^?atHc>\F;5fDQGoa*1T.[#^L'N
+_T)3!!?:9Q8V]XG>4DLO.LS]AL/<Tj[.#AVo599>d3[FSAdW+Ih5h`1&N#W9B08gG,YK^g>,:
+8V:9P^kNV!a_VPjf`Hu>/'NX6ZhlY+<Tmlk+SWK.ZKkFApuCkD;o\PEnb(&g[>M(DPFR\n4Y-
+/OHcMdSQHPs*B.D:B\#k;1bR>SUI2O?Bc:`94F17W<-R?p\WYCK+0Pd-.\??B=/7db(B+;+**
+TCr+$?4<#<OZD*1$44]4\r\41:=q""t!B/h!]ZE/f)1[FH$g(/O0G5BCWB:cq<aZ:nq(sS)K$
+)?e"#_q(/c!5c"@e*)k(]1QgqBD8bHN9]U.)9&k'IWe+ct4-3c*$L1,%?#2ND!Jkm;1FZ;\gX
+Vk(908CJt7:%,G]'b#XFgm\4QXiWX'7digq)n6(kDhR2kVS=Z[2f()7R_6*[eMR"Nl,ai[K#H
+SkHpV0X2GkuO?Hb`UZY1oU7G-8[2B4X&Oq]<\ggg&4D/@_U2@_h$+BHiFrcC2[Vqk`9W"^Gf(
+qbD*(]?%V<CXPnP^'MgL#FBC4.AV`PDQNj6t>_;4H3]!]AVqM1Cq("e`IaD?BEfN99d)897Lf
+AX'"PlM+[)MeT*#NRXo71VkBBhP>;jg4HXq;2auD<;%o0UG&`]mI):d:<!$kP9-ITUM!$F]mN
+o!-S$uVI*QegW&9Ln]hI5=X.+r]sI-?Gi3ZMQ$'X-@D:6.Z8oI.`#K2jL^^@XZSos%`+fIo!_
+Eln`7JS1aP1`bf()I4M!PD[Z@,qDd/bml=O4f'4_L'K^ShVBsuiM@ZF5!nhe5.#`oWL3$nVVW
+laYI0YX*1aluAhR'0Sd8ObZ_A#m=Q+-)2P[%O[1DoYV-tn@6g1J^ZP8c&I+Q=Q!]09pOs<RfZ
+8Ta(<lq[bpMc"n1%mAl/J-D(ba.>!.j_daJ`\L:EOlkMcaGB84Jj4Q:):QYqr$FXn8G0;Zlct
+_1S<H:J!G`Yf-tP&oResYC^,N/dcHcQ]u6*(jnj,r<P$;hV&'s7l&LB+fOAnJ@'h(</P=u<5I
+6'&-4dGG]ca0Ddr<EuaJ/J.&TNBZLLg9Kl[*3+#?\.6+!Pn>`.^3@kf#Fa%n@.5UuX@(Jm1j[
+AQFT!7T(5OG'.4`6@<_t."_]Uo):7""MqTb1G5'BI&fW4fd^epZ",LYRSnS>f1X>[CF.5h@O.
+n/:=ogr_$s6C*Zdq<4]$VFIA/Y<hlEul,<g#oCjJZfQWMI8TS87Hm]sc"Z.Uph@`YA,.^0@<b
+L#0H<4uh2;AP)o?o?/45]?f/fLUbMW=1]:k7N+>7)302_"L$!':H3;J;rTTh3DR(B]([S$g(R
+)kNQPpcSl^q;]Z@=>u>92<krUZD433)=)BT]0dR`p@o^TjEZ]D@QK5.U2MOtWNM45!o&m<B2:
+rs@N3!sMg_nqPNT/Xd2@k;`B0-U_NQlWb[,/to;\9YVLEP$2bX;5pD/"qS9R/9^7nU%Rj=Ml:
+0e-Z3l$epbG%,>lSV7G[SaF7QkT?amMGjL1d\kUj88T;O<:\<]&]nQ-/BO#(9f@LJZ=R66`mH
+M&^!diL6V#Um,,(S3'`E[8e8GB],Nsk@>u^CLhEGb@8q"2Y?)dDK31RQ!?#`A$+m!`V#3>9BD
+%AoD"HBK[2aNDUh2r!i5C]-0nM1=APN[:0G`Xgh&3`$[Jurl!cHJfsK21$(_03!/J_>gueX;m
+Lnh7EDfQM8kY)2.U"M23uA3l=:[E699=ib-C8*CGMd\[7cbs,L*Oi!<=fT,=_"ka$@4X01!m3
+8c\g9-:fBZq7<6G[uIPY!q.0o\^RU[X<m5lJYC0[YdFZO)6=jFapI'V6oMgGP*4AH8N%>.F7L
+#0g=B8#4AJN5;]g+bE72caRcM/e9KYO3nRuo'#>[!c7Bf5?6$.;MI*S6F'at/]3n9/;:3;EIl
+lDU5067"Hc/KVi+-!*V4+.6@[Y1Sh2g%mRC.,>rbd(0f3"qCk<e!B_u_[3-3\>DDW<mP8L9A^
+7uk=)O#T&V+hIW*d$ud]hW^A5<D0pPGg-NUMWF#CnFapfJPB?5mW&b#_F0)Jfk>N+:*QA#_F2
+_b5)0*PA(4ee*&;iK;Ofdm;"%qB`_"oc3KW;^2*J%"1h;2>=tR]G$k+kH`FeRPg0NaQgeI,dl
+$q9Yhc\egCOCoZZP*/c0+\qB`QnYaMB4J#>&_%WA-%6oeKmMdCt,1rj,r5F/SBA@^5^CkND#X
+s7+,O*RTQJ(I"Y!c"BpcH/8P0qiLPgNT%"52(>"BWQm,fk,U&e^Rq+aa^7sF+WobebCXS*X6)
+]P=j@t0am2a)k#X!I3^\e4B+`F"YfW=.F1qcnG9YIp)B*9`4t59UVqLfEk1BrU&(9Yb2a+XS4
+obHUF!`n`NFXNSAe?o%eR<6Xq:Q+Zh2CRSW+'VSOt5(Q3GZjFrVDj),PQ#sj65*_G)rp5gTjt
+J?o+V#foojHe;`1b=i!"gc%Q.6pS!UboLY27Zs5F`X$qWpGPUn'o_mYc[pOX+IqdQf\BBu<[,
+%[.ri(BGfQ7CY=juH9223pcZ^=V@,&D<Le>VoLZ6;OX!8Gc!dZ#lNPXBb[]"te4R3eUd9q,Qc
+HT(2aaAkH"dsTDQek+*kGd^'$=YkNo.9m._q=r,t!S\Woer;;N`d5'noCRHrNS;*>c.]@ud:9
+VQr$<HIWrOF:B(O\R/"%J=cXts9hMjSM1i&C<-N`&nJ$o9/B=fO6bso*V>0Rk0q832"^"<#IZ
+e<Z)1]M$WQl=fnfZZ>"9a[>cST_;<SS-BAW;0*,C^V7GZM*AA#h62/2hG\S-[!X&(JhBfPO^H
+QC;*YrBT^O?k!U^(S">2B8O5-cV!:(3>Q-%p7MTbJiE6i23aR'>4'-hg\r`fhH>8[WRkGP8_L
+0h5R5_0H,fYno/8V.^UM$XC2HtQYEibOl5([DLD"j`O2_&I@n&hu=<c^DE>qAXQ2;r1:JVb(A
+;Dk]3\](cC3nnjIdt2m'XZ.8:<^oF"6QlHac)[TY>q*R\<r,\DC9\ajeNY/>]M;f)&:]0/;dC
+PQc".@qipU"Dr?.[I!jLLn!8A%c[^1(BYa)s+oC[d=^VdMf:Qs'/Q%A>VHdhl\@E00jTZI>hT
+ZQj!DS.ZFs8%3iiBOI~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 620 501
+%%EOF
diff --git a/doc/users_guide/figures/cups_admin_success.eps b/doc/users_guide/figures/cups_admin_success.eps
new file mode 100644
index 0000000..34e75e6
--- /dev/null
+++ b/doc/users_guide/figures/cups_admin_success.eps
@@ -0,0 +1,573 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_success.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 510
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 510
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 511
+12.000000
+622 511
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+9a9a9a
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUBo_2q[Y;Ws2!807W/HXgE?UL8"7r-VV.:Us/8k*bG;R=:9rcd2$(,](Z+QiO_lmDI4H
+0LE:Z;as"&B#6"4%'a"4%'a"4%'a"4)Uu9k`Ucr\*1ll0XX@6$?T^7!RPe>hWZti)'dNcF5?(
+D2Y^/llK$p.kX5QH5>-$T2l-R$!a5`CQn<)`Oj7*g1/^'TJ%Iu6Qs<>$/5?pkAS2s<EWJ/XIG
+IQRgB*:7o5\UE7ZS*U>#1l@%PNS/e`eOjpPq9OJ%Y132-5/3'/\Qa9Qr4C]l%tX'"A$gZ"CM_
+Vf;d6Z(jn4D+Su-!6rTNJf:ii]b-[&UAN[eJ:>;cs@\8q&Gf"#X@*R;iaR-MYjE59mWJ@`tR/
+^Y'S9):Ki]rNnT);GcocKT(LR8nY[&(7Ee]be`4)sL^N[_Y-dO]n;-Z8U*)(em?u0:[tRU5Z&
+9k!UH:d$)bJ[X&/RcD$8I_%_QUF;UIl^U&Sip#0QSE['KhPgd<0LEk+i"4*I`Z/D;^OAD;]\)
+D;\DZD;]\)D;]\)D;]\erV?TR=hOS86h"19NSLSZ/GS9$H@*'5qIoi1]XhBhI/W=E_],XN!!@
+/l=1:g4.C*j)Y27j?]t0?@$QIs,YAT[H8n;58G`CG&P+*\YC9'U"D;IZtHm>NR*gX;Mg\U&'T
+Jf/?D+"'ppJ3eOH88dE@Y3=6F%6;h0f.SLDJE+_]!5U;;/KUJrk8<Wo)*iOkjI>o=\<EJkt.r
+I\W]IeU$nD;XmS`&07FSW[R"\?[<:["n*TT*@_&og]DK'KQCjVk^Ssp*;U+$_e5i+t->Petg6
+a.7bEp62p/Hs8Nd98PLg]R9DlpIi[S=8mYomZ9ZoFU`6)/'s;,!$318NXfqM/!RGQ,p6rHm:E
+b@X45*Neu#Q1V=KeEA*_`P5!(RJ0H7[eZZ[UjAY3gU8l'9H-)@[OB.kn`QlGVP?3#@C93ENaQ
+[qZ#-WQ"oB^+m6\.?GS$9]_Rt\V`CQB:X6o5rWGR`3>BK2'^V+3:`o5Cs<mk)AD:3n4PU_jb6
+T#R(dd>WNXkI[;X>(;k86Fs@(i\.BrW`%7s$.-b2/UlYSRdu()K'_rf=R6F?E,n\$M"h;/aSq
+/'Ur%U>)M^K`9&Z+R+ei'So8^:4bgCSC6Le^V;ug&eFk*<PA[j1E9\Yu[`iSb?>"srfTW).>3
+WQK.oQ0'cFhr7<ls0(:2R.('>f0nh'LOEI5bJ[LIh-l3)_K`rfX7?7V;4#8!c,s)1DO%C?pWG
+J(DB\`3R?t%.%l+j:4%r_dr"42L^^P7;>P#2/V11<-(#P1-MU6Rmed#>Ak;iXp^9n+aE,cX;K
+aPDQD=)FJS6@[\\/\E9epYD8Q$[>Yg1^\Ct10=CpijNAL.BiX58;j#6JmK8VSOH`PE49o7,om
+J$IiPk3:F2(8$1'8tr!),tJ77UM+^b@4;Co'.dfG#i\/o--7Dj_F,4h7>F\)crNN*O3UMpKML
+g](:6QlCqr*[J=LUeQ.[//LRtpD,`YY-.6'U`_>hP87["R<R4Rtn"oACa),%^[a9!#dHKGsKr
+J:\D,P7LD+\]rE432,R?KD6BsDf[nLaL2=_1EFX9WTW*H*5cde,<`BJTn>,hmJY[;f]D[sO=h
+`e-KGD+\\LCq_9&D_KbO:n-\\->o,C\!:YXVm`p/S!7,gcPiWC.@&XsgZ91P957,g/'b(^0dn
+'G<cUa`Xb5K-O5%\)k*n>FdqArJPsebl;$p!6;3rl7>k")YD30CYV6h,kPLNbp95V.sgWkH<8
+NUYZ3k95_oVC!Hj]A#OdRu\Mp%(s<@pp^QjJ6#'H,;mC&_9ouDIehsmUdMubg=2/[gBe>jX1F
+5o7nu-6;d8\U@K\CX,IkOULn-M/g3#,#a5C\;]kB/e@,-``9,\+IOhsO`3q7\er8*JSh[HO>b
+%#+LCqIG;Ba*ACKHku3N6Q&Faqr::2p]j`36!$UcmsbN1<NXR?0Uqf::MBW,;=C?CqI>gUa;Q
+Yk#`aW%@L&WKc/kb,ni3/:0anh0(_mD2-dDE86k^0D6RDo!^Gog9u.S"0\q"af@"?SoeaK!uG
+b+k=PjKOR*DM&DP9/q7l6#IIXE:T[$^i+5Kl7Q<.;d4R%%9bKopE_umgj7u#FWgWYM-Vi#>;:
+\mgOD2,O1RdsJ1mbS,H[LH(&L4+3VjLB0Jd2VQ_@^GQYI<E0_p]KsRHhI?phiq3O99/aJ)gEI
+AF$O+X^r,suma26rK_amMmrQ6M>p/Wr;:;_MIath*YL+J"Y:^C]`b=VH>=L"<4141&5]'m;/K
+K1\mM*k,e<UUH[=L&kFR20/@`#lY><W>B#"HtfR<?FDf4^8L<u2-iA$/pG)\;N)!eG8`%0-A.
+zzGU/d-eGFWXa%]Q^SE.<[]Cnhri2p_j+'37FZICdt&QcC9;"#JRqlRFmj5<YbhcjkDW@RXSj
+X)o:rEZDjoWaPYY:_ST+]m=*9sMa'o!4FR8ooJ$.66%h^RK\TfWmhB"#H]2dr1\Xdg9ltOd8`
+ADj5+niVtS.(W(TB2ftfu?RK^<[),#6n8-^U#Aqn`):9n0a\DE'IjI1k29WS%K$I+5k0llfA9
+pus/8rs3C7nV\]<nF&Uu4FC?#K-m[-$M0h1Ar0W6@MDA&i7t>%!TW-3SY<oV.V6RbEL5qs0Ya
+g.X0!#A`JhUMcN(CT;*;N>7n2D2d<WimhOpir?a]gQuR4)ucma8XqS3UBA!PQ-SSd[4V!i9j4
+n8LD3gj\(XPY`,1^YSnR9hHaQl('*gC5jW9)6O+3'NjBgAKJg^TPRq4odKSf5+HM,g*\\B=bD
+k#ko$[>T99YJLO@QUT*lGtDlWn96'b^fR8b@f'iUXZ]\'(bNo[;hY8WnH"B8(A<gA_0ng,7em
+I^1pj->)/LHa.g5:q_D4VP,6fTqgP<$hFt`\$W(^5+mYsf<@s90]dC%Q,<%F9r6R5&4Y`%0C#
+l^oFLL2%7V=1m)s&\6;Q7@lZJ&go9J\l9'MUI8EP,1.p9V$ti-+g#D(NDXZ!S5ZY9*s%`(-O!
+Zg1&73+Oe;j-^RK2/=PAWEna;SF8;`:3d94OkGN@O]IcK>AK1$6e'\cs2L)Rkc:i^?6+u>;u4
+k;kZYCIMGG7X:]m_8^MAjPB>99u7b=W#8q-0>[e\FhO30jn8*-lOg`1gBW4TasC^U?&`Z2TP?
+)u[#\@BIPRd-Xhcuj4noJTV,Pe:J[VSh&)IG;?c$SS!+:ER[-#KoOgah:c.9LIBfWW]l/Mf.i
+lkHf*-c,>uV,s0gI*,0S<4KWqY_m`C%G?)kidWQsWq<9AdNni?FC==Q,g^:2fglR4Ofh#hO]$
+LsL2m@&_^"SLS&mLp5D5ok`d#f>OA'Uq%qRf2GW:.FQ>oukj#!1L;.t]6oWCcYM2TA=3`dK/2
+/!\VDE]bgi;E^:bP/1]6:8K"gfi&X#NN4iaSQ$s6L@j<S8A.rVY-N2O$g5DE4mVIDU5\ZO41X
+.I.\Dr9mu(,p+0nX@1l\Lq<HM/Bo##$-='I[SRJ@r3`cPd@R/1[Lpq>6fXHfDFor5rU5%^B![
+rPCp$0HW5=hWX]eEY^^%MXl1FCb9_1&Y[ebh5aNi>VZmoQE("/[!\p.B_4WR2J)cmn0N._kqA
+$?5d7%YbJDQW[bD2Ns.bJYA.76rASWLVH)-HG`HNT\>uWGSata!%]JAJaK8L@oPk3W`XqQKUq
+nL81t[40-Zm&DOU\'qf@-J3B_TShDrsn1P12X/A(#%<1lX)um/_W9<4._+fZIXOVUp!*(UE(J
+dU#R>3IT%%]pa7$0fLX0TmP1TdtE]b[T2Y#ViP5b>,*[YXj(`6P<*BN\R*eZUnT.gTmP2#HL&
+fVk,Y>$<G[[lI>g#&&/q`hDb[nWOmY8aOd=Z[(_s$d7oSf.+);kOg[8J(f(JP#bJ(;e]f]nL8
+g-b>l&U]]afl!brii`JgA0El[^3h^`0R;6_KXn>bm04pH9%Dr8*HJT!&Vek+I?X!l\*mF1!H5
+<<7VG:0iX)P@`crF@q-dLWT.u\a_[sm48B(oI,[=9cLd]MA'_<Y:Gk`-)iYl-[CTT^B9laH2>
+(#mc!PM`CoVp@kp+2kB;u[>0\X._]*$m]&\9q@;mr,i5J+Y]#I8EXqGi;u#bG6&8o0uss3D-I
+a_f,Q<>J68U#233G?p$3W\TOWgKoYLr(+!CQ0r`:TDQ;4d#TH_1Ge@2DgeD$25f`YA>OKQ+U-
+)LgPgrX%Bn!eE](U/a.lK,3gr[)%H%^KR8Rs%o$Jlu:E?oYV:fp]b.P.H$HK&ES'g0ACJB<$@
+=D*Gc2b5snC5alRI3schH=c,*E9lI+m3^3/o#UYj+^9I1tGNRK]"lg,d+VBZr>$:%rLlB8oDN
+uC2%bUp182q.$YAW`g+T#B:"?/AqoJ4"Rnup6Fm^TeW"nd76afscAEGf`6Oc$V:Ej\Y.C<7gS
+E>p"d*E:oMF*&fVfsOWAmdQ2ELf*Wj[mMlZk6uTf,;UC/aQXa>o0A<,6#Vm+Fk.ltF02FD^$G
+45!\pP6/"+HEFSMCg6:kTk=MZO'BR/[]O`(UQO,Yg:!qLL$NPuIU#G'ngV,/Ngh<+cPO^H^eG
+A?/Gg!uPp^f![1Vu.NCiI,`f6\<c7V`<-Rl!24#5RAo;k=`N3Rt61#%5N16#\rUrlZuDYf5JJ
+5/53h$4nNA@6:@)6".YGc"7P-n?X&.He`D9s&Rt2U-?9NA>:lf<Ip0KWb:H&4u7Ppi5%PfX>:
+#gY,A;&*73Rp6@E@_9nM)cR-jtT98FhE9hASSb'9R/sDI*.XiV$_7W]UBA/Fh&QVoEAN'.egq
+r'r.f\F]X7cO7JdJuD3=pC!'@s/5bdKrC.2P<PbfT!E%j$.BJo-]<PC$K>,S:s1LbtpG9_%38
+nkNe?R-#XW_Sj65UjcLo*3IeVm'LW)7q:l/LROKWaR$@U.bM2d*@`p06I!TY<F/[*mVK/>8s`
+ZUD9OP9D1(%dg6(&H?'>L;]11,%Ise2oW/4mUVR;plW<FOb\uh!55]41/hWWDS1N=K&PTq0nG
+(Sp5dQ9%mq;S;$qTd=9%R++1T;77tl^>bj.sOV5]R2_eP.mo@c.TWQbmGndcM[+G#&_,WQaZE
+qB`+C8[e$YcYid&pV-0i:;Y#U+HCl[qHGe%5#IX6tk4<!A,E8*bj+k'XNW-,@f!K9%j0jS'Ao
+.(;Y4S@k&>q]J-Y5fH=V%h@!e&eG*-I744>j]GQ>bK^EDs4US/uD'Lhld2d\Df&%Oq45&8=pq
+,r'Ms7`$";<LK\e/D_ldF@qaUAid*7XAc??_5s,+0U@uO+V&s:s&#WGfbi8.L<tiS\f"eM*F/
+mi9&a=8c+6&hbm;0s<%k.trqQEM44&_(TV`7%o`d'B9],PQ)K"6tD%LV\jGZXCWC=FIleV9HB
+ef$;3n`!0Ws*OkmQ6W\TsI=jK^9EZDBEZfCk=j00S?Yh)V",P=-mQ_HPaI6]GQ#!'+)oU3CZ4
+MPSHP93/WZ]ENdqe>2nJT\-u-',G]?Y$hPCdBl:"@o=_%6UfO'e*DLhr([O.E0_*s%(D4[DdC
+^Z+HC1#HDKP?Vi2R0FSD%^>r'-@DJGj7M%r)kG)NIU=2`ZB+l'>NF_%4BLE;t+7Z)_[2<:PKJ
+;O*3j;*2LA;T,!R[bE8Z$*D?2o0+".c.$H'FXB_pKnW__0K20gV0;JoBf9%''TtF\/6'XX0)r
+o2I1Sepj-J\&/LDh0;OH_dLXIFG_kk/\Z(7Tb%U$QYHmGPin'^[D;GK*V].<:u4W<'uXQtV01
+t-N7Bn=l?Jku3(cWo%0Qdn`sT\A3j:RPDL[@1?7Oiu?"'M8(FB$rfp7>Ab&Kq\nA8D^XDg<Gd
+MEl3[.H4Dd_6b0XH23Kdn&k"b(^;E`U3_u_6]tg=R"H=;$eI<,D0djC=acAYZ3SS'\eWdIsQe
+Hg<Q!JZ:2L`6T2dDm;Z1qpADO1`UQkIS[U)Vp0&/3`.^ZjZX5+TNMf!NpF]u&a>crai!89\$C
+`E_OEAiJ.;PIfNOWO,7ZDe_oW%_::G[]Y'p9BDe1?tmtW<AGUaer&Xkk/*fI3gr'6A(ZBaF)/
+3SX#4\Dnm/15dcL%A@+j:?.RO6ncF_K(3=,K?(.`NFBVl[,HlZ[OB_*@D:'PkX^)qOY*bi*-+
+T?d!eG$5KlLIA*3&e7=>K^(Pf2F-]]0k=3ekY$D3<0$Zzzzzzz!.P'tZN\m%k=)"!IeX"q%'b
+JY2XiC5>6_KdLG;/5!8N<Zg;)/K<*iaRqQ&@kn&"IgHN9E<;&e%"Od;YXCsT0R%c3.4912^$r
+/o_9^gn'06#GOWpudI_:`FX9?=*bK!tWBX#&47$LTPqLF4.XSg;)Meer2#:/uZ#cOkBg:zzzz
+zzz!5O4!r)T+fDe`E-QhnsUfH^eQ:X*>5rMl?*66L=WccpS;Ag@3mgSh;RhGV,Pqaa+RitiU%
+=6***r1JYq?3"&2Z=b4b@E\KdWf:paD(i])9t5]I6#N9<0#"*^FWX3O9BTh[>,&J#2J>CH"\g
+RjE85NsH!Ys'mh\F\SNLeMppA-Ngjo?._Hk@]3Gu5Fe^S_95&;l_"f1h1qobh"f.s6^_'5rYA
+!L<n-:gJk\Kl;E%.d\am7lL(TX$C)i(44J))m=.%b?[[rmt=d9;e\!r4u]5?h?(?hS>5bmqIM
+sWY^8dbo'+AM*=<t0J`sAI0[dB`r.I+LGNHseE1nsR\+>J$)q=e`[/aaGrK$l?4bji\YqF&e[
+E]I4=@+fFjdglO*?aRA3PrZ+c6k=l:FFE2CRurUsID^>u9&F\_bf=WmuQaYcR(-gG4!`OntIO
+H-f:1bmt]#o/Va/&7HBCDt(Fs55JTL/@b.k%CLV&QESTLrIE8/0?YkjFe2+=W9k&hh@c7XQJ)
+<=z!!%Pa#(]#:h<Aj0fIHgXmnS?4zzzzzzzzk2;l%>kC:ok'!R3N\@o*a3K`.31abqg/G0^0i
+!+,(4"=]I7Ej_Z?)(*lT31oW3b.mPO?^il`Fbp()=qq;H)6QI3AMto&Dq/VUnP5I=,qh<NshZ
+,W5-36.>7Z/O_\=-1crWYZWT*&nZH,]<1QFlV(ID[l^SaOS@rj/s_=15?MdE0g+_WY45Y0X!a
+s-f>aT9-<QS?al^`0.t;:(7C>j.O_ifM6\K)aO4R@)C@8/eB%j#X+G\j0$%3uc0/Lr:AnJWQ2
+UVbm5)%]JqUfHWn7hThB9nZ`E+eoekIOE8(4Js?e.sg'.6Hp2l0mC5RRk[ZStt\9A\XInDipK
+T3o53TD5;qp2&6/b%u]uZ5Ecab&c)S]iV-cn?:5h"-KLYQV'b.6[>!dh-[pH$d@D.T$]tRLS8
+"uSVT9g`L(PtlV6\.0/I`[fc95$/PcJVY#a,GTT3,BBbQo7/rVaTqhu9>,+47>KmDj(9ep+9c
+3oiAi#UZD\gI?t%XDB*'Nep/#M\rN>/I%J77W#;ZGaicn,RVb[>qgULHmHO]Oie>dDaA5(:-P
+":X.XG(9McZGr8oQh=9A4s)pJjE"?CpZ'Bdm]Q&1g?W&E7YO?S5k<gV@&r4YZJ,8\kLop40TU
+pb*mWQHHl*B1]ge&Wn2&%+_=bYaio2P"?Wa[TSIGRAV9#aa&\>9Q&7ks#P4Y-sen:<q_XWg[.
+XfWh515sk'N5*B8ZD5(#'[$[9@-G`g8ZYF!jgO-DcR\W4!`bjjK[G>,(F\R<]7F5u&`AttKH1
+iI5ghI+Wm%hAsPPK&4?Q8NU;.S#N4GH?t5P\*pn/6peE2"NNBKlADS>be+V\`,nfFR2A)5;;9
+`64GrH1g<+Fd/q'kHp(dlYXU]8$eYPCPc,,0DZsO*h;kt96P/mcRA[7jCrJ&XJe<FjX\p-T*<
+a<\0U'FN8X]^KHG*<Dp$gYc5k%:!!'37p@SW5V34PfaHs/^\]l#>?=VV8Kpgl`/tIl[jMGgS\
+f\;&hkn=rLiMFXhh@>nUl^Ws:F^C+K$h6Y[;n13(sQBo!]<3r\RdFl1r4%CQV7>F5ne]#3.q$
+XiUC\El.9;N;,2*[2p2<Sgi>33;8r<RccVur;JjmW'q$22$MU[PVR`Y6H:bk7>&B[c&k6X)2S
+toTlb1r.?t*M4ZpeO<XjOC"<cXqhSu:S+NK^)2<f6.YAkhhXQ4gn-J`\L8EP*Xa>\iIXCst'(
+\e`#-]B$_[mWqq._s(2;j9O2j?KR1DY.@[RF*>==DW;-i`#eT_\P$<sanRprc!;j5jME5\QL=
+#1#:!skm1h(Fp;(HG19T*#c"&XlY8(=\P"S%5(O_)bLq?h7/G2)slpB+jPr$gu/DJn%+M9!T@
+TFarB-"Y^X^r+nE[FBIQm-mFe02#X=:VeZ4+DZF3/8cX#W$3g]=cK'7)sG@#_PR7?MH2mD,G.
+,Z09>l32Q6a/shrtielG;ercV&N2hkN`#BmMJ`SX7ZR*#8_(*#E_e2h`G)K-;17,dE[EC)`2P
+p5<+Vlj]N,6*R.LJA7VCST^?F3BF>S]ai)5i]%iZ;2:o-P#2JrJDSL7(u72V[U2rOCO2gK@A-
+Or>]'Fe,3aY.*Jrbc?_L^-um&5$%2fJk>"o9+G'':)Q1/,1E3dK]CJ2EQ5N(8lpaX;keiQXtj
+.?%YSi07<ohN)q0gK)q,--Q?,\=957[o&4oZd3Aeb+Fs#JY0D]WXI<,9P34.AH*4<+/+f_1JI
+RQPa>;R4c(2Zc57"4].L5_oBMFg!p&sGjTa?RAL-'Om]>?5BcLL4t(g0srC)QGJ%+N&UW3u=i
+uK9;$Tfh<TY;>?tJ;Phd;+LGt,"XeNR;FH]^\m(1IV=BLt-5KEOpKD%[9'dY92nfEiOPfp3X0
+#3tbO<9*.Sj-iH\maS].Za%Jl=h5;IA/Q!!!#ec<W)[\7^jmVNos8]%HG;0ea1od;?Ua3aN]<
+2.(s;EQueQSMCCei2tLPCSWbm&+7Z$QUIYD\kT[?j0i_OZI^GMCJ@>8"=[XtXh^)79m.rl]cJ
+ME#m;m4^B#^FbXm]=OR,@>\Ki@Z>;YRg$np2tY+\B2%GB`DaMaZ#AX!Zf@j@_ja?3f1b^c7"U
+,>$oOpH)qcb9Z0F.RC*2&'c#9EFZT(ERo9#L/]58&V,0)1uM4"eq.SW3>O2EULdWSPkBaOTpj
+e1MR<p\PkLa;&SXY$dlq?F^AoVc=433/1gF:2,kg,08YJea-4NA`@fh%Z=CK"o!U-10]/)6`k
+1/*a>'(./XJkebA*q^KQ6$0'PXAb5bE^cA*;H&`4]Z&@:AR:#T=2#J&EV1;>6On"FgeXeTSD0
+;kUS6QUb:J0fMAuzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
+zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!%PaQ!XMRNs,MZiX9K':ID,K/&CRu!maL%:I
+WgkX#n?>]r4t9/4!e7^*^tp-@S*,SNiBHrlss*l3r[B"gu$&:tlt_[bH%F[B8'HY3VahGJU;]
+dU+J-Q)dZp%J"@!`5.1:pc0pW[:PJWir@<eo7-f9kF[mp6Mg:\^*9te(R<58\qA_n"D?IM/\$
+gAA_!n4krPos>nZM=X-IZEWp63k=oG\O`3"D86)[no4He"[YG)skTll*cfZq@GI)Tj$(?46E(
+2A1485H8In4!&QUu&]5@`X?KW,5[OQ>+iaUUKd?T0F,,='J`\1'neWC9a&Sf#d+l*Rsd@P^?:
+W[V])gZ9:"0LYB2qVj'YcgSE(kmgE\LX-22Fh);/h/[]>udULDmUo&@%C0N@B69oC+_FRJ6P#
+>D!#AN(M8.@qo>-3PZ.fBeU<'QZ%f[rhi@;C2;lMOTZa(eO:Pg6im<ElATVZ);R'jFMh\e9&9
+2omt30*Keur@.B7_b-An<M`l()4<oME`7#-@T0_[(b)cBNRa9/edGubeh_-scoJ@FbI6t'^7<
+n^q!GgmgH/9t8VaH)[S;4nmC929.O@!\A#Y,=<6KFIji$N=HEgI<P6>[UZscUS;Ca[P2Bt<,=
+&@ZFrtYRN[_3DcF&HS>](M^s6*t+"rDK3PcVEmcAkX*lU,G/8ZSR5OCF5Z)<GS('5H8(IQuse
+D`O<&cKeHoi"q>D'>;7l\*EEP.Am;@4VRFnc%EV"G:$@tue3)7+%(^R.<GU@U.S+/H.ciPo-T
+3-,l%Nu$GKP!TU!d6!9$J""dYq^KSR-&7CgJl7XCftJ9/YA1K%d$f>Zn>n<^=<7KA,1>E_fjj
+3]/"EQ;((GLM]e'?211P#r4'-Wmt].(dibcD,>8IG"qMgkG2.V6EGSYTXO=885Ir2KrmCYeuB
+[to3uiT$:acRpXI6u_nQSU-Kb)WZh!S0H_6S$Kn.mk5>^)STXNU"9=<mMN;:'E@c7%u%mMG45
+8C</='r*orN^V%"Tt>$e-;MbfA"qdn-AGI<[LI4~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 510
+%%EOF
diff --git a/doc/users_guide/figures/cups_config_printer.eps b/doc/users_guide/figures/cups_config_printer.eps
new file mode 100644
index 0000000..8d2626d
--- /dev/null
+++ b/doc/users_guide/figures/cups_config_printer.eps
@@ -0,0 +1,675 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_config_printer.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 618 994
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 618 994
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+619 995
+12.000000
+619 995
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+9a9a9a
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUl#ri5eolasZM/Q453LQnb/ED4V!]E#Ij^L;4SG_cGh%"of!#_\R8n5o,6U[n8RP3+If
+hsR%KHjMTc0R)WW=<:)B]*]!@"0T+Mq':8bfXihgej#^2@,?H*b,&$'(LIg323R0FQ*O$t!^r
+eTT2q-0MM0AQ_MIonD)oq>Cd(R%#h1l"H<A-$C3!.i1l3`r&'@_?gYXG&:(%B/Y7O0O9g+?''
+3:Ac&.O!&NS51Ip2i&l#-9Beb3nRL@lc!-=/^<9r209og18m>Eqc_3UiB^g%#M-K^p59jCcSF
+fFLQFLqRR[Fa_r^mEi/>s4m)ZeS13&n!=o>)fn(m[6**iWQsXQ6la@<NMjqdFEo;<jeTc"4_#
+'S]LT9CK_+m`WV'qjsDcce`m>%dV!(=`0VL!WA_>jQ8#6\4]?qj0>PGXdf3I&=\t*:6$5'Zlo
+!h_"Ds-YH0M_QfJWtYNE.gcZGE*FXqoP54c<DnQs2j6K']LF2W?MFcUC2/'S'm(5MK!DbQ_#K
+6pNW6#Z(sA!S%/^:^n!+rVIN6&siN6+F"lBG[!5EJo1+mHI\>\W+O0"-RHb+mn.P'Z"a]Okk=
+Q@dO-=E2lta%M`"#4V,)+I*5]%noLVUt%',9A19,bBmS8G9<]iL"Q)GJ4Laf@W2U5%Ohjk$PC
+K9b&rV?&K=-/6;,'H+K/&!KOjU!a7;G<sV@-NlGWG5G@s0MaO?XJ<VMJDu$RA<E^Q3+GgqPs=
+nkd@>4b_n#:A`8%R,-!f9B[*PW?S?n8rqs2$CTePUVE^27IS)*e+>WUoSEm1H[GjiRZ=Ym@_a
+nXtjtF9BjqPETRI]aA7fmPbf9WH0NbZd#[B61coh3abbP^FR=&DSt<(D@3oENRO>W)OZLJb2M
+qTmdmcV%hZR]6fsrXhqT)a9i)ST0s?'u&^[WQ0mgC%Xs&5ik,'g.S,KQje+gBi0bq1I"Pj^)^
+("hO\ofmKD8+WMmhRo@A$[r7Pqb\7G],GfS=+V_;ggVk2c'$:)86YM/`[;=2A'gK"-CIr%f:.
+c1,(CD*^?2'+c-EeX;KXgg5&TJ%s%[c6C;[1R2O\IGmp\,K)[RJf^fq[J'39aA)cBj]%sOK/2
+'])T0\0<%B?@nj!4;N2DY@p;:-S\B'd9f&g:\S5Ef1`Oot<(e;#oGM<@K'l#1Wpp.k&?^Eriq
+4p(JA/[0gVd%=[)A#mXCMc)3j3sRMC4hcrlNpjg5kMs5Er2H<m.FR$8TWF;n\D(7+@:/,dOKJ
+hY?]T7?YW#TUML?b)<E"l9nn&U,D4I]>&J(B#6-e<irr]rFc/nbDU*)jb2R$5d_]#Kg0ZqqA!
+3/$RlN$NQ3gmf6G4(p9dO-TLq)$d%T1.llo-F*SJ6FbjU/>#\36pn[)6VkIq_^l4L_g-_E\($
+\LfCXqg2ga1Ok#<V>&<kHQ3>5>EH0Cje[elE$S!\CGOc7]0p/.MKBr+C,YX):e`Q^]*5pc[Bd
+HUfCp:=uR83C<^C=f61&82c1#;^:7rcU1O/.9=@)QeZ+&*DlTkGX/9q#`F1.mM[X@Nf7*Hn7E
+O+[ZcTST<j\il19IFBY>.^-W$WR(J^q1?\Itj,>+r*I9uXL.NN2sQMjL+(;(YhnSMgG+q/bTF
+lVDS!NP!21'<W(Z0-/SX/^Qa?Bj+LI]?LLm;@>]!bDMau?MDC]ci*5H-CaekoSRCIW"p;5Nd/
+6;MrN,\e\%j3;`3O&1sHf/qj3>Ajpkt9g(L$A6tqoG;+@rHV&FQ[co6[D"fUnDm\NN]n7tq(r
+aXl>.Y=.Oq!!W:"09,!XaaWY>r?t$+u9k>URD_<W^U,_)A(I$H`38$[N<u19(=7YDS2_;(QT=
+aW`=[N];Mh*FlNX=`BPphJ+;&cJGN\+I;.A@AVjWa[^Bh<-p_hGE`2:M_dLO>"FFK5;^&(cDO
+MKU7#aK>=(C2(0&&E8@KX9kc)Y#p:TUcZZ&?OE@6p>u17/NMVLWFska^@;j18OG2CWBF0^CG/
+2,Wulgu$72HX6$"E38]*g9,TK,LsFZ!Hu*#(9$,75hlEP]Fqq;#;Y*:jm6?u^LF@8(cNMkT6S
+`T$d`n#gaup5G7D_j8H19Gqc7ntW-8'EhgaHm<3&RX7p4hiT'Xl/.!KO3>q>WTAa`[5]Ms*52
+F+[XE//2JZ#=t5s7!fNUKU[Apq;MFC"8C@5[W#@^YPIt[64**P+C>AVR>2s?ft/Y;7USWh0p"
+rV8Nu]WG-(sRdYgAguL?T.=@KpI#4fcpqE3.<Bt;&rrR::5d`5p184#,7/=`#4+L>0f(p\e(%
+<0>$,X$[oLVWZJKO&,rM/a"=o+qi=MJTY-+H-#&08R!4N%c25n4<)UV3W)?@%AlXpAt<e\.^7
+s6nN=^6d\"O=S`uo2EsVs,CdX<M17D7!bWCBA4f2):d095W-oEnj`ZKQhC,l<(jCreNaerRmB
+7ns))-(Hg)OP\ME/b>5KdBmh!R*&qHC+K$_s!!S\nM%%#6LfIl(=nnXBQHd][&)OLu1g@*qV:
+^tVV<!,NZe`?1lTc0:5W!8%hMWm<?d]+<Oqu0>\/9iS#O&,brs"X#!S1`.J<9s8E:aiZ-_hWL
+7psebiqf<3Ib$1'E[XZ,^C7f>dm,M%Be#r5-KmYP<qtrGCs%Df6=HM]sWZ;uc9(&#=c.C2;4)
+j'geK12Q9"!REIX.kqdP=Z;;mNC^;O*WhZGV762#7.oU=pLb+7)4%k,CtPp757OZPLYHALs$k
+I7W[GM('ri4I.GVKP(-.$IFRhCgUK5Wd2e`WdQqM5!RQ'o'93hR)1<lbW\JWXO+_`k0e8(5*k
+&>YT-QNkB^,!8JRj>KrUX`FM1AT"-dDp"X%0O_QsfFM:[Pu%o8*uIKB;E/n>r4\TuQ0[*Og(G
+V#[fa5c]_/X(Yh-(>-D]&(g/s6Xhe/Y7e-s,5o8S",kq>$5nmBO$2teb%H;K=[M1@Q(=X=QU7
+SAtA"`e%o=h4k4j,Ocuubhl/"Vh?;4u%2WD7^$o=?5jGO4oN936]rB2+@Ma?fht;1Bm`YQbPq
+Mp_49mCn[3OtHn.QM[.)m5OUK]D%%f4noq<)$14+80'>&W+J4$BQHaK[/9i,*=fin4#YH20j'
+$s2`P;B/L'<*]a3fTp&lm[G*%'&SVVlKrVR+5Okm_lkqgM@Y/@:7oKS9]n5ZZ".^R;)MM6QV@
+P7'&YiljKE,.o>If+7OBm1&CYq#ai->bX2`=g5M*eriE5`CfR?4!qY@'7_>V#LeUmF>VESak2
+q]uK@il0W5PVbX26McEaE3.^V?<8ZldA;2:NnHj2)>!*8(P[DUdS*2WS0ptZ_OGP;>`ZD\siY
+C.P;P-0bc;:&onegPB_@^^LU59<2-D%oC9MqoK-+Dj=9\!n@+bLFSmFdIi#pm:DA_XIN@:;7F
+K_UG^4&&6laaTp+-`RN!(IZG32*e>uor7o7C7iU>D^"?Q@VW3r7[oF>BgSr96oQZ7Dp7&`b.D
+aZ$7%hZc:liZR_lEnBu(3SWod_kp=*?O_A647V`O8#C>?&$j>YaZ?Rqfc7B*g,OR?#Kj6PSbf
+93ml?fZ[,O+Nhm6,7`&rp?o0YG@Zt^DXg3Y8B.oT;>m#CkgnFGnDmZWt-c9cLbmk8F!q>SL2T
+8>V*#_dYlBG)E^RJ>iSn>5(1PCcFP-GGDW\2o>4`)l+>phVF9Jk.B>f4e6"9:mCAp'"h"W"ZS
+&&laQK^iJW)3_F"Pr=`s9/9_"L\JL%6f-W.oGDbsD*tsd\;&hU$lfqmJ-^,9jfU>b"R=FpkQo
+p`XlM)DhS\:77Q=?7tnOqBtCs(_&_YD\P20Do"?_T]2MQ:9#?9(hkactX77o`5h6m+RLHJ;<r
+'=,<PW"pK)UX8BR9/0FR'(:ON,.FRCPD^EK*rOuqO/Y+58(HAe]6Gj[!HS"2WN/UE/g?j1;'.
+n:7Ikt`<>rEB8F+E*S`H)#52?S]!m`u+2^nn@eX$Y^^0O]uoK"aMfabU%QAT,=<PtfV-=m4(<
+80CdA<(ufFhq^s+q@h(MC2_73a?2`3kOb2!q[\M&sIe7=7WBU<Mb'O[_u_8R;<Zre^_mO=`H1
+io>APGP7l'OQI5EE[r[h#RDMl=T^:b<0j/b8M2.#cB\?m91<3IE2W^jsW'[.\oQ8Im?5Y"]9W
+#I#0<Rnj;;jJMB4gHG=7^CFl4[q?G4Xjud]Y;$djhif2Q7=;0"ac'h5aZXHIf]N[V[r@@@>5n
+hOfBS>ABdP55Z]$,4Feq_dq';$N;@c/"'*Qm4ep.gq.>S4VrDV5=Kd(FL?uj?Of+cmpO:[9O^
+,Rif&<>'6(;t[p'4(=b%RcD0,4u=p:7f7+]ISEi0Bo)P<7,ia;Marma1kLZ7]!aj5hs`PaCm&
+($ff\bV&^U-\4j61%e=2`@_[7=Kp76nPV;Ye/Faf6V1/9cX(<LL<d;"[B@<<f%K'kG>\UP(Ue
+R^(/KDRp>,iCN#1YkZP'!F8oiR\?p)CXP2'gbK6@GprJ<PU9\eo=n-Yh<EE*'*tR>H/.6O[&)
+tLJ7)%O.6/s?.I'WO5/p^/K3FQm1\sh,Bhp3!fm8UifnOop["FR\Qa_+q`Y8neXd6F%\;jsY^
+8kGFl'=:bE&:5]fCc8<8rN&1o?/a]gWjjILh!->)PO5)SBI,jacSF.@/X[F;ifsqjAmPO;E=s
+/ZehR&sbW4;,;ZS5h]j&<j19m]Z6Z)L(*o4!6(G*i=CY=QN#uj7@8gc4u+;`S<B0:S2(o,6Ni
+q**sC+AMaGm?qh-i\LlG0kFi5LiK*K;Y/_alaaj$Usi4;N@_IG2S7klh>RtHHWl6Gq4op"#$[
+r$`[biWg-$]f`][FQjXZ^Wg+oK*-kfYUKVb!R42Xk[P$d?A[c2V<+.K/oB\)4#>B28V"3[!1&
+KuHn;`7HUC8@pPIE4Sg?b?)D;%]>5H;C%;=,!.-/-0PD50X)YP=#o_aQGcQoMU29+dZo\a`kQ
+^?W*%WHQWIS3HR613krH`%Sic]I>C23m$V9R]03V-j#i>lMXh#!Lf3*X$pLce^i:->Z?'2U>"
+jNdN;p7e_UWH%bsI[o="If*lH",gjaBNm@mgp-_$FU&s"F6Kr]FN8[ShFEqs/3!fDuZW`>@rJ
+9]Z!?VM88J%CRj/f-6DDn9f[b,ppp</\'1]G'kOI-Ni:$DYk+Me_$&53J^o5e%K#%!>b]JoIn
+d\>=1==3^*cQ"p]io$b#LNpg..iLGjAro`c]!f(HAIdk"Ah?t.M0'5N!qO^J^'g7CB`Gn$+IB
+!Xb]40HgC2f(I^N>+p4c!kD0O?p*NjA?Tr#luM.XbHUQFm5E/emi`:W5E!JZI5tU81c[<16nE
+`c*#1h&J6h\JUH'lgU7pos8D&?#@#&[Ron-0:N`lb`9;0W^"*;G*DV^LIY+K*;us`q^"%J^'9
+k1M``ViUYU^#D;ghmU%QP"X[RH\FM)^"ZC`B3f^BmF+h2gc<4eBM?WZ>!%qBthcSD(4jo858-
+DR$1X'PCr7@tMrJmLmBiU`4GJHh`@Fko\l!p!W=om&XAVUA<W`V`"s4IQJB>M]=<\^/ta]Ee;
+9djj1>ljK0D`NP0;piSH4*>P^aFbqW*?.<6GZbFP[Bk*0jT&cW7$g?kj=-/^>:0d1e[u[8TSV
+'g@SHsM38Y/Cmd,%L-lh88mGcq"`TLlOHBEG]@Vn?j>lhT/=/N8_s\Z(J3;SEE\,j'-YY^W*;
+QT)U8%4&Ub,9FeB\[Rcnp3,kji`kM'm:>eI&i_td<GG1Y8oIUD8:S%_bR;^AEeANUVCH&QW$6
+<V(H$L3Ec5!_45RJn$Ru`Q/'TNs$6VPerW/#l$hs0c>TPnN'C6[%_6?e`U0?cL\-.<Nb0#?sA
+[]rb2G3ADErL7.nQsTsj2TD.VD)*)NZ&P<Wsns8FDdY="jPpJl;Fb6p&0*<m]ZX2?,<MCG8s!
+:B$\.Hk=rPN&DG[<DVB70PB%/I0U&AilOgf?8]rhL[En<,E8mnOI0Z[Y[b03M(VZA<.qK\6[k
+u'`-N;r+c:Y]BSZM84].H:3=n6;K[0`CNPZ[XLIUgj@1/GUW(t!I3CVcucS`2e=931G`>q;Q%
+B"Gm(9eLcf-dn7PF8^OI?M4i5kJV:)>?!+u/<`ru]e#4n0N/.PC'RkoC=pd;dlC&r3%&9O`[Q
+9&>UXU5_a@W)r^85C=1:iH[OQ(U-@%bJ2T`&^Dt*,T/\+IOZ:U-WXeBo_Y(!D&k+eJ.,.1?K>
+=D5!pi0W8C8EC9\SUh?L1gW.<=Q&mHA9,29KRKeZ$.;q8*WR/P**!7KXYg[gcR*T^-BN,[5cW
+Pkmb_h3ORkS:FbP!e,24-ert1GSQn>VPN+ROb#6j<Uh<2C0uK6GZ!m*`FM;.B=\PHQF3Ajo<R
+P3e,M"C7ofZ"jf@6L34LOb=e?o7h2V:u+o+bt8+rS/ELSj*QdTVL<-:1lHeRW>L(M;R4BKDf_
+928EF94d<*jR(a1!tBo2q:p:$Y0;AN=$]d(BAsoLq7=QZU6es4\+Y=>G^hlc0BeaG=)WAR"7a
++m>B8t6]:*HnKfiT5@"^9mjnsKh?&gs:NDL(7.=c/`#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XL
+k'5j#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`BN6YLp.p']]HN^*3<1I^W)c5B0V12
+QC/GD>JalF0)?='MW5bJKR#j5VI(,npnu[1K*grG^cN,/cT5)):Sla..(<fp-[m5C!X&]nU'<
+7"`;KDj-Bi.Sg5W(5-NN1YQ5>%jYVP%'Lok8)Ik$8;D^c7c^1U]P+0G0;ER:ji'#1^M6)H?=f
+R&?@%i@K4_M)bP=i(HIg#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`J80T?W!8'.C4H
+Sg#)IeEJ-`(XLk'5j#cIr`J80T?W!8&krQ0'$b'lQGnX$8Xd@*Jh]\u)0M1/khs7$3)C&N%C4
+CPpd@GWN#R`QIK@Vofh<e]5W=BFd<R`6H4WM_JN-"jO7Prd@[NSP65'H'`rUg!"h-%B+b(Jt*
+,Ob7!hCLuP`a"q>=3@atBh1f#L-!)EopN,:o/q_IU<6L)8eX1R?Op.)TaZcsbrTBJTd2M\7nL
+R^F4ii=+l5>4h\^IWam"9bo5p[4qft&26mAdQW\W/.l=_/IeJq_qbT;&H>/Eg)8McA/:T3\nt
+IIKTt3C:,QAFee3rA5CEC?qS,"^36QWu%E[386_>XW49CZ2jPQQ-;mZC9T9+g97QF]";%oB43
+S]/R!l\!`s@p)=naQ@C*fcLoulU>YhqN.jJ@`DN+@K7\r)cJOSuBgj/a)cROK\J;>LN]CV$pD
+E+a3ghm?b5W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5Ik5W(e0<!,NR2*_:D"%5C35X^rRcN*T
+L]P:+&*3>3@W\'cWYXZX2[WJ+W3Z5*SdQ%MIAZ0?:k814d@B(oM>Hh]d:lT2e8PALfaH%dER^
+C:?NBoEu@u+koBdg<\)JEb-ePopdk"h8@qXr:K#kD@9e[/,t3BNKL`W=>;;,,$;kHON3YQcqJf
+%"N80gmm,QqB4Vg-Wu)D/JNc"BdG;FZ!dMEpWn;"uNho!/Q/?J;?Lk_)3p8EgUT\%?.)&WZ#+
+EUF:nu#1pWrat]p42)(D<S8,8;%&.P?5</p95W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5Ik5W
+(e0<!,O)9""]HZh,lR#cMn_(tuSd)cM`@K,@%+!)W&(T\9C=g-%^/!C4&>J8,1:CA._Y"p!3A
+!NHT:=k,oY++4q6T(SRdWD;")p/of/A+EE:S2S3XW\OD/:Im$H:MP,lLT8A2,_gT-\o8&-#-a
+n</3<HFX(Kdnfiec_$b&rL!/mjhT#;LFJ+C!ol]mu\C&Q-FU\@51e>8U\AQN>e6f$1d@Mr,a5
+SgAbp;E;$Y]*JXW9-*AqG7&iF"<Y[X?4?d[6)K,[5+kQodj(eDcu^2N?qQiO^"c--[F4lmSM/
+(Y]!eVW\$LX/Po_-Mc=2[C8$;3OL/'iC:?-"2.j*"6FHf'Ea?phbiQ0jG%Qo:^"Z^QF7TVn$V
+E'h<dX&I1C^@D+htVmGFUhO/]\g.G#r"D>(<hVXm`Bl'MpAoZ;^-3TN]W+[<mF="+Y.\!7_8R
+ea<I<%:E\G0l!$2jV>$Pe]:I;CAlhMC*7/^)B]*]!@"0T+9JPD,+ohs!ic8FTGepSWW=<:)B]
+*]!@"0T+9JPD,+ohs@T09Y0Q+_D/:GHl!7fZEWkL*p1"DT8!A3X6AgUJ]0i2^ATN]W+[1reo(
+'CSu$rgFc:i-mu5BX#$D`YbAWE/>Nc"*210;spLmIorm)qFlC85lj@/2iu4IP6n&qgP0(mJ33
+&e:h,*2N@g<2)2:Lb^42J@QI)W<,JJ&<bA1s=%qkm7%*:g1`G'j*cRcb#GlY*Ng]DPb!<@t:,
+O[T[9%,d,LmY&c<4n$Jj]k%iQ7]f2<T*S2*^DJ!S+'b)]qLk^0Hse<%In\4D,$YZG2?nR[Z&C
+:i/7fJI5@R=_=@2,1)cK#1`R5RqaKs?5#[F,R;b"6FDtM[<hR;:i-oD1#T3@H'NktS,uVF@]k
+j?H\dWm1Zr+.X'\Vkot&lRLJ>iZ[4/oIJt.C,.gE"*##rb`W4$0.g1!=TS:PE*#-'6Z<6L\hW
+CGd7r3@l%`.tQKeWrDj:p#FGW<RAIWW=<:)B]*]!@"0T+9JPD,+ohs@V_u,s*,R#O6<A2r;^Y
+,[HB99.3RC#CeD*b`gc\uqTmU#h`=t>m4QlGg>$L8[6$uVPbA4r82X23Jl=J)OT4';H4RI/G#
+WeuUe5=Ni>KMdb\TeW*sniEE%>86PB^B#2m;r$%t?g0hM4h3*Rte]9D_[&VXt;RGY]_R$$Za+
+?@C@1U"V7a\nYXU@d/<n1lndXR\42-8$sG$CIOS)7BHPYZX?P:URHZ9f+a-shqBn=:t,'<[m4
+r<@nsJ->5<J'9CK^*foTsY0pO[:;@U+io4CXqiCcRAZROGoe]=96Q>633GK+Gn239Cd%1iQj!
+"i$:&CI?.1B>*+YM.Db#O>liC.m_.XH>6;/Y-OY:55gXFH41@)62E=q$$(qQtf:W(9Eoq<"hE
+^5I6qc'[)(5A.$k_48f>7C6-IJeJaUtl9I5RcEsUndSUdXHD:/*l(Sik4XcMnp?Wbl4KHW[^n
+MT\MMY;21+B,mh4K%4Q@Wc]b>_?`;sN&fbq?gDeK17X<V&pocV[XL$q"!@BVrJGAsr`q/*7Y<
+b\J5L#6T/X!"i$:&2?^5\->E$%T<h>JWZ0a<J,'p']j;ai#3Fu3CYm9"pS"d;[p0d6'Q6E-c^
+`CW!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`J80T?W!8'.C4M+7WV4)$Yk1e_$`K@1D!@]S(E6:ik
+oAIhK5,0%WoXXgb7(>X$D:SJ5degdC9%?7j\.;,0n"kGJ#MIE<a1U''+GVS`n5n+)lh/C<@sS
+?7TM7WaK2D\G*bqX]9h$$>GsGANN/8O$&p<B`N%T#5df9RqNS"iV&u*S7*Q&-KOe]/;djFkli
+u72jI<.B3>K`1g?a'aH-WBR0<R"0(@u1`U0>'Lo>IL6EDUKaR.F"j.o3RW[:&<8-M5to;lceU
+B'JDld\7GU/V:0pRG^LHDdj:@JeKr>C+KtP8uOY>S5]lS.U,]T[[#ecZd_YP-u14r-er@k)R.
+k26a`=:Kp,loB;MYklVkTNWqoE6!djLG!B(1#dPQ3G6+(id]*11seM76,XTGGe1JfYZT\:lGC
+,lCH1'=PY!iVD@)cM`5J>J=d>\m'@V(I75/Sn$:O>B]B&-:;]&ProJ!S%/^:^ms:eGp1X%1iQ
+j!"i$:&-:;]&ProJ!S%/^:^mu@.Fi%qhL4YEg'COBE<d+!An.jcOQ^l&X%3XulN4(\"B=[gW_
+EUqlN4(\"B=[gW_EUqlN4(\`)<TigG`KCE=2Q9<GPed,u2'G:i.BlMe^/L.HlObXaP!fei)p#
+"qi%*5Lmp1KFt5LGH:E;h)H%RS8(F2.BqWmQ<nd3bZiTcT[YW`RFfugh*a6Qs$?Hjon,q3%]X
+Z4;\2ZiFg:(HQ^QCM>G5k-7K_1QA3n`MN)L9L;OWB<E=:RS"tZUT(CHiS'j7JI-8^`]d%Zu$B
+!&5U_NgkVTc,@QWn)ZiJnVaY8>6*D7Ks2Y`"L2e@BnZ4&6,-T7B`cb*iHdm6,5&"dO^3@p.$D
+"g(hG%MT6W+J/I&nkQ7bY"B=[gW_EUqlN4(\"B=[gW_EUqlN4(\"B=[gW_EUqlN4(\`5YbDn*
+^"W/_)P:5fRV4239Uj%1iQj!"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&ProJ
+Ypn48)Rj)\Q9LNh!7eAcMr0ZOQtf:W?m7N)F\Ja",>]t9TN]W+[2aa4\HCB&#--bj<1A`9@i0
+=f<,SdP-K/A0aX,#g#hc*=a?d65@i.%G&[*#leIqi,Zh+mZPIb]@e`NV#(^>Yn2(UIFW=-13D
+(b[E@8N85!So,J\qAF.)(8do]V`0fT^,M-Dlu;9!fIj6_8CBfS==81@i0lIE\gan]3QJAJ](@
+iV;Kb3=X'BrEWXe&a[EP.@i,?KQ+Db4e@5\"1Z5+U!o:^>K"7J&j+1s0oGb]@FE>.%mADaoC+
+PB]_%P_^=Mn!$2+m_)@8Jk]2F.B/Sthth@b$(@_8aOd0OlEiTN]Yr%(lseqTW!aK&FLP37L5J
+7Y8leYjje.\38&<#s"qBR&2AEFE\+)<WT43!V>St&Pt&l<iB3]/s_5c[CL3R6+,LamIm'$C,l
+@GEX/W+$rkC^W0TM$NE`Ui9-;:ofTp8F$Nej^fT^+nB:p.c!ic8FTGepSWW=<:)B]*]!@"tLg
+@LBW&c?l[3o:I`[T%Spj-]tSc-<+bqe*QUYHRsWSboOq-.VE=%Bdt#L/bd[oL'Qh^kPh[Ua\8
+\P7%-#NMZAWgMBBfk<Q&#<ZRbTXNet4<;Ves8d2]`<BQ,iKmE9)s8;B\A*JEo1ttkZ&\bVJ7:
+Ag7i/RJa&sRp%;!le7m1lWQ_kX7J2B\=BLJ@C(WhB_k`cb>Y&\1qaWE.LU:c&RBA36ge=)^m=
+=ST!mdfMC$c[#s5(H^bi40"RLGI-o_Cmtm5L)X':ZQ[k<]01)@U`-s8PVnq.%:>+=R;JpX077
+EVel2b)!n@8_:^ms:eGp1eW]^I2S+3L1STD#!`i6CgY/)"oUY=.A#4#g0C.m_,XHfKZ/Y-7Q?
+A>GfFDep`R6idYchTAD2I2oD(JF38aGU@(P>XuioRAq+!65Z$)NmolM7BEFK5)ON'WN&(TGhM
+&Iat#qc-1NdBcpjde\&];ls#h]+sn^'j[6!#dX)-QA>3Z:<!-E"E3[;25IGZR%Fi2L!^Hlf"%
+3Pq%Bb90Pf$IQCLAFL:t=JB(e$Gi27Ni[:l\B^Y(=ERj&CYJ?k?lgprP65!ic8FTGepSWW=<:
+)B]*]!@"0T+9JPD,+ohs!ic8FTGeq^;l]fb/saf]eq%Q?[WLrHcGig&^Fk.R1BZ/a:i1*CRKf
+e:%91eA[CLj')Q5PQ:e_&BjsCblAD^PH>AqN3</bS9Xj*T\Q5hH`muKd^W_#9Sn1K%?`rrL_@
+mQjgUKOaKi>/H<9qJAQM/8DkjT*hu^F_,e)6'K*3W7hNGhtM<a-DJ)50?:iX(F9ue]>g$2.ld
+6eep>IrH5t"W0T[$W2:Y=l+Ld*;d(LtqbSkWZ;o-aTQSf/3jEKt/SB*%NJ4Bt_95BWmK/W\WQ
+$JI"&NiH1/Z;dFtZ\&$*G#Y9"1&B.L9$qP8^U)H)<kb1,;_/N\*C!J@btF"4bWhT\@V#X'3Wt
+i3NsEE[G/D7KCtZ#-)C1g>"qN%9/f9W2>,\F0dUOfGuN6qlR1Vea>.$Wm/bb<!,,_eGp1X%1i
+Qj!"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&Xu\c^2XN7Uqs]/2%41a`5YcG-
+!>V2EY>$K2c+?(TNX9ND%`LF2c+?(TNX9ND%`LF2c+?(nl/>+V)ES+UhXBD0o0nWo^UQ:=fS@
+2nP2hs=B^kcX`G&+&.E8,)`aq<>VDr4oS1?PX4F4-=>b1K3A"C6k$G#N88CR/QnFe4Q_e`m8Q
+9ccY.k$^OL8i3oCu_W!Z#som!/]`E[G;H@\n[*^\ues=+k<KPGN#kY1BD;/Mb#V;ZP?g-:cU\
+E<d,V"bg]`!gN@Z%K4Ms7$ak+/shbh(R/ge1\XYIQG2#!0o/+$L,>9W4B3=,mM=jl<9jag9`e
+;[#-(B!<9jag9`e;[#-(B!<9jag9`e;[#-(D7``0RN2gP$O5:bJdD'm`)g(\?q239Uj%1iQj!
+"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&ProJYpn3WDF)Q522ka)`5YcG-!>U
+QEY>$K2c+?(TNX9ND%`LF2c+?(TNX9ND%`LF2c+?(etZE0Ym`=(6-cQ$[>(pp!\eLXcE'IBVQ
+gO20Q'2%X@>)=XEuHTj^@?Inr7ORF(T9h7BZDQ)F1^C=da$=AC43X,ui'WeYm*GC90<YMd6Ug
+jign-Zbm;ee[,=MDA]i*B3(dr*MpPXp@'",(q1W;et\\1q8D<26-cQ+[FQ9$:b?<\VcqhhLMA
+iU2Utu^C,lCH\q+U[!7eZ3C6JYJ\q+U[YVF\TR=)_b9/VZ4O>35&%HIps"%5C35Qk$g6pNUp"
+B5Ik5W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5IkCe?Pn:678.%>,<*YqaeKYD_j6c4*b%5de.
+RC)X$/2c*3Ne`I(9BqX285W'!MS"#@:C]@[FC5,T&bYSI>D/M+0c#j`R1c(`$<U1X)!.tq962
+mmhNWhQ)W7F<nF:Cf2p8Y*0Dj`gZ!Ri]E$0qculE?Z4"B6UU%B=,8FJ$&)?0qrujio8SA'F7$
+T"4Am=B&jaC,qKkC2UODjsC8,(=^AVJ8.*-^M5>hAh6fP)J`7\4iYs7Z"d#;h(5ej'\HmE%Ts
+@Aei?\1"t*N)N)f2#V[2]+jNPbH$\pHeC,rVDeH/%0>0a3S[1K:&1JgdJe`I(9BqX285W'!MS
+"#D:L*#CHAQu0CE.X&%P\M=RTGepSWW=<:)B]*]!@"0T+9JPD,+ohs!ic8FTGepSWW=<:)B]*
+]!@"0T+C\9Lh)B3P&PF4A`IM^A4RUh\2Q#3V3U#OT^OZ^ABRsnpN<lHeeVJ`j:lPaZ#1\N[C@
+eFeoo`o61b[Up5kk,WWce!1<hC<'b8.84T%B:G1#a$fKDD:2hfEXT["2o<`W`s*n#'>]WcYNt
+>We]`fk+"E_C\`V?+%1,g[pZF\Rc3tJ"18T6(*HVhIP3G<);&k3@1).V&a9c]So?*-puNeD4,
+Ws43;?8O(p64['Xq'TDDid``ZsRBF-TG*P[G$n'1rUWjr0b*.K*YK6OGUAX6HUMH91h\KMdG?
+UJ/BY_-QB_h+Jr_VDMR=K!"?KPI>$J&(cHX;:?[&#fR`=Nd>29f3U/bR22@TY#0pJObst3&aZ
+N&;5266sqIWEu"MhC5^rD>-(5YT2;pNQ)00/:i-aO[6Wac=/L?`TNYCtlKdEO_4#+qc*sb);-
+-,WocA5,ea0'1G^JH]pp9@0]2EtRTG$.U>*)i(4LlW`U9ZZ1DJ9lhVptp)7gR3.DLpE@*5M'U
+"hciLPp&s5WjOK;R35<X2q>Jl=f!";>0i1%kQb)1::3sWG'hM"2-QXk<$MIE5rBjZg/_1bX#G
+;BQ9IitYq=Lled/:`YUS*fc9O6P"B5Ik5W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5Ik5W(e0<
+!,NR2*f*W<1Buppn`1N'0nF62*f+"<1>2e#Q?dEPX)WoT\:YV[;MYk,XAbTT\:YV[;MYk,XAb
+TT\:[PWg`i'gX&lh<6aa_N(&f@o<S#9fE@VBApZBU6qT>?s)?S^D0+='(i*M;nl.4)p:*>h;/
+NOPkim(j10)R^R0(\D;@j=?coH![:t=oY:i0CA<iq;b(gsc'4h=pRC710gC5g-f*[gr=$9hG4
+R7pV%*O`:dc+M^:W0T5bWYUPod2(:1fkmaori4NG%"`5XOK!!_\lsNX1&oS.&`cRKM]LZY"4:
+T[N&<:.\Z.Opgb$SbW7DDWRfo\@%9/f"W7DDWRfo\@%9/f"W7DDWRfo\@%9/gMNN%XBi:CMaW
+aVu[N7jG1+D7>c+9JPD,+ohs!ic8FTGepSWW=<:)B]*]!@"0T+9JPD,+ohs!ic8FTGeq^;l\)
+#D?7a2QiO(>0arljQtisG!ah-2%9+8N<#Z9G)[97\%9+8N<#Z9G)[97\%9+8N<#\O9WqH>\>P
+AZi,1Z&.:$[bb#-*Y0"4d7>ES&TY'6-u]d<"W.=X#kb@5&jmX6-&-nZ"HaQaJH)0aoBT(Y+\$
+&HkmI8Z'YY1?nkP;)PO%djR*&jf[k91^%)<:J*7>,mGS"T=cICYB+W#U%SOE)X*jd?E.=U;c1
+dd"P)of+4\NljEmnPD1Or0q%U1M>#hW"Am[I(*MD,^jJ\LdFX?JJh+6K?%aKH"[;b%+<_Eh#&
+Wro)_-dDR!jnh.HN@;ON<O%(WJ6Gp-R8fEo_8NF_$K$T#(l/O[;gb\f@:K9*AB,uju!EZ(1@W
+(8]a6*-G4Y(cT/L>O>H3$NAVJr:b?H<<iom`F^ft)0EeE;9[9XI#--dDnE\g/eN/7rUZ$ZM6a
+cnY[F'AOHS'QBed5:pc,N_PX#G<G/:Tn=;N8IKW&Br9W<RAIWW=<:)B]*]!@"0T+9JPD,+ohs
+!ic8FTGepSWW=<:)B]*]!@"0T+9JPD+uZ89ag_M\Z1QG5)lT&1S,X\f``-/'#NOM:G:oRm-:"
+t=!S)2pWau62>89sdB:rET5d_mDIKAVUD:\C?\DF6jAG<Q,:QDk&b]eJ&:VP:6,aoH.Wn&kq_
+!oY1gX9`BZu#3WM+m\;,hEu'lG>,P>6G;`C'hj(\'V)I5i#:LX-su@^cMu-a":suht9P*%@5q
+sB&9t$:-@(>0bB`0m:ed+ZTmVh<HJ+da1ZNf+1Ing".i5pDO8&^TC%q\pOTD0#!t/T64]_mAu
+_+S]Hq4_(q6/\)lsH`BD/=->-Rf^#>hNM.o7fPej.Q$$bFas<JqKFC(moXe`(Z+Hea4moP:W)
+>GY0@*V1CLRjLYUCdm+WGr*V"itaIi^u'eef93Oi<ni!Y#"!ViZka^(5_L+WlX[hO$g-1kW0S
+IINa"3pDF(\s=E`JO\T_i,XA?5>TN]W+[7l*cWrf<_$rkCQW4"0H`\!R;V2sKgCeM14D1QFRC
+e?RH1JeMl!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1ocneRn.2IH_d
+,"AfOp$4sHseRhBrqqkR&!NL8EeKt<sFT^/@!NL8EeKt<sFT^/@!NL8EeKuG,eQ>HL0^U,co>
+a"M*d_O5ksM`_1/uNeJ@g6?GX>$1Y]oT@YK6p.3MZW]lVXd5_L&7_N`POu3clVj9@\D5]KS]X
+E<MZd8#T[4'%Q>p:i0Ak=0:=DZ5p1mkjK@gj\MJJ3R;g6dSlS6Y4UbF"KLQWk,MRj]RIMGDW^
+o3hP"-(A?)(_-@k]^?>>5dRoNts<HEr5V?#/D+@F[Q+mHH:(^jOLk,k1-f1]Q<Y\*U>Y4e5M$
+BU@CC'g=5.YtmrJt.C,4gkjNVI1FEQ&PArhbYn;<h`b^TN]W+[;MYk,XAbTT\:YV[;MYk,]$.
+32@iILfI#7:C,;7^eYZ_QWe$[kC4HSg#)IeEJ-`(XLk'5j#cIr`J80T?W!8'.C4HSg#)IeEJ-
+`(XLk'5jLeXk'E=6dkWaXZa+uZ=P/BQnPOcodq\q+U[!7eZ3C6JYJ\q+U[!7eZ3C6JYJ\q+U[
+OH4/92fLq+C"$N.[if=h;,)8ZkJ(k?Y$iBk/]a?]<%E<qec`uEaI.ET1OUb-!fi[dQ#.V>hMc
+CZ"*>m)!jYZtpX\MO'^n)fp$??3_OuQsH'=;(AQem&p?40$&U!fLJ8.*.NG?$ECl3'!%&gTqn
+kmX@p(ImdiC4l%<Xn()jA.t>"_//>%0C-r1:%.cD'^kl)rh^p:H#4I!U^`a$rlNsW_EOolNX@
+`!`\IiW_EOolNX@`!`\IiW_EOolNX@`_T#Pbo<@kID1ZW(2NqiOD$i1t)TWep#)IeEJ-`(XLk
+'5j#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`fT^+f[if=V)TF?O@UlF_Ot=<c3=/Na
+)lPY$:ot\82@33^)lPY$:ot\82@33^)lPY$H)nrZcHo6\bRIt8Jt0qe2=3ufa8@XA0Q'0/A?K
+)e`Gj?]DF#nV7Pts)r2k;m[=<4*FM"&!\Z;U@8G9J3oth-fng8_69Qc=L`p1R3_(ud%/SA+ZR
+X5.ef#a@[9+P+NCQ'^$>Hg6CX(G*e$ca]8UR62&`\;9r-=j=6&9,*$B:rEe:i-i<=uT8p&tiD
+e:i-i<=uT8p&tiDe:i-i<=uT8p&iQU*RtmhaC_LVX[@'^@C/_>ceNhDF2*_:D"%5C35Qk$g6p
+NUp"B5IkCe_>#+0Qpan[rtX++S4-p,p>N"_=*l9r[j4Ggfu+s&hDW>A$U/h.7L0S!skdG":eR
+16d:uWTHcNE,$^7np_TOn%lHcNbZmk<!fZf4@<5?RI-sH,N4joDT/Z$'!D]7k10J,iU=h8qlj
+eK^OQ,3SXhi5KJ2^k;4,cfGiLr\"=:i^9tX^l4*T&Gg8hF2.o]^W?@`%S]bAIg95!Dt`i0_3+
+I:l>:%RSKTa=>GBGO.je;L00EsFoRf8;32MHU%<B#1!R7lC;RXsk+o^U7cZTVgsVDh6nWa.15
+/*S`ON]QA>bU%>Qm-VNpE[b6aW\1s7-l4WN'rNp=iE4\8O[\OhU7$KS*`mjbZDbLK,e]<^&cA
+a7V^@7[FTkOLgYlfN.Dl<kR&?:01:pUG#g<M#W#B/i^EBrJ3<K$h)GN7j&rAW,I2T]n7T_MhS
+6Z%3<[1reoL&fcl@,7jMp\UtjT\:mBWYP)!i?-+<8j;&*_u:FTG.ZRZp=mAhZV)S6s1Z4]rql
+HIJ%)N)pi?)QGGNrA=7@d0/#]l\9N8'gD3]SjMs@;";f>J/Wj^W2T:XQN>>b<(r)N[nP"8e.+`
+%^h]S),@L49BW/[;b.&3'!7fdYg`C;l53]75BHX2$5NV$l2;]I,=9osD=W9Q7$1-,9@ar)HO=
+Y>kDqq=EdP#Z[p_JA_YVT[L2ZeLI0gY(CESTXb'aVS,qt`D:(ik4hg@p60i#O(pf2LrZ%lNCB
+%G0@`]f2<e8KH]k8&$;a_NF4Kur4_%<*%C?hB:Y^T#QQ)!%[n)3WnauHqqlc+Ep36%*W#!mlU
+^&QQ!%kp6MZ9qr@L42\<Rk*MUh/QCD<IDN<8/4J=7pGn%;'ecWb"pm!IB+P_<@j0Vd"h@>uY#
+AY"@)1<)_btRqq;%_QNi4"fVBMW-55#BelPKfbr[:27*;*^JJc)1_l[mW_u]R5P*KH$$RnQBk
+#(h_Q$i1f=nOC"d*W9HP&ZJ!Zfg%8?3Q"g,3<-E_c5n<."H@Jq"B_ejEXL<.q)_IhNV\Ub7,W
+&nU@SMU,9'N/&cV2-E/m9nDRu2)U#glDPtc:\e'J=dI=`ZmXZbq"CH99nK=P*a2a?\#17MVsU
+(c:bOp8h.ehI]gig9-<ctO.8]CF>LcSF?gpUn5e1YhAkZ]."^OO(<R]_)]bRj6H4nJS4V&Zl2
+Q$.@RV$t&oeWFJC9&te25nNik*%\TFg8hR25mr)RL@JO=,GKUO(k<pH@&5_<k3^o0$_:fX\.,
+CMrL&:Y'(I2q%6?jD-NZ:;TAER-_OZ*ZkT/JfB]CK2l3P/bHOsj]n"]0hICtjIrGATKM')!Dq
+o5;1$cR0mdC9Xb8dH="K6JKX&L\Ldh[h5<`*^HP=X5irmlApDl;W./:\#)#)N%\9`tZ9kPkMpC,Ws~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 618 994
+%%EOF
diff --git a/doc/users_guide/figures/cups_my_printer.eps b/doc/users_guide/figures/cups_my_printer.eps
new file mode 100644
index 0000000..5390f11
--- /dev/null
+++ b/doc/users_guide/figures/cups_my_printer.eps
@@ -0,0 +1,647 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_my_printer.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 634 554
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 634 554
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+635 555
+12.000000
+635 555
+1
+0
+0
+256
+000000
+ffffff
+b03060
+d9d9d9
+c0c0c0
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+0000ff
+990066
+ff0000
+ffffcc
+00ff00
+e7e7e7
+6f6f6f
+800000
+333366
+6666cc
+808080
+9999ff
+000080
+222222
+ffff00
+808000
+008080
+429aa7
+00ffff
+00373c
+008000
+ff6633
+ff66cc
+7f7f7f
+ccccff
+ffffbf
+d4d4ff
+bbbbbb
+8080ff
+5151ba
+cc9966
+996699
+33ff99
+0099ff
+1a5f67
+0000ee
+551a8b
+a3a3a3
+8b8b8b
+000033
+000066
+000099
+0000cc
+003300
+003333
+003366
+003399
+0033cc
+0033ff
+006600
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333300
+333333
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339933
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+666633
+666666
+666699
+6666ff
+669900
+669933
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+9966cc
+9966ff
+999900
+999933
+999966
+999999
+9999cc
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+cccc99
+cccccc
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff00ff
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+8c8c8c
+cccca3
+8c8c70
+b5b5b5
+cdc0b0
+eedfcc
+f6e7d4
+716a61
+8b8378
+a6a6a6
+GhVPU8Ts.([][HSeFH8)Lns*n_f=\-Q#:/7PHfie`FpMm+FC#/-U@?7*4Pm&H>d2DKdo^gs4
+N\d&2eoS'EmMN?N?IJ)$!V)("*35!9o&kJFpWF5^Hf^+?_Cj7!d#&^74!]hNKrPq,QKt5;C%8
+c:_kq3In0'a=BJq;!H6IhS_4MjB)"BP'^6MT-%);i7].q4_Lm->8,fGZc8d(:!l2%\3hFV^'*
+8;(%O<Dn`m4"=Oq?3iPgNO=!C8_f=l/I7o=T<:me/$kKFY!gUp%&4UHl<PZN8m8@-33:4.S-_+
+%^f2N]4)lco:%(C,W"&^otd(G`lVQ=-"Ke?-(pM#.2(6HN,fV&/#h'Oht(H1.,`W%^VLF-jTi
+aa'`'AkeBDQ&,s>[Y(?]__">;7XEHJ>uu>tLHBWoHn*QUNcEK/HE8JBWXtfkEQ]C;O%B7M"f4
+M2P;-gR(Z3=k0o[lG#Si3",N1?4S/#&(<(DPHYca=O7#@pC._$>2:9$WWE&CMsR'nHfDumI"r
+7Zqu^t!u-^dLG6i$O!H^dLG6?m6^V0G.[,Hj*mjVLB9oHsVF#S([jpcc+MJQep5YmThMh,>!:
+];JR%l/A;&c!kaerDBt'>EV4]ch6YY$\rgoo")m;#)bE@HY-)Bc8FND:j@EJ=<?U7>-dq#[.F
+muuM7:WsT,\05-W$,cUAjlRkAkRI2D).,Qjo-`otsAIN![gtRA]=ddaL;SVJbbTU+!^dSq!70
+qr-YkgescZ@7<f:lf`;g+"tgG-oT[ic/=fMDbXko'&)V:GR5\\eN]Y>4ah[E4j9J;qYUdQo$a
+fO003$=FPGCnkuBr)0@oWH%*FV>PrA_:B<'XkQJQZP1a%CQrU!(#K<:a9Dd>Zq\RBK(^PYM,N
+lj!Qq&Gh_bCl-%?!?dHX+1'Ea8F]@1>"]64jpR@_UAXe6_XQ,*:Zh,i9Y78[_2R3B=R)oQekY
+PD4E>79R03gR1dM2Y>%O][u9G&]K_"NF4TV*hINIKUSk_-\&3h24t6A!g:g?DlD2nIQV--jl$
+`NqV71-72ll++^BL*.eQFI7P?ph"-0_h'ok,eSp2s4aXI7<ognuMI^?V]*8##Q`_W"K-5+D))
+s7d!k<1YsnFnIlC1<O'c?QVPBq3.a(Q(BH/\Yf#?&Wtqo/L7gJo?s,Cr-S-).kfPf0'S5C0.T
+:bO0RZ2oNpfOV7$%ql/S2]iBBCbp$"D4H,;pX6$.f6"ir<ml<,(>Qh`G*5\CT^8e7Y-cbatld
+D!Z8jh3,WVL,^W@b4%k7*d0m>IX6(m*jcPqiLH4.d=CBR%E<:F2tQ6Wu"#"4ob5.fXsUur)p)
+e@6X[`C$DT]rWJ[b'jb\EN8:Pgj-Q1\iEGJ+.]pAZdk$&t:I-1\r))*kYu"[&<'AQDIlkuX?>
+f9@O5)Lka*Sf_+L4^@`(M#u27(f)Z+-N/q,gEm`;jJgM!ji'5GVIWV.[36Q05"<D>s+Qc>Mgq
+66f-!c*FN%U!bGA@+Nk!Zc.j2H7uDo?J:f_rF72"E1-?)l?PNg-U7j9QUm0bm=EH+aN9W#HHV
+ZNm!5!eRn5:3p4@ngW\3O-b0-SNV'O0GT$"Z-VK!M:OWKjVMWTgF8We'Vp!W&AT_,r]r-S.cD
+=pfk`E&cd8C+0Xc+i_anRM+LA^O\e<bp7FLU2<[%$sT4.^..BEk0(&AO>dk)<f?!W1ViDG.q)
+JBS@sNOOZFNoXL<R/`Kp0a"s$XSu#8FSk=CA`>(PF26-6gmej')lG]dJLHT>j$,)hTE*diB>'
+d=EbhR=fFgtCtZ_qBJba3`Md`W`X(8R^.[%^kj5I\POjZJE=pfO_(HD+1KV'JtN6!djFPPS*9
+>eq%adSk`/ZVL\[#"rm^%eLfGCD*aU4\C#JN:gB5[2n\@[>/mOn>"@h;R8;dC@09or:)ECT[O
+n;iH!sQEjD4E'9--Va-]fiKeG>T,PP-'R4uKsl[$ZL4j5ga<"ZL@;jB%o=70=LPC)7/Y;c]B.
+IaeX*t8gq,[J!//nBe!N9;KZDt_."0<FJfe(S"=X#J4j2N]'V$A[<9GD8c*l[dB$QV5j=lK>l
+jmG/1Z8U:<rJ#[h*]Z="FU,DqrX\ko8mW!@(btuidK&8A)@R@*TdngD">C;pdIk6Q/X06RD/>
+*VfEeiCaDsju6c'OdN4g8$P4Y9GFh?`@OS+EG)P4ZEL_Mtqu\(:$dX&iBQon6D0Sp1e?af[\M
+k0$2!cS)WP@;ue=F_i.eG#Q5&;Elq&iq@plh&8KEUV<c!AEfBJiBAj;ReJi7EC$gC8t^7?T"U
+D/<TO\YE:4*(:Z--!MGCQPq(/o$4+Iarb#:6^7*ha045^L2-c'#4l:-s3!"VFlr=Joj0QeU3g
+qWKsSJ&\Y"kEc\QV[.E41I`!9;T79^<'de\4*cbh!/?+m.Y:.&4d<?`9>8KW?1QpV'cM!oY=j
+nNnchZ+Z@Y>:C[HjJ\bG/\HfCiJ6srm3=)DcL156]l72kKFp<Ni^d*o^cKbrqFb.?Aci=%Gzz
+!'UsLa.^gDBoe%LH@9U:gE-S_,O=ab4MpF9h4_,HWt)?0p%?^\W_P2N\5P:%(#EFN1B$7?f,d
+uTZ^0P0l_49J])5r&::5J)@`R2;c0:;3cMnkfrP@cIDRLoA:K3l+bZXJhma_$8??M#jC\,d=6
+!M#;IQuMh;Z<d^=)Vlmp1S95OkZp6U$H.35d.S<<e4Ftm3+OG:WY(+*H1ZnUZ`b+mCUp'U[;H
+sb(?mFe:YBU4n7BdYZ9THe<L$2_[,bqnQrSIYE^-`*Se/"cRZ*`r/AK4g!7%S]$n^(HCpd-N1
+TE1blH)(]JfY8@g'6tmgi09k3l]s7o3-F4,UeBm<1X<->r<Sf1Y6W3->`)@ZPkPQYW[-0RKq(
+M\3Bi>FVD\+g)fgZYu9ec>W&f>ub+gTP)*rK50H,T2H3J?Zd4D.K"&LEhk>)_"dg+[af*&59e
+J*29h-b4K0I3?J5Tm-`U\AaNO$#jW3-i$3*AYl1V<-/[^Se>AtCTa4XNo_`hZrWdXE$\6NM`H
+(Z4eeUDA(mVQLMXsj0g?fn:PD(.C9ApZ4uZ4M!Qg=Ei]D<kd3=KQj2lXM,#A[H)_YHMPq@:g9
+l_=m9$RDQ,WRi]uA9HCKegY]G+h"OIFmAFYI`YE2p%<_$?iIcL74%jQSRijj0hn[m*$FHdIoD
+VoAs6+cC6bE^C0_(*YbS`M^f24^!A%WUn-aDE,.Bdp_H>kVqdT]ps[jTVYlefApld<Ii[GC,k
+<$/P49TeVJ5$Y-q-7Yhs@J+6?IrB)r8_%["[=511O5"uos(-esCZFLr[C>h4_u!2!?#TAo\hF
+ECgT,X3Wn:D\+.$0=7f;'N!c*:Y[OtJ;Pl7FZc\-;1[d1>^^$t2?nLFaJotbYl-+O?1B[^Y\6
+ru^%A;]g?AJMN>Wm/O3YK"8f6G1e6R!@3Y`=2QW1IfqMqat)G`7oKC;091S5"9k\*gp@nf'=Z
+"8KZb&G-?8H=#[[/db=uj]f0,?NF_^(l0Ljhp31k1T=6P!5,u<q]X=Z,pW(iGHE5P/;q[bj;s
+m$-166:E]rg#a:=Y4m42,KKXct=$e-9hIn6"tcR&/@']=;UFd\G)U3,!a/?)5;.TWVORS&0k5
+<no&!CK3iN><Vi<lRF!@j>I^MC0oXUdF%<'c0:tWb%fg]<_Tod@r*s9UGZX5o@;F\?B=n$UWc
+4)H)lDYEFFZkVo7u[;6p[X0@h`n+!1))h5VK#=J;.M2qu%5<k$f0Xn9,ADgo(ghQ>=$.s\>[[
+l1pk*H12g>.$Ec[L4oup<*=mP.do+?,M$d4mMM4URkO(s*Hu]1QpJWGi&+<E`H+K"nNn"$)lm
+1CQI$nV:Wb4?qo^^NAN[f[&/5_D5W.nRj/`h`,=^;Dk4Qicb5m*%7noh\9j^b5")`$7<]b`aG
+R./mMORCkj#B0(2FYk'0=pNd@#1SeK1,YgG^)CSu&5VB7%c`j5AOHp#>K$CU@Mc.l;`lXRj"t
+pW]Y^GIFZl<GV0'9P:ub03`efKfWE7qR5"Y\U*u#6s?e[Xm6S#U.c)uXNp1KS!B3ZYjAEU$KI
+=/s0?rl%IFB%rkkUV8)*`P2CZTjD5=e$3432PFSN>1/(Q2o%?1Nl4sR3mPu=<B?b:^4-sA:mp
+*rrek<8l?;@)?IgkRrL2>8/i?T\90KkQFM@be2hIGZ)NN2/4'4?g&/S%?Q[6Nc[BiZTVnOWEl
++D$//RHBthl)r,[UD$kR@H:;#nl(@+oraaX2U"X<uF"Oq/:D_,Y?lNGcDZX`V@`iku"`<I6[b
+boH-12eER'eZ)_54Q:bj+H4piTsnq1H,U[4Ti:)U:ojI8A>GgGV`p[uC^#&#6mKO1R/u6LHcU
+^pYK0Q(=gk\*K];[,uJDfW8n;<_*7fZ(=tfrkL%jWI2r4oYmeO^><_'[12&tZo4b_9.<9,'n+
+S6ccFDfO4Au'SM-T4Emh:GHk4(Mn*N4\X"eN2f%qZ0hWid#eWdukH##?\.F#iAp",caGPu3p)
+MdNimA>/e_'Qs_E9h=VXfqAf0nqk<J)D-hN1ot."T6&.B7ts.jfqE]jl*9Aijk*N6BXZ++2Xn
+$n?9+\n!-MOU,iXdnqKgG[s!o"%OtYq<d1Z+Bl/mt];ipG]cPkZMB`ktU,.9h8akU*a?J=I@L
+")?IFt,UZnii,YI2oN[<.1)EprF;aFq`nlZG,9hWobq4gVrYA6,o(1,2]7kJo6;7'"pa]<ZAB
+#.8bKod\iHXhn2'`"c2@#;nG@mT_/<d"J$/l<#r!N%\!!5\_P+d?p?0cPng,+Zl_Mc&e`q<pu
+S^]e.Q&;SX!E:*$YKpo@+6>.msW\oJ>9MD]oU4L==U'0g5O`Tkb%4>WH\[k"h6CWkL.]sY5u`
+naf[gWT#m_:--TpXou(Mnoh&o\$]-f%WTnpRYL#otbg">@R7`DQ*>*9VJSI0HIF%I'R\U_lrB
+Ch$eTMij(#@p*LctEEdD)/C6H?8&YY$@'f7%:KkP=\]`pU%rpFUk1(,dOn(us_n=^!ehF.kA>
+NN:;_a=cO(Q0FZ4j?HX1J#Kg+I?_#-`uE.5<&qg]dh`3B+;QZ.3i+iVM:_YLpTOiFr`>X%0AB
+[5TX_Nr.PmIJmJ@X1.a<;+%Nm41&:/YI\%AY)IL7MQd!Hm0$c<r,NIbG@pO78=F42De@V5f>F
+)=hfQG(4$h='<GgrBp"k_mm:]mC7;C0%38`M]-!oeQ]'2#VotpF/cX4-E/*1@N5$Qbqjc?r2;
+jC_(i%[h#(Wm>Q%.2>UcHT$s<_0bpk#ZJ;YdZL_ZJL?lm)'/sj!JZ)b2!DaQ0.FI9M*3lDUUX
+AH>GB&Phri/r3GI,h3tl4_4@iTHh5uoi>J[4a*M[lC3"0fHe^PCk]kki1L,+jg3#>5LbO&3m.
+IkI;mF%#]%\%]\G$ZN(n=obnQO`>HarMsXsU"[%Uu5<3g<40@m(IER^:-hZ&&Ue1sfa(A270U
+2<LF'eVaXhY-tU:aG"jH8"8*[cd'@!fJ\Ccf.tV7/+)0ee$1/^`msU?BWrpSSD'EC]3i0W]?n
+ml8O%"&g;Y-%Ju*;8>;_B4HFn/_JtZoA=8G?=%W9k6D6k,rj//\P7h`RBU0$YTD,Yb]?'75l[
+oL;;@i>ml$t5A@aK:YWd#*/BGp^)r!CFV\_)nl`d&`IA$j4SZ@V>omOmt2EoQ&0E3.qf+K1AW
+kEp`*q":*Aa*h9>?SZGhhOeIs]c,V:cj`S(@ii<)4.Lt=!M+P.U0eB/$kLl?_oK?,ZHB"CY]T
+]mZqq9#Meul4C3?]?B_3lTEVc7@9:5nVqq&=%e2@.E(l*t5"Q#tO'])2DuLkSjBdjc^QD.Z+)
+/'hmIDf3\^)e88.>V.jKo4,@:GOM6C'sgG#/t#(F#mJ'oq*Ts"$KS>8L@eJ[B"[uW<:=NL1KA
+\c$bYbbfiR(#k]\=C;Tehcs'.,::_UK&oi^'oC\?PRAl"DWm9o=o,)@lsAE-D0WT^Q!`D\*UG
+h)+OBEDMZg&;O3?gQp=T=&9J-*CTc:-K@dE(0=E-Ku"5JrrM?=nTGT=Q@%:McQj?XGO5*g>TD
+o+^8b)gPX=YS`hNAhN%)o4]1"HUq?fO>e#DIg9MNk-!JGT!Hb0D.\@@6V^E*oFEM'Q#G0Vn5U
+si"7Pc&NZ=1nCaP$.K3PPF.NUVnpp1Ej5pU$pZh@gK!_%j:-\'h:Oh$3PrjC00B(l(!giD$?K
+@T/b_FfG:k&hFLaW+<K7&FI)72*KPckFh#*A<Rg(T3j!qGJ\D*:[Vrq0Mon7[g]=O!YsXQ^?V
+et2auX%WiX_+$>ksg.l2"`iL:`HRoo?2ITprAUqJ!UClUO&T=]7Qb!c\dDqOCi.YEY[Pk3G[H
+FnAjlWj8gzzzzzzz4qGeaO(?nCcWgL\&4U*r,t^tJ6@@^S"<3\"0:i:(&l@g]#=Vr"\-Pi96"
+Ks>U^%)j`b8)6.bGt$M26'AP9O9_U^'BJ'uqWAV\&Kck`\\T)q+aQH=."U7<G@O34&8kk1dSM
+Uq_WU^d-&jb@Qu3:Q`AYqh+N+0Cas)16F#c2F2Y@1`Jsr%##/A1(ahEN'>>B$Af#9"2fqXi>l
+eu)C[g#.>*2ieN(@biZ,9BDNd*.BH#Ys"2d]J^:G0bRCjjsH-&*Sn3\Fj\kM%bJ7?;^5^Hf^+
+?_Cfm&h0*zzzzzz\:<_OJOV$/Rs?LgE[R=8F-*:a,5M-1DtDuFVQMpu.bS=<i@3OlDhVh@4!)
+4$rTW+pk)[6.q^2-%]OB71!d+\64#N*B\).XjpE<'Lp'tGR_7peS4b"tG+n!)iaF?h`HW6>\b
+r:VC7csTs`cS&Q>P1b:fKjg*#5[E`:&*]K7I6Q6%EW=W1e8<](-\ZWH81OB2&W[hDY:Kjg2BO
+N6c$M2Jpun%;!B\ZfqaeU:9aoL%K#rg@mp(GMsGT``r<b:6W=a?e8VJO*L)__-bG8aMf7Ij6$
+aWBUaHS6#f]K%UdkJ$\lL7Bl#9e,9OPNND'6NQ8G6D>K)K04UYTN:;#J$W70Q.*asSN`RM"^!
+@<?/K+'Hea*BaLD5+j<CD13SCe9M6?#j;QpzzzzzE$]Z-S,qg`9F$deV?4mB;ZZ!2WIXQT<'Y
+_:.P<&2r@"CgeaGTkdZ=FB.=^9GG5f:jn)>;Z5bmS$?M'ln^HR>HR%IC+PEb%Emk,;j7ukbqm
+E6NnV\nX+\Wl`fmXk)tmf5[1qh**9C/51&UZmb%4-P%%l7e'oE]bU_]1f.[j!".HEKtTK/e>M
+^i`VO>oS0oHdF0a1qs&kpJC'O^-$T?:k:P)A95f"dl0X'[9nN/a'W&8`0>[**l1O+T-V.#af*
+ueSoR:"ck/7s[eDK5LF`qrrpLrg1(5j1IX59CFMF]CB^nIt*$Jgj$D+A)q)BiF37iZhL2-,%.
+0B@S7SCNW<a#JMRU/\KEO1F#anjsYOLR4T2=4#jM=?#t'C<n>L]_%$0\0thZ\jf8C`"7cJ92$
+UF@%pFLefE.R=aI\ZH;#\kHJpQC*_F]@,a%&GHJ1A`/EGqL8<;sb9IG"?aF<U!r8K-*Qcp\Ao
+[r)J8&Q:B,Wi"DQ-,?W.JmM#Un(tuo[4.h%4P/#.[M!Wnl_hpq,Er>h5??@I.NQS>^B(d8!!=
+dd;gM\,M%_%\g4tr_kdBkdS&a-_`D%k++?aA>X@L^V+5[r'D`-clgA^jlXr_:a3ASb-AWBgK]
+!:U#)-XQ'ft-GeQ&?IQtS+I*KsejWfs5k]oeg!V3`JAQ]"0WmtE!`\A,r(aY&V<I`G5m7F/R6
+aBKa&?-g+OH,M>h45)EdQ:4[<,s>Zr8>;k$LgPIs8iP'rRUJ)d;C#,3Ve";mqe"iE-VSQI8FN
+]thXToX"1<5n/mS4=MuKkiEt62_n!J#qoN\salI,'D_<<&UJS+?h65n/j2kR\VATM>i;'%V,J
+FbQjH-dTl2a`i8m=Fja>^=[;3%&4##PEXh0iiJuzz(kLKEeENb"@hMXO9[4T8U(BXgItAc7=B
+C*ss'&mms5>W@.9(QVndl>^d1M'L'_SBHEN'F44uJV;ZHU`uE*FTih!_^6U-YdO8^IDqo+!uP
+V&+PGH5GY@?6utaMZ8@$r1j*8*k?cIhltQQL=!fbO%Ogi;;$EFor=_KoK>)EVXg`Y@Z$n#5tG
+`66],GklK7oHZo)/ieWA`j'$e/trK@ma'Db8g*_t0B%D#D77#A)u1+!QEmSo>r&[.G*Qm8FM]
+dmK4k85S]+MD0<W#]Y!D59c1^/af$bZ3q,e8_k-2#U[*4PN2gR"!LKE+Y=JSr*Rh/jF9RicJ'
+=/Np6_V/i3`;l0t43#bEWed6ZOmu"&^T_p&iY]fH"Sf/<*mfXS4HE'?+OPVQ%FVbQ$q=R/fa(
+Qq4`Su-53jVhlcp-!I6h$R7'IFB-6l6TB^EL(#VQqX=S?K.Q0r=)%rIa\aFL:nnI_QtCr-D8P
+LgR+>5%,H`6YZ'FopmYK$V4&ZH$>+f3a+/MrB=0;.InDkEi<@;JG2UDm\8[Hl;POd4In/#XHY
+eM=a\Nid<1eTMZE/VeSjs*?8q+ogEW!%fI96HjrB3bqYj<MclFuk>^5!T=%.m6qGtL5LW_F#K
+3W>YJK8SS^/T@W)CN5$*!p4qB\6hC"-^MI$c?DZ$mWE7Q)$p9JB;SPUIpW>,+D(:>s=:>\]UW
+i$d%I*ASK+81I?>*%Fk@_nSs1oKiaG/E;Q\_UC+^).c8oRDJ@L3_QAdhNa22jDS2rhG]3iQ/W
+*Ebj-p@fnG8to4ph*]dZInL"'=uXCd\m'r8pcRAfT!bGX!%n]+W7\(iidPlHV$GH/Zln;bVL0
+[R:R?n'^%o3WrtT5DMgk7c$CV2aCUlVLf_"n>]@6$QFj+CfEu*UR:Z\*H!)n:Y7m(EsLr(LD&2
+%8u>AjqCG7"DE)A*7ZuF&aW"6Kkf>(Ul0aaGR_V7ofgMV12AEG=71Kj2!*LE32LT:8Rn58=f=
+O:S0AmL;#*W@rI!JMW88l,BWf&e1W!t2;hAq\KO,Hf$q53<$88kP_GA6<$;'%dC4!9_.'qaBJ
+;A>^bT%2YnV$B1&K(P4QA6m($dbDe%W=&gr#uQ#bo^V><iiJIfZ\\E9V=`TP<P;m&Z8?fj``8
+oe]'-1nOri?dg9K:3P[7TTCY1otM1FCZ.XF]'ogY4Pl'!0#-<I)r]jWkPL.X*\,Ppej*cXD:H
+E!+no`?a<VtB]N4"mW!Gj/dHYYs+Ed]bOoYR+Xq[p/?)Cq`6+Ce*GETM*JE/,sc.E,iIcQTbF
+,8p^$N9DErKGp>n$a"+q#-(YLBU)Uj/VKb@k#*-M6#mRP_;Q<ZAqnDG#h,Z2AVfu4+N?erNlU
+;Pc'9tZ];@K!,9-D!a.n\.%_WG,5Ze]j-km;eQ[8Y2gYK<T\:+>0l?]/+rPY,F#4*#:+gf*$-
+8<4%4oX;`p-6;9:@\rH?.aLCJA!MXs$PT-$3OeYO4m_7AcE`ETm&NkUDA0UV-%(CRT7R@Gh;b
+R)`20"V`6e$mFIB^C4p+)kK(r*IH<85eE?<34%n&;nm%N/'dSnUeYJ5<n=%I7=<2R&8daO8*h
+mE#JEsAq8'MJ[3Ro1K,B@iVk>'f+]aZ<Q^:jW*kp`M_=*5^c'%?Oo/]h=l?`(ITg-/?521LN*
+kQ?'%S\9a>].sSq52_Z93U5J5u*o56g$a3uKq8?-Ni[\n8=XZ"4B+i>GEHHm-VPUMaX?*/tB=
+.p%'oeCC&(:?.W3Z1dkp>'j<'bcq7Y>.j.Xc.Hkp`>Shtd+Q(j7tiI?9eEVg%q%%cS:s)bBE%
+.#Lf^?N0oG`G]kj,"h<#nQVkaH<cKYD-6=D=JT/6V'+EaEa&scLT@6-GIu\ROh0/KLP4Q.NH:
+!H.X/D=>U;=:'g9M>,mE8j+MF8<A*6gpn@#Xt_ED'%0tlUCrUige$.!O#!GDh?&4H%BOP\6d/
+ao2J+?WMK^9O*)U^gI[(Oh*@2ka;Ql)>pC@7ps'GCsSrP^;.O_TTn7fCe?/QDOIOK$PdT-bE:
+9FqqHl7)`(UKgH?>3_pejLt@["F)%B;8jg<s",a]2W-G-,+rDfBqbS?0G;CN8;'"Q1ne$P1Nq
+Se&&YJnj_?2_d._[P"6$V=XF;[7GiIOX"(8$3J^h"sO:I06`_PF209R76k\0.O);\1"[!eU1]
+KEnYGf'@&n4E(`bnNhEX>&8PQ3e-)J!o\^PJFL?b5^6Zdc6L!XDK?\=]-O5fs81+[q![)V.6s
+3R$e.h8`Z9+)iE\uuY-(>gJ"K)PQG5(OJDCt*j[4poW8O"B*j+],4eM<Eq<*5\;h3[=lK.&?n
+$p0"<aMllZRRVCn&tsf?(kRgOS5.'-Pr+NT!.B7p9q?S4aR3Q=/_IHUqNN0[:+6mpuCQVcW(^
+`^+'Xp_P@l'UI46(8PbU5q%*'>HMsaH!*4j0Tdos1\]oM$Bk3K#PIbndTU<a^B#gsNgg578<a
+FZDqBGs/l_l:):K3c6]tXddi!AT7GdJ36j5C-M0#]2PHueeDX3?WRWQ^(?le6fbVa?*XF6$9$
+kl7M@1=j_)5Ao_E/h?ZsV-ZMWrtPq"P%IjsG_W0#=JC9/Yp*62UJInr#")RU?6m9tX,=UP%82
+.qKng?3PGb,QXk/ssI$JiQ''WE_NHq?`Y##+ealG%"XYra*H#BV=+IfHg]V*4^,\bX_4uoEr.
+q1+$p.D,N.\)Q=G]6f3:-_3CbSGqa+S.i<$I[*)^rmin09bK?l"riQQ"j,fAEnoAT#>=78^CI
+UHEI(.j9fN_DNdUeckEg5U@bN64/D'>6:Ts3TCamsPkZh4;/S%F29>@ikugJJ05\B$E.[_^j.n
+%r31<a#/*3ubjYNA]1aAed7W;r'A_Mq3Z;LGukuEEEm2G9sdu:;BX>dB$Q)>K_A%ffX)!gRpB
+E^IU<dMmLLhT>noQ\'4)=E7)E;_d9U5D-E7?\Ht5Fa7LE-(7UYJ#iEndIGkKff"SE9SI:i?hh
+r\HXQF6@nbKRgW&h%OS$%b#JB\7:uY$c*<5/Q_P1^]%M"QF5JZD05jSRNO7`Af6nn2B^(MhO`
+j\b0RB1oCTindf<p%b.-Ykm+#m,CKBi]`3rs/dP&lOU;jR_n7HN<6X6:;6#'i5<fH:\)!!%P1
+^r=<>?/qlk3\P9-U@+%W4J$!28(0T,mOSq,I;pk#;=/3QU-,8kKBf&<T(8WL/u:[Dn".%do"t
+@QM^]0bmN"T8+[=N0s/=uALB)s%gfKQWcb`QEYN3_[FbPEu&>N<`Jf/NSHqZf3(QOE/.&\OW;
+/*?.@.s#ASKJZYM)%3^a.J9hW&9OgK82Sm\5't@=h@.aiX:rVAUa7ZpJVYAY,AF#0FYci8R'7
+2[eF;;I#q["#@ooe?&u%,kuH[o4(?X=fN[uB%H,`9$AQqO]a^="oGAAdlOA+diCN35`%&pD+h
+`6_Gj32X`RoqG-0\QL8Oml%QV0",L@jnnPH<W<:O9m2UFBB[_GRf7KF,]K<=4I(b]!s<j!2*N
+X>dB$'rDk]-S:DP#'RMDB&!]77Cc#3'4_GB-b>dp/T9i?J7NXGoVoq@<s^\<>^@+oLW,O*@l'
+M4T.]4'/a[O2^sj)+L,/*bRe2Er1#PM>L^_d>n*RL@b/<oR@)8]h0GW4i$75ioj8f5\zzzzzz
+zzzzz!*k>$I-'/oh`(k\Eji/TK_W>2cM/]XclO%?=he8Yg&lsfo+r?5HXJ7$2q^E;:]:s)kU0
+g(npl(<rS'+,%i^_A&c_JDJ:8d.Z2]hSV)S%=^&u_X@`=N1#Ckf!I0ZDe=aJ3)5T]euhZ;qr8
+l$-<*RtVtVsaWXPKk)HERGLI*)i10g^-&>HI>o6@#'YS"rN(;]tt1:QX93S^&p'>c'b!24Q(+
+mNAN=(fKK;4!h6(&<+)aTQjdem#64`(zzzzzz!!"t_V,V]9cC)Ff?un#E3PbT%<Kg$FV&s5b.
+FC?[6VrrO'Q[(kJU>'1:`rAkoX\@T`_!q4htS#dGs@;W\040m&4M&]nP]:G]eLHD>ue^i!`24
+JT!Mak&lh%a!XI,hk(++49f66miDl+K#cIl1#k<J^oLY+8TcLDf%AUfE_t!&=9se#5WR!T0%[
+\g0`QsFS!WW3#zzzzz!!!#7=oL3&riIF_c.'=GlC5@'^t#t)j["6cO'>I&[.i7`*T]S6T8_Fl
+<Ju=l&r6'W3\)0rT1WE@;ca15,!.E2W`sdL8Mb"B*mEIg@[BZ[g/u7)m$fqd<N7!N+G6"g0Q"
+&`U>Jl5Ku![MV"Ya8SS<>,MNXh!S>s^<.u*S,fFaHV$qu&Ca8L,LNfb`LBrKb,dd%SeMarl#e
+A"db*T28)UU:c3=8@k;*d()9fgJC"'9Prg"R/pUC8BD7UiNTc:u!%b_u5hdHDJT`<ph>qk5*,
+EM=cJ+*i9gI#dU0uf(J#b2!H]pMG/N!qY1JC,L:=m^mO)0DDp[N3^!iB\"A\egdjMjoO.;T([
+'0%H)(],I5YtS!s+Y\q7$n$6$](8Clel%zzz^s/VCK:e)"oII,^%t6/#!rr<$zzzzzzz!!&Mu
+e^F9CU`s-A;p%)Kf7L&\#qAqKO_72W5L14A'V's/5k(jSN39ANguHbm:9pr>1#$HaF0%^A\_;
+t,T"JSk,rV\=p#u;^aDnIkL$U5eDN!.(mYP<Ng;pFSKiT4n`U""[R(+!p&=6K;iNQS\/BmV;p
+.+(C.a.Ua-5@WoT"Ll<;Fu+5ME&l,)3gLoh46aYl5q=cB!CoPeQc:(MIfpa<\"!Fr8l$:V)Q%
+U`42"c#`ekK03*u]"Z_A182AaO3K"oh"5[V[DDd\cXLY4mPTK(g8_6<_YL#q(Zcj6M77-AqBB
+;e9j;efHg*Q"&bQqdX*O6l#;)FDiB08gG,YMVqZq/)-SY#54*pGag:!k@gnsNHppupJ-8]l=1
+Q&ZStYOD60?CAMV;Z!;(3OnWPdSls>cL%GPWUMhbQc]@Uc88N:;du_..k-e%;VBOCQGs_5EmL
+PJj@X5#7In7l'77qU+N7h86Ps!*=edGi6bH!rH;m!CUSXl5Xca2ddn<uEMDDT5(&(q<H?B).g
+-m=@Z&pGL/#0dg=&>cHL6na1VNSEBf\sta=3T*k&4n]rV".JE>EE0IP>B3h.O\Oo"/JEkb`[t
+P8g%u6QqPDW`"CFmH(uZ0=*A7q=aEX?Bgi`4f=68VMMZM'9j)edmP5/3=F+5"GnVIO'?a,sc\
+`M$JlI%Y;H\<//M^4MiBm3tV'bO'91C`(g/hE_NL!msEL3IK-c7Pk<Y;_79@@U#-g!"S<:AW)
+UlHbc.2%5:K1(X'oMhgVGqk$4B#.U#7Hq(8DnP^A6W0T*j48=VoKk`U'8cC,V#5h<B1$)r?+b
+5>)5&!^2DiZR#"tZ,8O"&)<Kf%.-'g/WKQraRSP;P9.7mXoU*9;RJ;+l`Y'>9Wr.V;K20jqTK
+d?2o,uJ!^dU/4!.b6Us,&(>d=RK^'6q/t;'X8[Ar#K5AW">/:o')rpLSoMG"t+VSZJQim\bg.
+#Zs&?X@8Af,?-\pV>Y*1j^2,+b[5I)qd=a.lql+kQjkO.Dgn1nc!!(r9\E-IDjWP_W!_S4mU-
+6ML%gk,.doj6m'?Pm'j@>hg+J4D,>DR9$@'W=g'll^AY>C!?"N_jZ>G"fA5mn&]K;'BUol<Y,
+gr=^*oC&iTL[ZL\h4nL%RYPL2IL8p^E@Eh>a26Srl7`Mb6m-6?3Dt1@U/aOA^7sJKoF/F]CED
+];91r(5%FJ%"jiY*GoTCH!O^q=EXj`F:7s>o2Y?29l2Ht'rX.qDSmZcoV%%=MM?U_Q19@cRX>
+')P*=nkbCS:(kg]MosMS*;Qm7rRqA-g0jB111$nO4'CdlMTS7E,gU<S"t+k2WDZ<nXBR?dg:/
+Aj:[!AOdL)3P9tCGZs\LOY\6B0e`=Pp&_#K8C&4gDj@s2Or18mmo>(66]3<DTGEQ0AY3@%&$6
+P(LF,HY=S*3!T4_0*VB9ECY.C#[O*V(+G8`cJ9%QgcV&F&:>@r.HU9G0sok;/O_($gge-p=#$
+N)WJ"^Ufg<<]Bpd>1-NPW"b5c;gLhc_*h-`4?Q0'H_@f&g.NN!HnS+<*V%g<YRr7^?!]OhfAX
+!XT#EuuC;,in'VmZ?>#n1#^7kd*;p#/]&$3KjHRKqd+?blrk*/H`oo;F6IQHF`(8U[ibnc]QO
+,tD!?ZqFOd\EC0YJVU((Mc.I&G`Q2SnD@93Fg%qNjd%;8_'[PMkrK])MhIVOQGQ'ka#P<[k?o
+"+U.*bi@pOB\'2*&]a#/olYqRDUg&/>eN9W<8_]9U*nsQ?6k(YY>fi9D5">2G$em=ld5EgLie
+Jf1UlgN`W>I%O0P"=`.ubgPdf(9$"bj;u4V?9<*o+EdJXWf&OWa6!W^.`*BqkDqhUtjRR?E4L
+5\be3NAu%JOD]D*6QKM$7cT2sc-s0l63@UoL3kL,D#"l@c!<lDE,4Xq2OLH6m[jf0LBo?PR2M
+,S-ij;J^gPI@"-V=cG<[^gM/!/uKB(QujAC905hFuhEZ"t'_7?CdC8>.?K0*Yg*g+p[G_fQOk
+k5=G"[t=J1s,SH=lEmQ?-&X1P<!'("h5-&-HV?4,2l;>EEbQr841N/c[l^TILA]Cl-LA54;hH
+bE$L=u,9kq0*4Eg2O-Ia0^"L;5cf1U#$gFThJMCZ=GrN_THUJ#$`Uhla/3WD6KCc^N8Q8D6]e
+!fqoGSJ\ik$LAk;6e3Lb(\H>'d1o4n3<kdL`E-I)rWA=^WpH,PHq`\A]\R1n,qU&8CKYqaK4q
+-JKcA*?$aS\22VWVbZuM'*OqjU!c$W[rXf\^i5,^*b,idzzzzzzzz!5N7+$NLhp"(2JM6@*#X
+[.M(EfMbl0>3UDAFCe5'LQ:S7NV$+3>"eX5\:BY%bE^NO'RU3?QCG&/YE7TG!n&"iUj#;r>C,
+o:]WQ$@mk/V.X3??Vf'@Bo?5DqOI$"X1rr)`?@0t-ufnm[WnZS:GQiI!R`uc><<U2;c8>S8;<
+Ge&b25GGWGcOmbp!pEUX89AA>o1iYAJXVscd124YH%GoHDpgf'&qKre`tMd4O%Ybb4DO.r_(D
+&c;:RS(DU11kuBP4kPPY7]1Y\MCU?CnoskfErB0tkb`!U*hEtk!aJ5>2l+R#mq/]SVl.$M9OI
+d2g;-mCOFW:9q$0g7njUSb"hUAc6[Z-b,O'002rhn:<DY71KUgIcgFB0^P4k3>koSi4<fs=PI
+eD]+V]Tq?$2HL76]14nCguh]ScVKJqH+?JapUtm%IfB<g/\]"!W;]:[O,_bM/tQm7>J9sa^T$
+k4%kYB(cD=S]e`i^FN%-JQDdKDd[/%Cp6\RilH?ViP_d,C6`p1+_c*,C<//dhhm2>#"X(TZn3
+U=_0>&El!2.6"f<c:i^jVaQ^*)6Y$q=%106@*iKWP`#k[C(>(qYC"D)sr'W[.=3rCH^7<<I\!
+Zo4="2ZZPflP9u]/33-[c?JaX%m:kZb%6B=;T)PAE:KY=-V/(gdc.6pLcjMBo51Hlds#uqN>h
+8M]XFY/BKg^6!I-7@BookrhZ;dCFdbV&$9?2>dm6)rfg!)@Peba67e[o0LB"3c^g%)\]5P9'r
+eCpii2NsLAQ:uUN<pQUuoit&<=Zs70,0Y"1m4FQ(Sl4,f_s2XuatqgAAU:rN]!ZkU`F:"7@6O
+:r?7r"%r:nQ0:J*KJ]n5lgMsnteH.(\EY^2DfrDN'&X4d&jC\=":\Xqe5Sg<RNiFbaD'/`o`e
+O\$3;#ZX0otIoh>#:-TM)3q5Bi&Oc$3BDI)''acZBa29;VslH/tU)%lL._pSgU_PO$CDZfq'?
+&cXdU@#<iRj]mYDH!n+\:+MBKpH=u:kV'eJWo_"#Wcf;K+?RMC?JW\g=]C^mIk/Ust?m6^V0G
+.[\`^5<=`r?:On9J7~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 634 554
+%%EOF
diff --git a/doc/users_guide/figures/cups_printers.eps b/doc/users_guide/figures/cups_printers.eps
new file mode 100644
index 0000000..f08ec0d
--- /dev/null
+++ b/doc/users_guide/figures/cups_printers.eps
@@ -0,0 +1,572 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_printers.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+b7b7b7
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUBp.Je[Y6#VRe(FdS/7Y#N/Jh#3ACK$'G6?=3K'qE>Fi$5PH+:e,oBe=lB\mtS#kM^!I
+,Lj!1q+HC'.66C'2caC'2caC'2caC'2e7W/W7E]D>UE7T.:'\;ZrlN&Q";q-;cd!T6g/nerPe
+W7i$KB\>2C'UN)ZP"''8T:a[;i!EY`2WL"l*lWhiZRTEB)Pb'+K`M@0QSLD\R4I/=Zn%'?#`>
+d+FtYl[GT:%,[_Zga(lE(OCEnX7*d%PsfP\Er[L3s6HcuiQ*Q5o'EfOUZ#857R)!r&*4E"G/;
+Oa<6/S:quI#]#Q^MF>pWM+<Oq*\X"n3C)^*I5'gGNQ:L)^Oks.gkF9>J\bJdYd%uC'te?:tt%
+#I2OuW@<<bH)P!Q\+2FJK[WEdCF`73B`-W*fe9:Mt/L.!A4Zemo,I#NkrZ<YH$Yk#8ZfZ-(SL
+j,:K5PkQLqSq0h#_Rn'II<7)(s]n>;WB+6=R4>Higu.E_4(lM*#!c7q#+!^tf=#E2X4.&uZ7%
+&#]rM$E+Cr&#]q"&#]q"O7Vfr!70ZT?SDV4(!aq7g<G46T(C^;mF>;(:Z^.*P2lJPP72B22?l
+!Ha1f,lEX7eMFj8gs\%TA:IgYMG@pe%F3Ma_W^3GXk:4esp#dnZfq>*h8(*:E`mU;LkZ.1cPJ
+_Dql[11sdpFe7(H88dE@Y3>/W?[8g=I9Q4S(]-kmd-9=<*Ru)ht;JbVsdg<h7kVLPghTHP4I)
+$'3-cdmoc$;)G&C,IM:/=6#1&>Ff3LYk'OX@eg=jMs1Z_J9@:9d=fC5`]=X6[pdq0;jpJ&W8J
+8N1BPd)F?`]LR@5Ga8fRr$QD3KAeZYs>FoXSZoD-TQT#=mm;H`N.oIos+$VuN:PmnMt-S":L?
+[*c3Ud`2AcVmFTEpdo-m^NQ?Xo`r#S<TgI;2I(SajmW>V72D*4T;OT0NuU]GeY9co@-jEWD71
+rtn5^=ZL#*o.^bVOLrZqoc,d$r:O/hSp[V?b7g(mumle?]nBHB?CD'b1,e0b+V0;0T[3q/gsP
+&<0IDg\n=X2[PD5%BoU`dfWfF'hc<h]M>s1Tl_@lD1)(<W?WSqRemEohr3&;NdBFD.3-[L"NK
+\C*C$L'V"]1@qs2qGeVWENTg6h:n&<4\<Pa)bMu$/,i*9qi8e*CCmhIm3Lpo!_Ob!qI&1Z2.o
+Q3(RsDQJ=s`)"Z>-]j)IrIm*A.FGRTCNK%>a)8Z'e)'NgG=NQliESHgnjS8ODmJ[Ve)'VuAjl
+cPGt("Q(Ou^7c<k@C#N*[dZ@Z#,*p5eWb7k9?lG&aGcouD$HtqY21]Rljt3EJq\nc"P!c@mY7
+n\H6B='hj4-3_H050ho=Gr(@!=a6)6D##4d`11H)!VJLrP$E8JTZ0`_^lUX7*6WD1Q1MTr0g]
+07gcHF2ge,d0,78H*]8<Em#_(M!EL)!%cgT7kupEijUjACmWNg:Fkr9CoT3[HZ*ODsVV];6I#
+_eVdEDR8)2nb`&T^O/X]Y[R=t34ZOh:;q,8gFJd/)[>"I_0$`R-[Fe)dqd,/RFPO@EC@`H94,
+ohkH^KP5h^7D2e0a:sLQh7FadP%_RhAql3oBL!RT0Rb`bNpKp[M9n+K^DB1n2%#-Mb*^W%E+G
+H,"Q)[=ndBXj:(<Pa`;T)bKA?"lJHH1S)D$h3&Ya14<`aG1(+=EoZ;b;*'k<\Lf^FDBlB][e+
+pc)7<!>WT2N$9F8>blYZL2D-UpQ+d"aY'gtMg@qs0rNqmeM@5=T9QI4R&eM`4TgJ[eT'1ll>S
+#*Ptk&%"^N23$6HC[#T'h2*dh"&)&DX/TTPIgFb?*OMbRZsVK`B%ENQ3]?JS"1EB`pLoYOdS7
+trO-C:m1p(,p\PJM6,CHLN4U%b4;0"\;6qbYT0rD9m*QM2arNrLd2Z>+DSPRCb,lo&D3=I&Uc
+.d&"r<,TCJt#L#i[]j'6E`u[Ujn^.]><"LHk&>`unXb9"7VWP$Z2M]nDLOkp(IW7T7epI+S%*
+:qj&Yapfjkr/AcB5EZAaeOFGhITZ,pDR8SFf%LP?4e('%c-#D>qXRk#2s&dTrkKm4;Y"SGhC%
+.Ch7uH2`a%JQ*`ANe*b$)!/-"=Mp!:psGZT?UGHGD7m\s[=X0$cAF>Kl_kBfbZJ`)A0c04b9q
+F8>#`AW,iI4([Gc.b?Tq5S(Omt+Bj)G%`*I<E<c\F@Ga)t4eU1P?eGl@-kF#COGXe_gE+TtIs
+DEkK0@_#*'i%L@FbGW:2lGI50s@D4eBa5$9e.g1;T;EAFAO&,Xs*_g[(FbRUA7S1XLATYdRX1
+!BgW""]ZUgp"AS`8>(g@@h.2DBlONqj/>S++b(/Y</\"!]5Ybkf3QGr3Y=eJ/-MQn,Vu`fn'H
+6Jr)I!<<*"zz*m+7<om8kXigTJbUNdM<F8ia8pg\"7O/o[3=__`T`PpH$o(DTf54RA8%c3H+]
+sW"t\ro9IDW6bYcVeo+caEQBl7.E&EeT!I(Iq.B0-`KW2#FTpP(R]M]BSL9/LrY<1"1Htj/*k
+YXjGX7iRu_q[Ie<?r;4\:0kT=S)hq4dYG:Z%8n">aG\6/=P;_CI[-4=6`$%Uu^QP]\RcW@c?>
+%;SrN7Gie0Ck*Q?-b13Dni!>M;Df6?&R#XuCSG8oo(9DVhRFE]m9(RlQpB(20Pt"bA__UF;I,
+PK300Im#SnRiWm+A50gd<_ZLA9f5YO2F:?WCTTMsHhAAQpi"dYmE5n-"96Jd8V/`aUD#RNPg1
++=PqR4(9mAL56\qdC8+##KijQt$4]0&mi4%g\-NS8D)Fe,O?MGt0OSe/*$'F$3:2^fg.SR4!l
+*oibQ2ZY/^$1uH+Q6$0dHr,=-of&HBd9[gWFB)$3s523CnESWNE"NT8Bcd#eJ?SP?3MF7(q_;
+Hb3l7-^bF.>HJZ$/\+VTkNg[ObqD)+u'"-A7]7-lbhFtf^)c/-d'^a<iGoPIOY;%qVk,-b"T5
+'(Q('^KcNAssscBdkZlqE^T/]5Om.^[f4<gsqVBu/u_U>]#Q`uB/<hAbJcDJ/.^(>,*irMi7I
+ouGu.q^g6HG.WPEqb.$TSN4]K>LU$X%])[F^JcdI`AOH'AtM[c8m+c'X`eFg;-P:F2.k]7Ip:
+e(nm[i=,)3*df?2!sI48)g:8kb[[Q.<Xq8>=&Y*3d/I-eJRq,5<FdRBQh)6Nj@+$QLbDC5tL_
+M"Z2fBu\IWq$DG(>B0tI8CTgc5s4H(aVJiDsZ4X)Y9qH>ALqACC9Un''])q8s.;;kL:XF&8`U
+15ocl(Rs*JrigXQ/(A#.K#?-H]/WR-caqlp`ldU;`>.0F!eX;>>gJE"SekT26\g_37E965:W8
+,cO3ZC)4I[[Zq;-WM=G,V4hWgn!k("/G/(s!VD0==^P*I&enp\JuS3!pa@I8;.0U,XG8a_T9A
+7kkkT>V&sdd#AGraCmn'>R-,HU&`6^L_TV_C#@S.FA>>/#^7D#2o_d(b0Y.W`i=&3NRkEcI`o
+mTB\T:6]km72=n]!Z]_W=Z,0_sMj^cna@u3-K'\.#2Mk]\_[)H!SId6WDjSZ\h@]X+14o^[d4
+D-[u.J.XZ(CBqeVr#*m+6DqD<_O47[Zn%&hrsU9QgSZ?kAZFWOa9*&h\N\:,8Jh1iCqRgjC]o
+@=^XD$W@/33s)1>9RT27\U]3%B6%5'A!YrJTo/<G>?J7E\\`&kGCn$1.)jO7Rg5D_,jn*ij#M
+Kc-Ki&qV6TFGH(CRf\QcPt"f%%'>5<:o]V:Y%3$!F9j[*a.Uc:h`JDFQlm'\R<_(0`M1>5-/m
+D1-EZ8D5S.ae1;,Uio]2g2[kf`7-1rF.'8@gU;-ppA!l8<NEN=O-SI:794a]1cpS`Od*97Q`3
+i(-XV1JJ[oB,D%l4c<*^`.G(_nkgDa4t7APZ5VPU+"p0'n*o$QqYF*!>SIG+$_hqA\!Ib8f*W
+#+'eb/n:qNIGgZ,gu*lqYeuEC[5#Bb0MhI&5s[rQlEbD;\!P/6ojH=LT-Hk">n:q,+E0(g*CL
+FK3pciE"dq/oF5<-=Q7#$)iLLHPoXX6'N=_Xd<._713Ya49HQjXk3fg.Q]$O2;4+msX6R+$DR
+n:qP<[S`s!1[lRd^)J>qoqNPI3*2dEWNa?Kc]o:t8_7\lEkJg%E%iODUZ<YIrqEo%Y9_inJ#@
+J$"?nm"&hUl*4b@\oTlX4+mmC.aj-Ym8TOoc/aaLkuK*NV;JfdrCE5Y]s@)'eoc;oEjAtm;0l
+F\;Sh/$9oHMaLQ,GVg[]-*4Yg0CK5NNn!VYLc3V=^HB24>/lF]h?c.qoTm]B3-351@*Zj%%9C
+[,2!o92YL%\U4iVm=$2&!s<cepD3$+=j<A3To-r<P,#p2lqG#p5\F_-dU`eEP:n<S\1OYPfpB
+nf`SjcV;/==QbcFkA3ia)>9>GgD4453RBZ<IJ]fg4d\bC%Y3i9nqLPu_-u>[l>O/Gf<]aer%R
+]*^$)n4A,2A+uU%n0)a=3$b37:XCSGJeV[^E[3H.7&3ejOBG:n1mN22d\uX(A1,fik?@?p;2M
+:$-%Ig%!'SJbV.2f30K7Xg6)G.fpC)mUCFu<a"n=#k($,>L]Ck%Q7NM0-mu2:A1=g?'752WoR
+\u(PpM^cDRr?nI\<-pbF=3db;!\cHm;=)s-=iACS(/!oMRa7>WK2@g"54RtP,m&+A8+b%0P8H
+QI9Zauo4MHXgisg=GDHe>Lt^;`>)[(DG=5lXQok<eY=]VMEJe\htAkcm3Bng])#G,gYo7]PZh
+[gEH-)mCG0AZM/2tDOl@ieFe$d$2kdFaAio+rO1RaH!=oSk9R]t47I;F(R4]_esD0f>nuOjof
+=\6Z+)[6hqRCq\\P:SHmrOu,i#MT<GkgpgS1F,/"mmDBZd8#O01J![gAab1TfMsn/\/jl>m;;
+n`9T<<b>s4jpZ?\@:0:;[k)2&7VbnFb.#d!Z*j!eY"CoIESCTi^9+l28k#p[4Ypqd<8!L?;lu
+(\)U#XM?A6RT0=+&."MRU<jIXGq;=!2%:Uq1ip=3h[M'\GB5SC&#ILm054j<Y(Qhm5\\Mm.kI
+lWu%U+JoS[;=HQ?b5N,]is1&@eFW$mRs`a)IKr45"kk?lJ]$j>ogAD=\I2;OF!nCDth)dX]Oo
+<2QdOL>Otp.h0!8jhP5!Gj#)6[mS]4O;oMe>K6urkD1/hkg2$KiB.!3E:gU8$s!k-.jkK^GD/
+ZQpdlh_"h9-,CZ-TLCK.BpiLRAI"]'Z>t\je9C)Drk"(DYTT-(7V)Y;CaJ2;ru3K<\GPSD8ZS
+g='b-%%Xki1tlY`^%IZ07AYj$BpR.=a0q?Ao"NA\FhJ.u'I@+C]fXqro!CAlX]jNmC@b#>UM[
+Aj*IrQ4XMsS.Y9sH'!l#RPgM(":?QX.cD9)^Wa3[F!KQW.9gR_-7D>TkqinTAm&]kj"Bt%k`f
+PWdqii]&74_7r;OL',^l(%I<a\l_]Sj9OCJo8nHkgD.J.;P\Mc'Ci,AL=7_$!bH-a[a]IBMln
+fh.0>=$uOqD=BNV7gbWY9JGW^^3-C4Bb"Zd#YK<HJ2BL,&Sm%4JGt)p5lYTn3kO?:2[hD)qT6
+j)oMIc$]>#*i"ZTj&B*]UH?X3C595aDK6Vsu"1h?7OZ>gD*GjWd(#[%^4-pL3srpWGI>\g@rK
+-PVc5A>G4=nahqQB6N$ICRcZXXR"+!_'j4KDgTVg;<#Q5ga[m.q,o2TK,[CgV'<7-,iE..13'
+f!&'jm?&bV-1MG((=\>W&7p`WD/B);BtM76tBIIlj4EOU3<V4qnWcc''_FgTmR^/K@)^?n`s%
+<ZB2jOD?SVmceqo0-NkCqqs0QSMmTgP_1LXWFocnt\^W>^Kg(k15qlpLH3#Os$6OB"0-ub@YG
+u9,boH+-Pd>;lfe9CZekHl(TG[%%-u&5Cjk<L#1;`LKkEJHF?j36tD(Cf[ci\mOmU;QX*Qhef
+S5`o<DQ/j\o=ZoRuP?\BnaZAe]-P9=UU'ANMW*T%UH,CpTa5ngj`$K:/hjWASFG_[`BFa:=@#
+W5a^kb]h9SUoPgO\U2b<PMG'FSg*NBX^1:!p!T/k5:OLuUlDBbgdK_OkF:VNV(t*$fjEdl]S!
+P;[KiQbj4<cgW1DAub-V\:\%Par!b"<38"4,:kaUBNc&JKdDMZKDNru,o4e'#"fO"?chi:4&_
+qq!'G9r?Ca.B<S=)DlnjFQSJf,13Q8gWB_gV,Ckl3>?2zzzzzz!!!"DF3(-=;=LVZ#6$lHXs1
+DfeHQ&+)mQucX>[RME%?4Aj^Z$9XPhp&X>Wc6^s15ORsd#t3#BRa]:>g)>a"7"<<-rif2C`&'
+8H@)5!]l'J4Tn@+%Agi9eJ:#5Vr_RJ]S$>U&-N2D#d8l$FMm4#do5/>j:"kZiF?AT%_7('YY%
+#B!0j8+OgU-'&8Rma,FoDd2f\=>&l8<zzzzzzz!!%O>&H7NI>_H1F&H"h]moYk$(QJN`%oXC8
+VB`#KgkJn"s0em%Ao`,1rE1B9VmZSm#UB@!-b%5hb3I?E[VouJ;Zo@J;k"0g+2#ha+)&IIAH9
+'a.[mLuT;mM"^eCn-S+CJ37T(oF]AHXh_;@0YrYDO6>L)pbqC=B&>R_q]Sd3aLSd*2)zzzzz!
+5L!)+1n$<pipp5^cQK?W>WOc\gH@UF#U?iDVu.O'H?*;`jr/&+?(t]PmWS5m$jdb-fW\L!C)s
+45]"*+[]I"0C4gR07<3/'qLJ0>D-TTio$i]3(Fi@^%?u]sQ2+EHdVj]jGjlJ:a&!*qP#iT"&t
+QLcB7_A,%:"Xf/ZU<]6VGt,P<`tm'(McicVn%[^$t;*JY1+U<c,BmgVf3gWru6EUUJ%.1fYJt
+P<s+o$G/CklM?%'%.7AO-\Au$i/-BK,Oe+j1aRAnGZ#L]zzz!-oE1n8l(2MfAUPk>"5Azzzzz
+zzzB#+VF?NjscC@2d7_=Y,Hb'\r&'lseA_^9b&d@/8^:MTtIR5&XJ;Vf6H;qj>_197_"As9s!
+RC8T!4l>JN9@?_k%XfJ$fT_d:YjbrMWiF9%=7'dg%qS%A2NjO_cGVBTQ:t$[n[6IYQKt-<RGQ
+ZkaSj<4AU_CXLA,8??K,_)./eeKQ<_>&1#j%AV7(-Eg;;Ec[+\VYjD;98]$Dj5RXJ%MdsE?U4
+6d(fGe*?c9ljt?"g2.!2m1g/q/@kna3.S%@0&mJ7YY;+VGP%igcme<`$3*OCVq9^fc!lTa:_h
+.3OS\"AElo[>"7eoBI6_]n0DA-/[\F=OXdGTI.i`Wa9WBb'K*_$cW*ru];gi!GBE3Cf:QpYfL
+mr&oMB?M[4sE>Vd>LJ>f&F7M^=4S@%(k=.Iotpa0;4iV7O^$/PR3e/j*!8<2sbq0N*WJ54Q5#
+28_arA8X_<.d9ou.FA%D`kmHU+/7W;NJYk0;l=59glcTNe(:71/1QZ<_Pfus?BJ9@asNlAgHf
+8?LPeY;R&N.Tr!@F6]F,sDa5#@"g76E,/X84[iTci(2DY*QH,?fpm]/6L**NYhrOOW,X"C=bX
+a<o^FoW[q!m.PoX"EhDJKLGa[SUmVX%-pJet&g'EnbTsZT+"nf(;ij1r10>\SKXuQF^nnp\lC
+OHjQ.h(A:(:C"%PtU2dS@iTOhN?*:.ocOpJKeAb%:n=#F!QWG+VeNL$HVRf@)T]fOd"kVLV[B
+YVM5h-YHbfOV3]@O"):Ha;t/>F@H31e=BOYE5,17"GPrd_PCFtOfB7_E"@q(oL?#u/kB?mQDe
+.,9Oj9bG\5C&2Z%=dWR/r1Npk<E^O1#Dq8EX"nMJgi!pmb-sCuU>13%Z/3m.B'*FZ<SEAfaeo
+AVrTK\US)#mcrY'Q\T-l_#&'t'/^%5k;[66.#GT4PU5;_DUqs9fpp6/.)H34/_X-rq!J_@"2(
+,b0j=MikP%("PFp.8sF7(UR7U5UW\V)\%qP'i^-[pX2Z@^>Ti<:UXq8Qfq*0NpBG=!"Fo7Z/)
+M5g;5L\*i@J-A9X)E[e`5BU8'4K+.K(=]W^\MI[&@VhC;HjT0^G\Wt46@U-Z\APla4[V9>V-H
+W+,r@#'&/ul$WdSGp)>NVW4Ok.,R^ZT6"Y@'jSENguTU9]UKk^kBeEhhCEV[>@%-^d\PMWr,m
+7ER]X'7K_.Q7T.X]I.J^X!"9(VB:EQ>/K[]V,bRa^8Z*KJ$aZ!I58Y4C_4d]VeQTkQc=]`kmU
+V?W1/,:`n)csa1ln5V2nlK%/na?IK!VBD8*b/AQ19BX\1!_Rb:A#U\e6BP9IL7j*8rj99Rr*-
+2^fYN>Xi,>(1K=\sHuSHg-6n,YlR>KV#8mFEb)c&k0V^MpPA_09\:&>9oNPmEX!?TA]/]0e1&
+!g<q.jpB8l`<@,KfN2@+LN1)>uNFiqh)%u+s?GkkCLUXdfreYd9W/4BZ&WJb?6m]'Bk%(or*m
+o='CXTs6eRjiY`C&c"R&G/F`jnfXY%<F0bR#NKmtlpLbc'h7C7AiocpfFAU7[Bc8eQgiJgLu>
+J;"1_C*NllJeGJZ@?9WmXp477K%cO?3K^0(%(1e89.nE#g1]POeE6*$%A.7"FFO#+6"%hb,:k
+LkFD+LgEO/YMYY\`(-UY1"d6s\21.@3UKQ4CgAK+QPTH0r=5V%DiCfh<P;VRA184M%OV(o-]q
+tRVhTauM#-dNn0907BaUU#?gS+8$8T.'2LM\[PdbZ6Ph'IWoka@K(?RcH'"0epguq<??[RH""
+i#&WKt\G`k4RFX$jU[m^N1>Sk6Z\b^)4/qF,=@kn2$F_l_RP]=)K[q`#i8dX<1,M"d]9VSX*m
+_o@@KkHWW$S>.`;UAHi(#I.jfO!Gg'WhNr#*/GnPmE=Qe9Bhqi\$."BDcHoqe2i!!(sFh"?ec
+H]E>]=W)s$BC1-O!u#)V_raIgigo%4bJf&rY1\N>;o-6Y]Tq2g2*/)=i6L-Q84<;[[g<RRh"D
+.Fp=TTFX9g<W,Lrih*E]VB)*CMXT81NO!eJDbDnq5UF-FIbA8icG4;*e3/Xl;CL(ilqcVUE,I
+BgX5A?=s/)<F6SfW_;/14NX3bTOFI6sFiW,8&ulTD]<jk!%h4B.-ZQJHFi#/tqsV"tc:eLW-"
+Z"bUI""eq.SWirGHFmd0Zh,90LOX?+k1MZOE_k;%<U,l7n&Yb'TWk@&KP/V1:K!`nZePM7LIO
+$+4*%r5**kULfaGK.rbPSa#@"'A\STc6M:gu,N>98VDO4@!T#iip;-rQh^7%^92XbY4]`1pi7
+?t&I8#au8$I+Y6fdI<V]"FgeXeTSD,;kUS6QUa/*0fMH"zzzzzzzzzzzzzzzzzzzzzzzzzzzz
+zzzzzzzzzzzzzzzzz!!#sm%D_R;!:V8Z:`FWt;JkS"IHh,$/"]$@fm^+G*+t5)8o:g9[D+e!P
+3Yj?ISr@Z._jetk5=KGNH'^,hA`D1%T(ns]XQV[]'d->C3pbUg:7!pBiD/qoeM>iHAIao_shG
+F#.7m%1%Bake*4XIr:A6*E[KeV&*HK#on&)Gf,`B7-<T0V.D^/6.=&D^,'6r;?'=QhX-F/73<
++aeq*1@-D&G\J6<`&q7QS`-P&A@:<Ws+F4#%OlNn),cm,**k[ClrY,ZSkEPB/7J[r/Sj11K`f
+>B7\<2-k"*SUUP6[G[b43ZaC)5\j>UXfSs+QsXr3gY5OG8VPeT*UcCGAipUsD8S"MNRYEDT-I
+\ZdR!Geg,@b6V`#hY^/uhhj[N-23X`@GMjcB!m7eE88QS4cX3DdbgCU>mi2bCCpoi2nn.5OFe
+J?BBPS?$%,itq2nmAIV)+3\jlVb-58ndd.=AZ8J[FLe(C#:%L0NSRZmH7Cb8V`RM8LlE?>WS9
+A1ink$;dts)9fjeEf$;gA_!6Vs;tURV2KVu9b-S5*M6g3O9u$K?C3q=#,O*Qtg:)o_E?#L3".
+*J\-^IY4"(0WMP>gDclGZ4*/J="\;iWFM8WDN$fX0uRB<Sbgs%E?FDgO"Setg_SFnHl$6'PiW
+s,r$#Y>1V<DG3#=U,Fl11Fn)qUDKOgY/WEBEE)l`@TJ,g'ALY\'[FY+%1;m=[pilB3ij*+cF-
+g]9l5P2)Noe>:$;Yda`XOb)0C!J=6&&Z/kBSK.c`KA.lPDSl\08(GKO^LJZBr1-!(D\E$LcNV
+j!P^S!/f%X(f!'EqR/KTJkaj=%7#:*>%DgTXM>(4Hf8(-eG-1ZcPZ#YfWlHo062/?A=/=Q.kj
+3A'",J%8osNY=[#W9kndm=R@R=[JbJB7ab$[Ct6Y><o(!JB@Yif(d1Z$dhr)ps":+9K"s21b.
+fn(I93"@!c%W.5](Rmg2>q&eX$5Ibk[-OJ`f6[r1&06<0Z*CrOD^ra4g&8)"9Y\2XiiSDrZVh
++2ImVakY0?~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
diff --git a/doc/users_guide/figures/cups_startup.eps b/doc/users_guide/figures/cups_startup.eps
new file mode 100644
index 0000000..e83f6d9
--- /dev/null
+++ b/doc/users_guide/figures/cups_startup.eps
@@ -0,0 +1,596 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_startup.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+b7b7b7
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUl#,OmZ@sb-PkI90FW\d2XLJ]eH&''4RreX?UYk'MAeeI5jZ/1LQ]<:`A8td&%N>2i*r
+t`K%"LG0$+5>r!O[LU!O[LU!O[LU!O[LU6.Db_qQKj!+U#+*[BPN.5#*kXhJk"3YoVb'..YKh
+4B-1(H8+lFWeFGCN0JnDq8]C5!Or6pW6P2bfqZK6qPXiO##k.q.DDQdn5t;A\;L*OEP!PJ1R<
+0MEr9l2_!O[-$Pa^d`D]d+X:5rDhWlp/KP!EB[Nc)JHR]:aDWKJZ.;'g>%:LJ079d`pO5"9ee
+<U;_ZP1hH5/q+#:Fs>`1c-hf'T%SF2akdQOO]ZrWhd>`+Se)SUJPs?`MO]sAe`is)k6IbD7:n
+#AR>&$d@R^[n.`:,*U:@R.so]7\&M2k?]-m<D.epa";+Z#Ks%d(5]K0^5?/:3e94V_)RlQXA7
+ClEN2&I'm#<81-]#+/0U3PJE#.'[Z;Dn[P0,YJ,.KX1N!aGohWVC..W\JfXq!\6Tf-j_TJgaR
+TJl9fTJgaRTJgaRTJgaR56$!3E%`:2J0B.eU6Br2Rfu$JcYp"q8"ZnjPt/<A`93c/E;7Ff;o$
+3gp<i7OTg^jj(<q'sD3&SqYJQG]m%`<(_ME#AArfgDLZW%j>&=^^RcQJ*)rJ_NL79Kl`O<;/#
+h8"8X6hV=rVKe0QL;tY0q4iEk$oNrYF(`#F#C?C*o5HZVlI16=SuJ&Vu-8$E"(?:99G[s7XEM
+Fj($G)nZf9cRC2EQD(g>M`j\6LFgVZ#lbDc#h5jiUJA_'7;WP;uL`[sBInXno275:`(72Fr60
+h4%Yk;41V'F6$DCls]'+BiUk\\j.fsdsMB.Sp%2U,h>X/L<PF[*:]ooGcSiT!-EMneR$H8[];
+)JGt*GLGY9Z:7p4(B:6hjus%+f^=ZcPM0M4D<o2e1@+FsfJ8@Rj.E2,SW;r*&+eK6\:LnpcF8
+MI<U<LeCe++O&jQc\Pkua6^;%.RCA[o;C--+:c%a4+^X9B!j7);JX(eZ42XN_YCDH*[6Z]3uV
+!GG?>I.YJ=^rV`Pd$=B(^SeonH&=Tr'1maGAYTP;.Pno9b4kbqq[+.LT4)!U-(h\1V]ff`>6t
+3csll+@Z-gp9Pn6ubDiZ<^slCYD7\nFN8-T8ZTXLude2<%cMS9n-9MJIF]Nd@]f:A-\[B,<PJ
+S,3k"1V;'i0/[[=oYrWUQhP/t!LRV[F,!6upN+/;&cW,u`P##*Q:GL;V&](4SQ)B?SmDf[E7-
+'5IGrakEM+r#%#Gesc;If":1Gk2BesoV>6!*i"O"Z(>N[/j'f#igHFD@W7C?DWWb,OY.!u<r2
+L3USH&BWS!h_4\6i*MK4,Q,PXE?1CM'9-$f'$gOn#<jCZ=GeFn+VdHUJjU,a'$[Ad=!l3s]$H
+DAg+g1>F]U[mP7bO*3k2*Y^4S<U'k=:C,A\8>Jf/pG5Q-f(u.CE#GQZh]]N/^tQ\N2s&u;k#&
+@6>][bOqR"&C/O2c+#-9gW9nN$]@(]VQE)Sp*,RNY1iHg60DRLX2m"t_\*!2=I9SERASSP\)b
+T9tmn#rZ:iC.TD.Xf,Xuk(NiP<\F-dO'qFqqE)B.3Yj0<I,W2_2>hP:kEVHs<VqEX7jfMpQ;I
+D&(RoiRFadf(c:8APYq[2Hp^?6=<N)j`ACm=ptY2j7upj$&:stg[oL?\D!ZD13$i&&/7"![O_
+TZ[]IZ$aRYt)[Y#X.FkUL'5[%s@8SYkJh"Ga74mAWQhOlek.Qo5'DXsfK>^FNTUiHAOAh;.pP
+FN$h4\qI0.Dg\:/W:)Fj'h()'8@!G]hS$^Y;fZ-c-Q>pRSYh'RVLi9mR@K!HW4thnNaM,r]%1
+%osVV)D?KEGZ_B<5[?5YAb[sB.V"A4$q4(FK1&3$CV*$-U/CrdX\^`!dK6Hd+m5erWH6+<_&k
+44D\)]8F2C`H'r*:j;%bA)uGI_)ramW)paZZVhgVV.9=kkQTLLIk;0%S__CAZtC.p&A0O)E.U
+g:^YH2DdA*_kKP"Rs:KGm8a=%$f0u\#BZ0r*3LHnOfS'!FfiB(<W6C/>+#r>?,\.kXaZg_IB^
+o@f9!o[_&Z%+dJM\RKnR'qD0f"SSUfE6hr\h!8):e('su\\^q^o_dHr,tjGp!R^`SBW_]/<sm
+3;'&T(%+!oA<o>8%4DppK&=/5,@q'^dipEo+]MaK.k++l58u259F/Rn:`UFnZ.,`[""^C;*H(
+-+Rk)idKttn:A>XT-:`X@^_g*5rpJPjSh6m8NWQV>0q<@`1W4%F^S!JF$If8LYgPPrJb@@:.%
+cPQ&GX,4Z-5*Ijj=55?^MT/zz!!$t2Q>]]oo.^94:%S4Y5P<@1hY[nu's$`*ZaFs]C<OVRX'*
+0*cdt,UXgpRSi1':XD6:Kc?'ucf2ndnsmm_G<Y=ni_d7"6Mj:)'sXS/#b?=%YOC#N^(,mW?$g
+h]b$Rj^*L0QVP]rMJmAK@#oWmFgj@V=ACAr-P`!8qfLI"l6--f:2GH<ai14GeWLNK/W,ESEPp
+[oHnn4VdpIM:@`:@8S;tFm]Vi,S*N(oYbFd;1BY&)5GbK)VZlhkk]2<r@5W8OfIcp,f>\9LQ@
+=d)V?K_/@7"A2>VFeJWL7Vu[\r:VfB.BN4'6PGYAN1+<`=G(0>5a!n'^H[TH67NW;_.sDH@@p
+`#&>alD<,bll$nSV69HD^=<"bkhNO89/a/e<d&8d9T-E]ijC.WpQ#3TRV#39R!C1mTX6l]/Is
+!&2TlDXipVe0-8\/YB`H`R[^ds`B11JMVYS1T?;qJ;0=l_eJ``I`$At<&[\^_o&:V^k=o[1pF
+hN$V`VlOb3.98_lt[3-l)W^[2&3`e7lnMqkuY=$Fsfa!1O2+WFj>l?9CXdMCmXk^'dB6`!4?Q
+JFhOm5RME<<3lfm0,<%R=I'ka54#,)nl1MKUFKX-=N6Y*\Q=do"8@A0fj(d$`0[9B,V<FDJ43
+&jol2UJ6+'d)a<#`/&dJ@".?L5knQ$TQss5\LR0m5kfXIW:KH+2pP:$kR1de-?omF:<\*LXTE
+*EcrV[B5rtl\X>Ao<7oK2Yt%#[Tdf.RS=g>Q=<sac'<UaVN_rp%543"h[]XT)RR&kr+YfTmBG
+m5D=kM];1>DL[X)<KIi6_QMqM?8"r+a4G;ls2XZm*"e4.(8]cGH/@7+nF;6m7tc$c(@j1fG4X
+'iX3lSJ&P,J!YY\WDu%M/(COkW1G`TXSabID'H+p3j>/Mt/@NhA9WsZX`C(b_I4Q%<fC"/;Hj
+P\A\'t:f2>q[[O-QHVl8oi0qUo?+;gXl0M+\qWd5J?>\Gq[XDr0ek3[$'Zch+\g-Os[FEc6GA
+)<oIHqBPq`!mEKC<N66e$n8,^H@.j%Xa;gI=t?)QasbF)QYEoe^QQNik2-<pPm85;i/JXhgk+
+AhjrWFQhR#NOo=J`n.II>`@_8CpUlSF\K$a>KFLWnjuDj@r[t2<S*'^e!ld^7<b#ns+IK+C9(
+RgRK#]kbZ<l,X5DcmhchVNeqD^6mq.Lp/b>4:Q^^$-E7[2-lL"/eXIa;$5f%0X)LL02Y.ra1G
+IB59\DI3%^$VA/bNlPpMHed%b`/1;G9^(N@Fr!A+MDgq%u/pXI&hUDDT$,WYk-iN0Q+3Hg)<&
+"1H+#FNEE*+G[hs:><BO+Z73K$V%)Sn2qhs!-(u@QG,m!4>F-QVa',t$U>9MWaE-h4;%o,"4_
+aB5kbFR&(Z"h90e9-T`\"@cY\CYUIVG"O'7800Q'U+rY.*b4lHWQ#=\?j1U*i\LQ=8ItXOFns
+-;V$ig'ZTcmB1P/4"I\bMu'#EXiR]O^$(CMfX__I<m)slYrb>?3RTuZk^otGhUO\"fre76Bt9
+4o;iqrFoZ]kEZ,SDDCj*O06Ot9Q]F97)X3Xq<;G,@TrRI!83pt;3hedbG2K:WfrN$>Dn`=JLM
+V\$LkC]5M62'`b;)[S\!_lRK'U%fmSa`*&VqKP&`Wr1Q;oSMTQN"L%HAeRSXdrinB@F6?>ASg
+R-6?+F9^bQ>rp%)jCF0ABhVuRf.pK/fE6BaZ2=o;bh+r%a/=W!n@*]\ISXECNe*&)g5+Li>O0
+HT+]!A_cqDiB$p-]BP]me3TT;"to5_X,4p&Da:.>84:]>e?K2N5[%[\4)V?<,%nH$cf9qDaY=
+G,6,s.H^UU7bE_H\T'Fkm<03`4g-kE0.nd0O;1YYC#%i=gb3qa[S<^rV)]W_ak,BLRVmXpEp8
+gs5,Dr<Lj83pbpptFo/,lP<N^;RHaPjCm\AA"?TlUd.Od?-<H(';n85>?[$_H]gNa$&0RLr2he
+%d-]\.;B1@92?dJc_b-/p1flTOK?cKAQcjb8r97Te0GmPl1"#_OOh&J?IUa,+G-`cH$Pk<;=j
+8I@1>%%$67I&<Y,)jP&)N>,h8gm-:Pi/O4D./>bQ2=3]:RrLSjo=",4OMt3>W@2]1r_?JJdU2
+ZpF'#'$6u?O7+(+:nMilN3aisReV,l:+Iuijj`-lk#de#g4`4+F-f!b'bD,>tX&bn%g'dNO_2
+L(9hHO&ijZ5Q`:Ze<9:+gDb\$6'(k8cDgC;NsJ7+;ua`.8D9e$:&>Njj?,Q<QH,'L+tcZ/BsQ
+XU:tKjI+ss",qEA`(Sn>&,JNJ#P&Jf!1R5T-2QQpqie?jXH!?K_[e*Xs?N&lO]i\[TQnG8-*u
+d)>m!e-H>kcnj[q7toqdN;;g><C&bgB]9\%O'E[a0?UC:Wo5Eq4'#9lLGRV^m7e9t3t_,I^Yaf
+%[W^cF\tB>Y<_N`/QSXMn9<\ZV($jBiQI*AiEML()Ai8q7A=cod<iQ9ZffLNpMf_@@LHDHs;o
+%H6I+D]_O\D_.1\annhQDqT-f28YcQ0,#'L@=$6;iI#sa<VF:SSRMbg[1enGT^"8^8Sb6jlCg
+7/<@:l@>3kMG@PC2+CS16*R6f#h*AV-ANh"Y=fN@hCAgUgUufm*6iZp""t[O-2dG.jFWs*?P$
+;.ne[VQHFfR0=iVHe%KUJD>;=>Gk,<bh:eI.7ZFir<+icA/hlqk)8]2kSlHbgVmuGj!6eLhTd
+t76bu]amPgFV-5i;Af:8I+d]AONg!"AXCuDb0os3jm)>Z>UDuI?7:&/RcWRAH29I[qZaa?hu>
+J"FtfTY$tmIG\gjJ/96:?.]6C;'St3iuQBQH!c'J'RiO0jX%h$m=E8_OQj]Tl*$;%g_N506c"
+?G4O/;5$<BfSUHm"V<IPF94qMUYESCfXZ!!i2j2Q?*L>d5E>sbpS6"[9^-lF,)X4@t17RN])Y
+:S(DbG!(Xb*gZaG&9cXd@Y:bg+Y9ehr+dI'V!6.W$7gi)GkIEHBRg$#E(m-DP`EmJYZ6YLnF"
+U]YafBPTPO=`UsOXd[7E[=.RBU-$aY,4f4Ym9Wh5hofW#`Ku-Np8iPG5d"-@K1fo;p`rR#rXO
+U#N&A57@#Ul9TPTl&C,Rn^a>:qdL_'r#NBVqM6F0S!(^G])@V>pX`crA.baQY2m"f"8#,f`Y9
+"C>nqBbA_QenLVhU;eZ.aP/U-G@M/FrtUhph%AaQ,_\6]V8MSR$Q04o]VY"X;d1Og0-`=hik$
+is63Gml4u[3:/#ph3IbSk-++Sbn'\r+p"O&qm]M[dnc?_*.N,4\ebJZ+L5"0db:9EGD9@1aF"
+l17REM2a8sK<G$b'/E@=2*JD'++&0iqm";X?AH-m@qHrXs):'N*btV`7_8Ko7u-VqL7<lpuVM
+/FmE>@&gr3(j7,CWF^KVI]o&XWh\C?nP&3(q6k_+p=,qLT$pCAU>?5dau_V)if9"sQT@^GS"k
+Of>3E:sgh@qnCR9pSi]OP\*c[=9fG.lC"?.TE@Zl2HV@dP;:fPc$>2@_E>H3g[M2E]na2q-PB
+jBi#ok#""b`&3=UU@NX,25b">E\p&X->!Dm&HLBIsA'>a&:U?%uL#EJ_4peVT8%oOL^>bEAtk
+ZB&Z"#A>^c[&\m#_B>0qQO4LD^HFq$+]$O\mqb235A(=i,%C6pdW_$LaN`=^XpG]LV#Wo#oX0
+$/%<jhKo9!C3eUFI-?+aS.=C6"f6USF753K>[O\?KSWpKI0+:$t?cOA<sINb*-MX:,hg4)[Th
+AuFjbYWs]2UI$ctq:aplZH\r/3Z6Qiq7bUB#Gg24NeEHR0]0q=Wfr@L$iA/&D66nX>YhbtDg&
+0un,:`>Ook[azzzzzz!:\7t,3,AS89K7mG"p*0$!H`^!H(nUi%086N42K0lpA+>BqRPN!7+X-
+5,Mrs4I"2:@ra)[?)G%:\q\pf-F$"BUUFl.Sp)^r)D_H&I2Aj97`IYo<81O9;[c$1hiH82A-A
+65.gsm]%a8dDcRp368!8bcc8LF=L/QZKN+Ia3'QR!I$R$g*Sa?Ul,?%f_FW,pmmb0(DNj`Oi@
+u@nH#8K\ZAeB;LZH4<b@k#A>BcB/?Xu>-_@=KVo9H*8YE.k1"/W;[*[A)BN03,Ef[?UHj'P_t
+C'@`=k>bng`2A8i0RG*IV/1'0'5.\1p*Bm+-PX(R3cW==T1D7,K<?&9lj]hNsn/1p-LnqJ`UU
+s'6/KNfT1ofTEPBtY\8lT5\gS81eG1#c?E#8/BR?;ATD;@Wq.oPZR.LFVu=Qo<@><%HrXJTb!
+c;:"fd8ncJ$#6N1b]?Qsj=-A+_4ug]Z:]=.?!h?Ypq^#sf^`7TMqDV2R*">i^6/)BOq#.R(Y8
+_beN*]G:SiD-*aS"1zzzzzz!!$tJke5Hs\;e(?8+sKZ]qOjDGlnR)2</ft[,[2Uo"A2QM0\FN
+e"ttaPMFMbe^bdCgX4MAcChV<5tAW9M%(pq/5^7_@uI4W[N@k_E;8Jum4M;kPQ5\k$+9^?$FQ
+]b^AS^N*Zb.,Bn/<4MfHkN?^SON)NDWd\P*d,$c2X>4q*-3^D?)$/9E^DjHdO^Uhu$?<,XU*d
+#V^5HDsRH:+S-34;6.5<uqQQLG!k'TXn0MeI19l[VRchh,*6_g,>9hr=qmLTsg[R*gZN)4?$t
+%pd1eNZg^^`I'HL,8SuC*HQgut[C)a*+qmPsCb,G"9,PAgngh"\K#kRME\7"o[7(IW^<0R[b=
+%\6A[\8@01W1R@XKNhB.qo[m@EFpb.,Zd8X[ZO$9KCpjS$"&gOG+7"Aa3<DsNbo5qUK/0f+Z0
+a]>])FjU`T'0Zu&*Fp\!NH\YZ#WJ-#WN2"^aMgH#M0UF]XHj%\o4spLn-+WB8_]q7P28AOa=Z
+_]fOu]A_sJ&f7BO`.'/E)K:*PQW_)J5Y2[.L"HNkNsal"@(%#Vk!JC=Juzzzzz!!'eFin1Aqo
+^IN<-q!LP.W3%LHFsC#PgEDOh`DUd'-<fmFE,,AM(0I,)q5(p6V!dI4<!?=P>E3+FA-OW2:.1
+</+K:@kGI98\[+feKg9AMT0Jo""YVq$Y"N[YK^PFm>]!G9;BS#s8FqbV%Xi;`*&"%;Va=9c^0
+ajo8-JA8MQkUXJYusVD-cC\TJgaQ`@PFsD4Rc:CjENe><ED'4ZW<FaCnB'eU<ot;B!qKD9kni
+\iZdtDH(K54_amN;lK(4af\m.W3$``2Y(n2i]-(rJ.B3T(%pp<)Lpk"q"e6@<M#0L3r34$!,u
+]r[&9aI0TRhNpu+JJi,6?,!<<*"zzzzzi+kXIDS4P[NoaR)\:kPtOq=cEM8BnT"q:G"^?ZY"Z
+3*38*I/Lt<(Tc5SL)bi%.RK[mUSn2:`DBR6>bsa:\nV7n4`f%E%cS3^<N72GD72FEc?NVq`0P
+c8@"RYB)@9VC/bI4pTu0Y0_iJ+ajgOE[IS)6l2J+;09RdG`\\OhrfM%bD,3]K+&)2ck>Ft/;7
+-]`gCi"j@GI&5hP\?5=Db4;Ck(dpKgFLmg=QZB4;GE\MBS=j5Ii/8$U(Z$2L8<kAE:Y8.;G&Q
+%2chV]jj2SNsVB_4qNob+=Z^HnfYbTS%n0m0UTW!&j-P!1hf%SZ=P\_9`(75nkP<q-%X,qqGA
+pe]VcX;6hat0?%2;9kqMZ0pB-unzzzzzz56cF<j>H@eXP=#?HS9pnl/Fb5j*('WdX5sKo[.4T
+pEmGEX/`9bXu<f%kMt:bVX,Wors,qp+4ks#j^bc-.//C"qq[KYg_N*;CBpj/X:(**nb1+tb-g
+,$8Rhu'8G7q-D"6F8HJ5"4[GO^#ej!Wfd[orK3%fR%=aqPqIQ&PpNm[:'SZ&uY+)($HEntq<S
+u&l/JW0i,[i`\6hbAC)Dek&DaR.#fh02ehWj[pjLcoHd$2ar$5j\&c;kC'KC*ASk\4uHKLn[J
+qCo-LZG>kdJ<u-PF9+,lY$-qs(57.I:2^LG=m`Y4c)?Pts_mg'/&,7.Fzzzzz!!!#s'[F?;HV
++DabjfB*6('6i0YW'h5.?a3O7'K7#C8GYjRk;'9TZ8<,MMcDP9-5ccX'mTU8l1m5B"Wd0"bYf
+P2l=dSdR=LUsQ%+cA4A9bbW:da<Q2$'W>b$V9X/2q)9h/kf"$8//eUa-U6KaNA`N8<40!XB,7
+F\EJiK(>]$U=[S&FPXAH<q:jj^kXdc&nY,f##R2O1!NiT9$0dIaSf^0)<$h-[Dr=GA+W7aGJV
+4k6YYWCWk*AQ:1_1\nsm%Jf9NnU>)H_0OuZrg=416=#OS)TV<=s9l282Md!cVC>q17Vr$l]*j
+8n89.a\)c:!)mVBUb_:/4Z_JI%+_c[n[BZekVUJdW[Gk6Df2Pd9QIdL>X0(_mR+bF@<e4u?;s
+_e-l,mCfF62:]EbV:`kX;fn^,^DY?!],'e5g0"?#QOA[eS7TI]0!LY]3%<9eph%De$iLhK2/&
+GqGk-&G,bZE2?g6[MXM*g.Guj2CGFT7NPRaPZ^?,6W50j:/P6C/X-Ee??eOIqFLd`UHN>Ijc-
+hs.5-n7Q:DV<et0%Q2HO+06u>H6Z`R3RVhL^m2ca-a;&^I@a#t*d-4_LnMrSR<Z44C?Wj^%qV
+4ol(0%HN>\7&_[;Yh*.HrOtI$dD?]p'?X+Cin]P@hqYH11Nb8o,WF=B\uBGl^<Kc/&r?O,Xjr
+HBIa6YU#Z.39AI@#A8)dXVj-6J?#!>R1cJPQN[9e"?!\%.i*rI[V,k[E=AT"5/a:'!H$"Z@zz
+zzzzzzpaR]ii9*]s'?&J[#<u;d!<<*"zzzzzzz!&,GTd!s#%;]ZQ&@en?WQ%+Ht;l&2>eauH/
+nKhRG,%&>68t.2q<@?DQ`&JD3SWgKujQcceV'>qs,A6+C`D8-<iIc(?`)U#=>;DTo2O5#Q=I.
+`sA4j-Xk%0_/;sUQWdY*%H#<<RVT/9jO\.2NHSQTa@%7j-f`)8!`O"]Q_MDD3!/C@-,m?q^YA
+l]48Nn)jM;Oce%C*V7Bqm\0b^'AKQ+26![138'$aQ*.IVO=NJSr&hn4`:*7H8!i:P<@rl=NZ4
+sYbK,-4_6*I]jaIT.Uk:h#-5YHP\BI2S<YD_7ap4[L!6PWepaVl52J"\F+W_p+5=,.d^t7.`U
+gM(ja@%ppHc7P;5"F5\!EI-NHA?=PdFbgThs?7a%FS5LtYaRA]g*5*35H(ZU.,[oN6't=io+<
+_e"=T<f".$cfqAk`F=r_9$CW2D,+/<&mcBg>c>)mIaE=!QrR5]RoeaNg;q??nq:KZV!@Q2(iu
+[T#R.W$?!a]3kShCF<%DS1CfP=/Z"-g-WJJIpYS%VEoUI6GAJlX<7b&9-AQ?dHG9+(+[<@\dM
+ST^&f`\^je6THBe5bSBcD!ks?KR@bosi^N1X!/AAPr,aGtLLN*e4Q]]0sUI#\kl*?]os^[rnc
+Bm4K=!(!36lJtA"'9uW/eD4,1,W]&GP6#GD$.PXPqA<nNR.MS$^M$gn!0m0fkeSp'g`N5#r6m
+H\W$!GPLl;=s#GoK[d)[1Gbg9Lmf1n[_A\5E+a7q4YM$r[i8R$f=n#!Y5$Gflnt/7l!.?^mB)
+b>L*\<5MRMH!)U3;`2b@RY;oA[CK-hV,U.ZV^O8S8sW7Q=m(1,&V@8KM[/6fS"1FM;;@EaWF(
+Oaa!nc'U.i"Ds8:ab2/1[AFn%k746,nOQcf@,'0j(/>,g<`%k>u/@>bk78G-i@npfhu-gYSDW
+mi,k1B7D7)g`l_I%(sClFA92SoS2X.6S2ESPmlZ4pB+_+-G6N&re<9`k"Kc0?LR2WFBjVDan?
+$Ht(kPbD83a:VX^G^ojAQl.`SaPfcC=_O`HR03=CtElkk,b?'_128A-3;7?+m$@=&9,Djm7qe
+8urMTI;ons-S`%Vo'A`&Y5?Y6<J%e>j3pX0&rE5N0>8nX<<d($B=IZNfF0c;bfdI\'Yl9@Tj0
+MCXmUWoBiPN?ius_6:fc@H91n]%l3=Wu!Ltqd@%r3a`o@VN3,dip:pocl4D."n(BYLY2Rr)]G
+F[G,\,8>MG1:N@d#cV>,-K#$m%&;]a&b+CD:KpMnO]kA.l<K4N0a9M2&5Z?:7q'sskjf6L<6Q
+>>hg='H5-9<Ripl/HL6lIaYe0Q&,Iklk:'M>9eAD=nhrEk..d^qd,h`dL7@4FL@L1l7GI,t3Y
+B`q!Al4MTd+hZ$JcJm$7o;-#8*LUF-1MGb<^-u&\jkW2:I*PJj0h;74%KU?W2f%&olki@<<WN
+8d6'!e*'C@&6`1P9+p(mPuWc,'fNBf<mS4uU$kSeB+U7W0<'S(Y$Q4I^TC=?Rp@'l"tjKW60H
+_,:_QQO./)<BPR@[AE2lU=qZnS2q^,U=u!k-Jq'SqLh1P\Jj2'"nFs;+RD]f[oj=mA8DmTaO+
+t2U:-3]4[q3#Z78^s9KC/dWY"T5C;^&;S?BDR/($)R0O]Z``Qjq+3YJ4O8TRU#]7E:fB9Ltn[
+:eZClB8Ft-`J]`SJ9>T'([*SW1raEeYYlrU*l3GIGp1IWlV55lnOE3/F1nd>8lP"iBEN4\GG*
+ka[p&nfh<TZ;8f:kE^Ia:C#fJUlI&dX(6``W5'Z8b@ISG@`BfqE&i?c#`>K"ERcU9grL%cB8+
+r:o,dJ:V>)UV)6KMh$r?GHF'[nX7C"^`R7>@u6hnBVH+%a1P]3<\f7rMGrB`YuO6FqM`Q/%OB
+dS6ceI$OC5hhL^@eb6-'Md1)uF_c6WgfM3!jahWGzzzzzzhi'c"glE<QGN'9N"*_Y]mBaSK\c
+_\!kGMeSn'R]d$,*9;>:r5)mlpW<@h\^/E)H[u5OlY]q</6HnHlUODkK"em='G$[4N/P@2PZG
+mt+VFA%sk-.d)H_39ZFB+cge+*.C[V@,[L[-N<Joj5[oSr:A6*FJZmo0;"Zd(:-JCGqkh^2W[
+,f@XmA<W9pGbh_nTQ%C@US@G^4]L\YC-UA]:"G<6=0o2!gms/ZCY-A2taZ*NL]L;:QYi?6(I)
+:E!k:iXfoY-qr>r`uV'X"DE9rMDeoRb4:A$R%[4Q,=t02V36ok-K[_L8;8\Z#li,Ki?aHn)(l
+m%9M<20SBS!7]k>.C)aPUfl2Ps]F0AG*^m[heRD_nc(Nfin3#40*I_d<PeKlh*:l0H%^N(5D*
+=sH[99IdZagg?e<@K#=fZBo>:=W^g.Y:'9l*Y\KoGZ"F"N+AqOmfA+]H:PREt&Oru1hUrb6g#
+[B[!'Q,;8JUs6quo.O17$"7p6%&MY^.l?j=Qr1+7[4N;nLOBDE6cDB^YI8o>W"!LRPY+_tQtr
+$FDbQ'.-Srq8DFSMECrWqE-Uj&MZ'l9W@clIqiWS.^(kUDAB:HpDT0[<;rqbO<W(m)e!n;BtC
+-Cfi(n>NnJ+\!AeK#PQ2KPNI_E'O0@Yf&6rbO;n)mW%epMJKdPs)+5Rh;-RS`_f.D>jKhJ$7q
+f<;6g.h3>0)WGt\Nia>eQXCA..17db"5p(5e9KO\t2EOt21P9-'-D)hhn!d!8C4?UGgJ0eeD=
+/bYT>\2Z/6DF[:tn,MR?J]S1Hf?>c*aG"g(PKaM84]s0X[<oW1Oq9$R&O=g\`OW0IPCk4/a8[
+V4?kbRW$C#gVQnjC:c@r3U*6B?.drV&f02\#d_f)2(Q*`R4qZ_C6MOi^9++fm5sK;CsiY]oPG
+tVm4t?CbGb02c"o**;=3&\V"CmWe2F*EWgG'L8ubp/DLukif@pd):=QHb53&0_lVsiP/-OJro
+bm!c#Hb6+@'3ZBL\5@^_j,i$j5dNTnaGGoR8FXPq2)0Chja(_<Lss-CA[imD,B!cpm,ZYT8`S
+.j(@5uD]ZVg3^4@[[R]5X55hp549YiT#LitGa60r%_r(dh5A9@G)#~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
diff --git a/doc/users_guide/figures/gimp-print-gui-1.eps b/doc/users_guide/figures/gimp-print-gui-1.eps
new file mode 100644
index 0000000..a9319ed
--- /dev/null
+++ b/doc/users_guide/figures/gimp-print-gui-1.eps
@@ -0,0 +1,825 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-gui-1.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 590 574
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 590 574
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+591 575
+12.000000
+591 575
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPu4)Z?8[OrK_dcHH6G#pE!6qW3(o,#C`)Z'S)*M`YO51kD<5\$^^4o[c&>+(!n9Egu$\(
+d>!"\-_U.AN'_3+k</m2W">_K6_Q3:?J.=t:ff9er+\77ssO8UTSLo'pG5MA>H^>V[-)#(sa"
+0Gk3&K>H1Ec4T$^pO_p;*7Z8JHTa@Jl'jgsr3B*<':h=FI3)[i04-Pbq>3AGjj?ZH$OJ:kQ^@
+reAM4hrVis(I4;j\XO[lrXju_&VEHF86,qej^m#+W2!D]XVjo2Qp_C,,$5/0?B9W+H.M$At5i
+5D.M>*_[qp3)0pLE>OED</o_H9@`LND_g6T.QV>n)?=pa1cEndqLc8d2lQRrc7l2b?)WSOA67
+'U"ue\_@b&$'C2)":J%I\4YL5NbQ>'I6KghN]A\92fc[9ta_dq7&@IujL/&re\b'mtG&,hEqk
+hgYO!:-0fi.!(BtLcX.aUb_O5'Z3MZ!MAE`lpEIXFjok(ZTas8DSG`ZCeB.^lQl3pe#sF;"4u
+07kI3H-o:V9X=!R4l$.*cmDeFjldtU6=_&bR:ll#r)VK->G*nekmep;>PF!=ZtIn;8JL%R$Ba
+krI^"aZhjR=eku8MZP\`/!AK@g>Id\19/b:`ufLU9t_0"BeC3?G5-7(_7[AQ&HrOmC?3]a)qR
+%-TW\SOd6>,tD<A+&]T#$'ne9..ujJqd6,>Xt^'c>Fj_7.FQ!Um"oH^Xd7lIUP;)'b0D,?!gi
+A9;aY<S]DS'dPEfnp*JIjU(6:o'?^h:#c?)Md@<t+Sket,Bqt*,a'Y[*S]K)-m/V33jp,\d0'
+OKU/??oWO6iGP:$@f\fjuBhOcJdA+=Bdp>YSk?!i"A)DRJS`r<1S`ce+Ra4KiA!VNY-MRneYQ
+"Oh)2fE[rSJo&,B>3-,r^N#_NbdS^^:4'ueUf1\/k"D-Ero1a8"hVF.?Tap=:.G>^e"6)/F?1
+0kSb<Dfdk:+L(Ctp5p?t1m4P8=uM<]NeiaM%mkgOd:&G[tQ-N_br/W/@2dttk^C($n;%@Bn-_
+/u[Xe#=pd:,QE?[0>$Y##(r'?olhgl-pJBV]%7[g4JQg"/]"$0V)soFD;2\;[o*hD8C=o6%Me
+*_%*I-cpm)6YZQC&;=j&9_/u]neoYZ>=l,EOr>q[E*:R4KFK.Wp:2,[@l5V1jLrs9mat3i@;o
+U2I5CR0j@?9&;ll?=u:,SusBlf;ug&TrNCBL;/asW<9IOWB-+cSa1J>3@uW<QAeZmj$e=ZTR7
+02j&T`Eop#HVsWd-=Amb?o=KUjZ'68"fSNKM'_aZjH![)hL655VUKV,8ihf?q(7:SY@_'O4YH
+U/)%UV'\]>l-2J7nT3kYYQTMrPlAEbB)WIT@gfsJ2o';\^T"\bg4XR5B>Eh"](WGi4?9<nX%T
+<]DBaQ6D_T#`e&bdDKX?oli2M,df^=Y*VB[GUO&#7&_W#+Og%QKtiKXR2S0XEk1\3n7W5FBW6
+Y'SX"L&58u?n.]hG0V)soFD;2\;[o*hD8C=o!Rn#"QqfMH3jf.?W<Q%o[U;/HJEbQ!9W&d_S_
+A\[<!0!r>;2U_^iX<!VGdqk:2RghWWCSJ/XT9jfHZsX#;,fOMWtUjAV6`_e#<QKUJiJa:)(GY
+5-<VuGenL%_;=BT(MB(Ug8$Z)F`YYn+dc'b8:<=_:,UZ?SVhE1Q4RM.E_%"iFEr"];I&(@Ja$
+-d4jg5CB=D+u1T=:sb]:7[:<TEndZWioMuD#%*+qbQD<]!0h6XqhUf1QhSS1`qUD-NuV]+npG
+H-M+'<?8Rq@-JZN?/=l:,U\YaK?(e="Yk,*nf([OH82WcL/5NIs*3"Zhjg/8#s-ZoX4'&9W&f
+uS6]>QSSGr^C($n;%@Bn-_/u[Xe#=pd:,QE?[0>$Y##(r'?olhgl-pJBV]%7[g4JQg"/]"$0V
+)soFD;2\;[o*hD8C=o!Rn#"QqfMH3jf.?W<R^Fe$%HFI%?5Od`ogGYfWTSFK31Vkk+2E)4uS-
+&VVgTk(>MCjA95FeR3<;qXmpPnO]+76B-Zb`B%V"TK9>O[hQmIM+MooE+2Kg_S54:Cg(Fu''?
+#m8Yc&0>FjYL*3Fm'3n7V6F@%l;1Hq(=N+Hpm"a]cQ&8&t)Wl';LUtM"&8XSUK\X?433dOGrd
+rWBtUsh!3r#K,DrlZtkX&s!&@Qg:IQQ.09:,U[jmY#s[g!k[M3K[:kZAoMjV]+o=A-[KSfi4i
+4*PI<PaNgk#fuT3<oUN-M]@/DNRi4Soq0%^)3n7W!<q.co,aM-%(P*g!Z`@'M'5`d#UgQ76i(
+3)(%)I%c!Rn#"QqfMH3jf.?W<Q%o[U;/HJEbQ!9W&d_S_A\[<!0!r>;2U_^iX<!VGdqk:2Rgh
+W^34OT,A)(G=rY=UL4@iVj##3LfuhkT>T1*?;[L3@iI+m.UY<F#LfXRVGhgqSLS#.[0P0[!iA
+nC0V'\$3jf4AW</qqHSD!??ok\#e#<DG;gU3h.UY<F#LfXRVGhgqSLUSb$)d=alRP&m>6uI=S
++19&kJBDWG!BRmSLQ&:8Ye#MmtDc_Y,OiR"'t`\c&QbU?oh:aU6A.*`):5s.jYSE`/@`p$]@%
+,nu-/n>@uWHgo&SLcN6e<$9$812ITj.;nK8_PI_0Eq7R.45<h!"P7o<=!\\O;*@FEfpqm:)$'
+mXI*B1e,NrB5Um?6f@%tK/>6#=:!rUm%"7p)S=_@k[<S@.g%BKqVN/-3#7gYS)?FBWRZ;rK;s
+3<NQ9=&Dc/kCeS3U8Nt]<5FKg#E;@b;<WR8!pK*0-A1G]@ONB?6b&(hH.(eFTb!Fh/a0f?gF*!
+%BjX<3kPCn@\k1X\np!4KRjbS$Ka+S5d!]&=U*iNnc:tCM5VYUl^bo^]8fPBo<lL)Im'm)c_@
+hBP%IS""&Q(t=g.CCoQ>e6dde;]1m7TD/gs?5CD/[N@l"%/mniDC<)<edc3[OXm_fKscFB)"_
+NHqP4n$+(YasaS+(FG::64b-!K#aD6jb=[F@QLQK0Ue!*WPgqDl+/?9Eh[5Aqq(u>09WWKfkB
+Kg:1P9*.-HB/[^:,h"[SEJR";Ckd)6_d-V)>nI)br3OYh(3.i#[eJe50p'g1V<K&=Y/1_5b6$
+V#<-4tAd29Y2\q'`?(oda''<Y&5="5f3@?d+[?>eTN=(%PAdTAIH_:\[US>/pBqr)<eAY=%@G
+[&PZ8FluWjd,q(')$[Sg.8bFC3j5BNn16ic^KC-.BfVMs5U7\GK[$0o!e,9sFg%8^()6b)fPk
+;)"MIiZ(afPH*>L7tR2(kChgKW+A.PB9o@/VG,AtXKGB\;"sA&H?e6=<`fT;XT`+gE<0V_#/%
+Rn,%c*"Xc@!rXAmb$gH41ne$K3Y`Vbje.JVG'P4&U<r+1Q8uOYXSm7/daH5@H.M\T4I/`Odj?
+`79heW-`rVG3qPhF#S\mh7#8t-C\]0(I1-.@C+q]Fa?$cGDr"Y*`=Me;%lAg_P8.neh74Bg*E
+1F,=#]aBNJtTFP%`:c5Xb72L&:O'OW$U_&e+V`W;%Zkk)qibZZJ;s-h'Ock9iZ2skXZ&r5<h8
+8(JQtT^;pjmBE>8u@;Zgo.U),7)r\hn<[j7sd!<cU00GJ^G'dVN192*0.Z.3!4h[+@^<6.9F+
+b4oCh1T=!_l[7WH=I>.\]iEc]9-KdLVY2&E,!DVN9=mq']#dbr"D[dNc]\;DX(fA*=']6GLS]
+V<g\(T!A`&\l*ktS5@Woqisp8'kf"dW!=Je:?[I>i-Tq:qd/K5!PIFthh.d%"9-,+n.rf?+b#
+!EoNL#dQhn53e!o;,I%VdZf`u]jlqp)Q']SP3B9#8>kgmCaeimmUMAGo_]/*qP[Qrl8*Ja_R;
+Qb@eg[@B)+m<:IT..>7I#:*>UcLXB\IpQ+FSZ=$(MXP+"q"C!Z!7]VMoDTJMEXTh=N%Sc?m0#
+^&?G%>?;0J?;^<0W8q&faNT?us>/[<O<i@H!`BX/IlGucMW3c9[6CS)1=XY/9K!SY=OV]/+(-
+qXj+KuJ6>4'Q%`+Y1N,<J_"gn#J\[jV.R+!+00h`X66!\BMM+;lh?*4GW!<N!p?:QcP/`LgN]
+:]M@9KY`G(PQDc=LJRFaRP#B&W<$dbCt$A$dg1aF"$M`3YY`><i77u/:4Z"F<8D80+R5j**'W
+Yd"fP1g4oqLQWT[9ilRk4=8](PZSIU4jdL!$MW%bpPNQ7CaIW4<D1D^;hF.@r*jpq;9aW*ffF
+8VH(k"'k?l>]!?N+o\foJLg8\MI$_,lkZP/e+3.B/3r@@CnO;0K2oZ0\RJgA;J9cPG&u50.L9
+aV.MQm9XqDj#b'&lTa;BcKC%IO?1u=&Z$52QI4mFk"8%s$HunFn:)=ZHVhR_E_kNjeR^"d0HC
+>e@Rhql`6PI-(\X>7A)h3LNSun^(S)XL,@VpA<L<Xs&9L',\_'gHMh2+5*"/)WeJ?73Rbjn&D
+!ZlXcrYYI\]gj!c;*5GY$qo`>A^3Eh:Of;HO'Z;JU;*MT9Ft(>(*o-9+4aB+1ae5VO=S0&Qq>
+C43])U0JqS_s]E`S^do!X%kK`K,BLjM+Uf4!m00&2$rVd,m$0W(F?1#3[f3Oe36q[#kGPJ6K#
+NfX?4OtP04LS1tfW,V=m$8.SJ&EWoXCJ1"Lq@^hdL\@-kGO'j)<b1n#Rt>"fc:2iFf/=kReQ=
+K@i4L'"=N'YlX+f[16n''KWhtJ_bNo"5;A:W,gan[;#$NBaG;=o[-">@eD,Ap+cGJ.VJ$Pk:e
+o_EC/K]q$]\rY"jO#&;qN4:FpC<31T"[E7Cj"8ki5K#+fDml)5lK1Ln_HJ`,o@Q3]\-2C&'R:
+r?9U,4uB9>.aI1](3RtNCA5=",H&^FFa$=BG;>L5UVDA%OrYFN/=d9+k5J-::)Wl`5P-<g,uh
+j9ITJ/c3Knj;rD%0T/>G-MAlP*WWu0^<WRiB?%>eaff1lV$*-HP&hE,>&V\^^MV'>Go[LWKC<
+P5)3S3N5hSIU7kF*@2NU`T`U\G+;7:Yl,I\r0\F"LN7fiqR8ejV?34GBVCE]]S9)VmYoF1aO`
+XjuIXs3N?Q,'.oBK'I*KiDE^&6(dZnjm9Ig^G9IbCS.7St<P3;/L9Z#9j*dKHY0aDZ,?IR/?h
+O9Ur`>bGT*-:),^J7`$]M.M%5]Ur"dM4oUQBU=aLP0f6f[m@eZ?--9@Y>_)3*q&ejO75okoVp
+E5<o(iFkA)*T`\dJ1DG.3f4mjNjuDO=\2=tkt@dMgX@V=$sQ7MM;D"dGgc=]JpuX#-&.?eV2U
+1mX?S+kA2Ha,8c"7=6:7MF^Jc.%2KksCVGNBn%MB1s2)>:j<'ohZFu1Gb`/OB1U-RNX0bJ!XI
+4Q0ad`s@5/"M2a)4s=j5nlF:Qcjt>B>n$F8C>p`TO$D>'gK5jn)<I_lq!@1nH(;l$,n*^@9Sg
+YV'P4ag*"d\QhZKO)PRX57FohA0-ZXg1=.-q[RteG#t"b$?_'#5_9r*Y4L_0jPYRbT]ePRmA4
+KU>$@_3Md@,T?(!DV>82ZE<d@Su?m.\PeW/UV9p3rd(2S^$?9Et8J(duiP6kA`1@WJ/82!`R+
+m>39oVPTi1LN?sTRSRoZa&o]>;JCbL@O2b'=N3K<7WtFddICKA39fK`q6s&QfR#5CYm7gP+^P
+YL9UL?pBY"?>#s(-\8LS@NEVb-/FVUT;S==f0>_RWO7@ko?pi6P]#"U`kInd>2-)X,T.3b+S0
+*t7]@ELk\nYGD)N>^5#UHguddl&ZM'VZ1<qh#rhmZ`STo0M#1Tj,g]^LV?M`Dp.,mSAh^\s&-
+iLqMXK%8U=750B"]<lRuQ&,g0&M\OQq]V>=#^V\=MeJY[7LD@QC.&,NSRMI:bCDeLX$h<?U+`
+YWB,g;J)Wo2H!*]mtrFFW_#U5nL)ijQ=,YL6!=Z&-g#[L;tIn%8SBf&jCScQHVqWIkOm:5SUK
+s6_N7WXmOWTD!=S<8tt>kY_aK1u(Y;*/[B3'rrQ(mDl>?Qg9"tR89u-7X/3E\H@P:F_VI:WM\
+-2YF&G?%DU3q/p-BK)B4=q8i]hQ`)_q"G="KAcL*aLDc'"PnUbm2/"IsL:-C8oH[_W[BWST`W
+AS)3CQ),`OJ3j*ehq^YCbuMKhjP?G98`%oY/8Q;rg39;SH83KgXT:`\,sq!*CR>K*(i(Jqt^`
+=(N;>N!bHqi8)2cLM,3r:/ki?Qm^&0]l*>Dra;,aC[`D==Ff4d)*R:qn-W[iSaS,tIU?#:CQ5
+o9%TM:hoqSe,L46b\IYsU<,`$3dXi5d9F]$A[-(LGL=fK1<]?%kbP.I&:?LiO7"%5"As-]q]u
+l8fq(9HIt^LW;()o=?OIeFNUD%@uK(;Vn5,lVGNe?Ec]<OtdPV#_K+t=c%;TRG4Cj\aK%N:2J
+CUA<(e9SPEabp;1n11s.7="$cmcA/j@km)gV!"FA98S[:]n_mu^%Me4_)Eq_TaaRr&^VM5/Q#
+5Nc4^'i#H8JY"#4^kiGfmqkY85K$'l%"BT*0O/Z+/MA$V'ID27@_Z_dU_7"#(,7J_thZh7`Dn
+V=#N@jR:gXi=.T/"g?m#HKF.hJ'H%7<<Hi3)rdieZ"WHQJ68#gB)k<#Mgc,Ru5!7=$Pq\QDHl
+*C.q<qrU;ZC&mEp+i")JU9"aIu9c*mG#dS^Q-60+&Sn4Kf]_H]sB0Km*_cTJ0Z^<s/2@&bU.`
+S'LPO3rfBe*k8$oC4K(,X<ZC;o5JAZ'h:D,3Z:4B\HLGsiqn%h'cW-[&@pH4\JH&p'TshLO:X
+/>J3*Xl`/4KB3)1.UONOXP9%(XSM<fRI"$2F^YK,MO?fTN%lH4=#2fMWrJj#&G\fY*:q<lqhf
+oXu&&f&](mlMP,`]RS`kp9htluU5S)>5]'PB$%s\!siD`C$I+Vob3NEJ?5;3QcYa]C*J&9)PP
+?Q84o?2!Ye!,;i$@d@o35l*K+R5Mf^qqr'n$\F@01XSZtkGJ/I?)g#`KIUAO34D-\=jI]]pV^
+i/XSOK)?X5_1#42##YG4)1:$)GDnD81SRn+f8)VWY=COlCU!H1?m_?/TZ1F`V1:%3l&1HT\e>
+6'XhtVrkQ-0SP)8"'@8t@/0/T)b3i'20nrpXF'd1je!Xok:Q>)h2d&4\9mGphL51V%hH,kTn>
+4[QkuL#nP@Lq=V@O%rL7pF*K1'^8="m:$WS/[9W7IKcKgP3DnCSEfs0Q\W5*D#L0R&)(rb`5j
++5&e(ndI1U&cW=$)OmDqCY4\@Hp-="\&pN?uSPh/U'+b]=e(8iNEd$TV6N.qXNOj+$SP1\-"e
+j5I6Qf9ge)jHC>CYI"e,^Sq)Be/MLBG8Z+7[HV9`$mEq:rg:905qu)`XjlL(3lSqMr')]NFhA
+KXREcMc/fH%CB\8IO)UUc8$e-D$O<-?f4;*C!%:TbQG%`sOf$p`&]7ld5@0KogBr9&jIa[u!l
+cQ=3G^RO&.r:o70iVER'XF5_b0XN(:0SJ;*WiZdf1_ckua4VIC>GYMW?7L?Wo=VQGYu-5hl^-
+T\b)%jc3-/RW1'[;/SQq@m>"fK48OQ-n:tsC..Y)ThOA`'hh;I>T_o&)g*o?WUh#6WD+9-N]V
+iQ%OrTh?km-IJ@P1TKOT:.2EhtPN50H?g#EtpH&C%o0Jm4Da-[7=^fi<UM?hd3K.^n4A?''lM
+R3<Wb)3Tsf/Sb\:urKn)4[$*%S:!g5cW,B-oU#aRO]nQh>I<(TKL.o('p[IRf_[#DmqKLbNO+
+7+Qqq]/^5/LB_::C7LVSc2SA\DG;:n>[(0LW4m5S/N,UcH&sm4Da-[Ds%("dC=Y&+7H14'h]#
+-aC5rg8EmaOrsJPKr^"/`q&A]FG8sA?949_2MiHF]9c2]NZ36!S(j-F@4[1RI(0'IJ)0MLhVL
+DC\=;HuDGG2"IVAZlc@#*ICoTk,6FRV^/g\QuOkjHmfN2==lr;@#:O85H39XP,Jg!kZUHnn)7
+i)uESMEc2PU=tJioQ,55kE$nSkmc@A'DUOGL=7Ga4rcuL@`7-\.AKuR7nkd?TLsG)sO.`F8?f
+O'94_ob^1a"$4l@,)=nDQlC^IEETMp]YBSiUa6Qs1\<.C+S`(H.V^j?Vj?R/27WWd1+d2@<^k
+aA%>+R'm.3_4,ilij&`glT&lQj0`9mD5W`0@%7N?/$ml"6h:8LNeE6'"P14jNM<5W!U[YuYk;
+e#54i:BDP^J<"^)mM%+=kIp@AXV.H7oSd;?\i[AEQB''F*iG%/]%`_/pe9`]M60^?i*IA40]/
+Df(=0'^>QL8j1HCD:#<,TM4#F7,+mVmY5Z:ZfqdW)N]^(/klLtD<OQh,JkIH3GWSHC$Ks>]Ve
+;K)AaWc:,3qCPF;h9p&\J@o6=F9(k]J9sK=\<uRNM&Xl*A\oK5A&4/HPq)mWoA>H)$6`+n&QM
+KncuV+\s6JPf'G&q2tN@f=h!9%@#HF@D&)gA+J*nGBIHD7]&COl7240\<:NMAXMG3l[!C[?Z'
+7K3']'pq+_>m>lEoK:AFkkb@siG5*Q=H/a+1uOp0FqUPf:>u3_UkGX8#NW:Au+Z;T!2orFi'?
+7QMQpmZ`d='BZ-3bJfnPM!Rj#G@.i:'4?_X3uZe+BI5u*"m!K8)^tg9M/kU(hAK)&bm-<(q![
+!Oi$JPr<cNn83Zt&[Tn5e,O>d5Q+N$mR2NCPqhFZ.3.qgnbD>JUbU[,SPSnC1LJ5.5XVOH1%l
+;".4@qU"e\l1K3:)!cn;K67i6X&BmXKJBu\rA\J^ZH<&*=3a)1.GR)o=I"5_,-Van1f7Gn$TV
+<I#VfoAM@(updYlJg=n1t,(";&%UGmmC&ij"!$,RFgr(4@=63c!F#Aq6K-S\e]4IcBj@)7TIH
+WqEcPR!5'M]dAd&K)86$\(R0NR_Rm4EVS3'1"''eXNrLt&,'=Jt'9INnNgrXh='R]>@(c2nK/
+?$CZ[)$fnR-]QVD)0LYP#.39`epF7r2+8mW!H`Jebg261GQTs*EMDS*<bR&<M5-eZlla'iR0B
+M`>bHn.F*lV$fVR"$d,uj`Thcml]E/u775SMP?sDP&"ll;g3pKJC3bFG)Eh$E4G7rT,_F"lG[
+[Etks7l.fdE)YAN+D0ra.r1cUtbi.2*Bj8FPQtscH9,6Lp?jX8uDr-JTVHBS@eY><$Bjb>iH4
+bM`C\<knFYIQ49-'UV&;3'=jLAJtbW;:Q-;OQsrpZ/'shLl\t)#q;Ib@U-^_qHu6kceiC@r3'
+37GG+t!lflGK!:'Z`rCDsWqp_8!ZS7WWD1R/?)"&AeBct70:$#':Xd?QT:"H'@&kQ=91je+dt
+3qe:*JMEP-M&!\LZ-WMJn'"S_hb2JAV=^F%,Ge+C=%G(UR"j$\]/tT+F;7,DpH@a"i@O8E.^"
+pZG+YgnZP1mIhjVi.=VX(DGD)]43Y]"oa?tMU._9kQ'):)ajeFB%/(a"53k8glMhA=Wk$l@l@
+ffT+`%H0*c,ss6A-(h6Q)8/T0'G&Z@l[(=n&hIF6,!KdUi\/GlWnbo(&:%m#ZPfjSN?e.Hhtc
+3S]Yqq_Rt[>&Tu:.jlu@Kb>iYa5/O56(3+Ls&'A7tmY0g-g8_+K4.6=:$[m5L3=71Q=.9_T;J
+4V38TRQo]QmuW`TbJ[D%pr*25o0Uc"<9bAJpu,N/4b!Gqpb<I]j%e>h!qp@=6:E`=$[/H/6S3
+ggplAD=W+D=>-5n,9-iGFXIiq'ZT\3]rs]58Z_*FH1a=ZK>R^,L@@t*8hu56X]][>`^iUtHZo
+&Yge#CeUpa?n_UG@jVhp#QX>4LaZo9>3ChK@&?HM/J3#tD)`s(9jalGBN4isuicL1M&H$MeJL
+E:tJRS5?T.fIC=WgkCueGi2#ipKeP__4\XJ2SQ%Xl>n6QR4-*340]3@3@5sCJ%_oP;jW'j;+D
+04.Bmda8.#'M2'#0Nqn(0FFr@%r7X5R6XoN"ocr\e3]IcM:#c">9;b.H)Y]*NFsh,2n>=ZC&(
+MJ!KTT;&?'2oHOZFH(<#U$Nq(;kND[qM8+gDM:pPh,Bn0[2;"oc@,"gUpjs7(NC:gqcREst%d
+G[_T$!hNj0Vk!bIU=C]=0<%k'5EAo-]jtqp(&-Xs^;bJ/BkjQ>0g?+gq49!$2bCnJm<l$Jdo6
+pQ:lb?NJBIVJ58Q^:DiBX\C]_%ReeL-l`UB$47OE0Hg1672_<2:n=/3!Cbc$)V/9&&t3*P/&7
+AFk1:$Q[A)1G`tI;+mol'rPF:R[uB9:=_dC$JSFL,kcYg<$uUjH(s,SjX5l'Oa*W$8FKhhG:p
+J'OYEuESWkEm6b9T4!<5>@U7ZT:RTL<)?(juHV9`$mBMWgP<(eJEA:7&4J+(_M(IW_6;M9+fM
+I'UMsJ*4`S]j>OCSUHR0XFr0epu@7+oR*k\"P2.u-?_+Vj7;.!%&Qdf$'1/R^]Ja&[ag$-7s;
+UiSb)AI)58:9A=]&1PohksO8M(-92iSYTC[_dTuf?M4i)c'7FC.]tS-?k)c=3mchR0feuc-J)
+T,VGhhXPueqH=f<P3JjeV<GdTsD2J@YncTI'5=dVnNBPJ8^q$O0[CVH^uC$NTDbRhR#:ua2_p
+2`c-&lJrL4_H.2gjglA:@5;T??%!3YV;oEL^u2D,'s=T2->g&dStI(3ZmLP&#qH)%4JS'Zg"E
+>1)6WW62Dhr0-QViF-8#u317'iRdk0\'4]Z9:'\XN+*As28"Ea<VV$:p2./JQ8)no=3qONr3p
+AD.ke!_/=JkmD[$d+/"n]STSU)$9l2T8D$U"o-176Eb%R.\$%L7#2QocPA^m-5hq?Ki'<d[D7
+1mMdXh\7cMq\n$ZLXRF#_d+/_As"X=_&]J)l-pbYG[o/ARNL;$F46h?Hoi!NVaBaF7PbXRP/C
+7c#Z,?93]'I61JK+_)pcrgliQBPM:q%:9VP2lBJ*$3TR*K:gmY*l$XHXE*[)HCT-QuUR^/^TF
+4T5?CqKdK0V-pmYo-K&n!iW78VIGSCDs^c9cBYqm']Xm]#:;fP%&4sk[ItD"sqht.WD>b@k=,
+^f`i-/Ug31J$"Im/)1,oSS4pSR1[6<d#6[en_:t2P#LB?L;h[1mZ1/<'^iX=Pk4S(SoS/oBU<A
+%["#sHm1&$]>("JpLCnV8!h<&7S\7r3'RLjXYVYSlii['<R4'`gUesR(d]I2#%)J*Y%H!d1LR
+$?#Ya+@a8k]iG`!Z&srYs190HcPh]]3@*5g$)#(K%!Z#3XmfC;k9YXUl=p@/59ZY$'M&c3]hn
+.P%U602AUP/X*Wrr]S7bo=CP47cLhr?db!;2E`r1/ihAOB\XS1m$7Tn*KH,2H<\\@T41n'EmI
+sbl\_%ptZ/$jL.1dV(`7bqKrX#Eb'+[AKKR2'iDT0a\+`i5A*DU^*\TsYA,#0p[S!jKp#OGQ@
+St$.0pLqa5iQmUmF)q-M#"kAr,"s@!Ja*@ho?WLn*>Oj1Hag]-c^7H4pJkmsI4f]N<Er*n`8f
+fUK'nP^.suFPGKJAS-Y"k8$<1P!@j7[M#LY'ncGbSB=4a*<N;GX24iO\N[:7Reg5%i2atRpT#
+tM\Vq.P_O2#^5P(C#'H.?6.kF=6G>F>Cac^XJMCR-CuY'3LT_a2S((5?s^n*=$FX=P/eBah^L
+T5(t7"O@'>q/Lc1)UGLO/-mj).0HBdjQajDOSI$=GrM@bX@/EGANUiV3HKV%8a;r;/ac!rW0>
+,X2qd9C%TDolX^\RU'r8[hS^]2WprqjJ04*8F@r5V$V,/[HjK^#kE'3J3.5/I.kDWo-=<:"md
+.^;3ja/n(WpCp@6LZG\?L@HC0Z+dQ&M4%d")='fq,q4IsXqtsO4&WOta7;kZb-=^/BaRn(?G4
+t(d@52:UuV8'"WOtug%f;BLoDfHb]Tg?5)?&]dch=q-9!::j/>%Rs0hBO5SmOEk$O6m8hegKO
+bo6gZnMW+GUi>bP5$eh:c]$if_`3S^>,D*NUGbA`F56I`K[cON*!7D]'&7O2n]gg7MG,\#O#f
+ZL4UTF&GS<I=D?S?XHjuFLaSm[aF>\3@J[Y_=Y!QO?LUYP"TRq`+Q7\R.)&Z[OHa*:b/+N7%Z
+_$dH9)8r46(96R:B3QK=r8%"iD`J-g1MHaCAu!30\8KQU5Y-g7DF4jS1M3jlt;U1=F2kFk8dg
+n45TkYRE[Z:7:NLWBf)M:I1nA_ftnbo'`<aI-#rm6DoK+G%_TZ0Kb\:nRAkVMQKlV$a2B_'@!
+tI:D9QBTHFtqaDRf58L/=McDMp>6Z0:]9/dM!j&eZLmi:E;\I2+M3aI!f>flH6/`/oqI*me."
+j"-e_,!WM'5`hh&/SL5J4Qk/Y;J$?l))uJK4dLu)^PaLVhHuTb+X;"3U(M,>/?3<6]r`M'esD
+:VgC3uHJF6LV#^aV-'2Q'UH:Z[-Ea,&@nuZ.e9`utKC-Dp8"_5TB,@8;i!/OM,9I,T/s]RpXm
+X]ur]U@R7.utdK3'8YZFAWCo&a_ZjoNggoH9kg3'[1k,uq3V#"^0i`i3*BO2R9IEt\SNX$*N-
+#-LV1jM%Kl-Blr9#jK8Vj%+'%+\&;XZo1+>SA,pJ5LI/MLi1$PV3jk!5BO0:UWgE.N<4!=H_6
+U!F[;L+=aI.):-;`Ad4ABdM4gV0@clC?k=;>*]?$L5@Gq:[2^)D%c6;>g3hMVc$,M$477<9/%
+L/Q#(lFR&'qRD5&#j_aKHnB2_+KS:O5m<(?DL%8d%@0JUt$<j^\GfiVc40I_o^G&8ZK45m7se
+OmShJ('Vah[Z*SfIF<W&?O!d:PLkil.ks[RLMfC'c_fS11_O1q*Uc0K]BB1G)Qmo:M[Eu`n/b
+BcFI46''<&uA%'BnRU*0a@:ZB,J.BEZZ(!'.<AH>h)!,BDV06rtM%5^/q<?n=5=l1CsM;YR_s
+o62[E%R_>.2Kj8e(I0>Ql`"P&'cl^**tG2.ZATafH#>r[b,(hh4Vs>4+P4sNjVaqs:bGq&:`(
+M8Itk08W&O_2a"]`We'\V0XaW@Q*gC;D.,Ee$?6"_S?IK+#X.C]D#J0]Oo.UE[n&)rd]-=jc&
+p5Xb`<nGd:+br%e'][DL2rpWgR0E5<c#M4Bc[86c'U11_[\;$I%n,iWN/UceA@'L"DNT'#=j+
+I-)?%r)Ib$IB-;tlFrL`Bqj0u]c_j&O%-D&WQBD_mg6@p/2'piZogsaK]COc.-dM&G5as]N7^
+#:V.==T$]PfD,hpWuO\b@m;Hf))OVdo?6YL"^;g"BbQOhU$XZ%G.PDf/'gq#rb[4qfurjR7bD
+$KV?4=NpH6X+JAU*M@JC/#SaG/FcQ#_IQsiedX*M1lnm_91$O?+"'P;U%1>4lk5!U'$/Tuqk1
+Gd>tQ=M@qUh8,4qYFccQGR1g;M.H$XUnd55?T^AGpHN)IQlgBCT)ek(d5%,9X%VmhPAk(d'Rk
+qf"HW6Zl2i;*4JW?Vp=!QND[#;F!0$Jh:%UQ^Y92TGYE]Q-:K_X]-18LGVg.8A8FoKfYfLYCD
+jJ&rh)KIZPk$CMDu_dq_7SG6e>Eb!7N]e`KVc6kT.di2Rti*8&JjV2Z*c"7uuX@`.'j6W..)U
+s0\W)s:_R*q\f;o=`gUYXhe3+n:GnnrM<d5KIeQn'K1Wj=P=.[5(r,_1%dh`NU@*F--'@R?LS
+p!e+EU`-oI#o*J*H]ni#:>#QI4!R5R9FpLZh(],!Y;i9/iXkFbI3s'1+hCFV)H.de;S##p@nV
+esVqo:'W%])fF#Hb59U.T:X[sj"e!!@;iF%I\4N3hFQp_F+G*s%&,#e@X:r^i?I"jfFPEJj"1
+u5dMR8Pj3Le@YlPR2V[$J=,=1FEQYP['<,)Qi!Q!cr$YcK&l'LW4ZNLM:hpSW\)0/kPF6o@+B
+oBC8GgCto8),KbrMPS%fej2oY(m%'2DNF-/shk#$HOCfmGdOCW-aCjHja-dm1l(h`6"K:5*P_p
+%_Vkf2KBao0L7'REI]G94uFEI,H9W`m`]f@*,*Z)iM7mLdDn[Z)<)IFl9JiKYP0%T!\5Wnn2p
+0OH#!(N"JBRCEjOc3S55Qt/-%,2aCBk_9oq0C9tO$:V)Ts=J7EXB=Mi7!;#I?AXB,Rr!P.g=5
+gH=Whir2HX@>YJ,VKbPXL_8CD#P[TrXT&TDgRM0YULRD7mRXfD%Pd([=Yn#ts&2B^j`clq)8r
+V&&9<(-K\p#-LA/(r_^0uDb\M;)&YtqMZ5]c1SV@/<;3g]Wko?^KF)BkY*&ZV0ob&C=RJM*.E
+.+USrEf+``Y+A6QAI)7P3<VB3nMES=Ak96dF"3S;:M_9X;(7cR<pRUD00DbRpfLl$*j\*BWSV
+8(7+4h%d)H#J8WG]Mmn:\:dYSrC65318QqF8e.`p'NF.8p"4,L/(\I')F4u`R!a$:FYH,(]-i
+V5%J,Br@i/nX89@HXV1@WL64aakq`S-WS.Kd@g<"ms&CNR#j?hUU0,A3BXY%/$V6ac>`33i6@
+#f)e,=[`P1/Ta/r2i+O1T%"&L/]2OS@:]leaTG1hLG8:]D=$Z-Kk_"_H-kpD]1Rr*gEcI*VUm
+pi2N%q8?Y+FeIi#kRs36TO737cJ0P=p5A7D0>s,Ot%K]F'#!JaVp(jMB(-8<X>55=42jj^VNX
+?9_=TR2QDX)A%u8K1(:YKMH^i)3"2BA.#(6P`+["7HR2496*Cjjr(3q]*XqOdAYl@'$Moo.-5
+(RGH!5BN<UD/aGq%[,Cs_9,7mU_k9D;Q3$`u6i_ub-_)',9p#(P!H0@OfcRdG.aXJ!>JuZ?@,
+h\t3#n]!9fn`oJA7U!CQ,g,s'0;LJBBW#(7_GBu*p*LS0iaq?m[^7N;,3:7n4Y[hYW$n"lI@m
+c[W)0@22Xn+ld%g2T7I4.;QS)>Wo>ZR>@^RHH?LE24se3e=,oFhC6Qt*\M8LNQD1u^a6%;8XA
+Wmt1j.0&P6S0,LUk@W7UrbQ2ElD0FQ]Bdi6<4?cMTUXZ@fEPUsAE,$qGLrf)e,MRW`jX:+/7/
+XCJl?POZL`XZ/3aAY'eg9ef@P1I!`0/C'b:Xi%Ygi&$]X;WG6MA=?F8>c`,gN/18LjG.ZPN,+
++<HX2k2$F:UbWu((s#=.=L#?l>/quM\,+hBb/FIK*1=;[q^*HPqiH#57+nb\nnm`hm"Y$(*n)
+j>7_M";O0U5+'*_;,r6<3AQ#3goWWZY1g;V(bN>Nl"aH\g@g6klB?oeS<IYWSoO$^gmk*^^Yn
+Rp?)(hgY8BN"!?Jbpi%#PG9;DIh>=ASI6aP=rM`q42?SX>L@mc((tgS#X[<][$gL"Er6)q[`l
+,u5X:#6c8Xe!r&!d0Lr`/.EPH-4)S*/sr*"#MbP2+_2$r%C$UOE[40fSI_I"FRKB6Q(m:(m8=
+DQg6p:tNLYCSV\mpu1q%CO#jhhgW5PrfL7/areio>M/!0qM3h[5N*u7s%slt`uA97bE/1b)r*
+*p=V`BI^##g]<s$R9H2jZ&Kd!:h_kasdbd9DeH,[>$oKf]MW`@2RiQG#q3FQ9M[0Ml)HP6AuO
+9k@Lj/r:amX0ctJ'^$h-/W"oO15lf!3<8P0`3a)K"pUjU)?f8W!(Q:%d;D:Er%rq'>+s]'^/f
+Yldq_X7>A"%1=a(!FQQoRmrZK:1gVl)]$D\2(@V;F(F?ke8ruef!`/d+$iO':BYI^bMlnpmmQ
+MadmQ]L`HjF]E[9ilC@#0K#]*;HpOD)30r'28"_/KiTG't=Jd\43[Um1W=eS*I%+L-50(?JG'
+*mC#Xh5H6D9]M,S]$g],>WQTr&a3!N;3:'<>nA7hfBn=/m4<c@!@Ul*?24&c)[$Q%^$4FG/ik
+q2EmkQ%Dm3m@K+b#+"dJkD3k]DIR(DLV:nonS%pdF+=9,]qV\nePV;sXKjd@SpqE:p1i*Kh)3
+nNu?g%uYWKf69D.XiKsT4B\<&N_fQ4<1);nmG,pj9ZSSW8#.J)e.+u<!$VnkeiQ+?A+tP,n&r
+hP!80sfDV3)le1Y'Xd)W1n_N'ZUR<-'BasD)TmM9kf:^3r?)5IA.=k4QNJ]Eb`YbM8X3I8ci.
+II/V\-G'UP5Ur%te`c:'p"ss+G9RR'f=V?H^7n6,i'g@0.G?%D.uQA^QLn)33.^pf)gWMAP?`
+!fD"("$1P?S`,N#0UjApT`=WMB95lu7JHb^It']K:fbG9d#$Q4Rp#Lbp-tq@3[`rhkW5'S@i:
+7\/BW*$:;4L54S1&cL>D8K8cthlK'Cc+gJpBBrD6Q*Vp+,[0b!6_CDqjp*?+CYMqGYT\R/&,Z
+0Wap@K@t-m:(Wa.PQ[>?o83B/=j(K80!R?r(u7A>^,Ya;$"T"3_I[5nI3;P3h6FfraGQt`m38
+]U[sTb]fO2i:X9u)(R#6.miu,A+5j(-A>H@3b]@q46K=:H3c223J0dRE:Xe:p-W%dG`.pMbL_
+SaYZNZeoI[6W\ao2`qMtH,J]t+,^EU*K2Z3LNa4ZrR9B81]K0us5Z/\:Zh]!M9O*5K!Bi0OgI
+0&TR4T?/eW1FQ3]\cOERW%g_0Go0TFGnK0da-$\UmsG$scId[X8#]P:RuVWh"/'q.HH/DS08;
+qW9uf6-$A4i&"\ORgYT`Sal"JJ0fDS-.WZ)L8rTic/l(^$8XQ_@sq\bFV4,[7k?/VMQ(Gp)m:
+7tkn\`CG%n4BXI"Bs=BG#6@c=DrdGOD4@0_i^GO.:%giU_@inR#W-mV=J?cgOSP<*mJb9inu;
+L+B":q1"m*bd+P+7]"[Q\^]E;?QX0d@`4rpt7BHf\"'P&)2o4k>Ai>:8hhTLY)uSIl7B6O%'?
+HeR"tK?POA-a##[Lp&V?:k9gR5mP+Ila3YPZEcd=ZqkGB&YVm0(+/4HrV)>s&TNJ'&0/nC/>^
+h<@2W_L2n'j,,Uj5];G']p"?k<H/kW=c3sQp,a7XrFh0a5?J;jZ#l/:>[*]3drnL_QJ/.9Z1H
+"OZB"s@k4/]#qFOAgH9UoI<GFcVM(^L,W5&TPIW6SI!b3Nf:cV9XnX#<=MRR%M_gr^E#F/sb_
+;Y5baoVQ@is-Lghqm;h$M!3_A$3JAkng^n'B=mW5C>s@r!j00\(BN3,t^tWOL=[`J(2>,NaJO
+lVLM#u_Uu0rYkjF!>SgM(j^(`g,j[^=-oCDZ*1Y-tTa/[N9-UCfYK='f.@eo,=Yj-G!(3M.Nn
+NA-rpI[sCOZ1(lipmKnEDg?"jJOtq$(ar6(k,VDJsH2qR>)TgY4o2&lipl#+o7riq-h>"?gWb
+`qH[k<&B;8G9G]oQ.g>T0'MF-AJ:!Vh@c\aHSh;q2UX&PKOu7q:PiCb/<"`!0h#4bo$33WN_,
+OOWi]r/?@0l[I$`ELanQB;'47nj#uL=Aq*LU=3BA4-hV#le2cm6`PoG<O6:8T@eCgf<P]0HiU
+_ACK`Ql/P6XrK7.50g:5WI/tT$e=W-BR?2>^J0`d^a@nUf<#3Rp_iKiX)],5I>m+`jR-ee_f$
+/IZ:ba$G$jH)8$=nNoOUHMf^U!(M@8,(k@q/SZ-u#3*:8P.:hl&)GI(&fYU]p9;fUV$@Yj?E;
++t^r?KfrTZ`6S;$X4a=AB:LRZ[,NqR"?/BHhF3=pE)RMG3qeC*S.&FaAsE90X\tp!CWg=NL[!
++(-rg?%t-F.Ep(sAnXnMh<A<\XukV6<0?'8K@#U6:^W+qpfOrsbeom;(DC(EF$.:bn3\iBX@)
+`nf:._G'3P'VN7I77PMW)o*l!HGg1C9s^@ts_dL#oiEQ2+u%UR-g3hS+OGsfR<r*Z8RG@=]4A
+#`)F!ZtFNHfa7tO\m94l#ZoAiDG+9$0X3eIFUWO<34ItFi!W5B&CAD[F8drj/rF6faNE=(dG+
+/E1:<a*jC4<BhjL#p^)BS(`SLoiR%Wi\c[XNpk&0A#;2=#6>I7=p.WkJJ<iDE)s46&3:u-ZBW
+aG]`4=],V]0fR0%LgmHl=2KIS/p`%o#c<UIt\T"u%50O\Hld5[c6*KcY/u<=8=@C2tJeW!)T(
+dnUR9>Xe!GP/0X.4(9<\OAG_G8U6biTo\;fF]ak\5fP%\K:mKV*j%Li?fMC\:jj0b_)%+9/\4
+PgjA;dG*N0iQl2oVDK0d;M%]`AdQfb!1k!bb35Q,CjQe>j/fm=#NS[9$m6"bsOG//,JI#k9e9
+;_lbEL`Rkhs>Q8fCuPC)"qeh9"`Mp;1/d6jai$5lh/8a[XrE>IV),1cuOI4#-0)")#.X$69>k
+_#P^Q;qk,`l:[@p2OO3TM[:lHF:8mNd+,7k%DMZKp"[;h?=.iiYZ*_'nmt^,pF<=>e9ngJMVU
+IiXh!V!:SWF-H^u`@crb[OL/q&-DnE<$eHeTJAB.bQ[DqkRdRWR^18gdTR@EiSk$QG7cZ[8E`
+SCg3&)eFOTN)jCfF"b=)^`MbcO]jrW$<4o3<-I!iE<b(eFntVO5j@@i^6Hj';dLFJNE'uJ=VO
+!=fmBeI:-'#V&4)er$=VEg,IR-P5T\h'6/2SICHZ4Z--@:tk'Y[*46jXTd-h2e5)?KX&3TI2]
+mohHnF/-$4`k+@T-P=/jDs%fHoDr;HfK0T'-)@HGmQt[?NOT\8*@X8gVY*Q$hiF`^:T&H4LE3
+8+MdU`0MA=]TQq+Y1`7aDY_goj-qQ]]]fJ7P](c'G3Tea1M1>*u(o]lhf/nbcI6Ms=lM!Lp(8
+$3Hq0B0q#I<u@^`N]-pc7RDG6)i2pCI!?]%mn4ZkKeT^h1C-INKC0oEhc`HLG,]<fHpkS9Jpo
+BWQt.ig0to_=:S-(1auMJ=nsq?memgqb@n#'%)M1%d(RV$$ia-h,+-M_:@/o)*Hd4kkr]hNHc
+BF1Jjln+?4]1YdAU<nJ7\@U)T%V0MR'14chqE,@K(/#q4`[L\i][V[j<oIXouqd(FbaMUtA)'
+_'5b@NFoF.Iq,1;X5nS]/N'"JH1'&r>kA;U_@KN^s]hiLCsXV5WV%oY.,:(VU>d7d)u]:(c"H
+goDpX\0KjdSl5Yg>&u0MiRHk+AIg[81&o-M#j[(S3h7%<r7gabt-`EX65c*4!p3(j0e3itZp&
+J>'q@hd*O9g0?#r)[0l,$7/qS#TJ%k`88*.!N*q\STm8&2GpY!LmcmG<A(92f.Z=unAZMfmmD
+3ic1=Hf$+W^gN&+Yg_h/kg_1,?6Q(]5:ts?Kl.Ft2"0<kDanY`Z.:E6g7`QhXZ>TP@OKaI:`&
+?_]!n=oI/pqeaE6=Q#:1If(7N=L>9&9KHO!H01c?HdFD8F<JL*RhrZrt*TSd.g3^u\cH/?H$h
+96&94]!q5]_0\#M=F]L8U3U)iaDE/LN,CNH@Y.:p*@EIAq[Gr,6EBW$`->^Qqt9oLlV(5csOS
+o#aS3)+GbW+kCGJ+:FEtqs2/+Y,ZFF>#Uo8>"Hn'!87quaFc"Q0r3nZ;l]9<p#WiTDk9-1=a>
+6f?nG@lbf&!4W`Uj:PMPhKZdfAk,;o"@4@SQPVMM?d]q4o+BBN(@i">IKD:[kGm+ed22gPm"h
+e9O+o6/U]uYd<X#0e=R6KYr4V$lXBjgRoKPYLWs(&Xbi0a:@tZoPaSm^a'Ie.#d$!BFpu'OtK
+cq5]mLBHSfMt;(=l<iZ'E!q\L+0\KPQ?6il$+TJ7VNcL(tB`pP*pBBT!khtKJXd=[s@`t$E/q
+muB#UUMYB3mmcXo?4<*?G_46FS!s,5)n';Dph/1jd;!r_27'i_-M$SE7[N?(3F\l4/%iucjB=
+he<MXVDfL"mOTjqkIZ>WA'lXKaEi;49"o1R_)/<'5Y)h#Q<?4chM`t0=Zm4g7d4^j0Eh+o($E
+UKo@3T"d4h/+V*Xg"f+K'`d?VPk9R"8&:cJO),(CLt/<c\Q]!NFTgSHPjgNh`=TcO\Bc4TXXM
+&-QL)5URr5oJ@e.!W8'Vl<fRn*q8SLp6IkkS_WfK>!^J)DuKu<#gHN9DD4@*2*-6;K+EB((?W
+n'1h@J3&2:?'m7f"V.=EX^Fm*K2%'ZTkU8t5#WumkI0`D.:;XiXlII))QFTMlt?(AosqX*$7+
+*nk_2i`J4T`V?pS7DC11ao'^ahIrnl4sL:C?*+*%k+7AK,Z(8ruI'L/kP^;3aH0)!V-SD^<mn
+\eG3<FlcE`=rLj4n$;FEILd"nGg[2cq:>&4L/*USO6s<,6Wu>lBg+%0&!`i(tj8V2A.`Zfpnm
+%mq3KR%M2a)D_BZ1s6WB17]B$th6hLBn.lZL*Dk7jcAV'!?o[<0!-pC="JgYP#RDC<fGTi^Xe
+R_qM/Kpqc_=e+?2@cT"!7Fg_02^3jj$S]&NSlNkUo?f(![MO+^:8DK8GJ_d/R(,"kHP>]/,aP
+u)0)rP`ng.e:q],G@TRcS/5!6ukE*?"$r>oR056jgZ[X5TATsFi(iSl\"n'109#^X^/-gH]=^
+MO1m_352P`=HYVbPq/TNp:#"(SD'Iq`4ER*INHW'0(1(GN@D0j#:WT7)A]"="((66@S$I&p8J
+[-8(86F?:-2pb'Dj*lS#c2o3oKNP&#d4./<]Da\GV?K]Z^kp&He:KXTR8':Q[RP".Rrb!qQh>
+rW(5ghcb"ML$!n9Y,^IlD]H*tOpfBr<aJ\IF/DqgbPDqPT6I;5_mXKTUZG^P@poFDpWZh36%:
+PEX0rpE9f+IXDDbF<<bGS\Qke-U%7s[f7t)f0?eJq:=f?rnU07nm-b;Y1FbPbA[:;o&LR/0At
+^Cj]`QF?ClOl+3rC&?,(kZq814fr6]V,*2co*Qi8`EQ0GYt(ldaDW$q:7.JABYHjn#=?'$Vn'
++b*#ae&P8DD-^RKaqah<:;_)nRh6`=2_r0BtTNmVd;<,&)-eMh`JB^")cqTs5WhHh;oZu-#Fm
+:S(sUjp>,gIhKhFD,"j"+q&\b\T"q4irH"X]q/:g>kIogIZ9L@;!98BD0CMZU*fTDao^NRYUa
+TOmI_>)ZVHQT6Wpf;?gt<:.8LGD?5[-f7Cfl3/`oL7SP,_`\o,OjO"Vc!TIpCU,e=4;k(Q0)!
+*=Pm1^n*@mK3dDfU1-n*7q_>J_0jO?(Q@:)I9bP7%uC+oZke.c%dfqDVaVVp=el1BD/[O"3XM
+\43]*WGG'.,i&uY?9rmtNVYJ:&QoQp-D9+I+^rei6ZO)!7qHrk*D\U%ClgrlsgYhP@'Vc.;?[
+k*O*Qqi<hF:*FTniZ$P56IDSo'g"h(Lh:2W:4J#l#G;eTu`)mF4P2Gf;WH6.\FlN71-)8qNKb
+!:5=9XcOUKLjEW^eP"G5R74279kq?r<@a6U`5r[%F#0nQYO)9`4;Rp05(8hOW5ttSI^fIR1fB
+JN@M60D4,c8q(U;Ma\[9))8V&dt:_,Ds)\TT6h(u(]$SJ"/_3b(q_\"=IVns;SOIYdhlBUm.<
+dVm#'8(Yp@T/(GS_?EMk>:HgtX@g$dVl*sfhE,#8AF50)8;,r*4e/8W]t!G]@61ed6g98&/.-
+0,riNLti]mAfFF>o.(Q5;jK#gu)YuQ6_S#\CuZBF94Vs+P)9bo*JE\'oY[E$dm10&pBq^A!`?
+n*'^BBT(39;_lbZ#kjKWk$7/rp/P+^QEW4V"IJLQ0i8a"\7a4[[g?k!?/+>V?-Q?+c?nX\k#b
+A9'YlM5(Z@S@1G[EkZ,3ESj'Ab:HMBj%+@BdF2]'8k_\Q_U"\?9VGhguQ;7&X@qQR)\G^@gKN
+-N!gCG\9:\n,gBV=-a'Ga2^JZ<"Zo&$4t>2)7*odInULoN#7]d6@Mp1PkFCgQYMMNfC<alRlZ
+[&dQ!cQ`B@;pD;^b'/p"d1VZBa"4K,n4EqigZg&c7[J=>7If*g&uJTS1n8*mNl@71d)\FQ9:(
+6VP`[AtrY2d036m"F1B-D!Q,IC5bp:DF:\j]5acp:n;VRbsh@c\aHShN3\i72]8fV2)8m(*%G
+NE::BC_tnC\fgqZ-9pnT0or1DBJa=M>_O#h_aQJ[i`S'C!OZ=<.@fig>3I>;gU@fm,/aoU;=t
+U>K814A`DdH7R>nl9h\Zi>e>,*>".&r_5&ic_T]m8$.EBDWAn)7IUXgDjP*b`n^6UCVdm]@:O
+-/$VGl>:PU\2\7&HGa!lETLCc8gL?\[+nQ]$hA(+7c8cBLQCC7/l&+XVJ8X_pA+[XX7al,fcm
+Gj5L&NpN"<0I`?uK-eNS60JHcBUcQ5&qtJkEK'!gbV8Si*MjB;;MS.q@1n,:_8(0F92Q<`WKT
+)7l4im8NEmoE]ZM^h(DX-TrVW<R>Ib@`kI#aE0830?OPHaJZEY9'0f7<=!6hOXm`.SB6:E9A,
+Wob-G($"t1(!!f<JZnGYT>qrI`<52'ZW8R0CUMjTElu<KiB>%$?uiY(_&Qr\gd8g8WcqkcIs^
+GknLP=,tt4,1tbuTdZpPl;HaH+XsK9q(t4O62\G02<,A'm(c\V'7k8*e:4FBj5]-Q6nMh+Y%!
+3KHMiaH.h[IIBd(qT7^=9G`4XP;`:15j?kZZJ-esdTK7GQQ:0qD9S*g_bYKYjN/Ps%FnI"^<W
+KViIV$!O=MS?5`2UE(&?Z)a]7*!$1F*)X^TKmQ2p2l?i+M:-chOu$5UX:KU,.BbjJ=_9&fa)-
+/rQqi]UZ>!ra*Z7*2(c*ar<66KA>b/Pg+X\!NWPF]P(ni^<.pOS!/8[987)aJ,7.3Ru]M[/l1
+BA<TD+Fh*R8KPSki&fNUr1Ac*80`XBbk]qF@pB$7Z>JZl,I5O9cq+>KT*$U4-:#u_Bg['e'K$
+_@kI$#%7(o;ioj\(N'L.08ZD8kgNV'h@6mhQEPf<S/U7[a'lL;/mP'W?]Q=5>jHr5_6HR&"8V
++HOVBME8>K[[333^ns2..4]0`,!"feAG@MC++'B%r2amH;tH-`'Y:U!pK!fU_U'^m06lnt53>
+UQaG#eF'p.B=k>LYA(:N,`A-aMLmu^:N3gIA%!V+a4cuP[.?!ZFZOH8Va[\MSNA6"9!F$O,bM
+6aOZ<%$_]a+,X'J"?UT_rU]mJuhd[/\$C-InZTp*4D7+.OFp$GRc]f]IZI8O*4-]u-"AMjNk'
+OJpt24XT<EdqO7cK6uIkqUPAZ'e>j$=r$$m&7"61-26_3W_?*q$A#c2G0k^Dp'%[AUES'KNL"
+#^(<,sP9u")/JN?%W^8(14qQ3-7AID8>1RXZCdY+0a8#upSW4I)7X!ptnlGNb>YD$BBrSN6h2
+L]dC"`l?,c9%1@"[9,/CV<bqj%]VlJdG1^V/LZr(t7:L3UZ,*cpN0^O<BF8X@q%17bFQ3jijg
+ku7i8WHFCuV^e'/Xd`i^<P`clh'CIK$Dpbf-CIV/0V)B+a`OOlDfg<b1qM[3GHUr"(Q1H(l02
+Iu%Wpn!^O<BFT^oO!3n8cFe.t`U)DI`9K'?6e4IlsfQ/_T^]4]+[pr+IRVaD8sGWs4:=n+\)n
+_h]q/XT9j?ok\!e#<QKU!mNEP!*1D:<nma<.d?]WP(=_#p.9-cAq-gK72.H[?CD4FP=^e0qE'
+pFCI;u&54IKdgj39@QNlfO/%meIC0acqLP@*lBi+S0jX8_FB\'G:c^]9lth/p9W&fqP"m3,5S
+)*<g"5#2-^%6!IW=W=O@UtKNp0Mqh9\`\85:ZENf$T+S1^a6-fHbMG(cF58M!LXk%-TAIcO'^
+]4E]T5*mFDl*ND9SkaC?lLPUCP"s]PXmV(7:-6=1kbNPcnLWoM*2_31YVYONgn9NH0:g=sPNf
+FV4@s10'Qat'A1($J*T<-&11N=+GZpOE4aG4GcJWdU<P1;sX#iDO47*G`N)a-LqWsSE2./I"S
+TY:9'@UZNpgWHoo<VpfeUZo&FP7o37An_K4pdd'EHY$R)XN;UD?'PTk:,W%PI"a[eURasg4JQ
+g"/]"$0V)soEHW=7[mP,)*QQk#&8Wb&6bs8KFCI;u&54IKdgj39@QNlfmHBf23FthjDkE#QP:
+/DhmFgBr'NQU4#=^^Vj?^C+5c.Hh>1+jJ.4hIp4/Qh/j6sK(8gboCd7KR)[H6'rSSIXR3oR\"
+UUeSbdO`kH?0K\%YU<G0qFc5k1NjXS9S_l>F$,md_H,Qq`n=q:a-4qC'[CQ`3ZX-qg#_EC3!s
+n3GdQm<I9Yiuh+'o>D2Gnl-WV!7?=pLL+?l2g]0L`-AH&TIb;,XB7^?k;Z!=Gt:?Ag_oYsS&?
+!nJ>h$Q2+3g+>QjA)]US[*6JbHNRq;[moI4"XO_W@Xa'JPM5(f"mbL42C8RG3e/ST%<=?A,gS
+%9i2cVj=/q8$BXLOK:Q,`7HLIa(&p&ZBKCtre*1jrn0R&`d]"j-+OfQ_"]#.TSTY:9'@UZNi&
+J?WB?,+o!QWm$4ZfN>%6-&A/XT9j?ok\!e#<NkB?,"83s<UWELbhp_1i"L'^QB)-`5?&_/s-I
+m1;r=VUH#PT[Te-\Pa\WBqtT'$^IIQa$S]i@lcIWTA/r'Ee+hhn$FSZl'/naM!CJ.*2C++ZR@
+u.>YN>lF=K0l<mtcpZZG]/II)s()q<:Bhs8/Bm.s'<ROBgl<i&_TVQCT(2MKIoGBQZXI:*e\6
+ofXtZp*Xt/h0Nf675Vi\$S:Ag7985BcgHR4&t0qlZ4SWgQh"K$6J6^d]$sUgid>NFP6sLd`MD
+ehj/D:,5]Cs6EHn[.0*eCd]*2u0qJ#h24`Q(FNSI)XO&C:dN+3?2.ssOg'9P#:<UlmXLd3p6U
+:f4m@I(RcAq.r%r<6=V9`\?Zg?bs;l-`t<>D]bgm1]0_WP*mSTn\Q4f2-eelfs\qkLGsr6*#.
+3f,03M<VB)<_B:D$&cenANG7-i$i'2dgj39@QNlf*,!msm$LO*i&J?WB?,+o!=)*%"k0FT9W,
+=,3n5?KVoQ`JI9FYZ=n+\)n]92D&Lta9L?tKHn)G2pmd/YZku7b^;d1rHC9Sd@mANema*]G8;
+[rFgVqi=^*:pG&:,P"C3bdpQYo\hf<!0!rgLDt/C;=q+HRu$m%@Bn-O2Z4@_3T2C9`n3tifmN
+%nd_DV+Q[/R.*sr!61J&-:8kUTqL^Sp<an-OM=dXM["-DCW]P<JnKp:3%j`8_VfaRj&'f9#M6
+5teZ;2f(,Rl4PAcZjC4,Mr\L%pg':eKG6;`^a&+I4N@P3_=rS[1lKm`Gp\SK60n-/-a</FtT4
+U(YsV8#MXL/9;3;EdKk/%Nnf0SJjPScFIQ?MR-eRXi08`[&fr*@ND!HqdeH;mHIT:]V#:rdNg
+Bei_Hm/=a,$_Vj1peVt'p=AH?b-H\qTIEX/YboIelhVe$N&/M$]u.$]:_SfQ9o-/)"iAIUN`#
+.8PVZ]E0j`3bZ%TMs\"0qD@>h8i>B=5J(O;r)6V52u'Rg3Ae6feK$uU8?\FW3qH0Jm(4s2\EJ
+?Z-,T46q-P!kjrDu;jP((\IG+P(EmOZeXdf1BdJeb.P>c)-6@H6r,qGi=<]gBe#<Pl7OO<_2t
+=Cf's;U*`tGpm0qE&uA98H<EtaTq<q/4pE@d5:(=T5e7n0E9\VXf[(=T5e9W,>>@QN%I?Zb!n
+31Dni@kjNhYTGo_*T<BH`H8*\#=c*)e#<OFVm]toeUZo6(/1VE0V-pl6mi1iF/QB6JPJ:a07N
+oYS'`",QB)FYK>CqL(sa2Q$1H7(_0?7tkmN.6BSc#gi%3)[["0ArqC7d^XVfe;[;0BcP=Y_D6
+X*e5a,eZ=?#%q)q7&TDk8i:7b'4+=dV5,58d,O??u3jGolQphX?/-TU=MUVZTI]uNj0&GhheU
+*0V'%B"Oi446SP&J3s=#hYsU49(cqlLM6TE%SJXEke*5&qA#=V=%``\fU@GdBM@7=e2$@ALI;
+/I->.Y8XXuOC"M`[W]YDhY",GrqmEWe+g%);.^:6*R\[p(olSafZ]s-+HeM4N!b-ZdB(<)4lP
+DhTuV[F5f<km=Wo?bR8Gi,NNbVPFnFC"AeL,(1ofM5AZ5TL>^;JGjO.3gmaA6R#=.20<kTURU
+LYUf@%7bcb<<itp2/#uRQunHhC2:)SbSdn*c:f$e?$Mi8:FMCtY$M<XZN3$(+@9;C(9Hs3A(Q
+_V\lhKrLlh8bpY:PdiU$+m`Kd]%iK,J-YC(sST8F<&p8S_A71c0-F1F=MHW9W&!QGj+5@d*)*
+Q?(Of#-(T(b"K'W]U-pBlTW5L^aSO1W'S^`%-Aln#,<N_`H?-)?HLZ6lPAhGpSJoqU)-Ap?"<
+/[`RNCStXl@U(`,p=Nf\)d#Tb_<Gku=%)q=PQDZbrs0[/2:[`cK*r3iFa(.iqKa]Pq=@IGlT9
+@67RA5iHZUV_8s\gBo=Kfkut,_:TZ"-cQWn8#J_PlXW+NXJ4/g\l6V8McFk.0Ns(m`7Q5nR81
+.en;KkGIsmm'_]Lb,g7?Jue]AVerB4P>0/&G_m3?,%lLO\$]j7<iYJ3Uh[2teWe`H6'9W.82N
+9R\^9W.82N9R\^9W.82N9R\^#GKVHPSYjb(%?!VX4edu;7fOCS]%fF@'e&^fVB<q7]pn;.gk_
+;S*;2UB-^M`m'"CWC3k4:MF5`^eD:bAk$&lb'@l@m<DgBM#!-<g6lhgdN`BPh8Asdbf:H=13h
++rs_r>'GU(=)b(HE"GOi<lL_Jt)(<Fki,/.4NH;hZ]N:a&GkkN0$!+P3JS/0.$PR5gLHXH-;U
+PI!ECdS&(Ud%sYl?Y>Z4,eL5>_gsj1rO/e^D5M`?.'5:U]=cAUZWItR+Y!^3V>Y2TVLW]n6Bm
+O0U/TXdD;3_Y,3d(DlR^kR<>Tdc*(UfORI['jBjS;dGaFcMIC?^cFmJ%Mr#oh#-3mt.<YPFQY
+'Y5)6<q!]::3Ki^!7OUmc`m\d[06)cLhu_=oD<*Y\@X7h3qTkMl[f$XLlmV/nao=IfrW3DYYT
+d(\J%pQ$TqeMUMbj'g&UflRZ@6mX1$%c02N\:!Ii"%92lWXV$9C7J^)!p6T.c%^1@@;-Y!0ME
+<D*Na5)eTccLQ=@X`IF3HU4=k0*=`KRB0BCSU4neoh(YOpp/<7l]WAX5ZUX<FHS811\%Tk0sp
+Gh;FKVg#[:Vqh8oa0)-KSVenT^9E3hZm.Vs:U5#3[F]PCW2!;Q%VBW>os*q.kH;%Gh5Qq8U,o
+T\$:_POl!;T#kLa#[/s^gHo%=_>*G:f>f+`PGcfJJ.R+I=PVe,DhZXX>hMJK@Nh'9]'d:!3LQ
+E04KIM8!s#.q0uMt2I,ZFg#o*4]'sB@lsD=P_Yqo]"tY3b=b`_2d_)Wf)%CQ]IY341ie9`!TL
+L<:o23=uqN%I\`1[G)%Yglu[Q6BV[`OjAr^CGR?M!'25=[UMtpTMJU",f.>D=:fK8>_/s-I[=
+q_tq?>?IFc/b4q0PE>.hp/[QqhLPPN*Y5jmN@)YAgh;d>Oh7@h%'0PHdJ/S[RC7j6Tg!l*UDC
+ELbiW0V,Ye0K'WH7/70YUV1]3R&e#E@QHBBPA%0Hdu!=RqD=Ib4Y#;5fu?>mf3'euQqhf_/tG
+?Y:=*Q7&pE;HAU_s5Irrh[#\Ru1f_\]G3h-$neUA/)_DF9Y3m%6+EL^<ml[1UhPtjb$;R*<s9
+[6p\q6Y6aElM[;!epBGfKcA*RM)1>pm%qBA?1T;NNVm+?nIq,me`i:>ENDm9f2:Pk_)_X$])o
+qaR88VO8C`H^W?9CEaY-<+$(.>ZOfY%pj9M8XJ:t]QJ_7W?KC?M4n,',7(5.hchS7-)4e)!'q
+*rrG"8-Y:=\YE3Aol2d>UgHh+8<h>Sbmnm"\?u#2B$f;r(#EJuQ%O3Ndf`#93#^:?Cdm4e/:d
+VU!Kd;_/<O\*W?BmDppYGBJf%l/hY/==KfH\A.,43Yf`B#<Jus:@[]7Zi\uh_LA;ETR!`ef&t
+,G<r'G^)6W5jQ5f%P%p[eCFK3)NnIk%2QH)??]$KVHhB/:V9fF`lL#lFD2r1HZS`5@MWI]+h%
+JDZbKDV276])WIc-EQha=^JGQdn(-4kZA5f9r1mGlDf"KtZ01`$;p1MeC]+CatE-PuW3EfD1Y
+UIWX;sJ*5t#&^(:)l):H*.Qg'ZmHb6?T1rTMcZ=8F^i\<0_O+(K_0"E1_O+(K_/sF9@BFKJQb
+O=jS[RFX4Uun^H\\r:>,jpHqr3f!o]7._ft7a#&'NT24T$q_M=KrJFCOSJ9IIgi_/s/Q&1'@l
+(lq"7:6-6$1Dkp8b=;bh_-er6$jM@#@-e)Q[T>.h'Fnu_@([m-=unDU$jM@#?n`E+#(sa"0YV
+5eg\`A-]bf5U-9CO^Y*I2np7?DR)mJMSWPjF1HdB=;%=%-(cgC,.]a]5NQd>'d[_3,pl'K``m
+C'\;30qb6(BqqS=a;a&<j]HoeTrLQ^V1`Ii9bBsZ!>"6?Re]MDZ6$s2E&8/le<!]hVJGVbN0-
+',&C8MI#Xc"hN$Gdm%-uJ<q=A3GBJ<q_SP!]J7H-;@:!b)%8eU1:gCO$8[n'Q$EY$!G'/3p_S
+P!]J7H.fI*!M9U1RGGh;d3>\%YimO)D-Y%c6%H*6[H%gq0N3WE`P?f5sWs2goN>7;UcHi/a5h
+<""h8(M,X-(Tt?la/J"k\71Ab3!XrG9W)'Mgq230Vk**J@_"&<1jorTpHA<3I>2hV\_#P841K
+[#HPZkIS!FDD',iqRfqij>+nC5!O!D7gNGOYiY<eMgDZ(X?,h?(02RR_ts/)Q-:S]Y/V)rRu^
+89uZmZUE!s)=uKCngq#Ge?i.ShMhj7^a>GQYg$:gkksG/_\s0#"<a%Bc"+]*p0UXs3Z'4m0WA
+^CLl12HQrJU[!7=PUskLk[%m=Q)VK;aSg]"9[a^u+4j[p)[5YT!cf=OZFaG>,/tRem(!GDgIB
+r1mh)V$ZI2,DPduN,q\TdQhFK01LPW!:)h?Id^-W+COg!naIGe?i.T#eU'IF>*2;d9(K\@i@(
+7QQf("`*L^9eLpj9r,:MBQ2G0]A;3`s)IGf>"[[@`Q5L:p51ac@2hAbaR2o-GPNG2=`l6P)i+
+^EHE5fViqSRLD[/7HHQ-p;3mi_qWh6W4'K7^7Ys_nnVA>+;m8_NmptK'2;r>nKBl=(`H26S_M
+.KD:?GD%>BlOlGc*j2![`@:jqO[P45"0f;E7i@[$R2jWd)g*cXV!Ep(0]?o<Sd6@>@-44EU`Z
+[i6[gOldttNM7e7)e.Jm,B@l/<>@68dhp6_[[fM98SOD>qDElZfY[%.:>Bb6BNk`j3m/mT3DZ
+c#U:>(Q(h*=p]pZ$@n(<>=pqO[P45"U)?E*-+&D\G]26.WU-2p_XY;<ikZ>I4#Qf`(YM?/JT<
+c_kGp".o>MQOgjsp;D^Y#CjB[Vd2S>pIhEqj$2Yu*G'R:n=2/HAr^K$m58ir48@iI3cTMm\@i
+>rl'K``mC'\;E;!O?8oT,1WkAiQqZaP(U=s*2(^pV$_-er6$jM@#=T8?7-i"\~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 590 574
+%%EOF
diff --git a/doc/users_guide/figures/gimp-print-gui.eps b/doc/users_guide/figures/gimp-print-gui.eps
new file mode 100644
index 0000000..599c3eb
--- /dev/null
+++ b/doc/users_guide/figures/gimp-print-gui.eps
@@ -0,0 +1,851 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-gui.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 590 574
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 590 574
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+591 575
+12.000000
+591 575
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPu]lW4)ZKPM3l1,Q+B=`q;OcgmNrX3MCN:S6^]#OXUkJi>i-Xu+$cIr4_D2a")Vq;3E*I
+#NVer*WB'6fB>]lia_G/q.HJWAD@G2p0[J!jG>5QN9^JH/9L.OFTe?\OQ5ZEgbkX0Ts,'e<=d
+=Ku>SMA7XBXB>;H`9C6]I<AR#.iginG3nNVPVA>gI1&l_`T]2UgZ_8,=3C*#(G/qQoZQJ)lgd
+Z9HsuY6MMeAZEe1[cMj9W]e)+;p=3BT^`_GtM50<7/VoJ9?E;C"&jL19G=1je^_6<J+$P^Y@e
+B0XH"'-G4aN;h-*&1IJ8[c3I:*3%Y:@6u80ZnCX5:`7]n*E]Ll`>8Eo001,1[RuEcbFip]S)L
+:2CU92E9Us.$If%N9P(k-S2,5JR!Ol&=S>X3dVh]0oh2K)a#;]oM:7beWQbuW_r;-[1%fl-S6
+iiFEKZSK'+Ngr-*Qm-g0:\spO!3\-St9>b%QA?X6d^3gQ$,!a5YUJQuQT3\"\l*jBe8nf=,1C
+:RR4Vb9+2m.?'SjU+$p[IA?JB"hsu10.;rN$O#1hW,`1[VZVb&G*7?oS$jG<Rq;kp1?6q(:@&
+e:$:a)#okb^Eg8;gjM,Cthdshh!/5BJD>ruUES8srf+f30%J<Q\4.p4cA1<LH%EVdY-dkA;X.
+MlRHf](D[Cl))=I<dP'iFJtTnjgn\[DWDn\d;..0im4C/%`^?p,Fc_:<\OC9&"%n)*?lsI]7c
+RiaaROK?,r10thd9CnP#]@PQ&*b:^![jI7Q-*DXiJbY'NGc2+E.6WKZ-Q=+\nJ99lfB6kHXb"
+gXPHHT(8;gI-"fMZXhjh'T56s6LSN.'Hd4/d7P'?c=oXcVpUk"VE4qL03X:8JWk</GR"N>)2c
+CRhCN=I_F;,Bj0T4&WZ::6cGC:7[9%-tr39^3HnB[<Wj$]NC]X]T4^P/5C'=`tpCa_!)5dMIu
+PYpu:Bh3.6q+oIgt-&rT[eq92Igln(W13&MG/P<g`p9uZ+&&;sIcYrEVsCRj$KbM'tiVE7l5f
+]#<I3DRUiRU7GDHJND(4'1.gi^D3X:<.MgXn*N4Y.IBKVE7l5f]#;.ERJb0gZ?_G2RYT-=If#
+Q_03A1V2['%,VL2d8+ci_*YtZ%`Iu^K,@@Yib=gT+M3DUbWTKM?dFAt,q6`#ZSb<jE:AIP"Bm
+GP\_t#_?iPafLGgjAI$n%jgij>nj_eJ_`(G+$jR`UbgZs[m)PLMUQ:cdlA>?1`'rcS:3jMg-c
+>FbDP[5bGa,@?\T<Fb]L4*pd/i5(f/4fl5rW8<Pf'>\*sg/lkY:@bT5dhZJjL&.-F4'J`G<4n
+Wb0h6^R*):VKFLi6cI:]6uau5<.+]cs*Aa#&hQ5;Le$ThEPRKbebS-0cHVgW,8S4r7L>85i>2
+G-%k'a*]RE.Z7LB5DSA=*DT?<Cac2At7pO)f;K.:1\ME?oU_7/5H)b%QL`Ya;:r1MWLtU;G1q
+tQ<hTH=*j4`IOFN?/Pc2c+hck?6,_c)9X-SA2hUL<k=Q[tS4G2+qTWE[gptkQ(+57]hZ[8r)/
+PX$=5)<d6t1/aD[+tXcBU;r30CjqS1;q#]A0sF`YKqbQ^rG!P?mT]Bk*&7M+rqD.MaCa=Ibh;
+`Q95<Vl!pC15NoKWE>Z!@W?-4(+4aaE7uo4TXq#7LMAR*a3B[;0;ra&U$-NI?aa]B\I$I:>J>
+0Tj&qmCl8[lY]$qL+3>3pOA#=II*P_BB(KoI.7FA!7l<CPf5:B`UUcn-Nl#7CcP*J"DbWF2.E
+kPD.:<BdV3+_2!c*B*".cR9C5K2mme)lD4:/YrH8tXV%QL8#BE#'gaeMsi$nd`#aL02#J:-"+
+*iY##?lLKM56e5&=\tqNP[^EiDV)qa>SAg=qV<oQ.MDoAQD.g`-ZsD4*;Ar7MVA9`e2ANq$,d
+U2Aa@b@D]5sgd=e&%,g*ng@.>^KuT%0IAEP'YGZ*XFdQ.E:cGiVJ.QW]hR:3OFP[XJBTp#FQY
+fh.c:D'@A20H?TcS5)Rt_hlppYHsd7a33@Cr<"RR(+X,iB(^e]%61W@[heF;l#7CcP&52JRA%
+Tcrs9MZe%W)WPB,coXktQ\Ms3_iT4D!hUUc^`LUV`1K?-W2`S%Ll@%CDi%!'KMZ"'EA>-U%)j
+FhM^a$,(I@W=0E$0--e@W=/Z`Moh=S.&kHC+9uHK63+%TlO$@?'`IO.%TC?R*/lm0$E6bPV3+
+dnRrG9QGpro(8kbU=e(F[EGAO?`Q9MDVe0LCS;_JjSB?-3bd>9rW=S*k@&Bu4lZR,E:/R=raX
+@D5M<-Bnq:"VGenqEm"Z'Ef@r$7)<)-;V`Q9N`a,*!Y=;$q!5Wko^,8M#0%&jd!X'hg*@-%BS
+r(HX%MR"d.7QGR%-f2.D9HG]S`YFDhYW6RLqGf5u<E,\Q=_>TdQZ@th/5AYpZmhT%`A'_bYh3
+?qe;*Tp0On8Y?.j\g'P1F;N,n]Z*QoNN1ZDAM<Xg$$7s1-#Jsjaoqc:npVjsJ4Mj%"u@Z%Mi/
+'GBAWP#rm(!Lb7@UFOb<gZ:7askK=3#Ugk33c@Z!S]Z9J=0#4j!^iEiVN(g/uL,@iae;6pmq%
+V!E7/oX$(&q[(%T#KW]opY(@An.XVGIPuEoYEAG[NGfA@M=2DJ]ML&D@-_je6R[%H(15a&M=]
+lLfURVN`HX?q<FBKA,UKF%TQ"=qj9(t;n5(p.-QXt.lb*OmL_4f&X3#T[^7Ptp=P<g`p9uZ+&
+OKNRaLc*X`<i")ZG@dV1/P[R^j)c]%VMR:pDOG@FXF;6u]QB4`JT>fN863^Oc=aVi=I_u2]@3
+%qn)K<BMc8kNGIk*VI=1SUic0"g8/Zr5`G&[^M\E/(kMKBQ4-kX-eW,\M.DpA9BH%\5W4gla9
+snh]`[SZGB!p+eZ5tBj^ZA+(Ri.R8j4?:n7oQ[h[NC\dCN6@-g'oF*_rA&,ClK*,*>s.hU+(U
+jl)B&9#q%'F;6NYt-J.Egk^"`!8_^Lp.H=AkCAr'-:@dCIAoZO32H4in]o!?^N3n0]-9'8VXL
+rNV-`46ZbLI,5-/>#"FU]'dhJo@rX)D`R><5NO=_;[-?ZsK3R-dc':+Roh<jJ8'&=h18!f96h
+Bpe.ndn6-48Q4.t?%Wer4VK3TbFL/#r7O*=:\H&EP:=dtS]%n*&:.h4Ru1noZ!q"8Z;VL$$)d
+]b^=oRT^03TIXu*Q)fN't[D?6YOV#gBiA-\Xq-0>%J[BPTgE<mda"pIoU@B;1Y7^]T(-b+ON:
+NhM?B5srnAt2OtZ>4DgV>[]:Co>_A/t:jIi5?%'Xi<r,@<(!s[`9h,VNr6$LJbLDqNT`4(#-j
+[Z8:N?D7,Yob1sM,D*s4`X_"s_Vh4jfm[_=r-6$o=5tYJR_g0>4.`p]"Z<3VH-bIimQ+gCk/5
+?tY<oq+VSX<NL=r*#pj^`SHZI1[idp[2Vp,/ubVja$_bK3qXC2s<ENidoa9!+:bQRcS-lbp!=
+m/I5]pGdT3@WAE)`MpCMS8*'o3,P-$f?n"G'ju$]aiWJJ?22=?Vn$l3h_#(7S8*(*3,Q(VmPs
+UD6i/i'8a<,@P,-lQdPQM>>QCC(WIs)J"'k;NDm31m.=UadpkKe6nr).-CasX^7:Ii"&VVQ#q
+9F`c;k><U,iM>Da(TI-?GMjddF6)?)SlfZ#E;A%..k:i!9/>T?k@.N&ddtsi!RnSkVO^+_,A(
+#^@T!bib)!];=&V3+8W.02LUN"Vre/!LD)gBH?=&)e-2iaU''#geYm?7$<i]SlET@R^kDi?PR[
+%2<=toK%di?R9P?E81jSo=L@VkoHZ&&!,Y]AU`Mn+`gYnBS`t-MHNOToR<7f3hWp1Y%P*Cuil
+Yp8NF"[[8&P)>X;mfl)Of#Fi.Y&*f_PS=ILq2h@Br\/,2<A<S^gG<2@iEqYPWSRs4VbD6Sc!!
+n&m![U4doa=)iAl!4De+JZhB6@%pL#BI]=Ht>/5<eF_)qcJVt$UTh4fYWEehTP_`K[_.-5Lpl
+4*3E00358DPTXXSf"'m1KFrnAf$mT0iU]/ftEc@!tjb45>P\ZX/\kq-c-36Mnrm0JcJh0l(^(
+#B.V]El(hHMPJ6g[DQ#QfM8k4`Ndi_,L4+R!A*H6nhdhBKT1W1POi$p^^dC$MA)>*JOMd^HY=
+d(4m)X><3qG!!ZA3^?R"ngm?I+Wi8R3$3Eo<H"D_7%O2fLl1J[bp<sY`qb<.gaO4Gj6c4@e__
+h_u$-=89ak*KmSS=!?'0mQ+5=-DTC3o3/BU'_&GCD6hEZ$<!J.YgthKMS!P:H%<,B/lPjg_B$
+F0U0I3X][sscYY-k<mG(eF0+pt5K0>']bEK$XJ5W?=X:A<$i4ZuLbrMJa,0&#]m@UVbLS5iWp
+>R;oPLTfags*/Nt^!'cDm^R3DRVrm(bdhP6pNRe/_f26cKA!\C.n,H7>.<2guqcK&9j[r:p17
+<(.+K\'u--'<U5hU>SZY$#P=^r(*b/-NPFt.Q_#T2NhXJFARb^`=no-W%uW@LXSXY4R/qX=2C
+TQ7?s6d*hHWYnq9/I-;:+&[)`*fC7J7AD=(`]d`#XE3G)iX6u^QUnBVUUf1";OO"WW6(Ku?)G
+c7a]f8,a(q*t-6VH"4C+/h;I^)%h?ibEh5,*JuN3`I(hV=MQ*o(Z(e(V1i]\>tpdc:[V2HB`\
+d=+8UKZ>FT]4QTqYcqaD9e5)f`i^^GJ;BCZE-&`,-(nMg4fLS,,+sFs%50k=SHLe>$P9>i%5W
+hA<blp,GN5Q%RKmoG[-rM!mH')9tj%AEaE^EL`**t^<3Xqqk>.V'91:A5OeXg"Dg^TNSG2bKX
+<.g8o-hKbZn3'#.I4t6+!8d6un%hol!WQOPGRIo[&AQ"]@P.#+97:(*M9YMp51#HhmK:(Gl6m
+f-$?>gUPK0=:6touB-m(>M6OR\YcJ4eEJb>;alG_Ice=g!dBIZ7@XD3CVDEDDWLD.&]5Rg+_O
+mAUp%u3rq%u*"bjq1to5/j.[4?>\3]ojplI/XH0QdISQN?VI:-[[qk/XE#p;>c8@ULcbrN0ZS
+W"\COT-Hd96IZ!sl4Q<!YcXZr'M3l=ELDA3qQJs"d'_hC#=km51EhU\hmk#b*ItG"1ifTS#l]
+qPK-W!no3NWeLGL@<VRT#WJAQN$)Q#T^q4=`XB*@K+j[)qc9DqS^UdE@!:22A:LYaoUdZ3)>j
+*OrA(Il8;Grore3h%Na<5S46QGd<!Gf^dKB3_-VBE?Zf+5/BQN!!r^7n=_()J,t&mPUtkJEXA
+!L:]mrHQClH4!%e46O<@ZHP8UU4KYMRnBo/]KD%<4f)StCm?F0jal-h"F$As^*p&"0_fAk?hY
+[2=\QH"^9Z@K=f?_a1=gOod[gVIE@1E6U3^-?hH;89nQ3+q3cDji;_e[E8c7IH2Sf<K#Pj2-I
+Mb>)F/[p1nN<-\Q'$ej#O$iE[nX9EFL^^V'b.g9+'A"J_N\4JaDA,&L1CE>ocC0RRDc`UMomX
+3Y=$J9UKX8D81KaGnQp[92AL6Ll?47g+Y(WtA2HHZl53=FB8$]BP70k)7S)@P,l[gCYbhoJ-u
++A*,dn1GK^cX\3Z%2P\IL(5kt!u*&unK]*Da`s>-*Bo6Z6;"[b8!VohA8gjG%eDjbSC#GIm5E
+Q$gBfk1L;O>ge:0lF(9!f1-:u<'<TG\DnasjgnVAKS(@`^FAqGma=qE+05:jBrWD=@hTMU5oF
+H_k8F=[qY"q:b!p^$"eY8?.ahc=pt*O])O>N4_*G"O"2$dOLCE-MRL!DYr<'qn8.;3a-E;QBK
+IiNngY/EDs_+tC5oU:P6I<[6>JQ4DGp`"F*A;;HN9mXgHU`XN`1f<@=A)ljdMK?RA>HQKUu!S
+c='$'2%B_]MXHWIG\RGnY+@duVUN:8SZ<ME24t0i@rr";>LBZ)jVf[t%#L.^HDsGq@H37EluE
+$W9p1#Rr10Y:>5U_ghn\QLBFee=/s1TWRSS4D_>*[WQ(@Z<sF-e;$'p[1b=Gn*qZ)%oO,o6mX
+2F\ie>2Z6](g6I^dHh-qp0X'D2I&u"T`9XO4V`CE4\$``Wjg$]Uu;:9mqmDO?6G/"m]Zu+Z;2
+hu6L_"R:nprI^HpO>Dt!_R-`#K&`4dW6c6+R5Lcel^@<8nG'+#Zd)C/Z@5Fk/IOm['`gF.ZUM
+k1@H7:_@qi+Bi:(>b0(%*^_H6+0(pCX00hT^8(kK"Nd`2?#=1$]]^pm,G<f,WR0]F8cjjQ%?]
+BcR6<loia&U#m6(r>9g.oaf&diEJL!qX#'I-A+8lAiKm&,R8i!<ruD'uE+TqC*d?hU]ck_h.6
+T;-4*fhj.Ep9/e[am^f7_Tr;19Um;Fi<@q8oEH'HT7P+UP#Fo*%VT:8a]O;r$8X39hf<dp0V_
+Yhq3oAUVqN^;*\R3j.i_u1jfLYu$?5h3;_Ol\KTiS*N]gn.HDr3Y[uQXX?c$KSE&&G[B>H:kq
+A`F'`geDd:>R)B76I/MkTkREW6ip?c0sFW8u/(n;&E8CL4]]J>"uF*,tb+ajGpMLREDrZGnd2
+<,SEsE4skXp`?KQgPdSu`REoaS:?%\8.=Uu03Pa3Of]/oiOsPFQ;p%Nqa#']=8l!3DZp?1Y0(
+Bag)P[ec<Rt9P0*4ak)5r[`-mLhd^lX/b=!pd=E.gB>/<hXc[8S`uBZq-.ftI"YGuPtm*/2;h
+j9CT`58MXbPg]gl_^L]\res>:CrS3H].=8Bd%u?*r'a"_Eb/sAi83ujqO\NZgrtm%/^dV8@?;
+s572D0t%u$;ifM6NNf=*`1/l"/rJ9,g<K)#P7*N:=62/"st2nltb0d+an,$AeN5J3g`PRDlLK
+k2Js%bb8G@:Si\=>30_EVbimQ5euq8r^l&PptO^NbelVAtJK`_5@j8Qm*UDZu)]WNg!-s8U9Y
++BBXU:.e$;rN.j!H[Wq#VZ[!N&:)"H)LZ0%t/oE>(-6H:dFqbO3ZZoM;-4r;!QP\Z)G@P)Rjs
+2M+7%)uU8Y.n^&U/`mp#;RElk54TA"6_lcY`n]A3$LAGQ!;Pi2\#7VdWoXTi+HkG9fpKUkUtA
+JO=\hA7G4V/E40nmW*a%^[N\::+EI%>B^ci@U1gJ,9G*AV-5TRd#Gfh'GgsrcD6MPpGnj90#pl
+%Z(5"Y4o`OE#KVOlf&.h@hUX'MCBLKck-Hl(PUPq;_0-`A_9hcUnO+%!rGZ0GP?fE(!i7%IMI
+^!Q%Y;c7+lcdGnM@)UcM0:+I1^s#5McQ_LYluf_pL&<B'q'J2<1&oUPl</0RWtkK-;?FcurLD
+8Ob2.)"..p7o7EU^c(+M?Z],7p7BUUN0DD]"P[WGH&''a_3qU3;i3^>X!g+IXsHSk!sht?P(/
+TCjEShHgdX3Hi"4(""G7ppBQRNf?n]0%r31B2=P\^0YshVf8epGW^`.Sj(J`-M:t>5be<oU"Z
+I<ek6((0_@k"f.e&#kMQ>1gOVfjG`CB^WEk-J9I;j,._2]WB_e&dRc/CCdL>m-OHi/2\Y.`+g
+o.VX)MWk=%LW8UX3^cGn!k;l=*iAjK$jcnm6THIoY9AAgmeg2[H7a*#N_B=Wr>hkghF.ROj5,
+Z89RDt+=cF\a.Bg&NUeFJ97/`O/;I!0+l$8]d'IK*S<Y"\Co.dIDi--6DQhSu;-Qd8-cK]eGW
+dUJG=d?Tm;;(e$E(RI2[B%5K1/f?=^1,LK.Y#PqXF5\S&ac.qN$PE*noYLkIllpHaFC[HNE2o
+_>e8`X2\CGDn2CG;9#H,#mZSUV%LmlTuh;F4nk9`J;mGY;e:^P1J=H&Hk2uigX>O(,9R#g&[M
+T<Sg!]VAa)NS8-IV8;\Ll4To,1#Q[PJQm;HL5"R%iA!Lmd8*oD+o)BN2CYY?Sqi"J-WMN7h+A
+jc[3=BBM;I2<6LHKFRtu5=c&h]LB=@TP?'',CCd>gk-Ms6F&M;0o7O@g0V,)T0:H%#[)bbBMc
+H9oI=4C1H/&Q4O\cK8L0rrmd=7`5q7o(&15h0UHsio&otHjs:6WfcM>-\pf^uehp"eMc>VrKh
+%iL;nLC,Ed]stQh;g:VIL%G+q?;J'c]<Rn`S-j/dMTRPQB%=oYc8b2H+^I`#FZH(bC6:g*DK%
+D":'U1`IGJCtN2('.T&.'1(T:7V-W1Q2XugZ9*5=q09,Z&\l?.q"EAYgnUI2HNdV$$2rcEY]R
+u\Zg_6rG8kP_=UU$E/CrLcCD%u4C"`,hVd-i`10#$kXUkWJ:P_A)IYFttAiD8M-t/%Z!FD)3>
+@CH-GqT3XWY+SQuGLVoV?^^kb@4XXKnPfK9alYh1>)Ok5MRlcOQ*(ODM-_jmB<,%;>C9EI$;j
+d>CJed;XVXNBQ8N_oa-1?;MpMYM%o;AMdGn2cIs/3Uq4ZrE*+$T\mVl0EaTRrG`Qks55nW-L1
+GnRXNrL<PI4j3uq/sD"RJ#8MPdl,G@3_s\IYn]7+2Bc@13#1ehN`/-i8JF?NGf.YaD*QsI+$1
+?m$(N7Wa:aA_=e*bg)+?Lh#+4R5d"%<L.1KcAp0Gh._k@>2%#>`jUX:YR[bU]ViTB8]:OdZ$#
+7I[6Q_0lKo^SjVNt6cis"ckYWaY+=:NR6O`j]('M%1@^g(Hm`,OH0l*T4<rTsVj<]'7H\ocZF
+o#Js%8pW!2OGW*4F\I!YG7nG8J%lE48nSQ@Ff-.NW@Jc2Q`p#$\6nu.Hi":U@mQ)thk6_19Q0
+lCB3K]gDQrt+O#<2mNZf"W/H?tsM"[DtMj4!t9oD>//qY9])pB1b[f\eRp<Qd!'Tlut5n&$+c
+"]=`1o'DbC=IpO.7RC:pa\f#]DYSD5H#Ep$Bagmh0#`f`9T8N7Kpt',FH@kqk8M[%`<=/F`\b
+aH>!$2p$=I`edSQr]5PXL*l01u>:EP<5+9),'TDj0:a.FFPns?8HYd-?SK=iP?r_.L?pqDeqK
+CKdYRi<MJOU.RPNfFc']igkIS?R^.L@8M(%,aniDj#pZ1d2+T'K[.<ia)>>KCtU&_c30XkY2W
+%`Fs/"W1j"=J\B&P%Jo-T4ukCSrkm3'St8,4D)Zk+5Q15@TC0IBqVtB@'suG<5`t=#'AfbQQO
+lh<EYOHEp,ONf:l!P5GC5q3h"1\fEPa[a5;m2-i*c\qduEhi;Iqq`Ii9@Q`IVB$];#*S4eI`S
+Xt]=bbBrg@-A`temNpJIis&iirVbDfTIkqEI.tNdGh4%oh`j5OI$eEeDF&PrI]26</q!-I@O>
+!W6FRbd/e*hbik`;]*%0G*QLZF@%]=sDF;"4G7)>6Oq9^@9m\B)`=*9ql/kVPt9DNVV2'DZk6
+dMZULG=h%lh<-L`Q,6/4A=pjT?.Z>3h&l)"^a;ckY(:WJ`ZM]C+!h)qDdmdmmVIds0SOU4$3*
+6Ee*uP;DA/`jG)N!E&iHhlRT0Ke.Nu\_DBh>[mCi";1s'2p"cGW,T/mu),G9dH0P[4N"jZtZ_
+.=U(,Sdj(o15f#qp9DZ,dOA`f>N\M.1*@Bd]p%_2cS*]oL-WC-t0,>6V-o>4d(*3$jFPM??UT
+KB[=nLs,r0S.g@L321lYCJS?'7a[$`E?[bo(FmDPOe[m`H!meRp(f,B'3QNeFY3p/(Ci&;Dba
+;j(Wn6L!DNIr+"*e7Rn"QHe?\,n.GIU)Y&%m2Mg3I5LC\g[:;^Mu9:3F,Fe1Z5OidRH7@6'tL
+gDjV:)4<^M9In=T*fBcVeZkU,pF7ooT]hu.>FXbfa&cjfTA>6n0@hs^>lK]UF@g!QQ\&BJ)(:
+,=P4fYA-!(A\2OQ`1q5hA5p"D_+%B+$.8A5)O!E(1fYNV4DsSY0r($+jqa3EA&Y@$P=E#6jo+
+.uK@s1e5`L2dJ!KB[P]+P@2`P!$29dV-hpfQ0DrWO-:j&sV)GTP,+FujKpl(k.Vq/q4OcqYF;)
+%6_*;a:q2M:<02SS0S;e@WNA\&Cms4oSYE*kCM@]2dW@T8b72AK8O]:FR1_7j,^3<`L33(jdX
+T7pA:"WN1cg-U50Z=5<CX"<HD'g1_nTp<e%-;]I=";mr6WSP-Fe%Zk>da>OrkcV;b%p\_bf,o
+@"k&jAe2qjiOdK!-p%Y`-S!2#[S*(D6$MO-(LM]u(D\75P(b1kLT>Nni,)@9)FG\r15;$\Dm7
+,JRe0N@9[3k5%o*qOVdC`2K1k4/#_s(4u&Zk97OuaXQ7lCias2*$d7rE[9$V$2a/OE]OLJh-Q
+\PM)so;-Q<V:PJZaUNM79pTo>YM)r^S9R#*c]j![KoKnD1g^r"TXi`Y7`?Pq"=?$n7IiaL`9#
+S)#ll3"!V,4_GR@Q1q'*U(Jl@i)ti^_8$S@CSAP:2\Qe7"N=V'qD(?_G$8EIr[E7T(VtFkDgp
+;R'&LpdlEStBI#S9!,ADKH\'-Qin/JL*LK0rPIe[Ae;MuY"7;>3Ya5fb+]2R5LlP^[\q74TYt
+du_BJdUu?#IK%nl.<?J)Q/!i_'tTo@OjsbgYd^ZT+@mP!d!8[dj4Hbq]UfOd6Ub9`6>HZVY-<
+#lDXS1M`]m'LUt9#)].u_0g8kmL-u9@krV!7.@q+M%0O!$U8c`a3cC"gk3b/N4'"m6IKR5)JU
+W3mKAj)D$X.tG@6>ao=,%&Ga*@e55.rol8m6d)9+dtip53/JWFr8Sn/es]$cl[K3K[+*g@RZ/
+oaiE-BKu-\hMdGR!o])$ZJ400'<WU'=uE7=Us01]6.hJ+J4:0MF9(TlWnkr/]BnB0pps.48&R
+fp[h\=:?l_]mg?,OVB$Y*T2jChb-32#`KC^N3^fP[bm3>`'DL5P!o[,noc<],?\H-T_D)BG`E
+0P[`a"J*.gF7\1ZBua3F86>C_9DC8'M7'.,<=nEnVpO$TTD?iclNr[+"IHd(lCF4,oF^`tdJe
+[uM>mY//5MB6RN=Fd-O:*/gJ\P2piD=('j[.WS:uqB"e8@06p:G\:b;\\uP2/\*!:Ua(V@G/X
+9pajXG'n5mbhVr]b*1(-QJ-&7<id?nUQ?$MrfbK$sZC_XKE(Mp"*VnZuQP@_qm3`bUMmNGMkj
+fA">8ssfjY[oi(/miWYS3"s%6d6fQ%mV^@Vq:!pr^2fJ:)tD's%DV9mVN6S0-$D\I6op$MK_?
+`RU@s^f5>hkM7cro7?NH`8Wn'[@0'hRB:4b;W-AGuBIo_731c2X:/K]!?[ET,8G%pI5DI=`LF
+p>LV68]^A]N;9cA3o5>[`u`CT>K/>&^[fP;B&_Z22=Ii7(buSKi0t0ai4a)\:;CiFS/*C+NsB
+:m,iR)Tn"3I7<1%N+fpcBVL2K*AI5I2nep^PNat(_='80-`6q6II^4nTEXm'E59Rp(2sYO@La
+cXrTL!-.K7+sVR1i]W1CBAXink%WQL_(nT1k$1bD^%67=KL[!(^kc`ZbpHgk9Ij*YA4cq\*8I
+N!"^4]-rOR\t;.r`VV:/0^``O81U5Q1#k\f7]AI6)#&f5T>`pil5Hu]1=b';a,U]7up!UkDm>
+YUU51a;$/m_i,&G@T'`n%DOlV/*N)N$?&=nG)P(A?GRU*'bHmClr\WcrVrcRoC="UgjosA1)(
+WC"-n[5J?*;.c%&^?91+t.<U]oS<kb<rEbi_D@k(Y)V$)g2p2Sg3]rI``d":ErskropHQ(@e/
+dWr^IIrp6?^8.?)a#;qQhfPc,MV$>@$ud4(V_7T-eEG/MSS3t?77utC_AH'o7D:;&KM%#Z`OD
+YUmQ4PKSUQ7!32d[N+;H+J-JD3Og)((lm)!o@pd]G%,#/`0gl%kJ^M4:WD0"t-3,+7dAY.]bS
+Ed]Nd'clNH$1[u)t_'"(1TQZ@gIijSLNAm!\)O`oWb>+99ikIGLES2E*R4Zlb5)T,:.YDMMi'
+HE";O^#1-dK0a7=>EZ;I)Bl.`..lZCDD9=FlQ<!lYX@T*b[9VRoP:aA`\*S51>K9;]&:gkr`?
+GGAe;]E%Mb>l4Kn@W5:%DVX6LP2eb,0QGWq)VIk]N330M",*O:5b!2<K@JBp=955Xk=u2<;l*
+`Oj,]V$W5&;bZRH4@$fAquLK_i+/oG9SI[6`l#IY_3@Ee!Mu+BBKFNhOu#^oJb03,0-s61R\i
+[a-?JHa"^bb6NF@+b*=/]o[%1kol;Y;KS+1$/>!kh232rl1GRQQgBu2QI/IE/_O&mL[SE),l#
+9Jes=4*E7:GI$dLIk0;VUUi_&(%8mL)`)50$#nh.fdN_!#h1=hbb-5GWs\s0$pp$)V3-PZSD<
+o?"sHWR4O>BZ8cudPFDIYSmS3=Sst_7fN13ZW[gJ#C31-J:i\PF,mkJI1cmO/YmZ,FpPl(),/
+4,t<T7\5(NQ0B:hVJ(fV!L*.D7U^'c2V#7!OB0`.-jDSZ'_l7\<WL:/,u=3-C4E6aLX(ZLKoP
+M$U>#)S*!h1gZ+,<^?muMF0*jMOKGn9GXLO:_Jne!f)Y[d_crdD]hB%PY8D3ai'ZD-Q`(CVc3
+'\JuVDB!J/?#Gam+-_/lXAU/IRg".h&=S`>q?N=]N0Q\t%B0E<(UL,emeU5J**9@ZEJWk6M)H
+?&Pub,@\[;'X=5WY[<?jkkp:Tb9'mU<<5KIU?e_c!p/-Meb>K2"n1^)DDBPBjJNdo47IZ3mY-
+rrbaY%cHh4/1r`M>kSs[NH(p@4.5Q<^OrWT3W=E/nGc(D?Ee,%\XET[Ef2.JPQDu*2(Li:Wg$
+A&0Ke.UAGu5WZgs&)GKf![ZN/Tj2Qn`@=7q_G[3mY.MaBD1=#aU;Q"\=)1mGoO&:^<]XZs>)f
+Z:N*.+B+%o0tuEe+8d>)7tR%J(/Q'VU[375.M1.*R[+A3`akW=d'#BcKW?WCiM9p:SU`Kq!cd
+KoEAb7M=.X5;<--`=oXVmT?L`i8+eFX**,JuP\\cB@EL0#*Yqm/:TYNr24XN9d6m>oidCGX,i
+/0PY;AjpYEDI^rUeha2V1t(43XgXF_Q1N'jjaKrPjqKn(E.H6.?6FsCaZ=K`*e=rGUJgE,Sm<
+?ZMf;90)j2oiUU7+39Z"3M(NEu3G;"#ViW_;16dCIir$:<3eNt'0eUHP_e-XjM9G(cPH!TB^/
+Q<sW;=o`ZTP.<_<'2^kT.\O.>ko`YJ&9^qd9C%TDon/^\Z4Tq8`O0J,c-jrV(g?GGp>tq2^#a
+S#L1mB32/3>/prA.urNJL44/<P<FuS,kgEjQm4Qg*MjDp+U.4%j(+Ca35;eX"#Ihi4;!tc&Z6
+3D`-ft<^*@\\E>2c3-q=GLk!QA9p):Rb>eR\$6TUh-;R1i]Q(<u=K7kS*RChmGg'7rY:K]cmo
+K53H5')amPDF/SD@F%jU'q!eZr;jmFt$33Ne8+%5_g/0?Bh<N:LhmLUCl(+Y+nd:.%q51S=4G
+"NNsb+[<#kXYiE<]QWJ)0=(iOIYppc&S2!&3`Y_)$Mj36mfM5k(=*CC]3XXFMdL&b=rsf5Gp4
+n1W]>+V7)8CW*U_ciK*]YuEG7;dcN6T1\JQX9/eoE`$(hUTE>5Yj_8'^qictFq=.Ki6NgQMo4
+*.Ohn4MA<o,(7[5GMS0mO0fQKbKrWD<7js2Xs].Vl/7e(b7:'E*iA,K>eHG@&1,IL.?mmt:)!
+</:eVN31I+M]oT7m230Qnpa>'=8Hl@$:<@Q^6<fEdn=bBAo:R<[J.<2rm^:E@_;-CVgVYIG5Q
+R<p1R3mhjk;]Fl3G:W/Pr"P`rS,uHRq'SK/hJ,!&rN1kP?Mt#2KPDD5F!UrjB[3?OJL)4'q_6
+*Y+lTLSG:@Zi6Bdk/H>Ag#!9r=\.1MF2djTCqp;9`EI*=,fhT0.A9$lscOQO^9RUl/n-Q!l`V
+D8[4#mUjc+9Vq(3.'M),OeNkG[m$M^_r=YITuk%dHGI3_<'dkq/UIB^-[JNDHF<Dm#J"MV9]$
+Yi(UtQqCjQFKr-HOaC#l"l+X**H>Q]:E,delgjE';Y@0c\=%?Gp@pa@SfP9);Aog%*i60GNI-
++JVRVQF`">aLJFOuIWt]'"3JeU!M2MDNI=NN=bYAD,cVY.jOW#`4FgrOAgmKn*%)W?O;JpcC'
+[u*]dFAua:GWL7C'*-sJ)e'qRL^FfaeO."BspatGA9Inr]"aG\.jp*Tr#DD7D9d(&5HNmfc`p
+hj7+fA-0+NIllp8T-.nEBBt@[p@F']GUc0WeBC)NQ0N5"*C8$9$[EquKoqfKTBAAUuSUd2"Gu
+.?@P_J1c5UUe2%?QcAn_h[ReJ3f+:#fI):1-.\$.,!-K6I+@Mt6AJK>]i+$70?MPE$;,Xj.9-
+<LNMF6V%<YQqjY<HX23Ol=ob]a/SD#m$pU?VW*MUn&9N6_j4TfE6iT(R\lTFe?S1g;$CourK(
+CEO;3n9?6E3:WV<#.liQ=/^[SL&O6/:n6<BQ3%ap"+bR:uY]>R@*&DCp:JZd5g2"A?s^[aK,K
+A?3p@HZI0h^OQ^PfTR5)JZ0^1c<(*'aY3oS61di>FB,*S[PFS717SR0[7ql;LZJ+o'ESX(/sR
+DYl$n7iEXSRNEQ]OdSe!l2%I(g;AtVu*b^?SJN4r=N^_SkLnfIieFe3("@?T^Tkl1GTVYBCnt
+;i?qJ]RW<84PDhE$L2])ss0hH[b*\sgHJ%)Mi'HLr5c+sZi%*mHqAPi&IJ=Rdt^.^1Ye<-l`n
+_A(T9O@IV)S-lC+E>lJ*E9]:+/tmM;`$sb?SAo"]3aEtTm'@9.\%-m@"+m?j>#I>I(T)>-aW)
+rHS<"tmk.?Zp,KVq94KRnt#U`09:cf8Aif:uW)I]!m$`k):*rTA!D6QC@`>jl8=-o:K1Vr"]D
+d42XC)m!F@#E9Wq'6m=L,?;qPId<$;kDh=37TqN%&_DAm(e!<K`fZQT5g!=!!Y,XFs;JD)HI^
+K6mFb_K]^9VgkN9jfKhKF8j_5<?m2:Z(5>$*<T.$_]AYD'`7$Dt4dq)K#L[Rqn1[H4HlR1kb"
+TGU0V0npfSMDo]"Z1uAo,UY^f!"]pOofkh:D/`[`>@ZQEq3!qFu1@>&2=(m_Cf)RV.E+7uE%D
+YY8^i<.&H5Z?&G/>EW\!aA`\>PD6O4m_uG/;IMV-)6H6#m`5F%*?&i;Lic.r/uk;#CU'I??4J
+#^]`AQW".t512/+EhJ)6e2;:s>"4+)CRiPK],.]0_mM&@g*c)0&Gd2Qsn`i7EL405Pt";RBHJ
+rFTnl`$l'7F5qP7];CnVJ8:h7s:.W\Z^jfRd3NTC#NHWE&,<c%<2q>Yh=;*g5'#$Dnm4)K_$&
+lOJdo\aO0YDcKA%]Vhh;DT*H;fN1#X"8hT<'4M.n?5l$u9/NY1P`bFpG_5YVr.+osUFVJ2GM]
+0:gciS9e>>C47S;_%O*&c7]<'-q%f3FdA$Pp9#4=S.8S4&)B,Z9oL#Ul\-7)Y;-1E9Y+]pcUR
+!IP./on^eg*,)6phP6Hl?_,9jQqViXV46>YF72X0Pd[PH=lL;n7Q@!%.8EfW@&P?NSXA_LE0l
+<S>Poo4.S)7^e%rl\_F2<J6m?#d+oI]_ed4i4>gO`K.c@9/*rX:eYL$JR/P#hUEZP12S6\+)$
+C]tA[Q3bjC?['%4^4G8KX?>p,GJ,0$48sKBt>tG:*-=1)3.=?ICpU].<58bZtHP>;<ik"+<8;
+:F^3F)3)Dd"lZ%"o@"St[@eH]&`fXQH.a:BcT[SRMH*8p9qcBuRe`CRAEt=K%SKo@=`@8-3S=
+IUOR&oplEQSHWE'@N/1)=AVcTD_*"_KLKKEIoo.1I/T-8aX9]oEa<j3)'PQK!e)1c0s&eE18V
+.8FJ0\huk?[9:k@M2P>E+qRAW[Sp3Cep-."]#H,qp3/J'oU+e<m"9&AEt5YR^Se%O\bDn>;R%
+J9jA@r-ENYk\)5f_m*8;1`he@,#/tt&:g'9]I(7==&@h2*C(67jX5'"\=io8$A53tCiS:gr&6
+OKJYM]dU>c,-2f<'g>`Y-'B1YIrWEgZ`8@*BED[?Hdc/2t+j+UJ>8N@#IslU1K\6!I:=j_:C_
+D1[m9/m*7&t+<#gn!i$%e]o-E[@g+-\O"m$cLdIpBQsi5&Xc%VGT\Xu#H]5cTF%&$[#7!Q=P%
+%tQe5:d?KjGBT0$u1mH,X+GL:?,L0G:c69mJF:HX%$`m@Spr[,"G@0f_Xn>oqeea3g:;NWP4N
+"QWsT7US;dOI^k%/U^<\_X)fo7JCF_mR`:/E^MS*1X82OVW^'2VfpBXEF`c2MYn[Y/s!uIet=
+67ZD.S]Qsj+5'e#u<bH$I!@8-33`)EjpaYThYlbTi+cs#ZtcVE.L@#Bl1aXJ$?MPdoDUd_1".
+1pYDWJk+^AE8'$1QUM-:DdILQ(^!l0]N>Sno,RVO]*!pkh\`L']l-9$VtA5N<`O'?G3oQbna&
+\^IIl%C]-8\icD>s>fr<l"]P=&apoYpi-]^@<Bd67DO4-]I]`mIGI08VSsCS#84SZsS1::;7V
+I[T'dld^OTBO&nr4u:;'KN@<9qgu2o1tB4M(%>:s0@&Eh"Vk%s)RC-)WpCn<YZ[<d$f*7%t&k
+jEAkHPGRVLEE#QQ,'Ql+aY]j?r*4!@U^48*!TPqc;pN%<427>nYak:F@^4\OMKha&5C>iI\Am
+19f153BiFmt_lZL@Ydn*37nnT6nV&+CCO&-RM1#*)Cdio$).>*pScDA\G<QT><mX$,0>H#nS\
+_'bC-5eq-kSACmRX//tDLs#]\"PUI:']`H4QA8o0P[LlKL<##3E])pVdno<*BVS"DqP:W0f0l
+1&MTc+,&i/W\:9#._u5!;Hk.=X4o"d`":lT,O8[,5pjGK,&H,&hhL#e;'/]$)k0UD@_HW'V`0
+XGSWrA?]9T2Qko0c7hUcN3V+!Xba)obrb?;>EW`Rm:;LD3R8V@u2ib3m51$;f,XHcuqG@Q_IK
+TsD;%E[M<On*f`5!2qt%kmjtM&)Z8oIg>H"inFufG<aG(>5>l0EY!NPhgL!(s$utimluUqr9t
+b/i%d]aIY5[PhTOoSHn]efq24-QBAWY*G[X.\dc$k44WJ0Y0#n\kl)CLd3_luu%Yp2,T?qVq\
+dmmE8<a&M!,+V/i9c;HnI+]2M[R99(u^Wrn&._$$6Oeu]C.%qOtZUBHV^"@;LfBn]*H-NT5+'
+_`Y6!oY9L3]][s>Ms-=X30o]0,+Vl<siqQ9N9ql'9C)nZ^NY_nuN8S^'!15PPg*oVPWSdBB^'
+XqXb8jH%-Q%1)Lm1#N]RTr9^h%_!r==G^$'Dh%XPT.U\c_c")#R^GL616I#75UQD]"W-?G3q]
+)GCaE!N&;r1b]H#R0_?AMf)3+NHrs\e$5V"JC=P]ZP3<_Yam2:+Ldp<TLbBOgCJr6GlV1Q0W*
+_$iR>hr&1i,,rUBf6fmB?emt\a8H`S*??pk=(!3'n9dd-XYeE%7,)QfEWljK+e!FU[K0d9^Li
+g2VScR]-mhnp<CgfkbOcLnhhra?:L+l)FTS)WbhHVFHMguu'f1+A7bf>F0O("E^S4`S<c(KHK
+r(LUKRcE]K-Sm<hD8*j(hn9BoGab)Jd^_88)0Xl]/DMU.lTEN8Z0SC`<Z4+RN8se=;VF.`Bmt
+U<"mcO*OpI[AA`HV@WLi.B<,qQ.0VuG_I=G&*hI[N8*3!Yo)Rjc8g2("ue>iG\S"!>a73/t_M
+0j;0V!bQ"]<o^RHVQZN/XrLu?o2(8J0&^>+a0<dXelP)Y61X@^e["e5T.k'o7kKRpYBfDd@,g
+eYQiPlgj$!s9ZKrt,**[,cEZTeG8sU1$!et_$%6=p6SR[^R0V>97@/0?kB@'D`7K:8Qq"Qi;d
+AV`iTGP67n)sYiqtE4FY&cXLKqWSP,2r%pe"U(`o]1f%Sqdm]rNP1Oa*D.D+`Lm?dPB"QGY@R
+]?^\?)ca.,9B<48lQ!0!3Q]#Pi9"B0-&5?1eFKXnrS6nQ55")!5l8&bF:s9nS,DT&Ad$tX8W"
+Bg>W4hXP'CYr!j)R1SGV9Mm9/)e%QV.`cJOY"qX$Laae1&Qea2Zc[&,H1W?2kK='elbm(\.;V
+R:@.&YI=YX5O@:@=+)ubq!s;J]t2.@:X9u*f@+N*hhSi#0Yg^0kX[EEE9DXm$E!rtlBhA,i`i
++I9QcVdp9ZDH.dtZEHcI*^:=Y=t3-CL!Va`Q&49/!nTV#iVfoKNuVl:2L(k@i5](75ZV1.Q70
+_++KN#!<%V>L8[LZQ)@1[#lV>`\C<HbDG"'96SX0;E+YO[F9bfM;S$(*!1!l1$&>CAp"L-@Q/
+OlFiPc(,XNoZD'HTX7Nt@a!\nV&%Fjrr($+Y!um8T>/b0dK@ip&2q^ZjME@k=G0EL@)5iAZUq
+D^76jf#ViT.)\WT3g@j8_s1kKC-[:9t88YJT5rr=V!+*,(-k$p%Scq;$#Cj3`3M6,U=H,TU>J
+!NbN=PK,\lk'P9sgg=Ng9ckp*cq[tS!F5OWMVo//&lNC_^Y_C/CT4$7-32NF.h>j%Sem6_a@J
+BYAV\0c,>aLd9RUP5AU.Q/YUZue#>W8(.[/VgSOs4+76X%,jcq>X<[[/dH$6JH-0CjuOJW//L
+Jt/<:cmLhpHN*hn$,Zl!Ee@=hVY*Y"3U_2a8,U?rq(Y'LSitLhRjs.g]KpE#IY<0T3r-UpIES
+)4^87m@de^UoM!"YLIFKg^Dl#=dq(!Is"rTO-.]M'N-b"j4(37$,f&qKk3.>nb.)N-'?`.*/S
+SR8`(@0!WqfN:ERG.Flb(c5S][nQ%Zk<N46@M(d0M3ugL5'ioK#9:*#`V8j+MIQ/[icM:emnV
+Pm:663ltSY]M78j5::m&I8\5@q844ua+$?uq3$(&3"E?BH0&P7e;364^:q=S#rZJV(H7@@+I:
+I^.UC)PlSpUT7,-Y<9R)qD18IC-Co8#D<"HmT_Pt.03u(f>\MoDc1-d.W9X2/-5,SA`dJ0<eq
+Y0H`It`.C?FhZUW;?bsj[:(#pAMJ=i4%oX]"e+OHD3gJ%!ar'`(-MkpuF<P@/@>H,E+K1#gWF
+eENBP<OQB>]ZD?<3cRGAb[-TQqVQ7)j1fM&E8qBLcrM2#JLK!'8di3.!;<+Y9B\O<Ojfq^kQl
+RBsN`%@SpIqOkknp<dN*a7GcXn/*V_7\3\RGn"FD>9S*Icu90b!pL`t-%9&-aOH]a"4=Gm0ku
+i9bq(Lp!$?qtKQ7pNOOPq]RYMVDna305f0VH?1qJ4)Qgino;+;GQtSDLqA)(C=A1>@%057RTR
+ua:A[U1?Lb^iGrV<,0c2CO0gD@9LZ27lf@N[[?$,/'//W8VJP2"C/61!(+tS!O/LSQM<1uu@I
+XoW>EY1rp\hDS]il$tSPHj:V>[Mu%$iAhm+XeXY'RWW??'KjO%]0n`'!T'@6#^bs39bSESiC<
+e8Nh%RoO@e4PS64G)0GrfJ.s@=&]',n(G_)8L*EFu#o9M+:S<[DZ&6/X^*PCErCuA.YDENg_,
+(3%#4L9"j1(KV_VOPBo`[>_7UW(ekKtMu*1V+#/WJQ_&o_S/Tj6u7#b4lX)Kl.BBYlEk-JZ;3
+GlJWJ(9$f`?JIp:,>KV@DTu9Q14<=Ao4T=-9;.!J2FJm@3*2N^k@/[oF+k\;W?O0=):%:Djc=
+@=4>@:X&lP0h)pcp$H2u^ae8T.u%Y9h6(bCMQ^DDkr2^Y1AS5dDH=^*OAS29b_.d#-K9^sq:d
+*!-dTmJp>9IGHAXF*1Ig$:$7_/qB!]S=G[c0tqO%pm`5.K72(-9-c$]M,2E5VYFbH^`a8&#Q(
+K(UcakAeai^i1nEf(qFm/jAZClP]h@Z3%7#M!`!ggO*[agb&d2q0k'l"MXTH]g0$OjG1R#_fa
+IlbbTDjuEgpKd*md1$C!HtlqujbZbRMVbn9BU.h,/hipk&+DNa/),$GB/!m6sF@!ET2iI$jMS
+oF+V.?@&368l(>>rk-hnHZ:.j(Q^b=&Y's7H,[gE:2su@"!Ah%&V`i?LD`oJ(L;\+Di1P#a$U
+P[+\acsn-k)C-B-`9kX*AK,ISUI&JX0`5$1^STJH.ZqI#F$,pj`rm?ZS5<R=pK7?=p<'?q.:r
+(]G_n_p2<d'eO=*(Obl<>n=:PmS=aRP>7W!*f.N$!>KjlBBI=3/hI\C5_XY5Kg%Le7@XZHUUI
+e#p[`Japu&MJ9%+R*_l/<ekTSTCn52dLMun`^?bYUTbu?tTLulDGL:dF]Z:0WBeUAtDU]*/6h
+m&oE+%c9rXDn&r@m`_)hi_h'Pu\0#`h8irdiYrI=T]9JQh\E"_T[ZZlb%D8jC8Un,f51mjkWF
+-9/ED2]RPhmdq@CCmu"p""d8<OmW*B,2NVlJ-X@i0%=eq*9bhkV[njFF1o&8#r$EV*I<nm(t)
+qVcVZct!=imOH[XP.>b(aKiT%ip$H"7oe7#]sB/TDbqulXg*JnJ*==TtuMeLgYho?dGcPP'&#
+6AQe+8;VJ$r;5kM_A/?2T='UM;UD>5N$A;A0[cU&ZhDT&6`qt;S.;anG#1*ihk())^&9BW-c2
+OQWJgK<s*[RL;Vrn#?>pOM?eV,O&$jiSt>*9V`lXOP"#O?DC1"*GLOZQ0Y%=Ti7O6_)`ZR4#'
+dho]);6U!WHJ2E:ES`h$r`2ThdiP"X^g2X`cacCd3a\\r7i'@2!:7UHo7Hg$Qbtf7V[n/o`Gu
+/,!mf!%i>lnckHMZnJW>?4D[^QHN&is711a(]l5jD"%\G&:VoZ_*^I&hW*)Fa+"%5OEQAM!S@
+hE*"INB^aI(Rd0K,pY[T?jEo+X[Ts+Q8LgR$X#:Ej^3$HJ?#Cq]]K3#R6O.D=.*+^Xj*#o&Z%
+*4(mdZ)4A1qNY>]7@p`\@R'/onL-hJiOZG"&Kti93=6bS9i@bDqPZ(5VYt6M#h94i!@Cb,6\6
+%I=1C6HM[Ed*sUq7!mAal<kKTeV19p8-gQ!^99GhQC9=sam(jFb"Ua`>e9A\KBIC1&JC93ZNs
+5Z'5s$)K*VXj%[b;#mU$"/_0][u.liSAF1qS#(l4T+t`NCgJA8W5lr%1lA#h5+uj@d4WpYW]=
+)CYYgcHn]J!N#Z:eojC`lDaeCIf^C;i=oArLnIe<&imb($Va'gqecrd>l"pIHAe<l$Wa-+^tB
+:NT^Ch6hh,OaLV28D4'C6<ejX)+;4YT"LH]t`7PjCbS].e9?G0h7'bYZhC!#Nj<-qH>H2i'\k
+3D=scLhO(G,UqHC(>tW=G[JAeHK^"r]Sn/+2MgrQlc-c@,usk65MX_M\FHVmm-3$`<P6cPrAC
+R=9>E1Dnn=7;[dHg$#7>Hb5o'<jt><R5r=pl\*gAhXR%Gf[1gRB;GWZEKQ]G#H@Y+9rZm!_jp
+H5EAcr)qb:'rRa*cGK5]p<AK&I?.`NX/>!C[\r4V+n+IQ@l)LE@W7TUGWu5s\?n,s^V+,F]#3
+e.$/bb?nadYCC]:5hU_:]*-A85gI_5_s^O(=U3E)+,;4o;`sMgT,MtOG6(q$=&p\<&P`Y>b,<
+.m7A&$#/:ckGI"H#0$A#edF['"UEUW;F(">DG'J$e(OMEX":>"@r-=DB8IhVHAW7?X<*5V90>
+'@\[0RQ*t!Ko]2Te^p!X[1</&U/5\"#S'6\js6\"LSjVb:XC;_7r5ScOFk>6WB_l*]as$>M5Q
+tXRSAl;;(c__"[d=>P+Sdi3C2k`4GC-e^[mR:;-GnmH%("GAj-?&%;:ZR[hFGj^:,;hrTN]S&
+(LW`5Z*PnFY't58I4@?oqeY3T(&6&_]i9=)Y?h8=9Vu+F].sn.dV\%6:efhL^2#q[>'UC#;GJ
+j@29P\eekXij^<%<3n6aX>XXE'sk"345iH;R!S8k!&YP#WBa5[:gZp%n<ed)=-mhi-Hfs7K2l
+spLk+%p>b)&]kDg4pK7P,;-[Q3?&P*I,5QdRJ$.mXr]ERdp8niN++b.;>[ociEcusF_YL!Z'H
+1g<L!(,np_Jk,VC8n8W<s/4O`50=GH&oQ'@S?h-qO?>p$;UCiAZK<*X(NQU"&p7!U'Y'&i!c(
+Ef@ZFA&)S=8Xb3JaBTW5a4Gfh?^V(OPD1h8rWusrIJlX_REVL8j.&#tK^B##5*Y];lj$;$_<)
+SdnHN\*Y%U*X,A9n8O\!U<K>X?VYo`ghqHjaOLq$`o[A7/E29?Ic"k)/p14a=js43lU/:?mOI
+;;l:GI'"*g\dKAThf5N6m$FKg-0gQorA8aTJ7jaGbc<p-LLB"5qek<gDm'CuIX(:NUNX6=K+G
+-3:,hXuJTc?$GR)si%-fd1b5FkZGc8.!'#,TNdlT=Dgka;'oXYoF&YSUpj:3oM$H]rnHA,mV@
+6a2!d2`*[340J2gmU(5$"f]0VU]\_YElV+V(?E!k:gKJ'oY*DiDG&Xh/_N>%rfJ^90hdorUXS
+%Po]&q(VAo9DdN0*Y[bt*nR-t=D0'A#SkT5%5G6hNL3F0\We:"NJ1aBokMQken0u(GiRie?;I
+C0Hhk1Z["dcE!TrJ/'q3;1SeBK;N\1i9Ym;_4W?&URa&Go1?K#.hb]M<?+aZjc`QndjI3OVTW
+"Jf!EX>IoVaS.BX/bG\7B/&R7!(IKlBqEV%_:a<_KDue&]6a,l:VGV1YBP,4*sD0G!HkFOc^1
+9`?>k&j/c!cn!%gL8hVRr&B/fQtB/bJB;\8m!do5b@rreeU%!K0G)o/A\_frr/iRn=s[pIDR+
+3k'LmtOp4#/_s7o:$o83P.f9$eTg9Gmc4BS$S_NK_&mVDE*$:n\Q]gHuGN/2DMra3Dp#H<Lg@
+)7k1']CkGY)`M&&VYoioCVdT)B#L1[]oAC.Nr#$&bJ&Bo%<&i&L)VbR1hY[K*MV*/8:R2u>)Y
+AXm@#^cf]sIS@@-`:4+8>NuDB;%r#p7"$o`"3+n.%^/lN(Z%b7Kd5!'%N%Yj'F%&s0^&2'?s#
+#juVce$CJ72gB]@E&R6Z>o1IEh&oH)jXVVRgJ5&TV1OoAZHI&q8$\\/iiu%]jcmZ;'@9+9*%/
+1jfe"q'%T_Tk9">U"Xt*S2:#V"gP8D5%9N1/kT%"7&?/S(<P<D@e3eR/JNoqs;_$iN[a2P1MJ
+@MdUC[ie?d12mu>1B==72g]Zkq-%r'=0[#P:^dkWm2!IeEQq8s7PRTlS&8A[2qKM8q:HRIu12
+KA&B5&pLqf+="aqmG^89oXukRDj&BaGAYolC.pM!IqJPYFOd#\O2#[77^K`G1Yta9,UQ$aagB
+9j2M@qr82HT4=Gh":9VV@"RS;l!i[UVB>qr'Y%fb,[Y_o<<be%[M^l10mbG!d(dm.)/*e')mk
+e3NS]RNeL^h62&rnqCgF9f:=LR^FbT-\e-aeZ<:V.OTO:7Ja6Ym?Mj<Bh&STn0/[>>V0Y;/%`
+lG32M'po8G]O?[lB/l(A">qB=Q?TaW-3K76Gp*&1ftr)CHT-S@qI[W8T/WcD-^4=*j6msKOeP
+TO?X0rA^qY`Cj;P,>_,im_5Ae5"Z8'&d)aJ*ei:jH"d#?([Y5j[iHn7AOO-;7$0IC96!6P*K#
+DS.A\ok%&J[<22/)<uk4)-"dN^jeI!nKW01tQ(@)b<]_<f[an2.7l*+&l[M(rr)_<A1haRdd`
+cmas+7BE<;=aQTE/f1dmsT+91g6KN-+$!dO?f_-fPDPkR2YYg-D_P'Bk8TMtOFZNK#+)VnlVX
+Na[mbo^G[ODi)H4\SSC=kRf/e4SX1$nM(;`>!q75THSRN\&q2iO_^30i`IdgN9__eH`X>Ljc`
+u2MCad%QGo`1`8]9O[a\&e>k(dmPZ4^EoGT?Seufk96N:)Rk#>jTeRNU+<"ApQQ`+Wf.L/f)M
+Et@@/amA:i\eCq(8p<#AL@jd/92X<+o67[\<P44![?Iu.9kb&U45`Br\V:9,bJd,9f;6.0:rH
+:En$o7C?MJ'`8]9O[_rKi)dSRPN\;Ob=Q7g(aMhka.A#*Le7Y.X=aV_`LN7HQ+8%ckr-V^U(?
+h41O-=s+cI=::Iko6:h@b`FF4mk)K4eGf#,N-c4AMm!;b,:T-%2Q#QuK3K&_<?W'4$P,`ZmKC
+Qs?">@=AV4=%=da:XojmHMLEcH8lqX4-o8^b.GgI39^pIgfT\;A@cKK+JdmcN@("We$,kBjUu
+9^-#(bWPLCT\Zcn^++f7;#X34<(je&8j3k2V.LG!Q#Q<g:K9T`!7i"Y3d6Kf,t#bSXHV%M!7O
+)6EaF,#ef%$X@/dQ04L(ChXNVO3_\HUTcI*>a>`dEj<ZS"$pJk.E0U.PD`I7JV8)5^9h;B]h7
+%#[[p67i4^1HT,Od0bRsraBj3jO+I7_L/*>Qn=X:Fo`6Ke$1lN=&8*3&q<0:!1VoTX,S<EA!b
+ZKUL/>g&+r(Se!JaL/['5IkRo8(.QC1?%D^Wl=;r%#2=If(5EbjEdHHUi!86A0?X'fsGl2'?U
+-5*lA'q;!R-4Ys]UE_#m]0DAmcl2s/*[aFq^rGoX(u_:dbttMC%^'X@jdpUp0rZpL8rZ,,bXJ
+'<[Aeg4[[#YTitTK'ECFl;;OUQ)'i.X1+(=gWUMCc%5qb++Zc*LHkQcfSljE+_7fYuD`&(q<K
+R:WLDGCS4&uGT_<-)3-]FVU<U`3)rQUq>=\4pmu`G(AW\#o#X,D/LXi(2%a<Jo'[=,c"+;NOM
+hBn@_s0LB7T=1C*G1KUoFVbnXa8AnhFbtCDePoXh#mR&HY-!PXiWJ2o=O:BN3Z";P_dk&\aif
+pICNJK&fkqZ_dboaZYKM7VS466tG_PL+u%mr"XN:O'.0Ea#YMBd:e$\04fUtg2mjZ@aOY[j^\
+fO<V.Q5ft(dOf(C*G0(I?(=/A3O7&)dbs&;VEin8Y`NFOXl;_s%\.9+3Nu-kR/5%UU)?Hq76-
+*IiS-u3nhp$\aUp!RFSaRBhau-!Y2(>"Ikj5Y8)&\7GA[0/G'2_#7;eO8ioZ](j:;kD*3QN5<
+Qj2q^*Y52I&''!pR?tV&S5Kg#Gmh$PbS6;'6A5jNk'NsKW&9I-n()=.n5A5?TYOj`OM8n;akF
+\M475$)D]og'8-&MA8uomZ2uD>^Tjl3!R+.he[7^`rD;2iCEqKe:m7IP:0':5<'nAWELgh2_/
+ROG3WY`\IKHDq)n".P\'0A$Z)<<i8nN'h+gNCh!XbeVA0t;V_hhA(A9%I?AUEg/)44gDi)Hj=
+pCN83ai]@(Sc#P%Ps1JbP14HnK[npSbH@5"7if_2F;hI$n&2NEDC`F9NB1!e0^[KVc./9rl8%
+!5a4oe&RD6F;Z(3G*MmPIo`T#CW8;gDP/5D1_ZoHUTimbJ/Mc3n4:5t1=37Z"-e@8&-;dCqLN
+Jk/'eYP'l%Qo\&449ZUIs\HK&Pe)lNB#@W1OjbV@["s(MT*[[(8n$=EAE?hWMs!i%&2d(lrbd
+/Nth>iHll_.kVsT0;MsW^`B>a/`tpD;Z>1p*-\GNkRYo)++Pkt_Y?fTH27IUL(+4`VKMur9j8
+g;p4(i2G1.YJ+2)]IcJl<V$B5o\_`Q@,hU0*p::+_@Bal:gEm"Z7THrV3aidmfflGsM.0jel*
+S5r,u<6bt<41h,U`Q96>il(BkoYAtKHIWcN838Qtil]pt8.Ekiiae-oE+1Sd;e^lJ_MM9J$``
+4)*/d`gdL&`#X/)+aEK^"95qBRKS/\YkOC3(n9\RODN`U]olr_u@34[R>Z,N[gBa6"_bHY]:'
+6>^"X\!<^.GJ6fT.WmEh.^kD5n6fGSHM](NUF1-W?p42-eXeaNMfI1d%br21l'OW9_!/Hc?+6
+\n'mf=(p>o7qs5k/#-g-jS6?VbPJsLiGqh:dIWcJSK34Wp:+](>3&TRc+?6cKFquHXFG*TAIt
+,L!"AZ(hS]/\n2DM52=I]e/EG?s=-\L&64.Bm7U=_RiRqL?I=@[pb'XT8(-]:o]@WA\5[3ue<
+Mc5P^%&Z55WE<&Eq^dAi==HM;j*7Io=rgh>)!)I"#L0OS/PZLaLf=:N>#LE*b\:f)n$o,l:5W
+o*M,gM.na%f%#2'M7I$`;qB)4oa<LfMS*pkB@UrlhiGq<PnQ]/q+/5E=jhDd5Iqdr";Y,FJnMA
+%M2>F#L7ZdRN@3&-m+gm7;D44W4Dc.Li&PANh;%6Cq<dc.@TSL*rCEG@k0CFApZJ'4iO29f[d
+;-9-dekXc%X4>3*V`(?1b&.AXHY9YO.,%70JQ'taCm_YBEAC(#[SsUQVlGJ4"e6R1C4f`\>*/
+G]G3e_c%dS=:\URdmPLUQY3oZ.)!%gqMBuMUJC.G[<nWt\Oj2<^2dscN199T7]PA.ftMpi%Kg
+BDD5C/HNW(8hqek1MUT4,]:gCn=q]Za2V/`$Rr2'oS8A/5ApYia`UiB4pi&=qmH=BCkIn'^I0
+ONe/%ciad%D;(PHXV\[82A8u?]8iUZ[T;uM.<Ar9d>+-m4I4Q]$D2m#ql#SqXSX(+$j.4ne1/
+@Y'&lsKl[:@^QHtJYaUZJlLN)R7m[Ml("cHaf^qeS*$4(?,7hbE?VC4.OVNE)<UFmW/QBkrCN
+VY%FTcHbG!Kri.J<R^+\la7RL<a3uY:98PTH$P?+4$/@!(UD2,WkXhNCFe`*<H2KEM"+bjg,=
+@s\$ND#FWiX0,ld.JR7U6is7hPX<B*tk&DGW/c-O\pe:k!'lup6;gE<QUPW.ieKp1K^/5BKl-
+JL!(r4qUPX`+tj5u[Y?XZAP%;\uaEAX>WF9_7Uam\rh5WG[UF544<W2X,8lcAq9PgRcC++R?]
+"XSG_q=8ZXP.\'UQEO%Rk/1\,lZ,:&:UKX0oVV!M/Mc5OCEO%R3-oTDSl.K40$tAhpR\$(haW
+NJrWi9*j$t=3k.MaCakW%snJ+g1D\7aq#pu4`_Bb-EeKh6:1b4kGFMll?7MT*[[(8n$=EAC'D
+342_`YZ!`O`Q95CiRH.]fI7ociae-L`^tEY:\@g*-\GNkRNBZ3A.XYtdplON$t=3kH7Xu<6$C
+2g3"/'#M,R^%W]MoP6)r*d+L(Os"m'6r3$Dc<k(?m.<m#;>Z2CH,Zm;,\1**s;GS<j66a8dn>
+$"&hi"i5UZ4g!7p`rd*nt_H>-id"R-W]*%P[@<]9$'`Z(8q'5=LKt/fn<:Dc7ISZ.kaRX4,_Q
+[Bnd;EoGfbi9569AZuVd4>JRQ#ERG?4<iR/B:6flY/6d+;(8mG'+&84)%?tupQ1cZ8@CtQ1)S
+BGcSFSsJZLUc1P;Ji$`G)/*`2WSu.\cu'jh7%,+73J/SDL?(G0780.BDi;6V;j/T:Nr8V)6e!
+R/mc)JJ"e;q_7C\k(T<.:8YA(33AEW/N]9#]^$h<IBU'UYiFcNnKa%!ZT,(OL46&+e\WdDN&^
+'k0NF14jXbnU9KP30]\2aQ$so%_JlD=dQslEQlmtm^jlF)69KP2AkHX[FD!+p%30qP*+K'r-e
+'F$@GHB58[W3pr*R!GQO;#NgQ-PBVFfb.V[W*jq+3WYSO;#O2HuA;8O(E;dLrH@XYq/WSkmF=
+hdb38%+3WYSOD]#H/]fF`bMm%DRi'[T/5?DS3&MG/P<g`p9uZ+&&;sIcWSh<@`/^D:<(]-XP[
+F@d`SQQNEbt\f`JPB\<ifE.o#sN+i>qeXXF(>kneWfWp(g]AQ\'pn=D8rlT)=jb<a/_[?#m\l
+@6:alcT/GSe]R,LV9^c<CGJ%k:Xj[1G.:_$##`Gie$N"E6Wp\"=['%0M*>+tai]oY$rADN::=
+_HAJ_WA:0(O4Mj'DA`StF)7BngTBi-EV<a$2qPEcp&iaelSYrGm#;(PHq>P@=L2'(!%oV1Ggo
+-#_3.r,-j35%0EbSl6H#ZdJd:lDI6oQMh3:JMb)[`/TYE\R;n.l]P(gpqTJqSgUNAGoH`qFS&
+GP8MN;i5pokdT^49XU]Z_3#tiHs3!@<#p-Q`0o(p/`,'dj=T247a_I^eO:"bE#5dR136Ape+f
+;$B"t)nU\eulpV2@2YJ(6<608n9[V2A4I$1<@CJ^F*M#nPO3S2)ZPMH+81@F\-hVZY-,i8eFs
+XNu/qAVsQqb*a;6cDoj`(8h7,q`&"Af18!RA9H(ucoof4[lBq5FF[<=b&0;2=;e#WAS6!DZCD
+D"N_6ui?eO['Z'@:_^''AC!MtC3F&Z(C*b9\1a%B&eH=LNVABU!9S.71;-b\0in&1`urD$SV[
+%1=dF;3ETH*ZgG%d4Yb%OI%^F-bDRlq2>M2UtR!DOA3=c-!AV[W#ur$eWUCQ'2VQZ1;.2J"1W
+BA8uqS;M&=9;-ne$i@I_W>!=lF:6)Yb-]8]i4,_)"8rI/ql.Emr>'ZF>$E$%e;_'M&<oIT.8j
+fjC=_U`.)(/o0]Tp1+]=O$]iD1AiAnSHR3Vc*:G7U)"bEn#`o?>jN])5=!ZRZaXoe-rU`bgp'
+])5=AijAT:=e&NM`G,&SZT,'$Mpq)1AoV!'8&8oiO;BF^Q/qDf<lQB7`OLm6-^L#1Cbe/i-GM
+7fE`F\n<XQ%fN"[_6&R0C_IkRGF[^YFuEX\J*nV48*hfM^?;6<#[?&Y7h^o:GQ9K4bd.^i8&@
+f<*^VcULUm;C6ij_-X$LWY\p>(ejco$1D&\:=N?/+,4:8indg$^H0;`[ZQ&e[$]]<i.i-*J*;
+sEFa?tO&O'?fc@!g&k*FTjV4cI=c<M^>hA5^OX`H_QIXGBo/_V+ek(G)S/(ddA`Z:`g-JkQJ&
+Bs(Ufo<Ze`0VJ.VcM"/%\\+4kk(LPoI$oU5gcp1<!<)Gu;mE0ASP!b?8hWQ0hQ.]"CEqK]-`(
+@Ie%gkb#9JbqZ$(m\$,0+;qB3@*tN-:+Umohdrq(?s3G,IDMeH?#aYe+YS^^=D#.li[u&A=[)
+tgBK(?rnY5`mWD^WN@lS>@WEa]dY-WL%gA.8'CkpL)22:LOCgi3fD[e5acLS_JZ%)Z*0C\grb
+i1*k.drT>Na3I-UEDc*>DEkjA'?oD?.Bpmnk%E9Z[=&MHU^!Z7\=jt9`=Qp`=N)N$Sdu"EFLF
+>>+o-BG7F"^I[<\eC&=B[?'h[4.[r!K_Fg\'9/opIZ?DeYlT.$\iDdFA`LCI'RVoTXL"lBnW^
+C+B>BY/.#kp?obJeL]k'D*R;Nk)+VC]]+ZM_J7<;V*HeoFHuDKJ!Pji]<;aj_cB\^#R5IG^6P
+'f]d*E2pXWg1i'RH,Wp/_;C-^]Ut_(=1ks,4J]']lmd0u[N;?`ns.W9:9;1.Xh/u?343q#LQi
+ON331`OfijnJer=i^]C)nUS2sEk;7<d$1qcn*_%)#pQXXrL?V4C%R)ni&I8-#/LTG)215h@8W
+N!,pX1r&4)OG\HQf!WV]0_gs@%<Z8-c\6HbO7h;?K($#UG!B1.r3'm@p3SD/5A:qB(P@iMoBE
+)$aY,%/&gMTqh80C_+L\5+kp`bXV5c@=I^p;>N3T0f[AbiEQVd[.^:&&k`K=a`ldV3=I^p;W]
+)R!6Rd6+'c\s9EE;D_PL:IHHA$6'o>]Ln-C(pb0?O!GW='AY'_<T.f<+Z2)I2I3&YjM!8!1+$
+J;b8HQ5p_g7rp;`'.CP4.iWH-Y,U?DkH>R58N*%-Dl`2O2R4*rEqk)0j-FBn)7"7o_?li,OV"
+:Y8:*>\H%3-nB175T9oO,(_5VOIV*)WnmpUFG%O[QBht0"VFI_V$mKb2O`VFr5:S]k<MX+hBg
+hh%$%YI^Y3gjT7S?-O^;oNohV(K%%3[NV?,]Bouc`PnrXHlO[I*u-q>YR-?!iP=+<Z]Q.b,3<
+VrDR7'em%\:%bn;4s';19H@#74.p8jBMS-]?"\p@g3l#IKFg>Y8dgFe,'"ZIcN;C4OX-b,S>1
+NB7c>ZKhQYjN0:L*-N4.3:9I0hm<lu[3@qjcR*mVlWiC7_C4djXM*G,emsqa,8U,.P`;?+'%W
+4r<aNCrQ9pB=NB5/iSHiHCeD4I](V:(8o*B5>I361VXUX,J(=2L0L3CXft0<`ETt"6d##<WO;
+cOc"Fr",N<gn>%j0`6_%=A_p)h(Woe/jh&<OXm=&IZVj1_2gASl>:+O<CeEk$ja[oce-Xq)LI
+CJ?Zlq?bOSBg7pA`DR5T>[ufpN4aDbE1k#)&i_iJ''`RH$3Y:ZI5ILS?0(G(+1Ua8d-Rm<q_[
+h:4"h&X]RkL[XPSm`JPB\<ifE.@`=3>/+(E_r=rAI-on`J_TEZ@a4?8OXB;`:`JPB\<ifE.@`
+=3>.oou`FRB':[_+8n]M1A.N,.hOD0aI=]FE<Zl.#:?D0aI>]FFG.?bS+qh=<JFQ[\b=]QVKQ
++CG!,g[a&MDhFS&jm/+^'`4uEQrPXTh<t,e,jerG960[q2TVk&50I;J936#F:O*n;DYa-4P,"
+AQ5u-P4R=&FX<ZQUKT45MTYo.=!-bU4BE9am7Y9c2TGoPgD/t^6%244ZL9SZGN\FN3MXR&QUP
+ht-*^6[jDj_^)X\U8hJ+LYb)XR`t$b,^iB;^m'[f3"&>h?H!*b@fNjX5R$K=K65.o'/ph>CBp
+!G<>Z][5]%XC%&-\;gmW)X5(`0=3"l6b_^E5a(oZM$Idkb7\!YiSQM2C1!O(X`dNpIGb6-S9R
+AY"C>n`Op<H:M2_AT7;]76sluKiSA%H.7Y[t;=PAQr_[]$L`XmZ6;[`1,0WO/H#2k=K)/:XWN
+D7McM8_]Td,u2GZE,K3&6N;<nhF!XMjGV^5em`pDelC$:dhhFKh?MYBd[_qm@TLd0g",9R/^L
+1S-=;^,[Pl<=q?PU0)0Ug7AoVRb]T#[p[`W*F0BJA*.(9;K<aPY=\);NohF!XM[!-[1S8+Y-/
+:Xtkb&&.HVI!D;EGDI8VS0<gi++Bq<ArR.]FD.K:<_Yofi6\sGeAeaO(n'a9:W"G[?YZ7Qa]8
+(d8#s-_-2?J2OD2+-W8fOD/n$K]A:(@J%tQ]P4EftF0`2W?J26r<2%?Jg$L*O/t_5YX):@O"1
+H1ThW]2B3<!7G[3.smDhB#K-i0L*qO7G\]RcReMs5OCpL%f9?;2=XJ!]I_o_gmCGoPh3QS4sE
+b7#,sGlq*PibBO(>q<NmO2'0:*Vt4+U:^qUgrn:a&^+oKaUO+bbckZXKUkif*KRtqosHDB05l
+I_qsnb*g,L=Sqa["[]Z-4BKB)EJI>>P/?'i#dNbpj4h;te'))fQ:5OQOV?%_2+Ed_67dEC8e-
+\PFg_MfG<qW$GYG%u!o?*<YCp[]NhD33eHijqo2<s;%SU2M.m>-(U0ag^Z[X3'eMhs'tII6S6
+>h?J8fQX;n'gZ>[Ll];$i/P^-hbIY[7FSnL4has-C6([]0)u=5O/T6Pt[\H&nMj#a])4.fu^@
+]UXjgA=L#&u\q>)M#(^8UT\#jYZ1H!aNr<ifE.@`=3>.or`RZ!t\0'e@u;%r&h0IK~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 590 574
+%%EOF
diff --git a/doc/users_guide/figures/gimp-print-new-printer.eps b/doc/users_guide/figures/gimp-print-new-printer.eps
new file mode 100644
index 0000000..2256de5
--- /dev/null
+++ b/doc/users_guide/figures/gimp-print-new-printer.eps
@@ -0,0 +1,440 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-new-printer.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 248 72
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 248 72
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+249 73
+12.000000
+249 73
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVQ=$a,(8&-^G(r\mu(@RU'rI*u^i;suRSUlt6g$cPZ-@i0r/R+&]IB-\ISZOMV,C?#RIr%I
+%+C%%\7er#,&m<7G_:BTJ1d68QIj0QOM(`\HPCKSJcm;QLg/f`QeH)F^IG\dW5D0'[k*csCe"
+/V"A7bl=%O#Q%T:F(Gg37Ka/1-2Q=DnTKFOaJoW_2BB/,J_HW3o]@omWTZ9U$qrg_8/i(KI[J
+iKG,s=+'?076fGA`ot8TgL1-J21AaPl[*67_nnQHPbE*BW2X2(5fWAsU\9q#f22C]$KSt8n5Q
+R3'49.!6Y(DQIedJ[]aVH4nE5KZ2rTo*Fk^fXQ&UqEe%X@L>^Fjc0VB1c%_UX-`"!.i'$!<!f
+`I3.tE'14F!^D3T8krkCLDos<an_mU>?%_DksN.=kHhQ1_7Kq2UefA&EMiu3O6YPf1LC8$.g>
+G?3drE*F<(l*Y`e6PW^cZQC<"$!&Pb=Ek2AZ$:hmLN@<oB<?'GCC>?Dq!)achC'2J?!E6d'C<
+9F_NqMbI~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 248 72
+%%EOF
diff --git a/doc/users_guide/figures/gimp-print-print-color-adjust.eps b/doc/users_guide/figures/gimp-print-print-color-adjust.eps
new file mode 100644
index 0000000..28770d9
--- /dev/null
+++ b/doc/users_guide/figures/gimp-print-print-color-adjust.eps
@@ -0,0 +1,605 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-print-color-adjust.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 386 406
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 386 406
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+387 407
+12.000000
+387 407
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVP5]l*/WQ7eRT-)q602p8X?"hLmW'UhYj'lGd)!sbKnGlp-APE!2*VP9W)-aOg5P7;UfV.
+[;dDB];=3&C#C^K":0IOs7.[UdPK[;=##,u`CkCAl^bV<*koKnY57KnY57KnY57KnY57KnY57
+KnY57KnY57KnY5WAN:^%V^]>AQ1h8(jjOZVFbKqQ<`Q?Ok,ZqD\Y]W!>trB%]O0Wc5(72fQ_5
+RE&T++Cc11OM#sl=ZmV-*iX.Bm9REV_?hu=;0?kPtl3Y.D!!ZIS1F7&jGD%m<tc8DSLmVo*qn
+an]J:uE3f4"6Y:$k0YbR5s)&ocp8Oh%Mq;+G_)'DiOk;D+Cu3rf9=]0H-u_WC-nHTWRe@!&kh
+_OYZU"^juhC$ONE%l-Pe!NVg8)@5-t*=!<d+!OI%C#f0,s4m3q>X+`)dD86)q&/C8dGS8&I+V
+<#25M*<7aY+MKE(GG6IZ,^XFNbD5obsH44;iPd9-?WNhgfEK2:g,1:`,NEH=al'5gEAmW\bct
+=Co&5/sZ)s`p&S6TgTOZKIZOd4\^Q8)_XV1@26!5^is4??m$h.,"'m_"9OJRDIaBVbfdHPrt.
+eDY0N4ZND^MQU/sik1\?%F*hY+]6!UO%XDX]:^<5<Xlgkkq(E2E?)2eK6Yq`gF#l=A!?n6aP;
+UIHe7mL*@YqV';EuB#l-4FD2ejJ*HOOH,q-Z;uiA)m7FQ-5&lF^^PRY@qr.^CK">D;A2^1'A/
+U^fdbYj!`#1P_RJcVap;kj03[^jMkJAm]DmDY;R/_+8OJ)k.XK-l$=\aRN"1sD1d:?CFSkoU@
+%])";4Qm'V,J<JR">C7f%_29/.sQI51rcU?8U$0Hf"&D25W\hO4H:l%.".#\NSTdsZ;g!c3jH
+,)'Bg(S$^6.6Y:2?'#@j1o9Mi"DYu.4f5PK5mb6%o@>+EH'j!#<G9*0Ei"D,dNL^EI9U&\%oq
+9gmD+q]Jg"5K0?7^8<!C,FPc[BBccU;%]+?dH^4B_sLDKPg9(.H_H\HJ;"H;eaCKE<Z4EYP*,
+cCWeNS.PQ;DSI!AK%KqNf];/UJ'$PhOeD:l6e(I-iG<[::$pas3](;TUFd/)<!p$/Qi8UL$k?
+NqIM9UM-`%a!*rcC'-m'H-@*"b!='po"c$T@@sK+5.p.f(9[pVP#nU[.01h=;=TWR3F9"Zf8_
+KBbDI*C4P/%Z:#TID9[9#0(6RPT:Ah;!aYVI#2"j?!EF`A*!*MYMk[,sr&iS14K%:'mY^0^El
+e7O>>42M#.E$8cgIJb?^J!s'C0UdA9N6qnE7\"`@Lo7)[N\BKYfa<fQSOF2,B4Bu]bDajjRls
+qF@U+,R=*M#gV-8[+7\is<R2M:&^r7DuK/'UgHi!?XHE:E_ODH`ZM@N_..*^$aEB"GE,%LoD/
+28^[VfLSH<-7Q8^Zl*X7&Y"f3K#W,m%J.OBf#>%RAlU,);(;dPg080g[G.Jj?,hA&>^_Z>06Y
+P"MJO$[!lV-#%[Y3:-X/.&/\D/mJBrOoZ(o68<cf^9$+g[i,IY=gT_>7munJ/4q"e#,KPYg3(
+cjiYjT)%'T%;\od-u7Q\`p22_?&PAZ^>Y#F*pOF\5)romSHU0V$'+"GIrUH4VG8&9=I]mjQKf
+!$Pn$cYUKV.Is5#pO<;Ya3eH<b,-_?,O.Y(e%Q_pAE?I!2U%s25'0rhRVLt)BHV$Sk,)!a9VW:
+%-jtoG*8RG@*iV!+U!?T*igdAU68#C2Pt7fH9dd5ARCE.oO$LQR'TFaJl_Ss*/4cddq;Y"?7O
+n//d8aM<3YSf^Q&nrdpbM;P=[K0c"qi,HjJnC&C\7(&rs4_IIfABRc[Xg-I.$q&T1'=dAh'^#
+oq1TOW<joJ>d,H)S4/RO*!cLcKeL/5`.DkN-`X6HT.c??K9o'A"@+pl1eM+?k9[Y_kte??@H3
+PY8`T?sJ,Y!sYP?/oc/%2OJ)]Y_S[:fi3MJ/ij+sQqEb>B4__EE)0F4GHBho#*.qhHF7S9.@C
+gmNq8N7moUiV3B]URpk@$,u9P!'e#?i:UrDuT2irk+*UrqOO+T>07=h#WAY7:<`N[1sfQSXR[
+a1+73u!"be[$R9BXDj-nNTa9BlAbG]!XUn14REh0PRkVbe>nUb*'jVa.=k`]Kf?aK[mV;q5q"
+*Y>h<2C7rk,cL!Y`E/[4DHK8hs,)a5%.)]C#?B">YP_LrZeGRMNjnUMdFUAN#`TbrNB5h\Bd-
+2mn:/,1HK=8.gp5q';QMkp=4;pu_225B!?g"tc`2*$`mE1iobATI>H$hu=9Z(_MNI=S33=(b;
+QWO8W)1hmGZ6::"N1\AHHa<)R:X:nAI`23VR6V<V<Zj@I`JZ*Tb,/]%$PrU@-I?+N_8,D*iW>
+Z'j8KILJ@"Z4)]eK!A"(8f0\F"b*_"f(ghmp)?>SY<=5$X^N3LFFQd/:b3&a9j?jbFi65Zm6\
+i(b4:5d),%gbRhZ(6+$[mGmdJ"`7u12.98FkA*,CV_Lg]Xn#`^Rb3'5I`?+-iSuJ@Z,@j3l/<
+Z/8'I<2o*+$JhW\6L?6_;Q'q-6i76!$u'hGfr#>i8YLGr_cMIIZKD1)!Z>FQ;6q7G[.0E]8P=
+<SX*V%a+-rBkM)"LeJDJ8^<,_ic#H`'BsO8dSVqHh&.`AoZqT'+QP[BV:.jk3^m(1lbVK-+>,
+MY"Mgg+#oL7<[?d&n;R\tdAhXHi$D]g5$"R&t2CZo0Lq5G3,8+.b,D,P&_QaI5Ai3JO18/A48
+?3TE#mNDT"4W(V!'tg'Tk54D<-(VQ'f::Qr)I'<TnH5u1'EgMQ(=/e=d>+:le6;_.]$qk9J%H
+C@(As#K2<kbNgYj5%>:h2N>qV+DV,_;6GaWpE60Xfl$Ot]Gr::3!AHM6ke^CIV6GD?PmUT\Q2
+\FS$<ecV?(0k)l0#_t?7V4nj9ESD3L^Fe'pSC`4]It"Nk=/l%9S?0*^b?U,6N!17oYo7>ZRRX
+8(+B7).9+f/@&MXlC[ANQcjb=f-[>$8nAtSeS#,!6mPe,<$a<g3:_ss'V]1Z;O_drVU#+N'W>
+Y^%.D.\TJX\YSkBpTd>e9/fc1f>68csUQrM)Jj@G8<"#Do!%`_%\3U0DADg1b@rfA#GKZn.B*
+]]=iNiK!m19!u>m:m+i9kHrKH>OB`>trZ2=e.<(=g(g'IVG=D.QAk'RJ0/qC(\]As1q1K>Z-Q
+>>UE*C6>I*F$@&@qUq,Cd?W4lDBp]XGS"A6oS'5EW>(tF!0H3.4RHRWr/n1^NOX>';6rN:KVa
+?3s=,t?B<L+[OWmtfCO5*D2)b,_o%!=o07nQKF'/c2rUX<U?-qT#H.^)um/]\'.Bu[kd,?VeN
+1I.$<C^#o,Dq`h7-5MMO$Ft%]Y9%[O'MET]Q4IDf*:m[1Q8J@^6u&ukUNdCb2R/,S;2o2;X&_
+#3LJi<J$:ph=Zf]?SR.[mE?NWQ:n7Cp]R7*ug''b@bA[nXt1"@[4QR0Qa<a[INAqX:@n,E[3Y
+%h.lDP]9cU"\#n(\_&#5#Ctbg9@HG$T7EY<$;)k&9%uuF2tKd6T<E>cYR?@EJ>Xg,n;.hmYk8
+DB)Kr#:9R[bY8js:7_Ps772+,$9]h6jYZftU1)lQkae]j]/Z"u,*d&PB;"!ls7+h]7&7gB2o&
+o_.;PT1_!sg6+&KFJNa+Gt]dAn7fJLE18rb+>;ZS9i3%)HsuMQ_:_l]k*>brR-p?ti-%e#Sj?
+U/K(Ecs;fGID]-^>SUDgA>2O,K\RDg7t&pkc)GIkf+ONj/>[8'V.9`q=isn%n,E[3!8p4'>u`
+Nde$bc]Amsu8(q[T3[jYDYU0HBWE\rgA9.]En,t+u0dAQcgjAYDk+CkYDiQ#T:aD[JL:#VHfM
+EN[E'=53DB9n/Foc.'s/SSiJrUm-E^M9(l]>\BB#jc1"ICmMIXhueVfsM,B'Fn%k$ciZqaUhQ
+)n9m^Z4O^lGMTcWWc/O!sD^HH@f91IIckgT9R;UXlAsTMApps$k]*q;1W@`e,',uTt2>Y_OBS
+e8c6NAj4Ir6*(Pn.FtT?&?99pSLf@`p'a`2L$>G<i'<oP6s7[sVOiYOs1'orPHe4U[&(E.kR&
+oi)24?*]5l7cBj\5Z2?Q\`BP$e-.?F(!gD^F"l9P'$XKiaEg\V<_8_S3T=kWHGcCp1\[qMI#Y
+IQiBi6NE!Y*lBi^QkWgjgNm!Z))pO<<T.-NJo:\0jUJu#+Y@f02'-Pb%'qben)OHoJ&S?[i]_
+[mb1XP7KWm^c_KBmS@._r5!VK8F;Q+G]5[f2YY6Y%0&UdYu$mkpD+mb#8"&=m8QDc:M@g\0YB
+nU)+*O0"R4E=cUKWGL9UGg^1U>QpUJYhN)6>KnJ><pFVLuRMHK\[KL.Bmmja\=FaL88"f3\g+
+FgYS!S-4\lm-`(+0LMK'Y*Lg1fCq$$Y/XhgX6,NP@Fn%Yc-u&pN`%9kbB,/(lB($6Yd\<ACga
+M;,\b?XZe"8`Woi2[aB%'tArk-4'Kd'.FkEgkJ8*O^tB-;_P?:V*Y=[ER`<KH%-mYL!2Om/=0
+sI%o&$V321+_k!lCW]B,?<Yd+bADDq&l^#li&"p@l:2(JdrdfarjYbug]Br28M4mK^m!QP6d1
+tQ;b6o+?C.Dj#4Bbkid/3oSqR]R9i/E[CEj^BR7RFQ@V3Jq`8-'ahdnU3BC.;XsIAO:Pq*":o
+@asSANrV2#4O[GlZ&R,:S(/RCP9`/YZQ^S\4+<)f(7AMJ&>u?lOM(Vd0+"i^o;H?aT`!F[lm[
+LQDJW^GV`CNWoD#69".qS+D^BfUm-U[Yc-2Y[hbj#7Nq6o2\&P15aD*sN\Y_%hD6F8$Ej[,14
+Q+AOF%!P@Nd"]QCO?%2U,g69g%tB`ZIj@W1\Y,<TWL_6hjKUS1Jf^3H6j'a!OP4s=998kb7:,
+Jd>Y@[]%K4Y,@q>VQs+!T``g4UM#7T*P+=ihr/;U*%ibV\p>XJ0%l,#q2@:D&*g+h`L,HJ`s&
+)3K<=rW8%VaIsOok?h+/`8KZ#qIEKofY;Z!eIpp8^ia$f+D*p[JfX'h/n>T4FePu?d2seE*6e
+:/g:X2eDkG6jZ8T.*O]f+-'=N(10cQ(N9nhOq5l2skqE6N"hgM(>\1M'/]]g%9Im:&<mG`tgi
+fppc;75R[*FVD9,r8RQb.;cH_np)_im@li$P@c.7!sW6<t_d&]"g#B'7rPDi2I\2r(LFAZ!*=
+K.pk&DXPk(R[';dGO7CrpIEJ#Hrn,Zo4C3WhsL\>WR:bIq1hQi_bUI</S.f?]JnZ0GXRh=5%+
+U24tUM,pG-Lp6MQg$H8GeBQ'X1V7*;B5YZt,Af"Kb:_Ni796@IUtd/F0>kQFrs:F474dfPT)i
+)g!DM&u?6Aj(0&8Muc):Ln$g:g8f1I11RYj9IEKatm4O9XQKq-tn0_.fC>Q+Tip_0&!>*/dJD
+&1K4%5T+"K-a\4&[R3<bcZ63UYg[G.JKRC7sDbkt"/rf"7iFc0M,<\Y\m7`'tAJT]p.\B_<Es
+f,_KJVoZ-%826e!+SN2t6.$*4qK2Y&!+Gcl3Jkg%7d'<?EcLW5NKU'FR=TOA$;JPLQQaM>0m/
+TSW:jW^N6)h)&7W8kJn"r!pc!b.so)3m[_%BN=39OJH7TIVU^BWQknZ#S5m%E&*qYZ`n@/IB\
+<1MOYi_2B@qt,$NBM\)WbE:CM3Sq]'HuOIIO;W"l6dcs95A9Tb!#pnOY-WG]fUh":F/>/0`Ab
+&t0Ao7fUC3;--^g&O[d63[Tpa"AS\/'+OHXdJMFkEYL,l@-FiWsu+pflji2C$[p)]A&J(2+[,
+SZ$+%AqX:@_2[Fc:/.?5#<)'S3P3[]G`<*@X-:4nX.DK*4TiZAeX)d#/@ojdPIU,H'&=RL:DR
+uaHL&6<W(j[QM?H/mkZ3"mo>8B>F$o+:.*g2b:M;VQ6U0)M0MO"2USV7U_g8/ciKe@J"Msk$*
+?0V9A;.LLWoe^8lG=JX2$d?&%V^Te:g<YPHP\!>h-k%A>L9i.G4'BDg67=*BlK5RVRpU*:DQ^
+,d]"+NPT5\k"F+^)A9u!RikF;,8D41Z9K-If7MW,DOquq3YEm.:V6f=B9Io7CD"WQud-\IW!E
+2K]#0^^1F"7ckLkSLB0+LHu=78l*9Tga;!'5@@/k-l:]_LDH,6`BoTVs2q[KW!cH5N+0SlH5g
+^Ia]HK(0%G)f&^:!4AiW_.5YgVB%3W/`UO24/BJ64*Z*ZNKpIOtY6kt@UdXfqAUhFk^u[Jf^:
+U96oT^%]^]$iLJ%YnQl-6W`s%i80/.(KicI[usbohcqJq;:_*0)A'W%9-d-*NJqdNp39[,WtI
+VLfOJdhadLNRB#a\k]R[%FUa<qPmI`="+-t=[XB;hqTj.0R(G5l5&&L?p*([2d\Yl$@k\*>'E
+1'8P_)EoC*F<fU*.nJ@Zj2DVKX?7j+)mF;`S<56-<!qDY\CAC3_CWmhDcYUn#,+PG"@9bTQ3.
+\fn+JVKBQUkS#;(S0<]@"F(76jEjL<2[QTE?!^<L`NWu,UTE[88!H^17F0!2"RB7%.PPJGX!B
+E8s'Z^GjNUG9Q#;O""6_'d!_!^05/4#hfamHX0a@4h/s0D-UfN5"jR?aV*pa.gg4XqT`BleR)
+tAVc++u'ba1^h0VhFW-M#4)85_!>f*LI.2W1uT1g`ME=\5k`Qe0i'VoT[jU6)?&M?GUaA=du8
+l^uT/Fc*1m#7He$Q+@MIg.;?A\[j9/[1o1+aFQmU[Aq;oi0@251DM(=Tb&@jbD8e]KJ!ugUdH
+g;L4JEHHaK2%@R1KBJ+FVB'K?_&7UJS3mA*gS`?He3o]g5T3`r2K77A0mV@,M'U#;_a`GK^>=
+,B?Uh%s82=-Y)i:^^gAWL[$cYQ8\-=(4j^dYS[K8.fHq`nn!G>+/SM]0p..qB_l<9f`l#IkmE
+>V4GBS"N_sd^SRQBio[`..qM;nKoiL469pLD9lFrfDshLp[-6H;l704=L^XM9*g,\d2FB/8Om
+sibTJAlW`o3;J;YjW4B*E!a1EItElFP+0Ria*r9Mod%X3!PTrJC1(e8Y)IHOaN$"dK72#V3t*
+M28+tW[hb6g+BG3Oh;RWd`)?p6*)8r&:J(WLXL?S(Q$PV93TQ!.OmruPo-udTsldB3Z4_4K%g
+#=r[#7<DI?05^.-1/AXj9,:JOBm\YaeQjCgsZl<F\MR'%"5B/RWO(A-OVQ*ae$]?nl@Hteu:G
+.0^-8PJQ9C$[bRp(Kob&!gnkaJdfNF(d_C%jNY6b`NZ8BQ#ac)KfcITU+Ypr/.V,k)O0";lUm
+;hi,R(VsM2tFNb4GA]Lq56`Ju^G-ICRk(J9<Q),g0qfQQ+G96ut]@n0u+#PciKFP+TN)J`4Ou
+oM%04!8?T+U_e8B#=#q%S=QFiND$;]+Lq3!nV@i?Sot/#9lK5>C?(DSh6Y,2J:C-;lA9<0j>e
+9aGWM^C\k\&C]#pd8gMnWQ^<\A4O"3Q>lK5m5^Dh=hVc+Ct)m2m+QfmRPgk*hsq.X8iNZ-d(0
+o<B[MUGU"/(AqD3!*6G)>))1LY2<kn?BPpPf36<Bi3b(HLOLb&]WV9>]/P-dcc]O!an]5YCq-
+p0.EAoAlI-d1&;'YSgJK@TPhRJg*_m9M2f_HmpW2PNQlEi;3d>adsa+@sY&>+5FFFYBGT>aeI
+6atSW-3#%Wi[*:`b!,a/ZC&<q'.#F6_8Q2NcdO#5*+(hOnSa*^0@:G*sJ<-n^Hmf'q<(1Le>8
+g)A!^Q6JO`Y<\7F]D(?RBcei_0ek2%IMYI24]Nq?SK@"G1&QgFJm@"[,BTM;Q/**NEAo@PWpB
+"?.P+')jF#S*a"HGT9.%Nm5;j\8t5=A;mI]</UU>6?:iLrs49?ZhYS0G]kP5,7:to_Z@D3Kjk
+^H_iU7@dI:ss"r(N(M3:7-J9./>qg*TjTK%tq@h;Td,mA!r4$MunEXXeA0d??<Oa7>LEK!E-d
+9)qeE("E'Z5(`fRJGpW*j+rL;,d:D(g#aj;"65%_\]\(7QG0Dp`#G6KbNNABc<ZF9@!]JE(?3
+*^^(X6DHKJ@oT%]_57]!+&PaHq!d\i')+7pV"=qQ%3ROYipO<<4]+`iC5FhDXs6CBqpJ(pB$P
+ja?^i;=TS-";f68&u,M,FL77T#UBl/,Dfrc:=<aKPbsK(J$l'"9#(c<5bWU+kd;PaF.\a--Oo
+gY%*>;A`9`M'a]equ%Uf"Hp3qTkITSVC0kjo*3+I'qIcJn=V?:.gX09'OBDF)9-P\l$mdrV!$
+-NH375jCSJX^)I:7q`0#Wj)GnpSE(NK)l&>$sku:]F4#1h78W$EC#l8DQs!*Un,q6A?7;762n
+4m?qK4056aPh]E+GD`"`rC1dd(qE+^j3s-JMkR]AJ(41\01pI0V7JhL>Rj/fpmbK%+_7'Hk2"
+1__Y6C+iJUQVhd"1.gd4!&STmIs$n32aoW!kLbbDj86.G6L1fVeU4X$sAI6>-nY4HiC_4UCUu
+t(hE("Y8#R-j8_A1l2\$olaj2pEXP4B["!bseo'IKk)4!55rCI;2n^nsLlk*9i]r?$Th#UA)K
+(Sm.$kWqs=LN*55%0&0*#37mgFePXU2F.p@#cK_B/no2frJ[4riW02b$J(H)6H=__:K7Ck5m.
+06W:3W>ad6YE1[8`%$4i9iMT[;oIY$nd.(C%gTdM[9@0N*3>/glM!"'`"BXJ[48iWl=%-B=<5
+GH<Y-Ffn\okb7.fCTr'0u`!*B\gT.jJ1Z6eq;cC/0=g1r7!\aR)CJt41Rn6[-dU;"JR5"XHDg
+=Pc,#4$G<_F9i`qbO&8*W6GdDUEH)!b<0>XQa6/fL+<Dd$dK_'s;32!S.8>dMm@eP1IV/X2Qt
+86CPEnRVDY,XiE-P7D%1t09=`b#I!3!?`rt.eDDA33!%UVua$PFUnTt9MSB3>3dL7bXA7HI0A
+"@sf'8ttN)7Gs!AIo"C/$S%1c!#N/@9$D_b"k;!F!N:LC*"/#9.LptE:W<uH#SV?MQ]b0\qu%
+UfTZe]<Lt$^7`[5FuAHjY5cb]uk_'aI:K]<FXNtq*352oFU`]RY(N:[St.>BX5^&`ejcUgYL@\
+%.B%PTHVZH3&BnTILgkp0:q+UU1]:.eYk=BJ[-=BJ[-=BJ[-=BJ[-=BJ[-=BJ[-=Pfa!H\Jj*
+^OHgjk.OlEHNh1O\+&89S*.O_SF6?Pf>djh59E5K2ZteChW'auh?sHM?(r&>rj?Zir9`qPp&=
+Wf]g1N1CHPgRAe<J4X0^P.hA1^`s5QI6ci?@?p>2tT5d42;7g6_@`qSl9&?I_Ufq6Mr%n#:,s
+5-HmnB;\OKtHLc$ZS]1fKS*G^)7%mpC@_L9$tt>^fC^oLVRt%39>)6ZVU2\I5;!V#lLM,mE`e
+FNWgpRhp_AOY:]dm&2Y9P$`1+[-Qo@MZHlk[JK]7g#WD]jm63m64!JnHHq/8h!mc5C&U@TB*$
+,1]>sRn:N+b!_1`9/M`p12?CN\q`&;%rKP&CH=>(6==FhrtZGfVSQ>7LYL'A\=/6gt/&<GAm/
+rN/HVp9M.Kd6@DKhKlX%>nHr.8!&-bcq9eq"3Gn,<du6;4ToR(YEW*:d%s)_^As1SD_EsLhrd
+R@()E57#kNjU(Zl=;0(62#BU]%@4<io"XWTTP*ms$:U=F/=&Tp^Z?!Y$I(L<SY"pC"%o[,qne
+i]](MY2.ah*2$\5S&/I"Q#X>Lj&+7F7WjVCncoGZSc6<3<Y,0O*h6:DpKZ^$%^Y,nfF:aFZcC
+Z%Dg557#s[=gn(Wd%Tb=$&GWFSYri*i(TZ0NmMUU8Kj^a&O!30;LtqMAJq<YU"Q$j8GQW9=>=
+,PI&rY@P4mP`7)Fmb^k2tIj+F%[Jcmp5PQUg[1q0iU@BG)9o">>jbnq[b^_%FjfnVEbI6/*(r
+jq3"aH*>KX%j]@DC0d2se@L$SW=epL,@Y(i@:<SQ@:@iQ0W2:#@8:P&nm6Z2D6lNr;p(WY'a2
+`0D0sFf0XG@J6M:Z#j"GO3&@BS/]r.1Yjo>rHVt><JW"7+u)V+KQ&:?GMb8rX>:I.hWnsE@%+
++jH18tWJB%4'R5[POW[a>sIdfLBM.TEPVd4\V2Y"ckVeGC4pKi#N()k*1<:#'F50eTY).GgD.
+q3MipeLRl;P;ZBHNV2nlJ3Ml^ZE(V4a/osY`[bGmG8D\-gq?%%F8m<+oPdW4%?>9U,F%TS;=S
+=#a,ALMO8(>,_f=IVl"q^B^Qq+N8J9aP"\*75T.J:,u5Ol+I5k+Q&Ns:3eGXV5[baUo64JKk=
+n=!YH<qfW6e^Y2F(4m&UEVWcZOggc)[KkQ6dWrGhD2oe/pVe@\K4)7F<qSVpY?lr,nFo@\n^^
+FMgDKo/pR6jTJce@/i4.ZhQm(+&7.0h-NbI%9FLqP+'*QN(H3=;5np'maU(o'cS`lIQ0TYFO^
+cX6n,OuAc,HAf`^*#CE3EdKO7LAc2"Dq(fQq-e"jLmIP5EIR[W-)Mi;=!f?V+0B!O,/LDAP^0
+*U=P$D7'4XZXUEip!&9OjGsj.gQq,YLRr4jh;K(sR*BedYjq5:6#ae-S'F*\l?9M`ZeT\[fej
+KSc*W(WEO2tOCcQtNm?_-m-Joq@m]cU,M8S7]?f\]3BI4ts#/lopq<JI/H#b!j@&?O8,(kOV8
+jGrt7)QY(6[Y!mLIHD+^,U6KPs*GX24W'PVF<Ck'?^O@E^WCpmH\(+2j_/p-hZlI%'HlNMI3<
+g=c0>fbbTgk.Qq,Z;I!_h)prjsl@:<SQ@:<SQfon+fZuoePC$Y=rHUM_W6((ZoSC/,Ta2BETr
+;Sps3M*Zlc"Irqh:qaiLRWfU+aEqXg/dt^&A10(eD!s8pY^+!%)F['8"YIMCOoF<r/%o:AS#_
+*U5b@P]@8tKJg7"j4:+;(SC4gkc16%*QK<NeUUTZZ(]o1/SC2"KDlS-\jP'F[b:j(uIL(p&Xk
+qe,Xs$n3aUfEt!cKsEGH7/U3&IOT-NmYS3F2s,0sO4Z#/R>GNHJN7o,aA%XZI_RdT^VX;YM"2
+8';tP?3oCLVt>gh5hcWq!eM3oF%VJq!p5_&Vt:)4HYlf5+CS#Zlb]1?f&bXZNPK1%.16O,SqM
+AWXUF`V>*nte(UVEe@NH-QLfP','9D>lo(ZEP<(l_Z3i-Fb4S[ipqJY7&4T=6O"U&]2:$4AmO
+$*Db&A/SYl)=<Qo9rm%K/D*5n\/MmEfUdEc(&G$4JLXC3(7cT-bSgqA;6b.@"3OPh1K*@hqiQ
+Phu=E7fUo6eD<#Z=n$Tj&]T%`_&0)13ec#@l^_#jO7.,:aNlYGmE($fnn4"+f[Wt91&2\MqSI
+o^!U;eas"$t9<"mQ!ULt5pEcO`4d8U(UK?6F13,MIAWjq7E-cQh.k($6,(D7AanOM'1Wo`l,l
+&[a78,ALMu^!m=8jq4l&Yj=rK8(>+(O/R2HYB<.c$m=[E0oouO_3+>F*e+Q7\,),e;bFr:rt%
+<lP/d\kgH;4.R7)CQi5i>T3[u2uqW:U3GA(j)dT\m(3XCa]:P>M&&ZtF3[B+!jh0oXS_=@alU
+(7dN*^A]5>9E"a:*/#AXY9nWSk1K&N5jZbCrC+Di,B6P%p=J(<j:$b\`5gVK3d6[m1k3tgS3o
+1GXTa"r><3Q*79Yhp"^0!o+jd`O%6Q0h[.+4*J.dQi!%!p&KM)Z]H7aWLd$@%f4O[\''9e60$
+GPT?,"#%#^kbHZ*:I:Yct@9Zmr9<@3/a`;b+$.FWCU:[TQ^nah;fpK0o'bHKN#KgkO`sp(&!l
+eqG8\?&ftXokF)b+Rj-gM77hM\`S0Q\+^tjn1SP_<_2#``-YnKgO&]+]a$1_!XK]nM:\12Gg4
+L.&9s7W8Y:UM>9h&R<qWdAGiCA`!l;@3+g<HgRZD:=+H12*Yk@N\hWA0kRrE10i-B+n"-;l=j#
+%Ij->dpi-;sl/HfBJsE#<iC@t7s.YIS7\Rn!(oXX@uQ:"T;HqogVsJ[bLG]^8)T!BSLh#e]Q>
+g*6aXNX16up9,JJm/5s^?Y25"CC4B^I5_:OrNqbEodFtJ=V.[%%EAW<6PsslnnPr21'kPHoeb
+N;)hQ)C1nJC:$J*Jc&.j4N63u-agpR%7ZQQdHeaH^.%DbY(X)RDG(4q:ocuqnNOFh]8oEkjFM
+?W<6_$;+8p/l[!"Y43&1"6B`b3@N,k8jc\):@#BDP=9@_0ST32(=Qp#/RI$W4CT%Ap^k9qL-)
+UlM18Ve]4]Mn(6K+9'ga0JbSjL*2q!LIX=KKCM;Q-JjZr6hCf#XP+usE0a%p$)aMdDJ+/9hgM
+;.rq4E)?Hu")-5:ZD>PM9+S$O[=M$O[?c?VT8:F0Zd0_Z&/K[]PXFL#pD;n<'C2GBib#n:_Go
+$(d<4G>/s,Vh?4,>o81EKct^;*?7J[k5#jF"2;n_JD_POopR*1_;S^S+kS5ZhWKD#*"q):'S`
+9'@0g$QL7iZlIg;J8'5r$A>AcQ=o*X?&DX;Ef==noGNdO(t]]Nh:G-lDc^7Mu=6f:+HR4%'j6
+=:;Ig(QF!=1>6ZRqj55F5+k5?9NT"#PBPUDn17Qq>:7:=KX+/gKLE74h?<fgD\!`LLC"JO'0I
+mKOD@G*8PB;nogO0Saa'e[1<P/Io-Jp//.]"S6e9\?amG>SF>!l[s$]4l,LU#o[FBWJ[_M2j_
+cSND@]`cCXB47kBlm_XW;XJ?L]37i"1.&&9uBFK786nW4/V.QY/]*02fRM"7cI9B^,Ycn9E4"k
+%M:t>J,91W997E;q<JaK"lP"Zo?t/pc62&Zn;bQlbX4?/dt&3iZEjBk2"M8_-Z7%6Z=0.gD0n
+sI$OF:_4cQS/?K:Id(1n6XU@MC\pQTlntoUEIYTI*`utC(5*q#b~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 386 406
+%%EOF
diff --git a/doc/users_guide/figures/gimp-print-setup.eps b/doc/users_guide/figures/gimp-print-setup.eps
new file mode 100644
index 0000000..5556c77
--- /dev/null
+++ b/doc/users_guide/figures/gimp-print-setup.eps
@@ -0,0 +1,463 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-setup.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 293 196
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 293 196
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+294 197
+12.000000
+294 197
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPU%@X%7%#0uC?d_-/STF/)nrjWlTLcl\gYHV0VWKa(Uu3k`a^d/p9Vr^kVUXLSs5U\X&k
+j^$;.<aYY,6m$BiulJ?c)R'ZO\@+NmKB/'r3AJSNBZW2'U>^##S!Y$t[<-<`-^;H;^Ii5[9He
+_MT/aVBedq91&D'fW[1f,t8':$[r+Ar:BeO)C'eG?RW@8Pjmdb*[U:?"spQZ:]_MSO>"_i'*t
+[J.A_=3JY86j.`P7KY;I/VMEj`^dE5`d$!.XZ@Yl'hUZCEkn!6NK;Id24PiSa,&r;Ok7?GNlT
+S2/*D+a'8#>-6DPu<3-O^T^7]G/Y1=aMT7/F:nHN1V9F3-)PtXD0Cs\@mJhPg64SlTJ'b[jNt
+.l@4^ZmnfT=mndVJ1a=:M)'u%gPeMat+T4t*-m1AY5,^u.\tIfmPW>2.9g0==7\s>hdR9>,qN
+lFA"nG!aNg#fOqNh7aGr.J^V-MI$mQ$En2J_(k9&aLgM5?/@HMpKgdYN0?SD^pJJPr9BV-te^
+e\@=ibp_tU1HKHJ;DV59%V\C)r?9EV8O5hf-lJkbTJT4>;YBg]!I@Mh-=\Tngq[`'&uG.FjfR
+H7PSfZ/a"MjDs3_KOK_(Q&04DM5/#O)OkXLE\0Zo-h%#E^pW>t/0idk6(WS9C`Xe(^c8m=G+L
+\mG#VPM\U1b>JsqNjf'g%_DiP_]rEmqmM:DACGaG#.66\*RIR/<gPhTSk<LNS)#,.Dbo-lNQ,
+Gk$HW@#pgC9YjV,Eg=<]a.03YS4!4`g,=;-Xdc;&p9#&j>1F7j^+FFB^O"uqTj_d\I/<`$o@$
+C_eUaRnjD3W!<%8%gk^V>#qn8@JLr6c>Sc5ik<MW)W2isglDR?F]YL?6sM5j[CO9:QW;!TT?E
+&6?Hr2C23mQ:,=!2_;A1"R3<%keI$Q%R*c_*8h>&35G"a^E9;W&>/S@TnL2*-oKT\-1C+'-*g
+`O65ad10,[;V6Rg8Q%Krg@]S].U"f2J)M=4S>XB#j-M:XH(L;aRYh3_)2C>>@/-2B!dKOQ1t*
+Mp#F;bC+T:a-dUOqQ+!UJgZ..9*4Np/9UHfW0#,nM?tDKY3/hUqLjbV)'UjX0$!0e/ctrPkma
+FTqpLKF@#qi;)1a5kmis-`\1mM`XPUu]$PNrOr1JZF=_8gG5:nZ5.I8Cdbf)1c8^BXj-SERY+
+c8i53HJ@s.#;0j-NlMAga[IP28!9BV\HHRu^o;6cid5K'+e,8l[*W`d(2,jl;[-;nOt>!Hb#W
+s7&apM,?4g]CXMCc:DaKddu/hH'L0O@[%pT:f8@L"Eq79&>a10?_[PoES>t`/=QPdr@hrX30V
+J6:B.1jG=jQ_]'!gS6,fbq[4<I-#M8@S^IRPWqYJ/%#$WTS>#:j>+/9&L8Eg^8/Vq!&hX.]/.
+0WHrPS!coND@T8;P8[abnQCgbcI'*M^<n/s8)774lH0D9VgNjC#q/PV)KX4CYXisn<=n;c1]T
+_nbkH(s!JU2"\,Mob3.fMU;g+kMaOkb-W5Fd5;T;u-'QG]17:f_e%W2-e#K638c(EJ;EDK,PE
+!dhN07$n8s<(tV7"HA0M5oP$;8d7>\,.DqbR@V[k8sePH-.0j-1`0LelB-.rg>k-Rf'CB3i4t
+"5C^m/kiarGlW5,M_FCoJ70J@#*`.$D[=-[(Aa8q\4.nnF8.M/aWq0R;("'uCaKr*1Ye3=-1Q
+1^fJBXM2(n&f`]^TZfX3I2-CGj>R8BbPBhe&-PX=4qnhpUOY:&#VDco]f%,3NE-'"lOQ?In2-
+(fgp'_>`gmHu/jjFO8+P[_P(?!\-DMC;J2#$\I$r1trGj2-F4(R!49?K5/]hO)CgA?OR"Z6,n
+Vnnmiq<fLF4h'a/;Ro#PA7VQO..URO)8sH]XUH4i;-BlP^17:f_PK@>jR7nrka^d/p9QedTr\
+928Ig2B0g9GHLS^Sn,6eeU6P\r:pm93-LD&T5`)5Rr`V%VUL;R8h7,a@"$eu$s>S=nB]YaX9D'
+%YbT<g-BAjB#Q$7]F>[2c0o<WkqE.2;GIFpP!n1C+>nki:qf`eo8[`Vf.fSePnd?_?)p3=$S2
+Q8>iQlh)I8<W3j!#ajGpnes"(cPWgCXW`[D`\HSh\2,7&,)eZ$i3dUs7JQs`X;c;W,\C3#1DZ
+i6TAu!<!97*&+g.U\;orrF69#n&^;qq2Z25=,[bp\iZ1J/tEDFUVQYI]lp9>eo:gAS1D:hjcJ
+R8R8Fop;Pa1.iiJ8gV%l,obEJqGR7smO'D\~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 293 196
+%%EOF
diff --git a/doc/users_guide/figures/gimp_image.eps b/doc/users_guide/figures/gimp_image.eps
new file mode 100644
index 0000000..dad8a6c
--- /dev/null
+++ b/doc/users_guide/figures/gimp_image.eps
@@ -0,0 +1,1024 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp_image.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 338 287
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 338 287
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+339 288
+12.000000
+339 288
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVMt4d4W&Q8V:DC%V])?:7;H2d&Psi#:;k+dSJQCXc-.3D!2',!\fh>D=Cj+tBH6$?/K&Xt
+`r1GU5](AMilYeeq1"Z\6^HZhlu\4O6#(9N?:ZA]Ai4m*'W"PK>)<"E<f)rcmiQrp]Zc^OQ33
+s"!p@fAo`"qYSktI80_1s*XZ3P5^ukP<XK\mpEj%,p]&:rVF;!jNm)ba1mi1ra1-X8cK6,$1I
+mGOu3!f]-d)A./l.gRE9[i&,"O=igoE1)]`E6C%@&$cUaLPnudh?c!U8RIt"ru1@;9[rXgMBs
+7!f"1&_5G`?O,`fAG]ls5\4hh#2)M3#R5EXc<ubRc*.s#_"&aIlWZerpV!udR_mfC*`bI*lCN
+`K_oiQ.7sN^O`YX<d9lhh^J7\3)#qQG3]S;LDfH13l)6B;Pbb\%^Hg43G:*@XkJk,j\H%-P@n
+b1Or[j0#QV%$D44l4]V3=,GI.12bl!O-%s1K\c;uR^VK-X1jn43AEga22,a(#uYs2+%!ognqO
+r])4&ESFc^rp^Jt4sB0gO)2X^iRRrm4urqEs7U.lq?cWh"d7`-f"XEf8U;a;ol%U02YiCtdJl
+=i9^p*#,>%q1l.>!4MZ3VJX'^'B)Kk;:H.RQ<C&VcAqK!q\qq&UOld(Y,>4lN]s,DEb_;BbBq
+X6XAd[u_/"FmaKGPQ,?cf]SFmV_1Y\TcXmQOKGNL2?)MXrk5@J,%h/qE'o(jN10RP@a=9b[p?
+1*m468#5mcI6h%CF(S/5&peY;Bgu.\lns:=`DYuGBP^K?W"TI5Khuc&i_W*"2TC?*3S>lED%/
+LM4O.RGB^o*14GE)LXE,4M>&*2O,f!n1UOF'*HH[49/'3/1hj6r1YOVGBK]jCV[E?eH=c$)**
+6JLKUO,HPJ>'M/kd,VTapHlrmB?rBYGd4F#$dibJWIqd,LaO1Gbi(<_L\&P4JtVm$+_9d&ZT;
+@^Gc5HBoiIH=8*@_K)@J"a9epo8236)T`pr0,Gl0,A_gu&1Ii;.hM8]:aZirTY`=MN-lTeu(C
+[2LBjkG]#-L'UXRY%?)1f&g((Q67lcuaIFjrmF3#8;5f`N0/KFsJE<A)O'l`giU*PajBT6REd
+X`c$qW-SMYb0I\Z0Dg/j%V:*//-^0]3K>+FF`nrrS(8#>`"\nf`#bq_UP?nOLj(WoVPV[dP3]
+fNN*Q"Q.AAol/dXb]GZFl=@`hlJ2D!YCE%d!=brut#^IlP&D[.rsX8GkMC(H[b-Oo+re+b[/$
+,:c*Vj8q(_Z.qB(-3o`C<7X+.Z;7LZ`cG5PX2$`nj90ImP06BTP(MK>.:pQ[lN6AA#;.Nfg^g
+j;$,oFVK!7RC4[B^$4T=:*:i[HVohacpnNN%tUi0a0:HhcrD$F'qC3mOk-henND]V,LU`gO<9
+lj-P/p]D9`B<oo6@RuuNe60CAb:;BUXTgS!UU5a>m5nNHt#dIQX`(nQnm]#"4nYoC+2Hipf&8
+:5>q9(Htq/!Pro!tM*)2X11^)=ZGokfqMjOI./XePN,0EC'A?jDZGt-l,95i]GCPc.f'CBP/m
+Y9`M#BI9/P2H#6=m0]E^/hJQkEuQDMW>*.93Z%n0A72EDDAX5YJiRG_s(:[6h;5R51Z*eC5A2
+Ak'nY</s.?_Lf4\Hgi@(d:0)@*VrWt87g?C)%VSaX)3fcRd$A,Y<!e)Ml"'9>j@@dmCc*&9@q
+%YMtBKgWMn>]m(/CQU26U5lY-4hPe*dsbWm$J:gL'Kb`(lW?uSu&ndS?t-rX_4of1Aqq8j(C6P
+%jpI$8-'>]kVQqIm+CmYUn1S<\nE?gr;&93ilMH!BDSl;p.A_&RtajB0HHL&#02?MJl2FA?#r
+Ud@O*qa/hU._6?o%JAs(=.@,aMI):1B3JrG9$<0FM5RL=$/K0m!Rs[0jC-7fqlm$mpkek9SJca
+%7qMuF]mt!2?YK.nbM*POaX_!4SP'23]DHt?7(qs2QCa)5Mu!Z/D'Tnms+$G&W6/Uu]XN/!0c
++b-BR,g)F7:SWX*@V>XuLZg.iM/B2!Q;t=`:Sfm0fJ[_3rcM7`hVQ(nWM.7BQ_&<MqD/k_M\;
+9Z+lh;-29WC@<r?IV2:'.*,a9IH)aJb,#4<J7Q$XB#R6NP#q&GH8_S&)-/ma=dM%*MP(D4:\Q
+$37Sf5Y)#@_@R;f+7:O2fk`?K[f?S(>[5<g-]nsm8HAp;MWM5!T=JYc?W24=\km6Tm.1W;s^P
+[(4NXT(n%\N;_,7=X3o,#eq]a#E_ZqT-g33[>^ts-Y%T1!$)2l$Loi(o%$aS<*-al9_\0VJ4C
+"-+ke0Bm[M%?ReMoLS^VI!4>RUD&87O%c7'og0PMU1JUh>b31LHAZ%kHj-Q1#P`6Y%>oBra&A
+?MuYNWuA<dSbcQ]6G-Sg;@o4jNI:TBDt3f>e_YMDQJn46+RVj_1tEVs7.V43-MSpDTk_pbGpO
+lfo#k_PQq=UF4HZ6H`Xe6krJAl(3cY]fCJlrk9-9P[9Blk!2*ea2D\B1dh\Ng)i.R)P"(3M:O
+BG/QE0N5iqR8)nV5J26aJudb?o,T?=#Q9H@[+"6a$b?BoO[\^H'mq`F*\C^m.5@!VV=peYn?!
+a1Hljd(]T/`5+qa2pJ9qO8GORmi>cIs3,g.<nlA/&+^fQ"3pf:/Y_5NJ>fE(,@64;k9,t'Yb!
+iWX4YPc%8#5$gIf?5\UAco^gTVLc037^:i-gXr)=b#!eRj4IUBW=7pcj?\Nrf&3BJdqAA&Rqo
+mV[j(>!ol>]nL.t;PYEGq#'J3/(PEu64YbMDK0kqB4(4K>GEBZ*)J`9ti$)H8L^+2G7a1TAc(
+`S;*<AYX`bqDCmV\H:'(IME&c#gqrQl5LD)q`g%07K-3uC++%V4/!'^2%67@X^m@>ch,b`=*<
+7f6He*r2\/pU:A6-88A'2Blc1sUq2J5C"tCA@PL#9H\J#^G#!(h#G';!-%PlRiW]6adV-<(Vr
+&]i1q#kCRM5q_6Tqb'fU[rDl(Y.**ml2EHb`Xb@9_G)uT-[=>0i[QGNViQ6NYe5fHSK-bKYtj
+?R(4e"Jn5VVQWSWT97Quj6b'MEe&Ue!!kM?9W.j`BBE3m(*TQj0eDFc7bi<>aB&ZMi.5SlZ5G
+Q,4M3:/iXK'_dWN'n%7c>U'.O/\77G7EJa,cAF(aH(#cn"iFNj8cuFf,"a8it:6NSJpl'o\W-
+f.3>k>(H;fL5TO/02AF'H^gp`nFL7s(+9,OI"$@F&;#f+q[7eY#1Zl#T3.NeFO]ZEk0lAtl']
+^as4$%([92QmB.cY(lGuJf93IGH<QDqW([\nWnbC+SK4RD*b;,Nk;E%3nZ8^#g6lr3FB;E%`Z
+\(<n*Ii/g88bAj(fCe7G:r"_s3pEY6IIV3'd\Nd7_RK3`>?kOQdp<I(^T+\]Ji<DlYW6hrNg(
+KoW:R(_\g,.gn)^GS:c9Sk.qa^q?9XE+r#(I-0dq_5=M&2Q,*0A(q;1Q))cNm8Ckk,Zp8gZ/s
+H4Y<:#u8:`[uFDF+a]cJDUM[70T1S_UnM3Y.rGF#!@P!mVLEW)tu%;p--OLmG`2TfToWDt^p9
+hs;l^/D,&S[%n5Xl+Ip.a4*MS*3#HAM+rp!#L!,<?#GH))<U8jolMdak;qDKO\4BlA13/;/:+
+.Y@b#tTH9ePGFJH9%m7Yp[6O4Nrq0@*FSUUTS,TUYrPK-4ZMPP`V"SDUJEGA'Aq5N,[G&?'B:
+#4_Kl,:#mVj[.Vj^l*$NN&GndL;obSRf)&bYF@&QCXm0%rTUL=DH2\.%)Mr7k(6;d29/F8'XG
+OF)j_0HukQHN$5qS,,qZ)0:7:aUU@Q\9P;T)%oMcfpq<`dr,`IRphQ*d;E.JI$<&*]$VFST[O
+/cK>Q2XK/Lan.rg%JGp3n0'9u_(li8[mO/m$7pAYrSSKBeQNL>Ft,M5Z@jStJa&_FGE[.t5Qb
++j9oq(AXTqJL5!'.I*XoANF4TTp=of55N0EUacCM=r`PHp[6l`(&r!R7\PKXVr04eDW&8JA8H
+!NWms^Ud^^NHEJonRE^Pk)gBP;r)[h.W-X4jbhT;7&Yc!M`119`gNG`j.ph+4ZBm)2BRqmjYh
+FG=&KGg?UDWo+l<o8rVU['K0U:FCL*a0>Q[j]K\[i_+NV/J$BrOI$T?EY`GNPtMr78"7[A6aE
+K!p##4D-Ec(ADVgC@a,j=0!['B<o^qd7!m9W?%B^B*k*E$,GDGGo5S7Uopi"Yb2m1P8[:n61%
+VU=<+bhgdk%kZTh,Z0c1r@.5(*iGa#Y.1e>"qh/H'AC<X6Iu*Q4Y!!(e91ksib*5e_?FA,7*3
+_SmI*KWO+ZVIbafY5PX14/1NLndGn_,gDgUZ#\J95,k0J+"'^(;:ja\MobU:<_+fI?.Z)ZG]1
+WHC)A`9H+VJ[f8O+e_m'9>\]8#$&a3<V8gF;-<L-r+L:G`6fHrUmP6Q0GaHu([)[p7[PZ)ere
+,>i9`D(fFDB>\]maLg7WQ4+_1fTOYV,#"Ep&!8hCl>OOL/kcfm8s1uQga#l+`k>5QL0k+hC/1
+?q47G"bbuV^C'7$,Vq+Jd=q./tLT=FWi2G!I:-UD<;Hr3lB+``,bGNsug@+"S/R*FZN!;pt>F
+'Vl:4<trrCdk/[.d_,Uh1$e725>mM5tmk!%/,6du=VrZMH#U=JN!,&KAUA1o=8S`@ToldPR:4
+\W^C>XN5&/@_3*(&Fd#hYB%$(WtNAEEcnd>[TkFN?E.5-ho=DF<6k?jRVejhB^5-_NU#bo\f/
+aYA`)-)=HPs!/r,W0%\.Yr+p)]&C;6U@Q$cQ.)05[jR4KL<Qo<2G2[(i,[C`q5Qd--2T9.Vso
+4$!C+E\g'YYd<\<UmKo=oMF"b,Q)sKd+Si0CitBo3;2W"b#KV0#*+u74tc^^B.2dXjFVsV981
+npHn'i\/HIDd)(bo*m0<^H#%o0YuFnYKIsQ/%15&%>/=DBKMHITglccfKWNA.F50QfR99:2qI
+]Bqb[-66.P]1SLS?o>([V=!VpC#Q'&;B?q)hFTFD4s[AZrL/J6[V?hhP?+*VXpB.(p>@0-PEd
+[h+5J+jB$mKqSlP=M>1=`f3c3nVq`ai'p&:.StHUI1<&#7uJ.&mE!\teTO-:CS61+RD97WVTL
+V*!tQqk&tNd=VN$%1m+-tQRR(3^c!H<N9DVas+C0bu%E7sa]Jr(t\JOC>&9S=Lh5-a#OXE.\<
+:u8rME(,U%INh-SKpRC4a$qJ!kQjno7]U60Om^jE-6F;!p9)@<_]N^6ZEB_EApO'_U(+.]''[
+o[&E5^b%%jZL:Z)sk,<^/WhWSKl,N.f9[u$-7sDkF&3(a'j-mE9r(Qc9lW)\;h!puB2r]XL`J
+'fJ/87JdXU`^S(\^Ke>N_Ss:B6T9jPML(LRS3gIFb8)s5orjU`Viiq+`dEQ'K>G#tQV.6"hE#
+=r-lpRVD?"L^mP`-kr*WND&b^%ddIK7gj04HkeGPlBG'NrJRf57)qPgQdpued#/JKN^f0t,!1
+#lTQW-"LlDmMUWUd1WaVh\C64cC\M[;X'.A?W=j)6:oRVq"a0#S;O6s3dJ+WAXOcu:`3=AF5M
+ai+9?$SK%HFcgA9/l"_U;j`BHApN_\Cl^^e</U\E7,UgT2)%8U6,hfZjEf_O"$OYpndhT(6G&
+VVOs(1O78,+n1KJngoe@fos(]nVjF28aD<J]Ond2"4SV<;^3/RP;#N;qP-X(WR7;\k&B&0fr.
+W^X58-2VMkCCTF>n&"bY]Cu*;+45rA<G1QY87]1Bre4+iq)rh[YOdnL^E>dtS(XfFg@q$ELe6
+2\K\:R,u0$=(i.RC[^A>XB7H<RQ`u&#:O01H#pAbY;Y^k<I.**(957p;H8YCfWG;S%T1^4_!q
+EH6pXasYjmi>KK4+53o,6bCfdrbQ1`AS+:fo6=!-Q0iR6H;^RVc^]OpbqSBp67<9$e4:f'^42
+iK@p*E)4g3H_U=a'"Y*eC0Yfe#5cpa0)c>P-Zp8A_IgZkTi&AG%B]1^I49-_mR4DMON]Cc(QT
+s\^B9M"MtZp.t=-S;F4_fJVXCP^,0^X3-jW"g+VE$e>dfYPYhago'L0R$ah]<*JNQ&(B:LAs8
+>NXVs?4dA="t#RqY#HH81)PUDpaK?%GXE>qEUKOriq(HL8_Bg<1;i):Oe3]e,XHP/fK$pbWmE
+P\X!'N&9sd`&O<[mn@k/['cjr[iThOBdILtFiV/I79:];1LGQZ2$8tL)7QHBcc5;l(TW5/Sui
+o*F_P\SR20l6erP9+IjZ^o]NHfH5`<VA`s[`905>VhFReQ9P&6mc.i0(E'PP\Si\+kKMLWk/d
+U@</D+/O<8ku4\I[X0c>/Ij:Qc1.dP5qOmD'u0K-A,[k"&`E2(OLB9&J@59>qHghY2r3GSfZC
+nUFd2I+P45\jgQbjUl_du$uYZRgW/?tBdLJ!V*E+kh4LL$c'j44#(aKJ[;?=>>LfP3SHrrETQ
+qI+ACnoaN+J[G!lTaqoWhsj\5Q#?qI!t#T@cQ3>n0Oea**Z_W`5FIGK.Y-.\^s':!PZR:$?nF
+aX9.13jHsd>/[%$8&OdD\!rn*D*sH;]\5/rImmIS\#a.=I=A,l;pjk(2G[a)p'G#9CN+%M/a_
+mu_.].!:3<g?>oHXY:$#Xn)3e]?VtD,j9"Kq_NZ$**G3ZSYogfIccAcSTU2)OY=eUrN-Pt[5B
+!(C$JK\It^*iYi(I'`E:P/;&Z@(=R0CLp/H!1M7Q^UaK-?VMf[,mumI`p#B"@&Qah#$sbS^@j
++(WUV"-gJ#_6>JXYXbKVFMGb294J@g;>ADmB/75DT;^Q;Y?K,+lOhBBDpK<XDbZG=:a8(\nUL
+fe]]=2*EEu8"qZ7MuX)p;+&(2>Sdbo83Ec[_1<4,A>TC4_DX]$\OQ*1c<;_t322X$16m$(JBn
+Y]F6]XkCrR=IL547KlM7IjYTRd5f@obX?_N$^!q:[+7JL>%bGrjfFt1'/b,6p"Q=bZ&!09&H)
+am/*a.c15Lih89h_BOp/IhRjMjLeG%t13sK-EdFsR[\=jidaSg94<`qcBn:gY4?gQa,C;KtR1
+Wm/+[j,2U_;&MK/[e?I,1f8#H$6;Z1prE%hem(6/Vhu9J3tE9nh?>2q:>cL4SJtfDAFX`MVVW
+mUB\k76>=;Le>VY#,qSCnc"csebeDe["khLV#Z3p_UPc]*qRY;i8aNVI<=(9NYFKk&`p17K.8
+"&XD9],D98>,XQ42K&X%]-BeWoo%o>;a-V!G)+e`BdlHScBkkK&?o^AsO#qe*uuM2TeaXP.@q
+^[IngQ="Kt17")B<TB(MXlL/0g<R-d[LR#toH8%e@9WKkgO#Efh$n^SK/Q,^XDKe+lrskg8`=
+8aUu&(cl^R;.J"=imiaB61BsN-ugQhEFn8EUh.`[PYS3I^W]Vc'IoXPUW?Djp)<6c\"IMMdM_
+'VZAheX.[_hg5o=/K\\QsNHT[PeLm+ud8*Sl#c_i`i--H)/`a&m@UP,\MK<g\sl4fB]fPi!gi
+1gU;5REPf/OXd6Yh!L@Z[!CceJgBT]82fM?,E)nYk8=+&u^TleI\P?5hS'k9)n>L`ViU\lWeZ
+T<KK+M"(L/9#=`M9S=NtCooA2QL,6UTgKH]6QY*6[gX&'?Ibfc=0M3Y&0:71,W3V]K"(<bXai
+*e/QcHb4O8fY)aF>O75;THFnSo-1k6]&L1i(Hc/br2r0+EI!g0Hg2LYY";Qq7:$TB>U3Pm^nj
+\@s0,P*Y_.'25.s1I$:-u'okjdXb%kV@8tE%.Bbjfq25L*X\WAbnPmEk`!Ab[GfBYb`5ZCsI>
+`i*^k\H7^I^cs7W=+cfg$^6$X;d#:)dZt%qA)3Jk.tb8J5^9Eq%t^1-!f/<a)hM<SKE<.s8CE
+c@e&RIlZYS+^:fpBCHb'da8GW-DdVsNGOoN6$f^SdIe`:'l20oZBM'i?#;]^VU:0BUGI:ucC%
+C"6+?u'=eXTiU3q/#OV21&u+->@+.tnBp?K>&`GYQjnXdM'Z3QZ,Ad2-Q4TZeWRLJ1S7:k*'8
+[!sFeZ9#(Wo@ktkDI7Wik.VqkYQkJm'Idf(D=SG4"j9e'_[A-de!YusCW'q[W&NFHdc9W0WY%
+Ebm_&p&k0nhUG(.&JZ<4d7p7i1CLYs6&"hWCTJ,K*?e*!pkIlA+"5(3;(L\L7E^%hU*O5I[]h
++_1!-^#F[3kb)=.+Ra=\tVB[D-OGm%Q]O,69)R8ip?i<W(":-X,-sU_PP`AKpIm-X;#AoK6aa
+BY.e0"Er.jVPkfYoGAs[q<Sgh6^Zs(>>D4C92kV4>+obW!$LG5:')ON\3eUZb/G*2!L@+8@<n
+0bG[mBdH60g7iZT&_o.^pp@HGYAXIXEfM-n"rSds"$hHh[B&W\iVh55jHra7ld/^OGqI7o9Q$
+:LCd7nR(D>Va%g1?3Za2G+XU/&ITb]Akf?Ri7\g;PrMXa+gVIbq1jmtEpBf'&qJfQ6Ft6lU6m
+?[Iu6(K(">(AckO%ATnA^[0(A4beIc?EO;<FR'"W@AL97YA@]Vs`QGN63[9\XJWTq;7,tT<!*
+^m7Z*d:>@HY?kH*]Z+uHbZ#7]r9u9[X'a>eP$r0*.bdfM*"8P4FMXa5l9^0mpCMCmPWW2ErZ!
+l]C4j)qs*4&+2>M&]m]kH]9!!gn\sn_X7njXn8rY0Fa$ar6aPW_/>EMe7&:Xa%5Wj4qSC/02`
+\/.Lnr]%\b%V>q7@ZtktUT\P9@VO.ZXlLV5dSZ]`]>Ibj48'(03^<1jk!rg!f*rL3qCk8lncX
+.$)M[Ga$Y38in;Q3d@@.gBpR]FVE_@0-p18;>Ge!g[\SshO!"66'PuDi`L%M1@N>oS4%@hD5R
+=gQ'atRT)S6HoC%2'm]"8F\n/U(s6eFHn%ZParp&=#5MY*ZrV$3eIsC_Ul1<Zms7$$dHoJHlZ
+Heg16ObE#Ke,sc+T]hKRL"AGgrte]FtU5fk`=3iF6V[R%-#NkS>F=*:41br_I2#n=qfmh-doE
+&Mf_b0DCHL>f;jm%SG-"jp68"2QVgHa[@His*+5.um<[umUeOM0ZS'=g6![nlkglOEQ+Ihs^h
+m/il>8"m:I<-c2M^]3f;oSQ+Dd05AY=KS9RhFS?efH5Mq;@YGQ6j,gP)#IVhb$8T0ERIMPU:<
+X/B@VfDjU;O0>/4hS+77;7Q7%6Y'g=<c,GA9O?.Qe9J>KTM%Yi*4/JZ3+S]>+tZVS@/OF<l\K
+7fd8/loBV'o)T3JA`U4Ti/?3pjo_=5FPFkL*6^X-9p,qCNoO7[XVMRW*7C7en&'nhn9`5E%M(
+53!inE(o'K83IM`*`$Ynd4r?OKd"\M0JM5HD0itV5fq.NEsc>bYo,O(Q4j:;B[KG-tg;!]RKn
+N+.g7Dp>bK%[kGJo;/#nk3:u%IVml6qrl=j&ZQ[>."5AFd7%l)AI4uk69ArdrV<M'hNP3^qD8
+crrFlsek[E^o`pO&=b+;$2k``2Za\>/FNI**8&98+9iT.R6Y=.rA%N:P>DarIp\b,Ro2;"NMa
+abudEefl82.h3;I>hCi3/4+Si;gGAq8d%)ijK2OjXRitmiR4WN3)K_%)^7#qdaqE[DNXf4mlp
+`g5J?pmj1F'"KIa6UpJ*R25JMR>8d,+Q[pQlGh8b!X:44M$FSGG+EP=LWER&qTq6Y?I)m<=D>
+P21Z;3\S&i"lU#S0P$gp+;G7Q1p%n8>/V5'LUrn]KF2o#d**#c(+HHiDOfm1=.Ldr0>p3)FUW
+0M]\?1Je#(k8'HoI9#Ba"8>pWV-ZjMu4tnm$%=;ck)JOfM-3N&UJOT427V1/\ZjDZd%mRdXod
+-!tj$.tl:B#Jf<4`lpl.rt$rqQ#-hqncZ^:o$in_Ns>"6Ks!s8Dg20MetF;5Z"KdUu;W)JqGJ
+?&HduW3<%@`kJ/)_`UZ4hG<Snp`#/Q#-gpJ0_\oF>d^P.f#+.r5iUeG&(_f0KB$!<c":q@jml
+nt'3!9J(WR?M#N4Z&4Jum:MiWrBK'f<^Y2Q!!ig3^C<aK^Wf>`Iq;j^AjM"+d'gk^o=qt0FGp
+EK@@Y?ntns8#4[o]`jBILhA:n^[$opHQB<r]gDXh>dC7+gJ99oC%0V02C$=E\s4IU#<u8&?To
+`B@/"qoT[;qBG%CQ-kB6"C:Ja?9'dj9S]!$Q;f2DIZuBElBBgC9Cpst'B*3.ungXh;0Tutf9p
+j*CCO:]16&2_D3X2$E1+7*2Vb,*.C*ZItkp3HErD_BODe$+G,rkbkrTf.s8P^/3?Tt$0pT4Rp
+,&',9RbtlH8G265Ih?VkorD/tro)nLG=$Im9Q.j/RThUj-fhjDRP*hc)%VS^UP-%GV5kn1^*-
+O4#ZH2N8oaLHnc:#LM,ge!@d];a8ZXYUQB>o=-uHmbq&u&_1?Yi)(G7jn1%d8uluY_e:-gATg
+)CBNB!J\0eE]1:`_X\Up/Xq@4(fd^8PC9RDMpEJ_fr;VLl-j=24oXHjri!hQ!2sl2LR%p4.je
+Q_]b)tIg^#q+)4YqkMq1pgFH]o7Q[e%r_&:`]0M=92@5l$E`E\]kWX4sQND_.AA1<&3j690\8
+^$\V%!Q2b/\Lg>>aUAb_+c2^$*mE*R"<'9WPtd8Mm(*dgWCIgiJnq[2/1jZ[5/jrARAKW]&6+
+9O`;!?3D@t*i<1rC2<V>_@fC/ak[E#('A9%cn0-A^BR+k$6Q/WHjcK)&J$L:g)a\i0bRA,X$9
+ha/5r&@d7FsJ,6@20%j:*<j7hlIEp:iuZVuGGXpVsjT>7;6=aV.5k*ml@pg'sdPE8sqddinT5
+FmdpFi,6Ymc+/-Pm088@#.;41kZ<_`]d:5_hW(HjoGc9&bb,Ae8O9DjS<^mp8S+o@Bk@n"-%l
+d0V?)"jL//kVu?WrJq:nm%_C@&IO.:g;"W.YH,c"dD,lB*k_6%q+VnEYds?WXJ%_?&=s%Tpj#
++<LbldNMp,SX`Rp9q09-J"Z'iPl1P;1dL-2pGrZ.NmC4;X4-d>eeB-*meD]Zr5X?+_o@U$F/N
+N6Di:-J7)hc:-l#U?%l-p*R3)_U?&c%<O%/G+EK4[1cVK]c(H^E%++$iR2;7:%5BWD4)KadIV
+;"qib!>]:#bb9._4Je^u:C=[[?)FWEo;Eq5$#Z>;2VBiVdt@%r>u&Q00,oC,VBWm&(rAm&,d%
+I317mo[knd[nF_-.Tq^,X*g6olW2/;]PEie<T_rUAo/si=2RNl7g8WS8`W?YoIP-*6i*URlD*
+\CUt435C4*GErf*76X:E3nOqsG+%"E#HG/"5fb1]^*^N.DEbSIGMmEl6l5N/7dehA0M/$$0Ei
+R,\?`Zl=Ml;V']i/;SD1GV;.30edp;8H491CS#Zlcp"D;`7oWQp+tRWY-T]!bA!+gD6;6oum0
+Tc75,kV:.YF]urT'J)Rml$D#rK3>>D260uPadI0`'1]d&ioqO5'>I#boA%eU>u*AQIq1PU)^-
+YO1N?<g0lH(dYkTh*C!;6'+&S@cL<ZFud.3H>,oT$neWUA&?aaX@kKL@R-]3Y`2".etl1Ed6!
+s[D)p8@TH*YllBNK?:aC9G,jM+B^3Z0u-lS!Kr!#,F:O[C5=2l;D^Oe73o+jBgW?,%(-mp7aR
+(Rfg4.HB;LFTg%:hFGP4BO0s\8enm`XV+.^\^PV&[jjJ8$SEr@lN#2p:8&Pr:1@2DK09]5g`S
+NcpJKDnQPrF4B(E4H0N]Y_*BM(`U>-G:/kG6mXI,d5@KHp)2ETB^3.Ut!fE#k"CGUf_lg<Gn$
+[:_dh-dPiQ5KUB&:Fc+O(IB?mJgPaC8_8ck`'3:pFZMs@&UUm#D>ND]!?EVspk`_\?FZ5OYF9
+UTb$p3d^8N`]W[ap";&)@pVmTo5RcHIN8e%Ql33np1W`'&6(#=QlWn1mXpCI^__uo4."A_ij"
+eGZL_E)Nb-e1'kYr]1s[Q&Jb9U&"AClLc(Qhf&_QL+%gBrtqpPb\iLd`#`+Fim=5`1n+g"OS;
+I;\lcX`KRY%%lq$ISY7cJ3-ADG%QZE$ZHe]$WtI;h[a'2D\TRcRR^%cfo0XmfrF#R3m$4s/80
+pfZr_f!=<6nasNZ70(5g^6n9Z*OO:ef[I9J`(eTak<l=;-7R20mXt?0W\h[d^_sMH#%*SG1BJ
+Fd1/]i`SsoZZlIA;lJ+R7`cFFY:nD:[lT/;JoBK7`RPU+G,Btu4o2&gN`.+P@F`?JkeX)a'oK
+Xm$;U`c4aRs`jN<pp6FHAN7HYW#UYV$![8/&kcuBSpeRg*7c1qET-uF7p'CE2<q!,579$-<KP
+@0ES=F:SG+q>/jYH@I4M?G_5r,]Q#VN![>p7<LE!l<3`fQRfS7?a-[kl^LQn4,G'X3G,tC0GX
+gTX>Dag8EL;e'CpqCX3dEDjWF#GX6@!gHbdr>Z/m?d6b1Fl`6cIgic_Ur+t>:'sfY<J(5dChc
+2Hh1"RgAHa_QfN>c#39`(X2$O+La<JugLW&C%,S;u6;nVuKXlMSBJ;J;,;Qb9PU7#MgHVJbYm
+96Dl@FQ6RW>h$omnFZ=SS0<5T0nCM=?U9qa9dP+35_!Jt/1Qh/r]Q,.0A8K4UTAW!'a'Ac15h
+IlTBEPG1W;#0@Y(+,GW3jj,tV$7I8Ye\EFC@NPquiD^F^aHf$`#2ai[+^?`$+WgZMdteVcm+M
+kBCiGuI![QLNrc)Bqq[Zq//lY@!LID\UpO`SSbASchb98l1UVb)o,"+Uq8R7iW77:Bk^f'C+#
+WDD_:b!M-nJq5[\q&q]pf+,U]!]ncBZ'&-d@djMfE[)S2Z%:WEChjGt`3W)eJ'NLKsgNIZk9:1
+%qT7G?mLHWNEE_%[*7ofuC,n<AT12l7dW8C4#33Z5="osu+806p[";KTJX/T1Te-ke8VZs5SE
+&L@pp!?[m,+Zh1,e-tX(R44mU=P]6WO3=53-J31`,C7nr$I[B$#/XP3c!rdD8\*(GVbQ2b2q<
+T7;526?@Sr&HdJV`mk5D6]pqc`Le_jgKI1M]Tu-oYnnT+X3MXQkpYL$7au$#sD\d,F)NlMlXj
+:71dTuI0:pMWe<5Lq^U-q/;8_E8M6L>Gq$<\R3bgM=b-XY@0q]C2Xg*TNHR\g_/[R&JR=QOmC
++&TnuEaN+oRp::dU#rXZ8XFLt$=Crml[Vo4U.SbR?<l*dDYkt\1U;H?IBpEUYmn9]QSkdg3\.
+RER\u%T<IPLiJ,:@HO#D4P9Z;dUn'W6SdT//g3g$<l4KKhkS&+*bfB5E4<OGni*aoW=:CN'@H
+.DTjaX7F8)"q?oD-@HZD"`9aiptf?ja*"A$_\I7.[RX*KoiYS\rjgpl(3Mk9;/5q0(duC9?g/
+_^0d#M*K6>0D.9uf)'?Aa0&ND9V9s:L[%coj>PMZ!&2*?NW>q.8K5Qmpd[V3rM8D4Y1=1<cnT
+XT!8q<9)l2<A7Z#ahVcZG]noD-QirDIs81"`r@$M,+794Q8mSRNZch&7Vsaq]5F3q;6!TcuN$
+j]k=Y6>e2Ce5X=d4KDMmPjI+\)X,"0@NPq<'O=bcB&WrL>n\A'p&te.Kbl'D]eK+QjEat36p6
+D<;5^+GIDFhnf:,Z%0K7o#&V]."NEE+*-%7ZI6;E9u?#MVT6&qtP@25E`S$N0$\tgsD2cSe&$
+;HT3iVm(cbT9?3O/h&Srn6pGT+`McSSF.]OSqLVFR<OuIU^=K=U%*q$s]lp^om>Y;i0pq`a`i
+r;`6%eG3G_=!X^&M?DBJ3/=qG83>c,K[`dB+k[P4:-8P%D2`"94egCRWn!CAgBH<^G8aN+'ge
+WUB_?L#H7),!_Ug$o=f1;BUp;`E9rb^,,bJ[`b.62E"IVI?&Q)PGcmnd^:k5Kt)VjHE,YE8uM
+9W&Y\ed<4%`)UBKk"4$mI26lo#+,^99QnQo-ll5'Duj.9S-?30nB>8G&(Rf[JDe.V;&SnNQ:_
+Tf\kL'CjX^75R5P?c.NF;P.VD)E2SX8qcXrT2_pFC15P[^uCpWhf3`U;Gar7(Gl/7;0A2MJT*
+e-!9[>dK'3_k9mj!#$2ARiWW!89gFqX*qB6d4"7>_sZ\^k3!DUeL%)&M#2'P<.3*damnc,C=#
+InFKc7EL$j[BEh0Tn.+.1N<YWUdk6F:SA`44>:"fXXh#!p:#[i!M=W%J!L@C3Wo2FMa+mA;$a
+DjITD:Rh?`*&4aC4'GO*^>7EVu5LChRr_WNjpfo]ueXdafU2q6"E"`T2I]B735'25*!oSC2dM
+dCJ.aIX.>fmIEB`9DR2,/SU_L!c#hFSebVC[nMpB(qL;jd%.M<K,-X-crMR(RT3ZRQF4>_NQ>
+.@`]`=^^_!_g^!j'5e':L$h!&#=89.T3RP%h,SAeY(_$UW.naLdsBQC<!e-l5%;$?1dQ\@URd
+DKBu&b^(Tn^_BJO\NsF5)GnZ_ca]"7:3P?*RG=;UAF!Fl>f#i6kfXol^5gnSa*Rl8Gh(uX,8B
+*!<Y3c1hPiZ6:`9hj&DgQ-/1jqh!-"0ocf/Gk\k0<cQC[nk`8*2qL"9[L!ZEq;g$9&8Z1D(nN
+G>^h(l?`r#3_h%VrG$T]NtaGuOZBVd(,l^<#4>"4tnrB-0ai=#$T\oq:LtbEfJ+apJ7+"g=(r
+X6P]I3[u<-[+H>O;IXSG3jI?'mM:ZE:d^B4`dt?K\#/\+6mX*U:ZorB1i+cG_3lLPYt=SgTNS
+OZs/PN/9LuMt@oK<\"l5h55b_)iB6"ul&_R7;X>j)W#AN?POBKu]T5@ZQ<X6f>ef;L>$D\2'm
+U]\1]bCu,:Nn!N3XDD#dalX,`r'SDAjUVK$aDeaNBqE(Q7F/p7FK4jN^60GHDW_oFIT>[,fdD
+fJ``*,5%^NGTkl-UOnPSP>t:\4F%#\do,t*rW/R<+Htf,Q,??D.NC7iGH.()g"W_n)Ai%[((8
+5UgoQ$'e$9fk!I?;DQQ`at?piiDQ&3I@Yd\7?,SK_$cG/tPV\d;r"mk7^"kP>Y)n%'j#M'<kO
+;1r4D>"q%e12mnc`+Jd1Ao*0pFRQWOdG)aQU6-n9Z*UfW1;lY>E?JF@Vp5pNj%*`L<O3]=Gl5
+d"JYl'G1Xg5"^=E"Mqu[O=cYU.V=GjA`h"a:2V^'2[+2F_$endS.IT>Hu[4!).@'!P,NInDOK
+C$19n9(U9&"&NpqE2H[@Bb!Ri%]m7?ogfV^&fcS$$'NNhCilTg=ZaOVBW/^j<QX+8*Vk)Y><1
+,hJ+77J2P:d4&T=RYB8q62"clO_["`mS8gI#JY<kN,U$Q4=_PkD;Du2jF2b:hQjA9S0)\dOs#
+g&*pE*F&Re62?HDnI,.qAh\bSgY?@`OnAC(7*Y6Qn^u;M65B0KlM9%rl:;^1R)&&l;&FBhlZW
+N#N<;qem077e'sgN&77m=E1/"a;k9bWPNq5PX`<u31(<`H^L6CXH5qq*^RT$QsIp=61>W?LQQ
+$\B$-tO6s_L"=37:I.U4HPkl[HS/8Ot6X3HpJp`(Y!SYj!'VFV_5CX0'_i3GaKoX7/6Q;f:6q
+,"5M"=(K!_t"!$2.fHZI*$@d=$glrL#n].X-*1EYu*3ID8?`2b7Y(.Hbf>'P)L.4SDnBrYrTU
+M?ELo@1P@?'>b123_[m\iGo#OV@gQi1;nl$e\"<n]]HVGKgO4XH>dQnQqkp+a2d*JuR`pZ,!D
+\>eD>%&1(T5AYF/60\GX`8?@&O]T*$f2lD0Q+i.2mc-O;I.O)aar"j?2sUM`Qo-:?AQ/aA"*W
+0SiFQpK+"M\6e,h;PHM!#Da-#dL!p),p`5>pgl,ug39I&/ttc\[]>8QZ_SLM5I'H875tm.SB[
+-I/QPO>V19.flPV3KB\[q?QhJVQjt`4K$$!L9VT,2c8$2q1g4p="#oc<Q5gc3K=GFG#e%FE7U
+9lhO8B$s<A8rGA+aHcs]-k9bUfO-e<ZI-rV8tsE.l'%e%>;B`alQ]D)pqfTPKPJ5UGn[P'!k)
+A2\S+HK"EOi(,)Z%]h[E&b/kUY&^@5;U7p8E[OCd:jCgJ<GK>q8Q!4F<nq[_HiVm*9M95eWnn
+M460[Jh.Z]/lTCM9uP\Yr9F)`pn_<qYjeqt1@?)<#2m3:ruIrJu1&W(/Oq\l&F#:7<Q@bD8Bj
+dOq(BF@iVtX2lW':j[iejSEmQ@H5Sn7ddE]WrU]N!NOXJ+l\Q=9"@PARkhR6A5sf;QJbA^=F-
+?^>^Hc0KmAjCH%6RY266B@i(m0,KY:93C@f[aGGSE[Or26mP]]t^d'9`X)s>`^;9UbamZ6a*g
+2pTS`2n$Bgd^?:1G6D;ghkH/6'j%64j3.+!5ArPLT"sA;A"3Xhs9s(KUrICj[])nJg\tZPZ4-
+1e(bW%DPgYg*/Yh>#?:<5M40<Z\Mm+-IFE#Ahk8nfRa*[_hAM?:M`=Sb1)L7#F9^1/AR'VdeH
+0hLdmg7B1(]"KA$s*A\6+6_/N^!eL(P:\ifZ_Yca\">nRh(m!I?X]0P*^k[?q]W#=p<[(amPX
+,:SunMpWqoHfB*b70*$<:U!P;.]hbunjOoh+F94>M??S@>c*r;B/8;'`DY0R(F.>]VD[hX=`6
+TC!1chX\4/^fEueA"d@-Ar[)Gmep9W=ijJ)YGp`i\VLc/tfG7iXtS!X-%oZ?RB<[^>IM/<N?;
+!Nk@VG3[Uoq7W1QBjq1&f\5c)WDVglIZqn,Zr^t\[:PnI#[Ot6=^G%1sP3CEW4U'Y,^$?.b/o
+HD1Q_TC5`gjF!FFu"DH/^95DeQ3iH4$:ne#fg@=imT,lh.FW?J"kj`fkoVA7%D*LlH3d]fEU,
+rg"W4-PQ:#L[I"'ou4T-`Z3M:.SS$Jp7`2f8W:D$I>C2s:s`nr6@(S&Db;?"7Z=0s[0Lbr.n/
+)h+P:W*XU`bc0srBS.nM*=E2!N>MXMFrQM"IX6AX?+61Z4!-[*<]tmOI;bR1JE;SEij:CSNLj
+h5&Ta#Scnc?30SmG8=aECNlTIdRSU5d^R'XG\'@drJW/Cr,9q6a^LC,!#m)Z4H[A)YT[*dChP
+a:uC&]Vj^@7H!(>gDW=8igh^1o+%PX,4sQLpg^f]G["/VoL.sRs5.WfPP-+q0;hI[#Ncf:-6b
+R(pWbA-),JcZ4b!'4,)VMRnIU"5l6*G($G%TRR&s@c;I;]l9s/7c91+>79"@$Q^TsmF$r!k7p
+AC<CuYr3GlY6`0@!*<A%gV@E9#(3n`qM[_eH^gNupICZu`=Ze)K04T,aKL/o.BAR`0o1(-eFn
+I-`\(d3hqYLUS8NH%=iI4W83bgRq._*^cZ+mMY,"qAcV2A]\V^Uk2*9%fBQ78O@AlKZ;"M[N)
+i`*g%>pqCX%@">a)\amd`g<3<ilaKLSs^dcSCY&E-ddlOm#Ec%%u-8(?r"^q72a%t.#:H^aKM
+BLZXf)uYX83qJ]V9J0_kUmU&s)na4hV[<;$UO#I6Du5oNMmF/@XU38Z.;I9TE_Bi2?M_mO*(D
+RE-@B9V.N*gd=Hs[>.,[1`JK(=aPOblD^)W5PhT5iF4IBj4C2fP)%l//maM7hc$r2g9[D0Ub0
+nFTKW$hJ>FD)ID'l!K_1?'-&%/+j?ifLZ>^[7W%IUjB#AO\X+ketgraLfBi.@>23V#mu-'j&p
+aEUNkEHt7SCE>n(6di`rW.j9"\M=%T8A7DmK^`?RF_g,.eGf"O<I[Nb6h.^^>;16P>;0^@8JR
+@k1ho@b;0<:/'GnG#c!tR>V?Zd!U3G`jQSN'(">ouK%V5et^P?d-EN%aem5$NqZ:r`L2_u`5a
+g\Bj/Qsln@M+;l8ZlT:i1b>KUl5I7+;DC[9TGg3M*81Re@nuG#Ke1h=5dS?!TqII#rlGD1I0c
+,dL4b>`4'.VH=Z39HtR%K2ArQ6CRGCW#^,bCeL-B7!`Fk+c7E=r0*4ltr)-nG;9_I8q>UBgV*
+\'&V=uJ>no7Xc+YB#*i9OM08.=Q:l&tYBX^rj6Qk(0h(:YC+4,mCn^b0k+4$fJmm=\sC3n8[f
+J3IgPrEb]bOdK%J9Ot\J31(>pNI\VDP*Vm0/*`I6[%p?aJSg?Z:)e3.\APgF_=\\ebX`/YB4(
+Il7LSHYT`p(H.A8oJjh8o;@[eWAQ1h>g?ATM`SP:7SM)CSICp$+V&W3hPQq"bFE2$dBhC6.M0
+m'<iHd.@k6H#La*=9?6HsUL1W*'_pT@1-PrT.XCr!;jjo)*g`p&slne;37&9.!0-e]I'&f$'F
+Qho<qee%"[7Tcui#Y[,'a:f!]$BG&E4lD)o.GBbB[``o=Xl)g$<3+Jr9@#DSfZX\>F],BVdD.
+:u'7"WESd[sCj+rG%lf:fN:aE)U$(J??4U`XZ,-+TR,pIOf`#N1ir6K-2O&fE)C7kUKJ9^@f/
+U#BVkjdg=Ti`2P;s5[qd)G4`r&cB>QbimeM_sRQ(>G=d6pAS<cf^<FKC!2C7gX"6a7JsbCc6;
+EV$Ji5H9Z/+)aTQJMF>eKdRa<MW2;#pKj.9:&.^<;@&j+s)On.5OEZ0Ij3OfGi8"&gu%M",_7
+kVsZ4;;9P.^bs;%Wu%aHOIZP@bm.,,2FjqCn$@E[n&fC2Q`:*nNAa^04#\*@4:I<Mh41hoLl]
+YOEN,O8QO;;6[?478/"?l*$Y6X1T3u!Is1Nr*+uS!R3>>]=B5/*'CDkr4Ii[!LT"X[WI#QgUL
+&eZj:RJQEMH[e99Rqd_F8TE].:*#_KHV.kZ+QNs!hX[W6JDk>$:g0hG[_+*c:Y?JQU@[6^O+m
+$<\tLD4Yh[ACfGq`o<Y3WRfB7"bEoJctop<X[[?$kNZMV>t:5CKAgu3JNMM3N9asAK9kG0i=*
+O^MqEaR'-hhaW.Ad^^,qFuB5$>(j6[U^]=)*i[aQT;0n)#`HY1Ti:$d]d;;N$7/\EC.R,L=A[
+.pJ9;,hmm`?20c"EjF@h(o];JCO\<BnJq+7+c)j5T\qQm8i4hEM=ZZ)r!oH)^e0<B;:2NT;7C
+d]An:Lor-NAY2Ub;39>'Q&7*4G5?I-P3cCr'K;,+Sk.!3Kj_%qK;Q#_o-p'm-20+%(gNU<u4T
+QmPb,'%0^>o7A(0ZpnSWM@pm-V>tGJ@\&eG388H03Wq"#akl1M^srmVH$OV]i)1f!/l4:UZZ1
+'r`/B\48]?gZdM^)]:j55b.:c/DW3G*TG^G(1C[un$4[7/f'pn)7nIh@eMWeS&Q!d)^61PXbp
+J<9Au/1,AL@cJJ<6i4A>"4K^tI$C:e$JSg5<j#!?<QLt5g9Q);Ss4#<4DWF<]</oLO$qI1(s%
+!A'7?TrD1&$d,nTf<jNFEWpPKU!Z]=(N@*c_:W(_iUW[M3-JekUQm.8[*V7chfPZa1&Os$-OV
+'QT31J7odk`<J`6WWFaMDj@N^U!+q`a$@Ana/MZ]BKSD*B:+L;JDgm[=5uUtbhY^(b?f=o&c"
+4J]'@lue&ZXC9Pr=3ES3V,/eH%UOp\QRiZVS7q!IZlk3Hjm>UEWD.Gd6hQ%2#SlFa*@Jc^6'L
+:M2aT8#;`p.D9Pf][0,)(EidQSgSaUfh`K#F/uIH?m>(hIPNA"pU&F$<P8gfV4pY92qI(Lr.k
+\NAr#q`,b:='YF]7M*Z:hL^nj+U[SJD-D=Aaa<Lsk,n/7rD&Cnr:(2WJFL36>p?d%':LMC8\=
+EtLf]!EP5k@,jdU[?naL>JRCH5Bq8LdUrCCsX+F'5CH@Fp=9ecVE*ZCa]`P>/e?gZ>5&DhW-G
+)qr$CQdABrr!E%5OamG<n?Ln1>R$D4SoTmm'H[dZuc"/'A0N,;k!*?&.k9PYob!RedM8QjO-8
+"O7!N)XD@>7Jp!jo*i?'dl^3I-RHKJ[dUKs!iMlD`2CSTmieG&I=K<FT]/XkXpf#]nL[G<>EG
+'KAHAE5p:U\5e<XWLRs*i[8j\@feR(PnFId:PGmAl?)O]9m%i0k9U1bi9.p\,YLC4E[cC76Wi
+2tUglZYYbd7^7qSk=SH5P,.huWIOWVfu#a]Qk:P(Fq)[h([lcKN$<raV].bPc4Dp`0%\08ng,
+DonYhO/Z)#@MkZCJ0=0PD\90EGO9J7um1i'&tn<C=Ap*<>R2iqVhA70(+!m.TZ:"<gDBV->Va
+\`7`1e$^q(5A;t\mAQ?ph/Ws_PeMA_C[E>>$!s6pA+9C*-/cNOD7.,@LK"ofPT#t$--Qtq5K0
+cu6[0\G]]g_o`!$,A)di&]f&8g\kR'4>68DT$De2\#!@8toi"JH=27'=TcNW\p6C)r$S8p>B&
+Q*BP"A^Of3f3N#0^Wlto)r`K<j)Wed]\Nig*$#[fjFEg9(@`c=V:*)KCb"goY*DXgmUrlS_ce
+cUc</)iasi]WFT8P,FI[\UUjicF3ju$!B"o*e8f0j_-_XM/!1"1p"X:>+W==Xj.E6-We'VZs%
+bKXJ.tE6=4e+3u@LYY1"6U8;Gk1hW>_s*P\76>M"ueU9E<G%,SZW.8k0=mrOnlg<qGa!8+9(?
+5Zb6q2Gj,!,Zh#P'UkpcKS/L'q0n;Zr?EKFD5!iO:R]!0#J(6287o(%T^b+r/9Qd[\Bn#-G'n
+.b2)Iq<X3YWXb?3EK$""d%jq@_6[Ia]^>M!/-$!Ri#U\sTQ2#nuG:&dkuBI+`^4$;4KcYpXoQ
+QdOmh'7rWH7VK.j=dr2pM!lU1`eADPK4@EM=\W6p`'9Yh\n9sj(U5gO$C@XFafA\3AnBaoEf$
+2hcfAF.(V00Nd1a=5Hd+#4ln=&+[DA@FB!\YMNT8S'[8HZ<fZktOliU@W>RG^\^BTe&>lAECY
+.Aqm_$H7F:lIr[-j3`K'i85S>.?C&o@1_g!@"gH(;g4pqTD&Wr$5;Y]D9),Y*!od_j3<@PU"I
+QN/@W@LTW'aVbJ:1nF*C!'ftTG$l;cdb/HWJ0EnGfa.4@uO=k\3r@=\Wj\-N*Y\r2RX7`VAe(
+%I/>*Y1iZ(%"JV+\1^UHQR09UA,#5##JFLVZd7-0,J\6O_MR&jm2Y-<<`$P"&Eh-FEGp'#<#M
+?1p#mD'g_O0r,4h`jFeu2a//*qo>'kQ&RjPWKnC\$egbMU*iR>XqTf!$FMgV&.>C_-4L!mXQ@
+M^lsHk^:<3\T86tr4,dm,U9^Y4-a6h)R@`HW"?CqF#3_W#Qo?c-?C-Sesj-X%Te,(f/M+.`e"
+(2pp?q=X0#MgIZ<RAXZgKr"$Y=!L<k>KUJU6RL^``+*q*+_=GA'u!4T)OZU4V.Du`kb5N^iZg
+>Cm)4Fiel.X@*p:9b&a-#fe;I`D=dT[YXp;#pFh_PE^uU6E_jAe19+Pn+&ie([C0ttkr=SdU"
+#Hi8Br7bM4I$c(8HP:R\CtT<-Q%X0J#nO8#Eq"aML_5FMo1\LK%PQB6?[f2f9rW2n'c*%;3,1
+8TJI-Bc+chMpK7jfLd?36CZOAiWFNt^@s<VD[9_Vd-DC8C&Am9rg]e?0]Ii[I0\"@AoP-YaR+
+8`j-<f"/Rcs(/j^Fq1#a8f-hV5Z6$hrb@_)DVDs!uAUX;:**VXo#d1Q.0a6sZ4T_e3Rh;.b7o
+?1iD3Hh2PRh%D'<X6Li[F\qgV+d=q/%/nuSD$;W+sDkHqu_&ujIRXq%F%3DL_/Y@CX7I?nnNC
+8$otf'8DW8CPJN&-e4!mX2tDmgr?J-Ii\2"kg&=YWksZmuX!P[A`iT[T9<:1tEQ`o/(/(VUrK
+MK]BZZFrB7u7\RSG1\f8@V`Aa(R^`Iup.)E%5YH\AUJ9)!f=LqeUuouTqIX`jFdWHR]sWH9\8
+2>(\n!/D4DFUV%#SNp`pD%qJGS6_(U3-)$VMNnT)`tuW\Q0?/`D2cCon237)B5,t/FPZb8P6Z
+`5lua.#Z_=XdPhC?/b^L#>#\%f=;V<lMdS+qs?EpRQEjkG4.jUhhR"E9m4.M&jkhL0LQ<ABLO
+qRe-0_Au)I;B+O!3#&J9BAcndCQD_2su\rrA[3q2hEcPA=>F'0_-dBis(uR)bf[%41mXUZ9'*
+(:r(L64l%!#@b6YZFr[&0SM^JaNRmEs#;SHVhe7!E^/Ro2+PJYS-cdNm^7]bF[e[ZJ(pSjH1$
+;@=jaVu[kIDr\JO=c5fQBd"#F?L:f:Q8Q[?uat=?\Cf%=QL'cs1M$"a2+D.$@7ElF;IF(2<2+
+N(AJ6b9I2:37Gg_o&6,'+7=Z$>NUUl=aAH2UI]T'eEc\27cmD#7W:a7+2aj-R;>^O6Y0'$C%!
+?5c'kIsSue!uK$(dPWjO"h1`Z3E`3de&bnJ%P.5HC>]g:g&S>c+`k/E!H#F'EF8[hQ]0Wi.IR
+6<:L#h`TAhE'2W<6.XSl@6e#k!@$IKTt,`803ZS*-DFf\+OW,MhSNbn'nBWGBt3L9Z]<f4h-0
+7>3k^dg=P4Jq(stT4UlD2&hbuWLTfK!B-_Cn;$,+@3GZp$`//6o`mE,?k,\boFQpL;;E-J@06
+@D(au1I69AAFZ!LA,t$Z+06=42>UGe'>*?-1d:,>)d.d.#,uCD+aug_[2Q5`LZRW47o@!s8Lm
+(<upT0T%-)XAcWGJtXK/!^KK>p=n!ZG<VA$9T6&?]bEnsq66.GiBN6=N0#=IU*GTN0HNtA^lc
+4hOO",.MKgJk[>7"C&6L$>&0I\BE:bHdE9Q%a*FC@HIK)@B0e'Rni/eGK0#FI*CH9WujT\ge`
+#rkMNDs>1F!0EuJ1qm(MGe8(f=[T_SA%Mp&7)bF=i3Bic^-RPe9+k'":f.='inZa6&mG"%C;5
+SEUtRnnu*;5I`5j21k.L&G!*WS*j%V-/&qW!d6p-,8@[="@12&p3Ao2$9%YV1<#l[oT"knG':
+[Yk\GeP<dE!(BOqDqsW0\$^HW"Npoo,3_f^9M5Kq@%JZB=p;TPpn')&(3FaP$5=#G6^El%nsU
+\fm2T"FXdDFdiB]7D;A`XTh<ejoL!*_ScHL%(g;3)9g6Gb&C!)h]D*GK`]MA0k<-[2=#?_,ml
+'L<EBg^p9bm8os6M65*:UDhtT:LK>jqF)'l"eoX*T%;_D3)D*33E8$b#_cd9D+BR[b-;333b;A
+%'n4U(jE"BpBOJlS9d\Q&J9Piq+[=)6dC!t>)_T/j0-!$W(^.fMq8pMHL[L6j%?<KGj_n1tb#
+AfK_cCqVK6Fjf`^dRr^B].*;F5l94Q1kt_ED?ioV$m\oc$6uG[j4-1B7,K8\)dR_7[Rq`_@7.
+uLb6K2=-lPHh9L(12aPF!$2n(]K3+c8d4UoIrD(,>!W&&n8S;"2H%p,in5$GcUD%tN!1k%EKm
+#3nD`*^9o?g>#uR7^]eT4P+SKYV'7S(2'reo3+Mg]ROFLsRJ+bnG7Ao0F5'6lokHS)gd6WfhD
+N,,B,jOY_OR!LIMm[d)t`knQJ_d`]>.+=\#'#[k-S!e;%CXHs*R'p7OC@2!++WgJk%!5uCc@_
++TPYa7j9oSMIAEL[YefKa!8F"UJ1jY;/rfp%M]q5Y-oU>EfXiK=j3"sq]*)]Qls'Gti1qtm56
+/7]OdLu>&K)dI]K?.R.Kf=,gp0Bu*HY3'n%K4qp%XcVl:K8@]c-2a0r\DX/dMgk^`]d1dZUh9
+mn<XHEF?PU<Jqf&rp.MY6F6$lZ9(``H<5\-"cQ;>Y%2r'6]CV5OqU?EaD5A7Y=GJ`rB.;seKZ
+SJeKM`^Op0^(cR=?N3_WlZ'\?V[[-mDIt,&K$V,R*_fIfNe.O/PG(iMNKq`KM/`4LlVG86*#H
+e>0!f.IZ<;99/9p4(^ITr`eQFE0HkNhd"+i4n@eE4CkEJ`I1CH6<X7!NKu0i@!5M+HS'i;068
+<9A'HVIKC)oXp))*Ul%`KA3e;X*l,g,mA[-fR4^nl^SW)D#/]n<UmVemucN61D23k#qX33P]1
+o_D.4TueZtmFRojXPu0rMBFrgcD`1RqruTPn*QHNbOS?CfK8gnLOOnLkO%r!lE9B%gB_c;'GI
+T#r)08J\TF%e825ro!"^aWI5C?-c&"h<V1[RqrG!Za]%iO='5l96:s<%7\YZ%';HR^6%<O>g^
+=*0TW&R:a.]-?N.,AhMA-AX4.XZ.p"%s0!Bq)\+=4k[ISN#UmB2m+9'UMK_dHLHKrp!>%_\iF
+T#S'Aj`"&f9WBCO$r;,h&,dko\KD:.E3]M+Bg!:kidflpE>Wl&POF7nb=,[F%-kNXnELH].Q5
+GBbi?MTEnpHY04k.EO5e\>glpPM;]ehE*fJUpc@C]-qV$>01<\3nd0*4]\BUsi2E>$^R+sE2-
+>PW*?k`]].AXu\ZDlMS^I>0W1UPPB`=uA1D&rUV(!"OOoJ#PI-JfG5p^Ic8;C$sZ1Xq$&!kB$
+(h0V&9(UOE30=u6S]0=nMZDg@_GMO<kXd(hfVi<R>AV?XIAL\%QH"V&u3@U+_l-e>?@L&Sk37
+H3!AVZ7-)P4i0E$X*KV>`#t-Y^'iJ>QqWI8?M())bufEd%*scGH3QV4!IkJ$;ol#nbsoq6"Lr
+5V<n(;:%.3h[HC$f;0mWf+%DhTFj.L0p)jr*-'jc)j(e]7ku-J<OnfWAJ+WIG87RnsXp;HN4W
+%T:UoF\]`\#X'D6j>e;UNFnE&$im!k;$J$$:XukD%WqUK`jnC]_Ji163!Ufa%.r4!;/\^mo*3,
+%bp#_O$sVq,%.djZo5T"^f<MJDY-qmFV^[(15:LD<n0%8N.3@43/7de<'%E1^tcH2H>j[*c*l
+I>IhdV<J6n3(a(EfqR8fCj'OK95PIgE8*S-84;SPXYkXEm@u:aalL(I4@bZj4Xn=8"p2oJ6V6
+d9*1hJal.1tGKc_2/aZhML0</0B"$o<q;gWo'KaVD7,L&`!1*d[a!O+;Mf67X\2?61'1Q>VN'
+`A*%OT%=gL%W73;kp<,'NQ5%2@U^^T[+JD17E+uX+roP,:T'g*^ACPKrA8isN@(A6S5@'b%P0
+6APBf7P/U7@Oc8N-nMu?58jdV"WE2-N([VLl1UM:$PArW[B3C:eMgVSC*"lqHO@c%e'i7"8\d
+?KG\&Tqqd,=RIk?R=pW)@YWlkJrW@*4ABmD[K7QS.s8sqif2R$(o)K-6rSJ1=Wq&,j<tbI&Q*
+(]:bRZ;mIm>at6<X<dS11!NaPPk7hSOR;sj^),aCO\MPPX=T)'43:!lt/K,8^R[>A/[O4MrZg
+!9ZXntj$?rgE=NJ-Vco\*emi,d+1h=:#F&$U2Qg?otIqbHXeg%4tj1B':G]f8Aki:5YhMl.9e
+#>F;0g(3;[Bg#\&7IU\EjKS$jR+@5@7S#fa#a7ReIbJs0`4]1-`/8<b`FZ9T.'mtC'TNX8,7`
+ee;=5-eW#N=[+!0N4HZWL\ic9NhI')79Y5@:PaT8>sDjWDqS4mNcnmOFb"%R+6B:HFa"T;r:W
+Lm38pW%WY9q8(T>fN?MO4K-<(DB6]Y=%_O"\('!*nst\Xg?S)VaDc7DJm\LBD%jG=nap?gY+s
+*7]13?5i6]]DfcT/D$27\'&2Y%C4Y"cQ,S`BFDl-a_`(bj!EBS`ds<65?QamPC.-4,*o`ggOA
+=ABm%VcD[-g><&EeS(.,e(]?JM0KR@_b1-MJD^U$u:HdWSh'aZ*'SW7<&EjcGiA@`bfT*?\\/
+SI/4uCirq^VD,Q?Y\qN;1^-B_Jr;+BjIdj,rd2pmBjYT(!-TnoppsR5;V*_jU;:s&eXL9\/2i
+u/WXT/T:PU:Y5T4-2nY/kc0>q%"Tufu@j,H\X[`?&@g[a9`%j7k=BEif:Y!*(H,p5Y;ijpIQ-
+-F&_dB]JBF+@.:\;0k3%Gl(@+5sJrH'3%r,dGN_C];C=c2a`d%CXu4;qfOV[bW)$1G+HsS*5@
+C)oJ9D(N6R=P-MFM"?X2d[^fYMTs9u%RiY%*N>n4W=!,DE2,bn_Wgle0#uhtl6%.ML%7u!<8<
+Gej<8V!:HbZIP[kbnYHPll_7Sa%+)r/QJ5cOj0H/c+'")qu^j?^':Fbd=_f"DDN0o+NNAP2][
+;m[0cU.!P_=F,dmE2d`6PLP952kLZiOt\I#PcnO^TZpR-\ZE<*`@=.8XM@WPe*4Sc2Vf%KV+h
+&[,-am-lTDu;WD+\]^I5K:*pW^(/?U=?p7*LeI=#OO-kD[m@3Y"96TPeR%jWYDrbXtJLD/dRG
+qIKWEi?c>W/to?<K:Jn6A8(bM>^f4"aA"126^X<fWUEop=r@Zi8V)DFPeegl'/0$92!Nji"1E
+A(Rd;5-:RnoX3h;C-;V*.X!1)0C&LEB>M2$Sm,HSWh-ELoXQA6VSY+1j(jmS)U)?3>L:Rer/[
+m7iDXA235eSr6F.(`L<9ib,qiauVlH$%KS-R\Oe#)GtKE,o!1MeE?'Me!slXm]s=LH/?bLf@U
+9^J/!6kJWa<u%`"m<Xtj'$>^'I-hMV->aeLDFBTp)lWpgJt94Jh+,4EK&EADgdbn@4r^dsUpI
+iHclU;Y0O]s#2;0\.:tb8GW^S`0I^7+gMe5`U;)ZDu@qe#qc7o$lN`>jk\I,BSOKa$K1"P33_
+9;c7$#hR53I?8i'ic^[s(J"BgSMlU;eWVM#X2H9;<qn_RVPj[>(;PAfs_-Rc.4\d3-T%ok.^9
+V-?n6r^/D,5o,5DL$-KgS&D.h(p8'HL4tXtiqfTWk62fY3,`h?K-Uh1ENOfIqgXHJP@/8Gh55
+L`Q.,F-R=`IMA2`C&mRq`+G3X&*\V[oW\BtiJCs4\?jmA%$n^>XUQDT;p,$J/aBOnN71Iofto
+oL&5$_Z'Xc.FB0bFjM=B;)mpTJ<k3&KPi"q:j@%-f=1Gd*R;)I`!?P:IZP7D?ml30m'`j%<82
+ra'QdpQphm8B_F:\mCE:-'aB\Kn*DQ4JE=(SsG$qLXQ3OQ2C[8tpT@c=K)d_N;e[Welp8CG[j
+09gU7]P[1VVN%aC:dXM_,agA;NW<u'1J"Cnl>;956*''m9AV090#s#>^?G:dH!:n-1^g8#0>m
+s:mE!djX/EIpfY]_-j[^EH\NM^#A3A/U]I$%Cn4fbZ_)0BK^Ahtf0hH.<a'<3jLOA]M-(%Qn.
+?O&E<YV[Y*bG;b]5*E6oS0C(o9=*X`<FRFtFZVq5tZL0.e`oj.tOj9KK^.#4lR[,d(mT<n>Lo
+1_l,:=Ws?MrU+q1H$mU.r*W_I&onNF.K"kJ>il4`)(Ak>+:F1GDHWggSAJ]1mFcg9-&l:-ARI
+8)9!^lX[-*jT?U1+`Re4"@kmXP9a\6IiTQ]9$9F3=_7Wg6O@DRmNqU/Z`n`=)aD;WrllmJfI(
+7Tdt=EN[V1STkHZ1):<BRA8j$Y/1*L![qV-H0<T.J@I3.JAFfdR7&mL>D,;*`P-i7!a?GIW3O
+:lsH7`VdenI^6FNn"?noQCgo)[RObYT"ZH=r(1.sMQU#:6Q-OYP[e.*_Z%!?6.-KDa>#>Gs75
+rA`9NJS>\_jKFPuM8:0Fu]j.nESA\pIQ^VO*"V#EE#F!"@MB%obm01mXB^SHcO=+tp8mMQ@a)
+:_mDtd;4Q/G7^"(]utN4'T4X4iFErC4@]:O2@t<B_%RKZpD<`S1Z/d@W<?lIU8F,ndLBnHp+8
+>KjX0!He5R/S=**s9S>NL:hnj)a;#3+[RCTM2ZeohW0/(7V(=)tCm!qI[e]>Y)CJ7[%UDqqn5
+]?7NRXtN6+kgJ`K(Xck<=LnLC9)L8HS[1B`]b#0#=]@@ZOE]Vih2P,E5qhh-VTrViNF.1\5#`
+fp]rb"N,4WCLIqZsEr#coDnsN(g%J;e^X@sZl!UG9^uR9_!_"jV<LIs[@$g)k"kH--CtGu<7E
+BG"TCM2]SasRn%2b!n"Q4%fVGJd.:C#GNDD"mYM4an`6Kh"]QCtQHja<n_e`c3G`O(.ariqB#
+YU&-4Dm#c_8n6Qt!K(b6Ctr*KX$<"$Or2KcSZqM-!Nl3R8so8<I4Tj6gd;:g[\@IM/]JrNEk3
+=(k*%d0`L)ncMbGosI8'D.esB&S>=<3K-SZ(kX>c$u*nqpGkHqC,7Et+/r,dk_CTj4Km6,ZVX
+O3R+`fV:)m7q\tMt<%JH,=[IU1J>jD?0C^>6$3[;NXQWPCZ;<6K,&dNYq%J_)KR=XXu[3RF'H
+5pAe8:4]**)W?Z_H&2p)PkMns3-&JB<6Q@<"75s:G;if-W>DCUM@WduJbPK;rM0%^I;fC?crX
+L[a(*r<=WnSE`(A"lW:9uiGK^]hBHeS2^7e/unaUE5ZJ$SZj>(oWar27_27,DB\=#h`X_<\%k
+kCr`+-qg7F"]]l=4p8AtAY+I%]3KCK2k:rDojFcIZ+"[gYVgVmr]%kO9bA(6T)maOrR9qi%n1
+ma<M+-`d)?TE+qpVfQ0lg`gb4O%j2m_J1@'8SiWT9@0OacX4+9ZDEqf?sJfe*+cnWt9=GQ]_h
+26P\QH5M"Tud^nBqg_tfW)K$l%,;qZfu\SmiLIV2>!Rf`6SG=%.LXRU*g:$X*G%PTBK7;2C%t
+6SOQADiD9mRUX/`"KX/cjMd_T;EF\,SNn&=8l,5btB/+%3L`S/fV_5>+k0CkA>*Ce7*09!VkN
+9?X-l_mHL'/jq7%B@A(G6GD^UZrk3KE>oU5TR.\5\(-[pnmbq?L,MLX6@WK]omY1L%^Y<Jp%8
+i#pX+CN_ih]EG^W8//G&4,dR7LO'Z'Ok:;;aYpV[dB)Lj83?$]FKmtV]/+Z+Q7<h_<R,imMoe
+Ak]^:ps;tXWr$.[Dem/C4;FK@qKf:j=t<f>:1Zcr4uOOQc)Ra>GS:I@<Y;I?pJqiol#H?)VS`
+hOUo"jQ\t;G<9909Oma_H]L>a7_j6?$jCN`"]rm1(<NE;[966BO<f--`FiH\?C4sgeqCUhU&`
+RZQ3qohWqfM,Z[`t\rain8qsT^,c7@^M.2N&LA"jd%2G=JS;2ttl8$0&7Gst)-RFq0boT%`l6
+H_OUDn"_XW/:j+0+mNI#-^U5k;aji5=(MP*_el9@8e<MVZJObP?$7It@(?F*u/tB^B]RrR>_'
+Z(>DFO5b!rO/RM!E88Ss>i5u_iI1k(h="-E%f++6>$)9nrTf-BE'9rVFG\CGEM<"X1KehROpG
+QnTNr/P7OJZ0MGU9U4k6VMlOa%fH_EH&Z6Z+oFJ,:FcPuX3q=L>,&#22f4]1r,3X[C]d;PKb$
+=aAp7=%.]i-`#g^"C$.h;-r%ODjsn21B_XpjTK[eU.1Z8+Mr^0:qUm2P9GEbcqS^)D?g>o>>t
+T;O??Hq49o?@08C<b<1=+\I*Ap1)u\^\hM?@JskHJb9aTc%qcB\8V064;s<Se0nEFRYo5m37P
+iPc[#i`>nOYqMZM%1i[_6#T$g9:Y-Un"+!LY@VLpU_UM@I5&85!'4S4<U;JsJ(^rq>c`YEd<b
+Sj'os5B#plrlHJ%T6u2_EN;LJgTU`]O'=0gdhc7K+[7$_GkuI+"aRY*/J@XF+ErU-=;*<CBXX
+'E$^r-.U4S4&n$hk/AEKhU3u>0g1u*o'.U%0Jp*f#sAoDM2GVd/_9>K<"X?p4[CYdd.7HZ*^W
+T+*Y;W()Ek+PC!?OFO^#A\Bh0tH`80:q#MNBdXB;uV"_8c,#BcfKnrT'A-*g=Poice!g<QhNZ
+[.dLQbK,:17ac?V@-[e_7^K&[c`S')44!5n4$3kD=&[E)bVl-gE=IAnHe0h1o/,;UY-+7MWWF
+t.rfjc^Di-6[pjB5V94t8MAo*T9M.fSBgmsg<icZ;nSSRA$?'."Eoh:(@.h'?f/>'pY=gO3p\
+H2@2TO:IKX8Y4rhoQ_K\'*KNj)dRBIa@a..ds$2+Ia/=,*2,6grTZD8Oh\VZr`kcjs,D6koW>
+SunY+:DNiR.=\Y!EIh*'H)4[l:$?p$Et.SRG1BL72(M&D['1">BR.&gnJZ1!pEISAm3N9n0OW
+2SbH=3Gl]3)T=?pm\lF27;=8'IY3PTBpe/:SA6>$+EM2PBp,jP^T^o%N<NK:Q6a`lNt,O./a!
+sdSspHR[XB*DkWl/Y7Y&Y01Kef+8KAN*>$u^r"M1sh^iCkbW@rsE?iBRC5)l.N&a%o78D97*A
+?s"f/#ZPjHXRei0SePPWQSb<KBs0a8;(m9ubP:eL(J0Ln=Op"PjTk,n8u&kO4I@T%iMt#oSl"
+C]$Xsq:[G5V#=K#IA[l7$?7HE%%"S)Z0$D*h^Y7u3Y`Q\Xe58kQ&%$=$R7XTi(fUNDil!+=l4
+lIIe!)%@O`eis645#X?;8U?!(n6%WGp0\QQ.<S/b$VO3hJG(+e&$TV?o99&0ADd$YWNOZU\3'
+87E'H9"D`WD6Ah;IA>,O6XiW%Nn&J^__/3cc<fA]lNkbql*lYl_?On]1$aH/Ed_*RT=+,RoV2
+75R/d2^/,7><];1`Vm1OA*+o:t_4!K9Y&$jbg@=^_$W7l=)2ftL3YqCj8JZ@ql,7bn+j^6&;g
+@_fd+W22;<[>B3)dO"\[nWdlL:4'p&V]"RP04]F`1OVbQFPgT<dn4[:\pcra48o.$),eF1Ota
+`ZTri0BAl'n-Q$DG@-N2hOfhX_-c+!E4R+IMY9">f5l3^Y*KDlrIE^"Vs2JP)oP^X5rP!86GM
+??q=,l,`C9_`/5.qbRdg<+It-+=8q.mfOQV]*Gr16$lc,oEeo4o/#UckN,o[E!?&j)6madYMD
+K+`cW9P!,lP2PjnLs%q;a-kEVr^c&QGqAZ%`^cHoSBe+G48/>hAq)qRP$M_b6+\%(O,k_>JTA
+BTO8SJQb3(ZK2Cq!iT9Bl@MoZrm\37+X)>\BSs%#4*iI'ETig6j@'=,FK_:s"=hMC<VDR&W]&
+;<j1iCXuq5QS?S?<1mj8;ZZc3q$J?Q8s(Vk^6V;/WmS=R@QCPD43j\\2=Io/NLdH,[^>O%/^M
+b1t4[Eh=OWbsN6:FH1bV(lnk\eVAL8oSqDjS[Loe!+!e^b"J/'GH(r+T<=4Yaa:W]]QHdNYis
+oZ?\lGe41)\+>ZBt2lGB+)Lq,`A,^Z2No>BhB?.\>d-UWt189Z]t04baXiN4ZNB's3/K_2Po#
+E:1p042GXs20/rK_XtY57q_W,sTMdOnbS23*k*Q.Z7&A@Ee7p`a8Y4Mrq-;2eMi8BOI8C#!^p
+f4d4Imj/ZVs(7h9&q[tKckM+0VjLYuQrtW81)!,^dP)@m"<?'N\)V^cLggO0C0K\himGo/q([
++XY:5&l7h[(0SWN/Gpg7loBj$h;nF?kO#\Xin-m'DTO>518?cdPOO9T.h^/-jcBNsgFu@HqHK
+\pc/o.biF[XMnXm^dcShQVX3shtm2I!u\X2*V7<b+J/&a&;A_kh2Bki=bHO6e6f\j4;82TdHu
+jY>dCP!dck`=8$u4m;Ca!=VOVa_:8fM'+pUDHkp,PkJNTG5&o!.p*Y*_+7g=:"/G+Q5GVVu]$
+"[s,JBanq&/TTl`q]5k>2jJZ=s;!15&`Tn-\WLg$AXOt_bR$(@_N47?.WXJ,lYpEioJg./jf?
+omE$A%L-"[T*=g\,OWLZ$.;=f>S=LUZknEk`OjRqV$"<mj2uNG!qEh,4XS;REZ?4cCoolquW"
+qJhdlb.(/6%PtLc.Dd/jam"p7kWV:2>uY_j>Dl:Ys)"U'7_,)kdsp9>[T>)?g*qV@"O@O7Gdi
+a./9DSeiT(Bn6[,;]%jLfA@Vj@.Dd(b+]OqhX:AXi_LRi6I!l,^O?'5=Gc#5YS0e4e[i]db2G
+0O2tNBF]75sDg?d[>Vsf/]F^49nV`)end2$Z(02Q3P5hqQQa>_SamDA,!%cKa?_$s?%[DYdl:
+jKO;M_1#e1+`?BmA@'U.1.(/9m6B@nFZ8@r%uV.?#ju-oeE#/Noa'gIMXV3V[GN%qNtLumJKW
+Q^W"]Ci[XS+(2_NTdHFWOc!7[5Pl!$[F@>Vjl,F9`SdUbEF2jtRUZl35n,8hK:.7Y3p]KeaEq
+$PCj-0S.3::7tGNJ:KH<r%bb&AmA8LIPRGPgLR(T2F?ftG'?KQi/dE>,5$(JdH*rV,($\#7[h
+PIqqJ?#n?Ndek6Ef])FZf2(Nn?"3nue+DS1,Wsagf9-dO(p?_dmb4!\Ts&#b]43n:)#WFRj9k
+^UC46k$?(L93*WP$j^7MfR/8LGAM%(@G6t4^o:"s^(V#Q*-RHS2T+1*CL\UX^,K<=cgcupW("
+UZY<foA"shk6bG3j@p7<$a*uj+;XWa$.gj/gX/%]C"=TR/u$CZ9B[n+4!+EI,B"F@YtQ2TS2D
+0UI4GLo-p1_'?oPAS4'@XYCE&##Hf6qiU5#Y0$'$0BPVNV?'lsI!P&5)+m$[8_+P_$e!K-^Sh
+%mqX4A,]e_9Ws:<#I-I0*A$!e<341k#T74KBDRd&k,B+^74.;o"Vb&KFV7ri[(ee(f^NJ?em#
+4'@`qn)L<uI[LH4H&3?ImIUC'JP?,GQ(,Mh2eGm05jgc/X&OsAb_]]GmIbT':(u^Y]\h3Q.`&
+O@[!M=S=95U>W0Aip/>O+O=E&?1jc`jgX-VU)Wsd+f?]$\?P[R2gM@?m&>pkF`ML__XPL)+L5
+iRD&]L^T1m8E\W7)=8LZ[AeFdcdm_9.BBE/hWS^i0_tCDV@&T$hTX-k+=s(o]'?d'f7JA,QS\
+[r)3W6FF*Mq`S`*8M@"7e7nN/Jr)^\W<9XUmW%$$u;FD_k(8&i+h1P]LRg(hCpu$ssI6=,t8e
+4JdK$'^p))Ql>\aEO593+AthIRU0SF@jVhq^teA.5*+Qi2KY-8cYe"j4/o,V6g*Fk9c&bU1B"
+ef5lK6`Ub;(26ba<UBWh25LsG^e;Y1U3V0&BmPd?e\%<l?$]CToPJThVZ]*ho6X6C*`!rWYIQ
+7t<-jiO`]qeQr/!XRL7lu2/5-R.D_W*FE7f^4q.2Fu<\Ak9pBUYmS^4@D%hjO_*`R-MjE9o<.
+$N>,E,^Xe88%cBp6il,_S3!"s!EPb3E1dM]Ga,jK:VbSGs<bVhMcGaE.@t+Asra3?jW\;4_]J
+PVfG68ML$ahaTPLAN+c@m0iCS9p%"KShuRG=U.g!S8[rWP?ptA.oI$E^*TdRuGNpbWl-7-d-)
+YBoV[rk,.;Y9%pqe,srU;@$LmpE#_DFF^55lQ%E-MFM5Ci*=%Lt.@+\SZP"MF@N:#kKq+dEE7
+Ah`Z_B#Oe]$8h:_`1B-qpg?@H2Ec\)24_s06;ctXF:%ka8kj/W,L7;;>sFifVUmb.EDE(3SPR
+(#Vf>8`[>!0nV4&N"2SGWm!2E9f2I])(@eX,QaJ^4L"sbc/V*]T?MUm*jbWr#$W)P:fM($oQ(
+[.]U81C:Y-Tc76]3!H(*RI;t!3P]h?Au?IOIuS_<h3[?.b[!4j5tpt4B.7a>(kqFmk4cXl:72
+WFIRUP&**DNj+HuGI.?`TH-f7^TAE9Er#u,1d(Z7:,7(qur0n`UQ+Lr_M_:\;c-M.*3@F>E[Z
+KIgEE(8(;)^\X;jB[pWWG`#"9S(/arpgp:SC(qm\TSuY7qMJ^<;S`f]^<rb^E*2Q8MOk]P(6O
+[?'F*ngCO^/edE!VWEK1s*TI+h^s:brZ5hlbg%SQm\rAi`D^KR3-fjCF%r)Nf\A^h9K&_p8CS
+oGA515;eF-.*1D3"48#LI[drL,TFEVbNH8PW9A#SVO-FaoAJ^h>^:]ERa>faSUO$i7@K5#:M!
+PPFJI\-*?b92TOiqJdZo0.[bpG"Xd@5@^Y=NGq96WVJqM_\N#0ALSRNT`$`R)9FIK5I/,HRo4
+n8j/d5B^L&c"YU%+W!+Zf&YEo]k.a=Dn")U=4a2;hTrj$WHN(+T''4^0e=VF]:):Qkk>a8bS,
+=!KVp:38:6%^)auGO4NOIo/-`8?SYs($(h<BdfVFXuC?0pLfSa5pHZp@Ze9:JV'Gt0kk*$ZjQ
+j"lWgI!0gF/huR3o.E-$\i32[ZWJ*A>HJN`5<scLk]!-[YmhfZPT#;EW#%0^VlESj7CK#?\rm
+k$I+%4S@]5OdXBW?&O\22!`,<'UjuGZ0o0b+kiESW4/mQ?cMpe4CL[rQJcMaZNLlICHMf-i_4
+6P"PmN@;Ib$Tn*%[S5N2k'c?o:M,%FW*((>u3fs>d37>eL4ih&Qm\R<%+0/<`lW`J9D`(<3qr
+lTYKBfjl"d"i`e)GP:?l<i;g3Ue,L;crpAG)4>)+kPQXA(DWDH7C&mKaWW2VRaWjY4#]t)00A
+_8_T73UM1'e[$3cn\.([tY=LKp@%9]1S$,'28)/0\3Y]GJf[\#$qmV`(24Re)S=i5_$6$t-7:
+;i?#D]"(2Cp#Z+KbNaf,5U*Um+,*bJ*2[CX/Os61Ia;D.F_k>C<B@cW"-P?/gU9i%ReAKB/mk
+jNC%nNZ=5W\BX%eG&QI.%H!HAjpo\``.k>t)T69=,"XDAqY1c?I$%jJ5>r5Y9@:PT0/":e>a=
+-e6.Ia<#]?l[OqEqmP'U84Up;(4B]`&p\h$ZB6Sqc&c/iU,4W+VQj!8GVb^UMG-ql1\&K-C/"
+99[m2/?d:7L5Ol0aFTd39pZh#+(?6(hj)>X>o^+N&5ohe=q4q=>St+8_2Uq(&Qfh*:nr9&1hr
+l^sJPB`T(IGX@?.S;g$'s%DgILrCCKfG1r(j4mOsk^]5#u;7T;jriken4G*sN*6"lJhZ`bi7@
+ka>m6U'$EEGrRjX2cU>O4_bZkB]]L`TQ*Y]0n@'.lO-shO+L"S%-MJ0^hNO4't9F.6nNNPHWK
+"WQcj&TdQcTl_AQ?bVAMR^RSGK!QUq$[o08_EYAi?/[[1QS%gJ*#&?R:>Z9;H*4CrS9;?FPA0
+)r2Wcltp*=ous8/TQ:*oKMSb%>!&6&T_D"W`@nTd7?-5$e.G'Ta;,AAtFsu#"!q@FiH$PMruI
+GrtXZ/`[e4I^EftFfco%P98:Mm^hNNj.8Y`O8ip8gURK0DRre0h[@@'VbS4[PLZ#I0@&W_8p-
+nsYq==p[/lSK`e@duR:'E8&DKetCZ"l:3Go^e=W2n:mlWR=l!_?,/N#u;k89N,A>-thp8=&l>
+60W+8G&.SQbBJ%g9ih%0GEM4C?NcR/ad8<ASTgWKqm6=_\oZ3#h'2&%OJ*R+DSU/D&1?<$1"@
+i.Z2Q#h?t3F!VM00=!W[AkhXkE"60"qqFIJ>lB$'WfrL6h_m92kmpA$f-3Ss<>J#sGtcdCk[9
+AKF66&iXHW5S[]bh9=?-RpK^D=<:QMEQ>`j/NWU+c7@I>8HX^l]hUODGZR3mHTjXkO0uXe%./
+L]rpjj;UR+3;n6X$Cd$Atn\]6/XS7b@]tNGhf!F8A/=p;qRTTIUYhf>N3n2aCSqWc')KFX"Ki
+Oj&*+<nh'@ZsPPpl6i;DV="1JS*SN;tV0f&;"]*r`&&%cAgG/r9+2TZ+6^2/n5l?.Z65i1S8-
+^:E-;D9uL_N7n(IpWC;;%9siTV=f7U[CLXFSH$/^^RI4654X$Q;R4KkgpL#pm%`SeIC8h38pM
+/,gFW?@0T#4I\(@+YKd8jIW$J(Op\C'tcZcSm7R=4W'9beIo9rh5OuKe447%I?bbM.8_XK6j2
+AR?A^eH3U`1PJOc?)W=o(me(:-O0ukDLUjH/I`L_5s0eOWK()CKfFrn;s.*J\cqX\`qp$36T)
+mqeYrE5`'qQfDOr(T7#jk5[JX<;L/_BZeTZ,Ic3Qm;$RWb/SA")[u*=ms5AWR;NfI%HuNuZIs
+CR:A4Y:eZO09?=\W<*oiE;j@:hOe=r->`Gd$D);$qHfg8j@MPiB6\J"ndIl]SD62/9#f<C((.
+<EU#I<>?,lOIo+.cn&T3J[V^ufW;>pX6/*;lXd.Ug=CFh2Odk^r$h5C5m$DKm=TKVZe8%42Rt
+biC(t)FSX'.;B>sI&`bVa*Yb;4S5a05<<aN#WVR=YV=lH*7l.hI13c7Jaan+Qfi1+5FCfLdA;
+RYf>MSC/K^9.KjXg;O^O_;3m<X@&((>Q-m\@#=Up.;.;)c$'Kq_^@$>$4:>pE@:6lnX_e'uJ2
+""+,c*Re*.5^Nr%5=gYJ#+1@kR_#V',1lOk$?l1?b'9$:7A#RGF`^!uIMqk@VcBV%G5+0Iobp
+9X6h*6XK/Ztc@C#(c@M\a[JcW?jN??*9kg8o+GcGmoIY+DTDM0`%*7<5]K^UKj%s%b8UA<Zb&
+Ip_TCMg[Kuhlg_@'oI`aZC3fg4]Y\@P^4Oe:BM;6lg(R,[b)JM]%Lu"Trf'La>Rj7!^#9"el(
+.[U4JoJ'm4iVE$OHr7``"]rcPF>n^.5U,L#s2%hs._8>AQRkD6jc8U(2COHakT2%3lC>$K:JB
+<Q[I[sqgU(&]FW3FHJPa`;QB%dBBrq-$V;roq'WC9#S)p,d302`j*>^l[Gm`uDZUB&@`[^rFT
+lq?(Y>)sW;T/'a4MNfRr_iikUalTL7LXT\@*m`)Kc3+*^s[>Zd.B$l4C:h/l:EmeMt,KCpiWb
+Cq]H]I$MFjakdF&Dg8*[N]8kBZT^pk;o8DSj?D[%C(B(:tt.k3AsOGtj:nq+=VrQNVH=N?\I+
+<fmm6Z)/3#etpYQPJ10qlseeaR#.d7T?VbNTPFGjeWJF+n-X_]h%HPnd;ukNq/Ff,%G&$EJGu
+0tMPsZ:i4eMbX7O(4<L8.Y9/2Z46_c]K+i?ico[m/jLVp#e`0_Te?pd'uEu-.HZ1rId_B>XM$
+S[?mq@Z4t]/3KHenL4"N)/tC.m/]e(KaHVGRQQ+ZQ7JKDZU`)!L'Ac_9ELnfQ7"PD#n"qVH9n
+`>uu,PL;pZCk7ji,$.hlh)akG?A'2h,UWi_=_c#gXccqh<\)X%FFW\6K\sH,iAkn\b8UFKrlb
+<$_T?&+RjEbrYjT+m3IJ$N]8!qp?ED]Zl5%5=f:cB.:S)dA7>PkgNho;cc,f'VYKuP0P0g/E+
+dlptu"V%te>f?$:#"q]nY:m9.d9Z@]Y+%8S]l`ENfomW:Eu>6>B%<s44S]!AZ<!1BJ9/5.=7@
+[o_,9a%]iJcWJuQII'2e!f-r";Zs4W;Qe\+o,IWteEbkd#hb]>*Y0,q-"2fW%<_]2&^^upoa_
+>(<Y\N9q3[%l'^W_'#Qoh9?9.[@XoRBf"%B(3,MXm;AM.WOiCFXidS3tj/RbGpOXl(4RuAZ9d
+'2HqEA[6%<&Xj1;C/$1[0VdKtkZ+3Ad=PrSC&<.%EZGr%)aTQpjV01%9X*%?`$Qd4iHoGrU%L
+*9>oK':LBV)0U/.$XNobHh/]I-n&@Baqeg9^8);PuaOFc?YEcJ.&k,rhQ+f73tG"$:$D,7;YZ
+?Ctjtg*GFGdLe0@b_`Hh+C"j:(b@T@$iXlf=],LX`YXhUCQ;0A*dpZUN:@c!/S(->F!AZ?G9'
+HWrffRXNB6MW5B3aVa1Ed%B"#LH:>[LlWJ'i1b^:=(Ylc)I$:aai'W)M<;iS9"1%;%[@meObq
+Xg?C]l3L5;otA'6=n_*aCaH;-(3:1R)?Leg0KsrR\qRJ5^52_9_?6+@M[u7p\.jI"#>7+`Q)4
+U?PZ&2MWijs(^W9G7Ed9VrWjgBYs]82g+*#nUpD[G&l>;@H;X\@3HAEV[T"(e.:^X4`lV>$)>
+ku(ON"R,)I#ncfP70SB$F%)JZ-n&@&[9U:-HCd@h'tX\o-jV5K29`;F4SZCAr5PdY1,T82`o0
+eMi%=Pe20Rju=Ok-8&5KXAm7V-`5><?7!o5:UmEnNb0"ACA4f6DI<&KceF7%=t-VL!]S'>5^\
+-[ZuB]6_dOn`$.r-]Nn@L$H=rN[@*:>]K0<o3"CFc7Rc@Dq`$l29<4qVI\3,Yl&_BUnr/8Tfb
+8UiC$UuMe1mq*j\7A3+#m60=Y%/cSKXMiFRnD]_Q$c?OeAJgd&bB/#1<(Fma!i3/L$Us9*OP=
+G1XhV)$5$GGn2$X?[$3CN;8O#NPrO'g8nYG*JG.mNfjk_!;P]c-_lg$5l*Ss^33V_^<5Y[J79
+%6I)5`\Xkt%(o:P>G'"gp)Sj8]1/1MrO'Mq\K2UN3siMWKYTBCQS?aN%Iuer7WcGeSELH-qkO
+,\Y>fYlicF9\L>]i:W3&UD*r/!EVkQ.N?NpbIA`1=CWS_[$l8?Hpp[OiWR/'RG"!_V&]$3+b)
+Mj3?YM`8nmCKpgdnE5^G>aH\l=2Z\C9tp[7k7[/()bmN&b[FE1E!aCP*KIueuE()0X`cjaH!8
+<,[hjoWVZ+@N(=:)i!%Jj)QWXLWn%a(8.\"f[0s`MLWje;76s>Ydp@*M8<E!:'?R\H'@:A<@S
+Q+fRcI's&EU=6VE`K[knAO/sSok!!UpXiLc-92gBoAGKNC6<k!3bf.BeU$a(`BEW,!dBG3f\C
+WQp'IAtfO$W'5DU;$"X=5ik!<"k$H3hm24a(kK=jil:=%6Me]oC3k6Wt>bj*A[57>I9SRX#.S
+m+q=4e=QqX)"u/eT"%f`%*90W@5.hD"do['N;."\RGYsCD5'WfhZD37(PJ0k8"@@S$k<&d#2^
+K*MhZ[QhBrrUGd4j?UtlijiI5_mBLisJZ7=8`7cq>jJ<76-G/<&s#7t3l].hEES"^^8'GH:BK
+4g)ilGKsB$?/iKjs%LpoDdU$Yu`3T(eK#<iFb1=]V9e@(MED&&o+6Nc_Je!in;*XUL<Ni4S@m
+O^R`NocK)_Q=3*\(`=Ngrb"L%D]E4a2E[jJd`C\CqU/LoKaU!Ra#kP5Va%7/X2&IOp!,E`4'(
+_(QJghpL@?ZkFNhSb7b\p*BX<_%TU14_%0$!e:,5Vm%aiFf^JnFelOm`H`s88OrC7871,;+9&
+[e&XKAc9&F,qEW\_R6hN%55N/@&$SS001f'Knc#e=TQEr.r5*E^\H8)*=b5'1!VfeQj=ZKnc`
+Pk=[VFG$B7QmPg"5c,,uNmWBUT]T\VB#kG]kOqrF[f7qoniAYpp%h-"(5E$JG9#Sm7M>/WN<+
+nD*<J*oF','0M[3@?U;i3GmIeMk=#:Wd=Zd%VDfCJs"i52(>22`o',!-N'eb>kA2/;9Ia_JHo
+5f+r)`89K(+m#(qLoKf/mIK,KQPaICsY(K;?AE-_p6l,3$<0YXNaa&pP8LT)qd=6HF*]eKEaA
+:.%N2O[[l*5oK\c"4Yl(]Pr4MRD;AF^'<-KL'&>"h*`7ei-+"R!OaOHH>e&K+ND=Q2d>,JBfR
+9!P;b^sn6Sf@:Bu2V\J$&l$@93V/*ps8!gaRt(.5F/QoKV>o!+Sc=Ti2Gl*i)Vq=(Vj(N:NEh
+M0OX<6kVU84.N,.GN0$#@hd3bYeZ/%es88r[L\^.\_jjE>fX<BMK088'!^NaQP!Mh=<Y"+X8T
+Yo/J/2T+jNjC"nZY#81_+4>YM-l'A$<:P"_TjoXe"-Pd]#L*b_&WO'1Zp[4W66Pm4t6$j62DV
+CRh!jePt2LeSG>80k<JA%*,f^t;Sb\i&`-sfo1.59P7Gk%X@^?5-U/t]5Y4KQlL\AX=e@K3+r
+6GqPU($8Qqa;h?`&U'2jQX-\p5r'WhG*/C)Aa/J9r4qXE6ecIju>"3Y#*lTi,jH+u_bW,f<m6
+7<Y4^0@8)oQk^*=\qh4VR,Jp.5S;%SKapl'*43"r$I\ebs#Uu`K%\M*IHS%#<ut-C:j8!#]Wp
+GN],TQnmN&qDP6@B9SE;G1.(/5C1^bcR%cce,J@&*%/TJOu-]o]e08YDLO/aZ$d\J-%*JpIJn
+I]qa_Mq:=Dkod,&6_u2C$R)/Mj-5bG)g:/9(rpsASFI9"QQ)BpbW.FM`?4[-RjZ.V4'=UmA(N
+_Z76G(M'3GpS:%?B>Y&ND1`0=1mg2N$L^MS!DLk1k=4/k3R`.8UE4kdSLUI-2@WL]k#L=9J5E
+\f;K?E`oZ<[6#8LiOM*OP`iIPpls^iWH_)>1dHPZe-:0232>(kK/V)O?O'EJ5J_oSBj[#t7,:
+?3D()9_h"!T<aFb3#,LA(WCs$@72GME$fmYl-lU^.W&^jj9_E:,[sOU6jmDD+d"H4D2(McAh"
+j.@#%F')Cr$-.1MtE51*2:<Rn"%5`8$JU-`:W-LeR+&fNQNj#nU:bT@>D$d^:.0X9`,;N7_:E
+j`">49q.sJa!$3hhRfbR5ccJg%CI/-()%'M#OS6&h0YU8QGeHZi4f3V3:Ti7^*3t"sl'>V*5Y
+MUr]"L'T*<g/9-]U0_)YK,%'>7m*a*R;tsqbM5Nq?fuh95_:E-bd@Hst+d\0n#'Bf-.A#s#Ho
+djq%[i="0(Eoo:>0/AWAYt/i&P+YMlqhLn-RS?PQ.eJ7.R9(!j+5#jq4OKrcg:JT_#3eiRnYS
+ns#XZ1fY1HWJM-KPU&;aU-BQUi_q?'-LO=(,Z6>F$W;%77S=sjQ!QkZSqaq7NN=s?;CTR`/r`
+XK0i"[q)gil]T*f$:674!%qi!o&;1o^&in$bH4];N!KClM)*eMmQm_slb6^??h"_iPE+\pL\h
+!-YM?):>&5oKIs'reRc/PaGB%38G9$d!rl9<RYkd(V`D-q\Ia'q$@E"Y[8_5GH;+;PB,<=9]J
+KAN18t]V+@3?:n)FkfSe"]HaDDTg6"&j\i.T#Dl&sUdVcG+6Pkk0sf8N@FctJRd/GZ)OZAn'i
+`/,d_1T1R<(7MpTKr+5Y1?\pE9-pMCB^N\,`qUjHn+V*,4>O;GeRt?(BTeP@_^Q@ArYh-V;IC
+cUFYF<+G?pFF"*7-(W<g;0":-)1?cT:d>YkWQ6[J4tEI7@IhSYV+FHFa%$2rLl/#eE<E8'\4?
+I2/osQMWg*LI)5\:`*@]^0\1h[#<*d>[d2"a/ndCO[LE44lF9rQP1iikOdW_XUDR1S@otV]`]
+=0q<4V^Ya:?Y_2GZ]h5kq\LHc;0TT7V7:J>mA&7pe4jb2=MXM8)V2;<LV)HTZ8_Z#BS,eq=T,
+EBlg(Jq*SXj/npf9BS=@"e0P$l'U5=i+F6Z%7($!S'4NGdon`FDoPrr$Ohd;=+7hhYBh5q%;<
+*M3Zs,TRB%Vk0R2#5`Ugh,,fe+*Lnq#<g;UeAbMPj+LI@rAT%f=i['2L5rjXEt>PV,TMW&,ko
+)@@_P4p2ba\YE'3>*'*bjji8194ps+7.]A'@8ojQ:=F(D`Lj<#h8,MOE)tA>,bTu6faq^44VK
+7l5#b&C<>\HjEI;N?]dWbfZ_#65.B-cjq]KMYmF28$8N#P<PP\1LB:ATOL;`i*'_@UF$nJ5M,
+*aC7g793oRIk9\4!Dob;iTjo@R=$mLTj@&l^MZVHFH`<miF>W^Dgn((NOEV)C/5]-!qmpk@^s
+GJk2RDk&\VA^0ah%TNS3Z.81]>rJ=,Oba)+52;O%fDJdQK:rV+L;^%,gV#Z?YK/!aV60.''%[
+9F8'M*XV'e:Jn3%CbkB(C]!)rj[e&7pr<ibs&L=,uGH<5,a*SHhZ259C<a%5iM`adUDZ7.*rd
+QG278_SKW/+4AL0+^Hlp^PeW=qgE"C"4WrS3`?9FV_7R%3`XS-@J]ti/'\"CS7J"tN(m<l,03
+B3NBb0eQC-45i8(V685j<dkB%o-aChf!]/#+s#u!cPQBP[E!1.U9=.3!d\j_OAP,rb-dd^!h8
+sX.,4PIZjs513RGN^:CEp)H4Z;Ke(2CV(*$b6X;qXQ&$*1(VV's;bMDNh;YGacC*MWpB5`8*F
+I]t5X7<L?,oCi`21Oo3<0-l$bck?S:Vf.kFCkqC3"S(/K^hHETg_'u6,#>j[8Hsl%>.N0^C-A
+c<LO\5/1RV`s_imV^#A)&W`U[grX8sLThHI:)V_SJtfW!eA#AW!JY);?3fMB2.aN)rH>7?1a;
+\L_?mYo^GEUbrA=HcEarao]^:VF/-4<Sj`!T]U^%nd=8++oV<QU`PQtn8]o@W1o4pF(Z*K/X,
+s)45HP5:BMZDr5oebB/sg"5g$TjAfmmE6PH(PMJ?<^9T,9tB,/FDW[diYAJ.Ot[8BW&9VlmSD
+)s-u=RoK+hkGRS2Dg'9HmAoqHqeY5dd5q`KXSfO9LNlj_F%tr6(@ToL8^nY*agg1>kD>nHela
+Z^/HW+j]\2T.Ut`gq8c/*Sg2Z2+I,=LQjX5LPWele`4-):e+'iE'sd#PV_j16fk.*S><Wf4Z*
+bll.7gY`8d@<,KfT,?Q!S1(!(Tp>EJ!.g'GFrq3u#gSV9X;-^_7qg!;,WBN[W$sWV3/[-\dQ?
+3)*%U!uA9"8sG7QZlFTC'f7_e\]9l:9.cBgE71]gL:f%9S+oINEgLgs5hL)dBn=`t91V93%;D
+f\IWVobMc^*35iq,_J%k*9cb(0b7PZn#g.XWO'"/CWkS.q\hk"n!7P6&P!RN%B\nS"?a]=&D*
+_&CeXq/'mAPedheX.S=JtE#,`R7)F&ZmB?1elDS9gOgB&!7QZob>-&G`$;=dp#;pUYNW.F1'6
+9<_]EBo7l?.oZVTD.VRf];8KW"<E'P4fBK+p,LU^*Qg:5^1n^O]=i!ZGR1,a=P#JYZ41'C`S3
+@O7hW^jD6l(WU%X\d:h#]1hUsd#186I6IT'5$07be*#@SJKjJ-RXE,F<c<`'.o'n.]Q)d6p(=
+QCI0^W,/:T;,q5U;+4$GOQ&J"96We#ia\icG8=S!H^_!jJT9,:*p>B_:K-1>>c;HU-OH\:^]D
+uR]aiK:%mkS<0;ZWU77p=!:+ie&R>EP+2VZ@iHB]f'h%a_:p)AqJPGjjY+JqV%ZNI@@<g?`WI
+%0p$[TUg3ohl_%o#?`ZD8r2<RN/<%dMQp-D_E(lV+qcS;+e6,A96V/aj`.[gS;P_cAA`0*@>;
+&@ld,HE,K@'C$&"V(ZKMT88`gcW]<,[W0hreSV.#U4ZUr(!U6/aDEY,dV$d(A;bK0E_[PgiJe
+g<P*Jg-.X[OSCXA-ocMC3.EV>O__jilc?@eqFMPd;E#gjh7eUmSAh,$Xr,G="`phF.B6P2P,S
+69.)$a-^gah\qd&3\AHG:!EW/Z:'1o9>5h,<>j3:b[2hL21MrqiOuDSYk+ejd,q2fMN:)f,5#
+SZl)=aJAUMKW$14t,*2^Bg`ut>nZ7.Y_c963rOYiPiip6,X/67k$>>@6Zd)K1Z4.;Ud0&'Hl:
+.m7=le?b6Si#m@f1@?]Paou`2&2?N_i2_5,;F+2HQ7qr&f@>DSP[S!f)(Mm2j2>FBfQZ#eG8>
+ck>O0mTV'aMH`@aS";=3.B9tbu9:dq<*pj0*>4MTkop_`u-!ZqkL4):&UpK%XhEs38pVh=Q*B
+(WVIK&WsgOK.4ZJE64hdZK'l?:odft@"(?anS1Tt$=UKQLeRs17?\o%$!Sh,_!l4%/OI]$=W/
+\,U<UI9pL"]t<,CIe/*,RQ.l9Gje#RoCu>3lTG\kYBP?&mToeOD=lr_efap#icdH6h#^LKd0c
+ZLoX"9!WF=0>h1O4hFc^q;43rPdf396_O1fZQ3)G+lcs/]gY!D88#&19MEk"@)[_tG(rd)1+Y
+4Th#QMgFg8:/$'%en$"mUMpZh,cmgkBW]738>Tuqg:'Hj?5]sHb[Zq%FeHMQP^"Ts"Emf:gYC
+5+E`2uTgV%:0*S::gugosk0`"td+'4:oq-"_I4"f?q!HAumc1^jo_&S^=2ne<o@Ii%H[+PRq>
+8a_AGu,OD0>_WoCgf'Fo/c;lf?pSrpC_D^].m$hS.5,-V2!AlLhm^GMdZBr@b5GA[^fdRtL>`
+8A"V]^\c%*mseInK[e<H$L)IKnJ0L0pTjeOO?V]khTF:l^C]"#]Y+!njTk4-gYo9,^jYV-%+:
+DVIcQY.T03k9oq+D?e]";mguGO'o@BN%S\Y2P6V(o@rPj'MefaWdYP#_)?Jb/Q;K$iU*IQ/c[
+63e:9IjIT61cm&]p5e'>in6WdQ?_l^O[h^9(sM-i`[G6jQ2.i83MaQngg<@8m1JAHM>2L32H9
+ZnHG_Lm.k7ThANO\;6/Omc/.9+H2piKf_Qk!L%L:[n(kb?'kAD?FR:%5T<CN6Z-Z]FpC"_-c\
+Af:W2/!+@X+q$pWbpM!U8lL4p^BS]a#Zc$B>@/r@pjp&R's3AXBk1i4f=k&M!AiHM4-tGMUPe
+n[+25K94qR%dE7[eq`EC8CpZ5!2RfUrEDNZ0m+SVDVkPXY2@=P6i%P1FQLIDO=nC3s)LXfa1m
+.(k5F`YWHb!.Ur;`9qk_5<IWroV=%?hAoET[+\(=:Agqu9+];OD1:TKR0Q0H=BGtfr?A:*=5]
+Tl9b^3f>1T7(Lge4KSM%as*Y4*qJf;9unIVlnjfI3tc)n\s742b<&jF3h>/>E__RDXm?EUq_%
+XO'hdJQBHI\d(aEqGq]0Xhom3kl'Yl6-4aprO?VudYE8atQh:^M[t4/TTdlW3o2fM)J*l^=nb
+2ieQ;]H/^&>"2l?.I0T!SA[dd^T>~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 338 287
+%%EOF
diff --git a/doc/users_guide/figures/gimp_startup.eps b/doc/users_guide/figures/gimp_startup.eps
new file mode 100644
index 0000000..a472b9e
--- /dev/null
+++ b/doc/users_guide/figures/gimp_startup.eps
@@ -0,0 +1,483 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp_startup.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 141 219
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 141 219
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+142 220
+12.000000
+142 220
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPT4`VK''#tqk'.Rt\;W`AQ@AeGZL!FcCT4"k\4#g.!8<FO)!g-Im7^[/U*+@7i(j)ObkC
+XaPI'3h0Z7HR&DuSSfBE7$G>ZGgrP9A5"ZlCr/(!ZW8k!jD9%E&r$)pA@[^;;RpJ:-J9/Yj8M
+'F"(%&iBF#UJ<-Fk(ZrbMu(FcP:DHtl;]I00qTQ9O!.ANAMtZRQ$:''7)Em)Bs`&jG7cd(X`@
+_e0MM`D?.fpUbcG_&94O3:JVaH0W28FV"c`3!S-J+iMVL_N(k&DB!XgT&A=ko0K"3gF/IdYeE
+iQuFmkWaE?/!N")pOB)GaeAB8O,>s'r6o!:7M5AOf"l&F6!KC>I_Ep4<2Y/LG]%=dKIfVS0RJ
+lo3jInZCF_Ykq>Ea3p<):DB*"k4Uj[CJN=5^]Z*'Q*A,1PeVk[^To#n:^OjJ9%T>gScfe<M4=
+)XOj'$FP.=Dofd\Q#'&i<F*a%%H%L`E07d(DUV$Gm2\&gnZO`X/(@.VeX`Z1u*!2pd-72aj*b
+/8/FCL64C%173eCL_K:VM);?2?m,t?:ubKjHC^BZe`G2E?'h0mOl%ijMZtq04/N./]LLqJdS*
+fDTdc[GlrU;b.6&mg_Ec,o^i+`eW(%G>8:K*2V"*@jBu'.8Y,rFGglo]:mFg^\G]B`E_Q=ktP
+jqeW+2t<IE0NOd?l0=nN9+03*l4gcnLP-c;/!t+F3Qh$S8*riBI]$/j,]if>D.hqM,X6bH-Au
+s(?Tn>bt$4ke8M:W+%'Q#q6C:9$6#*%pS+o;piGL"R_S32q-APEa4a%U5bB@RSrU]AmA\Q@I!
+mi#>`'CTj$d[&TSR*PLCJ!hbu8i;)Od%/dXY52bp7EbR5IoZRU.R?Z;gZ\..Lhcc_U)]$aFl'
+a'hkc:(rt5ABgXX353l%)@uj_[5Q/cUs=8S*%2CmKk[nc$X:1]b%WVf1S0`I-nT/r4H<`.]J3
+H]P/\kd3YG5jTWp$O$-#!>g/MI9(O&(-dt+0KmmX#h'FPfrBgAS9;`"Vhbk'X-'hN7O_!DG'g
+EI1Icn4@BV)0(t6ZuC?BMpoeM8YYGGN$M4)MNp^.,$qqNb1hO=6YXo,'lOS7b\Yc0I63@Y7>,
+YBX"1(U[DL>0="#_%i!nt?tc)gZkYDt)R#-L,L%?89^R+JO.q?UBL&=1$I)CdQM'aU4dtQM3G
+\YHDF56taUoO4`Q(HuYunlm4:/otJg?=&\T"g>R&:Yq.knBgGQG^`aHE@@)"A]_bYhcaY`ZaG
+eWNCc/EJ1;DLVu!fh0a/h:oWf%9m)D0%S'tO.nXaMfU_ANGbX=hb-JK\&e<R]^,1K)pLn#Ge^
+oHQ8Ilqfm@SDj[E?=e#q(u)A4ihQ"YsZPh?8h;L:OZEU.:c>#W:+XA)_iN!<6">`.TMZZFq`R
+S[F-b+dj13(ahcd:9P7p)C_<cV7QrA=/YeieE$:9psP/Q;HU5%sAqQfac#s9h#fU/@8GVkF=G
+On`2M9mL!VkKeP-N>Ojgf["7a&6jtJP*DM4WOs\"QE80e-XjT\A6t(\ek8:k.M(g[4p?cSI]\
+c\&e6(HF;[Z9gQXRH6_eE`[PTRZ&Z*q,U=r9S)@Ff0\652So2eW=&[F>KBf4lO.]+:Ut8JpU/
+"_Ll=bleKHU'-Ih.kj5>)0jIe;&c^b`GsB`G6N`bK.4Rg'9+ulC1HFX2g5G2W]?^EN0@9V;gE
+G(pd_Hp:=$Q"9[heVn66mH2XgLTpdXj6UgXW9=gHiH4JG8Sjj3\a>FKjOFB]Y@%YaG_:Sk&RB
+POZrkpKs31hp!K0sN*MZNUePc_=;.m&6#]8=GR-U8<_@*T_]N72k2kdl;o]0V##0TqTou1g44
+:;9jR\NF1&-,3fsr%6>6MD*;.5iWpcC>*p%QWf]cI;=Z,oTG`9r#R^b1+-/8uC#ms<C./0P>1
+"gTajJJ6U$:'4Z)Wap70t44DcFCn\NT#=KVSW$NN?-R.:(]tW>:6V)"<6=UbU2uo5/Z1VHc?i
+X>iBGT,F(dT@[c#fI+Sh1mU"\11Gc30!!]K.a:pTc!eOHWr<4E9I<K#@8n.,SdmQ6AOR6B9&I
+^D5jkt=(:ImE$qp$k[,L_A=gJlAm^mJJ;/!%7`F6SLRd%0LG#.&]f7#ZIL?98,hr=.5H.V5u2
+k$8*43MDRe8r<uC%1-@"O5`G#j((>Rcenf(Z]gI>l<6:mi5'5K"6mG`ni6:OCTR+oks%?28_s
+'0MY"AN-\-ESn?st=h1'VjO"NDP\Vm<\'a#"XGNi:SP;I[QI<Q.p8W>frRCg@Up4B'#1H%U%#
+:un$VmVUbO.oTK#Yi/3Xp$FNCJmT1JXjrLo2@P5!O]8V4&u2j<^18+>.=gG#-&N;/Uu00hU!j
+0165tBS-=lkIn<n&qB?S1n"K@I<GTs"R*YR0kdEBEEJ1!^ah7P6N63d$;KQ[&8O+:Eg-n\:#7
+KQVjfe%rlD-e'HW<AFddDD@d5!<qc0O@IP2N:Rlh=VH^0=l&na&cQH8,H4]EE88&;lrqG]J(X
+YV\kHq,#[1;X$H;<KA=,-ON^HNnaVqH4hJO0U@*7N-Wo5iAlY!nP'jWNgp3#i?<GH><<0ZMWa
+CDb(^76eYQ#E5(('BU!I^iQ;&:4T^qEe#4QMR&)2)':Q4s<I5FHb.Bj+>9'fDm621'2Q1)sch
+E(@/)$$GrH+J;5PsrB:%LQ@`e*N*:$F'pfa_,Nd,MOA/l,C^B$.2MBT2pP%/[rGrI24?o_VpD
+3'?U)IK+*?+&8SF5'h*,c(RAoI/qsfp\P%J"gHgshaAE)0pl2Fo6C9E^>2#&Xu%<h&,SPh'#:
+)^6)(:VA=DR<k-@--radYT=D7P]cpo%K2JB$PIWm89l;QOFBs?jZpS?aGT2D),^INA41Xd])&
+;:O]HWK]af&k?Z6Jm&TPG([dMbj):%-*>bF(V:aXJek?ic+[Hg@Wct:Z7otBKY`cN97Gpq`FP
+O-hQ:]'L<p@^BmVUmsreJMR&;b;@%mR)dFbhZjZg_$pa"LRsS$+5)k$5;Sdhb&rnlT@r4RhQp
+(A:./U47`Al@T5=0Fb'4W-ALh<l)PepQBPQlImIZ:,mDBlo!7Ir,.%9a*=M1a\/I=!N)\s-3.
+^?^5h8E4$H'#Fe*iuG=(T8H4<Z27L6*E>\k9lf6gBgd:!C&WpoT<gGfe>7bFns@8aI;13j(lQ
+.n'a9I,SL':T3:7d$^0+.YN&^QW[FHWtjZXDL_FnS&rYT_OY#!4l>]kb*3;0TJdnjP&):pg`5
+5R25"n+`o_PDIe#`\`Zq!Tm@J,di5Z7a,t"td7+IB#N%YV'6NUTBB+QNYe8l>`s8K2,UL?Ubu
++e&UE#BG4oJ:>@(b5r6`\Kf$gs:?0p'o?h5\bjFhs1hbFC+[%qMr4qq<dp5MjiQq,=o1MWXYH
+MlJD]sQ*o]aRV?R#rm,1"RW,>LqRJiFR@$.;)Wq([bJLTcM4[!@ShI!RS^Pe1s+CBI"oLE]GN
+<RN3D';[u7SL4$i%;;Kj,We.cD4ZsG'ZYKIS'kn1Rc6<KD7JK9<%!..$r-+f<L]W"Mc#u1`NS
+m!,//,Mhdj3A(jgKae/]>QFfJ"OkM1nN`Djnkh>##2YuHtMAQ7gZlni&m_;t-ioVj\D'lB*MJ
+"#W\>L>.>8Nb>LNO(UA2N]CFZAGDID.9-KUR$4OSaGC*d2\Y<C$'T#cV)/gLUm'ob^=6iM);,
+0Fe^rYc%=u9"URr-#d3Q"o;^7=!W,T:dJ~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 141 219
+%%EOF
diff --git a/doc/users_guide/gfdl.sgml b/doc/users_guide/gfdl.sgml
new file mode 100644
index 0000000..6db9fbe
--- /dev/null
+++ b/doc/users_guide/gfdl.sgml
@@ -0,0 +1,466 @@
+<appendix id="gfdl">
+<title>GNU Free Documentation License</title>
+<!-- - GNU Project - Free Software Foundation (FSF) -->
+<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
+
+
+ <!-- sect1>
+ <title>GNU Free Documentation License</title -->
+
+ <para>Version 1.1, March 2000</para>
+
+ <blockquote>
+ <para>Copyright (C) 2000 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.</para>
+ </blockquote>
+
+ <sect1 label="0">
+ <title>PREAMBLE</title>
+
+ <para>The purpose of this License is to make a manual, textbook,
+ or other written document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by
+ others.</para>
+
+ <para>This License is a kind of "copyleft", which means that
+ derivative works of the document must themselves be free in the
+ same sense. It complements the GNU General Public License, which
+ is a copyleft license designed for free software.</para>
+
+ <para>We have designed this License in order to use it for manuals
+ for free software, because free software needs free documentation:
+ a free program should come with manuals providing the same
+ freedoms that the software does. But this License is not limited
+ to software manuals; it can be used for any textual work,
+ regardless of subject matter or whether it is published as a
+ printed book. We recommend this License principally for works
+ whose purpose is instruction or reference.</para>
+ </sect1>
+
+ <sect1 label="1">
+ <title>APPLICABILITY AND DEFINITIONS</title>
+
+ <para>This License applies to any manual or other work that
+ contains a notice placed by the copyright holder saying it can be
+ distributed under the terms of this License. The "Document",
+ below, refers to any such manual or work. Any member of the
+ public is a licensee, and is addressed as "you".</para>
+
+ <para>A "Modified Version" of the Document means any work
+ containing the Document or a portion of it, either copied
+ verbatim, or with modifications and/or translated into another
+ language.</para>
+
+ <para>A "Secondary Section" is a named appendix or a front-matter
+ section of the Document that deals exclusively with the
+ relationship of the publishers or authors of the Document to the
+ Document's overall subject (or to related matters) and contains
+ nothing that could fall directly within that overall subject.
+ (For example, if the Document is in part a textbook of
+ mathematics, a Secondary Section may not explain any mathematics.)
+ The relationship could be a matter of historical connection with
+ the subject or with related matters, or of legal, commercial,
+ philosophical, ethical or political position regarding
+ them.</para>
+
+ <para>The "Invariant Sections" are certain Secondary Sections
+ whose titles are designated, as being those of Invariant Sections,
+ in the notice that says that the Document is released under this
+ License.</para>
+
+ <para>The "Cover Texts" are certain short passages of text that
+ are listed, as Front-Cover Texts or Back-Cover Texts, in the
+ notice that says that the Document is released under this
+ License.</para>
+
+ <para>A "Transparent" copy of the Document means a
+ machine-readable copy, represented in a format whose specification
+ is available to the general public, whose contents can be viewed
+ and edited directly and straightforwardly with generic text
+ editors or (for images composed of pixels) generic paint programs
+ or (for drawings) some widely available drawing editor, and that
+ is suitable for input to text formatters or for automatic
+ translation to a variety of formats suitable for input to text
+ formatters. A copy made in an otherwise Transparent file format
+ whose markup has been designed to thwart or discourage subsequent
+ modification by readers is not Transparent. A copy that is not
+ "Transparent" is called "Opaque".</para>
+
+ <para>Examples of suitable formats for Transparent copies include
+ plain ASCII without markup, Texinfo input format, LaTeX input
+ format, SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML designed for human modification.
+ Opaque formats include PostScript, PDF, proprietary formats that
+ can be read and edited only by proprietary word processors, SGML
+ or XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML produced by some word
+ processors for output purposes only.</para>
+
+ <para>The "Title Page" means, for a printed book, the title page
+ itself, plus such following pages as are needed to hold, legibly,
+ the material this License requires to appear in the title page.
+ For works in formats which do not have any title page as such,
+ "Title Page" means the text near the most prominent appearance of
+ the work's title, preceding the beginning of the body of the
+ text.</para>
+ </sect1>
+
+ <sect1 label="2">
+ <title>VERBATIM COPYING</title>
+
+ <para>You may copy and distribute the Document in any medium,
+ either commercially or noncommercially, provided that this
+ License, the copyright notices, and the license notice saying this
+ License applies to the Document are reproduced in all copies, and
+ that you add no other conditions whatsoever to those of this
+ License. You may not use technical measures to obstruct or
+ control the reading or further copying of the copies you make or
+ distribute. However, you may accept compensation in exchange for
+ copies. If you distribute a large enough number of copies you
+ must also follow the conditions in section 3.</para>
+
+ <para>You may also lend copies, under the same conditions stated
+ above, and you may publicly display copies.</para>
+ </sect1>
+
+ <sect1 label="3">
+ <title>COPYING IN QUANTITY</title>
+
+ <para>If you publish printed copies of the Document numbering more
+ than 100, and the Document's license notice requires Cover Texts,
+ you must enclose the copies in covers that carry, clearly and
+ legibly, all these Cover Texts: Front-Cover Texts on the front
+ cover, and Back-Cover Texts on the back cover. Both covers must
+ also clearly and legibly identify you as the publisher of these
+ copies. The front cover must present the full title with all
+ words of the title equally prominent and visible. You may add
+ other material on the covers in addition. Copying with changes
+ limited to the covers, as long as they preserve the title of the
+ Document and satisfy these conditions, can be treated as verbatim
+ copying in other respects.</para>
+
+ <para>If the required texts for either cover are too voluminous to
+ fit legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.</para>
+
+ <para>If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a publicly-accessible
+ computer-network location containing a complete Transparent copy
+ of the Document, free of added material, which the general
+ network-using public has access to download anonymously at no
+ charge using public-standard network protocols. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.</para>
+
+ <para>It is requested, but not required, that you contact the
+ authors of the Document well before redistributing any large
+ number of copies, to give them a chance to provide you with an
+ updated version of the Document.</para>
+ </sect1>
+
+ <sect1 label="4">
+ <title>MODIFICATIONS</title>
+
+ <para>You may copy and distribute a Modified Version of the
+ Document under the conditions of sections 2 and 3 above, provided
+ that you release the Modified Version under precisely this
+ License, with the Modified Version filling the role of the
+ Document, thus licensing distribution and modification of the
+ Modified Version to whoever possesses a copy of it. In addition,
+ you must do these things in the Modified Version:</para>
+
+ <orderedlist numeration="upperalpha">
+ <listitem><para>Use in the Title Page
+ (and on the covers, if any) a title distinct from that of the
+ Document, and from those of previous versions (which should, if
+ there were any, be listed in the History section of the
+ Document). You may use the same title as a previous version if
+ the original publisher of that version gives permission.</para>
+ </listitem>
+
+ <listitem><para>List on the Title Page,
+ as authors, one or more persons or entities responsible for
+ authorship of the modifications in the Modified Version,
+ together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has less than
+ five).</para>
+ </listitem>
+
+ <listitem><para>State on the Title page
+ the name of the publisher of the Modified Version, as the
+ publisher.</para>
+ </listitem>
+
+ <listitem><para>Preserve all the
+ copyright notices of the Document.</para>
+ </listitem>
+
+ <listitem><para>Add an appropriate
+ copyright notice for your modifications adjacent to the other
+ copyright notices.</para>
+ </listitem>
+
+ <listitem><para>Include, immediately
+ after the copyright notices, a license notice giving the public
+ permission to use the Modified Version under the terms of this
+ License, in the form shown in the Addendum below.</para>
+ </listitem>
+
+ <listitem><para>Preserve in that license
+ notice the full lists of Invariant Sections and required Cover
+ Texts given in the Document's license notice.</para>
+ </listitem>
+
+ <listitem><para>Include an unaltered
+ copy of this License.</para>
+ </listitem>
+
+ <listitem><para>Preserve the section
+ entitled "History", and its title, and add to it an item stating
+ at least the title, year, new authors, and publisher of the
+ Modified Version as given on the Title Page. If there is no
+ section entitled "History" in the Document, create one stating
+ the title, year, authors, and publisher of the Document as given
+ on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.</para>
+ </listitem>
+
+ <listitem><para>Preserve the network
+ location, if any, given in the Document for public access to a
+ Transparent copy of the Document, and likewise the network
+ locations given in the Document for previous versions it was
+ based on. These may be placed in the "History" section. You
+ may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.</para>
+ </listitem>
+
+ <listitem><para>In any section entitled
+ "Acknowledgements" or "Dedications", preserve the section's
+ title, and preserve in the section all the substance and tone of
+ each of the contributor acknowledgements and/or dedications
+ given therein.</para>
+ </listitem>
+
+ <listitem><para>Preserve all the
+ Invariant Sections of the Document, unaltered in their text and
+ in their titles. Section numbers or the equivalent are not
+ considered part of the section titles.</para>
+ </listitem>
+
+ <listitem><para>Delete any section
+ entitled "Endorsements". Such a section may not be included in
+ the Modified Version.</para>
+ </listitem>
+
+ <listitem><para>Do not retitle any
+ existing section as "Endorsements" or to conflict in title with
+ any Invariant Section.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>If the Modified Version includes new front-matter sections
+ or appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.</para>
+
+ <para>You may add a section entitled "Endorsements", provided it
+ contains nothing but endorsements of your Modified Version by
+ various parties--for example, statements of peer review or that
+ the text has been approved by an organization as the authoritative
+ definition of a standard.</para>
+
+ <para>You may add a passage of up to five words as a Front-Cover
+ Text, and a passage of up to 25 words as a Back-Cover Text, to the
+ end of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.</para>
+
+ <para>The author(s) and publisher(s) of the Document do not by
+ this License give permission to use their names for publicity for
+ or to assert or imply endorsement of any Modified Version.</para>
+ </sect1>
+
+ <sect1 label="5">
+ <title>COMBINING DOCUMENTS</title>
+
+ <para>You may combine the Document with other documents released
+ under this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice.</para>
+
+ <para>The combined work need only contain one copy of this
+ License, and multiple identical Invariant Sections may be replaced
+ with a single copy. If there are multiple Invariant Sections with
+ the same name but different contents, make the title of each such
+ section unique by adding at the end of it, in parentheses, the
+ name of the original author or publisher of that section if known,
+ or else a unique number. Make the same adjustment to the section
+ titles in the list of Invariant Sections in the license notice of
+ the combined work.</para>
+
+ <para>In the combination, you must combine any sections entitled
+ "History" in the various original documents, forming one section
+ entitled "History"; likewise combine any sections entitled
+ "Acknowledgements", and any sections entitled "Dedications". You
+ must delete all sections entitled "Endorsements."</para>
+ </sect1>
+
+ <sect1 label="6">
+ <title>COLLECTIONS OF DOCUMENTS</title>
+
+ <para>You may make a collection consisting of the Document and
+ other documents released under this License, and replace the
+ individual copies of this License in the various documents with a
+ single copy that is included in the collection, provided that you
+ follow the rules of this License for verbatim copying of each of
+ the documents in all other respects.</para>
+
+ <para>You may extract a single document from such a collection,
+ and distribute it individually under this License, provided you
+ insert a copy of this License into the extracted document, and
+ follow this License in all other respects regarding verbatim
+ copying of that document.</para>
+ </sect1>
+
+ <sect1 label="7">
+ <title>AGGREGATION WITH INDEPENDENT WORKS</title>
+
+ <para>A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, does not as a whole count as a
+ Modified Version of the Document, provided no compilation
+ copyright is claimed for the compilation. Such a compilation is
+ called an "aggregate", and this License does not apply to the
+ other self-contained works thus compiled with the Document, on
+ account of their being thus compiled, if they are not themselves
+ derivative works of the Document.</para>
+
+ <para>If the Cover Text requirement of section 3 is applicable to
+ these copies of the Document, then if the Document is less than
+ one quarter of the entire aggregate, the Document's Cover Texts
+ may be placed on covers that surround only the Document within the
+ aggregate. Otherwise they must appear on covers around the whole
+ aggregate.</para>
+ </sect1>
+
+ <sect1 label="8">
+ <title>TRANSLATION</title>
+
+ <para>Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires
+ special permission from their copyright holders, but you may
+ include translations of some or all Invariant Sections in addition
+ to the original versions of these Invariant Sections. You may
+ include a translation of this License provided that you also
+ include the original English version of this License. In case of
+ a disagreement between the translation and the original English
+ version of this License, the original English version will
+ prevail.</para>
+ </sect1>
+
+ <sect1 label="9">
+ <title>TERMINATION</title>
+
+ <para>You may not copy, modify, sublicense, or distribute the
+ Document except as expressly provided for under this License. Any
+ other attempt to copy, modify, sublicense or distribute the
+ Document is void, and will automatically terminate your rights
+ under this License. However, parties who have received copies, or
+ rights, from you under this License will not have their licenses
+ terminated so long as such parties remain in full
+ compliance.</para>
+ </sect1>
+
+ <sect1 label="10">
+ <title>FUTURE REVISIONS OF THIS LICENSE</title>
+
+ <para>The Free Software Foundation may publish new, revised
+ versions of the GNU Free Documentation License from time to time.
+ Such new versions will be similar in spirit to the present
+ version, but may differ in detail to address new problems or
+ concerns. See <ulink
+ url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
+
+ <para>Each version of the License is given a distinguishing
+ version number. If the Document specifies that a particular
+ numbered version of this License "or any later version" applies to
+ it, you have the option of following the terms and conditions
+ either of that specified version or of any later version that has
+ been published (not as a draft) by the Free Software Foundation.
+ If the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation.</para>
+ </sect1>
+
+ <sect1 label="">
+ <title>How to use this License for your documents</title>
+
+ <para>To use this License in a document you have written, include
+ a copy of the License in the document and put the following
+ copyright and license notices just after the title page:</para>
+
+<blockquote><para>
+ Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1
+ or any later version published by the Free Software Foundation;
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".
+</para></blockquote>
+
+ <para>If you have no Invariant Sections, write "with no Invariant
+ Sections" instead of saying which ones are invariant. If you have
+ no Front-Cover Texts, write "no Front-Cover Texts" instead of
+ "Front-Cover Texts being LIST"; likewise for Back-Cover
+ Texts.</para>
+
+ <para>If your document contains nontrivial examples of program
+ code, we recommend releasing these examples in parallel under your
+ choice of free software license, such as the GNU General Public
+ License, to permit their use in free software.</para>
+ </sect1>
+
+</appendix>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-parent-document: ("referenz.sgml" "appendix")
+sgml-exposed-tags:nil
+sgml-local-ecat-files:nil
+sgml-local-catalogs: CATALOG
+sgml-validate-command: "nsgmls -s referenz.sgml"
+ispell-skip-sgml: t
+End:
+-->
diff --git a/doc/users_guide/gimp.sgml b/doc/users_guide/gimp.sgml
new file mode 100644
index 0000000..75eb803
--- /dev/null
+++ b/doc/users_guide/gimp.sgml
@@ -0,0 +1,898 @@
+
+ <chapter id="ch-gimp-and-gimp-print"><title>GIMP and Gimp-Print</title>
+
+ <sect1>
+ <title>Running the GIMP</title>
+ <para>
+ This section assumes that you have the GIMP version 1.2 installed
+and working properly on your computer, and that you have an image of
+some type that you desire to print. To get started quickly, log into
+your system, start the X window system, and bring up your favorite terminal
+window. At the $ prompt, type:
+
+ <programlisting>
+ <![ CDATA [
+ $ gimp &
+ ]]>
+ </programlisting>
+
+ This should start the GIMP for you. If it does not, check that
+you have installed the GIMP properly, and that its binary is located
+in one of the directories listed in your &dollar;PATH environment
+variable. On the assumption that this worked, the screen should now
+look something like this:
+
+ <figure><title>The Startup Window for The GIMP</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/gimp_startup.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>Startup window for The GIMP</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ </para>
+ <para>
+ At this point, you should use the
+
+ <menuchoice>
+ <guimenu>File</guimenu>
+ <guimenuitem>Open</guimenuitem>
+ </menuchoice>
+
+menu option to open your favorite picture. We will print this picture
+shortly. Your picture should be displayed next to the GIMP startup
+window, perhaps looking similar to the following (sssh! Don't tell
+anybody the secret!):
+
+ <figure><title>A Sample Image Displayed by The GIMP</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="50" fileref="figures/gimp_image.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>A Sample Image displayed by The Gimp</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ </para>
+
+ </sect1>
+
+ <sect1><title>The Gimp-Print Graphical User Interface</title>
+ <para>
+ Now that the GIMP is displaying your picture, put your mouse over
+the picture and click the right mouse button. A menu will appear.
+Choose the
+ <menuchoice>
+ <guimenu>File</guimenu>
+ <guimenuitem>Print</guimenuitem>
+ </menuchoice>
+menu option. This will cause the Gimp-Print GUI window to appear (see
+<xref linkend="fig-gimp-print-gui">). Move the mouse cursor
+over the various parts of the Gimp-Print GUI window, and notice that
+if you leave your mouse in one place for a short time without clicking
+any buttons, a small box appears. This box contains helpful text.
+These small boxes are called "tooltips" and are intended to remind you
+about the function of each part of the graphical interface.
+ </para>
+ <para>
+The next several sections will continuously refer to
+<xref linkend="fig-gimp-print-gui"> and
+<xref linkend="fig-gimp-print-gui-1">. The difference between
+the two figures can be seen in the top right corner of the window.
+Notice that there are two tabs, one which reads
+<guilabel>Printer Settings</guilabel> and another which reads
+<guilabel>Image/Output Settings</guilabel>. Notice also that the
+window is divided into several major sections which directly map to
+the major sections of this document:
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="sec-preview">Preview</link></para>
+ </listitem>
+ <listitem>
+ <para><link linkend="sec-printer-settings">Printer Settings</link></para>
+ </listitem>
+ <listitem>
+ <para><link linkend="sec-printer-settings">Image/Output Settings</link></para>
+ </listitem>
+ <listitem>
+ <para><link linkend="sec-position">Position</link></para>
+ </listitem>
+ <listitem>
+ <para><link linkend="sec-scaling">Size</link></para>
+ </listitem>
+ <listitem>
+ <para><link linkend="sec-printing-and-saving-settings">Printing and Saving Settings</link></para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <figure id="fig-gimp-print-gui"><title>The Gimp-Print Graphical User Interface 1 (GUI)</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="40" fileref="figures/gimp-print-gui.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The GIMP Print GUI showing printer settings</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <figure id="fig-gimp-print-gui-1"><title>The Gimp-Print Graphical User Interface 2 (GUI)</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="40" fileref="figures/gimp-print-gui-1.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The GIMP Print GUI showing image/output settings</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <sect2><title id="sec-printer-settings">Printer Settings</title>
+ <indexterm id="idx-printer-settings"><primary>Printer Settings</primary></indexterm>
+
+ <sect3><title>Printer</title>
+ <para>
+ Click on the <guilabel>Printer Settings</guilabel> tab near the
+top right hand corner of the window (see
+<xref linkend="fig-gimp-print-gui">). Then, click on the downward
+facing arrow to the right of the <guilabel>Printer</guilabel> combo
+box to see a list of the system printer queues. Select the queue to which
+you would like the printed image to be sent. One may also print the
+image directly to a file by selecting <guimenuitem>File</guimenuitem>.
+In this event, the user will be prompted for the filename when either the
+<guibutton>Print</guibutton> button or the <guibutton>Print and Save
+Settings</guibutton> button is clicked.
+ </para>
+ <para>
+When either the <guibutton>Print and Save Settings</guibutton> button
+or the <guibutton>Save Settings</guibutton> button is clicked,
+the settings are saved in a file called
+<filename>~/.gimp-1.2/printrc</filename>. The user is cautioned about
+hand editing this file since it is generated by Gimp-Print (although
+it was the only way that the author found for removing bogus entries
+created while playing with the <guibutton>New Printer</guibutton> button).
+ </para>
+ </sect3>
+
+ <sect3><title>Setup Printer</title>
+ <para>
+ Before any useful printing can occur, the user needs to associate
+the named printer with the
+actual make and model of the printer. Click the
+<guibutton>Setup Printer</guibutton> button in
+the <guilabel>Printer</guilabel> section of the window (the upper
+right, and just below the Printer display box). When this is done, the
+following window appears:
+
+ <figure><title>The Setup Printer Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="60" fileref="figures/gimp-print-setup.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The Setup Printer Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+ </para>
+
+ <para>
+ Scroll through the Printer Model section of the window until you
+find a printer which matches yours. If you cannot find the precise
+model, pick something close and hope for the best. There are selections
+for a wide array of Postscript, inkjet, and laser printers. After you
+have selected a printer, you will see the printer command displayed.
+ </para>
+ <para>
+The Gimp-Print software does all of the necessary conversion of the
+image to be printed into the language of your printer. It is
+unnecessary and undesirable for any other sofware to manipulate this
+data. (This is why the command contains the "-l" switch or the "-o
+raw" switch). Please use care if you feel the need to edit this
+command. Once you are satisfied with your selection, click the
+<guibutton>OK</guibutton> button.
+ </para>
+
+ </sect3>
+
+ <sect3><title>New Printer</title>
+
+ <para>
+ In the previous sections, the user selected an existing printer
+queue and associated a particular type of printer to that queue. For
+most cases, this is probably all that is required. However, some
+situations might require more detailed control over the handling of
+the printer data.
+ </para>
+ <para>
+ Click the <guibutton>New Printer</guibutton> button to tell the
+software that you wish to create a new name. In this case, the new
+name may actually be an existing printer with different settings that
+you wish to save, or it may simply be a name associated with a
+particular command for handling the printer data. A window will
+appear thus:
+
+ <figure><title>The New Printer Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/gimp-print-new-printer.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>The New Printer Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ Type a name into the window and click <guibutton>OK</guibutton>
+(or <guibutton>Cancel</guibutton> if you wish not to do this).
+Notice that the new name now appears as the selected <guilabel>Printer</guilabel>.
+As you change settings in the rest of the Gimp-Print GUI, they will be
+associated with this printer name. When the settings are saved,
+they can be recovered easily by simply selecting this named printer
+from the Printer combo box.
+ </para>
+ <para>
+ One example where this feature might be used is as follows. The
+author frequently prints photos on Epson 4x6 photo paper. Note that
+this paper is physically larger than 4x6 and it has perforations on
+all four sides. The author dislikes printing part of the image on the
+perforated parts of the paper which will be removed after
+printing the photo. By selecting the proper scaling percentage,
+printing can be constrained to the 4x6 part of the paper which will
+remain after the perforated sections are removed. The author has
+saved this setting using this feature of the Gimp-Print software.
+ </para>
+
+ </sect3>
+
+ <sect3><title>Media Size</title>
+ <para>
+ The term <emphasis>media</emphasis> refers to paper, card stock,
+envelopes, or whatever you have put into your printer onto which
+something will be printed. Click the arrow to the right of the
+<guilabel>Media Size</guilabel> box to see a long list of different
+sizes of media. Choose the size that matches the media which you have
+loaded into your printer. Once you have made your choice, the drop
+down menu will disappear, and your choice will be shown in the
+<guilabel>Media Size</guilabel> box. The available paper sizes will
+vary depending upon the printer model you have selected.
+ </para>
+ <para>
+ Some printers support arbitrary (within limits!) paper sizes.
+ These printers will let you select <emphasis>Custom</emphasis>
+ or <emphasis>Roll</emphasis> paper sizes. When you select such a
+ printer, one or both of the <guilabel>Dimensions</guilabel> boxes
+ will let you enter your paper size (in inches or centimetres). The
+ boxes will not let you enter sizes that your printer cannot handle.
+ </para>
+ </sect3>
+
+ <sect3><title>Media Type</title>
+ <para>
+ The type of media onto which your image will be printed should be
+selected here. Click on the arrow to the right of the <guilabel>Media
+Type</guilabel> box to see a long list of the different types of media
+onto which you may print your image. Media types include such things
+as plain paper, postcards, photo quality paper, transparencies, and
+more! Once you have made your choice, the drop down menu will
+disappear, and your choice will be shown in the <guilabel>Media
+Type</guilabel> box. The choices available will vary depending upon
+the printer model you have selected.
+ </para>
+ </sect3>
+
+ <sect3><title>Media Source</title>
+ <para>
+ The <guilabel>Media Source</guilabel> box allows the user to
+ choose the paper source, sometimes called <emphasis>Input
+ Slot</emphasis>, that the paper will be fed from. Many printers
+ only have one available input source (such as the standard paper
+ tray), in which case this entry will be grayed out. If your printer
+ does support multiple input sources, you may specify the source of
+ your choice here. Some Epson printers offer a roll feed option in
+ addition to the standard paper tray, and many HP LaserJet printers
+ have multiple paper trays.
+ </para>
+ </sect3>
+
+ <sect3><title>Ink Type</title>
+ <para>
+ Some printers offer a choice of different types of ink or ink
+ cartridges. Many Canon and Lexmark printers support various
+ combinations of cartridges, such as black only, black and color,
+ photo color, and so forth. Most Epson printers let you choose
+ between three and four color printing (three color uses only color
+ ink, while four color uses black ink as well). Epson printers that
+ support six color photo printing allow you to choose five and six
+ color printing as well.
+ </para>
+ </sect3>
+
+ <sect3><title>Resolution</title>
+ <para>
+ Click on the arrow to the right of the
+<guilabel>Resolution</guilabel> box to see a long list of resolutions
+at which you can print your image. The list is written with the
+lowest resolution at the top, with increasing resolution (and
+generally improved printing quality) as you approach the bottom of the
+list. Different printers support different resolution options, and
+many printers support different quality choices using the same basic
+resolution. In this menu are a few terms which may be unfamiliar to
+you, and they will now be explained.
+ </para>
+ <sect4><title>DPI</title>
+ <para>
+ DPI is an acronym which stands for <emphasis>D</emphasis>ots
+<emphasis>P</emphasis>er <emphasis>I</emphasis>nch. This term refers
+to the number of dots that your printer will print in a space of one
+inch (approximately 2.54 cm). This is highly dependent upon the
+capability of your printer. Resolutions below 300 DPI are
+used for draft quality. For general purpose printing, select
+300 - 360 DPI. Higher quality printing can be achieved by
+selecting 600 - 720 DPI. Settings higher than this are used for the
+highest possible quality for printing photographs and other high
+quality graphics. Experiment with your printer and these settings
+with different types of graphics and photographs to see what
+results you can obtain with your printer. High resolutions (large
+numbers of dots per inch) require substantial image processing time,
+and the print files can be very large; it's not uncommon for a full
+page, 1440x720 DPI image to require 100 MB of temporary storage!
+ </para>
+ </sect4>
+ <sect4><title>Draft or Fast Economy Draft</title>
+ <para>
+ When this text appears next to the resolution, it refers to the
+fact that the quality will be relatively low, but suitable for rough
+drafts. Draft quality is higher than fast economy draft. These
+options will give you the fastest printing speed. Economy Draft uses
+less ink, and as a result the image will be pale. These modes are
+generally not very useful for printing photographs.
+ </para>
+ </sect4>
+
+ <sect4><title>Unidirectional</title>
+ <para>
+ When printing an image, you have probably noticed the print
+head inside the printer moving back and forth across the print media.
+Many printers are capable of putting ink on the page regardless of
+which direction the print head is moving. However, quality can
+sometimes be improved by only putting ink on the page when the printer
+head is moving in one direction. The
+<guimenuitem>Unidirectional</guimenuitem> setting instructs the
+software to only place ink on the page when the print head is moving
+one way. When the print head returns, it will not place ink on the
+page. On many printers, the print quality is better, at the expense
+of printing speed.
+ </para>
+ </sect4>
+ <sect4><title>High(est) Quality</title>
+ <para>
+ With lower quality print modes, one may see an effect where
+the printed image looks like it has rows of stripes with a small
+separation between the stripes. This effect is called "banding" and
+is undesirable. In the <emphasis>high</emphasis> and
+<emphasis>highest</emphasis> quality modes, the printer will make more
+passes over the same part of the page in order to improve quality and
+(reduce or) eliminate banding. This requires more temporary disk
+space and prints more slowly, but does not require significantly more
+processing time.
+ </para>
+ </sect4>
+ <sect4><title>Interleave</title>
+ <para>
+ Certain Epson printers (older models mostly) support a printing
+ mode called <emphasis>Interleave</emphasis>. This mode uses
+ special software within the printer to improve the print quality.
+ Interleave print modes will usually produce better quality
+ output than non-Interleave modes, with only a small performance
+ penalty. If Interleave is not listed at your chosen
+ resolution, fear not. In those cases, the non-Interleave print
+ modes offer similar printing quality improvements.
+ </para>
+ </sect4>
+ <sect4><title>DMT</title>
+ <para>
+ DMT is an acronym which stands for <emphasis>D</emphasis>ot
+ <emphasis>M</emphasis>odulation
+ <emphasis>T</emphasis>echnology.
+ This term refers to a print mode used by certain Canon printers
+ to improve the quality of the printed output. Unfortunately,
+ at this time, all of the available DMT modes do not work
+ correctly. The cases which do work correctly will offer
+ significantly improved printing quality.
+ </para>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2><title id="sec-preview">Preview</title>
+ <para>
+ Notice in the upper left of the window is a preview of your image.
+This preview is a representation of where your picture will print on
+the selected media, and approximately what it will look like. This
+preview will be updated as you modify selections in the
+<guilabel>Position</guilabel>, <guilabel>Size</guilabel>,
+<guilabel>Media Size</guilabel>, and <guilabel>Output Type</guilabel>
+portions of the window. You may also select the image with your mouse
+and move it manually if you wish. In doing so, you will note that the
+<guilabel>Position</guilabel> settings are updated accordingly. Take
+note of the arrow, which points toward the top of the media, where top
+is the first part of the media to enter the printer.
+ </para>
+ <para>
+ The preview may be moved around the page as follows:
+ </para>
+ <itemizedlist>
+ <listitem><para> Clicking and dragging the <emphasis>left</emphasis>
+ (primary) mouse button moves the image around the page as you would
+ expect; the image moves with the mouse. </para></listitem>
+ <listitem><para> Clicking and dragging the
+ <emphasis>middle</emphasis> mouse button moves the image around the
+ page in a finer fashion, such that each pixel of mouse movement
+ moves the image by one point (1/72 inch). This allows very fine
+ placement of the image on the page. </para></listitem>
+ <listitem><para> Clicking and dragging the
+ <emphasis>right</emphasis> (secondary) mouse button moves the image
+ around the page much the same as with the left button, but the image
+ will only move in units of the image size. Thus, if the image is
+ one inch wide and two inches tall, the image will not move at all
+ until you have moved the mouse far enough so that the image would be
+ moved one inch vertically and two inches horizontally. This is
+ handy if you wish to print multiple images of the same size on one
+ piece of paper.</para></listitem>
+ <listitem><para> If you hold down the <emphasis>shift</emphasis> key
+ on the keyboard when you click and drag the mouse, the image will
+ only move in the horizontal or vertical direction (depending upon
+ which way you first move the mouse). This allows you to constrain
+ motion to the horizontal or vertical. </para></listitem>
+ <listitem><para> If you click another button while dragging the
+ mouse, the image will immediately return to the position it was in
+ before you clicked the mouse the first time. This allows you to
+ not move the image if you have started moving it and have decided
+ that you don't want to move it. The preview will not respond to the
+ mouse until you release all of the mouse buttons and click and drag
+ afresh. </para></listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2><title id="sec-position">Position</title>
+
+ <sect3><title>Orientation</title>
+ <para>
+ The Orientation menu allows the user to choose the orientation
+of the paper. The menu selections are
+<guimenuitem>Auto</guimenuitem>, <guimenuitem>Portrait</guimenuitem>,
+<guimenuitem>Landscape</guimenuitem>, <guimenuitem>Upside
+down</guimenuitem>, and <guimenuitem>Seascape</guimenuitem>. Click on
+the rectangular tab to see these choices
+and make your selection. When you have done so, the pulldown menu
+will have disappeared, and your choice will appear. Also, note that
+the preview image will have changed accordingly.
+ </para>
+ <para>
+ When set to <guimenuitem>Auto</guimenuitem>, the software will make an
+intelligent choice of orientation based on the dimensions of the image
+to be printed. <guimenuitem>Portrait</guimenuitem> orients the print media
+with the longest edge going from top to bottom, while
+<guimenuitem>Landscape</guimenuitem> orients the paper with the longest edge
+going from side to side. <guimenuitem>Upside down</guimenuitem> and
+<guimenuitem>Seascape</guimenuitem> orient the paper the same as
+<guimenuitem>Portrait</guimenuitem> and <guimenuitem>Landscape</guimenuitem>
+respectively, with the difference being that the image is rotated 180 degrees.
+ </para>
+ </sect3>
+
+ <sect3><title>Automatic Centering</title>
+ <para>
+ There are three buttons that deal with centering an image. The
+leftmost button is the <guibutton>Vertically</guibutton> button, the
+middle button is the <guibutton>Both</guibutton> button, and
+the rightmost button is the <guibutton>Horizontally</guibutton>
+button. Use the <guibutton>Both</guibutton> button to center your
+image both horizontally and vertically. This will cause the top and
+bottom borders to be equal, and the left and right borders to be
+equal. If you have placed your image manually by using the mouse
+button, then you may center the image in the horizontal direction only
+by clicking on the <guibutton>Horizontally</guibutton> button.
+Likewise, to adjust the image only in the vertical direction, click on
+the <guibutton>Vertically</guibutton> button. Note that in
+each case, the image is centered with regard to the edges of the
+media, and without regard to the printable portion of the media. Many
+printers are incapable of printing to each edge of the media. Some
+media may have edges which detach. Consult your printer documentation
+for more details regarding your printer's capabilities in this regard.
+ </para>
+ </sect3>
+
+ <sect3><title>Manual Settings</title>
+ <para>
+ You will notice that there are six boxes that contain numbers
+just below the Orientation menu and just above the GUI buttons related
+to centering an image. When you move the preview image manually with
+the mouse, or when you click on one of the centering buttons, the
+preview image moves and these six boxes get updated.
+ </para>
+ <sect4><title>Left</title>
+ <para>
+ The number appearing in the <guimenuitem>Left</guimenuitem> box denotes
+the number of units (cm or inches) that the left side of the image
+will be printed away from the left edge of the media. You may select
+the units by clicking the <guibutton>Inch</guibutton> or
+<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
+these GUI boxes.
+ </para>
+ </sect4>
+ <sect4><title>Right</title>
+ <para>
+ The number appearing in the <guimenuitem>Right</guimenuitem> box denotes
+the number of units (cm or inches) that the right side of the image
+will be printed away from the left edge of the media. You may select
+the units by clicking the <guibutton>Inch</guibutton> or
+<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
+these GUI boxes.
+ </para>
+ </sect4>
+ <sect4><title>Right Border</title>
+ <para>
+ The number appearing in the <guimenuitem>Right Border</guimenuitem> box denotes
+the number of units (cm or inches) that the right side of the image
+will be printed away from the right edge of the media. You may select
+the units by clicking the <guibutton>Inch</guibutton> or
+<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
+these GUI boxes.
+ </para>
+ </sect4>
+ <sect4><title>Top</title>
+ <para>
+ The number appearing in the <guimenuitem>Top</guimenuitem> box denotes
+the number of units (cm or inches) that the top side of the image
+will be printed away from the top edge of the media. You may select
+the units by clicking the <guibutton>Inch</guibutton> or
+<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
+these GUI boxes.
+ </para>
+ </sect4>
+ <sect4><title>Bottom</title>
+ <para>
+ The number appearing in the <guimenuitem>Bottom</guimenuitem> box denotes
+the number of units (cm or inches) that the bottom side of the image
+will be printed away from the top edge of the media. You may select
+the units by clicking the <guibutton>Inch</guibutton> or
+<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
+these GUI boxes.
+ </para>
+ </sect4>
+
+ <sect4><title>Bottom Border</title>
+ <para>
+ The number appearing in the <guimenuitem>Bottom Border</guimenuitem> box denotes
+the number of units (cm or inches) that the bottom side of the image
+will be printed away from the bottom edge of the media. You may select
+the units by clicking the <guibutton>Inch</guibutton> or
+<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
+these GUI boxes.
+ </para>
+ </sect4>
+
+ </sect3>
+
+ </sect2>
+
+ <sect2><title id="sec-scaling">Size</title>
+
+ <sect3><title>Slider Bar and Spin Box</title>
+ <para>
+ The slider bar can be moved as desired by the user. Notice
+that while sliding this bar, the preview image changes accordingly.
+One will also note that several boxes in the Gimp-Print GUI change values when this bar is moved.
+These boxes are the six position boxes (left, right, right border,
+top, bottom, bottom border), the two size boxes (width and height),
+and the spin box to the right of the slider bar.
+ </para>
+ <para>
+ This slider bar is used to scale the image to a desirable size, but the same effect can
+be obtained by either clicking an arrow on the spin box to the right of this
+slider bar, or by manually typing a number into this spin box. Notice
+that by setting the spin box in this way, the slider bar is also
+moved. All of the described methods will cause the image to be
+scaled accordingly.
+ </para>
+ </sect3>
+
+ <sect3><title>Scale by Percent or PPI</title>
+ <para>
+ One may choose to scale the image by a percentage, or by PPI,
+which means "<emphasis>p</emphasis>ixels <emphasis>p</emphasis>er
+<emphasis>i</emphasis>nch". Click the radio button
+next to the word to set the desired scaling factor.
+ </para>
+ <para>
+ When scaling by a percentage, the number reflected in the spin
+box next to the slider bar represents the percentage relative
+to the full size of the selected print medium. For example, with this spin box
+set to 50, the image will be scaled to 50% of the size of the print
+medium. When set to 100, the image will attempt to fill the print
+medium, within the constraints of maintaining the proper aspect ratio
+and the margins of the selected print medium. This effect can be seen
+in the preview window.
+ </para>
+ <para>
+ When scaling by PPI, the number reflected in the spin box next to
+the slider bar represents the number of pixels that will be
+printed per inch. For example, if the user is printing a 640x480
+image at a size of 6.4x4.8 inches (as measured by the size boxes), the
+image will be printed at 100 DPI.
+ </para>
+ </sect3>
+
+ <sect3><title>Use Original Image Size</title>
+ <para>
+ By clicking this button, the image will be scaled to as close
+to the native size of the image as possible. This effect can
+immediately be seen in the preview image.
+ </para>
+ <para>
+ The native image size may be found or set in the GIMP by
+ selecting <guimenuitem>Image/Scale Image</guimenuitem> in the
+ GIMP. Under the <guilabel>Print Size and Display Unit</guilabel>
+ group in the <guilabel>Scale Image</guilabel> dialog, you can
+ determine (or change) the width and height of the image, or
+ choose the resolution.
+ </para>
+ </sect3>
+
+ <sect3><title>Width and Height</title>
+ <para>
+ These boxes show the size of the printed image in either inches
+or centimeters (depending on which unit is selected). The user may
+choose to manually modify these values. When one value is modified,
+the other value is automatically modified in order to maintain the
+aspect ratio (the ratio of width to height). This effect can be
+immediately seen in the preview image.
+ </para>
+ </sect3>
+
+ <sect3><title>Units</title>
+ <para>
+ The units can be set to inches or centimeters by clicking the appropriate
+radio button next to the desired unit. This setting effects the
+values printed in the six position boxes (left, right, right border,
+top, bottom, bottom border) and the two size boxes (width and height).
+ </para>
+ </sect3>
+
+ </sect2>
+
+ <sect2><title id="sec-image-settings">Image/Output Settings</title>
+ <para>
+ By clicking on the tab labeled <guilabel>Image/Output
+Settings</guilabel>, the Gimp-Print window will appear as shown in
+<xref linkend="fig-gimp-print-gui-1">. Notice that there are
+two sections to this portion of the window, namely,
+<guilabel>Image Type</guilabel> and
+<guilabel>Output Type</guilabel>.
+
+ </para>
+
+ <sect3><title>Image Type</title>
+
+ <sect4><title>Line Art</title>
+ <para>
+ This setting tells the printer driver to generate color
+quickly. The color is bold and bright, but color accuracy is not very
+good. There may also be some unexpectedly sharp transitions in
+colors. This mode is acceptable for printing text with small amounts
+of color, and may be acceptable for presentation graphics.
+ </para>
+ </sect4>
+
+ <sect4><title>Solid Colors</title>
+ <para>
+ This mode produces color which is considerably more accurate
+than the <guilabel>Line Art</guilabel> mode, but with a reduction in performance. In
+general, hues will be accurate but tonalities may not be accurate.
+There should be no sharp transitions in colors. This mode is good for
+printing presentation graphics in most cases.
+ </para>
+ </sect4>
+
+ <sect4><title>Photograph</title>
+ <para>
+ This mode produces the most accurate colors and tonalities at a
+greater cost in performance. This is the mode to use when printing
+high quality photographs or other high quality images.
+ </para>
+ </sect4>
+
+ </sect3>
+
+ <sect3><title>Output Type</title>
+ <para>
+ The user is given the choice of color, black and white, and
+grayscale. Color is selected when the desired output is to be in
+color. Greyscale will result in the printed image having various
+shades of grey. Black and white is just that. The effect of this
+setting can be seen in the preview window.
+ </para>
+ </sect3>
+
+ <sect3><title>Adjust Output</title>
+ <para>
+ Clicking on this button causes the <guilabel>Print Color Adjust</guilabel> window to
+appear (see <xref linkend="fig-gimp-print-color-adjust">). In
+this window, one will see a representation of the image to be printed
+as well as several slider bars. These slider bars collectively adjust
+many different aspects of the image. The values can also be adjusted
+by clicking the arrows or by typing a value into the appropriate spin
+box on the right side of each slider bar.
+ </para>
+
+ <figure id="fig-gimp-print-color-adjust"><title>The Print Color Adjust Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="50" fileref="figures/gimp-print-print-color-adjust.png" FORMAT="PNG">
+ </imageobject>
+ <textobject>
+ <phrase>>The Print Color Adjust Window</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <sect4><title>Brightness</title>
+ <para>
+ Adjust the brightness of the image. A setting of 0.0 gives a fully black
+image, while a 2.0 setting gives a fully white image. Values greater than 1.0 will result in
+ black not being solid and highlights turning white; values less than
+ 1.0 will result in white not being perfectly clear and shadows turning
+ black.
+ </para>
+ </sect4>
+
+ <sect4><title>Contrast</title>
+ <para>
+ Adjust the contrast of the image. A setting of 0.0 gives a solid gray for the
+entire image, the exact gray depending upon the brightness chosen.
+ </para>
+ </sect4>
+
+ <sect4><title>Cyan, Magenta, Yellow</title>
+ <para>
+These three options allow specification of the cyan, magenta, and
+yellow levels independently, for rebalancing the levels. Normally,
+these should be adjusted to yield neutral gray, but they can be used
+for other effects.
+ </para>
+ </sect4>
+
+ <sect4><title>Saturation</title>
+ <para>
+Adjust the brilliance of colors. A setting of 0.0 results in pure grayscale.
+A saturation setting of less than 1.0 results in more muted colors. A
+saturation setting of greater than 1.0 results in more vibrant colors. Very high
+saturation often results in very strange effects, including
+posterization and banding that might not be expected. For normal
+purposes, the saturation should generally be set to a value less than 1.5.
+ </para>
+ </sect4>
+
+ <sect4><title>Density</title>
+ <para>
+Adjust the amount of ink deposited on the paper. If you have chosen the
+correct paper type and are getting ink bleeding through the paper
+or puddling, try reducing the density to the lowest value you
+can while still achieving solid black. If black is not solid
+black, even with the contrast and brightness at 1.0, try increasing
+the density. Note that changes to this setting will not be visible in
+the image preview.
+ </para>
+ <para>
+All of the supported printers actually need less than 100% ink
+density in most cases, so the actual density is something other than
+the nominal density setting. The effective density setting cannot go
+above 100%, so if a value specified will result in an excessively high
+density level, it will be silently limited to a setting of 1.0.
+ </para>
+ </sect4>
+
+ <sect4><title>Gamma</title>
+ <para>
+Adjust the gamma of the image, over and above the printer-specific
+correction. Gamma less than 1.0 will result in a darker image; gamma
+greater than 1.0 will result in a lighter image. Unlike brightness,
+gamma adjustment does not change the endpoints; it merely changes the
+shape of the input->output curve.
+ </para>
+ </sect4>
+
+ <sect4><title>Dither Algorithm</title>
+ <para>
+The recommended dither algorithm is <guimenuitem>Adaptive
+Hybrid</guimenuitem> (which is the default) for text or other fine
+black detail, or if this is mixed with continuous tone images. The
+<guimenuitem>Ordered</guimenuitem> dithering algorithm is just as good
+(and somewhat faster) for pure continuous-tone images and photographs,
+but may yield poor results with text or other fine detail,
+particularly at high printing resolutions.
+ </para>
+ <para> The <guimenuitem>Fast</guimenuitem> algorithm gives the
+fastest results at the expense of color accuracy. It is a simplified
+ordered dither. On simple four color printers (or other printers used
+in four color mode), the quality is similar to
+<guimenuitem>Ordered</guimenuitem>, although dark gray rendition is
+not as good due to a simpler transfer between black and colored ink.
+With six-color printers, color rendition is somewhat worse, but it
+should be quite usable in cases where optimum quality is not critical.
+In black and white, it is an efficient way to render grayscale, but it
+may not give best results when used with variable dot size printers
+(modern Epson printers, or Canon printers using DMT). On rare three
+color printers (CMY only) the results should be identical to ordered
+dither.
+ </para>
+ <para> <guimenuitem>Very Fast</guimenuitem> is even faster than
+<guimenuitem>Fast</guimenuitem>, with even more loss of quality.
+Color and grayscale output will show strong patterning that resembles
+screening, although it isn't. On laser printers, and possibly on
+certain kinds of text and line art, <guimenuitem>Very
+Fast</guimenuitem> dithering may actually yield the best quality.
+ </para>
+ <para>
+Error diffusion algorithms (<guimenuitem>Hybrid
+Floyd-Steinberg</guimenuitem> is such an algorithm) perform very well
+at high densities, and are capable of
+rendering very fine detail rather well, but they tend to exhibit artifacts in
+the form of "waves" or "worms" of dots which results in noticeable
+texturing in pale areas. Furthermore, pale areas immediately adjacent
+to white take a while to "build up" sufficient error to print at all.
+This is sometimes called "tearing" or "waterfalling".
+ </para>
+
+ </sect4>
+
+ <sect4><title>Set Defaults and Close</title>
+ <para>
+ When the <guibutton>Set Defaults</guibutton> button is clicked,
+the slider bar settings will return to their default values. The
+dither algorithm setting is uneffected. The <guilabel>Print Color
+Adjust</guilabel> window will close when the
+<guibutton>Close</guibutton> button is clicked.
+ </para>
+ </sect4>
+
+ </sect3>
+
+ </sect2>
+
+ <sect2><title id="sec-printing-and-saving-settings">Printing and Saving Settings</title>
+ <para>
+ At the bottom of the Gimp-Print window, there are five buttons labeled
+<guibutton>About</guibutton>,
+<guibutton>Print and Save Settings</guibutton>,
+<guibutton>Save Settings</guibutton>,
+<guibutton>Print</guibutton>,
+and <guibutton>Cancel</guibutton>. The <guibutton>About</guibutton>
+button will show information about the Gimp-Print software, such as
+the version number, authors names, project web site, and software
+licensing. After clicking on the <guibutton>About</guibutton>, read
+the information, and then close the window by pressing the
+<guibutton>OK</guibutton> button.
+ </para>
+ <para>
+ The <guibutton>Print and Save Settings</guibutton> button will
+save the current settings and then print the desired image. Recall
+that these settings are saved in <filename>~/.gimp-1.2/printrc</filename>. The
+<guibutton>Save Settings</guibutton> button will only save the
+settings. The <guibutton>Print</guibutton> button will print the
+image only. The <guibutton>Cancel</guibutton> will close the
+Gimp-Print GUI window.
+ </para>
+ </sect2>
+
+ </sect1>
+
+ </chapter>
diff --git a/doc/users_guide/history.sgml b/doc/users_guide/history.sgml
new file mode 100644
index 0000000..9f5bd29
--- /dev/null
+++ b/doc/users_guide/history.sgml
@@ -0,0 +1,108 @@
+
+ <chapter><title>Project History</title>
+ <para>
+This software package was first written by Michael Sweet of
+<ulink url="http://www.easysw.com">Easy Software Products</ulink> and
+initially worked only as a print plugin to the GIMP (GNU Image
+Manipulation Program). In the summer of 1999,
+Robert Krawitz (the current
+Gimp-Print project leader) purchased an Epson Stylus Photo EX printer
+to feed his photography hobby. Finding no existing printer drivers, Robert
+adapted Mike's Gimp-Print plugin to his six-color printer, and by the end
+of the year released version 3.0 of the Gimp-Print software, which was
+included in version 1.1 of the GIMP. The intention was for this to be
+the stable plugin in version 1.2 of the GIMP while development of the
+Gimp-Print plugin continued for later release.
+ </para>
+ <para>
+Robert put the Gimp-Print development tree on SourceForge starting
+with version 3.1, and quickly found a group of like-minded people who wanted to print
+high quality output on inexpensive inkjet printers. One of the main
+goals, which was not expected to be met until late in the version 3.1
+cycle, was to write a Ghostscript driver so that printing would not be
+restricted to the GIMP. Imagine Robert's surprise when Henryk "Buggs"
+Richter wrote one within days!
+ </para>
+ <para>
+In July 2000, not more than a year after Robert bought his Epson
+Stylus Photo EX, he was invited to the Linux Printing
+Summit hosted by VA Linux Systems. In preparation for that, he spent
+long hours printing out test images. Robert went back to the
+Gimp-Print version 3.0.9 release, which seemed like such an advance
+at the time, and was floored at how far the project had come in four
+months! Output that had been considered impressive with using six
+colors was put to shame by four color output. That should give you
+an idea what six color and variable dot size printers can do. It also
+illustrates what a group of committed people can do.
+ </para>
+ <para>
+Robert came away from the Printing Summit with a lot of new ideas, and in
+November 2000, Gimp-Print version 4.0 was released, the culmination of 9 months
+of work by the team. The quality was already tremendously improved
+over what the software could do at the Printing Summit.
+ </para>
+ <para>
+The team started serious work on version 4.1 in December
+2000, and version 4.2.0 was released in November 2001. Despite the fact
+that version 4.2.0 is a "minor" release over version 4.0, there are vast
+improvements:
+ <itemizedlist>
+ <listitem>
+ <para>
+ The driver is built as a shared library, making it much easier
+to use by higher layers of software
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The packaging system now follows GNU standards
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+The print quality (in particular, color accuracy, a well-known weakness in 4.0) is even better
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Improved performance
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Many more options
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ More supported printers
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+ <para>
+Releases of Gimp-Print have been historically numbered in
+a fashion similar to that of the Linux kernel, where major releases
+are denoted by the first digit (in this case '4'), while minor
+releases are denoted by subsequent digits (such as '4.2.0'). Even
+numbered minor releases are considered stable, while odd numbered
+minor releases are considered development releases (whose stability
+may vary for any given release).
+ </para>
+ <para>
+This project is by no means finished. In future releases, the development
+team hopes to include the following:
+ <itemizedlist>
+ <listitem><para>implementation of proper color management</para></listitem>
+ <listitem><para>improved dithering</para></listitem>
+ <listitem><para>improvements in performance</para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+The entire Gimp-Print team hopes you will really enjoy using this
+software! For more information, please consult the GIMP-Print project
+<ulink url="http://gimp-print.sourceforge.net">web page</ulink>.
+ </para>
+ </chapter>
diff --git a/doc/users_guide/html-stamp b/doc/users_guide/html-stamp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/users_guide/html-stamp
diff --git a/doc/users_guide/html/HTML.manifest b/doc/users_guide/html/HTML.manifest
new file mode 100644
index 0000000..d09e506
--- /dev/null
+++ b/doc/users_guide/html/HTML.manifest
@@ -0,0 +1,21 @@
+book1.html
+c29.html
+ch-gimp-and-gimp-print.html
+x85.html
+c447.html
+x456.html
+x548.html
+x562.html
+c570.html
+gfdl.html
+x642.html
+x652.html
+x656.html
+x662.html
+x698.html
+x703.html
+x707.html
+x711.html
+x714.html
+x717.html
+x722.html
diff --git a/doc/users_guide/html/book1.html b/doc/users_guide/html/book1.html
new file mode 100644
index 0000000..2365338
--- /dev/null
+++ b/doc/users_guide/html/book1.html
@@ -0,0 +1,483 @@
+<HTML
+><HEAD
+><TITLE
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="NEXT"
+TITLE="Project History"
+HREF="c29.html"></HEAD
+><BODY
+CLASS="BOOK"
+><DIV
+CLASS="BOOK"
+><A
+NAME="AEN1"
+></A
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</A
+></H1
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN6"
+>Andy Stewart</A
+></H3
+><P
+CLASS="COPYRIGHT"
+><A
+HREF="ln12.html"
+>Copyright</A
+> &copy; 2002 by Andy Stewart</P
+><DIV
+><DIV
+CLASS="ABSTRACT"
+><A
+NAME="AEN16"
+></A
+><P
+></P
+><P
+> The Gimp-Print Top Quality Printer Drivers (hereafter
+called Gimp-Print) are a set of printer drivers written to
+take advantage of the full capabilities of a wide range of
+printers. These drivers should work on any POSIX compliant operating
+system (e.g. Linux, Solaris, IRIX, etc). This document will explain how to
+use the Gimp-Print software to achieve high quality printouts from the
+<A
+HREF="http://www.gimp.org"
+TARGET="_top"
+>GIMP</A
+> (GNU Image
+Manipulation Program) and
+<A
+HREF="http://www.cups.org"
+TARGET="_top"
+>CUPS</A
+> (Common Unix Printing
+System).
+ </P
+><P
+> Please note that in addition to using the Gimp-Print software as a
+print plugin for the GIMP, and as a set of printer drivers for CUPS, this
+software can also be compiled and used with the
+<A
+HREF="http://www.ghostscript.com"
+TARGET="_top"
+>Ghostscript</A
+> software
+and with the
+<A
+HREF="http://www.linuxprinting.org/foomatic.html"
+TARGET="_top"
+>Foomatic</A
+>
+software.
+ </P
+><P
+>Regardless of whether the Gimp-Print software is used with the GIMP,
+CUPS, Ghostscript, or Foomatic, the print quality and printer settings
+remain the same. However, use of the Gimp-Print with Ghostscript and
+Foomatic is not covered in this document. These topics may be covered
+in a future revision of this document.
+ </P
+><P
+> This document corresponds to version 4.2.0 and later of the Gimp-Print
+software. This document will serve as a guide to the user, and as such
+will not explain how to install Gimp-Print, CUPS, GIMP, Ghostscript,
+Foomatic, or any other related software.
+ </P
+><P
+> Andy Stewart, the author, is the founder of the
+<A
+HREF="http://www.wlug.org"
+TARGET="_top"
+>Worcester Linux Users' Group</A
+> in
+Worcester, Massachusetts, USA. The group was founded in July 1997 and has
+approximately 140 people on its mailing list. Monthly meetings are
+held and all are invited.
+ </P
+><P
+> In terms of "code", this is the author's first contribution to the
+open source community, and definitely his first experience with DocBook.
+Constructive comments, praise, words of encouragement, and the like
+will be most appreciated if e-mailed to the
+<A
+HREF="mailto:andystewart@attbi.com"
+TARGET="_top"
+>author</A
+>.
+ </P
+><P
+></P
+></DIV
+></DIV
+><HR></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+>1. <A
+HREF="c29.html"
+>Project History</A
+></DT
+><DT
+>2. <A
+HREF="ch-gimp-and-gimp-print.html"
+>GIMP and Gimp-Print</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="ch-gimp-and-gimp-print.html#AEN63"
+>Running the GIMP</A
+></DT
+><DT
+><A
+HREF="x85.html"
+>The Gimp-Print Graphical User Interface</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="x85.html#AEN130"
+>Printer Settings</A
+></DT
+><DT
+><A
+HREF="x85.html#AEN234"
+>Preview</A
+></DT
+><DT
+><A
+HREF="x85.html#AEN258"
+>Position</A
+></DT
+><DT
+><A
+HREF="x85.html#AEN330"
+>Size</A
+></DT
+><DT
+><A
+HREF="x85.html#AEN357"
+>Image/Output Settings</A
+></DT
+><DT
+><A
+HREF="x85.html#AEN430"
+>Printing and Saving Settings</A
+></DT
+></DL
+></DD
+></DL
+></DD
+><DT
+>3. <A
+HREF="c447.html"
+>CUPS and Gimp-Print</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="c447.html#AEN449"
+>Introduction</A
+></DT
+><DT
+><A
+HREF="x456.html"
+>CUPS Printer Installation</A
+></DT
+><DT
+><A
+HREF="x548.html"
+>Configuring your Printer in CUPS</A
+></DT
+><DT
+><A
+HREF="x562.html"
+>Using CUPS from the Command Line</A
+></DT
+></DL
+></DD
+><DT
+>4. <A
+HREF="c570.html"
+>Gimp-Print Utilities</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="c570.html#AEN572"
+>escputil</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="c570.html#AEN584"
+>Determining Ink Level</A
+></DT
+><DT
+><A
+HREF="c570.html#AEN593"
+>Error During Ink Level Determination</A
+></DT
+><DT
+><A
+HREF="c570.html#AEN597"
+>Nozzle Check</A
+></DT
+><DT
+><A
+HREF="c570.html#AEN602"
+>Clean the Print Head</A
+></DT
+><DT
+><A
+HREF="c570.html#AEN608"
+>Align the Print Head</A
+></DT
+><DT
+><A
+HREF="c570.html#AEN624"
+>Printer Identification</A
+></DT
+><DT
+><A
+HREF="c570.html#AEN628"
+>More Information</A
+></DT
+></DL
+></DD
+></DL
+></DD
+><DT
+>A. <A
+HREF="gfdl.html"
+>GNU Free Documentation License</A
+></DT
+><DD
+><DL
+><DT
+>0. <A
+HREF="gfdl.html#AEN637"
+>PREAMBLE</A
+></DT
+><DT
+>1. <A
+HREF="x642.html"
+>APPLICABILITY AND DEFINITIONS</A
+></DT
+><DT
+>2. <A
+HREF="x652.html"
+>VERBATIM COPYING</A
+></DT
+><DT
+>3. <A
+HREF="x656.html"
+>COPYING IN QUANTITY</A
+></DT
+><DT
+>4. <A
+HREF="x662.html"
+>MODIFICATIONS</A
+></DT
+><DT
+>5. <A
+HREF="x698.html"
+>COMBINING DOCUMENTS</A
+></DT
+><DT
+>6. <A
+HREF="x703.html"
+>COLLECTIONS OF DOCUMENTS</A
+></DT
+><DT
+>7. <A
+HREF="x707.html"
+>AGGREGATION WITH INDEPENDENT WORKS</A
+></DT
+><DT
+>8. <A
+HREF="x711.html"
+>TRANSLATION</A
+></DT
+><DT
+>9. <A
+HREF="x714.html"
+>TERMINATION</A
+></DT
+><DT
+>10. <A
+HREF="x717.html"
+>FUTURE REVISIONS OF THIS LICENSE</A
+></DT
+><DT
+><A
+HREF="x722.html"
+>How to use this License for your documents</A
+></DT
+></DL
+></DD
+></DL
+></DIV
+><DIV
+CLASS="LOT"
+><DL
+CLASS="LOT"
+><DT
+><B
+>List of Figures</B
+></DT
+><DT
+>2-1. <A
+HREF="ch-gimp-and-gimp-print.html#AEN67"
+>The Startup Window for The GIMP</A
+></DT
+><DT
+>2-2. <A
+HREF="ch-gimp-and-gimp-print.html#AEN78"
+>A Sample Image Displayed by The GIMP</A
+></DT
+><DT
+>2-3. <A
+HREF="x85.html#FIG-GIMP-PRINT-GUI"
+>The Gimp-Print Graphical User Interface 1 (GUI)</A
+></DT
+><DT
+>2-4. <A
+HREF="x85.html#FIG-GIMP-PRINT-GUI-1"
+>The Gimp-Print Graphical User Interface 2 (GUI)</A
+></DT
+><DT
+>2-5. <A
+HREF="x85.html#AEN153"
+>The Setup Printer Window</A
+></DT
+><DT
+>2-6. <A
+HREF="x85.html#AEN168"
+>The New Printer Window</A
+></DT
+><DT
+>2-7. <A
+HREF="x85.html#FIG-GIMP-PRINT-COLOR-ADJUST"
+>The Print Color Adjust Window</A
+></DT
+><DT
+>3-1. <A
+HREF="x456.html#AEN460"
+>The CUPS Startup Window</A
+></DT
+><DT
+>3-2. <A
+HREF="x456.html#AEN470"
+>The CUPS Printers Window</A
+></DT
+><DT
+>3-3. <A
+HREF="x456.html#AEN479"
+>The CUPS Admin Window</A
+></DT
+><DT
+>3-4. <A
+HREF="x456.html#FIG-CUPS-ADMIN-DEVICE"
+>The CUPS Admin Device Window</A
+></DT
+><DT
+>3-5. <A
+HREF="x456.html#AEN498"
+>The CUPS Admin Model/Driver Window</A
+></DT
+><DT
+>3-6. <A
+HREF="x456.html#FIG-CUPS-ADMIN-MODEL"
+>The 2nd CUPS Admin Model/Driver Window</A
+></DT
+><DT
+>3-7. <A
+HREF="x456.html#AEN530"
+>The CUPS Admin Success Window</A
+></DT
+><DT
+>3-8. <A
+HREF="x456.html#FIG-CUPS-MY-PRINTER"
+>The CUPS Window for Your Printer</A
+></DT
+><DT
+>3-9. <A
+HREF="x548.html#FIG-CUPS-PRINTER-CONFIG-WINDOW"
+>The CUPS Printer Cofiguration Window</A
+></DT
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="c29.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Project History</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/c29.html b/doc/users_guide/html/c29.html
new file mode 100644
index 0000000..38c2000
--- /dev/null
+++ b/doc/users_guide/html/c29.html
@@ -0,0 +1,251 @@
+<HTML
+><HEAD
+><TITLE
+>Project History</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="PREVIOUS"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="NEXT"
+TITLE="GIMP and Gimp-Print"
+HREF="ch-gimp-and-gimp-print.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="book1.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="ch-gimp-and-gimp-print.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="AEN29"
+>Chapter 1. Project History</A
+></H1
+><P
+>This software package was first written by Michael Sweet of
+<A
+HREF="http://www.easysw.com"
+TARGET="_top"
+>Easy Software Products</A
+> and
+initially worked only as a print plugin to the GIMP (GNU Image
+Manipulation Program). In the summer of 1999,
+Robert Krawitz (the current
+Gimp-Print project leader) purchased an Epson Stylus Photo EX printer
+to feed his photography hobby. Finding no existing printer drivers, Robert
+adapted Mike's Gimp-Print plugin to his six-color printer, and by the end
+of the year released version 3.0 of the Gimp-Print software, which was
+included in version 1.1 of the GIMP. The intention was for this to be
+the stable plugin in version 1.2 of the GIMP while development of the
+Gimp-Print plugin continued for later release.
+ </P
+><P
+>Robert put the Gimp-Print development tree on SourceForge starting
+with version 3.1, and quickly found a group of like-minded people who wanted to print
+high quality output on inexpensive inkjet printers. One of the main
+goals, which was not expected to be met until late in the version 3.1
+cycle, was to write a Ghostscript driver so that printing would not be
+restricted to the GIMP. Imagine Robert's surprise when Henryk "Buggs"
+Richter wrote one within days!
+ </P
+><P
+>In July 2000, not more than a year after Robert bought his Epson
+Stylus Photo EX, he was invited to the Linux Printing
+Summit hosted by VA Linux Systems. In preparation for that, he spent
+long hours printing out test images. Robert went back to the
+Gimp-Print version 3.0.9 release, which seemed like such an advance
+at the time, and was floored at how far the project had come in four
+months! Output that had been considered impressive with using six
+colors was put to shame by four color output. That should give you
+an idea what six color and variable dot size printers can do. It also
+illustrates what a group of committed people can do.
+ </P
+><P
+>Robert came away from the Printing Summit with a lot of new ideas, and in
+November 2000, Gimp-Print version 4.0 was released, the culmination of 9 months
+of work by the team. The quality was already tremendously improved
+over what the software could do at the Printing Summit.
+ </P
+><P
+>The team started serious work on version 4.1 in December
+2000, and version 4.2.0 was released in November 2001. Despite the fact
+that version 4.2.0 is a "minor" release over version 4.0, there are vast
+improvements:
+ <P
+></P
+><UL
+><LI
+><P
+> The driver is built as a shared library, making it much easier
+to use by higher layers of software
+ </P
+></LI
+><LI
+><P
+> The packaging system now follows GNU standards
+ </P
+></LI
+><LI
+><P
+>The print quality (in particular, color accuracy, a well-known weakness in 4.0) is even better
+ </P
+></LI
+><LI
+><P
+> Improved performance
+ </P
+></LI
+><LI
+><P
+> Many more options
+ </P
+></LI
+><LI
+><P
+> More supported printers
+ </P
+></LI
+></UL
+>
+
+ </P
+><P
+>Releases of Gimp-Print have been historically numbered in
+a fashion similar to that of the Linux kernel, where major releases
+are denoted by the first digit (in this case '4'), while minor
+releases are denoted by subsequent digits (such as '4.2.0'). Even
+numbered minor releases are considered stable, while odd numbered
+minor releases are considered development releases (whose stability
+may vary for any given release).
+ </P
+><P
+>This project is by no means finished. In future releases, the development
+team hopes to include the following:
+ <P
+></P
+><UL
+><LI
+><P
+>implementation of proper color management</P
+></LI
+><LI
+><P
+>improved dithering</P
+></LI
+><LI
+><P
+>improvements in performance</P
+></LI
+></UL
+>
+ </P
+><P
+>The entire Gimp-Print team hopes you will really enjoy using this
+software! For more information, please consult the GIMP-Print project
+<A
+HREF="http://gimp-print.sourceforge.net"
+TARGET="_top"
+>web page</A
+>.
+ </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="ch-gimp-and-gimp-print.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>GIMP and Gimp-Print</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/c447.html b/doc/users_guide/html/c447.html
new file mode 100644
index 0000000..d8dcce6
--- /dev/null
+++ b/doc/users_guide/html/c447.html
@@ -0,0 +1,185 @@
+<HTML
+><HEAD
+><TITLE
+>CUPS and Gimp-Print</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="PREVIOUS"
+TITLE="The Gimp-Print Graphical User Interface"
+HREF="x85.html"><LINK
+REL="NEXT"
+TITLE="CUPS Printer Installation"
+HREF="x456.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x85.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x456.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="AEN447"
+>Chapter 3. CUPS and Gimp-Print</A
+></H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="c447.html#AEN449"
+>Introduction</A
+></DT
+><DT
+><A
+HREF="x456.html"
+>CUPS Printer Installation</A
+></DT
+><DT
+><A
+HREF="x548.html"
+>Configuring your Printer in CUPS</A
+></DT
+><DT
+><A
+HREF="x562.html"
+>Using CUPS from the Command Line</A
+></DT
+></DL
+></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN449"
+>Introduction</A
+></H1
+><P
+> CUPS is an acronym which stands for <I
+CLASS="EMPHASIS"
+>C</I
+>ommon
+<I
+CLASS="EMPHASIS"
+>U</I
+>nix <I
+CLASS="EMPHASIS"
+>P</I
+>rinting
+<I
+CLASS="EMPHASIS"
+>S</I
+>ystem. It is assumed that the reader has
+properly installed the CUPS software and the Gimp-Print software.
+This section will discuss adding a printer to CUPS that uses a
+Gimp-Print printer driver, as well as how to modify the various
+settings supplied by Gimp-Print. This will be a rather quick
+explanation, as the CUPS software is quite well documented, and it is
+not my intention to attempt to duplicate the CUPS documentation here.
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x85.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x456.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>The Gimp-Print Graphical User Interface</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>CUPS Printer Installation</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/c570.html b/doc/users_guide/html/c570.html
new file mode 100644
index 0000000..f1c142b
--- /dev/null
+++ b/doc/users_guide/html/c570.html
@@ -0,0 +1,721 @@
+<HTML
+><HEAD
+><TITLE
+>Gimp-Print Utilities</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="PREVIOUS"
+TITLE="Using CUPS from the Command Line"
+HREF="x562.html"><LINK
+REL="NEXT"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x562.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="gfdl.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="AEN570"
+>Chapter 4. Gimp-Print Utilities</A
+></H1
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN572"
+>escputil</A
+></H1
+><P
+> <I
+CLASS="EMPHASIS"
+>escputil</I
+> is a command line utility which
+allows the user to perform a variety of maintenance tasks on Epson
+Stylus inkjet printers. These tasks include head alignment, head
+cleaning, nozzle check, printer identification, and retrieval of the ink
+level from the printer. In order for many of the
+<I
+CLASS="EMPHASIS"
+>escputil</I
+> functions to work, the user must have
+read/write access to the raw printer device (typically /dev/lp0,
+/dev/usb/lp0, and the like). In general, these operations should be
+performed by the root user. As always, the user must insure that the
+directory containing the <I
+CLASS="EMPHASIS"
+>escputil</I
+> utility is
+listed in the $PATH environment variable, or that the full path is
+specified on the command line. The examples in this section will
+assume the former.
+ </P
+><DIV
+CLASS="CAUTION"
+><P
+></P
+><TABLE
+CLASS="CAUTION"
+BORDER="1"
+WIDTH="100%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Caution</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+> The <I
+CLASS="EMPHASIS"
+>escputil</I
+> utility was designed for use
+ONLY with Epson Stylus inkjet printers supported by the Gimp-Print
+software. It is possible that damage MIGHT occur to your printer if
+this utility is misused or if it is used with a printer other than an
+Epson Stylus inkjet printer. It is the sole responsibility of the
+user to insure that this utility is suitable for the task at hand.
+ </P
+></TD
+></TR
+></TABLE
+></DIV
+><P
+> In this section, specific examples of common usage will be
+presented. A summary of the command line switches can be
+found in the <I
+CLASS="EMPHASIS"
+>escputil</I
+>(1) man page.
+ </P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN584"
+>Determining Ink Level</A
+></H2
+><P
+> Perhaps the most basic function performed by
+<I
+CLASS="EMPHASIS"
+>escputil</I
+> is that of determining the amount of ink
+remaining in the printer. To do this, the user must know the name of
+the raw printer device. This is usually /dev/lp0 for a printer
+connected to the parallel port, or /dev/usb/lp0 for a printer
+connected to the USB.
+ </P
+><P
+>If there are multiple printers connected, one of them may be referenced as
+/dev/lp1 or perhaps /dev/usb/lp1. In the event of uncertainty, and if
+CUPS is in use, view the following <A
+HREF="http://localhost:631/printers"
+TARGET="_top"
+>URL</A
+>
+with a web browser. At that URL, look for a line which reads "Device
+URI". The author's USB printer is listed as "Device URI: usb:/dev/usb/lp0".
+ </P
+><P
+>For this example, assume that the raw printer device is a USB printer
+specified as /dev/usb/lp0. To get the ink level for this printer,
+issue this command and notice the output.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+# escputil -r /dev/usb/lp0 -i
+
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+ Ink color Percent remaining
+ Black 18
+ Cyan 71
+ Magenta 70
+ Yellow 67
+ Light Cyan 71
+ Light Magenta 70
+
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+>The user would substitute their own raw printer device for the one
+shown in the example after the "-r" switch. Notice that the printout
+shows the percent of ink remaining for each color of the author's
+Epson Stylus Photo 870. When the ink levels get too low, print
+quality will suffer. In the author's personal experience, ink levels
+approaching 10% begin to cause print quality degredation, but this
+will vary depending on the precise printer model.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN593"
+>Error During Ink Level Determination</A
+></H2
+><P
+> What? The example above did not work? An error message was
+printed? What does it mean? There are several possibilities,
+depending on the specific error message. If the error message is
+"Invalid argument" (see following example), the problem is that the
+kernel is not configured with the CONFIG_PRINTER_READBACK option enabled.
+
+ <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+# escputil -r /dev/lp0 -i
+
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Cannot read from /dev/lp0: Invalid argument
+
+ </PRE
+></TD
+></TR
+></TABLE
+>
+
+ Another possibile cause for error is that the raw printer device
+does not have both read and write permission for the user attempting
+to access the device. In this case, the error message will read
+"Permission denied". A final possibility is that the raw printer
+device specified is incorrect, in which case the error message will
+read "No such device".
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN597"
+>Nozzle Check</A
+></H2
+><P
+> On an inkjet printer, there are several small holes on the
+bottom of each ink cartridge through which the ink must flow smoothly
+in order to create high quality images on paper. If these holes
+become clogged, the printed image will show small gaps where there
+should have been ink. One can easily test for the existence of this
+condition by running a nozzle check. One need not be the root user to
+issue this command. Note that as shown, the command will print a
+nozzle test pattern on the default printer. If there are multiple
+printers present, the desired printer must be specified with an
+additional "-P printer_name" switch, where "printer_name" is the name
+of the desired printer.
+ </P
+><P
+> The printer will print a series of black (and colored) slanted
+lines on the paper. Observe these lines carefully. If there are gaps
+or spaces in these lines, then the corresponding nozzle is clogged and
+the print head must be cleaned. However, if there are no gaps, the
+nozzles are clean.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+# escputil -n
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Running nozzle check, please ensure paper is in the printer.
+
+ </PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN602"
+>Clean the Print Head</A
+></H2
+><P
+> If the printed output is showing gaps where there should have
+been ink, it is likely that one or more nozzles are clogged and the
+print head is in need of cleaning. One can verify this by first
+running a nozzle check and looking for gaps in the printout. To clean
+the print head, issue the following command. One need not be the root user to
+issue this command. Note that as shown, the command will clean the
+print head on the default printer. If there are multiple
+printers present, the desired printer must be specified with an
+additional "-P printer_name" switch, where "printer_name" is the name
+of the desired printer.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+# escputil -c
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Cleaning heads...
+
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+> Nothing will be printed on the paper. The printer will make
+some noise as it cleans the print head. Wait until the printer is
+finished cleaning the print head. Afterwards, execute another nozzle
+check and insure that the print head is indeed completely clean. Note
+that the process of cleaning the print head causes ink consumption, so
+do not clean the print head any more than necessary.
+ </P
+><P
+>For severely clogged nozzles, one may have to execute two or three cycles
+of nozzle check followed by a cleaning of the print head. If the
+printer had gone unused for a long time, the nozzles may be so clogged
+with dried ink as to be unrecoverable, in which case, the best course
+of action is to replace the ink cartridge.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN608"
+>Align the Print Head</A
+></H2
+><P
+> To insure the highest quality printouts, the print head must
+be in proper physical alignment. One can check and realign the print
+head by running this interactive alignment test.
+ </P
+><P
+>The <I
+CLASS="EMPHASIS"
+>escputil</I
+> utility must know the exact printer model in
+use. One may specify the model on the command line using the "-m"
+switch, or the utility can detect the printer model if the user passes
+the "-r" switch and the name of the raw printer device.
+ </P
+><P
+>Note that an unprivileged user may use this command with the "-m" switch, but that
+(in general) the root user may only use the "-r" switch (which
+requires read/write access to the raw printer device). In the case of
+multiple printers in use, the "-P" switch is required to align the
+print head on the non-default printer.
+ </P
+><DIV
+CLASS="CAUTION"
+><P
+></P
+><TABLE
+CLASS="CAUTION"
+BORDER="1"
+WIDTH="100%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Caution</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+>This utility lets you align the print head of your Epson Stylus inkjet
+printer. Misuse of this utility may cause your print quality to degrade
+and possibly damage your printer. This utility has not been reviewed by
+Seiko Epson for correctness, and is offered with no warranty at all. The
+entire risk of using this utility lies with you.
+ </P
+></TD
+></TR
+></TABLE
+></DIV
+><P
+> Aligning the print head is an interactive process. The utility
+will print out a set of instructions and ask you for responses. Please
+read the instructions carefully and follow them precisely. A single
+sheet of paper will be needed (one can print on both sides to save paper).
+ </P
+><P
+>The following example illustrates the alignment process when issued by an
+unprivileged user who specified the printer model on the command
+line. (To obtain a list of printer models, issue the "escputil -M"
+command). Of course, your responses will vary and should be
+substituted for the responses shown in the following example.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+
+*** NOTE - 870 is an illustrative example! ***
+*** You MUST use the proper printer model! ***
+*** Run: escputil -M for a listing of ***
+*** supported printer models! ***
+
+linuxpc&#62; escputil -a -m 870
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Please read these instructions very carefully before proceeding.
+
+This utility lets you align the print head of your Epson Stylus
+inkjet printer. Misuse of this utility may cause your print
+quality to degrade and possibly damage your printer. This utility
+has not been reviewed by Seiko Epson for correctness, and is
+offered with no warranty at all. The entire risk of using this
+utility lies with you.
+
+This utility prints 3 test patterns. Each pattern looks very
+similar. The patterns consist of a series of pairs of vertical
+lines that overlap. Below each pair of lines is a number between
+1 and 15.
+
+When you inspect the pairs of lines, you should find the pair
+of lines that is best in alignment, that is, that best forms
+a single vertical line. Inspect the pairs very carefully to
+find the best match. Using a loupe or magnifying glass is
+recommended for the most critical inspection. It is also
+suggested that you use a good quality paper for the test, so
+that the lines are well-formed and do not spread through the
+paper. After picking the number matching the best pair, place
+the paper back in the paper input tray before typing it in.
+
+Each pattern is similar, but later patterns use finer dots for
+more critical alignment. You must run all of the passes to
+correctly align your printer. After running all the alignment
+passes, the alignment patterns will be printed once more. You
+should find that the middle-most pair (#8 out of the 15) is the
+best for all patterns.
+
+After the passes are printed once more, you will be offered the
+choices of (s)aving the result in the printer, (r)epeating the
+process, or (q)uitting without saving. Quitting will not restore
+the previous settings, but powering the printer off and back
+on will. If you quit, you must repeat the entire process if
+you wish to later save the results. It is essential that you
+not turn your printer off during this procedure.
+
+This procedure assumes that your printer is an Epson Stylus Photo
+870. If this is not your printer model, please type control-C now
+and choose your actual printer model.
+
+Please place a sheet of paper in your printer to begin the head
+alignment procedure.
+Press enter to continue &#62;
+Please inspect the print, and choose the best pair of lines in
+each pattern. Type a pair number, '?' for help, or 'r' to repeat
+the procedure.
+Pass #1&#62; 8
+Pass #2&#62; 8
+Pass #3&#62; 8
+Attempting to set alignment...succeeded.
+Please verify that the alignment is correct. After the alignment
+pattern is printed again, please ensure that the best pattern
+for each line is pattern 8. If it is not, you should repeat the
+process to get the best quality printing.
+Please insert a fresh sheet of paper.
+Press enter to continue &#62;
+Please inspect the final output very carefully to ensure that your
+printer is in proper alignment. You may now:
+ (s)ave the results in the printer,
+ (q)uit without saving the results, or
+ (r)epeat the entire process from the beginning.
+You will then be asked to confirm your choice.
+What do you want to do (s, q, r)?
+&#62; s
+This will permanently alter the configuration of your printer.
+WARNING: this procedure has not been approved by Seiko Epson,
+and it may damage your printer. Proceed?
+Please confirm by typing 's' again that you wish to save the
+settings to your printer:
+&#62; s
+About to save settings...succeeded!
+Your alignment settings have been saved to the printer.
+
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+> The following example shows what will happen if an unprivileged
+user attempts to align the print head by specifying the raw printer
+device on the command line.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+linuxpc&#62; escputil -a -r /dev/usb/lp0
+Escputil version 4.2.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Attempting to detect printer model...
+Cannot open /dev/usb/lp0 read/write: Permission denied
+
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+> This next example illustrates the results obtained when the root
+user issues an alignment command while specifying the raw printer
+device. Note that the output is truncated and only shows the printer
+detection output.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+# escputil -a -r /dev/usb/lp0
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Attempting to detect printer model...Stylus Photo 870
+
+Please read these instructions very carefully before proceeding.
+
+ </PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN624"
+>Printer Identification</A
+></H2
+><P
+> The printer identification command will query the printer for
+make and model information. This command requires read/write access
+to the raw printer device (generally limited to the root user).
+Substitute your own raw printer device in place of the /dev/usb/lp0
+shown in the example. The output will vary depending on the precise
+printer model.
+ </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+# escputil -d -r /dev/usb/lp0
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+@EJL ID
+MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylus Photo 870;CLS:PRINTER;DES:
+EPSON Stylus Photo 870;
+
+ </PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN628"
+>More Information</A
+></H2
+><P
+> For more detailed information about the command line switches
+accepted by the <I
+CLASS="EMPHASIS"
+>escputil</I
+> utility, please consult
+the man page which is supplied with the Gimp-Print software. The user
+may also issue the "escputil --help" command to get a listing of supported
+command line switches. The command requires no special privileges to execute.
+ </P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x562.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Using CUPS from the Command Line</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>GNU Free Documentation License</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/ch-gimp-and-gimp-print.html b/doc/users_guide/html/ch-gimp-and-gimp-print.html
new file mode 100644
index 0000000..174da29
--- /dev/null
+++ b/doc/users_guide/html/ch-gimp-and-gimp-print.html
@@ -0,0 +1,242 @@
+<HTML
+><HEAD
+><TITLE
+>GIMP and Gimp-Print</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="PREVIOUS"
+TITLE="Project History"
+HREF="c29.html"><LINK
+REL="NEXT"
+TITLE="The Gimp-Print Graphical User Interface"
+HREF="x85.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="c29.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x85.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="CH-GIMP-AND-GIMP-PRINT"
+>Chapter 2. GIMP and Gimp-Print</A
+></H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="ch-gimp-and-gimp-print.html#AEN63"
+>Running the GIMP</A
+></DT
+><DT
+><A
+HREF="x85.html"
+>The Gimp-Print Graphical User Interface</A
+></DT
+></DL
+></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN63"
+>Running the GIMP</A
+></H1
+><P
+> This section assumes that you have the GIMP version 1.2 installed
+and working properly on your computer, and that you have an image of
+some type that you desire to print. To get started quickly, log into
+your system, start the X window system, and bring up your favorite terminal
+window. At the $ prompt, type:
+
+ <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+ $ gimp &#38;
+
+ </PRE
+></TD
+></TR
+></TABLE
+>
+
+ This should start the GIMP for you. If it does not, check that
+you have installed the GIMP properly, and that its binary is located
+in one of the directories listed in your $PATH environment
+variable. On the assumption that this worked, the screen should now
+look something like this:
+
+ <DIV
+CLASS="FIGURE"
+><A
+NAME="AEN67"
+></A
+><P
+><B
+>Figure 2-1. The Startup Window for The GIMP</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp_startup.png"
+ALT="Startup window for The GIMP"
+></IMG
+></P
+></DIV
+></DIV
+>
+
+ </P
+><P
+> At this point, you should use the
+
+ <SPAN
+CLASS="GUIMENU"
+>File</SPAN
+>-&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Open</SPAN
+>
+
+menu option to open your favorite picture. We will print this picture
+shortly. Your picture should be displayed next to the GIMP startup
+window, perhaps looking similar to the following (sssh! Don't tell
+anybody the secret!):
+
+ <DIV
+CLASS="FIGURE"
+><A
+NAME="AEN78"
+></A
+><P
+><B
+>Figure 2-2. A Sample Image Displayed by The GIMP</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp_image.png"
+ALT="A Sample Image displayed by The Gimp"
+></IMG
+></P
+></DIV
+></DIV
+>
+
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="c29.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x85.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Project History</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>The Gimp-Print Graphical User Interface</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/docbook.css b/doc/users_guide/html/docbook.css
new file mode 100644
index 0000000..b42fb27
--- /dev/null
+++ b/doc/users_guide/html/docbook.css
@@ -0,0 +1,20 @@
+.BOOK .TITLE { text-align: center }
+.BOOK .SUBTITLE { text-align: center }
+.BOOK .CORPAUTHOR { text-align: center }
+.BOOK .AUTHOR { text-align: center }
+.BOOK .AFFILIATION { text-align: center }
+.BOOK .EDITEDBY { text-align: center }
+.BOOK .EDITOR { text-align: center }
+.BOOK .GRAPHIC { text-align: center }
+
+.ARTICLE .TITLE { text-align: center }
+.ARTICLE .SUBTITLE { text-align: center }
+.ARTICLE .CORPAUTHOR { text-align: center }
+.ARTICLE .AUTHOR { text-align: center }
+.ARTICLE .AFFILIATION { text-align: center }
+.ARTICLE .EDITEDBY { text-align: center }
+.ARTICLE .EDITOR { text-align: center }
+.ARTICLE .GRAPHIC { text-align: center }
+.ARTICLE .ABSTRACT { margin-left: 0.5in;
+ margin-right: 0.5in;
+ font-style: italic }
diff --git a/doc/users_guide/html/figures/cups_admin.png b/doc/users_guide/html/figures/cups_admin.png
new file mode 100644
index 0000000..464fcc4
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_admin.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_admin_device.png b/doc/users_guide/html/figures/cups_admin_device.png
new file mode 100644
index 0000000..b258263
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_admin_device.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_admin_make.png b/doc/users_guide/html/figures/cups_admin_make.png
new file mode 100644
index 0000000..1948ba7
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_admin_make.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_admin_model.png b/doc/users_guide/html/figures/cups_admin_model.png
new file mode 100644
index 0000000..b476a75
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_admin_model.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_admin_success.png b/doc/users_guide/html/figures/cups_admin_success.png
new file mode 100644
index 0000000..edebafe
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_admin_success.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_config_printer.png b/doc/users_guide/html/figures/cups_config_printer.png
new file mode 100644
index 0000000..1f980dc
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_config_printer.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_my_printer.png b/doc/users_guide/html/figures/cups_my_printer.png
new file mode 100644
index 0000000..d8441c8
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_my_printer.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_printers.png b/doc/users_guide/html/figures/cups_printers.png
new file mode 100644
index 0000000..4d45d1c
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_printers.png
Binary files differ
diff --git a/doc/users_guide/html/figures/cups_startup.png b/doc/users_guide/html/figures/cups_startup.png
new file mode 100644
index 0000000..22d01d0
--- /dev/null
+++ b/doc/users_guide/html/figures/cups_startup.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp-print-gui-1.png b/doc/users_guide/html/figures/gimp-print-gui-1.png
new file mode 100644
index 0000000..1c083bb
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp-print-gui-1.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp-print-gui.png b/doc/users_guide/html/figures/gimp-print-gui.png
new file mode 100644
index 0000000..a9739fb
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp-print-gui.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp-print-new-printer.png b/doc/users_guide/html/figures/gimp-print-new-printer.png
new file mode 100644
index 0000000..39dd681
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp-print-new-printer.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp-print-print-color-adjust.png b/doc/users_guide/html/figures/gimp-print-print-color-adjust.png
new file mode 100644
index 0000000..5ab1a33
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp-print-print-color-adjust.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp-print-setup.png b/doc/users_guide/html/figures/gimp-print-setup.png
new file mode 100644
index 0000000..e406c0b
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp-print-setup.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp_image.png b/doc/users_guide/html/figures/gimp_image.png
new file mode 100644
index 0000000..9193558
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp_image.png
Binary files differ
diff --git a/doc/users_guide/html/figures/gimp_startup.png b/doc/users_guide/html/figures/gimp_startup.png
new file mode 100644
index 0000000..b6335e1
--- /dev/null
+++ b/doc/users_guide/html/figures/gimp_startup.png
Binary files differ
diff --git a/doc/users_guide/html/gfdl.html b/doc/users_guide/html/gfdl.html
new file mode 100644
index 0000000..1b639d3
--- /dev/null
+++ b/doc/users_guide/html/gfdl.html
@@ -0,0 +1,238 @@
+<HTML
+><HEAD
+><TITLE
+>GNU Free Documentation License</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="PREVIOUS"
+TITLE="Gimp-Print Utilities"
+HREF="c570.html"><LINK
+REL="NEXT"
+TITLE="APPLICABILITY AND DEFINITIONS"
+HREF="x642.html"></HEAD
+><BODY
+CLASS="APPENDIX"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="c570.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x642.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="APPENDIX"
+><H1
+><A
+NAME="GFDL"
+>Appendix A. GNU Free Documentation License</A
+></H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+>0. <A
+HREF="gfdl.html#AEN637"
+>PREAMBLE</A
+></DT
+><DT
+>1. <A
+HREF="x642.html"
+>APPLICABILITY AND DEFINITIONS</A
+></DT
+><DT
+>2. <A
+HREF="x652.html"
+>VERBATIM COPYING</A
+></DT
+><DT
+>3. <A
+HREF="x656.html"
+>COPYING IN QUANTITY</A
+></DT
+><DT
+>4. <A
+HREF="x662.html"
+>MODIFICATIONS</A
+></DT
+><DT
+>5. <A
+HREF="x698.html"
+>COMBINING DOCUMENTS</A
+></DT
+><DT
+>6. <A
+HREF="x703.html"
+>COLLECTIONS OF DOCUMENTS</A
+></DT
+><DT
+>7. <A
+HREF="x707.html"
+>AGGREGATION WITH INDEPENDENT WORKS</A
+></DT
+><DT
+>8. <A
+HREF="x711.html"
+>TRANSLATION</A
+></DT
+><DT
+>9. <A
+HREF="x714.html"
+>TERMINATION</A
+></DT
+><DT
+>10. <A
+HREF="x717.html"
+>FUTURE REVISIONS OF THIS LICENSE</A
+></DT
+><DT
+><A
+HREF="x722.html"
+>How to use this License for your documents</A
+></DT
+></DL
+></DIV
+><P
+>Version 1.1, March 2000</P
+><A
+NAME="AEN635"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+>Copyright (C) 2000 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.</P
+></BLOCKQUOTE
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN637"
+>0. PREAMBLE</A
+></H1
+><P
+>The purpose of this License is to make a manual, textbook,
+ or other written document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by
+ others.</P
+><P
+>This License is a kind of "copyleft", which means that
+ derivative works of the document must themselves be free in the
+ same sense. It complements the GNU General Public License, which
+ is a copyleft license designed for free software.</P
+><P
+>We have designed this License in order to use it for manuals
+ for free software, because free software needs free documentation:
+ a free program should come with manuals providing the same
+ freedoms that the software does. But this License is not limited
+ to software manuals; it can be used for any textual work,
+ regardless of subject matter or whether it is published as a
+ printed book. We recommend this License principally for works
+ whose purpose is instruction or reference.</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="c570.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x642.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Gimp-Print Utilities</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>APPLICABILITY AND DEFINITIONS</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/ln12.html b/doc/users_guide/html/ln12.html
new file mode 100644
index 0000000..1f8242f
--- /dev/null
+++ b/doc/users_guide/html/ln12.html
@@ -0,0 +1,88 @@
+<HTML
+><HEAD
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="NEXT"
+TITLE="Project History"
+HREF="c29.html"></HEAD
+><BODY
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="LEGALNOTICE"
+><A
+NAME="AEN12"
+></A
+><P
+></P
+><P
+>The User's Guide to the Gimp-Print Top Quality Printer
+Drivers, Copyright 2002, Andy Stewart.
+ </P
+><P
+> Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation with no invariant sections, no Front-Cover texts, and no
+Back-Cover texts. A copy of the license is included in <A
+HREF="gfdl.html"
+>Appendix A</A
+>.
+ </P
+><P
+></P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/stylesheet-images/caution.gif b/doc/users_guide/html/stylesheet-images/caution.gif
new file mode 100644
index 0000000..9cc2e15
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/caution.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/home.gif b/doc/users_guide/html/stylesheet-images/home.gif
new file mode 100644
index 0000000..55e1d59
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/home.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/important.gif b/doc/users_guide/html/stylesheet-images/important.gif
new file mode 100644
index 0000000..25e40c7
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/important.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/next.gif b/doc/users_guide/html/stylesheet-images/next.gif
new file mode 100644
index 0000000..8c502e7
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/next.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/note.gif b/doc/users_guide/html/stylesheet-images/note.gif
new file mode 100644
index 0000000..7322e8e
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/note.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/prev.gif b/doc/users_guide/html/stylesheet-images/prev.gif
new file mode 100644
index 0000000..0894d9e
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/prev.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/tip.gif b/doc/users_guide/html/stylesheet-images/tip.gif
new file mode 100644
index 0000000..f062955
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/tip.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/toc-blank.gif b/doc/users_guide/html/stylesheet-images/toc-blank.gif
new file mode 100644
index 0000000..6c65e3a
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/toc-blank.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/toc-minus.gif b/doc/users_guide/html/stylesheet-images/toc-minus.gif
new file mode 100644
index 0000000..40ebe61
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/toc-minus.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/toc-plus.gif b/doc/users_guide/html/stylesheet-images/toc-plus.gif
new file mode 100644
index 0000000..3e9e7d5
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/toc-plus.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/up.gif b/doc/users_guide/html/stylesheet-images/up.gif
new file mode 100644
index 0000000..e899a27
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/up.gif
Binary files differ
diff --git a/doc/users_guide/html/stylesheet-images/warning.gif b/doc/users_guide/html/stylesheet-images/warning.gif
new file mode 100644
index 0000000..a587079
--- /dev/null
+++ b/doc/users_guide/html/stylesheet-images/warning.gif
Binary files differ
diff --git a/doc/users_guide/html/x456.html b/doc/users_guide/html/x456.html
new file mode 100644
index 0000000..76cb3ca
--- /dev/null
+++ b/doc/users_guide/html/x456.html
@@ -0,0 +1,461 @@
+<HTML
+><HEAD
+><TITLE
+>CUPS Printer Installation</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="CUPS and Gimp-Print"
+HREF="c447.html"><LINK
+REL="PREVIOUS"
+TITLE="CUPS and Gimp-Print"
+HREF="c447.html"><LINK
+REL="NEXT"
+TITLE="Configuring your Printer in CUPS"
+HREF="x548.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="c447.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Chapter 3. CUPS and Gimp-Print</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x548.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN456"
+>CUPS Printer Installation</A
+></H1
+><P
+>This explanation will use the web interface provided by CUPS. First,
+aim your favorite web browser at
+<A
+HREF="http://localhost:631"
+TARGET="_top"
+>the CUPS server</A
+>. The
+following screen should appear within your browser.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="AEN460"
+></A
+><P
+><B
+>Figure 3-1. The CUPS Startup Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_startup.png"
+ALT="The CUPS Startup Window"
+></IMG
+></P
+></DIV
+></DIV
+><P
+>Now, you may click on either the word <SPAN
+CLASS="GUILABEL"
+>Printers</SPAN
+> in the bar at the top
+of the page, or you may click on the <SPAN
+CLASS="GUILABEL"
+>Manage Printers</SPAN
+> text. In
+either case, the next screen you see will look like this one if you
+have not yet configured any printers.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="AEN470"
+></A
+><P
+><B
+>Figure 3-2. The CUPS Printers Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_printers.png"
+ALT="The CUPS Printers Window"
+></IMG
+></P
+></DIV
+></DIV
+><P
+>At this time, click on the <SPAN
+CLASS="GUIBUTTON"
+>Add Printer</SPAN
+> button.
+You will then see the Admin screen (shown below).
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="AEN479"
+></A
+><P
+><B
+>Figure 3-3. The CUPS Admin Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_admin.png"
+ALT="The CUPS Admin Window"
+></IMG
+></P
+></DIV
+></DIV
+><P
+>Notice in the screenshot that the three boxes are shown after the
+author filled them in for his printer at home. You will need to fill
+in an appropriate name of your printer, its location, and a
+description which meets your own needs. Once this is done, click on
+the <SPAN
+CLASS="GUIBUTTON"
+>Continue</SPAN
+> button, and then this screen will appear.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-CUPS-ADMIN-DEVICE"
+></A
+><P
+><B
+>Figure 3-4. The CUPS Admin Device Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_admin_device.png"
+ALT="The CUPS Admin Device Window"
+></IMG
+></P
+></DIV
+></DIV
+><P
+>Click on the drop down menu next to the word
+<SPAN
+CLASS="GUILABEL"
+>Device</SPAN
+> and a list of possible printer devices
+appears. Select the device appropriate for your printer. Note that
+there are a range of serial, parallel, USB, and other devices from
+which to choose. Once the selection is made, click the
+<SPAN
+CLASS="GUIBUTTON"
+>Continue</SPAN
+> button. Now, this screen appears.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="AEN498"
+></A
+><P
+><B
+>Figure 3-5. The CUPS Admin Model/Driver Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_admin_make.png"
+ALT="The CUPS Admin Model/Driver Window"
+></IMG
+></P
+></DIV
+></DIV
+><DIV
+CLASS="CAUTION"
+><P
+></P
+><TABLE
+CLASS="CAUTION"
+BORDER="1"
+WIDTH="100%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Caution Regarding USB Printers</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+>CUPS versions 1.1.11 and later <I
+CLASS="EMPHASIS"
+>REQUIRE</I
+>
+the user to insure that the desired USB printer is powered on
+<I
+CLASS="EMPHASIS"
+>AND</I
+> physically connected to the USB bus
+<I
+CLASS="EMPHASIS"
+>BEFORE</I
+> starting the CUPS software.
+ </P
+><P
+>CUPS must see the USB printer when the software starts. The CUPS software
+is typically started when the computer boots. Note that one cannot
+simply plug in the USB printer and power it on after CUPS has started.
+(Note that this does not apply to parallel port printers).
+ </P
+><P
+>If the USB printer was not connected and powered on at the time CUPS was
+started, there will not be a USB printer shown in the
+list of devices on the CUPS Admin Device Window (see
+<A
+HREF="x456.html#FIG-CUPS-ADMIN-DEVICE"
+>Figure 3-4</A
+>). In this event, stop the CUPS
+software, properly connect and power on the USB printer, and restart
+the CUPS software.
+ </P
+><P
+>From the list of devices shown in the CUPS Admin Device Window
+(see <A
+HREF="x456.html#FIG-CUPS-ADMIN-DEVICE"
+>Figure 3-4</A
+>), a clever user might
+attempt to avoid this issue by selecting
+<SPAN
+CLASS="GUIMENUITEM"
+>Internet Printing Protocol</SPAN
+>
+and then enter something similar to 'usb:/dev/usblp0' in the next
+screen. However, this fails later in the configuration process with a
+"client_error_not_possible" error message with no other explanation.
+Note that entering 'file:/dev/usblp0' will not work either. While CUPS
+will allow this, printing will not actually work in some situations.
+ </P
+><P
+>CUPS versions 1.1.10 and earlier exhibit similar behavior with regard
+to not displaying the USB printer if it was not connected to the USB
+bus and powered up prior to starting the CUPS software. However,
+these versions of CUPS will indeed allow the user to enter the name of
+the USB connection, unlike versions 1.1.11 and later.
+ </P
+></TD
+></TR
+></TABLE
+></DIV
+><P
+>Select the manufacturer of your printer and click the
+<SPAN
+CLASS="GUIBUTTON"
+>Continue</SPAN
+> button. A window will appear which
+asks you to select the specific model number for your printer.
+ </P
+><P
+>Scroll through the long list and find the model number for your
+printer. Notice carefully that there are many different languages
+supported for each printer, as denoted by the initials in parenthesis.
+(en) would be for English, (da) for Danish, (sv) for Swedish, (fr) for
+French, (no) for Norwegian, (pl) for Polish, and (en_GB) for British
+English (see <A
+HREF="x456.html#FIG-CUPS-ADMIN-MODEL"
+>Figure 3-6</A
+>). Also take note
+of the Gimp-Print revision for the driver, and ensure that it is
+indeed the version of Gimp-Print which you have most recently
+installed. Once you have made the proper selection, click on the
+<SPAN
+CLASS="GUIBUTTON"
+>Continue</SPAN
+> button.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-CUPS-ADMIN-MODEL"
+></A
+><P
+><B
+>Figure 3-6. The 2nd CUPS Admin Model/Driver Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_admin_model.png"
+ALT="The 2nd CUPS Admin Model/Driver Window"
+></IMG
+></P
+></DIV
+></DIV
+><DIV
+CLASS="FIGURE"
+><A
+NAME="AEN530"
+></A
+><P
+><B
+>Figure 3-7. The CUPS Admin Success Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_admin_success.png"
+ALT="The CUPS Admin Success Window"
+></IMG
+></P
+></DIV
+></DIV
+><P
+>Congratulations! You should now see the CUPS window indicating that
+your printer was successfully installed. Notice the sentence which
+reads "Printer your_printer has been added successfully". Click on
+your_printer, which will be the underlined name for your printer.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-CUPS-MY-PRINTER"
+></A
+><P
+><B
+>Figure 3-8. The CUPS Window for Your Printer</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_my_printer.png"
+ALT="The CUPS Window for Your Printer"
+></IMG
+></P
+></DIV
+></DIV
+><P
+>After clicking on your_printer (epson_870 in this example), a window
+will appear similar to that shown in <A
+HREF="x456.html#FIG-CUPS-MY-PRINTER"
+>Figure 3-8</A
+>.
+It would probably be a good idea at this point to click on the
+<SPAN
+CLASS="GUIBUTTON"
+>Print Test Page</SPAN
+> button to ensure that
+everything is working properly. Take note of the Gimp-Print revision
+printed on this screen and confirm once again that it is the expected
+revision.
+ </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="c447.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x548.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>CUPS and Gimp-Print</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="c447.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Configuring your Printer in CUPS</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x548.html b/doc/users_guide/html/x548.html
new file mode 100644
index 0000000..9c8abbf
--- /dev/null
+++ b/doc/users_guide/html/x548.html
@@ -0,0 +1,175 @@
+<HTML
+><HEAD
+><TITLE
+>Configuring your Printer in CUPS</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="CUPS and Gimp-Print"
+HREF="c447.html"><LINK
+REL="PREVIOUS"
+TITLE="CUPS Printer Installation"
+HREF="x456.html"><LINK
+REL="NEXT"
+TITLE="Using CUPS from the Command Line"
+HREF="x562.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x456.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Chapter 3. CUPS and Gimp-Print</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x562.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN548"
+>Configuring your Printer in CUPS</A
+></H1
+><P
+>With reference to <A
+HREF="x456.html#FIG-CUPS-MY-PRINTER"
+>Figure 3-8</A
+>, click
+on the <SPAN
+CLASS="GUIBUTTON"
+>Configure Printer</SPAN
+> button. A partial
+screenshot of the printer configuration window appears in
+<A
+HREF="x548.html#FIG-CUPS-PRINTER-CONFIG-WINDOW"
+>Figure 3-9</A
+>.
+The contents of this window will vary depending on precisely which
+printer you selected when you configured CUPS for your printer. The
+screenshot shows the selections made by the author for his printer.
+The individual selections will not be explained in detail here, as
+they are the same selections which are available when using the
+Gimp-Print plugin to the GIMP. These selections are explained in
+detail in various sections of <A
+HREF="ch-gimp-and-gimp-print.html"
+>Chapter 2</A
+>.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-CUPS-PRINTER-CONFIG-WINDOW"
+></A
+><P
+><B
+>Figure 3-9. The CUPS Printer Cofiguration Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/cups_config_printer.png"
+ALT="The CUPS Printer Configuration Window"
+></IMG
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x456.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x562.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>CUPS Printer Installation</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="c447.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Using CUPS from the Command Line</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x562.html b/doc/users_guide/html/x562.html
new file mode 100644
index 0000000..60e2cb6
--- /dev/null
+++ b/doc/users_guide/html/x562.html
@@ -0,0 +1,212 @@
+<HTML
+><HEAD
+><TITLE
+>Using CUPS from the Command Line</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="CUPS and Gimp-Print"
+HREF="c447.html"><LINK
+REL="PREVIOUS"
+TITLE="Configuring your Printer in CUPS"
+HREF="x548.html"><LINK
+REL="NEXT"
+TITLE="Gimp-Print Utilities"
+HREF="c570.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x548.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Chapter 3. CUPS and Gimp-Print</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="c570.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN562"
+>Using CUPS from the Command Line</A
+></H1
+><P
+> It is possible to use the CUPS printing system from the command
+line. While this document will not delve into all of the specifics of
+the CUPS command line interface, there are portions of this interface
+which are specific to the Gimp-Print software.
+ </P
+><P
+>The command line is in some cases a more convenient way to generate
+printed output (e.g. when printing from a script). However, most
+people (including the author) cannot easily predict what a command
+line option of "-o stpCyan=1350" will do to the output. It is
+therefore a good idea to use the GIMP to view the image and the
+Gimp-Print plugin to preview these settings before relying on the
+command line.
+ </P
+><P
+>When using CUPS from the command line, the command will have this
+general format:
+
+ <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+ lpr -P my_printer_name \
+ -o option1=&#60;choice1&#62; \
+ -o option2=&#60;choice2&#62; \
+ /path/to/printfile
+
+ </PRE
+></TD
+></TR
+></TABLE
+>
+
+When typing the command directly onto the command line, put all of the
+command line options on one line, and do not type the "\" characters.
+The list of possible options which are specific to Gimp-Print,
+followed by some of the supported choices, are shown below:
+
+ <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>
+ -o PageSize=&#60;...| A3 | A4 | A4 | ...&#62;
+ -o InputSlot=&#60;Roll | Standard&#62;
+ -o MediaType=&#60; ..| Inkjet | Plain | GlossyPaper | ...&#62;
+ -o Resolution=&#60;360sw | 360swuni ...| 1440x720 &#62;
+ -o ColorModel=&#60;Black | RGB | Gray | CMYK&#62;
+ -o stpBrightness=&#60;0...2000&#62;
+ -o stpContrast=&#60;0...2000&#62;
+ -o stpCyan=&#60;0...4000&#62;
+ -o stpDensity=&#60;0...2000&#62;
+ -o stpDither=&#60;0...4000&#62;
+ -o stpGamma=&#60;0...4000&#62;
+ -o stpImageType=&#60;LineArt | Continuous | SolidTone&#62;
+ -o stpInkType=&#60;PhotoCMY | CMYK | PhotoCMYK | RGB&#62;
+ -o stpMagenta=&#60;0...4000&#62;
+ -o stpSaturation=&#60;0...9000&#62;
+ -o stpYellow=&#60;0...4000&#62;
+
+ </PRE
+></TD
+></TR
+></TABLE
+>
+
+For more detailed information, consult the appropriate sections of <A
+HREF="ch-gimp-and-gimp-print.html"
+>Chapter 2</A
+>.
+ </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x548.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="c570.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Configuring your Printer in CUPS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="c447.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Gimp-Print Utilities</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x642.html b/doc/users_guide/html/x642.html
new file mode 100644
index 0000000..621c57b
--- /dev/null
+++ b/doc/users_guide/html/x642.html
@@ -0,0 +1,195 @@
+<HTML
+><HEAD
+><TITLE
+>APPLICABILITY AND DEFINITIONS</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="NEXT"
+TITLE="VERBATIM COPYING"
+HREF="x652.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="gfdl.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x652.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN642"
+>1. APPLICABILITY AND DEFINITIONS</A
+></H1
+><P
+>This License applies to any manual or other work that
+ contains a notice placed by the copyright holder saying it can be
+ distributed under the terms of this License. The "Document",
+ below, refers to any such manual or work. Any member of the
+ public is a licensee, and is addressed as "you".</P
+><P
+>A "Modified Version" of the Document means any work
+ containing the Document or a portion of it, either copied
+ verbatim, or with modifications and/or translated into another
+ language.</P
+><P
+>A "Secondary Section" is a named appendix or a front-matter
+ section of the Document that deals exclusively with the
+ relationship of the publishers or authors of the Document to the
+ Document's overall subject (or to related matters) and contains
+ nothing that could fall directly within that overall subject.
+ (For example, if the Document is in part a textbook of
+ mathematics, a Secondary Section may not explain any mathematics.)
+ The relationship could be a matter of historical connection with
+ the subject or with related matters, or of legal, commercial,
+ philosophical, ethical or political position regarding
+ them.</P
+><P
+>The "Invariant Sections" are certain Secondary Sections
+ whose titles are designated, as being those of Invariant Sections,
+ in the notice that says that the Document is released under this
+ License.</P
+><P
+>The "Cover Texts" are certain short passages of text that
+ are listed, as Front-Cover Texts or Back-Cover Texts, in the
+ notice that says that the Document is released under this
+ License.</P
+><P
+>A "Transparent" copy of the Document means a
+ machine-readable copy, represented in a format whose specification
+ is available to the general public, whose contents can be viewed
+ and edited directly and straightforwardly with generic text
+ editors or (for images composed of pixels) generic paint programs
+ or (for drawings) some widely available drawing editor, and that
+ is suitable for input to text formatters or for automatic
+ translation to a variety of formats suitable for input to text
+ formatters. A copy made in an otherwise Transparent file format
+ whose markup has been designed to thwart or discourage subsequent
+ modification by readers is not Transparent. A copy that is not
+ "Transparent" is called "Opaque".</P
+><P
+>Examples of suitable formats for Transparent copies include
+ plain ASCII without markup, Texinfo input format, LaTeX input
+ format, SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML designed for human modification.
+ Opaque formats include PostScript, PDF, proprietary formats that
+ can be read and edited only by proprietary word processors, SGML
+ or XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML produced by some word
+ processors for output purposes only.</P
+><P
+>The "Title Page" means, for a printed book, the title page
+ itself, plus such following pages as are needed to hold, legibly,
+ the material this License requires to appear in the title page.
+ For works in formats which do not have any title page as such,
+ "Title Page" means the text near the most prominent appearance of
+ the work's title, preceding the beginning of the body of the
+ text.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x652.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>GNU Free Documentation License</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>VERBATIM COPYING</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x652.html b/doc/users_guide/html/x652.html
new file mode 100644
index 0000000..25fde10
--- /dev/null
+++ b/doc/users_guide/html/x652.html
@@ -0,0 +1,145 @@
+<HTML
+><HEAD
+><TITLE
+>VERBATIM COPYING</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="APPLICABILITY AND DEFINITIONS"
+HREF="x642.html"><LINK
+REL="NEXT"
+TITLE="COPYING IN QUANTITY"
+HREF="x656.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x642.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x656.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN652"
+>2. VERBATIM COPYING</A
+></H1
+><P
+>You may copy and distribute the Document in any medium,
+ either commercially or noncommercially, provided that this
+ License, the copyright notices, and the license notice saying this
+ License applies to the Document are reproduced in all copies, and
+ that you add no other conditions whatsoever to those of this
+ License. You may not use technical measures to obstruct or
+ control the reading or further copying of the copies you make or
+ distribute. However, you may accept compensation in exchange for
+ copies. If you distribute a large enough number of copies you
+ must also follow the conditions in section 3.</P
+><P
+>You may also lend copies, under the same conditions stated
+ above, and you may publicly display copies.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x642.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x656.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>APPLICABILITY AND DEFINITIONS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>COPYING IN QUANTITY</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x656.html b/doc/users_guide/html/x656.html
new file mode 100644
index 0000000..78f15ca
--- /dev/null
+++ b/doc/users_guide/html/x656.html
@@ -0,0 +1,169 @@
+<HTML
+><HEAD
+><TITLE
+>COPYING IN QUANTITY</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="VERBATIM COPYING"
+HREF="x652.html"><LINK
+REL="NEXT"
+TITLE="MODIFICATIONS"
+HREF="x662.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x652.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x662.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN656"
+>3. COPYING IN QUANTITY</A
+></H1
+><P
+>If you publish printed copies of the Document numbering more
+ than 100, and the Document's license notice requires Cover Texts,
+ you must enclose the copies in covers that carry, clearly and
+ legibly, all these Cover Texts: Front-Cover Texts on the front
+ cover, and Back-Cover Texts on the back cover. Both covers must
+ also clearly and legibly identify you as the publisher of these
+ copies. The front cover must present the full title with all
+ words of the title equally prominent and visible. You may add
+ other material on the covers in addition. Copying with changes
+ limited to the covers, as long as they preserve the title of the
+ Document and satisfy these conditions, can be treated as verbatim
+ copying in other respects.</P
+><P
+>If the required texts for either cover are too voluminous to
+ fit legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.</P
+><P
+>If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a publicly-accessible
+ computer-network location containing a complete Transparent copy
+ of the Document, free of added material, which the general
+ network-using public has access to download anonymously at no
+ charge using public-standard network protocols. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.</P
+><P
+>It is requested, but not required, that you contact the
+ authors of the Document well before redistributing any large
+ number of copies, to give them a chance to provide you with an
+ updated version of the Document.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x652.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x662.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>VERBATIM COPYING</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>MODIFICATIONS</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x662.html b/doc/users_guide/html/x662.html
new file mode 100644
index 0000000..d76ee2e
--- /dev/null
+++ b/doc/users_guide/html/x662.html
@@ -0,0 +1,275 @@
+<HTML
+><HEAD
+><TITLE
+>MODIFICATIONS</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="COPYING IN QUANTITY"
+HREF="x656.html"><LINK
+REL="NEXT"
+TITLE="COMBINING DOCUMENTS"
+HREF="x698.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x656.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x698.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN662"
+>4. MODIFICATIONS</A
+></H1
+><P
+>You may copy and distribute a Modified Version of the
+ Document under the conditions of sections 2 and 3 above, provided
+ that you release the Modified Version under precisely this
+ License, with the Modified Version filling the role of the
+ Document, thus licensing distribution and modification of the
+ Modified Version to whoever possesses a copy of it. In addition,
+ you must do these things in the Modified Version:</P
+><P
+></P
+><OL
+TYPE="A"
+><LI
+><P
+>Use in the Title Page
+ (and on the covers, if any) a title distinct from that of the
+ Document, and from those of previous versions (which should, if
+ there were any, be listed in the History section of the
+ Document). You may use the same title as a previous version if
+ the original publisher of that version gives permission.</P
+></LI
+><LI
+><P
+>List on the Title Page,
+ as authors, one or more persons or entities responsible for
+ authorship of the modifications in the Modified Version,
+ together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has less than
+ five).</P
+></LI
+><LI
+><P
+>State on the Title page
+ the name of the publisher of the Modified Version, as the
+ publisher.</P
+></LI
+><LI
+><P
+>Preserve all the
+ copyright notices of the Document.</P
+></LI
+><LI
+><P
+>Add an appropriate
+ copyright notice for your modifications adjacent to the other
+ copyright notices.</P
+></LI
+><LI
+><P
+>Include, immediately
+ after the copyright notices, a license notice giving the public
+ permission to use the Modified Version under the terms of this
+ License, in the form shown in the Addendum below.</P
+></LI
+><LI
+><P
+>Preserve in that license
+ notice the full lists of Invariant Sections and required Cover
+ Texts given in the Document's license notice.</P
+></LI
+><LI
+><P
+>Include an unaltered
+ copy of this License.</P
+></LI
+><LI
+><P
+>Preserve the section
+ entitled "History", and its title, and add to it an item stating
+ at least the title, year, new authors, and publisher of the
+ Modified Version as given on the Title Page. If there is no
+ section entitled "History" in the Document, create one stating
+ the title, year, authors, and publisher of the Document as given
+ on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.</P
+></LI
+><LI
+><P
+>Preserve the network
+ location, if any, given in the Document for public access to a
+ Transparent copy of the Document, and likewise the network
+ locations given in the Document for previous versions it was
+ based on. These may be placed in the "History" section. You
+ may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.</P
+></LI
+><LI
+><P
+>In any section entitled
+ "Acknowledgements" or "Dedications", preserve the section's
+ title, and preserve in the section all the substance and tone of
+ each of the contributor acknowledgements and/or dedications
+ given therein.</P
+></LI
+><LI
+><P
+>Preserve all the
+ Invariant Sections of the Document, unaltered in their text and
+ in their titles. Section numbers or the equivalent are not
+ considered part of the section titles.</P
+></LI
+><LI
+><P
+>Delete any section
+ entitled "Endorsements". Such a section may not be included in
+ the Modified Version.</P
+></LI
+><LI
+><P
+>Do not retitle any
+ existing section as "Endorsements" or to conflict in title with
+ any Invariant Section.</P
+></LI
+></OL
+><P
+>If the Modified Version includes new front-matter sections
+ or appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.</P
+><P
+>You may add a section entitled "Endorsements", provided it
+ contains nothing but endorsements of your Modified Version by
+ various parties--for example, statements of peer review or that
+ the text has been approved by an organization as the authoritative
+ definition of a standard.</P
+><P
+>You may add a passage of up to five words as a Front-Cover
+ Text, and a passage of up to 25 words as a Back-Cover Text, to the
+ end of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.</P
+><P
+>The author(s) and publisher(s) of the Document do not by
+ this License give permission to use their names for publicity for
+ or to assert or imply endorsement of any Modified Version.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x656.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x698.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>COPYING IN QUANTITY</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>COMBINING DOCUMENTS</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x698.html b/doc/users_guide/html/x698.html
new file mode 100644
index 0000000..3fb386d
--- /dev/null
+++ b/doc/users_guide/html/x698.html
@@ -0,0 +1,154 @@
+<HTML
+><HEAD
+><TITLE
+>COMBINING DOCUMENTS</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="MODIFICATIONS"
+HREF="x662.html"><LINK
+REL="NEXT"
+TITLE="COLLECTIONS OF DOCUMENTS"
+HREF="x703.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x662.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x703.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN698"
+>5. COMBINING DOCUMENTS</A
+></H1
+><P
+>You may combine the Document with other documents released
+ under this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice.</P
+><P
+>The combined work need only contain one copy of this
+ License, and multiple identical Invariant Sections may be replaced
+ with a single copy. If there are multiple Invariant Sections with
+ the same name but different contents, make the title of each such
+ section unique by adding at the end of it, in parentheses, the
+ name of the original author or publisher of that section if known,
+ or else a unique number. Make the same adjustment to the section
+ titles in the list of Invariant Sections in the license notice of
+ the combined work.</P
+><P
+>In the combination, you must combine any sections entitled
+ "History" in the various original documents, forming one section
+ entitled "History"; likewise combine any sections entitled
+ "Acknowledgements", and any sections entitled "Dedications". You
+ must delete all sections entitled "Endorsements."</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x662.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x703.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>MODIFICATIONS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>COLLECTIONS OF DOCUMENTS</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x703.html b/doc/users_guide/html/x703.html
new file mode 100644
index 0000000..aedff67
--- /dev/null
+++ b/doc/users_guide/html/x703.html
@@ -0,0 +1,144 @@
+<HTML
+><HEAD
+><TITLE
+>COLLECTIONS OF DOCUMENTS</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="COMBINING DOCUMENTS"
+HREF="x698.html"><LINK
+REL="NEXT"
+TITLE="AGGREGATION WITH INDEPENDENT WORKS"
+HREF="x707.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x698.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x707.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN703"
+>6. COLLECTIONS OF DOCUMENTS</A
+></H1
+><P
+>You may make a collection consisting of the Document and
+ other documents released under this License, and replace the
+ individual copies of this License in the various documents with a
+ single copy that is included in the collection, provided that you
+ follow the rules of this License for verbatim copying of each of
+ the documents in all other respects.</P
+><P
+>You may extract a single document from such a collection,
+ and distribute it individually under this License, provided you
+ insert a copy of this License into the extracted document, and
+ follow this License in all other respects regarding verbatim
+ copying of that document.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x698.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x707.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>COMBINING DOCUMENTS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>AGGREGATION WITH INDEPENDENT WORKS</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x707.html b/doc/users_guide/html/x707.html
new file mode 100644
index 0000000..f7a2a34
--- /dev/null
+++ b/doc/users_guide/html/x707.html
@@ -0,0 +1,148 @@
+<HTML
+><HEAD
+><TITLE
+>AGGREGATION WITH INDEPENDENT WORKS</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="COLLECTIONS OF DOCUMENTS"
+HREF="x703.html"><LINK
+REL="NEXT"
+TITLE="TRANSLATION"
+HREF="x711.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x703.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x711.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN707"
+>7. AGGREGATION WITH INDEPENDENT WORKS</A
+></H1
+><P
+>A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, does not as a whole count as a
+ Modified Version of the Document, provided no compilation
+ copyright is claimed for the compilation. Such a compilation is
+ called an "aggregate", and this License does not apply to the
+ other self-contained works thus compiled with the Document, on
+ account of their being thus compiled, if they are not themselves
+ derivative works of the Document.</P
+><P
+>If the Cover Text requirement of section 3 is applicable to
+ these copies of the Document, then if the Document is less than
+ one quarter of the entire aggregate, the Document's Cover Texts
+ may be placed on covers that surround only the Document within the
+ aggregate. Otherwise they must appear on covers around the whole
+ aggregate.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x703.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x711.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>COLLECTIONS OF DOCUMENTS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>TRANSLATION</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x711.html b/doc/users_guide/html/x711.html
new file mode 100644
index 0000000..c9178e4
--- /dev/null
+++ b/doc/users_guide/html/x711.html
@@ -0,0 +1,143 @@
+<HTML
+><HEAD
+><TITLE
+>TRANSLATION</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="AGGREGATION WITH INDEPENDENT WORKS"
+HREF="x707.html"><LINK
+REL="NEXT"
+TITLE="TERMINATION"
+HREF="x714.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x707.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x714.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN711"
+>8. TRANSLATION</A
+></H1
+><P
+>Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires
+ special permission from their copyright holders, but you may
+ include translations of some or all Invariant Sections in addition
+ to the original versions of these Invariant Sections. You may
+ include a translation of this License provided that you also
+ include the original English version of this License. In case of
+ a disagreement between the translation and the original English
+ version of this License, the original English version will
+ prevail.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x707.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x714.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>AGGREGATION WITH INDEPENDENT WORKS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>TERMINATION</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x714.html b/doc/users_guide/html/x714.html
new file mode 100644
index 0000000..eaf6708
--- /dev/null
+++ b/doc/users_guide/html/x714.html
@@ -0,0 +1,140 @@
+<HTML
+><HEAD
+><TITLE
+>TERMINATION</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="TRANSLATION"
+HREF="x711.html"><LINK
+REL="NEXT"
+TITLE="FUTURE REVISIONS OF THIS LICENSE"
+HREF="x717.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x711.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x717.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN714"
+>9. TERMINATION</A
+></H1
+><P
+>You may not copy, modify, sublicense, or distribute the
+ Document except as expressly provided for under this License. Any
+ other attempt to copy, modify, sublicense or distribute the
+ Document is void, and will automatically terminate your rights
+ under this License. However, parties who have received copies, or
+ rights, from you under this License will not have their licenses
+ terminated so long as such parties remain in full
+ compliance.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x711.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x717.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>TRANSLATION</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FUTURE REVISIONS OF THIS LICENSE</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x717.html b/doc/users_guide/html/x717.html
new file mode 100644
index 0000000..37b1e60
--- /dev/null
+++ b/doc/users_guide/html/x717.html
@@ -0,0 +1,151 @@
+<HTML
+><HEAD
+><TITLE
+>FUTURE REVISIONS OF THIS LICENSE</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="TERMINATION"
+HREF="x714.html"><LINK
+REL="NEXT"
+TITLE="How to use this License for your documents"
+HREF="x722.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x714.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="x722.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN717"
+>10. FUTURE REVISIONS OF THIS LICENSE</A
+></H1
+><P
+>The Free Software Foundation may publish new, revised
+ versions of the GNU Free Documentation License from time to time.
+ Such new versions will be similar in spirit to the present
+ version, but may differ in detail to address new problems or
+ concerns. See <A
+HREF="http://www.gnu.org/copyleft/"
+TARGET="_top"
+>http://www.gnu.org/copyleft/</A
+>.</P
+><P
+>Each version of the License is given a distinguishing
+ version number. If the Document specifies that a particular
+ numbered version of this License "or any later version" applies to
+ it, you have the option of following the terms and conditions
+ either of that specified version or of any later version that has
+ been published (not as a draft) by the Free Software Foundation.
+ If the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x714.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="x722.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>TERMINATION</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>How to use this License for your documents</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x722.html b/doc/users_guide/html/x722.html
new file mode 100644
index 0000000..8b3ac32
--- /dev/null
+++ b/doc/users_guide/html/x722.html
@@ -0,0 +1,152 @@
+<HTML
+><HEAD
+><TITLE
+>How to use this License for your documents</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GNU Free Documentation License"
+HREF="gfdl.html"><LINK
+REL="PREVIOUS"
+TITLE="FUTURE REVISIONS OF THIS LICENSE"
+HREF="x717.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x717.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Appendix A. GNU Free Documentation License</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+>&nbsp;</TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN722"
+>How to use this License for your documents</A
+></H1
+><P
+>To use this License in a document you have written, include
+ a copy of the License in the document and put the following
+ copyright and license notices just after the title page:</P
+><A
+NAME="AEN725"
+></A
+><BLOCKQUOTE
+CLASS="BLOCKQUOTE"
+><P
+> Copyright (c) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1
+ or any later version published by the Free Software Foundation;
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+ A copy of the license is included in the section entitled "GNU
+ Free Documentation License".</P
+></BLOCKQUOTE
+><P
+>If you have no Invariant Sections, write "with no Invariant
+ Sections" instead of saying which ones are invariant. If you have
+ no Front-Cover Texts, write "no Front-Cover Texts" instead of
+ "Front-Cover Texts being LIST"; likewise for Back-Cover
+ Texts.</P
+><P
+>If your document contains nontrivial examples of program
+ code, we recommend releasing these examples in parallel under your
+ choice of free software license, such as the GNU General Public
+ License, to permit their use in free software.</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x717.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FUTURE REVISIONS OF THIS LICENSE</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="gfdl.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/html/x85.html b/doc/users_guide/html/x85.html
new file mode 100644
index 0000000..5f78ca5
--- /dev/null
+++ b/doc/users_guide/html/x85.html
@@ -0,0 +1,1732 @@
+<HTML
+><HEAD
+><TITLE
+>The Gimp-Print Graphical User Interface</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="The User's Guide to the Gimp-Print Top Quality Printer Drivers"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="GIMP and Gimp-Print"
+HREF="ch-gimp-and-gimp-print.html"><LINK
+REL="PREVIOUS"
+TITLE="GIMP and Gimp-Print"
+HREF="ch-gimp-and-gimp-print.html"><LINK
+REL="NEXT"
+TITLE="CUPS and Gimp-Print"
+HREF="c447.html"></HEAD
+><BODY
+CLASS="SECT1"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>The User's Guide to the Gimp-Print Top Quality Printer Drivers</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="ch-gimp-and-gimp-print.html"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Chapter 2. GIMP and Gimp-Print</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="c447.html"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="AEN85"
+>The Gimp-Print Graphical User Interface</A
+></H1
+><P
+> Now that the GIMP is displaying your picture, put your mouse over
+the picture and click the right mouse button. A menu will appear.
+Choose the
+ <SPAN
+CLASS="GUIMENU"
+>File</SPAN
+>-&gt;<SPAN
+CLASS="GUIMENUITEM"
+>Print</SPAN
+>
+menu option. This will cause the Gimp-Print GUI window to appear (see
+<A
+HREF="x85.html#FIG-GIMP-PRINT-GUI"
+>Figure 2-3</A
+>). Move the mouse cursor
+over the various parts of the Gimp-Print GUI window, and notice that
+if you leave your mouse in one place for a short time without clicking
+any buttons, a small box appears. This box contains helpful text.
+These small boxes are called "tooltips" and are intended to remind you
+about the function of each part of the graphical interface.
+ </P
+><P
+>The next several sections will continuously refer to
+<A
+HREF="x85.html#FIG-GIMP-PRINT-GUI"
+>Figure 2-3</A
+> and
+<A
+HREF="x85.html#FIG-GIMP-PRINT-GUI-1"
+>Figure 2-4</A
+>. The difference between
+the two figures can be seen in the top right corner of the window.
+Notice that there are two tabs, one which reads
+<SPAN
+CLASS="GUILABEL"
+>Printer Settings</SPAN
+> and another which reads
+<SPAN
+CLASS="GUILABEL"
+>Image/Output Settings</SPAN
+>. Notice also that the
+window is divided into several major sections which directly map to
+the major sections of this document:
+ <P
+></P
+><UL
+><LI
+><P
+><A
+HREF="x85.html#AEN234"
+>Preview</A
+></P
+></LI
+><LI
+><P
+><A
+HREF="x85.html#AEN130"
+>Printer Settings</A
+></P
+></LI
+><LI
+><P
+><A
+HREF="x85.html#AEN130"
+>Image/Output Settings</A
+></P
+></LI
+><LI
+><P
+><A
+HREF="x85.html#AEN258"
+>Position</A
+></P
+></LI
+><LI
+><P
+><A
+HREF="x85.html#AEN330"
+>Size</A
+></P
+></LI
+><LI
+><P
+><A
+HREF="x85.html#AEN430"
+>Printing and Saving Settings</A
+></P
+></LI
+></UL
+>
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-GIMP-PRINT-GUI"
+></A
+><P
+><B
+>Figure 2-3. The Gimp-Print Graphical User Interface 1 (GUI)</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp-print-gui.png"
+ALT="The GIMP Print GUI showing printer settings"
+></IMG
+></P
+></DIV
+></DIV
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-GIMP-PRINT-GUI-1"
+></A
+><P
+><B
+>Figure 2-4. The Gimp-Print Graphical User Interface 2 (GUI)</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp-print-gui-1.png"
+ALT="The GIMP Print GUI showing image/output settings"
+></IMG
+></P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN130"
+>Printer Settings</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN134"
+>Printer</A
+></H3
+><P
+> Click on the <SPAN
+CLASS="GUILABEL"
+>Printer Settings</SPAN
+> tab near the
+top right hand corner of the window (see
+<A
+HREF="x85.html#FIG-GIMP-PRINT-GUI"
+>Figure 2-3</A
+>). Then, click on the downward
+facing arrow to the right of the <SPAN
+CLASS="GUILABEL"
+>Printer</SPAN
+> combo
+box to see a list of the system printer queues. Select the queue to which
+you would like the printed image to be sent. One may also print the
+image directly to a file by selecting <SPAN
+CLASS="GUIMENUITEM"
+>File</SPAN
+>.
+In this event, the user will be prompted for the filename when either the
+<SPAN
+CLASS="GUIBUTTON"
+>Print</SPAN
+> button or the <SPAN
+CLASS="GUIBUTTON"
+>Print and Save
+Settings</SPAN
+> button is clicked.
+ </P
+><P
+>When either the <SPAN
+CLASS="GUIBUTTON"
+>Print and Save Settings</SPAN
+> button
+or the <SPAN
+CLASS="GUIBUTTON"
+>Save Settings</SPAN
+> button is clicked,
+the settings are saved in a file called
+<TT
+CLASS="FILENAME"
+>~/.gimp-1.2/printrc</TT
+>. The user is cautioned about
+hand editing this file since it is generated by Gimp-Print (although
+it was the only way that the author found for removing bogus entries
+created while playing with the <SPAN
+CLASS="GUIBUTTON"
+>New Printer</SPAN
+> button).
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN148"
+>Setup Printer</A
+></H3
+><P
+> Before any useful printing can occur, the user needs to associate
+the named printer with the
+actual make and model of the printer. Click the
+<SPAN
+CLASS="GUIBUTTON"
+>Setup Printer</SPAN
+> button in
+the <SPAN
+CLASS="GUILABEL"
+>Printer</SPAN
+> section of the window (the upper
+right, and just below the Printer display box). When this is done, the
+following window appears:
+
+ <DIV
+CLASS="FIGURE"
+><A
+NAME="AEN153"
+></A
+><P
+><B
+>Figure 2-5. The Setup Printer Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp-print-setup.png"
+ALT="The Setup Printer Window"
+></IMG
+></P
+></DIV
+></DIV
+>
+ </P
+><P
+> Scroll through the Printer Model section of the window until you
+find a printer which matches yours. If you cannot find the precise
+model, pick something close and hope for the best. There are selections
+for a wide array of Postscript, inkjet, and laser printers. After you
+have selected a printer, you will see the printer command displayed.
+ </P
+><P
+>The Gimp-Print software does all of the necessary conversion of the
+image to be printed into the language of your printer. It is
+unnecessary and undesirable for any other sofware to manipulate this
+data. (This is why the command contains the "-l" switch or the "-o
+raw" switch). Please use care if you feel the need to edit this
+command. Once you are satisfied with your selection, click the
+<SPAN
+CLASS="GUIBUTTON"
+>OK</SPAN
+> button.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN163"
+>New Printer</A
+></H3
+><P
+> In the previous sections, the user selected an existing printer
+queue and associated a particular type of printer to that queue. For
+most cases, this is probably all that is required. However, some
+situations might require more detailed control over the handling of
+the printer data.
+ </P
+><P
+> Click the <SPAN
+CLASS="GUIBUTTON"
+>New Printer</SPAN
+> button to tell the
+software that you wish to create a new name. In this case, the new
+name may actually be an existing printer with different settings that
+you wish to save, or it may simply be a name associated with a
+particular command for handling the printer data. A window will
+appear thus:
+
+ <DIV
+CLASS="FIGURE"
+><A
+NAME="AEN168"
+></A
+><P
+><B
+>Figure 2-6. The New Printer Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp-print-new-printer.png"
+ALT="The New Printer Window"
+></IMG
+></P
+></DIV
+></DIV
+>
+
+ Type a name into the window and click <SPAN
+CLASS="GUIBUTTON"
+>OK</SPAN
+>
+(or <SPAN
+CLASS="GUIBUTTON"
+>Cancel</SPAN
+> if you wish not to do this).
+Notice that the new name now appears as the selected <SPAN
+CLASS="GUILABEL"
+>Printer</SPAN
+>.
+As you change settings in the rest of the Gimp-Print GUI, they will be
+associated with this printer name. When the settings are saved,
+they can be recovered easily by simply selecting this named printer
+from the Printer combo box.
+ </P
+><P
+> One example where this feature might be used is as follows. The
+author frequently prints photos on Epson 4x6 photo paper. Note that
+this paper is physically larger than 4x6 and it has perforations on
+all four sides. The author dislikes printing part of the image on the
+perforated parts of the paper which will be removed after
+printing the photo. By selecting the proper scaling percentage,
+printing can be constrained to the 4x6 part of the paper which will
+remain after the perforated sections are removed. The author has
+saved this setting using this feature of the Gimp-Print software.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN179"
+>Media Size</A
+></H3
+><P
+> The term <I
+CLASS="EMPHASIS"
+>media</I
+> refers to paper, card stock,
+envelopes, or whatever you have put into your printer onto which
+something will be printed. Click the arrow to the right of the
+<SPAN
+CLASS="GUILABEL"
+>Media Size</SPAN
+> box to see a long list of different
+sizes of media. Choose the size that matches the media which you have
+loaded into your printer. Once you have made your choice, the drop
+down menu will disappear, and your choice will be shown in the
+<SPAN
+CLASS="GUILABEL"
+>Media Size</SPAN
+> box. The available paper sizes will
+vary depending upon the printer model you have selected.
+ </P
+><P
+> Some printers support arbitrary (within limits!) paper sizes.
+ These printers will let you select <I
+CLASS="EMPHASIS"
+>Custom</I
+>
+ or <I
+CLASS="EMPHASIS"
+>Roll</I
+> paper sizes. When you select such a
+ printer, one or both of the <SPAN
+CLASS="GUILABEL"
+>Dimensions</SPAN
+> boxes
+ will let you enter your paper size (in inches or centimetres). The
+ boxes will not let you enter sizes that your printer cannot handle.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN189"
+>Media Type</A
+></H3
+><P
+> The type of media onto which your image will be printed should be
+selected here. Click on the arrow to the right of the <SPAN
+CLASS="GUILABEL"
+>Media
+Type</SPAN
+> box to see a long list of the different types of media
+onto which you may print your image. Media types include such things
+as plain paper, postcards, photo quality paper, transparencies, and
+more! Once you have made your choice, the drop down menu will
+disappear, and your choice will be shown in the <SPAN
+CLASS="GUILABEL"
+>Media
+Type</SPAN
+> box. The choices available will vary depending upon
+the printer model you have selected.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN194"
+>Media Source</A
+></H3
+><P
+> The <SPAN
+CLASS="GUILABEL"
+>Media Source</SPAN
+> box allows the user to
+ choose the paper source, sometimes called <I
+CLASS="EMPHASIS"
+>Input
+ Slot</I
+>, that the paper will be fed from. Many printers
+ only have one available input source (such as the standard paper
+ tray), in which case this entry will be grayed out. If your printer
+ does support multiple input sources, you may specify the source of
+ your choice here. Some Epson printers offer a roll feed option in
+ addition to the standard paper tray, and many HP LaserJet printers
+ have multiple paper trays.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN199"
+>Ink Type</A
+></H3
+><P
+> Some printers offer a choice of different types of ink or ink
+ cartridges. Many Canon and Lexmark printers support various
+ combinations of cartridges, such as black only, black and color,
+ photo color, and so forth. Most Epson printers let you choose
+ between three and four color printing (three color uses only color
+ ink, while four color uses black ink as well). Epson printers that
+ support six color photo printing allow you to choose five and six
+ color printing as well.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN202"
+>Resolution</A
+></H3
+><P
+> Click on the arrow to the right of the
+<SPAN
+CLASS="GUILABEL"
+>Resolution</SPAN
+> box to see a long list of resolutions
+at which you can print your image. The list is written with the
+lowest resolution at the top, with increasing resolution (and
+generally improved printing quality) as you approach the bottom of the
+list. Different printers support different resolution options, and
+many printers support different quality choices using the same basic
+resolution. In this menu are a few terms which may be unfamiliar to
+you, and they will now be explained.
+ </P
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN206"
+>DPI</A
+></H4
+><P
+> DPI is an acronym which stands for <I
+CLASS="EMPHASIS"
+>D</I
+>ots
+<I
+CLASS="EMPHASIS"
+>P</I
+>er <I
+CLASS="EMPHASIS"
+>I</I
+>nch. This term refers
+to the number of dots that your printer will print in a space of one
+inch (approximately 2.54 cm). This is highly dependent upon the
+capability of your printer. Resolutions below 300 DPI are
+used for draft quality. For general purpose printing, select
+300 - 360 DPI. Higher quality printing can be achieved by
+selecting 600 - 720 DPI. Settings higher than this are used for the
+highest possible quality for printing photographs and other high
+quality graphics. Experiment with your printer and these settings
+with different types of graphics and photographs to see what
+results you can obtain with your printer. High resolutions (large
+numbers of dots per inch) require substantial image processing time,
+and the print files can be very large; it's not uncommon for a full
+page, 1440x720 DPI image to require 100 MB of temporary storage!
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN212"
+>Draft or Fast Economy Draft</A
+></H4
+><P
+> When this text appears next to the resolution, it refers to the
+fact that the quality will be relatively low, but suitable for rough
+drafts. Draft quality is higher than fast economy draft. These
+options will give you the fastest printing speed. Economy Draft uses
+less ink, and as a result the image will be pale. These modes are
+generally not very useful for printing photographs.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN215"
+>Unidirectional</A
+></H4
+><P
+> When printing an image, you have probably noticed the print
+head inside the printer moving back and forth across the print media.
+Many printers are capable of putting ink on the page regardless of
+which direction the print head is moving. However, quality can
+sometimes be improved by only putting ink on the page when the printer
+head is moving in one direction. The
+<SPAN
+CLASS="GUIMENUITEM"
+>Unidirectional</SPAN
+> setting instructs the
+software to only place ink on the page when the print head is moving
+one way. When the print head returns, it will not place ink on the
+page. On many printers, the print quality is better, at the expense
+of printing speed.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN219"
+>High(est) Quality</A
+></H4
+><P
+> With lower quality print modes, one may see an effect where
+the printed image looks like it has rows of stripes with a small
+separation between the stripes. This effect is called "banding" and
+is undesirable. In the <I
+CLASS="EMPHASIS"
+>high</I
+> and
+<I
+CLASS="EMPHASIS"
+>highest</I
+> quality modes, the printer will make more
+passes over the same part of the page in order to improve quality and
+(reduce or) eliminate banding. This requires more temporary disk
+space and prints more slowly, but does not require significantly more
+processing time.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN224"
+>Interleave</A
+></H4
+><P
+> Certain Epson printers (older models mostly) support a printing
+ mode called <I
+CLASS="EMPHASIS"
+>Interleave</I
+>. This mode uses
+ special software within the printer to improve the print quality.
+ Interleave print modes will usually produce better quality
+ output than non-Interleave modes, with only a small performance
+ penalty. If Interleave is not listed at your chosen
+ resolution, fear not. In those cases, the non-Interleave print
+ modes offer similar printing quality improvements.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN228"
+>DMT</A
+></H4
+><P
+> DMT is an acronym which stands for <I
+CLASS="EMPHASIS"
+>D</I
+>ot
+ <I
+CLASS="EMPHASIS"
+>M</I
+>odulation
+ <I
+CLASS="EMPHASIS"
+>T</I
+>echnology.
+ This term refers to a print mode used by certain Canon printers
+ to improve the quality of the printed output. Unfortunately,
+ at this time, all of the available DMT modes do not work
+ correctly. The cases which do work correctly will offer
+ significantly improved printing quality.
+ </P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN234"
+>Preview</A
+></H2
+><P
+> Notice in the upper left of the window is a preview of your image.
+This preview is a representation of where your picture will print on
+the selected media, and approximately what it will look like. This
+preview will be updated as you modify selections in the
+<SPAN
+CLASS="GUILABEL"
+>Position</SPAN
+>, <SPAN
+CLASS="GUILABEL"
+>Size</SPAN
+>,
+<SPAN
+CLASS="GUILABEL"
+>Media Size</SPAN
+>, and <SPAN
+CLASS="GUILABEL"
+>Output Type</SPAN
+>
+portions of the window. You may also select the image with your mouse
+and move it manually if you wish. In doing so, you will note that the
+<SPAN
+CLASS="GUILABEL"
+>Position</SPAN
+> settings are updated accordingly. Take
+note of the arrow, which points toward the top of the media, where top
+is the first part of the media to enter the printer.
+ </P
+><P
+> The preview may be moved around the page as follows:
+ </P
+><P
+></P
+><UL
+><LI
+><P
+> Clicking and dragging the <I
+CLASS="EMPHASIS"
+>left</I
+>
+ (primary) mouse button moves the image around the page as you would
+ expect; the image moves with the mouse. </P
+></LI
+><LI
+><P
+> Clicking and dragging the
+ <I
+CLASS="EMPHASIS"
+>middle</I
+> mouse button moves the image around the
+ page in a finer fashion, such that each pixel of mouse movement
+ moves the image by one point (1/72 inch). This allows very fine
+ placement of the image on the page. </P
+></LI
+><LI
+><P
+> Clicking and dragging the
+ <I
+CLASS="EMPHASIS"
+>right</I
+> (secondary) mouse button moves the image
+ around the page much the same as with the left button, but the image
+ will only move in units of the image size. Thus, if the image is
+ one inch wide and two inches tall, the image will not move at all
+ until you have moved the mouse far enough so that the image would be
+ moved one inch vertically and two inches horizontally. This is
+ handy if you wish to print multiple images of the same size on one
+ piece of paper.</P
+></LI
+><LI
+><P
+> If you hold down the <I
+CLASS="EMPHASIS"
+>shift</I
+> key
+ on the keyboard when you click and drag the mouse, the image will
+ only move in the horizontal or vertical direction (depending upon
+ which way you first move the mouse). This allows you to constrain
+ motion to the horizontal or vertical. </P
+></LI
+><LI
+><P
+> If you click another button while dragging the
+ mouse, the image will immediately return to the position it was in
+ before you clicked the mouse the first time. This allows you to
+ not move the image if you have started moving it and have decided
+ that you don't want to move it. The preview will not respond to the
+ mouse until you release all of the mouse buttons and click and drag
+ afresh. </P
+></LI
+></UL
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN258"
+>Position</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN260"
+>Orientation</A
+></H3
+><P
+> The Orientation menu allows the user to choose the orientation
+of the paper. The menu selections are
+<SPAN
+CLASS="GUIMENUITEM"
+>Auto</SPAN
+>, <SPAN
+CLASS="GUIMENUITEM"
+>Portrait</SPAN
+>,
+<SPAN
+CLASS="GUIMENUITEM"
+>Landscape</SPAN
+>, <SPAN
+CLASS="GUIMENUITEM"
+>Upside
+down</SPAN
+>, and <SPAN
+CLASS="GUIMENUITEM"
+>Seascape</SPAN
+>. Click on
+the rectangular tab to see these choices
+and make your selection. When you have done so, the pulldown menu
+will have disappeared, and your choice will appear. Also, note that
+the preview image will have changed accordingly.
+ </P
+><P
+> When set to <SPAN
+CLASS="GUIMENUITEM"
+>Auto</SPAN
+>, the software will make an
+intelligent choice of orientation based on the dimensions of the image
+to be printed. <SPAN
+CLASS="GUIMENUITEM"
+>Portrait</SPAN
+> orients the print media
+with the longest edge going from top to bottom, while
+<SPAN
+CLASS="GUIMENUITEM"
+>Landscape</SPAN
+> orients the paper with the longest edge
+going from side to side. <SPAN
+CLASS="GUIMENUITEM"
+>Upside down</SPAN
+> and
+<SPAN
+CLASS="GUIMENUITEM"
+>Seascape</SPAN
+> orient the paper the same as
+<SPAN
+CLASS="GUIMENUITEM"
+>Portrait</SPAN
+> and <SPAN
+CLASS="GUIMENUITEM"
+>Landscape</SPAN
+>
+respectively, with the difference being that the image is rotated 180 degrees.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN276"
+>Automatic Centering</A
+></H3
+><P
+> There are three buttons that deal with centering an image. The
+leftmost button is the <SPAN
+CLASS="GUIBUTTON"
+>Vertically</SPAN
+> button, the
+middle button is the <SPAN
+CLASS="GUIBUTTON"
+>Both</SPAN
+> button, and
+the rightmost button is the <SPAN
+CLASS="GUIBUTTON"
+>Horizontally</SPAN
+>
+button. Use the <SPAN
+CLASS="GUIBUTTON"
+>Both</SPAN
+> button to center your
+image both horizontally and vertically. This will cause the top and
+bottom borders to be equal, and the left and right borders to be
+equal. If you have placed your image manually by using the mouse
+button, then you may center the image in the horizontal direction only
+by clicking on the <SPAN
+CLASS="GUIBUTTON"
+>Horizontally</SPAN
+> button.
+Likewise, to adjust the image only in the vertical direction, click on
+the <SPAN
+CLASS="GUIBUTTON"
+>Vertically</SPAN
+> button. Note that in
+each case, the image is centered with regard to the edges of the
+media, and without regard to the printable portion of the media. Many
+printers are incapable of printing to each edge of the media. Some
+media may have edges which detach. Consult your printer documentation
+for more details regarding your printer's capabilities in this regard.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN285"
+>Manual Settings</A
+></H3
+><P
+> You will notice that there are six boxes that contain numbers
+just below the Orientation menu and just above the GUI buttons related
+to centering an image. When you move the preview image manually with
+the mouse, or when you click on one of the centering buttons, the
+preview image moves and these six boxes get updated.
+ </P
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN288"
+>Left</A
+></H4
+><P
+> The number appearing in the <SPAN
+CLASS="GUIMENUITEM"
+>Left</SPAN
+> box denotes
+the number of units (cm or inches) that the left side of the image
+will be printed away from the left edge of the media. You may select
+the units by clicking the <SPAN
+CLASS="GUIBUTTON"
+>Inch</SPAN
+> or
+<SPAN
+CLASS="GUIBUTTON"
+>cm</SPAN
+> buttons in the <SPAN
+CLASS="GUILABEL"
+>Units</SPAN
+> section just below
+these GUI boxes.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN295"
+>Right</A
+></H4
+><P
+> The number appearing in the <SPAN
+CLASS="GUIMENUITEM"
+>Right</SPAN
+> box denotes
+the number of units (cm or inches) that the right side of the image
+will be printed away from the left edge of the media. You may select
+the units by clicking the <SPAN
+CLASS="GUIBUTTON"
+>Inch</SPAN
+> or
+<SPAN
+CLASS="GUIBUTTON"
+>cm</SPAN
+> buttons in the <SPAN
+CLASS="GUILABEL"
+>Units</SPAN
+> section just below
+these GUI boxes.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN302"
+>Right Border</A
+></H4
+><P
+> The number appearing in the <SPAN
+CLASS="GUIMENUITEM"
+>Right Border</SPAN
+> box denotes
+the number of units (cm or inches) that the right side of the image
+will be printed away from the right edge of the media. You may select
+the units by clicking the <SPAN
+CLASS="GUIBUTTON"
+>Inch</SPAN
+> or
+<SPAN
+CLASS="GUIBUTTON"
+>cm</SPAN
+> buttons in the <SPAN
+CLASS="GUILABEL"
+>Units</SPAN
+> section just below
+these GUI boxes.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN309"
+>Top</A
+></H4
+><P
+> The number appearing in the <SPAN
+CLASS="GUIMENUITEM"
+>Top</SPAN
+> box denotes
+the number of units (cm or inches) that the top side of the image
+will be printed away from the top edge of the media. You may select
+the units by clicking the <SPAN
+CLASS="GUIBUTTON"
+>Inch</SPAN
+> or
+<SPAN
+CLASS="GUIBUTTON"
+>cm</SPAN
+> buttons in the <SPAN
+CLASS="GUILABEL"
+>Units</SPAN
+> section just below
+these GUI boxes.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN316"
+>Bottom</A
+></H4
+><P
+> The number appearing in the <SPAN
+CLASS="GUIMENUITEM"
+>Bottom</SPAN
+> box denotes
+the number of units (cm or inches) that the bottom side of the image
+will be printed away from the top edge of the media. You may select
+the units by clicking the <SPAN
+CLASS="GUIBUTTON"
+>Inch</SPAN
+> or
+<SPAN
+CLASS="GUIBUTTON"
+>cm</SPAN
+> buttons in the <SPAN
+CLASS="GUILABEL"
+>Units</SPAN
+> section just below
+these GUI boxes.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN323"
+>Bottom Border</A
+></H4
+><P
+> The number appearing in the <SPAN
+CLASS="GUIMENUITEM"
+>Bottom Border</SPAN
+> box denotes
+the number of units (cm or inches) that the bottom side of the image
+will be printed away from the bottom edge of the media. You may select
+the units by clicking the <SPAN
+CLASS="GUIBUTTON"
+>Inch</SPAN
+> or
+<SPAN
+CLASS="GUIBUTTON"
+>cm</SPAN
+> buttons in the <SPAN
+CLASS="GUILABEL"
+>Units</SPAN
+> section just below
+these GUI boxes.
+ </P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN330"
+>Size</A
+></H2
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN332"
+>Slider Bar and Spin Box</A
+></H3
+><P
+> The slider bar can be moved as desired by the user. Notice
+that while sliding this bar, the preview image changes accordingly.
+One will also note that several boxes in the Gimp-Print GUI change values when this bar is moved.
+These boxes are the six position boxes (left, right, right border,
+top, bottom, bottom border), the two size boxes (width and height),
+and the spin box to the right of the slider bar.
+ </P
+><P
+> This slider bar is used to scale the image to a desirable size, but the same effect can
+be obtained by either clicking an arrow on the spin box to the right of this
+slider bar, or by manually typing a number into this spin box. Notice
+that by setting the spin box in this way, the slider bar is also
+moved. All of the described methods will cause the image to be
+scaled accordingly.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN336"
+>Scale by Percent or PPI</A
+></H3
+><P
+> One may choose to scale the image by a percentage, or by PPI,
+which means "<I
+CLASS="EMPHASIS"
+>p</I
+>ixels <I
+CLASS="EMPHASIS"
+>p</I
+>er
+<I
+CLASS="EMPHASIS"
+>i</I
+>nch". Click the radio button
+next to the word to set the desired scaling factor.
+ </P
+><P
+> When scaling by a percentage, the number reflected in the spin
+box next to the slider bar represents the percentage relative
+to the full size of the selected print medium. For example, with this spin box
+set to 50, the image will be scaled to 50% of the size of the print
+medium. When set to 100, the image will attempt to fill the print
+medium, within the constraints of maintaining the proper aspect ratio
+and the margins of the selected print medium. This effect can be seen
+in the preview window.
+ </P
+><P
+> When scaling by PPI, the number reflected in the spin box next to
+the slider bar represents the number of pixels that will be
+printed per inch. For example, if the user is printing a 640x480
+image at a size of 6.4x4.8 inches (as measured by the size boxes), the
+image will be printed at 100 DPI.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN344"
+>Use Original Image Size</A
+></H3
+><P
+> By clicking this button, the image will be scaled to as close
+to the native size of the image as possible. This effect can
+immediately be seen in the preview image.
+ </P
+><P
+> The native image size may be found or set in the GIMP by
+ selecting <SPAN
+CLASS="GUIMENUITEM"
+>Image/Scale Image</SPAN
+> in the
+ GIMP. Under the <SPAN
+CLASS="GUILABEL"
+>Print Size and Display Unit</SPAN
+>
+ group in the <SPAN
+CLASS="GUILABEL"
+>Scale Image</SPAN
+> dialog, you can
+ determine (or change) the width and height of the image, or
+ choose the resolution.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN351"
+>Width and Height</A
+></H3
+><P
+> These boxes show the size of the printed image in either inches
+or centimeters (depending on which unit is selected). The user may
+choose to manually modify these values. When one value is modified,
+the other value is automatically modified in order to maintain the
+aspect ratio (the ratio of width to height). This effect can be
+immediately seen in the preview image.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN354"
+>Units</A
+></H3
+><P
+> The units can be set to inches or centimeters by clicking the appropriate
+radio button next to the desired unit. This setting effects the
+values printed in the six position boxes (left, right, right border,
+top, bottom, bottom border) and the two size boxes (width and height).
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN357"
+>Image/Output Settings</A
+></H2
+><P
+> By clicking on the tab labeled <SPAN
+CLASS="GUILABEL"
+>Image/Output
+Settings</SPAN
+>, the Gimp-Print window will appear as shown in
+<A
+HREF="x85.html#FIG-GIMP-PRINT-GUI-1"
+>Figure 2-4</A
+>. Notice that there are
+two sections to this portion of the window, namely,
+<SPAN
+CLASS="GUILABEL"
+>Image Type</SPAN
+> and
+<SPAN
+CLASS="GUILABEL"
+>Output Type</SPAN
+>.
+
+ </P
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN364"
+>Image Type</A
+></H3
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN366"
+>Line Art</A
+></H4
+><P
+> This setting tells the printer driver to generate color
+quickly. The color is bold and bright, but color accuracy is not very
+good. There may also be some unexpectedly sharp transitions in
+colors. This mode is acceptable for printing text with small amounts
+of color, and may be acceptable for presentation graphics.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN369"
+>Solid Colors</A
+></H4
+><P
+> This mode produces color which is considerably more accurate
+than the <SPAN
+CLASS="GUILABEL"
+>Line Art</SPAN
+> mode, but with a reduction in performance. In
+general, hues will be accurate but tonalities may not be accurate.
+There should be no sharp transitions in colors. This mode is good for
+printing presentation graphics in most cases.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN373"
+>Photograph</A
+></H4
+><P
+> This mode produces the most accurate colors and tonalities at a
+greater cost in performance. This is the mode to use when printing
+high quality photographs or other high quality images.
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN376"
+>Output Type</A
+></H3
+><P
+> The user is given the choice of color, black and white, and
+grayscale. Color is selected when the desired output is to be in
+color. Greyscale will result in the printed image having various
+shades of grey. Black and white is just that. The effect of this
+setting can be seen in the preview window.
+ </P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="AEN379"
+>Adjust Output</A
+></H3
+><P
+> Clicking on this button causes the <SPAN
+CLASS="GUILABEL"
+>Print Color Adjust</SPAN
+> window to
+appear (see <A
+HREF="x85.html#FIG-GIMP-PRINT-COLOR-ADJUST"
+>Figure 2-7</A
+>). In
+this window, one will see a representation of the image to be printed
+as well as several slider bars. These slider bars collectively adjust
+many different aspects of the image. The values can also be adjusted
+by clicking the arrows or by typing a value into the appropriate spin
+box on the right side of each slider bar.
+ </P
+><DIV
+CLASS="FIGURE"
+><A
+NAME="FIG-GIMP-PRINT-COLOR-ADJUST"
+></A
+><P
+><B
+>Figure 2-7. The Print Color Adjust Window</B
+></P
+><DIV
+CLASS="MEDIAOBJECT"
+><P
+><IMG
+SRC="figures/gimp-print-print-color-adjust.png"
+ALT=">The Print Color Adjust Window"
+></IMG
+></P
+></DIV
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN391"
+>Brightness</A
+></H4
+><P
+> Adjust the brightness of the image. A setting of 0.0 gives a fully black
+image, while a 2.0 setting gives a fully white image. Values greater than 1.0 will result in
+ black not being solid and highlights turning white; values less than
+ 1.0 will result in white not being perfectly clear and shadows turning
+ black.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN394"
+>Contrast</A
+></H4
+><P
+> Adjust the contrast of the image. A setting of 0.0 gives a solid gray for the
+entire image, the exact gray depending upon the brightness chosen.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN397"
+>Cyan, Magenta, Yellow</A
+></H4
+><P
+>These three options allow specification of the cyan, magenta, and
+yellow levels independently, for rebalancing the levels. Normally,
+these should be adjusted to yield neutral gray, but they can be used
+for other effects.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN400"
+>Saturation</A
+></H4
+><P
+>Adjust the brilliance of colors. A setting of 0.0 results in pure grayscale.
+A saturation setting of less than 1.0 results in more muted colors. A
+saturation setting of greater than 1.0 results in more vibrant colors. Very high
+saturation often results in very strange effects, including
+posterization and banding that might not be expected. For normal
+purposes, the saturation should generally be set to a value less than 1.5.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN403"
+>Density</A
+></H4
+><P
+>Adjust the amount of ink deposited on the paper. If you have chosen the
+correct paper type and are getting ink bleeding through the paper
+or puddling, try reducing the density to the lowest value you
+can while still achieving solid black. If black is not solid
+black, even with the contrast and brightness at 1.0, try increasing
+the density. Note that changes to this setting will not be visible in
+the image preview.
+ </P
+><P
+>All of the supported printers actually need less than 100% ink
+density in most cases, so the actual density is something other than
+the nominal density setting. The effective density setting cannot go
+above 100%, so if a value specified will result in an excessively high
+density level, it will be silently limited to a setting of 1.0.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN407"
+>Gamma</A
+></H4
+><P
+>Adjust the gamma of the image, over and above the printer-specific
+correction. Gamma less than 1.0 will result in a darker image; gamma
+greater than 1.0 will result in a lighter image. Unlike brightness,
+gamma adjustment does not change the endpoints; it merely changes the
+shape of the input-&#62;output curve.
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN410"
+>Dither Algorithm</A
+></H4
+><P
+>The recommended dither algorithm is <SPAN
+CLASS="GUIMENUITEM"
+>Adaptive
+Hybrid</SPAN
+> (which is the default) for text or other fine
+black detail, or if this is mixed with continuous tone images. The
+<SPAN
+CLASS="GUIMENUITEM"
+>Ordered</SPAN
+> dithering algorithm is just as good
+(and somewhat faster) for pure continuous-tone images and photographs,
+but may yield poor results with text or other fine detail,
+particularly at high printing resolutions.
+ </P
+><P
+> The <SPAN
+CLASS="GUIMENUITEM"
+>Fast</SPAN
+> algorithm gives the
+fastest results at the expense of color accuracy. It is a simplified
+ordered dither. On simple four color printers (or other printers used
+in four color mode), the quality is similar to
+<SPAN
+CLASS="GUIMENUITEM"
+>Ordered</SPAN
+>, although dark gray rendition is
+not as good due to a simpler transfer between black and colored ink.
+With six-color printers, color rendition is somewhat worse, but it
+should be quite usable in cases where optimum quality is not critical.
+In black and white, it is an efficient way to render grayscale, but it
+may not give best results when used with variable dot size printers
+(modern Epson printers, or Canon printers using DMT). On rare three
+color printers (CMY only) the results should be identical to ordered
+dither.
+ </P
+><P
+> <SPAN
+CLASS="GUIMENUITEM"
+>Very Fast</SPAN
+> is even faster than
+<SPAN
+CLASS="GUIMENUITEM"
+>Fast</SPAN
+>, with even more loss of quality.
+Color and grayscale output will show strong patterning that resembles
+screening, although it isn't. On laser printers, and possibly on
+certain kinds of text and line art, <SPAN
+CLASS="GUIMENUITEM"
+>Very
+Fast</SPAN
+> dithering may actually yield the best quality.
+ </P
+><P
+>Error diffusion algorithms (<SPAN
+CLASS="GUIMENUITEM"
+>Hybrid
+Floyd-Steinberg</SPAN
+> is such an algorithm) perform very well
+at high densities, and are capable of
+rendering very fine detail rather well, but they tend to exhibit artifacts in
+the form of "waves" or "worms" of dots which results in noticeable
+texturing in pale areas. Furthermore, pale areas immediately adjacent
+to white take a while to "build up" sufficient error to print at all.
+This is sometimes called "tearing" or "waterfalling".
+ </P
+></DIV
+><DIV
+CLASS="SECT4"
+><H4
+CLASS="SECT4"
+><A
+NAME="AEN424"
+>Set Defaults and Close</A
+></H4
+><P
+> When the <SPAN
+CLASS="GUIBUTTON"
+>Set Defaults</SPAN
+> button is clicked,
+the slider bar settings will return to their default values. The
+dither algorithm setting is uneffected. The <SPAN
+CLASS="GUILABEL"
+>Print Color
+Adjust</SPAN
+> window will close when the
+<SPAN
+CLASS="GUIBUTTON"
+>Close</SPAN
+> button is clicked.
+ </P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN430"
+>Printing and Saving Settings</A
+></H2
+><P
+> At the bottom of the Gimp-Print window, there are five buttons labeled
+<SPAN
+CLASS="GUIBUTTON"
+>About</SPAN
+>,
+<SPAN
+CLASS="GUIBUTTON"
+>Print and Save Settings</SPAN
+>,
+<SPAN
+CLASS="GUIBUTTON"
+>Save Settings</SPAN
+>,
+<SPAN
+CLASS="GUIBUTTON"
+>Print</SPAN
+>,
+and <SPAN
+CLASS="GUIBUTTON"
+>Cancel</SPAN
+>. The <SPAN
+CLASS="GUIBUTTON"
+>About</SPAN
+>
+button will show information about the Gimp-Print software, such as
+the version number, authors names, project web site, and software
+licensing. After clicking on the <SPAN
+CLASS="GUIBUTTON"
+>About</SPAN
+>, read
+the information, and then close the window by pressing the
+<SPAN
+CLASS="GUIBUTTON"
+>OK</SPAN
+> button.
+ </P
+><P
+> The <SPAN
+CLASS="GUIBUTTON"
+>Print and Save Settings</SPAN
+> button will
+save the current settings and then print the desired image. Recall
+that these settings are saved in <TT
+CLASS="FILENAME"
+>~/.gimp-1.2/printrc</TT
+>. The
+<SPAN
+CLASS="GUIBUTTON"
+>Save Settings</SPAN
+> button will only save the
+settings. The <SPAN
+CLASS="GUIBUTTON"
+>Print</SPAN
+> button will print the
+image only. The <SPAN
+CLASS="GUIBUTTON"
+>Cancel</SPAN
+> will close the
+Gimp-Print GUI window.
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="ch-gimp-and-gimp-print.html"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="book1.html"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="c447.html"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>GIMP and Gimp-Print</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="ch-gimp-and-gimp-print.html"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>CUPS and Gimp-Print</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/doc/users_guide/title.sgml b/doc/users_guide/title.sgml
new file mode 100644
index 0000000..9a741de
--- /dev/null
+++ b/doc/users_guide/title.sgml
@@ -0,0 +1,80 @@
+ <bookinfo>
+ <title>The User's Guide to the Gimp-Print Top Quality Printer Drivers</title>
+ <date>April 2, 2002</date>
+ <pubdate>April 2, 2002</pubdate>
+ <author>
+ <firstname>Andy</firstname>
+ <surname>Stewart</surname>
+ </author>
+ <copyright>
+ <year>2002</year>
+ <holder>Andy Stewart</holder>
+ </copyright>
+ <legalnotice>
+ <para>The User's Guide to the Gimp-Print Top Quality Printer
+Drivers, Copyright 2002, Andy Stewart.
+ </para>
+ <para>
+ Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License,
+Version 1.1 or any later version published by the Free Software
+Foundation with no invariant sections, no Front-Cover texts, and no
+Back-Cover texts. A copy of the license is included in <xref linkend="gfdl">.
+ </para>
+
+ </legalnotice>
+
+ <abstract>
+ <para>
+ The Gimp-Print Top Quality Printer Drivers (hereafter
+called Gimp-Print) are a set of printer drivers written to
+take advantage of the full capabilities of a wide range of
+printers. These drivers should work on any POSIX compliant operating
+system (e.g. Linux, Solaris, IRIX, etc). This document will explain how to
+use the Gimp-Print software to achieve high quality printouts from the
+<ulink url="http://www.gimp.org">GIMP</ulink> (GNU Image
+Manipulation Program) and
+<ulink url="http://www.cups.org">CUPS</ulink> (Common Unix Printing
+System).
+ </para>
+ <para>
+ Please note that in addition to using the Gimp-Print software as a
+print plugin for the GIMP, and as a set of printer drivers for CUPS, this
+software can also be compiled and used with the
+<ulink url="http://www.ghostscript.com">Ghostscript</ulink> software
+and with the
+<ulink
+url="http://www.linuxprinting.org/foomatic.html">Foomatic</ulink>
+software.
+ </para>
+ <para>
+Regardless of whether the Gimp-Print software is used with the GIMP,
+CUPS, Ghostscript, or Foomatic, the print quality and printer settings
+remain the same. However, use of the Gimp-Print with Ghostscript and
+Foomatic is not covered in this document. These topics may be covered
+in a future revision of this document.
+ </para>
+ <para>
+ This document corresponds to version 4.2.0 and later of the Gimp-Print
+software. This document will serve as a guide to the user, and as such
+will not explain how to install Gimp-Print, CUPS, GIMP, Ghostscript,
+Foomatic, or any other related software.
+ </para>
+
+ <para>
+ Andy Stewart, the author, is the founder of the
+<ulink url="http://www.wlug.org">Worcester Linux Users' Group</ulink> in
+Worcester, Massachusetts, USA. The group was founded in July 1997 and has
+approximately 140 people on its mailing list. Monthly meetings are
+held and all are invited.
+ </para>
+
+ <para>
+ In terms of "code", this is the author's first contribution to the
+open source community, and definitely his first experience with DocBook.
+Constructive comments, praise, words of encouragement, and the like
+will be most appreciated if e-mailed to the
+<ulink url="mailto:andystewart@attbi.com">author</ulink>.
+ </para>
+ </abstract>
+ </bookinfo>
diff --git a/doc/users_guide/users-guide.pdf b/doc/users_guide/users-guide.pdf
new file mode 100644
index 0000000..0a3cbd2
--- /dev/null
+++ b/doc/users_guide/users-guide.pdf
Binary files differ
diff --git a/doc/users_guide/users-guide.ps b/doc/users_guide/users-guide.ps
new file mode 100644
index 0000000..d794f2e
--- /dev/null
+++ b/doc/users_guide/users-guide.ps
@@ -0,0 +1,14972 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
+%%Title: users-guide-eps.dvi
+%%Pages: 56
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: Helvetica-Bold Times-Roman Times-Bold Times-Italic
+%%+ Courier Helvetica Helvetica-Oblique
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -o users-guide-eps.ps users-guide-eps.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.02.29:1955
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
+% version = "0.6",
+% date = "22 June 1996",
+% filename = "8r.enc",
+% email = "kb@@mail.tug.org",
+% address = "135 Center Hill Rd. // Plymouth, MA 02360",
+% codetable = "ISO/ASCII",
+% checksum = "119 662 4424",
+% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
+% @}
+%
+% Idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
+%
+% Character code assignments were made as follows:
+%
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+%
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+%
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+%
+% (4) Remaining positions left undefined are for use in (hopefully)
+% upward-compatible revisions, if someday more characters are generally
+% available.
+%
+% (5) hyphen appears twice for compatibility with both ASCII and Windows.
+%
+/TeXBase1Encoding [
+% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef
+ /breve /minus /.notdef
+% These are the only two remaining unencoded characters, so may as
+% well include them.
+ /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi
+% (unusual TeX characters available in, e.g., Lucida Bright)
+ /dotlessj /ff /ffi /ffl
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ % very contentious; it's so painful not having quoteleft and quoteright
+ % at 96 and 145 that we move the things normally found there down to here.
+ /grave /quotesingle
+% 0x20 (ASCII begins)
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+% 0x70
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde
+ /.notdef % rubout; ASCII ends
+% 0x80
+ /.notdef /.notdef /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /.notdef /.notdef /.notdef
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /.notdef /.notdef /Ydieresis
+% 0xA0
+ /.notdef % nobreakspace
+ /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot
+ /hyphen % Y&Y (also at 45); Windows' softhyphen
+ /registered
+ /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
+exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
+dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
+ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
+end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
+dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
+roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
+dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
+if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
+def end
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
+begin/SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
+CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
+/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
+repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginProcSet: color.pro
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
+
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 600 600 (users-guide-eps.dvi)
+@start /Fa 134[45 45 65 45 45 25 35 30 1[45 45 45 70
+25 45 1[25 45 45 30 40 45 40 45 40 7[65 2[65 65 55 50
+60 1[50 65 65 80 55 2[30 65 65 50 55 65 60 60 65 5[25
+1[45 1[45 1[45 1[45 45 45 45 25 22 30 22 2[30 30 5[37
+34[{TeXBase1Encoding ReEncodeFont}58 89.6638 /Times-Roman
+rf /Fb 138[51 25 46 2[51 3[20 2[20 3[51 1[46 13[66 2[66
+71 1[71 66 4[25 2[56 61 66 1[61 61 65[{TeXBase1Encoding ReEncodeFont}19
+91.3242 /Helvetica-Oblique rf /Fc 134[46 46 66 46 51
+25 46 30 51 51 51 51 76 20 46 20 20 51 51 25 51 51 46
+51 51 1[51 5[61 1[86 1[66 56 61 2[61 71 66 76 51 2[25
+66 71 56 61 66 66 61 61 6[25 5[51 51 1[51 51 25 25 30
+25 2[30 30 20 4[32 31[46 2[{TeXBase1Encoding ReEncodeFont}59
+91.3242 /Helvetica rf /Fd 133[60 66 66 93 1[73 40 66
+47 1[73 73 73 106 33 66 33 33 73 73 1[66 73 66 73 66
+9[113 1[86 73 80 86 1[80 93 86 100 3[33 86 4[86 86 86
+8[66 66 66 66 66 66 66 66 2[33 46[{TeXBase1Encoding ReEncodeFont}46
+119.552 /Helvetica-Bold rf /Fe 133[72 2[112 80 88 48
+80 56 1[88 88 88 128 40 80 1[40 88 88 48 80 88 80 1[80
+11[104 1[96 104 1[96 112 104 120 88 2[40 104 2[96 104
+104 104 104 9[80 80 80 80 80 80 80 1[40 40 43[88 2[{
+TeXBase1Encoding ReEncodeFont}46 143.462 /Helvetica-Bold
+rf
+%DVIPSBitmapFont: Ff cmsy10 12 2
+/Ff 2 34 df<007FB912E0BA12F0A26C18E03C04789A4D>0 D<1AF0A3861A78A21A7C1A
+3CA21A3E1A1E1A1F747EA2747E747E87747E747E1B7E87757EF30FE0F303F8007FBC12FE
+BE1280A26CF3FE00CEEA03F8F30FE0F31F8051C7FC1B7E63505A505A63505A505AA250C8
+FC1A1E1A3E1A3CA21A7C1A78A21AF862A359347BB264>33 D E
+%EndDVIPSBitmapFont
+/Fg 133[50 50 1[72 50 55 28 50 33 1[55 55 55 83 22 1[22
+22 55 55 28 55 55 50 55 55 10[66 72 61 66 72 1[66 78
+72 83 55 66 1[28 72 1[61 1[72 72 66 66 17[28 1[33 42[50
+2[{TeXBase1Encoding ReEncodeFont}44 99.6264 /Helvetica
+rf /Fh 129[54 1[54 1[54 54 54 54 54 54 54 54 54 54 54
+54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 1[54 2[54
+2[54 1[54 1[54 54 54 54 54 54 54 54 54 54 54 54 54 1[54
+54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54
+54 54 54 54 54 54 54 54 54 1[54 54 54 54 54 1[54 54 1[54
+33[{TeXBase1Encoding ReEncodeFont}81 89.6638 /Courier
+rf /Fi 134[44 44 1[44 50 28 39 39 1[50 50 50 72 28 1[28
+28 50 50 28 44 50 44 1[50 11[72 55 50 61 1[61 1[66 83
+55 2[33 72 72 61 1[72 66 1[61 7[50 50 50 50 50 50 50
+50 50 50 1[25 33 45[{TeXBase1Encoding ReEncodeFont}48
+99.6264 /Times-Italic rf /Fj 134[50 1[72 50 55 33 39
+44 1[55 50 55 83 28 1[33 28 55 50 33 44 55 44 55 50 7[72
+1[100 1[72 66 55 2[61 1[72 94 66 2[39 78 78 61 1[72 72
+1[72 7[50 50 50 50 50 50 50 50 50 50 28 25 33 3[33 33
+37[55 2[{TeXBase1Encoding ReEncodeFont}54 99.6264 /Times-Bold
+rf /Fk 134[115 115 2[126 69 115 80 1[126 126 126 184
+57 1[57 57 126 126 69 115 126 115 126 115 11[149 126
+138 2[138 1[149 172 126 2[57 149 161 126 1[149 149 1[149
+12[115 115 115 115 2[57 69 45[{TeXBase1Encoding ReEncodeFont}41
+206.584 /Helvetica-Bold rf /Fl 106[28 27[40 40 58 40
+40 22 31 27 1[40 40 40 62 22 40 1[22 40 40 27 35 40 35
+40 35 10[58 58 49 44 1[58 44 1[58 1[49 4[58 44 1[58 53
+53 58 14[40 40 40 22 20 27 20 4[27 39[{TeXBase1Encoding ReEncodeFont}46
+79.7012 /Times-Roman rf /Fm 86[76 46[44 50 50 72 50 50
+28 39 33 50 50 50 50 78 28 50 28 28 50 50 33 44 50 44
+50 44 1[50 2[28 2[72 72 94 72 72 61 55 66 72 55 72 72
+89 61 72 39 33 72 72 55 61 72 66 66 72 92 44 56 56 1[28
+28 50 50 50 50 50 50 50 50 50 50 28 25 33 25 2[33 33
+33 1[83 50 1[41 33 29[55 55 2[{TeXBase1Encoding ReEncodeFont}83
+99.6264 /Times-Roman rf /Fn 134[55 1[78 55 61 33 55 39
+1[61 61 61 89 28 2[28 61 61 33 55 61 55 1[55 7[66 3[72
+61 66 72 78 66 2[83 61 2[28 72 78 61 66 72 72 72 72 8[55
+55 55 55 55 55 55 55 2[28 33 28 2[33 33 28 39[{
+TeXBase1Encoding ReEncodeFont}52 99.6264 /Helvetica-Bold
+rf /Fo 134[96 1[134 1[105 57 96 67 1[105 105 105 153
+48 2[48 105 105 57 96 105 96 1[96 7[115 1[163 115 124
+105 115 124 134 115 134 124 143 105 124 1[48 124 134
+105 115 124 124 124 124 7[96 96 96 96 96 96 96 96 96
+96 1[48 57 42[105 2[{TeXBase1Encoding ReEncodeFont}55
+172.154 /Helvetica-Bold rf /Fp 134[138 2[138 151 83 138
+96 1[151 151 151 220 69 2[69 151 2[138 151 2[138 11[179
+151 2[193 165 8[193 2[179 22[83 5[69 39[{TeXBase1Encoding ReEncodeFont}
+24 247.895 /Helvetica-Bold rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop Black 0 TeXcolorgray Black Black 487 677 a Fp(The)70
+b(User')-15 b(s)69 b(Guide)g(to)g(the)90 999 y(Gimp-Print)h(T)-20
+b(op)71 b(Quality)d(Printer)1446 1321 y(Driver)l(s)1322
+2666 y Fo(And)m(y)49 b(Ste)m(war)s(t)p Black Black eop
+%%Page: 2 2
+2 1 bop Black 0 TeXcolorgray Black Black -2 579 a Fn(The)28
+b(User')-6 b(s)28 b(Guide)f(to)h(the)g(Gimp-Print)e(T)-8
+b(op)28 b(Quality)f(Printer)h(Driver)o(s)-2 708 y Fm(by)c(Andy)h(Ste)n
+(w)o(art)-2 967 y(Published)f(April)g(2,)h(2002)-2 1097
+y(Cop)o(yright)f(\251)g(2002)h(by)f(Andy)g(Ste)n(w)o(art)-2
+1376 y(The)h(Gimp-Print)e(T)-8 b(op)25 b(Quality)f(Printer)h(Dri)n(v)o
+(ers)e(\(hereafter)j(called)f(Gimp-Print\))f(are)i(a)f(set)f(of)h
+(printer)-2 1505 y(dri)n(v)o(ers)e(written)h(to)h(tak)o(e)g(adv)n
+(antage)f(of)h(the)g(full)f(capabilities)g(of)h(a)g(wide)f(range)h(of)g
+(printers.)f(These)-2 1635 y(dri)n(v)o(ers)f(should)h(w)o(ork)h(on)f
+(an)o(y)g(POSIX)i(compliant)e(operating)g(system)f(\(e.g.)i(Linux,)f
+(Solaris,)h(IRIX,)-2 1764 y(etc\).)g(This)f(document)g(will)g(e)o
+(xplain)f(ho)n(w)h(to)h(use)g(the)f(Gimp-Print)g(softw)o(are)h(to)f
+(achie)n(v)o(e)g(high)h(quality)-2 1894 y(printouts)e(from)i(the)f
+(GIMP)h(\(http://www)-6 b(.gimp.or)n(g\))21 b(\(GNU)k(Image)g
+(Manipulation)e(Program\))i(and)-2 2023 y(CUPS)h(\(http://www)-6
+b(.cups.or)n(g\))22 b(\(Common)i(Unix)g(Printing)g(System\).)-2
+2203 y(Please)h(note)g(that)f(in)g(addition)g(to)g(using)g(the)h
+(Gimp-Print)f(softw)o(are)g(as)h(a)h(print)e(plugin)f(for)i(the)g(GIMP)
+-11 b(,)-2 2332 y(and)25 b(as)f(a)i(set)e(of)h(printer)g(dri)n(v)o(ers)
+e(for)i(CUPS,)h(this)e(softw)o(are)h(can)g(also)g(be)g(compiled)e(and)i
+(used)g(with)f(the)-2 2462 y(Ghostscript)f(\(http://www)-6
+b(.ghostscript.com\))20 b(softw)o(are)25 b(and)g(with)f(the)h(F)o
+(oomatic)-2 2591 y(\(http://www)-6 b(.linuxprinting.or)n(g/foomat)o
+(ic.htm)o(l\))19 b(softw)o(are.)-2 2771 y(Re)o(gardless)24
+b(of)h(whether)g(the)f(Gimp-Print)g(softw)o(are)h(is)f(used)h(with)f
+(the)g(GIMP)-11 b(,)25 b(CUPS,)h(Ghostscript,)d(or)-2
+2900 y(F)o(oomatic,)g(the)i(print)f(quality)g(and)h(printer)f(settings)
+g(remain)g(the)h(same.)f(Ho)n(we)n(v)o(er)l(,)g(use)g(of)h(the)-2
+3030 y(Gimp-Print)f(with)g(Ghostscript)f(and)i(F)o(oomatic)e(is)i(not)f
+(co)o(v)o(ered)g(in)h(this)f(document.)f(These)i(topics)f(may)-2
+3159 y(be)h(co)o(v)o(ered)f(in)g(a)i(future)e(re)n(vision)g(of)h(this)e
+(document.)-2 3339 y(This)h(document)g(corresponds)g(to)g(v)o(ersion)g
+(4.2.0)g(and)h(later)g(of)g(the)f(Gimp-Print)g(softw)o(are.)h(This)-2
+3468 y(document)f(will)g(serv)o(e)g(as)h(a)g(guide)f(to)h(the)g(user)l
+(,)f(and)h(as)g(such)f(will)g(not)h(e)o(xplain)e(ho)n(w)h(to)h(install)
+-2 3598 y(Gimp-Print,)e(CUPS,)j(GIMP)-11 b(,)25 b(Ghostscript,)e(F)o
+(oomatic,)h(or)h(an)o(y)f(other)h(related)g(softw)o(are.)-2
+3777 y(Andy)f(Ste)n(w)o(art,)h(the)f(author)l(,)h(is)f(the)h(founder)f
+(of)h(the)g(W)-8 b(orcester)25 b(Linux)f(Users')h(Group)-2
+3906 y(\(http://www)-6 b(.wlug.or)n(g\))22 b(in)i(W)-8
+b(orcester)l(,)25 b(Massachusetts,)e(USA.)j(The)e(group)h(w)o(as)g
+(founded)f(in)g(July)-2 4036 y(1997)g(and)h(has)f(approximately)g(140)g
+(people)h(on)f(its)g(mailing)g(list.)f(Monthly)g(meetings)h(are)i(held)
+e(and)h(all)-2 4165 y(are)g(in)l(vited.)-2 4345 y(In)g(terms)f(of)h
+("code",)f(this)g(is)g(the)h(author')-5 b(s)24 b(\002rst)h(contrib)n
+(ution)e(to)h(the)h(open)f(source)h(community)-6 b(,)22
+b(and)-2 4474 y(de\002nitely)i(his)g(\002rst)h(e)o(xperience)g(with)f
+(DocBook.)h(Constructi)n(v)o(e)e(comments,)g(praise,)i(w)o(ords)f(of)-2
+4604 y(encouragement,)g(and)h(the)g(lik)o(e)f(will)g(be)h(most)e
+(appreciated)j(if)e(e-mailed)h(to)f(the)h(author)-2 4733
+y(\(mailto:andyste)n(w)o(art@attbi.com\).)p Black Black
+eop
+%%Page: 3 3
+3 2 bop Black 0 TeXcolorgray Black Black -2 579 a Fl(The)20
+b(User')l(s)e(Guide)i(to)g(the)g(Gimp-Print)f(T)-6 b(op)19
+b(Quality)h(Printer)g(Dri)n(v)o(ers,)f(Cop)o(yright)g(2002,)g(Andy)g
+(Ste)n(w)o(art.)-2 708 y(Permission)h(is)g(granted)g(to)g(cop)o(y)-5
+b(,)20 b(distrib)n(ute)g(and/or)g(modify)f(this)h(document)g(under)g
+(the)g(terms)g(of)f(the)i(GNU)d(Free)-2 838 y(Documentation)i(License,)
+g(V)-9 b(ersion)19 b(1.1)g(or)g(an)o(y)g(later)h(v)o(ersion)f
+(published)h(by)f(the)h(Free)g(Softw)o(are)f(F)o(oundation)h(with)f(no)
+g(in)m(v)n(ariant)-2 967 y(sections,)h(no)g(Front-Co)o(v)o(er)f(te)o
+(xts,)h(and)g(no)f(Back-Co)o(v)o(er)h(te)o(xts.)g(A)g(cop)o(y)g(of)f
+(the)h(license)i(is)e(included)g(in)p 0 TeXcolorgray
+20 w(Appendix)f(A)p Black(.)p Black Black eop
+%%Page: 4 4
+4 3 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(T)-17
+b(ab)n(le)58 b(of)g(Contents)p 0 TeXcolorgray 396 879
+a Fj(1.)25 b(Pr)n(oject)h(History)p Black Black 17 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(1)p Black 0 TeXcolorgray 396 1029
+a(2.)f(GIMP)f(and)h(Gimp-Print)p Black Black 17 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(1)p Black 0 TeXcolorgray 596
+1178 a Fm(2.1.)f(Running)g(the)h(GIMP)p Black Black 8
+w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(1)p Black 0 TeXcolorgray 596 1308 a(2.2.)f(The)h(Gimp-Print)e
+(Graphical)i(User)g(Interf)o(ace)p Black Black 2 w(.)p
+Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(2)p Black 0 TeXcolorgray 795
+1437 a(2.2.1.)f(Printer)h(Settings)p Black Black 5 w(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(4)p Black 0 TeXcolorgray 994
+1567 a(2.2.1.1.)f(Printer)p Black Black 3 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(4)p Black 0 TeXcolorgray 994 1696 a(2.2.1.2.)g(Setup)h(Printer)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(4)p Black 0 TeXcolorgray
+994 1826 a(2.2.1.3.)f(Ne)n(w)g(Printer)p Black Black
+16 w(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(5)p Black 0
+TeXcolorgray 994 1955 a(2.2.1.4.)g(Media)g(Size)p Black
+Black 23 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(6)p Black 0 TeXcolorgray 994 2085 a(2.2.1.5.)g(Media)g(T)-8
+b(ype)p Black Black 22 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(7)p Black 0 TeXcolorgray 994 2214 a(2.2.1.6.)24
+b(Media)g(Source)p Black Black 18 w(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(7)p Black 0 TeXcolorgray 994
+2344 a(2.2.1.7.)g(Ink)h(T)-8 b(ype)p Black Black 18 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(7)p Black 0 TeXcolorgray 994 2473 a(2.2.1.8.)24
+b(Resolution)p Black Black 17 w(.)p Black Black -2 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(7)p
+Black 0 TeXcolorgray 1193 2603 a(2.2.1.8.1.)g(DPI)p Black
+Black 14 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(8)p Black 0 TeXcolorgray 1193
+2732 a(2.2.1.8.2.)g(Draft)h(or)g(F)o(ast)f(Economy)g(Draft)p
+Black Black 21 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(8)p Black 0 TeXcolorgray
+1193 2862 a(2.2.1.8.3.)g(Unidirectional)p Black Black
+21 w(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(8)p Black 0 TeXcolorgray 1193 2991 a(2.2.1.8.4.)g(High\(est\))g
+(Quality)p Black Black 21 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(9)p Black 0 TeXcolorgray 1193 3121 a(2.2.1.8.5.)g(Interlea)n(v)o
+(e)p Black Black 4 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(9)p
+Black 0 TeXcolorgray 1193 3251 a(2.2.1.8.6.)g(DMT)p Black
+Black 3 w(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(9)p
+Black 0 TeXcolorgray 795 3380 a(2.2.2.)g(Pre)n(vie)n(w)p
+Black Black 2 w(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(9)p Black 0 TeXcolorgray 795 3510
+a(2.2.3.)g(Position)p Black Black 21 w(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(10)p
+Black 0 TeXcolorgray 994 3639 a(2.2.3.1.)g(Orientation)p
+Black Black 18 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(11)p Black
+0 TeXcolorgray 994 3769 a(2.2.3.2.)g(Automatic)f(Centering)p
+Black Black 8 w(.)p Black Black 1 w(.)p Black Black -1
+w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(11)p Black 0 TeXcolorgray 994 3898
+a(2.2.3.3.)h(Manual)g(Settings)p Black Black 21 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(11)p
+Black 0 TeXcolorgray 1193 4028 a(2.2.3.3.1.)g(Left)p
+Black Black 8 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(12)p
+Black 0 TeXcolorgray 1193 4157 a(2.2.3.3.2.)g(Right)p
+Black Black 3 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(12)p Black 0 TeXcolorgray 1193
+4287 a(2.2.3.3.3.)g(Right)g(Border)p Black Black(.)p
+Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(12)p Black 0 TeXcolorgray 1193
+4416 a(2.2.3.3.4.)g(T)-8 b(op)p Black Black 21 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(12)p Black 0 TeXcolorgray
+1193 4546 a(2.2.3.3.5.)24 b(Bottom)p Black Black 24 w(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(12)p
+Black 0 TeXcolorgray 1193 4675 a(2.2.3.3.6.)g(Bottom)g(Border)p
+Black Black 22 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(13)p Black 0 TeXcolorgray
+795 4805 a(2.2.4.)g(Size)p Black Black 3 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(13)p Black 0 TeXcolorgray 994 4934 a(2.2.4.1.)g(Slider)h(Bar)g
+(and)g(Spin)g(Box)p Black Black 22 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(13)p Black
+0 TeXcolorgray 994 5064 a(2.2.4.2.)f(Scale)i(by)e(Percent)i(or)f(PPI)p
+Black Black 6 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(13)p
+Black 0 TeXcolorgray 994 5193 a(2.2.4.3.)f(Use)h(Original)f(Image)g
+(Size)p Black Black 14 w(.)p Black Black 1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(14)p Black 0 TeXcolorgray
+Black 3695 5692 a Fi(4)p 0 TeXcolorgray eop
+%%Page: 5 5
+5 4 bop 0 TeXcolorgray Black 0 TeXcolorgray Black 0 TeXcolorgray
+994 579 a Fm(2.2.4.4.)24 b(W)l(idth)g(and)h(Height)p
+Black Black 12 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(14)p Black
+0 TeXcolorgray 994 708 a(2.2.4.5.)f(Units)p Black Black
+8 w(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(14)p Black 0 TeXcolorgray 795
+838 a(2.2.5.)g(Image/Output)f(Settings)p Black Black
+21 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(14)p Black 0 TeXcolorgray 994 967
+a(2.2.5.1.)h(Image)h(T)-8 b(ype)p Black Black 3 w(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(15)p Black 0 TeXcolorgray 1193
+1097 a(2.2.5.1.1.)24 b(Line)g(Art)p Black Black 8 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(15)p Black 0 TeXcolorgray 1193
+1226 a(2.2.5.1.2.)g(Solid)g(Colors)p Black Black 22 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(15)p Black 0 TeXcolorgray 1193
+1356 a(2.2.5.1.3.)g(Photograph)p Black Black 14 w(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(15)p Black 0 TeXcolorgray 994 1486 a(2.2.5.2.)g(Output)f(T)-8
+b(ype)p Black Black 25 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(15)p Black 0 TeXcolorgray 994 1615 a(2.2.5.3.)24
+b(Adjust)f(Output)p Black Black 5 w(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(15)p
+Black 0 TeXcolorgray 1193 1745 a(2.2.5.3.1.)h(Brightness)p
+Black Black 21 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(16)p Black
+0 TeXcolorgray 1193 1874 a(2.2.5.3.2.)g(Contrast)p Black
+Black 11 w(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(16)p Black
+0 TeXcolorgray 1193 2004 a(2.2.5.3.3.)g(Cyan,)h(Magenta,)f(Y)-10
+b(ello)n(w)p Black Black 7 w(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(16)p Black 0 TeXcolorgray 1193 2133 a(2.2.5.3.4.)24
+b(Saturation)p Black Black 14 w(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(17)p Black 0 TeXcolorgray 1193 2263
+a(2.2.5.3.5.)g(Density)p Black Black 14 w(.)p Black Black
+-2 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(17)p Black 0 TeXcolorgray
+1193 2392 a(2.2.5.3.6.)g(Gamma)p Black Black 8 w(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(17)p
+Black 0 TeXcolorgray 1193 2522 a(2.2.5.3.7.)g(Dither)g(Algorithm)p
+Black Black 3 w(.)p Black Black -2 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(17)p Black
+0 TeXcolorgray 1193 2651 a(2.2.5.3.8.)g(Set)h(Def)o(aults)f(and)h
+(Close)p Black Black 12 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(18)p Black 0 TeXcolorgray 795 2781 a(2.2.6.)f(Printing)g(and)h(Sa)
+n(ving)f(Settings)p Black Black 10 w(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(18)p Black 0 TeXcolorgray 396 2930
+a Fj(3.)h(CUPS)g(and)g(Gimp-Print)p Black Black 3 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(20)p Black 0 TeXcolorgray 596 3080 a Fm(3.1.)f(Introduction)p
+Black Black 6 w(.)p Black Black -2 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(20)p Black 0 TeXcolorgray 596 3209 a(3.2.)g(CUPS)i(Printer)f
+(Installation)p Black Black 3 w(.)p Black Black -2 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(20)p Black 0 TeXcolorgray 596 3339 a(3.3.)f(Con\002guring)g(your)h
+(Printer)g(in)f(CUPS)p Black Black 8 w(.)p Black Black
+2 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(26)p
+Black 0 TeXcolorgray 596 3468 a(3.4.)g(Using)g(CUPS)i(from)e(the)h
+(Command)f(Line)p Black Black 19 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(27)p Black
+0 TeXcolorgray 396 3618 a Fj(4.)h(Gimp-Print)g(Utilities)p
+Black Black 16 w(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(30)p Black
+0 TeXcolorgray 596 3767 a Fm(4.1.)f(escputil)p Black
+Black 14 w(.)p Black Black -1 w(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(30)p Black 0 TeXcolorgray 795 3896 a(4.1.1.)g(Determining)f(Ink)i
+(Le)n(v)o(el)p Black Black 12 w(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(30)p
+Black 0 TeXcolorgray 795 4026 a(4.1.2.)f(Error)h(During)f(Ink)h(Le)n(v)
+o(el)f(Determination)p Black Black 19 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(31)p Black 0 TeXcolorgray 795
+4156 a(4.1.3.)g(Nozzle)h(Check)p Black Black 11 w(.)p
+Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(32)p Black 0 TeXcolorgray 795
+4285 a(4.1.4.)f(Clean)h(the)g(Print)f(Head)p Black Black
+14 w(.)p Black Black 1 w(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(33)p Black 0 TeXcolorgray 795 4415
+a(4.1.5.)g(Align)g(the)g(Print)h(Head)p Black Black 20
+w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(34)p Black 0 TeXcolorgray 795 4544 a(4.1.6.)f(Printer)h
+(Identi\002cation)p Black Black 19 w(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(38)p
+Black 0 TeXcolorgray 795 4674 a(4.1.7.)f(More)h(Information)p
+Black Black 6 w(.)p Black Black -2 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(38)p Black 0 TeXcolorgray 396 4823 a Fj(A.)g(GNU)f(Fr)n(ee)i
+(Documentation)g(License)p Black Black 10 w(.)p Black
+Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black 0 TeXcolorgray 11 w(39)p Black
+0 TeXcolorgray 596 4972 a Fm(0.)e(PREAMBLE)p Black Black
+17 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(39)p Black 0 TeXcolorgray 596 5102 a(1.)g(APPLICABILITY)j(AND)d
+(DEFINITIONS)p Black Black 18 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(39)p Black 0 TeXcolorgray 596 5231
+a(2.)g(VERB)m(A)-11 b(TIM)25 b(COPYING)p Black Black
+23 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(41)p Black 0 TeXcolorgray
+Black 3695 5692 a Fi(5)p 0 TeXcolorgray eop
+%%Page: 6 6
+6 5 bop 0 TeXcolorgray Black 0 TeXcolorgray Black 0 TeXcolorgray
+596 579 a Fm(3.)24 b(COPYING)i(IN)f(Q)o(U)l(ANTITY)p
+Black Black 14 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(41)p Black 0 TeXcolorgray 596
+708 a(4.)f(MODIFICA)-11 b(TIONS)p Black Black 23 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(42)p
+Black 0 TeXcolorgray 596 838 a(5.)24 b(COMBINING)i(DOCUMENTS)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(44)p Black 0 TeXcolorgray 596 967 a(6.)e(COLLECTIONS)i(OF)f
+(DOCUMENTS)p Black Black 17 w(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(45)p Black 0 TeXcolorgray 596 1097 a(7.)f(A)l(GGREGA)-11
+b(TION)25 b(WITH)g(INDEPENDENT)f(W)o(ORKS)p Black Black
+23 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(45)p Black 0 TeXcolorgray 596 1226 a(8.)g(TRANSLA)-11
+b(TION)p Black Black 11 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(46)p Black 0 TeXcolorgray 596
+1356 a(9.)24 b(TERMIN)m(A)-11 b(TION)p Black Black 20
+w(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(46)p Black 0 TeXcolorgray 596 1486 a(10.)24 b(FUTURE)h(REVISIONS)h
+(OF)g(THIS)f(LICENSE)p Black Black 3 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(46)p Black 0 TeXcolorgray 596 1615
+a(Ho)n(w)f(to)g(use)h(this)f(License)g(for)h(your)g(documents)p
+Black Black 8 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(47)p
+Black Black 3692 5692 a Fi(6)p Black eop
+%%Page: 1 7
+1 6 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(List)57
+b(of)h(Figures)p 0 TeXcolorgray 396 879 a Fm(2-1.)25
+b(The)g(Startup)f(W)l(indo)n(w)g(for)h(The)g(GIMP)p Black
+Black 12 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(1)p Black 0 TeXcolorgray 396
+1009 a(2-2.)g(A)g(Sample)f(Image)h(Displayed)f(by)h(The)g(GIMP)p
+Black Black 9 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(2)p Black 0 TeXcolorgray
+396 1138 a(2-3.)g(The)g(Gimp-Print)f(Graphical)g(User)h(Interf)o(ace)h
+(1)f(\(GUI\))p Black Black 24 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(3)p
+Black 0 TeXcolorgray 396 1268 a(2-4.)g(The)g(Gimp-Print)f(Graphical)g
+(User)h(Interf)o(ace)h(2)f(\(GUI\))p Black Black 24 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(3)p Black 0 TeXcolorgray 396 1397
+a(2-5.)g(The)g(Setup)g(Printer)g(W)l(indo)n(w)p Black
+Black 22 w(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black 0 TeXcolorgray 11 w(5)p Black 0 TeXcolorgray
+396 1527 a(2-6.)g(The)g(Ne)n(w)f(Printer)h(W)l(indo)n(w)p
+Black Black 15 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black 0 TeXcolorgray 11 w(6)p Black 0 TeXcolorgray 396
+1656 a(2-7.)g(The)g(Print)f(Color)h(Adjust)f(W)l(indo)n(w)p
+Black Black 9 w(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(16)p
+Black 0 TeXcolorgray 396 1786 a(3-1.)h(The)g(CUPS)h(Startup)e(W)l(indo)
+n(w)p Black Black 9 w(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(20)p Black 0 TeXcolorgray 396 1916 a(3-2.)h(The)g(CUPS)h(Printers)
+f(W)l(indo)n(w)p Black Black 12 w(.)p Black Black -2
+w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(21)p Black 0 TeXcolorgray 396 2045 a(3-3.)g(The)g(CUPS)h(Admin)d
+(W)l(indo)n(w)p Black Black 19 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(21)p Black 0 TeXcolorgray 396 2175 a(3-4.)i(The)g(CUPS)h(Admin)d
+(De)n(vice)i(W)l(indo)n(w)p Black Black 15 w(.)p Black
+Black -2 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(22)p
+Black 0 TeXcolorgray 396 2304 a(3-5.)g(The)g(CUPS)h(Admin)d(Model/Dri)n
+(v)o(er)g(W)l(indo)n(w)p Black Black 23 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(22)p Black 0 TeXcolorgray 396 2434
+a(3-6.)i(The)g(2nd)f(CUPS)i(Admin)e(Model/Dri)n(v)o(er)f(W)l(indo)n(w)p
+Black Black 23 w(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(24)p
+Black 0 TeXcolorgray 396 2563 a(3-7.)i(The)g(CUPS)h(Admin)d(Success)j
+(W)l(indo)n(w)p Black Black 4 w(.)p Black Black -2 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black
+-1 w(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black -1 w(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+0 TeXcolorgray 11 w(24)p Black 0 TeXcolorgray 396 2693
+a(3-8.)f(The)g(CUPS)h(W)l(indo)n(w)d(for)i(Y)-11 b(our)25
+b(Printer)p Black Black 15 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black -1 w(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black -1 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black 0 TeXcolorgray 11 w(25)p
+Black 0 TeXcolorgray 396 2822 a(3-9.)g(The)g(CUPS)h(Printer)f
+(Co\002guration)f(W)l(indo)n(w)p Black Black 19 w(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black -1 w(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black -1 w(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black Black(.)p
+Black Black(.)p Black Black(.)p Black Black(.)p Black
+Black(.)p Black Black(.)p Black Black -1 w(.)p Black
+Black(.)p Black Black(.)p Black Black(.)p Black 0 TeXcolorgray
+11 w(27)p Black Black 3695 5692 a Fi(1)p Black eop
+%%Page: 1 8
+1 7 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(Chapter)58
+b(1.)f(Pr)l(oject)h(Histor)r(y)396 944 y Fm(This)24 b(softw)o(are)h
+(package)h(w)o(as)e(\002rst)h(written)f(by)h(Michael)f(Sweet)i(of)f
+(Easy)f(Softw)o(are)396 1073 y(Products)h(\(http://www)-6
+b(.easysw)g(.com\))21 b(and)k(initially)e(w)o(ork)o(ed)i(only)f(as)g(a)
+i(print)e(plugin)f(to)i(the)396 1203 y(GIMP)g(\(GNU)g(Image)g
+(Manipulation)e(Program\).)i(In)g(the)f(summer)g(of)h(1999,)f(Robert)
+396 1333 y(Kra)o(witz)h(\(the)f(current)h(Gimp-Print)f(project)h
+(leader\))g(purchased)g(an)g(Epson)f(Stylus)g(Photo)396
+1462 y(EX)h(printer)f(to)h(feed)g(his)f(photography)f(hobby)-6
+b(.)24 b(Finding)g(no)g(e)o(xisting)f(printer)i(dri)n(v)o(ers,)396
+1592 y(Robert)g(adapted)g(Mik)o(e')-5 b(s)24 b(Gimp-Print)g(plugin)f
+(to)i(his)f(six-color)g(printer)l(,)g(and)h(by)f(the)h(end)g(of)396
+1721 y(the)g(year)g(released)h(v)o(ersion)d(3.0)i(of)g(the)f
+(Gimp-Print)g(softw)o(are,)h(which)f(w)o(as)h(included)f(in)396
+1851 y(v)o(ersion)g(1.1)f(of)i(the)f(GIMP)-11 b(.)24
+b(The)h(intention)e(w)o(as)h(for)h(this)e(to)h(be)g(the)h(stable)e
+(plugin)h(in)g(v)o(ersion)396 1980 y(1.2)h(of)g(the)f(GIMP)h(while)f
+(de)n(v)o(elopment)f(of)i(the)g(Gimp-Print)e(plugin)h(continued)g(for)h
+(later)396 2110 y(release.)396 2289 y(Robert)g(put)g(the)f(Gimp-Print)g
+(de)n(v)o(elopment)f(tree)i(on)f(SourceF)o(or)n(ge)i(starting)e(with)g
+(v)o(ersion)396 2418 y(3.1,)h(and)f(quickly)g(found)g(a)i(group)e(of)h
+(lik)o(e-minded)e(people)i(who)f(w)o(anted)h(to)f(print)g(high)396
+2548 y(quality)g(output)f(on)i(ine)o(xpensi)n(v)o(e)d(inkjet)i
+(printers.)g(One)h(of)g(the)g(main)f(goals,)g(which)g(w)o(as)h(not)396
+2677 y(e)o(xpected)g(to)f(be)h(met)f(until)g(late)h(in)f(the)h(v)o
+(ersion)f(3.1)g(c)o(ycle,)h(w)o(as)f(to)h(write)f(a)i(Ghostscript)396
+2807 y(dri)n(v)o(er)e(so)h(that)f(printing)f(w)o(ould)h(not)h(be)f
+(restricted)h(to)g(the)f(GIMP)-11 b(.)25 b(Imagine)f(Robert')-5
+b(s)396 2936 y(surprise)25 b(when)f(Henryk)h("Buggs")f(Richter)h(wrote)
+g(one)g(within)e(days!)396 3116 y(In)i(July)f(2000,)g(not)g(more)h
+(than)g(a)g(year)g(after)g(Robert)h(bought)d(his)h(Epson)g(Stylus)g
+(Photo)h(EX,)396 3245 y(he)g(w)o(as)g(in)l(vited)f(to)g(the)h(Linux)f
+(Printing)g(Summit)f(hosted)h(by)h(V)-13 b(A)24 b(Linux)g(Systems.)g
+(In)396 3375 y(preparation)h(for)g(that,)f(he)h(spent)f(long)g(hours)h
+(printing)e(out)h(test)h(images.)f(Robert)h(went)f(back)396
+3504 y(to)h(the)f(Gimp-Print)g(v)o(ersion)g(3.0.9)g(release,)h(which)g
+(seemed)f(lik)o(e)h(such)f(an)h(adv)n(ance)g(at)g(the)396
+3634 y(time,)f(and)h(w)o(as)g(\003oored)g(at)g(ho)n(w)f(f)o(ar)h(the)g
+(project)f(had)h(come)g(in)f(four)h(months!)f(Output)f(that)396
+3763 y(had)i(been)g(considered)g(impressi)n(v)o(e)d(with)i(using)g(six)
+g(colors)h(w)o(as)f(put)h(to)f(shame)g(by)h(four)396
+3893 y(color)g(output.)e(That)i(should)e(gi)n(v)o(e)h(you)g(an)h(idea)g
+(what)g(six)f(color)h(and)f(v)n(ariable)h(dot)f(size)396
+4022 y(printers)h(can)g(do.)f(It)h(also)f(illustrates)g(what)g(a)h
+(group)g(of)g(committed)e(people)h(can)h(do.)396 4202
+y(Robert)g(came)g(a)o(w)o(ay)g(from)g(the)f(Printing)g(Summit)g(with)g
+(a)h(lot)f(of)h(ne)n(w)f(ideas,)h(and)g(in)396 4331 y(No)o(v)o(ember)f
+(2000,)g(Gimp-Print)g(v)o(ersion)f(4.0)i(w)o(as)g(released,)g(the)f
+(culmination)f(of)i(9)g(months)396 4461 y(of)g(w)o(ork)g(by)f(the)h
+(team.)f(The)h(quality)f(w)o(as)h(already)g(tremendously)e(impro)o(v)o
+(ed)g(o)o(v)o(er)h(what)g(the)396 4590 y(softw)o(are)h(could)f(do)h(at)
+g(the)f(Printing)g(Summit.)396 4770 y(The)h(team)g(started)f(serious)g
+(w)o(ork)h(on)f(v)o(ersion)g(4.1)h(in)f(December)h(2000,)f(and)h(v)o
+(ersion)f(4.2.0)396 4899 y(w)o(as)h(released)g(in)g(No)o(v)o(ember)e
+(2001.)h(Despite)h(the)f(f)o(act)h(that)g(v)o(ersion)f(4.2.0)g(is)g(a)h
+("minor")396 5029 y(release)h(o)o(v)o(er)e(v)o(ersion)f(4.0,)i(there)g
+(are)g(v)n(ast)f(impro)o(v)o(ements:)p Black 3695 5692
+a Fi(1)p Black eop
+%%Page: 2 9
+2 8 bop Black 0 TeXcolorgray Black 2681 67 a Fi(Chapter)24
+b(1.)h(Pr)l(oject)e(History)p Black Black 396 579 a Fl(\225)p
+Black 97 w Fm(The)i(dri)n(v)o(er)e(is)i(b)n(uilt)e(as)i(a)g(shared)g
+(library)-6 b(,)24 b(making)g(it)g(much)h(easier)g(to)f(use)h(by)g
+(higher)496 708 y(layers)g(of)g(softw)o(are)p Black 396
+888 a Fl(\225)p Black 97 w Fm(The)g(packaging)f(system)g(no)n(w)g
+(follo)n(ws)f(GNU)i(standards)p Black 396 1067 a Fl(\225)p
+Black 72 w Fm(The)g(print)f(quality)f(\(in)i(particular)l(,)g(color)f
+(accurac)o(y)-6 b(,)25 b(a)g(well-kno)n(wn)f(weakness)g(in)h(4.0\))f
+(is)496 1197 y(e)n(v)o(en)g(better)p Black 396 1376 a
+Fl(\225)p Black 97 w Fm(Impro)o(v)o(ed)f(performance)p
+Black 396 1555 a Fl(\225)p Black 97 w Fm(Man)o(y)h(more)g(options)p
+Black 396 1735 a Fl(\225)p Black 97 w Fm(More)g(supported)g(printers)
+396 2093 y(Releases)i(of)f(Gimp-Print)e(ha)n(v)o(e)i(been)g
+(historically)e(numbered)h(in)h(a)g(f)o(ashion)f(similar)g(to)g(that)
+396 2223 y(of)h(the)g(Linux)f(k)o(ernel,)h(where)g(major)f(releases)h
+(are)h(denoted)e(by)h(the)f(\002rst)h(digit)f(\(in)h(this)e(case)396
+2352 y('4'\),)i(while)g(minor)f(releases)h(are)g(denoted)g(by)f
+(subsequent)g(digits)f(\(such)i(as)g('4.2.0'\).)f(Ev)o(en)396
+2482 y(numbered)h(minor)e(releases)j(are)f(considered)g(stable,)f
+(while)g(odd)h(numbered)f(minor)g(releases)396 2611 y(are)i(considered)
+e(de)n(v)o(elopment)f(releases)i(\(whose)g(stability)e(may)h(v)n(ary)h
+(for)g(an)o(y)f(gi)n(v)o(en)396 2741 y(release\).)396
+2920 y(This)g(project)f(is)h(by)g(no)g(means)f(\002nished.)h(In)g
+(future)g(releases,)g(the)g(de)n(v)o(elopment)e(team)i(hopes)396
+3050 y(to)h(include)f(the)h(follo)n(wing:)p Black 396
+3329 a Fl(\225)p Black 72 w Fm(implementation)d(of)j(proper)g(color)g
+(management)p Black 396 3508 a Fl(\225)p Black 72 w Fm(impro)o(v)o(ed)e
+(dithering)p Black 396 3687 a Fl(\225)p Black 72 w Fm(impro)o(v)o
+(ements)f(in)i(performance)396 4046 y(The)h(entire)g(Gimp-Print)f(team)
+g(hopes)h(you)f(will)g(really)h(enjo)o(y)f(using)g(this)g(softw)o(are!)
+h(F)o(or)396 4175 y(more)g(information,)e(please)i(consult)f(the)g
+(GIMP-Print)h(project)g(web)g(page)396 4305 y
+(\(http://gimp-print.sourcefor)n(ge.net\).)p Black 3695
+5692 a Fi(2)p Black eop
+%%Page: 1 10
+1 9 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(Chapter)58
+b(2.)f(GIMP)h(and)g(Gimp-Print)-2 1167 y Fo(2.1.)47 b(Running)i(the)f
+(GIMP)396 1383 y Fm(This)24 b(section)g(assumes)g(that)h(you)f(ha)n(v)o
+(e)h(the)f(GIMP)h(v)o(ersion)f(1.2)g(installed)g(and)h(w)o(orking)396
+1512 y(properly)f(on)g(your)g(computer)l(,)f(and)i(that)e(you)h(ha)n(v)
+o(e)g(an)g(image)g(of)g(some)g(type)g(that)g(you)f(desire)396
+1642 y(to)i(print.)f(T)-8 b(o)24 b(get)h(started)f(quickly)-6
+b(,)24 b(log)g(into)g(your)g(system,)g(start)g(the)h(X)g(windo)n(w)e
+(system,)396 1771 y(and)i(bring)f(up)h(your)f(f)o(a)n(v)n(orite)h
+(terminal)f(windo)n(w)-6 b(.)23 b(At)h(the)h($)g(prompt,)e(type:)665
+1988 y Fh($)54 b(gimp)f(&)396 2450 y Fm(This)24 b(should)g(start)g(the)
+h(GIMP)g(for)g(you.)f(If)i(it)e(does)g(not,)h(check)g(that)f(you)g(ha)n
+(v)o(e)h(installed)e(the)396 2579 y(GIMP)i(properly)-6
+b(,)24 b(and)h(that)f(its)g(binary)h(is)f(located)h(in)f(one)h(of)g
+(the)f(directories)h(listed)f(in)g(your)396 2709 y($P)-9
+b(A)e(TH)25 b(en)l(vironment)e(v)n(ariable.)i(On)f(the)h(assumption)e
+(that)h(this)g(w)o(ork)o(ed,)h(the)f(screen)396 2838
+y(should)g(no)n(w)g(look)g(something)f(lik)o(e)h(this:)396
+3167 y Fj(Figur)n(e)i(2-1.)e(The)i(Startup)h(W)n(indo)o(w)e(f)n(or)f
+(The)i(GIMP)396 5112 y
+ currentpoint currentpoint translate 1 1 scale neg exch neg exch translate
+ 396 5112 a @beginspecial 0 @llx
+0 @lly 141 @urx 219 @ury 1410 @rwi @setspecial
+%%BeginDocument: figures/gimp_startup.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp_startup.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 141 219
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 141 219
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+142 220
+12.000000
+142 220
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPT4`VK''#tqk'.Rt\;W`AQ@AeGZL!FcCT4"k\4#g.!8<FO)!g-Im7^[/U*+@7i(j)ObkC
+XaPI'3h0Z7HR&DuSSfBE7$G>ZGgrP9A5"ZlCr/(!ZW8k!jD9%E&r$)pA@[^;;RpJ:-J9/Yj8M
+'F"(%&iBF#UJ<-Fk(ZrbMu(FcP:DHtl;]I00qTQ9O!.ANAMtZRQ$:''7)Em)Bs`&jG7cd(X`@
+_e0MM`D?.fpUbcG_&94O3:JVaH0W28FV"c`3!S-J+iMVL_N(k&DB!XgT&A=ko0K"3gF/IdYeE
+iQuFmkWaE?/!N")pOB)GaeAB8O,>s'r6o!:7M5AOf"l&F6!KC>I_Ep4<2Y/LG]%=dKIfVS0RJ
+lo3jInZCF_Ykq>Ea3p<):DB*"k4Uj[CJN=5^]Z*'Q*A,1PeVk[^To#n:^OjJ9%T>gScfe<M4=
+)XOj'$FP.=Dofd\Q#'&i<F*a%%H%L`E07d(DUV$Gm2\&gnZO`X/(@.VeX`Z1u*!2pd-72aj*b
+/8/FCL64C%173eCL_K:VM);?2?m,t?:ubKjHC^BZe`G2E?'h0mOl%ijMZtq04/N./]LLqJdS*
+fDTdc[GlrU;b.6&mg_Ec,o^i+`eW(%G>8:K*2V"*@jBu'.8Y,rFGglo]:mFg^\G]B`E_Q=ktP
+jqeW+2t<IE0NOd?l0=nN9+03*l4gcnLP-c;/!t+F3Qh$S8*riBI]$/j,]if>D.hqM,X6bH-Au
+s(?Tn>bt$4ke8M:W+%'Q#q6C:9$6#*%pS+o;piGL"R_S32q-APEa4a%U5bB@RSrU]AmA\Q@I!
+mi#>`'CTj$d[&TSR*PLCJ!hbu8i;)Od%/dXY52bp7EbR5IoZRU.R?Z;gZ\..Lhcc_U)]$aFl'
+a'hkc:(rt5ABgXX353l%)@uj_[5Q/cUs=8S*%2CmKk[nc$X:1]b%WVf1S0`I-nT/r4H<`.]J3
+H]P/\kd3YG5jTWp$O$-#!>g/MI9(O&(-dt+0KmmX#h'FPfrBgAS9;`"Vhbk'X-'hN7O_!DG'g
+EI1Icn4@BV)0(t6ZuC?BMpoeM8YYGGN$M4)MNp^.,$qqNb1hO=6YXo,'lOS7b\Yc0I63@Y7>,
+YBX"1(U[DL>0="#_%i!nt?tc)gZkYDt)R#-L,L%?89^R+JO.q?UBL&=1$I)CdQM'aU4dtQM3G
+\YHDF56taUoO4`Q(HuYunlm4:/otJg?=&\T"g>R&:Yq.knBgGQG^`aHE@@)"A]_bYhcaY`ZaG
+eWNCc/EJ1;DLVu!fh0a/h:oWf%9m)D0%S'tO.nXaMfU_ANGbX=hb-JK\&e<R]^,1K)pLn#Ge^
+oHQ8Ilqfm@SDj[E?=e#q(u)A4ihQ"YsZPh?8h;L:OZEU.:c>#W:+XA)_iN!<6">`.TMZZFq`R
+S[F-b+dj13(ahcd:9P7p)C_<cV7QrA=/YeieE$:9psP/Q;HU5%sAqQfac#s9h#fU/@8GVkF=G
+On`2M9mL!VkKeP-N>Ojgf["7a&6jtJP*DM4WOs\"QE80e-XjT\A6t(\ek8:k.M(g[4p?cSI]\
+c\&e6(HF;[Z9gQXRH6_eE`[PTRZ&Z*q,U=r9S)@Ff0\652So2eW=&[F>KBf4lO.]+:Ut8JpU/
+"_Ll=bleKHU'-Ih.kj5>)0jIe;&c^b`GsB`G6N`bK.4Rg'9+ulC1HFX2g5G2W]?^EN0@9V;gE
+G(pd_Hp:=$Q"9[heVn66mH2XgLTpdXj6UgXW9=gHiH4JG8Sjj3\a>FKjOFB]Y@%YaG_:Sk&RB
+POZrkpKs31hp!K0sN*MZNUePc_=;.m&6#]8=GR-U8<_@*T_]N72k2kdl;o]0V##0TqTou1g44
+:;9jR\NF1&-,3fsr%6>6MD*;.5iWpcC>*p%QWf]cI;=Z,oTG`9r#R^b1+-/8uC#ms<C./0P>1
+"gTajJJ6U$:'4Z)Wap70t44DcFCn\NT#=KVSW$NN?-R.:(]tW>:6V)"<6=UbU2uo5/Z1VHc?i
+X>iBGT,F(dT@[c#fI+Sh1mU"\11Gc30!!]K.a:pTc!eOHWr<4E9I<K#@8n.,SdmQ6AOR6B9&I
+^D5jkt=(:ImE$qp$k[,L_A=gJlAm^mJJ;/!%7`F6SLRd%0LG#.&]f7#ZIL?98,hr=.5H.V5u2
+k$8*43MDRe8r<uC%1-@"O5`G#j((>Rcenf(Z]gI>l<6:mi5'5K"6mG`ni6:OCTR+oks%?28_s
+'0MY"AN-\-ESn?st=h1'VjO"NDP\Vm<\'a#"XGNi:SP;I[QI<Q.p8W>frRCg@Up4B'#1H%U%#
+:un$VmVUbO.oTK#Yi/3Xp$FNCJmT1JXjrLo2@P5!O]8V4&u2j<^18+>.=gG#-&N;/Uu00hU!j
+0165tBS-=lkIn<n&qB?S1n"K@I<GTs"R*YR0kdEBEEJ1!^ah7P6N63d$;KQ[&8O+:Eg-n\:#7
+KQVjfe%rlD-e'HW<AFddDD@d5!<qc0O@IP2N:Rlh=VH^0=l&na&cQH8,H4]EE88&;lrqG]J(X
+YV\kHq,#[1;X$H;<KA=,-ON^HNnaVqH4hJO0U@*7N-Wo5iAlY!nP'jWNgp3#i?<GH><<0ZMWa
+CDb(^76eYQ#E5(('BU!I^iQ;&:4T^qEe#4QMR&)2)':Q4s<I5FHb.Bj+>9'fDm621'2Q1)sch
+E(@/)$$GrH+J;5PsrB:%LQ@`e*N*:$F'pfa_,Nd,MOA/l,C^B$.2MBT2pP%/[rGrI24?o_VpD
+3'?U)IK+*?+&8SF5'h*,c(RAoI/qsfp\P%J"gHgshaAE)0pl2Fo6C9E^>2#&Xu%<h&,SPh'#:
+)^6)(:VA=DR<k-@--radYT=D7P]cpo%K2JB$PIWm89l;QOFBs?jZpS?aGT2D),^INA41Xd])&
+;:O]HWK]af&k?Z6Jm&TPG([dMbj):%-*>bF(V:aXJek?ic+[Hg@Wct:Z7otBKY`cN97Gpq`FP
+O-hQ:]'L<p@^BmVUmsreJMR&;b;@%mR)dFbhZjZg_$pa"LRsS$+5)k$5;Sdhb&rnlT@r4RhQp
+(A:./U47`Al@T5=0Fb'4W-ALh<l)PepQBPQlImIZ:,mDBlo!7Ir,.%9a*=M1a\/I=!N)\s-3.
+^?^5h8E4$H'#Fe*iuG=(T8H4<Z27L6*E>\k9lf6gBgd:!C&WpoT<gGfe>7bFns@8aI;13j(lQ
+.n'a9I,SL':T3:7d$^0+.YN&^QW[FHWtjZXDL_FnS&rYT_OY#!4l>]kb*3;0TJdnjP&):pg`5
+5R25"n+`o_PDIe#`\`Zq!Tm@J,di5Z7a,t"td7+IB#N%YV'6NUTBB+QNYe8l>`s8K2,UL?Ubu
++e&UE#BG4oJ:>@(b5r6`\Kf$gs:?0p'o?h5\bjFhs1hbFC+[%qMr4qq<dp5MjiQq,=o1MWXYH
+MlJD]sQ*o]aRV?R#rm,1"RW,>LqRJiFR@$.;)Wq([bJLTcM4[!@ShI!RS^Pe1s+CBI"oLE]GN
+<RN3D';[u7SL4$i%;;Kj,We.cD4ZsG'ZYKIS'kn1Rc6<KD7JK9<%!..$r-+f<L]W"Mc#u1`NS
+m!,//,Mhdj3A(jgKae/]>QFfJ"OkM1nN`Djnkh>##2YuHtMAQ7gZlni&m_;t-ioVj\D'lB*MJ
+"#W\>L>.>8Nb>LNO(UA2N]CFZAGDID.9-KUR$4OSaGC*d2\Y<C$'T#cV)/gLUm'ob^=6iM);,
+0Fe^rYc%=u9"URr-#d3Q"o;^7=!W,T:dJ~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 141 219
+%%EOF
+
+%%EndDocument
+ @endspecial 396 5112 a
+ currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch
+neg exch translate
+ 396 5112 a Black 3695 5762 a
+Fi(1)p Black eop
+%%Page: 2 11
+2 10 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 758 a Fm(At)h(this)f(point,)
+f(you)i(should)e(use)i(the)g Fg(File)p Ff(\000)-16 b(!)p
+Fg(Open)25 b Fm(menu)f(option)g(to)g(open)h(your)g(f)o(a)n(v)n(orite)
+396 888 y(picture.)g(W)-8 b(e)25 b(will)f(print)g(this)g(picture)g
+(shortly)-6 b(.)24 b(Y)-11 b(our)24 b(picture)h(should)e(be)i
+(displayed)f(ne)o(xt)g(to)396 1017 y(the)h(GIMP)g(startup)f(windo)n(w)
+-6 b(,)23 b(perhaps)i(looking)e(similar)h(to)g(the)h(follo)n(wing)e
+(\(sssh!)h(Don')n(t)g(tell)396 1147 y(an)o(ybody)g(the)g(secret!\):)396
+1426 y Fj(Figur)n(e)i(2-2.)e(A)h(Sample)g(Image)g(Display)o(ed)g(by)g
+(The)h(GIMP)396 2741 y
+ currentpoint currentpoint translate 0.5 0.5 scale neg exch neg exch
+translate
+ 396 2741 a @beginspecial 0 @llx
+0 @lly 338 @urx 287 @ury 3380 @rwi @setspecial
+%%BeginDocument: figures/gimp_image.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp_image.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 338 287
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 338 287
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+339 288
+12.000000
+339 288
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVMt4d4W&Q8V:DC%V])?:7;H2d&Psi#:;k+dSJQCXc-.3D!2',!\fh>D=Cj+tBH6$?/K&Xt
+`r1GU5](AMilYeeq1"Z\6^HZhlu\4O6#(9N?:ZA]Ai4m*'W"PK>)<"E<f)rcmiQrp]Zc^OQ33
+s"!p@fAo`"qYSktI80_1s*XZ3P5^ukP<XK\mpEj%,p]&:rVF;!jNm)ba1mi1ra1-X8cK6,$1I
+mGOu3!f]-d)A./l.gRE9[i&,"O=igoE1)]`E6C%@&$cUaLPnudh?c!U8RIt"ru1@;9[rXgMBs
+7!f"1&_5G`?O,`fAG]ls5\4hh#2)M3#R5EXc<ubRc*.s#_"&aIlWZerpV!udR_mfC*`bI*lCN
+`K_oiQ.7sN^O`YX<d9lhh^J7\3)#qQG3]S;LDfH13l)6B;Pbb\%^Hg43G:*@XkJk,j\H%-P@n
+b1Or[j0#QV%$D44l4]V3=,GI.12bl!O-%s1K\c;uR^VK-X1jn43AEga22,a(#uYs2+%!ognqO
+r])4&ESFc^rp^Jt4sB0gO)2X^iRRrm4urqEs7U.lq?cWh"d7`-f"XEf8U;a;ol%U02YiCtdJl
+=i9^p*#,>%q1l.>!4MZ3VJX'^'B)Kk;:H.RQ<C&VcAqK!q\qq&UOld(Y,>4lN]s,DEb_;BbBq
+X6XAd[u_/"FmaKGPQ,?cf]SFmV_1Y\TcXmQOKGNL2?)MXrk5@J,%h/qE'o(jN10RP@a=9b[p?
+1*m468#5mcI6h%CF(S/5&peY;Bgu.\lns:=`DYuGBP^K?W"TI5Khuc&i_W*"2TC?*3S>lED%/
+LM4O.RGB^o*14GE)LXE,4M>&*2O,f!n1UOF'*HH[49/'3/1hj6r1YOVGBK]jCV[E?eH=c$)**
+6JLKUO,HPJ>'M/kd,VTapHlrmB?rBYGd4F#$dibJWIqd,LaO1Gbi(<_L\&P4JtVm$+_9d&ZT;
+@^Gc5HBoiIH=8*@_K)@J"a9epo8236)T`pr0,Gl0,A_gu&1Ii;.hM8]:aZirTY`=MN-lTeu(C
+[2LBjkG]#-L'UXRY%?)1f&g((Q67lcuaIFjrmF3#8;5f`N0/KFsJE<A)O'l`giU*PajBT6REd
+X`c$qW-SMYb0I\Z0Dg/j%V:*//-^0]3K>+FF`nrrS(8#>`"\nf`#bq_UP?nOLj(WoVPV[dP3]
+fNN*Q"Q.AAol/dXb]GZFl=@`hlJ2D!YCE%d!=brut#^IlP&D[.rsX8GkMC(H[b-Oo+re+b[/$
+,:c*Vj8q(_Z.qB(-3o`C<7X+.Z;7LZ`cG5PX2$`nj90ImP06BTP(MK>.:pQ[lN6AA#;.Nfg^g
+j;$,oFVK!7RC4[B^$4T=:*:i[HVohacpnNN%tUi0a0:HhcrD$F'qC3mOk-henND]V,LU`gO<9
+lj-P/p]D9`B<oo6@RuuNe60CAb:;BUXTgS!UU5a>m5nNHt#dIQX`(nQnm]#"4nYoC+2Hipf&8
+:5>q9(Htq/!Pro!tM*)2X11^)=ZGokfqMjOI./XePN,0EC'A?jDZGt-l,95i]GCPc.f'CBP/m
+Y9`M#BI9/P2H#6=m0]E^/hJQkEuQDMW>*.93Z%n0A72EDDAX5YJiRG_s(:[6h;5R51Z*eC5A2
+Ak'nY</s.?_Lf4\Hgi@(d:0)@*VrWt87g?C)%VSaX)3fcRd$A,Y<!e)Ml"'9>j@@dmCc*&9@q
+%YMtBKgWMn>]m(/CQU26U5lY-4hPe*dsbWm$J:gL'Kb`(lW?uSu&ndS?t-rX_4of1Aqq8j(C6P
+%jpI$8-'>]kVQqIm+CmYUn1S<\nE?gr;&93ilMH!BDSl;p.A_&RtajB0HHL&#02?MJl2FA?#r
+Ud@O*qa/hU._6?o%JAs(=.@,aMI):1B3JrG9$<0FM5RL=$/K0m!Rs[0jC-7fqlm$mpkek9SJca
+%7qMuF]mt!2?YK.nbM*POaX_!4SP'23]DHt?7(qs2QCa)5Mu!Z/D'Tnms+$G&W6/Uu]XN/!0c
++b-BR,g)F7:SWX*@V>XuLZg.iM/B2!Q;t=`:Sfm0fJ[_3rcM7`hVQ(nWM.7BQ_&<MqD/k_M\;
+9Z+lh;-29WC@<r?IV2:'.*,a9IH)aJb,#4<J7Q$XB#R6NP#q&GH8_S&)-/ma=dM%*MP(D4:\Q
+$37Sf5Y)#@_@R;f+7:O2fk`?K[f?S(>[5<g-]nsm8HAp;MWM5!T=JYc?W24=\km6Tm.1W;s^P
+[(4NXT(n%\N;_,7=X3o,#eq]a#E_ZqT-g33[>^ts-Y%T1!$)2l$Loi(o%$aS<*-al9_\0VJ4C
+"-+ke0Bm[M%?ReMoLS^VI!4>RUD&87O%c7'og0PMU1JUh>b31LHAZ%kHj-Q1#P`6Y%>oBra&A
+?MuYNWuA<dSbcQ]6G-Sg;@o4jNI:TBDt3f>e_YMDQJn46+RVj_1tEVs7.V43-MSpDTk_pbGpO
+lfo#k_PQq=UF4HZ6H`Xe6krJAl(3cY]fCJlrk9-9P[9Blk!2*ea2D\B1dh\Ng)i.R)P"(3M:O
+BG/QE0N5iqR8)nV5J26aJudb?o,T?=#Q9H@[+"6a$b?BoO[\^H'mq`F*\C^m.5@!VV=peYn?!
+a1Hljd(]T/`5+qa2pJ9qO8GORmi>cIs3,g.<nlA/&+^fQ"3pf:/Y_5NJ>fE(,@64;k9,t'Yb!
+iWX4YPc%8#5$gIf?5\UAco^gTVLc037^:i-gXr)=b#!eRj4IUBW=7pcj?\Nrf&3BJdqAA&Rqo
+mV[j(>!ol>]nL.t;PYEGq#'J3/(PEu64YbMDK0kqB4(4K>GEBZ*)J`9ti$)H8L^+2G7a1TAc(
+`S;*<AYX`bqDCmV\H:'(IME&c#gqrQl5LD)q`g%07K-3uC++%V4/!'^2%67@X^m@>ch,b`=*<
+7f6He*r2\/pU:A6-88A'2Blc1sUq2J5C"tCA@PL#9H\J#^G#!(h#G';!-%PlRiW]6adV-<(Vr
+&]i1q#kCRM5q_6Tqb'fU[rDl(Y.**ml2EHb`Xb@9_G)uT-[=>0i[QGNViQ6NYe5fHSK-bKYtj
+?R(4e"Jn5VVQWSWT97Quj6b'MEe&Ue!!kM?9W.j`BBE3m(*TQj0eDFc7bi<>aB&ZMi.5SlZ5G
+Q,4M3:/iXK'_dWN'n%7c>U'.O/\77G7EJa,cAF(aH(#cn"iFNj8cuFf,"a8it:6NSJpl'o\W-
+f.3>k>(H;fL5TO/02AF'H^gp`nFL7s(+9,OI"$@F&;#f+q[7eY#1Zl#T3.NeFO]ZEk0lAtl']
+^as4$%([92QmB.cY(lGuJf93IGH<QDqW([\nWnbC+SK4RD*b;,Nk;E%3nZ8^#g6lr3FB;E%`Z
+\(<n*Ii/g88bAj(fCe7G:r"_s3pEY6IIV3'd\Nd7_RK3`>?kOQdp<I(^T+\]Ji<DlYW6hrNg(
+KoW:R(_\g,.gn)^GS:c9Sk.qa^q?9XE+r#(I-0dq_5=M&2Q,*0A(q;1Q))cNm8Ckk,Zp8gZ/s
+H4Y<:#u8:`[uFDF+a]cJDUM[70T1S_UnM3Y.rGF#!@P!mVLEW)tu%;p--OLmG`2TfToWDt^p9
+hs;l^/D,&S[%n5Xl+Ip.a4*MS*3#HAM+rp!#L!,<?#GH))<U8jolMdak;qDKO\4BlA13/;/:+
+.Y@b#tTH9ePGFJH9%m7Yp[6O4Nrq0@*FSUUTS,TUYrPK-4ZMPP`V"SDUJEGA'Aq5N,[G&?'B:
+#4_Kl,:#mVj[.Vj^l*$NN&GndL;obSRf)&bYF@&QCXm0%rTUL=DH2\.%)Mr7k(6;d29/F8'XG
+OF)j_0HukQHN$5qS,,qZ)0:7:aUU@Q\9P;T)%oMcfpq<`dr,`IRphQ*d;E.JI$<&*]$VFST[O
+/cK>Q2XK/Lan.rg%JGp3n0'9u_(li8[mO/m$7pAYrSSKBeQNL>Ft,M5Z@jStJa&_FGE[.t5Qb
++j9oq(AXTqJL5!'.I*XoANF4TTp=of55N0EUacCM=r`PHp[6l`(&r!R7\PKXVr04eDW&8JA8H
+!NWms^Ud^^NHEJonRE^Pk)gBP;r)[h.W-X4jbhT;7&Yc!M`119`gNG`j.ph+4ZBm)2BRqmjYh
+FG=&KGg?UDWo+l<o8rVU['K0U:FCL*a0>Q[j]K\[i_+NV/J$BrOI$T?EY`GNPtMr78"7[A6aE
+K!p##4D-Ec(ADVgC@a,j=0!['B<o^qd7!m9W?%B^B*k*E$,GDGGo5S7Uopi"Yb2m1P8[:n61%
+VU=<+bhgdk%kZTh,Z0c1r@.5(*iGa#Y.1e>"qh/H'AC<X6Iu*Q4Y!!(e91ksib*5e_?FA,7*3
+_SmI*KWO+ZVIbafY5PX14/1NLndGn_,gDgUZ#\J95,k0J+"'^(;:ja\MobU:<_+fI?.Z)ZG]1
+WHC)A`9H+VJ[f8O+e_m'9>\]8#$&a3<V8gF;-<L-r+L:G`6fHrUmP6Q0GaHu([)[p7[PZ)ere
+,>i9`D(fFDB>\]maLg7WQ4+_1fTOYV,#"Ep&!8hCl>OOL/kcfm8s1uQga#l+`k>5QL0k+hC/1
+?q47G"bbuV^C'7$,Vq+Jd=q./tLT=FWi2G!I:-UD<;Hr3lB+``,bGNsug@+"S/R*FZN!;pt>F
+'Vl:4<trrCdk/[.d_,Uh1$e725>mM5tmk!%/,6du=VrZMH#U=JN!,&KAUA1o=8S`@ToldPR:4
+\W^C>XN5&/@_3*(&Fd#hYB%$(WtNAEEcnd>[TkFN?E.5-ho=DF<6k?jRVejhB^5-_NU#bo\f/
+aYA`)-)=HPs!/r,W0%\.Yr+p)]&C;6U@Q$cQ.)05[jR4KL<Qo<2G2[(i,[C`q5Qd--2T9.Vso
+4$!C+E\g'YYd<\<UmKo=oMF"b,Q)sKd+Si0CitBo3;2W"b#KV0#*+u74tc^^B.2dXjFVsV981
+npHn'i\/HIDd)(bo*m0<^H#%o0YuFnYKIsQ/%15&%>/=DBKMHITglccfKWNA.F50QfR99:2qI
+]Bqb[-66.P]1SLS?o>([V=!VpC#Q'&;B?q)hFTFD4s[AZrL/J6[V?hhP?+*VXpB.(p>@0-PEd
+[h+5J+jB$mKqSlP=M>1=`f3c3nVq`ai'p&:.StHUI1<&#7uJ.&mE!\teTO-:CS61+RD97WVTL
+V*!tQqk&tNd=VN$%1m+-tQRR(3^c!H<N9DVas+C0bu%E7sa]Jr(t\JOC>&9S=Lh5-a#OXE.\<
+:u8rME(,U%INh-SKpRC4a$qJ!kQjno7]U60Om^jE-6F;!p9)@<_]N^6ZEB_EApO'_U(+.]''[
+o[&E5^b%%jZL:Z)sk,<^/WhWSKl,N.f9[u$-7sDkF&3(a'j-mE9r(Qc9lW)\;h!puB2r]XL`J
+'fJ/87JdXU`^S(\^Ke>N_Ss:B6T9jPML(LRS3gIFb8)s5orjU`Viiq+`dEQ'K>G#tQV.6"hE#
+=r-lpRVD?"L^mP`-kr*WND&b^%ddIK7gj04HkeGPlBG'NrJRf57)qPgQdpued#/JKN^f0t,!1
+#lTQW-"LlDmMUWUd1WaVh\C64cC\M[;X'.A?W=j)6:oRVq"a0#S;O6s3dJ+WAXOcu:`3=AF5M
+ai+9?$SK%HFcgA9/l"_U;j`BHApN_\Cl^^e</U\E7,UgT2)%8U6,hfZjEf_O"$OYpndhT(6G&
+VVOs(1O78,+n1KJngoe@fos(]nVjF28aD<J]Ond2"4SV<;^3/RP;#N;qP-X(WR7;\k&B&0fr.
+W^X58-2VMkCCTF>n&"bY]Cu*;+45rA<G1QY87]1Bre4+iq)rh[YOdnL^E>dtS(XfFg@q$ELe6
+2\K\:R,u0$=(i.RC[^A>XB7H<RQ`u&#:O01H#pAbY;Y^k<I.**(957p;H8YCfWG;S%T1^4_!q
+EH6pXasYjmi>KK4+53o,6bCfdrbQ1`AS+:fo6=!-Q0iR6H;^RVc^]OpbqSBp67<9$e4:f'^42
+iK@p*E)4g3H_U=a'"Y*eC0Yfe#5cpa0)c>P-Zp8A_IgZkTi&AG%B]1^I49-_mR4DMON]Cc(QT
+s\^B9M"MtZp.t=-S;F4_fJVXCP^,0^X3-jW"g+VE$e>dfYPYhago'L0R$ah]<*JNQ&(B:LAs8
+>NXVs?4dA="t#RqY#HH81)PUDpaK?%GXE>qEUKOriq(HL8_Bg<1;i):Oe3]e,XHP/fK$pbWmE
+P\X!'N&9sd`&O<[mn@k/['cjr[iThOBdILtFiV/I79:];1LGQZ2$8tL)7QHBcc5;l(TW5/Sui
+o*F_P\SR20l6erP9+IjZ^o]NHfH5`<VA`s[`905>VhFReQ9P&6mc.i0(E'PP\Si\+kKMLWk/d
+U@</D+/O<8ku4\I[X0c>/Ij:Qc1.dP5qOmD'u0K-A,[k"&`E2(OLB9&J@59>qHghY2r3GSfZC
+nUFd2I+P45\jgQbjUl_du$uYZRgW/?tBdLJ!V*E+kh4LL$c'j44#(aKJ[;?=>>LfP3SHrrETQ
+qI+ACnoaN+J[G!lTaqoWhsj\5Q#?qI!t#T@cQ3>n0Oea**Z_W`5FIGK.Y-.\^s':!PZR:$?nF
+aX9.13jHsd>/[%$8&OdD\!rn*D*sH;]\5/rImmIS\#a.=I=A,l;pjk(2G[a)p'G#9CN+%M/a_
+mu_.].!:3<g?>oHXY:$#Xn)3e]?VtD,j9"Kq_NZ$**G3ZSYogfIccAcSTU2)OY=eUrN-Pt[5B
+!(C$JK\It^*iYi(I'`E:P/;&Z@(=R0CLp/H!1M7Q^UaK-?VMf[,mumI`p#B"@&Qah#$sbS^@j
++(WUV"-gJ#_6>JXYXbKVFMGb294J@g;>ADmB/75DT;^Q;Y?K,+lOhBBDpK<XDbZG=:a8(\nUL
+fe]]=2*EEu8"qZ7MuX)p;+&(2>Sdbo83Ec[_1<4,A>TC4_DX]$\OQ*1c<;_t322X$16m$(JBn
+Y]F6]XkCrR=IL547KlM7IjYTRd5f@obX?_N$^!q:[+7JL>%bGrjfFt1'/b,6p"Q=bZ&!09&H)
+am/*a.c15Lih89h_BOp/IhRjMjLeG%t13sK-EdFsR[\=jidaSg94<`qcBn:gY4?gQa,C;KtR1
+Wm/+[j,2U_;&MK/[e?I,1f8#H$6;Z1prE%hem(6/Vhu9J3tE9nh?>2q:>cL4SJtfDAFX`MVVW
+mUB\k76>=;Le>VY#,qSCnc"csebeDe["khLV#Z3p_UPc]*qRY;i8aNVI<=(9NYFKk&`p17K.8
+"&XD9],D98>,XQ42K&X%]-BeWoo%o>;a-V!G)+e`BdlHScBkkK&?o^AsO#qe*uuM2TeaXP.@q
+^[IngQ="Kt17")B<TB(MXlL/0g<R-d[LR#toH8%e@9WKkgO#Efh$n^SK/Q,^XDKe+lrskg8`=
+8aUu&(cl^R;.J"=imiaB61BsN-ugQhEFn8EUh.`[PYS3I^W]Vc'IoXPUW?Djp)<6c\"IMMdM_
+'VZAheX.[_hg5o=/K\\QsNHT[PeLm+ud8*Sl#c_i`i--H)/`a&m@UP,\MK<g\sl4fB]fPi!gi
+1gU;5REPf/OXd6Yh!L@Z[!CceJgBT]82fM?,E)nYk8=+&u^TleI\P?5hS'k9)n>L`ViU\lWeZ
+T<KK+M"(L/9#=`M9S=NtCooA2QL,6UTgKH]6QY*6[gX&'?Ibfc=0M3Y&0:71,W3V]K"(<bXai
+*e/QcHb4O8fY)aF>O75;THFnSo-1k6]&L1i(Hc/br2r0+EI!g0Hg2LYY";Qq7:$TB>U3Pm^nj
+\@s0,P*Y_.'25.s1I$:-u'okjdXb%kV@8tE%.Bbjfq25L*X\WAbnPmEk`!Ab[GfBYb`5ZCsI>
+`i*^k\H7^I^cs7W=+cfg$^6$X;d#:)dZt%qA)3Jk.tb8J5^9Eq%t^1-!f/<a)hM<SKE<.s8CE
+c@e&RIlZYS+^:fpBCHb'da8GW-DdVsNGOoN6$f^SdIe`:'l20oZBM'i?#;]^VU:0BUGI:ucC%
+C"6+?u'=eXTiU3q/#OV21&u+->@+.tnBp?K>&`GYQjnXdM'Z3QZ,Ad2-Q4TZeWRLJ1S7:k*'8
+[!sFeZ9#(Wo@ktkDI7Wik.VqkYQkJm'Idf(D=SG4"j9e'_[A-de!YusCW'q[W&NFHdc9W0WY%
+Ebm_&p&k0nhUG(.&JZ<4d7p7i1CLYs6&"hWCTJ,K*?e*!pkIlA+"5(3;(L\L7E^%hU*O5I[]h
++_1!-^#F[3kb)=.+Ra=\tVB[D-OGm%Q]O,69)R8ip?i<W(":-X,-sU_PP`AKpIm-X;#AoK6aa
+BY.e0"Er.jVPkfYoGAs[q<Sgh6^Zs(>>D4C92kV4>+obW!$LG5:')ON\3eUZb/G*2!L@+8@<n
+0bG[mBdH60g7iZT&_o.^pp@HGYAXIXEfM-n"rSds"$hHh[B&W\iVh55jHra7ld/^OGqI7o9Q$
+:LCd7nR(D>Va%g1?3Za2G+XU/&ITb]Akf?Ri7\g;PrMXa+gVIbq1jmtEpBf'&qJfQ6Ft6lU6m
+?[Iu6(K(">(AckO%ATnA^[0(A4beIc?EO;<FR'"W@AL97YA@]Vs`QGN63[9\XJWTq;7,tT<!*
+^m7Z*d:>@HY?kH*]Z+uHbZ#7]r9u9[X'a>eP$r0*.bdfM*"8P4FMXa5l9^0mpCMCmPWW2ErZ!
+l]C4j)qs*4&+2>M&]m]kH]9!!gn\sn_X7njXn8rY0Fa$ar6aPW_/>EMe7&:Xa%5Wj4qSC/02`
+\/.Lnr]%\b%V>q7@ZtktUT\P9@VO.ZXlLV5dSZ]`]>Ibj48'(03^<1jk!rg!f*rL3qCk8lncX
+.$)M[Ga$Y38in;Q3d@@.gBpR]FVE_@0-p18;>Ge!g[\SshO!"66'PuDi`L%M1@N>oS4%@hD5R
+=gQ'atRT)S6HoC%2'm]"8F\n/U(s6eFHn%ZParp&=#5MY*ZrV$3eIsC_Ul1<Zms7$$dHoJHlZ
+Heg16ObE#Ke,sc+T]hKRL"AGgrte]FtU5fk`=3iF6V[R%-#NkS>F=*:41br_I2#n=qfmh-doE
+&Mf_b0DCHL>f;jm%SG-"jp68"2QVgHa[@His*+5.um<[umUeOM0ZS'=g6![nlkglOEQ+Ihs^h
+m/il>8"m:I<-c2M^]3f;oSQ+Dd05AY=KS9RhFS?efH5Mq;@YGQ6j,gP)#IVhb$8T0ERIMPU:<
+X/B@VfDjU;O0>/4hS+77;7Q7%6Y'g=<c,GA9O?.Qe9J>KTM%Yi*4/JZ3+S]>+tZVS@/OF<l\K
+7fd8/loBV'o)T3JA`U4Ti/?3pjo_=5FPFkL*6^X-9p,qCNoO7[XVMRW*7C7en&'nhn9`5E%M(
+53!inE(o'K83IM`*`$Ynd4r?OKd"\M0JM5HD0itV5fq.NEsc>bYo,O(Q4j:;B[KG-tg;!]RKn
+N+.g7Dp>bK%[kGJo;/#nk3:u%IVml6qrl=j&ZQ[>."5AFd7%l)AI4uk69ArdrV<M'hNP3^qD8
+crrFlsek[E^o`pO&=b+;$2k``2Za\>/FNI**8&98+9iT.R6Y=.rA%N:P>DarIp\b,Ro2;"NMa
+abudEefl82.h3;I>hCi3/4+Si;gGAq8d%)ijK2OjXRitmiR4WN3)K_%)^7#qdaqE[DNXf4mlp
+`g5J?pmj1F'"KIa6UpJ*R25JMR>8d,+Q[pQlGh8b!X:44M$FSGG+EP=LWER&qTq6Y?I)m<=D>
+P21Z;3\S&i"lU#S0P$gp+;G7Q1p%n8>/V5'LUrn]KF2o#d**#c(+HHiDOfm1=.Ldr0>p3)FUW
+0M]\?1Je#(k8'HoI9#Ba"8>pWV-ZjMu4tnm$%=;ck)JOfM-3N&UJOT427V1/\ZjDZd%mRdXod
+-!tj$.tl:B#Jf<4`lpl.rt$rqQ#-hqncZ^:o$in_Ns>"6Ks!s8Dg20MetF;5Z"KdUu;W)JqGJ
+?&HduW3<%@`kJ/)_`UZ4hG<Snp`#/Q#-gpJ0_\oF>d^P.f#+.r5iUeG&(_f0KB$!<c":q@jml
+nt'3!9J(WR?M#N4Z&4Jum:MiWrBK'f<^Y2Q!!ig3^C<aK^Wf>`Iq;j^AjM"+d'gk^o=qt0FGp
+EK@@Y?ntns8#4[o]`jBILhA:n^[$opHQB<r]gDXh>dC7+gJ99oC%0V02C$=E\s4IU#<u8&?To
+`B@/"qoT[;qBG%CQ-kB6"C:Ja?9'dj9S]!$Q;f2DIZuBElBBgC9Cpst'B*3.ungXh;0Tutf9p
+j*CCO:]16&2_D3X2$E1+7*2Vb,*.C*ZItkp3HErD_BODe$+G,rkbkrTf.s8P^/3?Tt$0pT4Rp
+,&',9RbtlH8G265Ih?VkorD/tro)nLG=$Im9Q.j/RThUj-fhjDRP*hc)%VS^UP-%GV5kn1^*-
+O4#ZH2N8oaLHnc:#LM,ge!@d];a8ZXYUQB>o=-uHmbq&u&_1?Yi)(G7jn1%d8uluY_e:-gATg
+)CBNB!J\0eE]1:`_X\Up/Xq@4(fd^8PC9RDMpEJ_fr;VLl-j=24oXHjri!hQ!2sl2LR%p4.je
+Q_]b)tIg^#q+)4YqkMq1pgFH]o7Q[e%r_&:`]0M=92@5l$E`E\]kWX4sQND_.AA1<&3j690\8
+^$\V%!Q2b/\Lg>>aUAb_+c2^$*mE*R"<'9WPtd8Mm(*dgWCIgiJnq[2/1jZ[5/jrARAKW]&6+
+9O`;!?3D@t*i<1rC2<V>_@fC/ak[E#('A9%cn0-A^BR+k$6Q/WHjcK)&J$L:g)a\i0bRA,X$9
+ha/5r&@d7FsJ,6@20%j:*<j7hlIEp:iuZVuGGXpVsjT>7;6=aV.5k*ml@pg'sdPE8sqddinT5
+FmdpFi,6Ymc+/-Pm088@#.;41kZ<_`]d:5_hW(HjoGc9&bb,Ae8O9DjS<^mp8S+o@Bk@n"-%l
+d0V?)"jL//kVu?WrJq:nm%_C@&IO.:g;"W.YH,c"dD,lB*k_6%q+VnEYds?WXJ%_?&=s%Tpj#
++<LbldNMp,SX`Rp9q09-J"Z'iPl1P;1dL-2pGrZ.NmC4;X4-d>eeB-*meD]Zr5X?+_o@U$F/N
+N6Di:-J7)hc:-l#U?%l-p*R3)_U?&c%<O%/G+EK4[1cVK]c(H^E%++$iR2;7:%5BWD4)KadIV
+;"qib!>]:#bb9._4Je^u:C=[[?)FWEo;Eq5$#Z>;2VBiVdt@%r>u&Q00,oC,VBWm&(rAm&,d%
+I317mo[knd[nF_-.Tq^,X*g6olW2/;]PEie<T_rUAo/si=2RNl7g8WS8`W?YoIP-*6i*URlD*
+\CUt435C4*GErf*76X:E3nOqsG+%"E#HG/"5fb1]^*^N.DEbSIGMmEl6l5N/7dehA0M/$$0Ei
+R,\?`Zl=Ml;V']i/;SD1GV;.30edp;8H491CS#Zlcp"D;`7oWQp+tRWY-T]!bA!+gD6;6oum0
+Tc75,kV:.YF]urT'J)Rml$D#rK3>>D260uPadI0`'1]d&ioqO5'>I#boA%eU>u*AQIq1PU)^-
+YO1N?<g0lH(dYkTh*C!;6'+&S@cL<ZFud.3H>,oT$neWUA&?aaX@kKL@R-]3Y`2".etl1Ed6!
+s[D)p8@TH*YllBNK?:aC9G,jM+B^3Z0u-lS!Kr!#,F:O[C5=2l;D^Oe73o+jBgW?,%(-mp7aR
+(Rfg4.HB;LFTg%:hFGP4BO0s\8enm`XV+.^\^PV&[jjJ8$SEr@lN#2p:8&Pr:1@2DK09]5g`S
+NcpJKDnQPrF4B(E4H0N]Y_*BM(`U>-G:/kG6mXI,d5@KHp)2ETB^3.Ut!fE#k"CGUf_lg<Gn$
+[:_dh-dPiQ5KUB&:Fc+O(IB?mJgPaC8_8ck`'3:pFZMs@&UUm#D>ND]!?EVspk`_\?FZ5OYF9
+UTb$p3d^8N`]W[ap";&)@pVmTo5RcHIN8e%Ql33np1W`'&6(#=QlWn1mXpCI^__uo4."A_ij"
+eGZL_E)Nb-e1'kYr]1s[Q&Jb9U&"AClLc(Qhf&_QL+%gBrtqpPb\iLd`#`+Fim=5`1n+g"OS;
+I;\lcX`KRY%%lq$ISY7cJ3-ADG%QZE$ZHe]$WtI;h[a'2D\TRcRR^%cfo0XmfrF#R3m$4s/80
+pfZr_f!=<6nasNZ70(5g^6n9Z*OO:ef[I9J`(eTak<l=;-7R20mXt?0W\h[d^_sMH#%*SG1BJ
+Fd1/]i`SsoZZlIA;lJ+R7`cFFY:nD:[lT/;JoBK7`RPU+G,Btu4o2&gN`.+P@F`?JkeX)a'oK
+Xm$;U`c4aRs`jN<pp6FHAN7HYW#UYV$![8/&kcuBSpeRg*7c1qET-uF7p'CE2<q!,579$-<KP
+@0ES=F:SG+q>/jYH@I4M?G_5r,]Q#VN![>p7<LE!l<3`fQRfS7?a-[kl^LQn4,G'X3G,tC0GX
+gTX>Dag8EL;e'CpqCX3dEDjWF#GX6@!gHbdr>Z/m?d6b1Fl`6cIgic_Ur+t>:'sfY<J(5dChc
+2Hh1"RgAHa_QfN>c#39`(X2$O+La<JugLW&C%,S;u6;nVuKXlMSBJ;J;,;Qb9PU7#MgHVJbYm
+96Dl@FQ6RW>h$omnFZ=SS0<5T0nCM=?U9qa9dP+35_!Jt/1Qh/r]Q,.0A8K4UTAW!'a'Ac15h
+IlTBEPG1W;#0@Y(+,GW3jj,tV$7I8Ye\EFC@NPquiD^F^aHf$`#2ai[+^?`$+WgZMdteVcm+M
+kBCiGuI![QLNrc)Bqq[Zq//lY@!LID\UpO`SSbASchb98l1UVb)o,"+Uq8R7iW77:Bk^f'C+#
+WDD_:b!M-nJq5[\q&q]pf+,U]!]ncBZ'&-d@djMfE[)S2Z%:WEChjGt`3W)eJ'NLKsgNIZk9:1
+%qT7G?mLHWNEE_%[*7ofuC,n<AT12l7dW8C4#33Z5="osu+806p[";KTJX/T1Te-ke8VZs5SE
+&L@pp!?[m,+Zh1,e-tX(R44mU=P]6WO3=53-J31`,C7nr$I[B$#/XP3c!rdD8\*(GVbQ2b2q<
+T7;526?@Sr&HdJV`mk5D6]pqc`Le_jgKI1M]Tu-oYnnT+X3MXQkpYL$7au$#sD\d,F)NlMlXj
+:71dTuI0:pMWe<5Lq^U-q/;8_E8M6L>Gq$<\R3bgM=b-XY@0q]C2Xg*TNHR\g_/[R&JR=QOmC
++&TnuEaN+oRp::dU#rXZ8XFLt$=Crml[Vo4U.SbR?<l*dDYkt\1U;H?IBpEUYmn9]QSkdg3\.
+RER\u%T<IPLiJ,:@HO#D4P9Z;dUn'W6SdT//g3g$<l4KKhkS&+*bfB5E4<OGni*aoW=:CN'@H
+.DTjaX7F8)"q?oD-@HZD"`9aiptf?ja*"A$_\I7.[RX*KoiYS\rjgpl(3Mk9;/5q0(duC9?g/
+_^0d#M*K6>0D.9uf)'?Aa0&ND9V9s:L[%coj>PMZ!&2*?NW>q.8K5Qmpd[V3rM8D4Y1=1<cnT
+XT!8q<9)l2<A7Z#ahVcZG]noD-QirDIs81"`r@$M,+794Q8mSRNZch&7Vsaq]5F3q;6!TcuN$
+j]k=Y6>e2Ce5X=d4KDMmPjI+\)X,"0@NPq<'O=bcB&WrL>n\A'p&te.Kbl'D]eK+QjEat36p6
+D<;5^+GIDFhnf:,Z%0K7o#&V]."NEE+*-%7ZI6;E9u?#MVT6&qtP@25E`S$N0$\tgsD2cSe&$
+;HT3iVm(cbT9?3O/h&Srn6pGT+`McSSF.]OSqLVFR<OuIU^=K=U%*q$s]lp^om>Y;i0pq`a`i
+r;`6%eG3G_=!X^&M?DBJ3/=qG83>c,K[`dB+k[P4:-8P%D2`"94egCRWn!CAgBH<^G8aN+'ge
+WUB_?L#H7),!_Ug$o=f1;BUp;`E9rb^,,bJ[`b.62E"IVI?&Q)PGcmnd^:k5Kt)VjHE,YE8uM
+9W&Y\ed<4%`)UBKk"4$mI26lo#+,^99QnQo-ll5'Duj.9S-?30nB>8G&(Rf[JDe.V;&SnNQ:_
+Tf\kL'CjX^75R5P?c.NF;P.VD)E2SX8qcXrT2_pFC15P[^uCpWhf3`U;Gar7(Gl/7;0A2MJT*
+e-!9[>dK'3_k9mj!#$2ARiWW!89gFqX*qB6d4"7>_sZ\^k3!DUeL%)&M#2'P<.3*damnc,C=#
+InFKc7EL$j[BEh0Tn.+.1N<YWUdk6F:SA`44>:"fXXh#!p:#[i!M=W%J!L@C3Wo2FMa+mA;$a
+DjITD:Rh?`*&4aC4'GO*^>7EVu5LChRr_WNjpfo]ueXdafU2q6"E"`T2I]B735'25*!oSC2dM
+dCJ.aIX.>fmIEB`9DR2,/SU_L!c#hFSebVC[nMpB(qL;jd%.M<K,-X-crMR(RT3ZRQF4>_NQ>
+.@`]`=^^_!_g^!j'5e':L$h!&#=89.T3RP%h,SAeY(_$UW.naLdsBQC<!e-l5%;$?1dQ\@URd
+DKBu&b^(Tn^_BJO\NsF5)GnZ_ca]"7:3P?*RG=;UAF!Fl>f#i6kfXol^5gnSa*Rl8Gh(uX,8B
+*!<Y3c1hPiZ6:`9hj&DgQ-/1jqh!-"0ocf/Gk\k0<cQC[nk`8*2qL"9[L!ZEq;g$9&8Z1D(nN
+G>^h(l?`r#3_h%VrG$T]NtaGuOZBVd(,l^<#4>"4tnrB-0ai=#$T\oq:LtbEfJ+apJ7+"g=(r
+X6P]I3[u<-[+H>O;IXSG3jI?'mM:ZE:d^B4`dt?K\#/\+6mX*U:ZorB1i+cG_3lLPYt=SgTNS
+OZs/PN/9LuMt@oK<\"l5h55b_)iB6"ul&_R7;X>j)W#AN?POBKu]T5@ZQ<X6f>ef;L>$D\2'm
+U]\1]bCu,:Nn!N3XDD#dalX,`r'SDAjUVK$aDeaNBqE(Q7F/p7FK4jN^60GHDW_oFIT>[,fdD
+fJ``*,5%^NGTkl-UOnPSP>t:\4F%#\do,t*rW/R<+Htf,Q,??D.NC7iGH.()g"W_n)Ai%[((8
+5UgoQ$'e$9fk!I?;DQQ`at?piiDQ&3I@Yd\7?,SK_$cG/tPV\d;r"mk7^"kP>Y)n%'j#M'<kO
+;1r4D>"q%e12mnc`+Jd1Ao*0pFRQWOdG)aQU6-n9Z*UfW1;lY>E?JF@Vp5pNj%*`L<O3]=Gl5
+d"JYl'G1Xg5"^=E"Mqu[O=cYU.V=GjA`h"a:2V^'2[+2F_$endS.IT>Hu[4!).@'!P,NInDOK
+C$19n9(U9&"&NpqE2H[@Bb!Ri%]m7?ogfV^&fcS$$'NNhCilTg=ZaOVBW/^j<QX+8*Vk)Y><1
+,hJ+77J2P:d4&T=RYB8q62"clO_["`mS8gI#JY<kN,U$Q4=_PkD;Du2jF2b:hQjA9S0)\dOs#
+g&*pE*F&Re62?HDnI,.qAh\bSgY?@`OnAC(7*Y6Qn^u;M65B0KlM9%rl:;^1R)&&l;&FBhlZW
+N#N<;qem077e'sgN&77m=E1/"a;k9bWPNq5PX`<u31(<`H^L6CXH5qq*^RT$QsIp=61>W?LQQ
+$\B$-tO6s_L"=37:I.U4HPkl[HS/8Ot6X3HpJp`(Y!SYj!'VFV_5CX0'_i3GaKoX7/6Q;f:6q
+,"5M"=(K!_t"!$2.fHZI*$@d=$glrL#n].X-*1EYu*3ID8?`2b7Y(.Hbf>'P)L.4SDnBrYrTU
+M?ELo@1P@?'>b123_[m\iGo#OV@gQi1;nl$e\"<n]]HVGKgO4XH>dQnQqkp+a2d*JuR`pZ,!D
+\>eD>%&1(T5AYF/60\GX`8?@&O]T*$f2lD0Q+i.2mc-O;I.O)aar"j?2sUM`Qo-:?AQ/aA"*W
+0SiFQpK+"M\6e,h;PHM!#Da-#dL!p),p`5>pgl,ug39I&/ttc\[]>8QZ_SLM5I'H875tm.SB[
+-I/QPO>V19.flPV3KB\[q?QhJVQjt`4K$$!L9VT,2c8$2q1g4p="#oc<Q5gc3K=GFG#e%FE7U
+9lhO8B$s<A8rGA+aHcs]-k9bUfO-e<ZI-rV8tsE.l'%e%>;B`alQ]D)pqfTPKPJ5UGn[P'!k)
+A2\S+HK"EOi(,)Z%]h[E&b/kUY&^@5;U7p8E[OCd:jCgJ<GK>q8Q!4F<nq[_HiVm*9M95eWnn
+M460[Jh.Z]/lTCM9uP\Yr9F)`pn_<qYjeqt1@?)<#2m3:ruIrJu1&W(/Oq\l&F#:7<Q@bD8Bj
+dOq(BF@iVtX2lW':j[iejSEmQ@H5Sn7ddE]WrU]N!NOXJ+l\Q=9"@PARkhR6A5sf;QJbA^=F-
+?^>^Hc0KmAjCH%6RY266B@i(m0,KY:93C@f[aGGSE[Or26mP]]t^d'9`X)s>`^;9UbamZ6a*g
+2pTS`2n$Bgd^?:1G6D;ghkH/6'j%64j3.+!5ArPLT"sA;A"3Xhs9s(KUrICj[])nJg\tZPZ4-
+1e(bW%DPgYg*/Yh>#?:<5M40<Z\Mm+-IFE#Ahk8nfRa*[_hAM?:M`=Sb1)L7#F9^1/AR'VdeH
+0hLdmg7B1(]"KA$s*A\6+6_/N^!eL(P:\ifZ_Yca\">nRh(m!I?X]0P*^k[?q]W#=p<[(amPX
+,:SunMpWqoHfB*b70*$<:U!P;.]hbunjOoh+F94>M??S@>c*r;B/8;'`DY0R(F.>]VD[hX=`6
+TC!1chX\4/^fEueA"d@-Ar[)Gmep9W=ijJ)YGp`i\VLc/tfG7iXtS!X-%oZ?RB<[^>IM/<N?;
+!Nk@VG3[Uoq7W1QBjq1&f\5c)WDVglIZqn,Zr^t\[:PnI#[Ot6=^G%1sP3CEW4U'Y,^$?.b/o
+HD1Q_TC5`gjF!FFu"DH/^95DeQ3iH4$:ne#fg@=imT,lh.FW?J"kj`fkoVA7%D*LlH3d]fEU,
+rg"W4-PQ:#L[I"'ou4T-`Z3M:.SS$Jp7`2f8W:D$I>C2s:s`nr6@(S&Db;?"7Z=0s[0Lbr.n/
+)h+P:W*XU`bc0srBS.nM*=E2!N>MXMFrQM"IX6AX?+61Z4!-[*<]tmOI;bR1JE;SEij:CSNLj
+h5&Ta#Scnc?30SmG8=aECNlTIdRSU5d^R'XG\'@drJW/Cr,9q6a^LC,!#m)Z4H[A)YT[*dChP
+a:uC&]Vj^@7H!(>gDW=8igh^1o+%PX,4sQLpg^f]G["/VoL.sRs5.WfPP-+q0;hI[#Ncf:-6b
+R(pWbA-),JcZ4b!'4,)VMRnIU"5l6*G($G%TRR&s@c;I;]l9s/7c91+>79"@$Q^TsmF$r!k7p
+AC<CuYr3GlY6`0@!*<A%gV@E9#(3n`qM[_eH^gNupICZu`=Ze)K04T,aKL/o.BAR`0o1(-eFn
+I-`\(d3hqYLUS8NH%=iI4W83bgRq._*^cZ+mMY,"qAcV2A]\V^Uk2*9%fBQ78O@AlKZ;"M[N)
+i`*g%>pqCX%@">a)\amd`g<3<ilaKLSs^dcSCY&E-ddlOm#Ec%%u-8(?r"^q72a%t.#:H^aKM
+BLZXf)uYX83qJ]V9J0_kUmU&s)na4hV[<;$UO#I6Du5oNMmF/@XU38Z.;I9TE_Bi2?M_mO*(D
+RE-@B9V.N*gd=Hs[>.,[1`JK(=aPOblD^)W5PhT5iF4IBj4C2fP)%l//maM7hc$r2g9[D0Ub0
+nFTKW$hJ>FD)ID'l!K_1?'-&%/+j?ifLZ>^[7W%IUjB#AO\X+ketgraLfBi.@>23V#mu-'j&p
+aEUNkEHt7SCE>n(6di`rW.j9"\M=%T8A7DmK^`?RF_g,.eGf"O<I[Nb6h.^^>;16P>;0^@8JR
+@k1ho@b;0<:/'GnG#c!tR>V?Zd!U3G`jQSN'(">ouK%V5et^P?d-EN%aem5$NqZ:r`L2_u`5a
+g\Bj/Qsln@M+;l8ZlT:i1b>KUl5I7+;DC[9TGg3M*81Re@nuG#Ke1h=5dS?!TqII#rlGD1I0c
+,dL4b>`4'.VH=Z39HtR%K2ArQ6CRGCW#^,bCeL-B7!`Fk+c7E=r0*4ltr)-nG;9_I8q>UBgV*
+\'&V=uJ>no7Xc+YB#*i9OM08.=Q:l&tYBX^rj6Qk(0h(:YC+4,mCn^b0k+4$fJmm=\sC3n8[f
+J3IgPrEb]bOdK%J9Ot\J31(>pNI\VDP*Vm0/*`I6[%p?aJSg?Z:)e3.\APgF_=\\ebX`/YB4(
+Il7LSHYT`p(H.A8oJjh8o;@[eWAQ1h>g?ATM`SP:7SM)CSICp$+V&W3hPQq"bFE2$dBhC6.M0
+m'<iHd.@k6H#La*=9?6HsUL1W*'_pT@1-PrT.XCr!;jjo)*g`p&slne;37&9.!0-e]I'&f$'F
+Qho<qee%"[7Tcui#Y[,'a:f!]$BG&E4lD)o.GBbB[``o=Xl)g$<3+Jr9@#DSfZX\>F],BVdD.
+:u'7"WESd[sCj+rG%lf:fN:aE)U$(J??4U`XZ,-+TR,pIOf`#N1ir6K-2O&fE)C7kUKJ9^@f/
+U#BVkjdg=Ti`2P;s5[qd)G4`r&cB>QbimeM_sRQ(>G=d6pAS<cf^<FKC!2C7gX"6a7JsbCc6;
+EV$Ji5H9Z/+)aTQJMF>eKdRa<MW2;#pKj.9:&.^<;@&j+s)On.5OEZ0Ij3OfGi8"&gu%M",_7
+kVsZ4;;9P.^bs;%Wu%aHOIZP@bm.,,2FjqCn$@E[n&fC2Q`:*nNAa^04#\*@4:I<Mh41hoLl]
+YOEN,O8QO;;6[?478/"?l*$Y6X1T3u!Is1Nr*+uS!R3>>]=B5/*'CDkr4Ii[!LT"X[WI#QgUL
+&eZj:RJQEMH[e99Rqd_F8TE].:*#_KHV.kZ+QNs!hX[W6JDk>$:g0hG[_+*c:Y?JQU@[6^O+m
+$<\tLD4Yh[ACfGq`o<Y3WRfB7"bEoJctop<X[[?$kNZMV>t:5CKAgu3JNMM3N9asAK9kG0i=*
+O^MqEaR'-hhaW.Ad^^,qFuB5$>(j6[U^]=)*i[aQT;0n)#`HY1Ti:$d]d;;N$7/\EC.R,L=A[
+.pJ9;,hmm`?20c"EjF@h(o];JCO\<BnJq+7+c)j5T\qQm8i4hEM=ZZ)r!oH)^e0<B;:2NT;7C
+d]An:Lor-NAY2Ub;39>'Q&7*4G5?I-P3cCr'K;,+Sk.!3Kj_%qK;Q#_o-p'm-20+%(gNU<u4T
+QmPb,'%0^>o7A(0ZpnSWM@pm-V>tGJ@\&eG388H03Wq"#akl1M^srmVH$OV]i)1f!/l4:UZZ1
+'r`/B\48]?gZdM^)]:j55b.:c/DW3G*TG^G(1C[un$4[7/f'pn)7nIh@eMWeS&Q!d)^61PXbp
+J<9Au/1,AL@cJJ<6i4A>"4K^tI$C:e$JSg5<j#!?<QLt5g9Q);Ss4#<4DWF<]</oLO$qI1(s%
+!A'7?TrD1&$d,nTf<jNFEWpPKU!Z]=(N@*c_:W(_iUW[M3-JekUQm.8[*V7chfPZa1&Os$-OV
+'QT31J7odk`<J`6WWFaMDj@N^U!+q`a$@Ana/MZ]BKSD*B:+L;JDgm[=5uUtbhY^(b?f=o&c"
+4J]'@lue&ZXC9Pr=3ES3V,/eH%UOp\QRiZVS7q!IZlk3Hjm>UEWD.Gd6hQ%2#SlFa*@Jc^6'L
+:M2aT8#;`p.D9Pf][0,)(EidQSgSaUfh`K#F/uIH?m>(hIPNA"pU&F$<P8gfV4pY92qI(Lr.k
+\NAr#q`,b:='YF]7M*Z:hL^nj+U[SJD-D=Aaa<Lsk,n/7rD&Cnr:(2WJFL36>p?d%':LMC8\=
+EtLf]!EP5k@,jdU[?naL>JRCH5Bq8LdUrCCsX+F'5CH@Fp=9ecVE*ZCa]`P>/e?gZ>5&DhW-G
+)qr$CQdABrr!E%5OamG<n?Ln1>R$D4SoTmm'H[dZuc"/'A0N,;k!*?&.k9PYob!RedM8QjO-8
+"O7!N)XD@>7Jp!jo*i?'dl^3I-RHKJ[dUKs!iMlD`2CSTmieG&I=K<FT]/XkXpf#]nL[G<>EG
+'KAHAE5p:U\5e<XWLRs*i[8j\@feR(PnFId:PGmAl?)O]9m%i0k9U1bi9.p\,YLC4E[cC76Wi
+2tUglZYYbd7^7qSk=SH5P,.huWIOWVfu#a]Qk:P(Fq)[h([lcKN$<raV].bPc4Dp`0%\08ng,
+DonYhO/Z)#@MkZCJ0=0PD\90EGO9J7um1i'&tn<C=Ap*<>R2iqVhA70(+!m.TZ:"<gDBV->Va
+\`7`1e$^q(5A;t\mAQ?ph/Ws_PeMA_C[E>>$!s6pA+9C*-/cNOD7.,@LK"ofPT#t$--Qtq5K0
+cu6[0\G]]g_o`!$,A)di&]f&8g\kR'4>68DT$De2\#!@8toi"JH=27'=TcNW\p6C)r$S8p>B&
+Q*BP"A^Of3f3N#0^Wlto)r`K<j)Wed]\Nig*$#[fjFEg9(@`c=V:*)KCb"goY*DXgmUrlS_ce
+cUc</)iasi]WFT8P,FI[\UUjicF3ju$!B"o*e8f0j_-_XM/!1"1p"X:>+W==Xj.E6-We'VZs%
+bKXJ.tE6=4e+3u@LYY1"6U8;Gk1hW>_s*P\76>M"ueU9E<G%,SZW.8k0=mrOnlg<qGa!8+9(?
+5Zb6q2Gj,!,Zh#P'UkpcKS/L'q0n;Zr?EKFD5!iO:R]!0#J(6287o(%T^b+r/9Qd[\Bn#-G'n
+.b2)Iq<X3YWXb?3EK$""d%jq@_6[Ia]^>M!/-$!Ri#U\sTQ2#nuG:&dkuBI+`^4$;4KcYpXoQ
+QdOmh'7rWH7VK.j=dr2pM!lU1`eADPK4@EM=\W6p`'9Yh\n9sj(U5gO$C@XFafA\3AnBaoEf$
+2hcfAF.(V00Nd1a=5Hd+#4ln=&+[DA@FB!\YMNT8S'[8HZ<fZktOliU@W>RG^\^BTe&>lAECY
+.Aqm_$H7F:lIr[-j3`K'i85S>.?C&o@1_g!@"gH(;g4pqTD&Wr$5;Y]D9),Y*!od_j3<@PU"I
+QN/@W@LTW'aVbJ:1nF*C!'ftTG$l;cdb/HWJ0EnGfa.4@uO=k\3r@=\Wj\-N*Y\r2RX7`VAe(
+%I/>*Y1iZ(%"JV+\1^UHQR09UA,#5##JFLVZd7-0,J\6O_MR&jm2Y-<<`$P"&Eh-FEGp'#<#M
+?1p#mD'g_O0r,4h`jFeu2a//*qo>'kQ&RjPWKnC\$egbMU*iR>XqTf!$FMgV&.>C_-4L!mXQ@
+M^lsHk^:<3\T86tr4,dm,U9^Y4-a6h)R@`HW"?CqF#3_W#Qo?c-?C-Sesj-X%Te,(f/M+.`e"
+(2pp?q=X0#MgIZ<RAXZgKr"$Y=!L<k>KUJU6RL^``+*q*+_=GA'u!4T)OZU4V.Du`kb5N^iZg
+>Cm)4Fiel.X@*p:9b&a-#fe;I`D=dT[YXp;#pFh_PE^uU6E_jAe19+Pn+&ie([C0ttkr=SdU"
+#Hi8Br7bM4I$c(8HP:R\CtT<-Q%X0J#nO8#Eq"aML_5FMo1\LK%PQB6?[f2f9rW2n'c*%;3,1
+8TJI-Bc+chMpK7jfLd?36CZOAiWFNt^@s<VD[9_Vd-DC8C&Am9rg]e?0]Ii[I0\"@AoP-YaR+
+8`j-<f"/Rcs(/j^Fq1#a8f-hV5Z6$hrb@_)DVDs!uAUX;:**VXo#d1Q.0a6sZ4T_e3Rh;.b7o
+?1iD3Hh2PRh%D'<X6Li[F\qgV+d=q/%/nuSD$;W+sDkHqu_&ujIRXq%F%3DL_/Y@CX7I?nnNC
+8$otf'8DW8CPJN&-e4!mX2tDmgr?J-Ii\2"kg&=YWksZmuX!P[A`iT[T9<:1tEQ`o/(/(VUrK
+MK]BZZFrB7u7\RSG1\f8@V`Aa(R^`Iup.)E%5YH\AUJ9)!f=LqeUuouTqIX`jFdWHR]sWH9\8
+2>(\n!/D4DFUV%#SNp`pD%qJGS6_(U3-)$VMNnT)`tuW\Q0?/`D2cCon237)B5,t/FPZb8P6Z
+`5lua.#Z_=XdPhC?/b^L#>#\%f=;V<lMdS+qs?EpRQEjkG4.jUhhR"E9m4.M&jkhL0LQ<ABLO
+qRe-0_Au)I;B+O!3#&J9BAcndCQD_2su\rrA[3q2hEcPA=>F'0_-dBis(uR)bf[%41mXUZ9'*
+(:r(L64l%!#@b6YZFr[&0SM^JaNRmEs#;SHVhe7!E^/Ro2+PJYS-cdNm^7]bF[e[ZJ(pSjH1$
+;@=jaVu[kIDr\JO=c5fQBd"#F?L:f:Q8Q[?uat=?\Cf%=QL'cs1M$"a2+D.$@7ElF;IF(2<2+
+N(AJ6b9I2:37Gg_o&6,'+7=Z$>NUUl=aAH2UI]T'eEc\27cmD#7W:a7+2aj-R;>^O6Y0'$C%!
+?5c'kIsSue!uK$(dPWjO"h1`Z3E`3de&bnJ%P.5HC>]g:g&S>c+`k/E!H#F'EF8[hQ]0Wi.IR
+6<:L#h`TAhE'2W<6.XSl@6e#k!@$IKTt,`803ZS*-DFf\+OW,MhSNbn'nBWGBt3L9Z]<f4h-0
+7>3k^dg=P4Jq(stT4UlD2&hbuWLTfK!B-_Cn;$,+@3GZp$`//6o`mE,?k,\boFQpL;;E-J@06
+@D(au1I69AAFZ!LA,t$Z+06=42>UGe'>*?-1d:,>)d.d.#,uCD+aug_[2Q5`LZRW47o@!s8Lm
+(<upT0T%-)XAcWGJtXK/!^KK>p=n!ZG<VA$9T6&?]bEnsq66.GiBN6=N0#=IU*GTN0HNtA^lc
+4hOO",.MKgJk[>7"C&6L$>&0I\BE:bHdE9Q%a*FC@HIK)@B0e'Rni/eGK0#FI*CH9WujT\ge`
+#rkMNDs>1F!0EuJ1qm(MGe8(f=[T_SA%Mp&7)bF=i3Bic^-RPe9+k'":f.='inZa6&mG"%C;5
+SEUtRnnu*;5I`5j21k.L&G!*WS*j%V-/&qW!d6p-,8@[="@12&p3Ao2$9%YV1<#l[oT"knG':
+[Yk\GeP<dE!(BOqDqsW0\$^HW"Npoo,3_f^9M5Kq@%JZB=p;TPpn')&(3FaP$5=#G6^El%nsU
+\fm2T"FXdDFdiB]7D;A`XTh<ejoL!*_ScHL%(g;3)9g6Gb&C!)h]D*GK`]MA0k<-[2=#?_,ml
+'L<EBg^p9bm8os6M65*:UDhtT:LK>jqF)'l"eoX*T%;_D3)D*33E8$b#_cd9D+BR[b-;333b;A
+%'n4U(jE"BpBOJlS9d\Q&J9Piq+[=)6dC!t>)_T/j0-!$W(^.fMq8pMHL[L6j%?<KGj_n1tb#
+AfK_cCqVK6Fjf`^dRr^B].*;F5l94Q1kt_ED?ioV$m\oc$6uG[j4-1B7,K8\)dR_7[Rq`_@7.
+uLb6K2=-lPHh9L(12aPF!$2n(]K3+c8d4UoIrD(,>!W&&n8S;"2H%p,in5$GcUD%tN!1k%EKm
+#3nD`*^9o?g>#uR7^]eT4P+SKYV'7S(2'reo3+Mg]ROFLsRJ+bnG7Ao0F5'6lokHS)gd6WfhD
+N,,B,jOY_OR!LIMm[d)t`knQJ_d`]>.+=\#'#[k-S!e;%CXHs*R'p7OC@2!++WgJk%!5uCc@_
++TPYa7j9oSMIAEL[YefKa!8F"UJ1jY;/rfp%M]q5Y-oU>EfXiK=j3"sq]*)]Qls'Gti1qtm56
+/7]OdLu>&K)dI]K?.R.Kf=,gp0Bu*HY3'n%K4qp%XcVl:K8@]c-2a0r\DX/dMgk^`]d1dZUh9
+mn<XHEF?PU<Jqf&rp.MY6F6$lZ9(``H<5\-"cQ;>Y%2r'6]CV5OqU?EaD5A7Y=GJ`rB.;seKZ
+SJeKM`^Op0^(cR=?N3_WlZ'\?V[[-mDIt,&K$V,R*_fIfNe.O/PG(iMNKq`KM/`4LlVG86*#H
+e>0!f.IZ<;99/9p4(^ITr`eQFE0HkNhd"+i4n@eE4CkEJ`I1CH6<X7!NKu0i@!5M+HS'i;068
+<9A'HVIKC)oXp))*Ul%`KA3e;X*l,g,mA[-fR4^nl^SW)D#/]n<UmVemucN61D23k#qX33P]1
+o_D.4TueZtmFRojXPu0rMBFrgcD`1RqruTPn*QHNbOS?CfK8gnLOOnLkO%r!lE9B%gB_c;'GI
+T#r)08J\TF%e825ro!"^aWI5C?-c&"h<V1[RqrG!Za]%iO='5l96:s<%7\YZ%';HR^6%<O>g^
+=*0TW&R:a.]-?N.,AhMA-AX4.XZ.p"%s0!Bq)\+=4k[ISN#UmB2m+9'UMK_dHLHKrp!>%_\iF
+T#S'Aj`"&f9WBCO$r;,h&,dko\KD:.E3]M+Bg!:kidflpE>Wl&POF7nb=,[F%-kNXnELH].Q5
+GBbi?MTEnpHY04k.EO5e\>glpPM;]ehE*fJUpc@C]-qV$>01<\3nd0*4]\BUsi2E>$^R+sE2-
+>PW*?k`]].AXu\ZDlMS^I>0W1UPPB`=uA1D&rUV(!"OOoJ#PI-JfG5p^Ic8;C$sZ1Xq$&!kB$
+(h0V&9(UOE30=u6S]0=nMZDg@_GMO<kXd(hfVi<R>AV?XIAL\%QH"V&u3@U+_l-e>?@L&Sk37
+H3!AVZ7-)P4i0E$X*KV>`#t-Y^'iJ>QqWI8?M())bufEd%*scGH3QV4!IkJ$;ol#nbsoq6"Lr
+5V<n(;:%.3h[HC$f;0mWf+%DhTFj.L0p)jr*-'jc)j(e]7ku-J<OnfWAJ+WIG87RnsXp;HN4W
+%T:UoF\]`\#X'D6j>e;UNFnE&$im!k;$J$$:XukD%WqUK`jnC]_Ji163!Ufa%.r4!;/\^mo*3,
+%bp#_O$sVq,%.djZo5T"^f<MJDY-qmFV^[(15:LD<n0%8N.3@43/7de<'%E1^tcH2H>j[*c*l
+I>IhdV<J6n3(a(EfqR8fCj'OK95PIgE8*S-84;SPXYkXEm@u:aalL(I4@bZj4Xn=8"p2oJ6V6
+d9*1hJal.1tGKc_2/aZhML0</0B"$o<q;gWo'KaVD7,L&`!1*d[a!O+;Mf67X\2?61'1Q>VN'
+`A*%OT%=gL%W73;kp<,'NQ5%2@U^^T[+JD17E+uX+roP,:T'g*^ACPKrA8isN@(A6S5@'b%P0
+6APBf7P/U7@Oc8N-nMu?58jdV"WE2-N([VLl1UM:$PArW[B3C:eMgVSC*"lqHO@c%e'i7"8\d
+?KG\&Tqqd,=RIk?R=pW)@YWlkJrW@*4ABmD[K7QS.s8sqif2R$(o)K-6rSJ1=Wq&,j<tbI&Q*
+(]:bRZ;mIm>at6<X<dS11!NaPPk7hSOR;sj^),aCO\MPPX=T)'43:!lt/K,8^R[>A/[O4MrZg
+!9ZXntj$?rgE=NJ-Vco\*emi,d+1h=:#F&$U2Qg?otIqbHXeg%4tj1B':G]f8Aki:5YhMl.9e
+#>F;0g(3;[Bg#\&7IU\EjKS$jR+@5@7S#fa#a7ReIbJs0`4]1-`/8<b`FZ9T.'mtC'TNX8,7`
+ee;=5-eW#N=[+!0N4HZWL\ic9NhI')79Y5@:PaT8>sDjWDqS4mNcnmOFb"%R+6B:HFa"T;r:W
+Lm38pW%WY9q8(T>fN?MO4K-<(DB6]Y=%_O"\('!*nst\Xg?S)VaDc7DJm\LBD%jG=nap?gY+s
+*7]13?5i6]]DfcT/D$27\'&2Y%C4Y"cQ,S`BFDl-a_`(bj!EBS`ds<65?QamPC.-4,*o`ggOA
+=ABm%VcD[-g><&EeS(.,e(]?JM0KR@_b1-MJD^U$u:HdWSh'aZ*'SW7<&EjcGiA@`bfT*?\\/
+SI/4uCirq^VD,Q?Y\qN;1^-B_Jr;+BjIdj,rd2pmBjYT(!-TnoppsR5;V*_jU;:s&eXL9\/2i
+u/WXT/T:PU:Y5T4-2nY/kc0>q%"Tufu@j,H\X[`?&@g[a9`%j7k=BEif:Y!*(H,p5Y;ijpIQ-
+-F&_dB]JBF+@.:\;0k3%Gl(@+5sJrH'3%r,dGN_C];C=c2a`d%CXu4;qfOV[bW)$1G+HsS*5@
+C)oJ9D(N6R=P-MFM"?X2d[^fYMTs9u%RiY%*N>n4W=!,DE2,bn_Wgle0#uhtl6%.ML%7u!<8<
+Gej<8V!:HbZIP[kbnYHPll_7Sa%+)r/QJ5cOj0H/c+'")qu^j?^':Fbd=_f"DDN0o+NNAP2][
+;m[0cU.!P_=F,dmE2d`6PLP952kLZiOt\I#PcnO^TZpR-\ZE<*`@=.8XM@WPe*4Sc2Vf%KV+h
+&[,-am-lTDu;WD+\]^I5K:*pW^(/?U=?p7*LeI=#OO-kD[m@3Y"96TPeR%jWYDrbXtJLD/dRG
+qIKWEi?c>W/to?<K:Jn6A8(bM>^f4"aA"126^X<fWUEop=r@Zi8V)DFPeegl'/0$92!Nji"1E
+A(Rd;5-:RnoX3h;C-;V*.X!1)0C&LEB>M2$Sm,HSWh-ELoXQA6VSY+1j(jmS)U)?3>L:Rer/[
+m7iDXA235eSr6F.(`L<9ib,qiauVlH$%KS-R\Oe#)GtKE,o!1MeE?'Me!slXm]s=LH/?bLf@U
+9^J/!6kJWa<u%`"m<Xtj'$>^'I-hMV->aeLDFBTp)lWpgJt94Jh+,4EK&EADgdbn@4r^dsUpI
+iHclU;Y0O]s#2;0\.:tb8GW^S`0I^7+gMe5`U;)ZDu@qe#qc7o$lN`>jk\I,BSOKa$K1"P33_
+9;c7$#hR53I?8i'ic^[s(J"BgSMlU;eWVM#X2H9;<qn_RVPj[>(;PAfs_-Rc.4\d3-T%ok.^9
+V-?n6r^/D,5o,5DL$-KgS&D.h(p8'HL4tXtiqfTWk62fY3,`h?K-Uh1ENOfIqgXHJP@/8Gh55
+L`Q.,F-R=`IMA2`C&mRq`+G3X&*\V[oW\BtiJCs4\?jmA%$n^>XUQDT;p,$J/aBOnN71Iofto
+oL&5$_Z'Xc.FB0bFjM=B;)mpTJ<k3&KPi"q:j@%-f=1Gd*R;)I`!?P:IZP7D?ml30m'`j%<82
+ra'QdpQphm8B_F:\mCE:-'aB\Kn*DQ4JE=(SsG$qLXQ3OQ2C[8tpT@c=K)d_N;e[Welp8CG[j
+09gU7]P[1VVN%aC:dXM_,agA;NW<u'1J"Cnl>;956*''m9AV090#s#>^?G:dH!:n-1^g8#0>m
+s:mE!djX/EIpfY]_-j[^EH\NM^#A3A/U]I$%Cn4fbZ_)0BK^Ahtf0hH.<a'<3jLOA]M-(%Qn.
+?O&E<YV[Y*bG;b]5*E6oS0C(o9=*X`<FRFtFZVq5tZL0.e`oj.tOj9KK^.#4lR[,d(mT<n>Lo
+1_l,:=Ws?MrU+q1H$mU.r*W_I&onNF.K"kJ>il4`)(Ak>+:F1GDHWggSAJ]1mFcg9-&l:-ARI
+8)9!^lX[-*jT?U1+`Re4"@kmXP9a\6IiTQ]9$9F3=_7Wg6O@DRmNqU/Z`n`=)aD;WrllmJfI(
+7Tdt=EN[V1STkHZ1):<BRA8j$Y/1*L![qV-H0<T.J@I3.JAFfdR7&mL>D,;*`P-i7!a?GIW3O
+:lsH7`VdenI^6FNn"?noQCgo)[RObYT"ZH=r(1.sMQU#:6Q-OYP[e.*_Z%!?6.-KDa>#>Gs75
+rA`9NJS>\_jKFPuM8:0Fu]j.nESA\pIQ^VO*"V#EE#F!"@MB%obm01mXB^SHcO=+tp8mMQ@a)
+:_mDtd;4Q/G7^"(]utN4'T4X4iFErC4@]:O2@t<B_%RKZpD<`S1Z/d@W<?lIU8F,ndLBnHp+8
+>KjX0!He5R/S=**s9S>NL:hnj)a;#3+[RCTM2ZeohW0/(7V(=)tCm!qI[e]>Y)CJ7[%UDqqn5
+]?7NRXtN6+kgJ`K(Xck<=LnLC9)L8HS[1B`]b#0#=]@@ZOE]Vih2P,E5qhh-VTrViNF.1\5#`
+fp]rb"N,4WCLIqZsEr#coDnsN(g%J;e^X@sZl!UG9^uR9_!_"jV<LIs[@$g)k"kH--CtGu<7E
+BG"TCM2]SasRn%2b!n"Q4%fVGJd.:C#GNDD"mYM4an`6Kh"]QCtQHja<n_e`c3G`O(.ariqB#
+YU&-4Dm#c_8n6Qt!K(b6Ctr*KX$<"$Or2KcSZqM-!Nl3R8so8<I4Tj6gd;:g[\@IM/]JrNEk3
+=(k*%d0`L)ncMbGosI8'D.esB&S>=<3K-SZ(kX>c$u*nqpGkHqC,7Et+/r,dk_CTj4Km6,ZVX
+O3R+`fV:)m7q\tMt<%JH,=[IU1J>jD?0C^>6$3[;NXQWPCZ;<6K,&dNYq%J_)KR=XXu[3RF'H
+5pAe8:4]**)W?Z_H&2p)PkMns3-&JB<6Q@<"75s:G;if-W>DCUM@WduJbPK;rM0%^I;fC?crX
+L[a(*r<=WnSE`(A"lW:9uiGK^]hBHeS2^7e/unaUE5ZJ$SZj>(oWar27_27,DB\=#h`X_<\%k
+kCr`+-qg7F"]]l=4p8AtAY+I%]3KCK2k:rDojFcIZ+"[gYVgVmr]%kO9bA(6T)maOrR9qi%n1
+ma<M+-`d)?TE+qpVfQ0lg`gb4O%j2m_J1@'8SiWT9@0OacX4+9ZDEqf?sJfe*+cnWt9=GQ]_h
+26P\QH5M"Tud^nBqg_tfW)K$l%,;qZfu\SmiLIV2>!Rf`6SG=%.LXRU*g:$X*G%PTBK7;2C%t
+6SOQADiD9mRUX/`"KX/cjMd_T;EF\,SNn&=8l,5btB/+%3L`S/fV_5>+k0CkA>*Ce7*09!VkN
+9?X-l_mHL'/jq7%B@A(G6GD^UZrk3KE>oU5TR.\5\(-[pnmbq?L,MLX6@WK]omY1L%^Y<Jp%8
+i#pX+CN_ih]EG^W8//G&4,dR7LO'Z'Ok:;;aYpV[dB)Lj83?$]FKmtV]/+Z+Q7<h_<R,imMoe
+Ak]^:ps;tXWr$.[Dem/C4;FK@qKf:j=t<f>:1Zcr4uOOQc)Ra>GS:I@<Y;I?pJqiol#H?)VS`
+hOUo"jQ\t;G<9909Oma_H]L>a7_j6?$jCN`"]rm1(<NE;[966BO<f--`FiH\?C4sgeqCUhU&`
+RZQ3qohWqfM,Z[`t\rain8qsT^,c7@^M.2N&LA"jd%2G=JS;2ttl8$0&7Gst)-RFq0boT%`l6
+H_OUDn"_XW/:j+0+mNI#-^U5k;aji5=(MP*_el9@8e<MVZJObP?$7It@(?F*u/tB^B]RrR>_'
+Z(>DFO5b!rO/RM!E88Ss>i5u_iI1k(h="-E%f++6>$)9nrTf-BE'9rVFG\CGEM<"X1KehROpG
+QnTNr/P7OJZ0MGU9U4k6VMlOa%fH_EH&Z6Z+oFJ,:FcPuX3q=L>,&#22f4]1r,3X[C]d;PKb$
+=aAp7=%.]i-`#g^"C$.h;-r%ODjsn21B_XpjTK[eU.1Z8+Mr^0:qUm2P9GEbcqS^)D?g>o>>t
+T;O??Hq49o?@08C<b<1=+\I*Ap1)u\^\hM?@JskHJb9aTc%qcB\8V064;s<Se0nEFRYo5m37P
+iPc[#i`>nOYqMZM%1i[_6#T$g9:Y-Un"+!LY@VLpU_UM@I5&85!'4S4<U;JsJ(^rq>c`YEd<b
+Sj'os5B#plrlHJ%T6u2_EN;LJgTU`]O'=0gdhc7K+[7$_GkuI+"aRY*/J@XF+ErU-=;*<CBXX
+'E$^r-.U4S4&n$hk/AEKhU3u>0g1u*o'.U%0Jp*f#sAoDM2GVd/_9>K<"X?p4[CYdd.7HZ*^W
+T+*Y;W()Ek+PC!?OFO^#A\Bh0tH`80:q#MNBdXB;uV"_8c,#BcfKnrT'A-*g=Poice!g<QhNZ
+[.dLQbK,:17ac?V@-[e_7^K&[c`S')44!5n4$3kD=&[E)bVl-gE=IAnHe0h1o/,;UY-+7MWWF
+t.rfjc^Di-6[pjB5V94t8MAo*T9M.fSBgmsg<icZ;nSSRA$?'."Eoh:(@.h'?f/>'pY=gO3p\
+H2@2TO:IKX8Y4rhoQ_K\'*KNj)dRBIa@a..ds$2+Ia/=,*2,6grTZD8Oh\VZr`kcjs,D6koW>
+SunY+:DNiR.=\Y!EIh*'H)4[l:$?p$Et.SRG1BL72(M&D['1">BR.&gnJZ1!pEISAm3N9n0OW
+2SbH=3Gl]3)T=?pm\lF27;=8'IY3PTBpe/:SA6>$+EM2PBp,jP^T^o%N<NK:Q6a`lNt,O./a!
+sdSspHR[XB*DkWl/Y7Y&Y01Kef+8KAN*>$u^r"M1sh^iCkbW@rsE?iBRC5)l.N&a%o78D97*A
+?s"f/#ZPjHXRei0SePPWQSb<KBs0a8;(m9ubP:eL(J0Ln=Op"PjTk,n8u&kO4I@T%iMt#oSl"
+C]$Xsq:[G5V#=K#IA[l7$?7HE%%"S)Z0$D*h^Y7u3Y`Q\Xe58kQ&%$=$R7XTi(fUNDil!+=l4
+lIIe!)%@O`eis645#X?;8U?!(n6%WGp0\QQ.<S/b$VO3hJG(+e&$TV?o99&0ADd$YWNOZU\3'
+87E'H9"D`WD6Ah;IA>,O6XiW%Nn&J^__/3cc<fA]lNkbql*lYl_?On]1$aH/Ed_*RT=+,RoV2
+75R/d2^/,7><];1`Vm1OA*+o:t_4!K9Y&$jbg@=^_$W7l=)2ftL3YqCj8JZ@ql,7bn+j^6&;g
+@_fd+W22;<[>B3)dO"\[nWdlL:4'p&V]"RP04]F`1OVbQFPgT<dn4[:\pcra48o.$),eF1Ota
+`ZTri0BAl'n-Q$DG@-N2hOfhX_-c+!E4R+IMY9">f5l3^Y*KDlrIE^"Vs2JP)oP^X5rP!86GM
+??q=,l,`C9_`/5.qbRdg<+It-+=8q.mfOQV]*Gr16$lc,oEeo4o/#UckN,o[E!?&j)6madYMD
+K+`cW9P!,lP2PjnLs%q;a-kEVr^c&QGqAZ%`^cHoSBe+G48/>hAq)qRP$M_b6+\%(O,k_>JTA
+BTO8SJQb3(ZK2Cq!iT9Bl@MoZrm\37+X)>\BSs%#4*iI'ETig6j@'=,FK_:s"=hMC<VDR&W]&
+;<j1iCXuq5QS?S?<1mj8;ZZc3q$J?Q8s(Vk^6V;/WmS=R@QCPD43j\\2=Io/NLdH,[^>O%/^M
+b1t4[Eh=OWbsN6:FH1bV(lnk\eVAL8oSqDjS[Loe!+!e^b"J/'GH(r+T<=4Yaa:W]]QHdNYis
+oZ?\lGe41)\+>ZBt2lGB+)Lq,`A,^Z2No>BhB?.\>d-UWt189Z]t04baXiN4ZNB's3/K_2Po#
+E:1p042GXs20/rK_XtY57q_W,sTMdOnbS23*k*Q.Z7&A@Ee7p`a8Y4Mrq-;2eMi8BOI8C#!^p
+f4d4Imj/ZVs(7h9&q[tKckM+0VjLYuQrtW81)!,^dP)@m"<?'N\)V^cLggO0C0K\himGo/q([
++XY:5&l7h[(0SWN/Gpg7loBj$h;nF?kO#\Xin-m'DTO>518?cdPOO9T.h^/-jcBNsgFu@HqHK
+\pc/o.biF[XMnXm^dcShQVX3shtm2I!u\X2*V7<b+J/&a&;A_kh2Bki=bHO6e6f\j4;82TdHu
+jY>dCP!dck`=8$u4m;Ca!=VOVa_:8fM'+pUDHkp,PkJNTG5&o!.p*Y*_+7g=:"/G+Q5GVVu]$
+"[s,JBanq&/TTl`q]5k>2jJZ=s;!15&`Tn-\WLg$AXOt_bR$(@_N47?.WXJ,lYpEioJg./jf?
+omE$A%L-"[T*=g\,OWLZ$.;=f>S=LUZknEk`OjRqV$"<mj2uNG!qEh,4XS;REZ?4cCoolquW"
+qJhdlb.(/6%PtLc.Dd/jam"p7kWV:2>uY_j>Dl:Ys)"U'7_,)kdsp9>[T>)?g*qV@"O@O7Gdi
+a./9DSeiT(Bn6[,;]%jLfA@Vj@.Dd(b+]OqhX:AXi_LRi6I!l,^O?'5=Gc#5YS0e4e[i]db2G
+0O2tNBF]75sDg?d[>Vsf/]F^49nV`)end2$Z(02Q3P5hqQQa>_SamDA,!%cKa?_$s?%[DYdl:
+jKO;M_1#e1+`?BmA@'U.1.(/9m6B@nFZ8@r%uV.?#ju-oeE#/Noa'gIMXV3V[GN%qNtLumJKW
+Q^W"]Ci[XS+(2_NTdHFWOc!7[5Pl!$[F@>Vjl,F9`SdUbEF2jtRUZl35n,8hK:.7Y3p]KeaEq
+$PCj-0S.3::7tGNJ:KH<r%bb&AmA8LIPRGPgLR(T2F?ftG'?KQi/dE>,5$(JdH*rV,($\#7[h
+PIqqJ?#n?Ndek6Ef])FZf2(Nn?"3nue+DS1,Wsagf9-dO(p?_dmb4!\Ts&#b]43n:)#WFRj9k
+^UC46k$?(L93*WP$j^7MfR/8LGAM%(@G6t4^o:"s^(V#Q*-RHS2T+1*CL\UX^,K<=cgcupW("
+UZY<foA"shk6bG3j@p7<$a*uj+;XWa$.gj/gX/%]C"=TR/u$CZ9B[n+4!+EI,B"F@YtQ2TS2D
+0UI4GLo-p1_'?oPAS4'@XYCE&##Hf6qiU5#Y0$'$0BPVNV?'lsI!P&5)+m$[8_+P_$e!K-^Sh
+%mqX4A,]e_9Ws:<#I-I0*A$!e<341k#T74KBDRd&k,B+^74.;o"Vb&KFV7ri[(ee(f^NJ?em#
+4'@`qn)L<uI[LH4H&3?ImIUC'JP?,GQ(,Mh2eGm05jgc/X&OsAb_]]GmIbT':(u^Y]\h3Q.`&
+O@[!M=S=95U>W0Aip/>O+O=E&?1jc`jgX-VU)Wsd+f?]$\?P[R2gM@?m&>pkF`ML__XPL)+L5
+iRD&]L^T1m8E\W7)=8LZ[AeFdcdm_9.BBE/hWS^i0_tCDV@&T$hTX-k+=s(o]'?d'f7JA,QS\
+[r)3W6FF*Mq`S`*8M@"7e7nN/Jr)^\W<9XUmW%$$u;FD_k(8&i+h1P]LRg(hCpu$ssI6=,t8e
+4JdK$'^p))Ql>\aEO593+AthIRU0SF@jVhq^teA.5*+Qi2KY-8cYe"j4/o,V6g*Fk9c&bU1B"
+ef5lK6`Ub;(26ba<UBWh25LsG^e;Y1U3V0&BmPd?e\%<l?$]CToPJThVZ]*ho6X6C*`!rWYIQ
+7t<-jiO`]qeQr/!XRL7lu2/5-R.D_W*FE7f^4q.2Fu<\Ak9pBUYmS^4@D%hjO_*`R-MjE9o<.
+$N>,E,^Xe88%cBp6il,_S3!"s!EPb3E1dM]Ga,jK:VbSGs<bVhMcGaE.@t+Asra3?jW\;4_]J
+PVfG68ML$ahaTPLAN+c@m0iCS9p%"KShuRG=U.g!S8[rWP?ptA.oI$E^*TdRuGNpbWl-7-d-)
+YBoV[rk,.;Y9%pqe,srU;@$LmpE#_DFF^55lQ%E-MFM5Ci*=%Lt.@+\SZP"MF@N:#kKq+dEE7
+Ah`Z_B#Oe]$8h:_`1B-qpg?@H2Ec\)24_s06;ctXF:%ka8kj/W,L7;;>sFifVUmb.EDE(3SPR
+(#Vf>8`[>!0nV4&N"2SGWm!2E9f2I])(@eX,QaJ^4L"sbc/V*]T?MUm*jbWr#$W)P:fM($oQ(
+[.]U81C:Y-Tc76]3!H(*RI;t!3P]h?Au?IOIuS_<h3[?.b[!4j5tpt4B.7a>(kqFmk4cXl:72
+WFIRUP&**DNj+HuGI.?`TH-f7^TAE9Er#u,1d(Z7:,7(qur0n`UQ+Lr_M_:\;c-M.*3@F>E[Z
+KIgEE(8(;)^\X;jB[pWWG`#"9S(/arpgp:SC(qm\TSuY7qMJ^<;S`f]^<rb^E*2Q8MOk]P(6O
+[?'F*ngCO^/edE!VWEK1s*TI+h^s:brZ5hlbg%SQm\rAi`D^KR3-fjCF%r)Nf\A^h9K&_p8CS
+oGA515;eF-.*1D3"48#LI[drL,TFEVbNH8PW9A#SVO-FaoAJ^h>^:]ERa>faSUO$i7@K5#:M!
+PPFJI\-*?b92TOiqJdZo0.[bpG"Xd@5@^Y=NGq96WVJqM_\N#0ALSRNT`$`R)9FIK5I/,HRo4
+n8j/d5B^L&c"YU%+W!+Zf&YEo]k.a=Dn")U=4a2;hTrj$WHN(+T''4^0e=VF]:):Qkk>a8bS,
+=!KVp:38:6%^)auGO4NOIo/-`8?SYs($(h<BdfVFXuC?0pLfSa5pHZp@Ze9:JV'Gt0kk*$ZjQ
+j"lWgI!0gF/huR3o.E-$\i32[ZWJ*A>HJN`5<scLk]!-[YmhfZPT#;EW#%0^VlESj7CK#?\rm
+k$I+%4S@]5OdXBW?&O\22!`,<'UjuGZ0o0b+kiESW4/mQ?cMpe4CL[rQJcMaZNLlICHMf-i_4
+6P"PmN@;Ib$Tn*%[S5N2k'c?o:M,%FW*((>u3fs>d37>eL4ih&Qm\R<%+0/<`lW`J9D`(<3qr
+lTYKBfjl"d"i`e)GP:?l<i;g3Ue,L;crpAG)4>)+kPQXA(DWDH7C&mKaWW2VRaWjY4#]t)00A
+_8_T73UM1'e[$3cn\.([tY=LKp@%9]1S$,'28)/0\3Y]GJf[\#$qmV`(24Re)S=i5_$6$t-7:
+;i?#D]"(2Cp#Z+KbNaf,5U*Um+,*bJ*2[CX/Os61Ia;D.F_k>C<B@cW"-P?/gU9i%ReAKB/mk
+jNC%nNZ=5W\BX%eG&QI.%H!HAjpo\``.k>t)T69=,"XDAqY1c?I$%jJ5>r5Y9@:PT0/":e>a=
+-e6.Ia<#]?l[OqEqmP'U84Up;(4B]`&p\h$ZB6Sqc&c/iU,4W+VQj!8GVb^UMG-ql1\&K-C/"
+99[m2/?d:7L5Ol0aFTd39pZh#+(?6(hj)>X>o^+N&5ohe=q4q=>St+8_2Uq(&Qfh*:nr9&1hr
+l^sJPB`T(IGX@?.S;g$'s%DgILrCCKfG1r(j4mOsk^]5#u;7T;jriken4G*sN*6"lJhZ`bi7@
+ka>m6U'$EEGrRjX2cU>O4_bZkB]]L`TQ*Y]0n@'.lO-shO+L"S%-MJ0^hNO4't9F.6nNNPHWK
+"WQcj&TdQcTl_AQ?bVAMR^RSGK!QUq$[o08_EYAi?/[[1QS%gJ*#&?R:>Z9;H*4CrS9;?FPA0
+)r2Wcltp*=ous8/TQ:*oKMSb%>!&6&T_D"W`@nTd7?-5$e.G'Ta;,AAtFsu#"!q@FiH$PMruI
+GrtXZ/`[e4I^EftFfco%P98:Mm^hNNj.8Y`O8ip8gURK0DRre0h[@@'VbS4[PLZ#I0@&W_8p-
+nsYq==p[/lSK`e@duR:'E8&DKetCZ"l:3Go^e=W2n:mlWR=l!_?,/N#u;k89N,A>-thp8=&l>
+60W+8G&.SQbBJ%g9ih%0GEM4C?NcR/ad8<ASTgWKqm6=_\oZ3#h'2&%OJ*R+DSU/D&1?<$1"@
+i.Z2Q#h?t3F!VM00=!W[AkhXkE"60"qqFIJ>lB$'WfrL6h_m92kmpA$f-3Ss<>J#sGtcdCk[9
+AKF66&iXHW5S[]bh9=?-RpK^D=<:QMEQ>`j/NWU+c7@I>8HX^l]hUODGZR3mHTjXkO0uXe%./
+L]rpjj;UR+3;n6X$Cd$Atn\]6/XS7b@]tNGhf!F8A/=p;qRTTIUYhf>N3n2aCSqWc')KFX"Ki
+Oj&*+<nh'@ZsPPpl6i;DV="1JS*SN;tV0f&;"]*r`&&%cAgG/r9+2TZ+6^2/n5l?.Z65i1S8-
+^:E-;D9uL_N7n(IpWC;;%9siTV=f7U[CLXFSH$/^^RI4654X$Q;R4KkgpL#pm%`SeIC8h38pM
+/,gFW?@0T#4I\(@+YKd8jIW$J(Op\C'tcZcSm7R=4W'9beIo9rh5OuKe447%I?bbM.8_XK6j2
+AR?A^eH3U`1PJOc?)W=o(me(:-O0ukDLUjH/I`L_5s0eOWK()CKfFrn;s.*J\cqX\`qp$36T)
+mqeYrE5`'qQfDOr(T7#jk5[JX<;L/_BZeTZ,Ic3Qm;$RWb/SA")[u*=ms5AWR;NfI%HuNuZIs
+CR:A4Y:eZO09?=\W<*oiE;j@:hOe=r->`Gd$D);$qHfg8j@MPiB6\J"ndIl]SD62/9#f<C((.
+<EU#I<>?,lOIo+.cn&T3J[V^ufW;>pX6/*;lXd.Ug=CFh2Odk^r$h5C5m$DKm=TKVZe8%42Rt
+biC(t)FSX'.;B>sI&`bVa*Yb;4S5a05<<aN#WVR=YV=lH*7l.hI13c7Jaan+Qfi1+5FCfLdA;
+RYf>MSC/K^9.KjXg;O^O_;3m<X@&((>Q-m\@#=Up.;.;)c$'Kq_^@$>$4:>pE@:6lnX_e'uJ2
+""+,c*Re*.5^Nr%5=gYJ#+1@kR_#V',1lOk$?l1?b'9$:7A#RGF`^!uIMqk@VcBV%G5+0Iobp
+9X6h*6XK/Ztc@C#(c@M\a[JcW?jN??*9kg8o+GcGmoIY+DTDM0`%*7<5]K^UKj%s%b8UA<Zb&
+Ip_TCMg[Kuhlg_@'oI`aZC3fg4]Y\@P^4Oe:BM;6lg(R,[b)JM]%Lu"Trf'La>Rj7!^#9"el(
+.[U4JoJ'm4iVE$OHr7``"]rcPF>n^.5U,L#s2%hs._8>AQRkD6jc8U(2COHakT2%3lC>$K:JB
+<Q[I[sqgU(&]FW3FHJPa`;QB%dBBrq-$V;roq'WC9#S)p,d302`j*>^l[Gm`uDZUB&@`[^rFT
+lq?(Y>)sW;T/'a4MNfRr_iikUalTL7LXT\@*m`)Kc3+*^s[>Zd.B$l4C:h/l:EmeMt,KCpiWb
+Cq]H]I$MFjakdF&Dg8*[N]8kBZT^pk;o8DSj?D[%C(B(:tt.k3AsOGtj:nq+=VrQNVH=N?\I+
+<fmm6Z)/3#etpYQPJ10qlseeaR#.d7T?VbNTPFGjeWJF+n-X_]h%HPnd;ukNq/Ff,%G&$EJGu
+0tMPsZ:i4eMbX7O(4<L8.Y9/2Z46_c]K+i?ico[m/jLVp#e`0_Te?pd'uEu-.HZ1rId_B>XM$
+S[?mq@Z4t]/3KHenL4"N)/tC.m/]e(KaHVGRQQ+ZQ7JKDZU`)!L'Ac_9ELnfQ7"PD#n"qVH9n
+`>uu,PL;pZCk7ji,$.hlh)akG?A'2h,UWi_=_c#gXccqh<\)X%FFW\6K\sH,iAkn\b8UFKrlb
+<$_T?&+RjEbrYjT+m3IJ$N]8!qp?ED]Zl5%5=f:cB.:S)dA7>PkgNho;cc,f'VYKuP0P0g/E+
+dlptu"V%te>f?$:#"q]nY:m9.d9Z@]Y+%8S]l`ENfomW:Eu>6>B%<s44S]!AZ<!1BJ9/5.=7@
+[o_,9a%]iJcWJuQII'2e!f-r";Zs4W;Qe\+o,IWteEbkd#hb]>*Y0,q-"2fW%<_]2&^^upoa_
+>(<Y\N9q3[%l'^W_'#Qoh9?9.[@XoRBf"%B(3,MXm;AM.WOiCFXidS3tj/RbGpOXl(4RuAZ9d
+'2HqEA[6%<&Xj1;C/$1[0VdKtkZ+3Ad=PrSC&<.%EZGr%)aTQpjV01%9X*%?`$Qd4iHoGrU%L
+*9>oK':LBV)0U/.$XNobHh/]I-n&@Baqeg9^8);PuaOFc?YEcJ.&k,rhQ+f73tG"$:$D,7;YZ
+?Ctjtg*GFGdLe0@b_`Hh+C"j:(b@T@$iXlf=],LX`YXhUCQ;0A*dpZUN:@c!/S(->F!AZ?G9'
+HWrffRXNB6MW5B3aVa1Ed%B"#LH:>[LlWJ'i1b^:=(Ylc)I$:aai'W)M<;iS9"1%;%[@meObq
+Xg?C]l3L5;otA'6=n_*aCaH;-(3:1R)?Leg0KsrR\qRJ5^52_9_?6+@M[u7p\.jI"#>7+`Q)4
+U?PZ&2MWijs(^W9G7Ed9VrWjgBYs]82g+*#nUpD[G&l>;@H;X\@3HAEV[T"(e.:^X4`lV>$)>
+ku(ON"R,)I#ncfP70SB$F%)JZ-n&@&[9U:-HCd@h'tX\o-jV5K29`;F4SZCAr5PdY1,T82`o0
+eMi%=Pe20Rju=Ok-8&5KXAm7V-`5><?7!o5:UmEnNb0"ACA4f6DI<&KceF7%=t-VL!]S'>5^\
+-[ZuB]6_dOn`$.r-]Nn@L$H=rN[@*:>]K0<o3"CFc7Rc@Dq`$l29<4qVI\3,Yl&_BUnr/8Tfb
+8UiC$UuMe1mq*j\7A3+#m60=Y%/cSKXMiFRnD]_Q$c?OeAJgd&bB/#1<(Fma!i3/L$Us9*OP=
+G1XhV)$5$GGn2$X?[$3CN;8O#NPrO'g8nYG*JG.mNfjk_!;P]c-_lg$5l*Ss^33V_^<5Y[J79
+%6I)5`\Xkt%(o:P>G'"gp)Sj8]1/1MrO'Mq\K2UN3siMWKYTBCQS?aN%Iuer7WcGeSELH-qkO
+,\Y>fYlicF9\L>]i:W3&UD*r/!EVkQ.N?NpbIA`1=CWS_[$l8?Hpp[OiWR/'RG"!_V&]$3+b)
+Mj3?YM`8nmCKpgdnE5^G>aH\l=2Z\C9tp[7k7[/()bmN&b[FE1E!aCP*KIueuE()0X`cjaH!8
+<,[hjoWVZ+@N(=:)i!%Jj)QWXLWn%a(8.\"f[0s`MLWje;76s>Ydp@*M8<E!:'?R\H'@:A<@S
+Q+fRcI's&EU=6VE`K[knAO/sSok!!UpXiLc-92gBoAGKNC6<k!3bf.BeU$a(`BEW,!dBG3f\C
+WQp'IAtfO$W'5DU;$"X=5ik!<"k$H3hm24a(kK=jil:=%6Me]oC3k6Wt>bj*A[57>I9SRX#.S
+m+q=4e=QqX)"u/eT"%f`%*90W@5.hD"do['N;."\RGYsCD5'WfhZD37(PJ0k8"@@S$k<&d#2^
+K*MhZ[QhBrrUGd4j?UtlijiI5_mBLisJZ7=8`7cq>jJ<76-G/<&s#7t3l].hEES"^^8'GH:BK
+4g)ilGKsB$?/iKjs%LpoDdU$Yu`3T(eK#<iFb1=]V9e@(MED&&o+6Nc_Je!in;*XUL<Ni4S@m
+O^R`NocK)_Q=3*\(`=Ngrb"L%D]E4a2E[jJd`C\CqU/LoKaU!Ra#kP5Va%7/X2&IOp!,E`4'(
+_(QJghpL@?ZkFNhSb7b\p*BX<_%TU14_%0$!e:,5Vm%aiFf^JnFelOm`H`s88OrC7871,;+9&
+[e&XKAc9&F,qEW\_R6hN%55N/@&$SS001f'Knc#e=TQEr.r5*E^\H8)*=b5'1!VfeQj=ZKnc`
+Pk=[VFG$B7QmPg"5c,,uNmWBUT]T\VB#kG]kOqrF[f7qoniAYpp%h-"(5E$JG9#Sm7M>/WN<+
+nD*<J*oF','0M[3@?U;i3GmIeMk=#:Wd=Zd%VDfCJs"i52(>22`o',!-N'eb>kA2/;9Ia_JHo
+5f+r)`89K(+m#(qLoKf/mIK,KQPaICsY(K;?AE-_p6l,3$<0YXNaa&pP8LT)qd=6HF*]eKEaA
+:.%N2O[[l*5oK\c"4Yl(]Pr4MRD;AF^'<-KL'&>"h*`7ei-+"R!OaOHH>e&K+ND=Q2d>,JBfR
+9!P;b^sn6Sf@:Bu2V\J$&l$@93V/*ps8!gaRt(.5F/QoKV>o!+Sc=Ti2Gl*i)Vq=(Vj(N:NEh
+M0OX<6kVU84.N,.GN0$#@hd3bYeZ/%es88r[L\^.\_jjE>fX<BMK088'!^NaQP!Mh=<Y"+X8T
+Yo/J/2T+jNjC"nZY#81_+4>YM-l'A$<:P"_TjoXe"-Pd]#L*b_&WO'1Zp[4W66Pm4t6$j62DV
+CRh!jePt2LeSG>80k<JA%*,f^t;Sb\i&`-sfo1.59P7Gk%X@^?5-U/t]5Y4KQlL\AX=e@K3+r
+6GqPU($8Qqa;h?`&U'2jQX-\p5r'WhG*/C)Aa/J9r4qXE6ecIju>"3Y#*lTi,jH+u_bW,f<m6
+7<Y4^0@8)oQk^*=\qh4VR,Jp.5S;%SKapl'*43"r$I\ebs#Uu`K%\M*IHS%#<ut-C:j8!#]Wp
+GN],TQnmN&qDP6@B9SE;G1.(/5C1^bcR%cce,J@&*%/TJOu-]o]e08YDLO/aZ$d\J-%*JpIJn
+I]qa_Mq:=Dkod,&6_u2C$R)/Mj-5bG)g:/9(rpsASFI9"QQ)BpbW.FM`?4[-RjZ.V4'=UmA(N
+_Z76G(M'3GpS:%?B>Y&ND1`0=1mg2N$L^MS!DLk1k=4/k3R`.8UE4kdSLUI-2@WL]k#L=9J5E
+\f;K?E`oZ<[6#8LiOM*OP`iIPpls^iWH_)>1dHPZe-:0232>(kK/V)O?O'EJ5J_oSBj[#t7,:
+?3D()9_h"!T<aFb3#,LA(WCs$@72GME$fmYl-lU^.W&^jj9_E:,[sOU6jmDD+d"H4D2(McAh"
+j.@#%F')Cr$-.1MtE51*2:<Rn"%5`8$JU-`:W-LeR+&fNQNj#nU:bT@>D$d^:.0X9`,;N7_:E
+j`">49q.sJa!$3hhRfbR5ccJg%CI/-()%'M#OS6&h0YU8QGeHZi4f3V3:Ti7^*3t"sl'>V*5Y
+MUr]"L'T*<g/9-]U0_)YK,%'>7m*a*R;tsqbM5Nq?fuh95_:E-bd@Hst+d\0n#'Bf-.A#s#Ho
+djq%[i="0(Eoo:>0/AWAYt/i&P+YMlqhLn-RS?PQ.eJ7.R9(!j+5#jq4OKrcg:JT_#3eiRnYS
+ns#XZ1fY1HWJM-KPU&;aU-BQUi_q?'-LO=(,Z6>F$W;%77S=sjQ!QkZSqaq7NN=s?;CTR`/r`
+XK0i"[q)gil]T*f$:674!%qi!o&;1o^&in$bH4];N!KClM)*eMmQm_slb6^??h"_iPE+\pL\h
+!-YM?):>&5oKIs'reRc/PaGB%38G9$d!rl9<RYkd(V`D-q\Ia'q$@E"Y[8_5GH;+;PB,<=9]J
+KAN18t]V+@3?:n)FkfSe"]HaDDTg6"&j\i.T#Dl&sUdVcG+6Pkk0sf8N@FctJRd/GZ)OZAn'i
+`/,d_1T1R<(7MpTKr+5Y1?\pE9-pMCB^N\,`qUjHn+V*,4>O;GeRt?(BTeP@_^Q@ArYh-V;IC
+cUFYF<+G?pFF"*7-(W<g;0":-)1?cT:d>YkWQ6[J4tEI7@IhSYV+FHFa%$2rLl/#eE<E8'\4?
+I2/osQMWg*LI)5\:`*@]^0\1h[#<*d>[d2"a/ndCO[LE44lF9rQP1iikOdW_XUDR1S@otV]`]
+=0q<4V^Ya:?Y_2GZ]h5kq\LHc;0TT7V7:J>mA&7pe4jb2=MXM8)V2;<LV)HTZ8_Z#BS,eq=T,
+EBlg(Jq*SXj/npf9BS=@"e0P$l'U5=i+F6Z%7($!S'4NGdon`FDoPrr$Ohd;=+7hhYBh5q%;<
+*M3Zs,TRB%Vk0R2#5`Ugh,,fe+*Lnq#<g;UeAbMPj+LI@rAT%f=i['2L5rjXEt>PV,TMW&,ko
+)@@_P4p2ba\YE'3>*'*bjji8194ps+7.]A'@8ojQ:=F(D`Lj<#h8,MOE)tA>,bTu6faq^44VK
+7l5#b&C<>\HjEI;N?]dWbfZ_#65.B-cjq]KMYmF28$8N#P<PP\1LB:ATOL;`i*'_@UF$nJ5M,
+*aC7g793oRIk9\4!Dob;iTjo@R=$mLTj@&l^MZVHFH`<miF>W^Dgn((NOEV)C/5]-!qmpk@^s
+GJk2RDk&\VA^0ah%TNS3Z.81]>rJ=,Oba)+52;O%fDJdQK:rV+L;^%,gV#Z?YK/!aV60.''%[
+9F8'M*XV'e:Jn3%CbkB(C]!)rj[e&7pr<ibs&L=,uGH<5,a*SHhZ259C<a%5iM`adUDZ7.*rd
+QG278_SKW/+4AL0+^Hlp^PeW=qgE"C"4WrS3`?9FV_7R%3`XS-@J]ti/'\"CS7J"tN(m<l,03
+B3NBb0eQC-45i8(V685j<dkB%o-aChf!]/#+s#u!cPQBP[E!1.U9=.3!d\j_OAP,rb-dd^!h8
+sX.,4PIZjs513RGN^:CEp)H4Z;Ke(2CV(*$b6X;qXQ&$*1(VV's;bMDNh;YGacC*MWpB5`8*F
+I]t5X7<L?,oCi`21Oo3<0-l$bck?S:Vf.kFCkqC3"S(/K^hHETg_'u6,#>j[8Hsl%>.N0^C-A
+c<LO\5/1RV`s_imV^#A)&W`U[grX8sLThHI:)V_SJtfW!eA#AW!JY);?3fMB2.aN)rH>7?1a;
+\L_?mYo^GEUbrA=HcEarao]^:VF/-4<Sj`!T]U^%nd=8++oV<QU`PQtn8]o@W1o4pF(Z*K/X,
+s)45HP5:BMZDr5oebB/sg"5g$TjAfmmE6PH(PMJ?<^9T,9tB,/FDW[diYAJ.Ot[8BW&9VlmSD
+)s-u=RoK+hkGRS2Dg'9HmAoqHqeY5dd5q`KXSfO9LNlj_F%tr6(@ToL8^nY*agg1>kD>nHela
+Z^/HW+j]\2T.Ut`gq8c/*Sg2Z2+I,=LQjX5LPWele`4-):e+'iE'sd#PV_j16fk.*S><Wf4Z*
+bll.7gY`8d@<,KfT,?Q!S1(!(Tp>EJ!.g'GFrq3u#gSV9X;-^_7qg!;,WBN[W$sWV3/[-\dQ?
+3)*%U!uA9"8sG7QZlFTC'f7_e\]9l:9.cBgE71]gL:f%9S+oINEgLgs5hL)dBn=`t91V93%;D
+f\IWVobMc^*35iq,_J%k*9cb(0b7PZn#g.XWO'"/CWkS.q\hk"n!7P6&P!RN%B\nS"?a]=&D*
+_&CeXq/'mAPedheX.S=JtE#,`R7)F&ZmB?1elDS9gOgB&!7QZob>-&G`$;=dp#;pUYNW.F1'6
+9<_]EBo7l?.oZVTD.VRf];8KW"<E'P4fBK+p,LU^*Qg:5^1n^O]=i!ZGR1,a=P#JYZ41'C`S3
+@O7hW^jD6l(WU%X\d:h#]1hUsd#186I6IT'5$07be*#@SJKjJ-RXE,F<c<`'.o'n.]Q)d6p(=
+QCI0^W,/:T;,q5U;+4$GOQ&J"96We#ia\icG8=S!H^_!jJT9,:*p>B_:K-1>>c;HU-OH\:^]D
+uR]aiK:%mkS<0;ZWU77p=!:+ie&R>EP+2VZ@iHB]f'h%a_:p)AqJPGjjY+JqV%ZNI@@<g?`WI
+%0p$[TUg3ohl_%o#?`ZD8r2<RN/<%dMQp-D_E(lV+qcS;+e6,A96V/aj`.[gS;P_cAA`0*@>;
+&@ld,HE,K@'C$&"V(ZKMT88`gcW]<,[W0hreSV.#U4ZUr(!U6/aDEY,dV$d(A;bK0E_[PgiJe
+g<P*Jg-.X[OSCXA-ocMC3.EV>O__jilc?@eqFMPd;E#gjh7eUmSAh,$Xr,G="`phF.B6P2P,S
+69.)$a-^gah\qd&3\AHG:!EW/Z:'1o9>5h,<>j3:b[2hL21MrqiOuDSYk+ejd,q2fMN:)f,5#
+SZl)=aJAUMKW$14t,*2^Bg`ut>nZ7.Y_c963rOYiPiip6,X/67k$>>@6Zd)K1Z4.;Ud0&'Hl:
+.m7=le?b6Si#m@f1@?]Paou`2&2?N_i2_5,;F+2HQ7qr&f@>DSP[S!f)(Mm2j2>FBfQZ#eG8>
+ck>O0mTV'aMH`@aS";=3.B9tbu9:dq<*pj0*>4MTkop_`u-!ZqkL4):&UpK%XhEs38pVh=Q*B
+(WVIK&WsgOK.4ZJE64hdZK'l?:odft@"(?anS1Tt$=UKQLeRs17?\o%$!Sh,_!l4%/OI]$=W/
+\,U<UI9pL"]t<,CIe/*,RQ.l9Gje#RoCu>3lTG\kYBP?&mToeOD=lr_efap#icdH6h#^LKd0c
+ZLoX"9!WF=0>h1O4hFc^q;43rPdf396_O1fZQ3)G+lcs/]gY!D88#&19MEk"@)[_tG(rd)1+Y
+4Th#QMgFg8:/$'%en$"mUMpZh,cmgkBW]738>Tuqg:'Hj?5]sHb[Zq%FeHMQP^"Ts"Emf:gYC
+5+E`2uTgV%:0*S::gugosk0`"td+'4:oq-"_I4"f?q!HAumc1^jo_&S^=2ne<o@Ii%H[+PRq>
+8a_AGu,OD0>_WoCgf'Fo/c;lf?pSrpC_D^].m$hS.5,-V2!AlLhm^GMdZBr@b5GA[^fdRtL>`
+8A"V]^\c%*mseInK[e<H$L)IKnJ0L0pTjeOO?V]khTF:l^C]"#]Y+!njTk4-gYo9,^jYV-%+:
+DVIcQY.T03k9oq+D?e]";mguGO'o@BN%S\Y2P6V(o@rPj'MefaWdYP#_)?Jb/Q;K$iU*IQ/c[
+63e:9IjIT61cm&]p5e'>in6WdQ?_l^O[h^9(sM-i`[G6jQ2.i83MaQngg<@8m1JAHM>2L32H9
+ZnHG_Lm.k7ThANO\;6/Omc/.9+H2piKf_Qk!L%L:[n(kb?'kAD?FR:%5T<CN6Z-Z]FpC"_-c\
+Af:W2/!+@X+q$pWbpM!U8lL4p^BS]a#Zc$B>@/r@pjp&R's3AXBk1i4f=k&M!AiHM4-tGMUPe
+n[+25K94qR%dE7[eq`EC8CpZ5!2RfUrEDNZ0m+SVDVkPXY2@=P6i%P1FQLIDO=nC3s)LXfa1m
+.(k5F`YWHb!.Ur;`9qk_5<IWroV=%?hAoET[+\(=:Agqu9+];OD1:TKR0Q0H=BGtfr?A:*=5]
+Tl9b^3f>1T7(Lge4KSM%as*Y4*qJf;9unIVlnjfI3tc)n\s742b<&jF3h>/>E__RDXm?EUq_%
+XO'hdJQBHI\d(aEqGq]0Xhom3kl'Yl6-4aprO?VudYE8atQh:^M[t4/TTdlW3o2fM)J*l^=nb
+2ieQ;]H/^&>"2l?.I0T!SA[dd^T>~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 338 287
+%%EOF
+
+%%EndDocument
+ @endspecial 396 2741 a
+ currentpoint currentpoint translate 1 0.5 div 1 0.5 div scale neg
+exch neg exch translate
+ 396 2741 a -2 3473 a Fo(2.2.)47
+b(The)h(Gimp-Print)g(Graphical)f(User)h(Interface)396
+3689 y Fm(No)n(w)24 b(that)h(the)f(GIMP)h(is)g(displaying)e(your)h
+(picture,)h(put)f(your)g(mouse)g(o)o(v)o(er)g(the)h(picture)g(and)396
+3818 y(click)g(the)f(right)h(mouse)f(b)n(utton.)f(A)i(menu)f(will)g
+(appear)-5 b(.)25 b(Choose)g(the)f Fg(File)p Ff(\000)-15
+b(!)p Fg(Pr)q(int)26 b Fm(menu)396 3948 y(option.)e(This)g(will)g
+(cause)h(the)g(Gimp-Print)e(GUI)i(windo)n(w)f(to)g(appear)h(\(see)p
+0 TeXcolorgray 26 w(Figure)g(2-3)p Black(\).)396 4077
+y(Mo)o(v)o(e)f(the)g(mouse)g(cursor)h(o)o(v)o(er)f(the)h(v)n(arious)e
+(parts)i(of)g(the)g(Gimp-Print)e(GUI)i(windo)n(w)-6 b(,)23
+b(and)396 4207 y(notice)i(that)f(if)h(you)f(lea)n(v)o(e)h(your)f(mouse)
+g(in)h(one)f(place)i(for)f(a)g(short)f(time)g(without)f(clicking)396
+4336 y(an)o(y)i(b)n(uttons,)e(a)i(small)f(box)g(appears.)h(This)f(box)g
+(contains)g(helpful)h(te)o(xt.)e(These)i(small)f(box)o(es)396
+4466 y(are)i(called)f("tooltips")d(and)j(are)g(intended)f(to)h(remind)f
+(you)g(about)g(the)h(function)f(of)h(each)g(part)396
+4595 y(of)g(the)g(graphical)f(interf)o(ace.)396 4774
+y(The)h(ne)o(xt)f(se)n(v)o(eral)g(sections)g(will)g(continuously)f
+(refer)j(to)p 0 TeXcolorgray 24 w(Figure)f(2-3)p Black
+25 w(and)p 0 TeXcolorgray 24 w(Figure)g(2-4)p Black(.)g(The)396
+4904 y(dif)n(ference)f(between)g(the)f(tw)o(o)g(\002gures)h(can)f(be)h
+(seen)g(in)f(the)g(top)g(right)g(corner)h(of)f(the)g(windo)n(w)-6
+b(.)396 5033 y(Notice)25 b(that)f(there)h(are)h(tw)o(o)e(tabs,)g(one)h
+(which)g(reads)g Fg(Pr)q(inter)k(Settings)d Fm(and)f(another)g(which)
+396 5163 y(reads)g Fg(Image/Output)k(Settings)p Fm(.)c(Notice)g(also)f
+(that)h(the)f(windo)n(w)g(is)g(di)n(vided)f(into)h(se)n(v)o(eral)396
+5292 y(major)h(sections)e(which)i(directly)f(map)h(to)f(the)h(major)f
+(sections)g(of)h(this)f(document:)p Black 3695 5692 a
+Fi(2)p Black eop
+%%Page: 3 12
+3 11 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black Black 396 579
+a Fl(\225)p Black 0 TeXcolorgray 72 w Fm(Pre)n(vie)n(w)p
+Black Black 396 758 a Fl(\225)p Black 0 TeXcolorgray
+72 w Fm(Printer)h(Settings)p Black Black 396 938 a Fl(\225)p
+Black 0 TeXcolorgray 72 w Fm(Image/Output)e(Settings)p
+Black Black 396 1117 a Fl(\225)p Black 0 TeXcolorgray
+72 w Fm(Position)p Black Black 396 1296 a Fl(\225)p Black
+0 TeXcolorgray 72 w Fm(Size)p Black Black 396 1476 a
+Fl(\225)p Black 0 TeXcolorgray 72 w Fm(Printing)h(and)h(Sa)n(ving)f
+(Settings)p Black 396 1934 a Fj(Figur)n(e)i(2-3.)e(The)i(Gimp-Print)f
+(Graphical)g(User)g(Interface)h(1)f(\(GUI\))396 3967
+y
+ currentpoint currentpoint translate 0.4 0.4 scale neg exch neg exch
+translate
+ 396 3967 a @beginspecial 0 @llx 0 @lly 590 @urx 574
+@ury 5900 @rwi @setspecial
+%%BeginDocument: figures/gimp-print-gui.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-gui.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 590 574
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 590 574
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+591 575
+12.000000
+591 575
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPu]lW4)ZKPM3l1,Q+B=`q;OcgmNrX3MCN:S6^]#OXUkJi>i-Xu+$cIr4_D2a")Vq;3E*I
+#NVer*WB'6fB>]lia_G/q.HJWAD@G2p0[J!jG>5QN9^JH/9L.OFTe?\OQ5ZEgbkX0Ts,'e<=d
+=Ku>SMA7XBXB>;H`9C6]I<AR#.iginG3nNVPVA>gI1&l_`T]2UgZ_8,=3C*#(G/qQoZQJ)lgd
+Z9HsuY6MMeAZEe1[cMj9W]e)+;p=3BT^`_GtM50<7/VoJ9?E;C"&jL19G=1je^_6<J+$P^Y@e
+B0XH"'-G4aN;h-*&1IJ8[c3I:*3%Y:@6u80ZnCX5:`7]n*E]Ll`>8Eo001,1[RuEcbFip]S)L
+:2CU92E9Us.$If%N9P(k-S2,5JR!Ol&=S>X3dVh]0oh2K)a#;]oM:7beWQbuW_r;-[1%fl-S6
+iiFEKZSK'+Ngr-*Qm-g0:\spO!3\-St9>b%QA?X6d^3gQ$,!a5YUJQuQT3\"\l*jBe8nf=,1C
+:RR4Vb9+2m.?'SjU+$p[IA?JB"hsu10.;rN$O#1hW,`1[VZVb&G*7?oS$jG<Rq;kp1?6q(:@&
+e:$:a)#okb^Eg8;gjM,Cthdshh!/5BJD>ruUES8srf+f30%J<Q\4.p4cA1<LH%EVdY-dkA;X.
+MlRHf](D[Cl))=I<dP'iFJtTnjgn\[DWDn\d;..0im4C/%`^?p,Fc_:<\OC9&"%n)*?lsI]7c
+RiaaROK?,r10thd9CnP#]@PQ&*b:^![jI7Q-*DXiJbY'NGc2+E.6WKZ-Q=+\nJ99lfB6kHXb"
+gXPHHT(8;gI-"fMZXhjh'T56s6LSN.'Hd4/d7P'?c=oXcVpUk"VE4qL03X:8JWk</GR"N>)2c
+CRhCN=I_F;,Bj0T4&WZ::6cGC:7[9%-tr39^3HnB[<Wj$]NC]X]T4^P/5C'=`tpCa_!)5dMIu
+PYpu:Bh3.6q+oIgt-&rT[eq92Igln(W13&MG/P<g`p9uZ+&&;sIcYrEVsCRj$KbM'tiVE7l5f
+]#<I3DRUiRU7GDHJND(4'1.gi^D3X:<.MgXn*N4Y.IBKVE7l5f]#;.ERJb0gZ?_G2RYT-=If#
+Q_03A1V2['%,VL2d8+ci_*YtZ%`Iu^K,@@Yib=gT+M3DUbWTKM?dFAt,q6`#ZSb<jE:AIP"Bm
+GP\_t#_?iPafLGgjAI$n%jgij>nj_eJ_`(G+$jR`UbgZs[m)PLMUQ:cdlA>?1`'rcS:3jMg-c
+>FbDP[5bGa,@?\T<Fb]L4*pd/i5(f/4fl5rW8<Pf'>\*sg/lkY:@bT5dhZJjL&.-F4'J`G<4n
+Wb0h6^R*):VKFLi6cI:]6uau5<.+]cs*Aa#&hQ5;Le$ThEPRKbebS-0cHVgW,8S4r7L>85i>2
+G-%k'a*]RE.Z7LB5DSA=*DT?<Cac2At7pO)f;K.:1\ME?oU_7/5H)b%QL`Ya;:r1MWLtU;G1q
+tQ<hTH=*j4`IOFN?/Pc2c+hck?6,_c)9X-SA2hUL<k=Q[tS4G2+qTWE[gptkQ(+57]hZ[8r)/
+PX$=5)<d6t1/aD[+tXcBU;r30CjqS1;q#]A0sF`YKqbQ^rG!P?mT]Bk*&7M+rqD.MaCa=Ibh;
+`Q95<Vl!pC15NoKWE>Z!@W?-4(+4aaE7uo4TXq#7LMAR*a3B[;0;ra&U$-NI?aa]B\I$I:>J>
+0Tj&qmCl8[lY]$qL+3>3pOA#=II*P_BB(KoI.7FA!7l<CPf5:B`UUcn-Nl#7CcP*J"DbWF2.E
+kPD.:<BdV3+_2!c*B*".cR9C5K2mme)lD4:/YrH8tXV%QL8#BE#'gaeMsi$nd`#aL02#J:-"+
+*iY##?lLKM56e5&=\tqNP[^EiDV)qa>SAg=qV<oQ.MDoAQD.g`-ZsD4*;Ar7MVA9`e2ANq$,d
+U2Aa@b@D]5sgd=e&%,g*ng@.>^KuT%0IAEP'YGZ*XFdQ.E:cGiVJ.QW]hR:3OFP[XJBTp#FQY
+fh.c:D'@A20H?TcS5)Rt_hlppYHsd7a33@Cr<"RR(+X,iB(^e]%61W@[heF;l#7CcP&52JRA%
+Tcrs9MZe%W)WPB,coXktQ\Ms3_iT4D!hUUc^`LUV`1K?-W2`S%Ll@%CDi%!'KMZ"'EA>-U%)j
+FhM^a$,(I@W=0E$0--e@W=/Z`Moh=S.&kHC+9uHK63+%TlO$@?'`IO.%TC?R*/lm0$E6bPV3+
+dnRrG9QGpro(8kbU=e(F[EGAO?`Q9MDVe0LCS;_JjSB?-3bd>9rW=S*k@&Bu4lZR,E:/R=raX
+@D5M<-Bnq:"VGenqEm"Z'Ef@r$7)<)-;V`Q9N`a,*!Y=;$q!5Wko^,8M#0%&jd!X'hg*@-%BS
+r(HX%MR"d.7QGR%-f2.D9HG]S`YFDhYW6RLqGf5u<E,\Q=_>TdQZ@th/5AYpZmhT%`A'_bYh3
+?qe;*Tp0On8Y?.j\g'P1F;N,n]Z*QoNN1ZDAM<Xg$$7s1-#Jsjaoqc:npVjsJ4Mj%"u@Z%Mi/
+'GBAWP#rm(!Lb7@UFOb<gZ:7askK=3#Ugk33c@Z!S]Z9J=0#4j!^iEiVN(g/uL,@iae;6pmq%
+V!E7/oX$(&q[(%T#KW]opY(@An.XVGIPuEoYEAG[NGfA@M=2DJ]ML&D@-_je6R[%H(15a&M=]
+lLfURVN`HX?q<FBKA,UKF%TQ"=qj9(t;n5(p.-QXt.lb*OmL_4f&X3#T[^7Ptp=P<g`p9uZ+&
+OKNRaLc*X`<i")ZG@dV1/P[R^j)c]%VMR:pDOG@FXF;6u]QB4`JT>fN863^Oc=aVi=I_u2]@3
+%qn)K<BMc8kNGIk*VI=1SUic0"g8/Zr5`G&[^M\E/(kMKBQ4-kX-eW,\M.DpA9BH%\5W4gla9
+snh]`[SZGB!p+eZ5tBj^ZA+(Ri.R8j4?:n7oQ[h[NC\dCN6@-g'oF*_rA&,ClK*,*>s.hU+(U
+jl)B&9#q%'F;6NYt-J.Egk^"`!8_^Lp.H=AkCAr'-:@dCIAoZO32H4in]o!?^N3n0]-9'8VXL
+rNV-`46ZbLI,5-/>#"FU]'dhJo@rX)D`R><5NO=_;[-?ZsK3R-dc':+Roh<jJ8'&=h18!f96h
+Bpe.ndn6-48Q4.t?%Wer4VK3TbFL/#r7O*=:\H&EP:=dtS]%n*&:.h4Ru1noZ!q"8Z;VL$$)d
+]b^=oRT^03TIXu*Q)fN't[D?6YOV#gBiA-\Xq-0>%J[BPTgE<mda"pIoU@B;1Y7^]T(-b+ON:
+NhM?B5srnAt2OtZ>4DgV>[]:Co>_A/t:jIi5?%'Xi<r,@<(!s[`9h,VNr6$LJbLDqNT`4(#-j
+[Z8:N?D7,Yob1sM,D*s4`X_"s_Vh4jfm[_=r-6$o=5tYJR_g0>4.`p]"Z<3VH-bIimQ+gCk/5
+?tY<oq+VSX<NL=r*#pj^`SHZI1[idp[2Vp,/ubVja$_bK3qXC2s<ENidoa9!+:bQRcS-lbp!=
+m/I5]pGdT3@WAE)`MpCMS8*'o3,P-$f?n"G'ju$]aiWJJ?22=?Vn$l3h_#(7S8*(*3,Q(VmPs
+UD6i/i'8a<,@P,-lQdPQM>>QCC(WIs)J"'k;NDm31m.=UadpkKe6nr).-CasX^7:Ii"&VVQ#q
+9F`c;k><U,iM>Da(TI-?GMjddF6)?)SlfZ#E;A%..k:i!9/>T?k@.N&ddtsi!RnSkVO^+_,A(
+#^@T!bib)!];=&V3+8W.02LUN"Vre/!LD)gBH?=&)e-2iaU''#geYm?7$<i]SlET@R^kDi?PR[
+%2<=toK%di?R9P?E81jSo=L@VkoHZ&&!,Y]AU`Mn+`gYnBS`t-MHNOToR<7f3hWp1Y%P*Cuil
+Yp8NF"[[8&P)>X;mfl)Of#Fi.Y&*f_PS=ILq2h@Br\/,2<A<S^gG<2@iEqYPWSRs4VbD6Sc!!
+n&m![U4doa=)iAl!4De+JZhB6@%pL#BI]=Ht>/5<eF_)qcJVt$UTh4fYWEehTP_`K[_.-5Lpl
+4*3E00358DPTXXSf"'m1KFrnAf$mT0iU]/ftEc@!tjb45>P\ZX/\kq-c-36Mnrm0JcJh0l(^(
+#B.V]El(hHMPJ6g[DQ#QfM8k4`Ndi_,L4+R!A*H6nhdhBKT1W1POi$p^^dC$MA)>*JOMd^HY=
+d(4m)X><3qG!!ZA3^?R"ngm?I+Wi8R3$3Eo<H"D_7%O2fLl1J[bp<sY`qb<.gaO4Gj6c4@e__
+h_u$-=89ak*KmSS=!?'0mQ+5=-DTC3o3/BU'_&GCD6hEZ$<!J.YgthKMS!P:H%<,B/lPjg_B$
+F0U0I3X][sscYY-k<mG(eF0+pt5K0>']bEK$XJ5W?=X:A<$i4ZuLbrMJa,0&#]m@UVbLS5iWp
+>R;oPLTfags*/Nt^!'cDm^R3DRVrm(bdhP6pNRe/_f26cKA!\C.n,H7>.<2guqcK&9j[r:p17
+<(.+K\'u--'<U5hU>SZY$#P=^r(*b/-NPFt.Q_#T2NhXJFARb^`=no-W%uW@LXSXY4R/qX=2C
+TQ7?s6d*hHWYnq9/I-;:+&[)`*fC7J7AD=(`]d`#XE3G)iX6u^QUnBVUUf1";OO"WW6(Ku?)G
+c7a]f8,a(q*t-6VH"4C+/h;I^)%h?ibEh5,*JuN3`I(hV=MQ*o(Z(e(V1i]\>tpdc:[V2HB`\
+d=+8UKZ>FT]4QTqYcqaD9e5)f`i^^GJ;BCZE-&`,-(nMg4fLS,,+sFs%50k=SHLe>$P9>i%5W
+hA<blp,GN5Q%RKmoG[-rM!mH')9tj%AEaE^EL`**t^<3Xqqk>.V'91:A5OeXg"Dg^TNSG2bKX
+<.g8o-hKbZn3'#.I4t6+!8d6un%hol!WQOPGRIo[&AQ"]@P.#+97:(*M9YMp51#HhmK:(Gl6m
+f-$?>gUPK0=:6touB-m(>M6OR\YcJ4eEJb>;alG_Ice=g!dBIZ7@XD3CVDEDDWLD.&]5Rg+_O
+mAUp%u3rq%u*"bjq1to5/j.[4?>\3]ojplI/XH0QdISQN?VI:-[[qk/XE#p;>c8@ULcbrN0ZS
+W"\COT-Hd96IZ!sl4Q<!YcXZr'M3l=ELDA3qQJs"d'_hC#=km51EhU\hmk#b*ItG"1ifTS#l]
+qPK-W!no3NWeLGL@<VRT#WJAQN$)Q#T^q4=`XB*@K+j[)qc9DqS^UdE@!:22A:LYaoUdZ3)>j
+*OrA(Il8;Grore3h%Na<5S46QGd<!Gf^dKB3_-VBE?Zf+5/BQN!!r^7n=_()J,t&mPUtkJEXA
+!L:]mrHQClH4!%e46O<@ZHP8UU4KYMRnBo/]KD%<4f)StCm?F0jal-h"F$As^*p&"0_fAk?hY
+[2=\QH"^9Z@K=f?_a1=gOod[gVIE@1E6U3^-?hH;89nQ3+q3cDji;_e[E8c7IH2Sf<K#Pj2-I
+Mb>)F/[p1nN<-\Q'$ej#O$iE[nX9EFL^^V'b.g9+'A"J_N\4JaDA,&L1CE>ocC0RRDc`UMomX
+3Y=$J9UKX8D81KaGnQp[92AL6Ll?47g+Y(WtA2HHZl53=FB8$]BP70k)7S)@P,l[gCYbhoJ-u
++A*,dn1GK^cX\3Z%2P\IL(5kt!u*&unK]*Da`s>-*Bo6Z6;"[b8!VohA8gjG%eDjbSC#GIm5E
+Q$gBfk1L;O>ge:0lF(9!f1-:u<'<TG\DnasjgnVAKS(@`^FAqGma=qE+05:jBrWD=@hTMU5oF
+H_k8F=[qY"q:b!p^$"eY8?.ahc=pt*O])O>N4_*G"O"2$dOLCE-MRL!DYr<'qn8.;3a-E;QBK
+IiNngY/EDs_+tC5oU:P6I<[6>JQ4DGp`"F*A;;HN9mXgHU`XN`1f<@=A)ljdMK?RA>HQKUu!S
+c='$'2%B_]MXHWIG\RGnY+@duVUN:8SZ<ME24t0i@rr";>LBZ)jVf[t%#L.^HDsGq@H37EluE
+$W9p1#Rr10Y:>5U_ghn\QLBFee=/s1TWRSS4D_>*[WQ(@Z<sF-e;$'p[1b=Gn*qZ)%oO,o6mX
+2F\ie>2Z6](g6I^dHh-qp0X'D2I&u"T`9XO4V`CE4\$``Wjg$]Uu;:9mqmDO?6G/"m]Zu+Z;2
+hu6L_"R:nprI^HpO>Dt!_R-`#K&`4dW6c6+R5Lcel^@<8nG'+#Zd)C/Z@5Fk/IOm['`gF.ZUM
+k1@H7:_@qi+Bi:(>b0(%*^_H6+0(pCX00hT^8(kK"Nd`2?#=1$]]^pm,G<f,WR0]F8cjjQ%?]
+BcR6<loia&U#m6(r>9g.oaf&diEJL!qX#'I-A+8lAiKm&,R8i!<ruD'uE+TqC*d?hU]ck_h.6
+T;-4*fhj.Ep9/e[am^f7_Tr;19Um;Fi<@q8oEH'HT7P+UP#Fo*%VT:8a]O;r$8X39hf<dp0V_
+Yhq3oAUVqN^;*\R3j.i_u1jfLYu$?5h3;_Ol\KTiS*N]gn.HDr3Y[uQXX?c$KSE&&G[B>H:kq
+A`F'`geDd:>R)B76I/MkTkREW6ip?c0sFW8u/(n;&E8CL4]]J>"uF*,tb+ajGpMLREDrZGnd2
+<,SEsE4skXp`?KQgPdSu`REoaS:?%\8.=Uu03Pa3Of]/oiOsPFQ;p%Nqa#']=8l!3DZp?1Y0(
+Bag)P[ec<Rt9P0*4ak)5r[`-mLhd^lX/b=!pd=E.gB>/<hXc[8S`uBZq-.ftI"YGuPtm*/2;h
+j9CT`58MXbPg]gl_^L]\res>:CrS3H].=8Bd%u?*r'a"_Eb/sAi83ujqO\NZgrtm%/^dV8@?;
+s572D0t%u$;ifM6NNf=*`1/l"/rJ9,g<K)#P7*N:=62/"st2nltb0d+an,$AeN5J3g`PRDlLK
+k2Js%bb8G@:Si\=>30_EVbimQ5euq8r^l&PptO^NbelVAtJK`_5@j8Qm*UDZu)]WNg!-s8U9Y
++BBXU:.e$;rN.j!H[Wq#VZ[!N&:)"H)LZ0%t/oE>(-6H:dFqbO3ZZoM;-4r;!QP\Z)G@P)Rjs
+2M+7%)uU8Y.n^&U/`mp#;RElk54TA"6_lcY`n]A3$LAGQ!;Pi2\#7VdWoXTi+HkG9fpKUkUtA
+JO=\hA7G4V/E40nmW*a%^[N\::+EI%>B^ci@U1gJ,9G*AV-5TRd#Gfh'GgsrcD6MPpGnj90#pl
+%Z(5"Y4o`OE#KVOlf&.h@hUX'MCBLKck-Hl(PUPq;_0-`A_9hcUnO+%!rGZ0GP?fE(!i7%IMI
+^!Q%Y;c7+lcdGnM@)UcM0:+I1^s#5McQ_LYluf_pL&<B'q'J2<1&oUPl</0RWtkK-;?FcurLD
+8Ob2.)"..p7o7EU^c(+M?Z],7p7BUUN0DD]"P[WGH&''a_3qU3;i3^>X!g+IXsHSk!sht?P(/
+TCjEShHgdX3Hi"4(""G7ppBQRNf?n]0%r31B2=P\^0YshVf8epGW^`.Sj(J`-M:t>5be<oU"Z
+I<ek6((0_@k"f.e&#kMQ>1gOVfjG`CB^WEk-J9I;j,._2]WB_e&dRc/CCdL>m-OHi/2\Y.`+g
+o.VX)MWk=%LW8UX3^cGn!k;l=*iAjK$jcnm6THIoY9AAgmeg2[H7a*#N_B=Wr>hkghF.ROj5,
+Z89RDt+=cF\a.Bg&NUeFJ97/`O/;I!0+l$8]d'IK*S<Y"\Co.dIDi--6DQhSu;-Qd8-cK]eGW
+dUJG=d?Tm;;(e$E(RI2[B%5K1/f?=^1,LK.Y#PqXF5\S&ac.qN$PE*noYLkIllpHaFC[HNE2o
+_>e8`X2\CGDn2CG;9#H,#mZSUV%LmlTuh;F4nk9`J;mGY;e:^P1J=H&Hk2uigX>O(,9R#g&[M
+T<Sg!]VAa)NS8-IV8;\Ll4To,1#Q[PJQm;HL5"R%iA!Lmd8*oD+o)BN2CYY?Sqi"J-WMN7h+A
+jc[3=BBM;I2<6LHKFRtu5=c&h]LB=@TP?'',CCd>gk-Ms6F&M;0o7O@g0V,)T0:H%#[)bbBMc
+H9oI=4C1H/&Q4O\cK8L0rrmd=7`5q7o(&15h0UHsio&otHjs:6WfcM>-\pf^uehp"eMc>VrKh
+%iL;nLC,Ed]stQh;g:VIL%G+q?;J'c]<Rn`S-j/dMTRPQB%=oYc8b2H+^I`#FZH(bC6:g*DK%
+D":'U1`IGJCtN2('.T&.'1(T:7V-W1Q2XugZ9*5=q09,Z&\l?.q"EAYgnUI2HNdV$$2rcEY]R
+u\Zg_6rG8kP_=UU$E/CrLcCD%u4C"`,hVd-i`10#$kXUkWJ:P_A)IYFttAiD8M-t/%Z!FD)3>
+@CH-GqT3XWY+SQuGLVoV?^^kb@4XXKnPfK9alYh1>)Ok5MRlcOQ*(ODM-_jmB<,%;>C9EI$;j
+d>CJed;XVXNBQ8N_oa-1?;MpMYM%o;AMdGn2cIs/3Uq4ZrE*+$T\mVl0EaTRrG`Qks55nW-L1
+GnRXNrL<PI4j3uq/sD"RJ#8MPdl,G@3_s\IYn]7+2Bc@13#1ehN`/-i8JF?NGf.YaD*QsI+$1
+?m$(N7Wa:aA_=e*bg)+?Lh#+4R5d"%<L.1KcAp0Gh._k@>2%#>`jUX:YR[bU]ViTB8]:OdZ$#
+7I[6Q_0lKo^SjVNt6cis"ckYWaY+=:NR6O`j]('M%1@^g(Hm`,OH0l*T4<rTsVj<]'7H\ocZF
+o#Js%8pW!2OGW*4F\I!YG7nG8J%lE48nSQ@Ff-.NW@Jc2Q`p#$\6nu.Hi":U@mQ)thk6_19Q0
+lCB3K]gDQrt+O#<2mNZf"W/H?tsM"[DtMj4!t9oD>//qY9])pB1b[f\eRp<Qd!'Tlut5n&$+c
+"]=`1o'DbC=IpO.7RC:pa\f#]DYSD5H#Ep$Bagmh0#`f`9T8N7Kpt',FH@kqk8M[%`<=/F`\b
+aH>!$2p$=I`edSQr]5PXL*l01u>:EP<5+9),'TDj0:a.FFPns?8HYd-?SK=iP?r_.L?pqDeqK
+CKdYRi<MJOU.RPNfFc']igkIS?R^.L@8M(%,aniDj#pZ1d2+T'K[.<ia)>>KCtU&_c30XkY2W
+%`Fs/"W1j"=J\B&P%Jo-T4ukCSrkm3'St8,4D)Zk+5Q15@TC0IBqVtB@'suG<5`t=#'AfbQQO
+lh<EYOHEp,ONf:l!P5GC5q3h"1\fEPa[a5;m2-i*c\qduEhi;Iqq`Ii9@Q`IVB$];#*S4eI`S
+Xt]=bbBrg@-A`temNpJIis&iirVbDfTIkqEI.tNdGh4%oh`j5OI$eEeDF&PrI]26</q!-I@O>
+!W6FRbd/e*hbik`;]*%0G*QLZF@%]=sDF;"4G7)>6Oq9^@9m\B)`=*9ql/kVPt9DNVV2'DZk6
+dMZULG=h%lh<-L`Q,6/4A=pjT?.Z>3h&l)"^a;ckY(:WJ`ZM]C+!h)qDdmdmmVIds0SOU4$3*
+6Ee*uP;DA/`jG)N!E&iHhlRT0Ke.Nu\_DBh>[mCi";1s'2p"cGW,T/mu),G9dH0P[4N"jZtZ_
+.=U(,Sdj(o15f#qp9DZ,dOA`f>N\M.1*@Bd]p%_2cS*]oL-WC-t0,>6V-o>4d(*3$jFPM??UT
+KB[=nLs,r0S.g@L321lYCJS?'7a[$`E?[bo(FmDPOe[m`H!meRp(f,B'3QNeFY3p/(Ci&;Dba
+;j(Wn6L!DNIr+"*e7Rn"QHe?\,n.GIU)Y&%m2Mg3I5LC\g[:;^Mu9:3F,Fe1Z5OidRH7@6'tL
+gDjV:)4<^M9In=T*fBcVeZkU,pF7ooT]hu.>FXbfa&cjfTA>6n0@hs^>lK]UF@g!QQ\&BJ)(:
+,=P4fYA-!(A\2OQ`1q5hA5p"D_+%B+$.8A5)O!E(1fYNV4DsSY0r($+jqa3EA&Y@$P=E#6jo+
+.uK@s1e5`L2dJ!KB[P]+P@2`P!$29dV-hpfQ0DrWO-:j&sV)GTP,+FujKpl(k.Vq/q4OcqYF;)
+%6_*;a:q2M:<02SS0S;e@WNA\&Cms4oSYE*kCM@]2dW@T8b72AK8O]:FR1_7j,^3<`L33(jdX
+T7pA:"WN1cg-U50Z=5<CX"<HD'g1_nTp<e%-;]I=";mr6WSP-Fe%Zk>da>OrkcV;b%p\_bf,o
+@"k&jAe2qjiOdK!-p%Y`-S!2#[S*(D6$MO-(LM]u(D\75P(b1kLT>Nni,)@9)FG\r15;$\Dm7
+,JRe0N@9[3k5%o*qOVdC`2K1k4/#_s(4u&Zk97OuaXQ7lCias2*$d7rE[9$V$2a/OE]OLJh-Q
+\PM)so;-Q<V:PJZaUNM79pTo>YM)r^S9R#*c]j![KoKnD1g^r"TXi`Y7`?Pq"=?$n7IiaL`9#
+S)#ll3"!V,4_GR@Q1q'*U(Jl@i)ti^_8$S@CSAP:2\Qe7"N=V'qD(?_G$8EIr[E7T(VtFkDgp
+;R'&LpdlEStBI#S9!,ADKH\'-Qin/JL*LK0rPIe[Ae;MuY"7;>3Ya5fb+]2R5LlP^[\q74TYt
+du_BJdUu?#IK%nl.<?J)Q/!i_'tTo@OjsbgYd^ZT+@mP!d!8[dj4Hbq]UfOd6Ub9`6>HZVY-<
+#lDXS1M`]m'LUt9#)].u_0g8kmL-u9@krV!7.@q+M%0O!$U8c`a3cC"gk3b/N4'"m6IKR5)JU
+W3mKAj)D$X.tG@6>ao=,%&Ga*@e55.rol8m6d)9+dtip53/JWFr8Sn/es]$cl[K3K[+*g@RZ/
+oaiE-BKu-\hMdGR!o])$ZJ400'<WU'=uE7=Us01]6.hJ+J4:0MF9(TlWnkr/]BnB0pps.48&R
+fp[h\=:?l_]mg?,OVB$Y*T2jChb-32#`KC^N3^fP[bm3>`'DL5P!o[,noc<],?\H-T_D)BG`E
+0P[`a"J*.gF7\1ZBua3F86>C_9DC8'M7'.,<=nEnVpO$TTD?iclNr[+"IHd(lCF4,oF^`tdJe
+[uM>mY//5MB6RN=Fd-O:*/gJ\P2piD=('j[.WS:uqB"e8@06p:G\:b;\\uP2/\*!:Ua(V@G/X
+9pajXG'n5mbhVr]b*1(-QJ-&7<id?nUQ?$MrfbK$sZC_XKE(Mp"*VnZuQP@_qm3`bUMmNGMkj
+fA">8ssfjY[oi(/miWYS3"s%6d6fQ%mV^@Vq:!pr^2fJ:)tD's%DV9mVN6S0-$D\I6op$MK_?
+`RU@s^f5>hkM7cro7?NH`8Wn'[@0'hRB:4b;W-AGuBIo_731c2X:/K]!?[ET,8G%pI5DI=`LF
+p>LV68]^A]N;9cA3o5>[`u`CT>K/>&^[fP;B&_Z22=Ii7(buSKi0t0ai4a)\:;CiFS/*C+NsB
+:m,iR)Tn"3I7<1%N+fpcBVL2K*AI5I2nep^PNat(_='80-`6q6II^4nTEXm'E59Rp(2sYO@La
+cXrTL!-.K7+sVR1i]W1CBAXink%WQL_(nT1k$1bD^%67=KL[!(^kc`ZbpHgk9Ij*YA4cq\*8I
+N!"^4]-rOR\t;.r`VV:/0^``O81U5Q1#k\f7]AI6)#&f5T>`pil5Hu]1=b';a,U]7up!UkDm>
+YUU51a;$/m_i,&G@T'`n%DOlV/*N)N$?&=nG)P(A?GRU*'bHmClr\WcrVrcRoC="UgjosA1)(
+WC"-n[5J?*;.c%&^?91+t.<U]oS<kb<rEbi_D@k(Y)V$)g2p2Sg3]rI``d":ErskropHQ(@e/
+dWr^IIrp6?^8.?)a#;qQhfPc,MV$>@$ud4(V_7T-eEG/MSS3t?77utC_AH'o7D:;&KM%#Z`OD
+YUmQ4PKSUQ7!32d[N+;H+J-JD3Og)((lm)!o@pd]G%,#/`0gl%kJ^M4:WD0"t-3,+7dAY.]bS
+Ed]Nd'clNH$1[u)t_'"(1TQZ@gIijSLNAm!\)O`oWb>+99ikIGLES2E*R4Zlb5)T,:.YDMMi'
+HE";O^#1-dK0a7=>EZ;I)Bl.`..lZCDD9=FlQ<!lYX@T*b[9VRoP:aA`\*S51>K9;]&:gkr`?
+GGAe;]E%Mb>l4Kn@W5:%DVX6LP2eb,0QGWq)VIk]N330M",*O:5b!2<K@JBp=955Xk=u2<;l*
+`Oj,]V$W5&;bZRH4@$fAquLK_i+/oG9SI[6`l#IY_3@Ee!Mu+BBKFNhOu#^oJb03,0-s61R\i
+[a-?JHa"^bb6NF@+b*=/]o[%1kol;Y;KS+1$/>!kh232rl1GRQQgBu2QI/IE/_O&mL[SE),l#
+9Jes=4*E7:GI$dLIk0;VUUi_&(%8mL)`)50$#nh.fdN_!#h1=hbb-5GWs\s0$pp$)V3-PZSD<
+o?"sHWR4O>BZ8cudPFDIYSmS3=Sst_7fN13ZW[gJ#C31-J:i\PF,mkJI1cmO/YmZ,FpPl(),/
+4,t<T7\5(NQ0B:hVJ(fV!L*.D7U^'c2V#7!OB0`.-jDSZ'_l7\<WL:/,u=3-C4E6aLX(ZLKoP
+M$U>#)S*!h1gZ+,<^?muMF0*jMOKGn9GXLO:_Jne!f)Y[d_crdD]hB%PY8D3ai'ZD-Q`(CVc3
+'\JuVDB!J/?#Gam+-_/lXAU/IRg".h&=S`>q?N=]N0Q\t%B0E<(UL,emeU5J**9@ZEJWk6M)H
+?&Pub,@\[;'X=5WY[<?jkkp:Tb9'mU<<5KIU?e_c!p/-Meb>K2"n1^)DDBPBjJNdo47IZ3mY-
+rrbaY%cHh4/1r`M>kSs[NH(p@4.5Q<^OrWT3W=E/nGc(D?Ee,%\XET[Ef2.JPQDu*2(Li:Wg$
+A&0Ke.UAGu5WZgs&)GKf![ZN/Tj2Qn`@=7q_G[3mY.MaBD1=#aU;Q"\=)1mGoO&:^<]XZs>)f
+Z:N*.+B+%o0tuEe+8d>)7tR%J(/Q'VU[375.M1.*R[+A3`akW=d'#BcKW?WCiM9p:SU`Kq!cd
+KoEAb7M=.X5;<--`=oXVmT?L`i8+eFX**,JuP\\cB@EL0#*Yqm/:TYNr24XN9d6m>oidCGX,i
+/0PY;AjpYEDI^rUeha2V1t(43XgXF_Q1N'jjaKrPjqKn(E.H6.?6FsCaZ=K`*e=rGUJgE,Sm<
+?ZMf;90)j2oiUU7+39Z"3M(NEu3G;"#ViW_;16dCIir$:<3eNt'0eUHP_e-XjM9G(cPH!TB^/
+Q<sW;=o`ZTP.<_<'2^kT.\O.>ko`YJ&9^qd9C%TDon/^\Z4Tq8`O0J,c-jrV(g?GGp>tq2^#a
+S#L1mB32/3>/prA.urNJL44/<P<FuS,kgEjQm4Qg*MjDp+U.4%j(+Ca35;eX"#Ihi4;!tc&Z6
+3D`-ft<^*@\\E>2c3-q=GLk!QA9p):Rb>eR\$6TUh-;R1i]Q(<u=K7kS*RChmGg'7rY:K]cmo
+K53H5')amPDF/SD@F%jU'q!eZr;jmFt$33Ne8+%5_g/0?Bh<N:LhmLUCl(+Y+nd:.%q51S=4G
+"NNsb+[<#kXYiE<]QWJ)0=(iOIYppc&S2!&3`Y_)$Mj36mfM5k(=*CC]3XXFMdL&b=rsf5Gp4
+n1W]>+V7)8CW*U_ciK*]YuEG7;dcN6T1\JQX9/eoE`$(hUTE>5Yj_8'^qictFq=.Ki6NgQMo4
+*.Ohn4MA<o,(7[5GMS0mO0fQKbKrWD<7js2Xs].Vl/7e(b7:'E*iA,K>eHG@&1,IL.?mmt:)!
+</:eVN31I+M]oT7m230Qnpa>'=8Hl@$:<@Q^6<fEdn=bBAo:R<[J.<2rm^:E@_;-CVgVYIG5Q
+R<p1R3mhjk;]Fl3G:W/Pr"P`rS,uHRq'SK/hJ,!&rN1kP?Mt#2KPDD5F!UrjB[3?OJL)4'q_6
+*Y+lTLSG:@Zi6Bdk/H>Ag#!9r=\.1MF2djTCqp;9`EI*=,fhT0.A9$lscOQO^9RUl/n-Q!l`V
+D8[4#mUjc+9Vq(3.'M),OeNkG[m$M^_r=YITuk%dHGI3_<'dkq/UIB^-[JNDHF<Dm#J"MV9]$
+Yi(UtQqCjQFKr-HOaC#l"l+X**H>Q]:E,delgjE';Y@0c\=%?Gp@pa@SfP9);Aog%*i60GNI-
++JVRVQF`">aLJFOuIWt]'"3JeU!M2MDNI=NN=bYAD,cVY.jOW#`4FgrOAgmKn*%)W?O;JpcC'
+[u*]dFAua:GWL7C'*-sJ)e'qRL^FfaeO."BspatGA9Inr]"aG\.jp*Tr#DD7D9d(&5HNmfc`p
+hj7+fA-0+NIllp8T-.nEBBt@[p@F']GUc0WeBC)NQ0N5"*C8$9$[EquKoqfKTBAAUuSUd2"Gu
+.?@P_J1c5UUe2%?QcAn_h[ReJ3f+:#fI):1-.\$.,!-K6I+@Mt6AJK>]i+$70?MPE$;,Xj.9-
+<LNMF6V%<YQqjY<HX23Ol=ob]a/SD#m$pU?VW*MUn&9N6_j4TfE6iT(R\lTFe?S1g;$CourK(
+CEO;3n9?6E3:WV<#.liQ=/^[SL&O6/:n6<BQ3%ap"+bR:uY]>R@*&DCp:JZd5g2"A?s^[aK,K
+A?3p@HZI0h^OQ^PfTR5)JZ0^1c<(*'aY3oS61di>FB,*S[PFS717SR0[7ql;LZJ+o'ESX(/sR
+DYl$n7iEXSRNEQ]OdSe!l2%I(g;AtVu*b^?SJN4r=N^_SkLnfIieFe3("@?T^Tkl1GTVYBCnt
+;i?qJ]RW<84PDhE$L2])ss0hH[b*\sgHJ%)Mi'HLr5c+sZi%*mHqAPi&IJ=Rdt^.^1Ye<-l`n
+_A(T9O@IV)S-lC+E>lJ*E9]:+/tmM;`$sb?SAo"]3aEtTm'@9.\%-m@"+m?j>#I>I(T)>-aW)
+rHS<"tmk.?Zp,KVq94KRnt#U`09:cf8Aif:uW)I]!m$`k):*rTA!D6QC@`>jl8=-o:K1Vr"]D
+d42XC)m!F@#E9Wq'6m=L,?;qPId<$;kDh=37TqN%&_DAm(e!<K`fZQT5g!=!!Y,XFs;JD)HI^
+K6mFb_K]^9VgkN9jfKhKF8j_5<?m2:Z(5>$*<T.$_]AYD'`7$Dt4dq)K#L[Rqn1[H4HlR1kb"
+TGU0V0npfSMDo]"Z1uAo,UY^f!"]pOofkh:D/`[`>@ZQEq3!qFu1@>&2=(m_Cf)RV.E+7uE%D
+YY8^i<.&H5Z?&G/>EW\!aA`\>PD6O4m_uG/;IMV-)6H6#m`5F%*?&i;Lic.r/uk;#CU'I??4J
+#^]`AQW".t512/+EhJ)6e2;:s>"4+)CRiPK],.]0_mM&@g*c)0&Gd2Qsn`i7EL405Pt";RBHJ
+rFTnl`$l'7F5qP7];CnVJ8:h7s:.W\Z^jfRd3NTC#NHWE&,<c%<2q>Yh=;*g5'#$Dnm4)K_$&
+lOJdo\aO0YDcKA%]Vhh;DT*H;fN1#X"8hT<'4M.n?5l$u9/NY1P`bFpG_5YVr.+osUFVJ2GM]
+0:gciS9e>>C47S;_%O*&c7]<'-q%f3FdA$Pp9#4=S.8S4&)B,Z9oL#Ul\-7)Y;-1E9Y+]pcUR
+!IP./on^eg*,)6phP6Hl?_,9jQqViXV46>YF72X0Pd[PH=lL;n7Q@!%.8EfW@&P?NSXA_LE0l
+<S>Poo4.S)7^e%rl\_F2<J6m?#d+oI]_ed4i4>gO`K.c@9/*rX:eYL$JR/P#hUEZP12S6\+)$
+C]tA[Q3bjC?['%4^4G8KX?>p,GJ,0$48sKBt>tG:*-=1)3.=?ICpU].<58bZtHP>;<ik"+<8;
+:F^3F)3)Dd"lZ%"o@"St[@eH]&`fXQH.a:BcT[SRMH*8p9qcBuRe`CRAEt=K%SKo@=`@8-3S=
+IUOR&oplEQSHWE'@N/1)=AVcTD_*"_KLKKEIoo.1I/T-8aX9]oEa<j3)'PQK!e)1c0s&eE18V
+.8FJ0\huk?[9:k@M2P>E+qRAW[Sp3Cep-."]#H,qp3/J'oU+e<m"9&AEt5YR^Se%O\bDn>;R%
+J9jA@r-ENYk\)5f_m*8;1`he@,#/tt&:g'9]I(7==&@h2*C(67jX5'"\=io8$A53tCiS:gr&6
+OKJYM]dU>c,-2f<'g>`Y-'B1YIrWEgZ`8@*BED[?Hdc/2t+j+UJ>8N@#IslU1K\6!I:=j_:C_
+D1[m9/m*7&t+<#gn!i$%e]o-E[@g+-\O"m$cLdIpBQsi5&Xc%VGT\Xu#H]5cTF%&$[#7!Q=P%
+%tQe5:d?KjGBT0$u1mH,X+GL:?,L0G:c69mJF:HX%$`m@Spr[,"G@0f_Xn>oqeea3g:;NWP4N
+"QWsT7US;dOI^k%/U^<\_X)fo7JCF_mR`:/E^MS*1X82OVW^'2VfpBXEF`c2MYn[Y/s!uIet=
+67ZD.S]Qsj+5'e#u<bH$I!@8-33`)EjpaYThYlbTi+cs#ZtcVE.L@#Bl1aXJ$?MPdoDUd_1".
+1pYDWJk+^AE8'$1QUM-:DdILQ(^!l0]N>Sno,RVO]*!pkh\`L']l-9$VtA5N<`O'?G3oQbna&
+\^IIl%C]-8\icD>s>fr<l"]P=&apoYpi-]^@<Bd67DO4-]I]`mIGI08VSsCS#84SZsS1::;7V
+I[T'dld^OTBO&nr4u:;'KN@<9qgu2o1tB4M(%>:s0@&Eh"Vk%s)RC-)WpCn<YZ[<d$f*7%t&k
+jEAkHPGRVLEE#QQ,'Ql+aY]j?r*4!@U^48*!TPqc;pN%<427>nYak:F@^4\OMKha&5C>iI\Am
+19f153BiFmt_lZL@Ydn*37nnT6nV&+CCO&-RM1#*)Cdio$).>*pScDA\G<QT><mX$,0>H#nS\
+_'bC-5eq-kSACmRX//tDLs#]\"PUI:']`H4QA8o0P[LlKL<##3E])pVdno<*BVS"DqP:W0f0l
+1&MTc+,&i/W\:9#._u5!;Hk.=X4o"d`":lT,O8[,5pjGK,&H,&hhL#e;'/]$)k0UD@_HW'V`0
+XGSWrA?]9T2Qko0c7hUcN3V+!Xba)obrb?;>EW`Rm:;LD3R8V@u2ib3m51$;f,XHcuqG@Q_IK
+TsD;%E[M<On*f`5!2qt%kmjtM&)Z8oIg>H"inFufG<aG(>5>l0EY!NPhgL!(s$utimluUqr9t
+b/i%d]aIY5[PhTOoSHn]efq24-QBAWY*G[X.\dc$k44WJ0Y0#n\kl)CLd3_luu%Yp2,T?qVq\
+dmmE8<a&M!,+V/i9c;HnI+]2M[R99(u^Wrn&._$$6Oeu]C.%qOtZUBHV^"@;LfBn]*H-NT5+'
+_`Y6!oY9L3]][s>Ms-=X30o]0,+Vl<siqQ9N9ql'9C)nZ^NY_nuN8S^'!15PPg*oVPWSdBB^'
+XqXb8jH%-Q%1)Lm1#N]RTr9^h%_!r==G^$'Dh%XPT.U\c_c")#R^GL616I#75UQD]"W-?G3q]
+)GCaE!N&;r1b]H#R0_?AMf)3+NHrs\e$5V"JC=P]ZP3<_Yam2:+Ldp<TLbBOgCJr6GlV1Q0W*
+_$iR>hr&1i,,rUBf6fmB?emt\a8H`S*??pk=(!3'n9dd-XYeE%7,)QfEWljK+e!FU[K0d9^Li
+g2VScR]-mhnp<CgfkbOcLnhhra?:L+l)FTS)WbhHVFHMguu'f1+A7bf>F0O("E^S4`S<c(KHK
+r(LUKRcE]K-Sm<hD8*j(hn9BoGab)Jd^_88)0Xl]/DMU.lTEN8Z0SC`<Z4+RN8se=;VF.`Bmt
+U<"mcO*OpI[AA`HV@WLi.B<,qQ.0VuG_I=G&*hI[N8*3!Yo)Rjc8g2("ue>iG\S"!>a73/t_M
+0j;0V!bQ"]<o^RHVQZN/XrLu?o2(8J0&^>+a0<dXelP)Y61X@^e["e5T.k'o7kKRpYBfDd@,g
+eYQiPlgj$!s9ZKrt,**[,cEZTeG8sU1$!et_$%6=p6SR[^R0V>97@/0?kB@'D`7K:8Qq"Qi;d
+AV`iTGP67n)sYiqtE4FY&cXLKqWSP,2r%pe"U(`o]1f%Sqdm]rNP1Oa*D.D+`Lm?dPB"QGY@R
+]?^\?)ca.,9B<48lQ!0!3Q]#Pi9"B0-&5?1eFKXnrS6nQ55")!5l8&bF:s9nS,DT&Ad$tX8W"
+Bg>W4hXP'CYr!j)R1SGV9Mm9/)e%QV.`cJOY"qX$Laae1&Qea2Zc[&,H1W?2kK='elbm(\.;V
+R:@.&YI=YX5O@:@=+)ubq!s;J]t2.@:X9u*f@+N*hhSi#0Yg^0kX[EEE9DXm$E!rtlBhA,i`i
++I9QcVdp9ZDH.dtZEHcI*^:=Y=t3-CL!Va`Q&49/!nTV#iVfoKNuVl:2L(k@i5](75ZV1.Q70
+_++KN#!<%V>L8[LZQ)@1[#lV>`\C<HbDG"'96SX0;E+YO[F9bfM;S$(*!1!l1$&>CAp"L-@Q/
+OlFiPc(,XNoZD'HTX7Nt@a!\nV&%Fjrr($+Y!um8T>/b0dK@ip&2q^ZjME@k=G0EL@)5iAZUq
+D^76jf#ViT.)\WT3g@j8_s1kKC-[:9t88YJT5rr=V!+*,(-k$p%Scq;$#Cj3`3M6,U=H,TU>J
+!NbN=PK,\lk'P9sgg=Ng9ckp*cq[tS!F5OWMVo//&lNC_^Y_C/CT4$7-32NF.h>j%Sem6_a@J
+BYAV\0c,>aLd9RUP5AU.Q/YUZue#>W8(.[/VgSOs4+76X%,jcq>X<[[/dH$6JH-0CjuOJW//L
+Jt/<:cmLhpHN*hn$,Zl!Ee@=hVY*Y"3U_2a8,U?rq(Y'LSitLhRjs.g]KpE#IY<0T3r-UpIES
+)4^87m@de^UoM!"YLIFKg^Dl#=dq(!Is"rTO-.]M'N-b"j4(37$,f&qKk3.>nb.)N-'?`.*/S
+SR8`(@0!WqfN:ERG.Flb(c5S][nQ%Zk<N46@M(d0M3ugL5'ioK#9:*#`V8j+MIQ/[icM:emnV
+Pm:663ltSY]M78j5::m&I8\5@q844ua+$?uq3$(&3"E?BH0&P7e;364^:q=S#rZJV(H7@@+I:
+I^.UC)PlSpUT7,-Y<9R)qD18IC-Co8#D<"HmT_Pt.03u(f>\MoDc1-d.W9X2/-5,SA`dJ0<eq
+Y0H`It`.C?FhZUW;?bsj[:(#pAMJ=i4%oX]"e+OHD3gJ%!ar'`(-MkpuF<P@/@>H,E+K1#gWF
+eENBP<OQB>]ZD?<3cRGAb[-TQqVQ7)j1fM&E8qBLcrM2#JLK!'8di3.!;<+Y9B\O<Ojfq^kQl
+RBsN`%@SpIqOkknp<dN*a7GcXn/*V_7\3\RGn"FD>9S*Icu90b!pL`t-%9&-aOH]a"4=Gm0ku
+i9bq(Lp!$?qtKQ7pNOOPq]RYMVDna305f0VH?1qJ4)Qgino;+;GQtSDLqA)(C=A1>@%057RTR
+ua:A[U1?Lb^iGrV<,0c2CO0gD@9LZ27lf@N[[?$,/'//W8VJP2"C/61!(+tS!O/LSQM<1uu@I
+XoW>EY1rp\hDS]il$tSPHj:V>[Mu%$iAhm+XeXY'RWW??'KjO%]0n`'!T'@6#^bs39bSESiC<
+e8Nh%RoO@e4PS64G)0GrfJ.s@=&]',n(G_)8L*EFu#o9M+:S<[DZ&6/X^*PCErCuA.YDENg_,
+(3%#4L9"j1(KV_VOPBo`[>_7UW(ekKtMu*1V+#/WJQ_&o_S/Tj6u7#b4lX)Kl.BBYlEk-JZ;3
+GlJWJ(9$f`?JIp:,>KV@DTu9Q14<=Ao4T=-9;.!J2FJm@3*2N^k@/[oF+k\;W?O0=):%:Djc=
+@=4>@:X&lP0h)pcp$H2u^ae8T.u%Y9h6(bCMQ^DDkr2^Y1AS5dDH=^*OAS29b_.d#-K9^sq:d
+*!-dTmJp>9IGHAXF*1Ig$:$7_/qB!]S=G[c0tqO%pm`5.K72(-9-c$]M,2E5VYFbH^`a8&#Q(
+K(UcakAeai^i1nEf(qFm/jAZClP]h@Z3%7#M!`!ggO*[agb&d2q0k'l"MXTH]g0$OjG1R#_fa
+IlbbTDjuEgpKd*md1$C!HtlqujbZbRMVbn9BU.h,/hipk&+DNa/),$GB/!m6sF@!ET2iI$jMS
+oF+V.?@&368l(>>rk-hnHZ:.j(Q^b=&Y's7H,[gE:2su@"!Ah%&V`i?LD`oJ(L;\+Di1P#a$U
+P[+\acsn-k)C-B-`9kX*AK,ISUI&JX0`5$1^STJH.ZqI#F$,pj`rm?ZS5<R=pK7?=p<'?q.:r
+(]G_n_p2<d'eO=*(Obl<>n=:PmS=aRP>7W!*f.N$!>KjlBBI=3/hI\C5_XY5Kg%Le7@XZHUUI
+e#p[`Japu&MJ9%+R*_l/<ekTSTCn52dLMun`^?bYUTbu?tTLulDGL:dF]Z:0WBeUAtDU]*/6h
+m&oE+%c9rXDn&r@m`_)hi_h'Pu\0#`h8irdiYrI=T]9JQh\E"_T[ZZlb%D8jC8Un,f51mjkWF
+-9/ED2]RPhmdq@CCmu"p""d8<OmW*B,2NVlJ-X@i0%=eq*9bhkV[njFF1o&8#r$EV*I<nm(t)
+qVcVZct!=imOH[XP.>b(aKiT%ip$H"7oe7#]sB/TDbqulXg*JnJ*==TtuMeLgYho?dGcPP'&#
+6AQe+8;VJ$r;5kM_A/?2T='UM;UD>5N$A;A0[cU&ZhDT&6`qt;S.;anG#1*ihk())^&9BW-c2
+OQWJgK<s*[RL;Vrn#?>pOM?eV,O&$jiSt>*9V`lXOP"#O?DC1"*GLOZQ0Y%=Ti7O6_)`ZR4#'
+dho]);6U!WHJ2E:ES`h$r`2ThdiP"X^g2X`cacCd3a\\r7i'@2!:7UHo7Hg$Qbtf7V[n/o`Gu
+/,!mf!%i>lnckHMZnJW>?4D[^QHN&is711a(]l5jD"%\G&:VoZ_*^I&hW*)Fa+"%5OEQAM!S@
+hE*"INB^aI(Rd0K,pY[T?jEo+X[Ts+Q8LgR$X#:Ej^3$HJ?#Cq]]K3#R6O.D=.*+^Xj*#o&Z%
+*4(mdZ)4A1qNY>]7@p`\@R'/onL-hJiOZG"&Kti93=6bS9i@bDqPZ(5VYt6M#h94i!@Cb,6\6
+%I=1C6HM[Ed*sUq7!mAal<kKTeV19p8-gQ!^99GhQC9=sam(jFb"Ua`>e9A\KBIC1&JC93ZNs
+5Z'5s$)K*VXj%[b;#mU$"/_0][u.liSAF1qS#(l4T+t`NCgJA8W5lr%1lA#h5+uj@d4WpYW]=
+)CYYgcHn]J!N#Z:eojC`lDaeCIf^C;i=oArLnIe<&imb($Va'gqecrd>l"pIHAe<l$Wa-+^tB
+:NT^Ch6hh,OaLV28D4'C6<ejX)+;4YT"LH]t`7PjCbS].e9?G0h7'bYZhC!#Nj<-qH>H2i'\k
+3D=scLhO(G,UqHC(>tW=G[JAeHK^"r]Sn/+2MgrQlc-c@,usk65MX_M\FHVmm-3$`<P6cPrAC
+R=9>E1Dnn=7;[dHg$#7>Hb5o'<jt><R5r=pl\*gAhXR%Gf[1gRB;GWZEKQ]G#H@Y+9rZm!_jp
+H5EAcr)qb:'rRa*cGK5]p<AK&I?.`NX/>!C[\r4V+n+IQ@l)LE@W7TUGWu5s\?n,s^V+,F]#3
+e.$/bb?nadYCC]:5hU_:]*-A85gI_5_s^O(=U3E)+,;4o;`sMgT,MtOG6(q$=&p\<&P`Y>b,<
+.m7A&$#/:ckGI"H#0$A#edF['"UEUW;F(">DG'J$e(OMEX":>"@r-=DB8IhVHAW7?X<*5V90>
+'@\[0RQ*t!Ko]2Te^p!X[1</&U/5\"#S'6\js6\"LSjVb:XC;_7r5ScOFk>6WB_l*]as$>M5Q
+tXRSAl;;(c__"[d=>P+Sdi3C2k`4GC-e^[mR:;-GnmH%("GAj-?&%;:ZR[hFGj^:,;hrTN]S&
+(LW`5Z*PnFY't58I4@?oqeY3T(&6&_]i9=)Y?h8=9Vu+F].sn.dV\%6:efhL^2#q[>'UC#;GJ
+j@29P\eekXij^<%<3n6aX>XXE'sk"345iH;R!S8k!&YP#WBa5[:gZp%n<ed)=-mhi-Hfs7K2l
+spLk+%p>b)&]kDg4pK7P,;-[Q3?&P*I,5QdRJ$.mXr]ERdp8niN++b.;>[ociEcusF_YL!Z'H
+1g<L!(,np_Jk,VC8n8W<s/4O`50=GH&oQ'@S?h-qO?>p$;UCiAZK<*X(NQU"&p7!U'Y'&i!c(
+Ef@ZFA&)S=8Xb3JaBTW5a4Gfh?^V(OPD1h8rWusrIJlX_REVL8j.&#tK^B##5*Y];lj$;$_<)
+SdnHN\*Y%U*X,A9n8O\!U<K>X?VYo`ghqHjaOLq$`o[A7/E29?Ic"k)/p14a=js43lU/:?mOI
+;;l:GI'"*g\dKAThf5N6m$FKg-0gQorA8aTJ7jaGbc<p-LLB"5qek<gDm'CuIX(:NUNX6=K+G
+-3:,hXuJTc?$GR)si%-fd1b5FkZGc8.!'#,TNdlT=Dgka;'oXYoF&YSUpj:3oM$H]rnHA,mV@
+6a2!d2`*[340J2gmU(5$"f]0VU]\_YElV+V(?E!k:gKJ'oY*DiDG&Xh/_N>%rfJ^90hdorUXS
+%Po]&q(VAo9DdN0*Y[bt*nR-t=D0'A#SkT5%5G6hNL3F0\We:"NJ1aBokMQken0u(GiRie?;I
+C0Hhk1Z["dcE!TrJ/'q3;1SeBK;N\1i9Ym;_4W?&URa&Go1?K#.hb]M<?+aZjc`QndjI3OVTW
+"Jf!EX>IoVaS.BX/bG\7B/&R7!(IKlBqEV%_:a<_KDue&]6a,l:VGV1YBP,4*sD0G!HkFOc^1
+9`?>k&j/c!cn!%gL8hVRr&B/fQtB/bJB;\8m!do5b@rreeU%!K0G)o/A\_frr/iRn=s[pIDR+
+3k'LmtOp4#/_s7o:$o83P.f9$eTg9Gmc4BS$S_NK_&mVDE*$:n\Q]gHuGN/2DMra3Dp#H<Lg@
+)7k1']CkGY)`M&&VYoioCVdT)B#L1[]oAC.Nr#$&bJ&Bo%<&i&L)VbR1hY[K*MV*/8:R2u>)Y
+AXm@#^cf]sIS@@-`:4+8>NuDB;%r#p7"$o`"3+n.%^/lN(Z%b7Kd5!'%N%Yj'F%&s0^&2'?s#
+#juVce$CJ72gB]@E&R6Z>o1IEh&oH)jXVVRgJ5&TV1OoAZHI&q8$\\/iiu%]jcmZ;'@9+9*%/
+1jfe"q'%T_Tk9">U"Xt*S2:#V"gP8D5%9N1/kT%"7&?/S(<P<D@e3eR/JNoqs;_$iN[a2P1MJ
+@MdUC[ie?d12mu>1B==72g]Zkq-%r'=0[#P:^dkWm2!IeEQq8s7PRTlS&8A[2qKM8q:HRIu12
+KA&B5&pLqf+="aqmG^89oXukRDj&BaGAYolC.pM!IqJPYFOd#\O2#[77^K`G1Yta9,UQ$aagB
+9j2M@qr82HT4=Gh":9VV@"RS;l!i[UVB>qr'Y%fb,[Y_o<<be%[M^l10mbG!d(dm.)/*e')mk
+e3NS]RNeL^h62&rnqCgF9f:=LR^FbT-\e-aeZ<:V.OTO:7Ja6Ym?Mj<Bh&STn0/[>>V0Y;/%`
+lG32M'po8G]O?[lB/l(A">qB=Q?TaW-3K76Gp*&1ftr)CHT-S@qI[W8T/WcD-^4=*j6msKOeP
+TO?X0rA^qY`Cj;P,>_,im_5Ae5"Z8'&d)aJ*ei:jH"d#?([Y5j[iHn7AOO-;7$0IC96!6P*K#
+DS.A\ok%&J[<22/)<uk4)-"dN^jeI!nKW01tQ(@)b<]_<f[an2.7l*+&l[M(rr)_<A1haRdd`
+cmas+7BE<;=aQTE/f1dmsT+91g6KN-+$!dO?f_-fPDPkR2YYg-D_P'Bk8TMtOFZNK#+)VnlVX
+Na[mbo^G[ODi)H4\SSC=kRf/e4SX1$nM(;`>!q75THSRN\&q2iO_^30i`IdgN9__eH`X>Ljc`
+u2MCad%QGo`1`8]9O[a\&e>k(dmPZ4^EoGT?Seufk96N:)Rk#>jTeRNU+<"ApQQ`+Wf.L/f)M
+Et@@/amA:i\eCq(8p<#AL@jd/92X<+o67[\<P44![?Iu.9kb&U45`Br\V:9,bJd,9f;6.0:rH
+:En$o7C?MJ'`8]9O[_rKi)dSRPN\;Ob=Q7g(aMhka.A#*Le7Y.X=aV_`LN7HQ+8%ckr-V^U(?
+h41O-=s+cI=::Iko6:h@b`FF4mk)K4eGf#,N-c4AMm!;b,:T-%2Q#QuK3K&_<?W'4$P,`ZmKC
+Qs?">@=AV4=%=da:XojmHMLEcH8lqX4-o8^b.GgI39^pIgfT\;A@cKK+JdmcN@("We$,kBjUu
+9^-#(bWPLCT\Zcn^++f7;#X34<(je&8j3k2V.LG!Q#Q<g:K9T`!7i"Y3d6Kf,t#bSXHV%M!7O
+)6EaF,#ef%$X@/dQ04L(ChXNVO3_\HUTcI*>a>`dEj<ZS"$pJk.E0U.PD`I7JV8)5^9h;B]h7
+%#[[p67i4^1HT,Od0bRsraBj3jO+I7_L/*>Qn=X:Fo`6Ke$1lN=&8*3&q<0:!1VoTX,S<EA!b
+ZKUL/>g&+r(Se!JaL/['5IkRo8(.QC1?%D^Wl=;r%#2=If(5EbjEdHHUi!86A0?X'fsGl2'?U
+-5*lA'q;!R-4Ys]UE_#m]0DAmcl2s/*[aFq^rGoX(u_:dbttMC%^'X@jdpUp0rZpL8rZ,,bXJ
+'<[Aeg4[[#YTitTK'ECFl;;OUQ)'i.X1+(=gWUMCc%5qb++Zc*LHkQcfSljE+_7fYuD`&(q<K
+R:WLDGCS4&uGT_<-)3-]FVU<U`3)rQUq>=\4pmu`G(AW\#o#X,D/LXi(2%a<Jo'[=,c"+;NOM
+hBn@_s0LB7T=1C*G1KUoFVbnXa8AnhFbtCDePoXh#mR&HY-!PXiWJ2o=O:BN3Z";P_dk&\aif
+pICNJK&fkqZ_dboaZYKM7VS466tG_PL+u%mr"XN:O'.0Ea#YMBd:e$\04fUtg2mjZ@aOY[j^\
+fO<V.Q5ft(dOf(C*G0(I?(=/A3O7&)dbs&;VEin8Y`NFOXl;_s%\.9+3Nu-kR/5%UU)?Hq76-
+*IiS-u3nhp$\aUp!RFSaRBhau-!Y2(>"Ikj5Y8)&\7GA[0/G'2_#7;eO8ioZ](j:;kD*3QN5<
+Qj2q^*Y52I&''!pR?tV&S5Kg#Gmh$PbS6;'6A5jNk'NsKW&9I-n()=.n5A5?TYOj`OM8n;akF
+\M475$)D]og'8-&MA8uomZ2uD>^Tjl3!R+.he[7^`rD;2iCEqKe:m7IP:0':5<'nAWELgh2_/
+ROG3WY`\IKHDq)n".P\'0A$Z)<<i8nN'h+gNCh!XbeVA0t;V_hhA(A9%I?AUEg/)44gDi)Hj=
+pCN83ai]@(Sc#P%Ps1JbP14HnK[npSbH@5"7if_2F;hI$n&2NEDC`F9NB1!e0^[KVc./9rl8%
+!5a4oe&RD6F;Z(3G*MmPIo`T#CW8;gDP/5D1_ZoHUTimbJ/Mc3n4:5t1=37Z"-e@8&-;dCqLN
+Jk/'eYP'l%Qo\&449ZUIs\HK&Pe)lNB#@W1OjbV@["s(MT*[[(8n$=EAE?hWMs!i%&2d(lrbd
+/Nth>iHll_.kVsT0;MsW^`B>a/`tpD;Z>1p*-\GNkRYo)++Pkt_Y?fTH27IUL(+4`VKMur9j8
+g;p4(i2G1.YJ+2)]IcJl<V$B5o\_`Q@,hU0*p::+_@Bal:gEm"Z7THrV3aidmfflGsM.0jel*
+S5r,u<6bt<41h,U`Q96>il(BkoYAtKHIWcN838Qtil]pt8.Ekiiae-oE+1Sd;e^lJ_MM9J$``
+4)*/d`gdL&`#X/)+aEK^"95qBRKS/\YkOC3(n9\RODN`U]olr_u@34[R>Z,N[gBa6"_bHY]:'
+6>^"X\!<^.GJ6fT.WmEh.^kD5n6fGSHM](NUF1-W?p42-eXeaNMfI1d%br21l'OW9_!/Hc?+6
+\n'mf=(p>o7qs5k/#-g-jS6?VbPJsLiGqh:dIWcJSK34Wp:+](>3&TRc+?6cKFquHXFG*TAIt
+,L!"AZ(hS]/\n2DM52=I]e/EG?s=-\L&64.Bm7U=_RiRqL?I=@[pb'XT8(-]:o]@WA\5[3ue<
+Mc5P^%&Z55WE<&Eq^dAi==HM;j*7Io=rgh>)!)I"#L0OS/PZLaLf=:N>#LE*b\:f)n$o,l:5W
+o*M,gM.na%f%#2'M7I$`;qB)4oa<LfMS*pkB@UrlhiGq<PnQ]/q+/5E=jhDd5Iqdr";Y,FJnMA
+%M2>F#L7ZdRN@3&-m+gm7;D44W4Dc.Li&PANh;%6Cq<dc.@TSL*rCEG@k0CFApZJ'4iO29f[d
+;-9-dekXc%X4>3*V`(?1b&.AXHY9YO.,%70JQ'taCm_YBEAC(#[SsUQVlGJ4"e6R1C4f`\>*/
+G]G3e_c%dS=:\URdmPLUQY3oZ.)!%gqMBuMUJC.G[<nWt\Oj2<^2dscN199T7]PA.ftMpi%Kg
+BDD5C/HNW(8hqek1MUT4,]:gCn=q]Za2V/`$Rr2'oS8A/5ApYia`UiB4pi&=qmH=BCkIn'^I0
+ONe/%ciad%D;(PHXV\[82A8u?]8iUZ[T;uM.<Ar9d>+-m4I4Q]$D2m#ql#SqXSX(+$j.4ne1/
+@Y'&lsKl[:@^QHtJYaUZJlLN)R7m[Ml("cHaf^qeS*$4(?,7hbE?VC4.OVNE)<UFmW/QBkrCN
+VY%FTcHbG!Kri.J<R^+\la7RL<a3uY:98PTH$P?+4$/@!(UD2,WkXhNCFe`*<H2KEM"+bjg,=
+@s\$ND#FWiX0,ld.JR7U6is7hPX<B*tk&DGW/c-O\pe:k!'lup6;gE<QUPW.ieKp1K^/5BKl-
+JL!(r4qUPX`+tj5u[Y?XZAP%;\uaEAX>WF9_7Uam\rh5WG[UF544<W2X,8lcAq9PgRcC++R?]
+"XSG_q=8ZXP.\'UQEO%Rk/1\,lZ,:&:UKX0oVV!M/Mc5OCEO%R3-oTDSl.K40$tAhpR\$(haW
+NJrWi9*j$t=3k.MaCakW%snJ+g1D\7aq#pu4`_Bb-EeKh6:1b4kGFMll?7MT*[[(8n$=EAC'D
+342_`YZ!`O`Q95CiRH.]fI7ociae-L`^tEY:\@g*-\GNkRNBZ3A.XYtdplON$t=3kH7Xu<6$C
+2g3"/'#M,R^%W]MoP6)r*d+L(Os"m'6r3$Dc<k(?m.<m#;>Z2CH,Zm;,\1**s;GS<j66a8dn>
+$"&hi"i5UZ4g!7p`rd*nt_H>-id"R-W]*%P[@<]9$'`Z(8q'5=LKt/fn<:Dc7ISZ.kaRX4,_Q
+[Bnd;EoGfbi9569AZuVd4>JRQ#ERG?4<iR/B:6flY/6d+;(8mG'+&84)%?tupQ1cZ8@CtQ1)S
+BGcSFSsJZLUc1P;Ji$`G)/*`2WSu.\cu'jh7%,+73J/SDL?(G0780.BDi;6V;j/T:Nr8V)6e!
+R/mc)JJ"e;q_7C\k(T<.:8YA(33AEW/N]9#]^$h<IBU'UYiFcNnKa%!ZT,(OL46&+e\WdDN&^
+'k0NF14jXbnU9KP30]\2aQ$so%_JlD=dQslEQlmtm^jlF)69KP2AkHX[FD!+p%30qP*+K'r-e
+'F$@GHB58[W3pr*R!GQO;#NgQ-PBVFfb.V[W*jq+3WYSO;#O2HuA;8O(E;dLrH@XYq/WSkmF=
+hdb38%+3WYSOD]#H/]fF`bMm%DRi'[T/5?DS3&MG/P<g`p9uZ+&&;sIcWSh<@`/^D:<(]-XP[
+F@d`SQQNEbt\f`JPB\<ifE.o#sN+i>qeXXF(>kneWfWp(g]AQ\'pn=D8rlT)=jb<a/_[?#m\l
+@6:alcT/GSe]R,LV9^c<CGJ%k:Xj[1G.:_$##`Gie$N"E6Wp\"=['%0M*>+tai]oY$rADN::=
+_HAJ_WA:0(O4Mj'DA`StF)7BngTBi-EV<a$2qPEcp&iaelSYrGm#;(PHq>P@=L2'(!%oV1Ggo
+-#_3.r,-j35%0EbSl6H#ZdJd:lDI6oQMh3:JMb)[`/TYE\R;n.l]P(gpqTJqSgUNAGoH`qFS&
+GP8MN;i5pokdT^49XU]Z_3#tiHs3!@<#p-Q`0o(p/`,'dj=T247a_I^eO:"bE#5dR136Ape+f
+;$B"t)nU\eulpV2@2YJ(6<608n9[V2A4I$1<@CJ^F*M#nPO3S2)ZPMH+81@F\-hVZY-,i8eFs
+XNu/qAVsQqb*a;6cDoj`(8h7,q`&"Af18!RA9H(ucoof4[lBq5FF[<=b&0;2=;e#WAS6!DZCD
+D"N_6ui?eO['Z'@:_^''AC!MtC3F&Z(C*b9\1a%B&eH=LNVABU!9S.71;-b\0in&1`urD$SV[
+%1=dF;3ETH*ZgG%d4Yb%OI%^F-bDRlq2>M2UtR!DOA3=c-!AV[W#ur$eWUCQ'2VQZ1;.2J"1W
+BA8uqS;M&=9;-ne$i@I_W>!=lF:6)Yb-]8]i4,_)"8rI/ql.Emr>'ZF>$E$%e;_'M&<oIT.8j
+fjC=_U`.)(/o0]Tp1+]=O$]iD1AiAnSHR3Vc*:G7U)"bEn#`o?>jN])5=!ZRZaXoe-rU`bgp'
+])5=AijAT:=e&NM`G,&SZT,'$Mpq)1AoV!'8&8oiO;BF^Q/qDf<lQB7`OLm6-^L#1Cbe/i-GM
+7fE`F\n<XQ%fN"[_6&R0C_IkRGF[^YFuEX\J*nV48*hfM^?;6<#[?&Y7h^o:GQ9K4bd.^i8&@
+f<*^VcULUm;C6ij_-X$LWY\p>(ejco$1D&\:=N?/+,4:8indg$^H0;`[ZQ&e[$]]<i.i-*J*;
+sEFa?tO&O'?fc@!g&k*FTjV4cI=c<M^>hA5^OX`H_QIXGBo/_V+ek(G)S/(ddA`Z:`g-JkQJ&
+Bs(Ufo<Ze`0VJ.VcM"/%\\+4kk(LPoI$oU5gcp1<!<)Gu;mE0ASP!b?8hWQ0hQ.]"CEqK]-`(
+@Ie%gkb#9JbqZ$(m\$,0+;qB3@*tN-:+Umohdrq(?s3G,IDMeH?#aYe+YS^^=D#.li[u&A=[)
+tgBK(?rnY5`mWD^WN@lS>@WEa]dY-WL%gA.8'CkpL)22:LOCgi3fD[e5acLS_JZ%)Z*0C\grb
+i1*k.drT>Na3I-UEDc*>DEkjA'?oD?.Bpmnk%E9Z[=&MHU^!Z7\=jt9`=Qp`=N)N$Sdu"EFLF
+>>+o-BG7F"^I[<\eC&=B[?'h[4.[r!K_Fg\'9/opIZ?DeYlT.$\iDdFA`LCI'RVoTXL"lBnW^
+C+B>BY/.#kp?obJeL]k'D*R;Nk)+VC]]+ZM_J7<;V*HeoFHuDKJ!Pji]<;aj_cB\^#R5IG^6P
+'f]d*E2pXWg1i'RH,Wp/_;C-^]Ut_(=1ks,4J]']lmd0u[N;?`ns.W9:9;1.Xh/u?343q#LQi
+ON331`OfijnJer=i^]C)nUS2sEk;7<d$1qcn*_%)#pQXXrL?V4C%R)ni&I8-#/LTG)215h@8W
+N!,pX1r&4)OG\HQf!WV]0_gs@%<Z8-c\6HbO7h;?K($#UG!B1.r3'm@p3SD/5A:qB(P@iMoBE
+)$aY,%/&gMTqh80C_+L\5+kp`bXV5c@=I^p;>N3T0f[AbiEQVd[.^:&&k`K=a`ldV3=I^p;W]
+)R!6Rd6+'c\s9EE;D_PL:IHHA$6'o>]Ln-C(pb0?O!GW='AY'_<T.f<+Z2)I2I3&YjM!8!1+$
+J;b8HQ5p_g7rp;`'.CP4.iWH-Y,U?DkH>R58N*%-Dl`2O2R4*rEqk)0j-FBn)7"7o_?li,OV"
+:Y8:*>\H%3-nB175T9oO,(_5VOIV*)WnmpUFG%O[QBht0"VFI_V$mKb2O`VFr5:S]k<MX+hBg
+hh%$%YI^Y3gjT7S?-O^;oNohV(K%%3[NV?,]Bouc`PnrXHlO[I*u-q>YR-?!iP=+<Z]Q.b,3<
+VrDR7'em%\:%bn;4s';19H@#74.p8jBMS-]?"\p@g3l#IKFg>Y8dgFe,'"ZIcN;C4OX-b,S>1
+NB7c>ZKhQYjN0:L*-N4.3:9I0hm<lu[3@qjcR*mVlWiC7_C4djXM*G,emsqa,8U,.P`;?+'%W
+4r<aNCrQ9pB=NB5/iSHiHCeD4I](V:(8o*B5>I361VXUX,J(=2L0L3CXft0<`ETt"6d##<WO;
+cOc"Fr",N<gn>%j0`6_%=A_p)h(Woe/jh&<OXm=&IZVj1_2gASl>:+O<CeEk$ja[oce-Xq)LI
+CJ?Zlq?bOSBg7pA`DR5T>[ufpN4aDbE1k#)&i_iJ''`RH$3Y:ZI5ILS?0(G(+1Ua8d-Rm<q_[
+h:4"h&X]RkL[XPSm`JPB\<ifE.@`=3>/+(E_r=rAI-on`J_TEZ@a4?8OXB;`:`JPB\<ifE.@`
+=3>.oou`FRB':[_+8n]M1A.N,.hOD0aI=]FE<Zl.#:?D0aI>]FFG.?bS+qh=<JFQ[\b=]QVKQ
++CG!,g[a&MDhFS&jm/+^'`4uEQrPXTh<t,e,jerG960[q2TVk&50I;J936#F:O*n;DYa-4P,"
+AQ5u-P4R=&FX<ZQUKT45MTYo.=!-bU4BE9am7Y9c2TGoPgD/t^6%244ZL9SZGN\FN3MXR&QUP
+ht-*^6[jDj_^)X\U8hJ+LYb)XR`t$b,^iB;^m'[f3"&>h?H!*b@fNjX5R$K=K65.o'/ph>CBp
+!G<>Z][5]%XC%&-\;gmW)X5(`0=3"l6b_^E5a(oZM$Idkb7\!YiSQM2C1!O(X`dNpIGb6-S9R
+AY"C>n`Op<H:M2_AT7;]76sluKiSA%H.7Y[t;=PAQr_[]$L`XmZ6;[`1,0WO/H#2k=K)/:XWN
+D7McM8_]Td,u2GZE,K3&6N;<nhF!XMjGV^5em`pDelC$:dhhFKh?MYBd[_qm@TLd0g",9R/^L
+1S-=;^,[Pl<=q?PU0)0Ug7AoVRb]T#[p[`W*F0BJA*.(9;K<aPY=\);NohF!XM[!-[1S8+Y-/
+:Xtkb&&.HVI!D;EGDI8VS0<gi++Bq<ArR.]FD.K:<_Yofi6\sGeAeaO(n'a9:W"G[?YZ7Qa]8
+(d8#s-_-2?J2OD2+-W8fOD/n$K]A:(@J%tQ]P4EftF0`2W?J26r<2%?Jg$L*O/t_5YX):@O"1
+H1ThW]2B3<!7G[3.smDhB#K-i0L*qO7G\]RcReMs5OCpL%f9?;2=XJ!]I_o_gmCGoPh3QS4sE
+b7#,sGlq*PibBO(>q<NmO2'0:*Vt4+U:^qUgrn:a&^+oKaUO+bbckZXKUkif*KRtqosHDB05l
+I_qsnb*g,L=Sqa["[]Z-4BKB)EJI>>P/?'i#dNbpj4h;te'))fQ:5OQOV?%_2+Ed_67dEC8e-
+\PFg_MfG<qW$GYG%u!o?*<YCp[]NhD33eHijqo2<s;%SU2M.m>-(U0ag^Z[X3'eMhs'tII6S6
+>h?J8fQX;n'gZ>[Ll];$i/P^-hbIY[7FSnL4has-C6([]0)u=5O/T6Pt[\H&nMj#a])4.fu^@
+]UXjgA=L#&u\q>)M#(^8UT\#jYZ1H!aNr<ifE.@`=3>.or`RZ!t\0'e@u;%r&h0IK~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 590 574
+%%EOF
+
+%%EndDocument
+ @endspecial 396 3967 a
+ currentpoint currentpoint translate 1 0.4 div 1 0.4 div scale neg
+exch neg exch translate
+ 396 3967 a Black 3695 5692 a
+Fi(3)p Black eop
+%%Page: 4 13
+4 12 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fj(Figur)n(e)i(2-4.)e
+(The)i(Gimp-Print)f(Graphical)g(User)g(Interface)h(2)f(\(GUI\))396
+2612 y
+ currentpoint currentpoint translate 0.4 0.4 scale neg exch neg exch
+translate
+ 396 2612 a @beginspecial 0 @llx 0 @lly 590 @urx
+574 @ury 5900 @rwi @setspecial
+%%BeginDocument: figures/gimp-print-gui-1.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-gui-1.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 590 574
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 590 574
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+591 575
+12.000000
+591 575
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPu4)Z?8[OrK_dcHH6G#pE!6qW3(o,#C`)Z'S)*M`YO51kD<5\$^^4o[c&>+(!n9Egu$\(
+d>!"\-_U.AN'_3+k</m2W">_K6_Q3:?J.=t:ff9er+\77ssO8UTSLo'pG5MA>H^>V[-)#(sa"
+0Gk3&K>H1Ec4T$^pO_p;*7Z8JHTa@Jl'jgsr3B*<':h=FI3)[i04-Pbq>3AGjj?ZH$OJ:kQ^@
+reAM4hrVis(I4;j\XO[lrXju_&VEHF86,qej^m#+W2!D]XVjo2Qp_C,,$5/0?B9W+H.M$At5i
+5D.M>*_[qp3)0pLE>OED</o_H9@`LND_g6T.QV>n)?=pa1cEndqLc8d2lQRrc7l2b?)WSOA67
+'U"ue\_@b&$'C2)":J%I\4YL5NbQ>'I6KghN]A\92fc[9ta_dq7&@IujL/&re\b'mtG&,hEqk
+hgYO!:-0fi.!(BtLcX.aUb_O5'Z3MZ!MAE`lpEIXFjok(ZTas8DSG`ZCeB.^lQl3pe#sF;"4u
+07kI3H-o:V9X=!R4l$.*cmDeFjldtU6=_&bR:ll#r)VK->G*nekmep;>PF!=ZtIn;8JL%R$Ba
+krI^"aZhjR=eku8MZP\`/!AK@g>Id\19/b:`ufLU9t_0"BeC3?G5-7(_7[AQ&HrOmC?3]a)qR
+%-TW\SOd6>,tD<A+&]T#$'ne9..ujJqd6,>Xt^'c>Fj_7.FQ!Um"oH^Xd7lIUP;)'b0D,?!gi
+A9;aY<S]DS'dPEfnp*JIjU(6:o'?^h:#c?)Md@<t+Sket,Bqt*,a'Y[*S]K)-m/V33jp,\d0'
+OKU/??oWO6iGP:$@f\fjuBhOcJdA+=Bdp>YSk?!i"A)DRJS`r<1S`ce+Ra4KiA!VNY-MRneYQ
+"Oh)2fE[rSJo&,B>3-,r^N#_NbdS^^:4'ueUf1\/k"D-Ero1a8"hVF.?Tap=:.G>^e"6)/F?1
+0kSb<Dfdk:+L(Ctp5p?t1m4P8=uM<]NeiaM%mkgOd:&G[tQ-N_br/W/@2dttk^C($n;%@Bn-_
+/u[Xe#=pd:,QE?[0>$Y##(r'?olhgl-pJBV]%7[g4JQg"/]"$0V)soFD;2\;[o*hD8C=o6%Me
+*_%*I-cpm)6YZQC&;=j&9_/u]neoYZ>=l,EOr>q[E*:R4KFK.Wp:2,[@l5V1jLrs9mat3i@;o
+U2I5CR0j@?9&;ll?=u:,SusBlf;ug&TrNCBL;/asW<9IOWB-+cSa1J>3@uW<QAeZmj$e=ZTR7
+02j&T`Eop#HVsWd-=Amb?o=KUjZ'68"fSNKM'_aZjH![)hL655VUKV,8ihf?q(7:SY@_'O4YH
+U/)%UV'\]>l-2J7nT3kYYQTMrPlAEbB)WIT@gfsJ2o';\^T"\bg4XR5B>Eh"](WGi4?9<nX%T
+<]DBaQ6D_T#`e&bdDKX?oli2M,df^=Y*VB[GUO&#7&_W#+Og%QKtiKXR2S0XEk1\3n7W5FBW6
+Y'SX"L&58u?n.]hG0V)soFD;2\;[o*hD8C=o!Rn#"QqfMH3jf.?W<Q%o[U;/HJEbQ!9W&d_S_
+A\[<!0!r>;2U_^iX<!VGdqk:2RghWWCSJ/XT9jfHZsX#;,fOMWtUjAV6`_e#<QKUJiJa:)(GY
+5-<VuGenL%_;=BT(MB(Ug8$Z)F`YYn+dc'b8:<=_:,UZ?SVhE1Q4RM.E_%"iFEr"];I&(@Ja$
+-d4jg5CB=D+u1T=:sb]:7[:<TEndZWioMuD#%*+qbQD<]!0h6XqhUf1QhSS1`qUD-NuV]+npG
+H-M+'<?8Rq@-JZN?/=l:,U\YaK?(e="Yk,*nf([OH82WcL/5NIs*3"Zhjg/8#s-ZoX4'&9W&f
+uS6]>QSSGr^C($n;%@Bn-_/u[Xe#=pd:,QE?[0>$Y##(r'?olhgl-pJBV]%7[g4JQg"/]"$0V
+)soFD;2\;[o*hD8C=o!Rn#"QqfMH3jf.?W<R^Fe$%HFI%?5Od`ogGYfWTSFK31Vkk+2E)4uS-
+&VVgTk(>MCjA95FeR3<;qXmpPnO]+76B-Zb`B%V"TK9>O[hQmIM+MooE+2Kg_S54:Cg(Fu''?
+#m8Yc&0>FjYL*3Fm'3n7V6F@%l;1Hq(=N+Hpm"a]cQ&8&t)Wl';LUtM"&8XSUK\X?433dOGrd
+rWBtUsh!3r#K,DrlZtkX&s!&@Qg:IQQ.09:,U[jmY#s[g!k[M3K[:kZAoMjV]+o=A-[KSfi4i
+4*PI<PaNgk#fuT3<oUN-M]@/DNRi4Soq0%^)3n7W!<q.co,aM-%(P*g!Z`@'M'5`d#UgQ76i(
+3)(%)I%c!Rn#"QqfMH3jf.?W<Q%o[U;/HJEbQ!9W&d_S_A\[<!0!r>;2U_^iX<!VGdqk:2Rgh
+W^34OT,A)(G=rY=UL4@iVj##3LfuhkT>T1*?;[L3@iI+m.UY<F#LfXRVGhgqSLS#.[0P0[!iA
+nC0V'\$3jf4AW</qqHSD!??ok\#e#<DG;gU3h.UY<F#LfXRVGhgqSLUSb$)d=alRP&m>6uI=S
++19&kJBDWG!BRmSLQ&:8Ye#MmtDc_Y,OiR"'t`\c&QbU?oh:aU6A.*`):5s.jYSE`/@`p$]@%
+,nu-/n>@uWHgo&SLcN6e<$9$812ITj.;nK8_PI_0Eq7R.45<h!"P7o<=!\\O;*@FEfpqm:)$'
+mXI*B1e,NrB5Um?6f@%tK/>6#=:!rUm%"7p)S=_@k[<S@.g%BKqVN/-3#7gYS)?FBWRZ;rK;s
+3<NQ9=&Dc/kCeS3U8Nt]<5FKg#E;@b;<WR8!pK*0-A1G]@ONB?6b&(hH.(eFTb!Fh/a0f?gF*!
+%BjX<3kPCn@\k1X\np!4KRjbS$Ka+S5d!]&=U*iNnc:tCM5VYUl^bo^]8fPBo<lL)Im'm)c_@
+hBP%IS""&Q(t=g.CCoQ>e6dde;]1m7TD/gs?5CD/[N@l"%/mniDC<)<edc3[OXm_fKscFB)"_
+NHqP4n$+(YasaS+(FG::64b-!K#aD6jb=[F@QLQK0Ue!*WPgqDl+/?9Eh[5Aqq(u>09WWKfkB
+Kg:1P9*.-HB/[^:,h"[SEJR";Ckd)6_d-V)>nI)br3OYh(3.i#[eJe50p'g1V<K&=Y/1_5b6$
+V#<-4tAd29Y2\q'`?(oda''<Y&5="5f3@?d+[?>eTN=(%PAdTAIH_:\[US>/pBqr)<eAY=%@G
+[&PZ8FluWjd,q(')$[Sg.8bFC3j5BNn16ic^KC-.BfVMs5U7\GK[$0o!e,9sFg%8^()6b)fPk
+;)"MIiZ(afPH*>L7tR2(kChgKW+A.PB9o@/VG,AtXKGB\;"sA&H?e6=<`fT;XT`+gE<0V_#/%
+Rn,%c*"Xc@!rXAmb$gH41ne$K3Y`Vbje.JVG'P4&U<r+1Q8uOYXSm7/daH5@H.M\T4I/`Odj?
+`79heW-`rVG3qPhF#S\mh7#8t-C\]0(I1-.@C+q]Fa?$cGDr"Y*`=Me;%lAg_P8.neh74Bg*E
+1F,=#]aBNJtTFP%`:c5Xb72L&:O'OW$U_&e+V`W;%Zkk)qibZZJ;s-h'Ock9iZ2skXZ&r5<h8
+8(JQtT^;pjmBE>8u@;Zgo.U),7)r\hn<[j7sd!<cU00GJ^G'dVN192*0.Z.3!4h[+@^<6.9F+
+b4oCh1T=!_l[7WH=I>.\]iEc]9-KdLVY2&E,!DVN9=mq']#dbr"D[dNc]\;DX(fA*=']6GLS]
+V<g\(T!A`&\l*ktS5@Woqisp8'kf"dW!=Je:?[I>i-Tq:qd/K5!PIFthh.d%"9-,+n.rf?+b#
+!EoNL#dQhn53e!o;,I%VdZf`u]jlqp)Q']SP3B9#8>kgmCaeimmUMAGo_]/*qP[Qrl8*Ja_R;
+Qb@eg[@B)+m<:IT..>7I#:*>UcLXB\IpQ+FSZ=$(MXP+"q"C!Z!7]VMoDTJMEXTh=N%Sc?m0#
+^&?G%>?;0J?;^<0W8q&faNT?us>/[<O<i@H!`BX/IlGucMW3c9[6CS)1=XY/9K!SY=OV]/+(-
+qXj+KuJ6>4'Q%`+Y1N,<J_"gn#J\[jV.R+!+00h`X66!\BMM+;lh?*4GW!<N!p?:QcP/`LgN]
+:]M@9KY`G(PQDc=LJRFaRP#B&W<$dbCt$A$dg1aF"$M`3YY`><i77u/:4Z"F<8D80+R5j**'W
+Yd"fP1g4oqLQWT[9ilRk4=8](PZSIU4jdL!$MW%bpPNQ7CaIW4<D1D^;hF.@r*jpq;9aW*ffF
+8VH(k"'k?l>]!?N+o\foJLg8\MI$_,lkZP/e+3.B/3r@@CnO;0K2oZ0\RJgA;J9cPG&u50.L9
+aV.MQm9XqDj#b'&lTa;BcKC%IO?1u=&Z$52QI4mFk"8%s$HunFn:)=ZHVhR_E_kNjeR^"d0HC
+>e@Rhql`6PI-(\X>7A)h3LNSun^(S)XL,@VpA<L<Xs&9L',\_'gHMh2+5*"/)WeJ?73Rbjn&D
+!ZlXcrYYI\]gj!c;*5GY$qo`>A^3Eh:Of;HO'Z;JU;*MT9Ft(>(*o-9+4aB+1ae5VO=S0&Qq>
+C43])U0JqS_s]E`S^do!X%kK`K,BLjM+Uf4!m00&2$rVd,m$0W(F?1#3[f3Oe36q[#kGPJ6K#
+NfX?4OtP04LS1tfW,V=m$8.SJ&EWoXCJ1"Lq@^hdL\@-kGO'j)<b1n#Rt>"fc:2iFf/=kReQ=
+K@i4L'"=N'YlX+f[16n''KWhtJ_bNo"5;A:W,gan[;#$NBaG;=o[-">@eD,Ap+cGJ.VJ$Pk:e
+o_EC/K]q$]\rY"jO#&;qN4:FpC<31T"[E7Cj"8ki5K#+fDml)5lK1Ln_HJ`,o@Q3]\-2C&'R:
+r?9U,4uB9>.aI1](3RtNCA5=",H&^FFa$=BG;>L5UVDA%OrYFN/=d9+k5J-::)Wl`5P-<g,uh
+j9ITJ/c3Knj;rD%0T/>G-MAlP*WWu0^<WRiB?%>eaff1lV$*-HP&hE,>&V\^^MV'>Go[LWKC<
+P5)3S3N5hSIU7kF*@2NU`T`U\G+;7:Yl,I\r0\F"LN7fiqR8ejV?34GBVCE]]S9)VmYoF1aO`
+XjuIXs3N?Q,'.oBK'I*KiDE^&6(dZnjm9Ig^G9IbCS.7St<P3;/L9Z#9j*dKHY0aDZ,?IR/?h
+O9Ur`>bGT*-:),^J7`$]M.M%5]Ur"dM4oUQBU=aLP0f6f[m@eZ?--9@Y>_)3*q&ejO75okoVp
+E5<o(iFkA)*T`\dJ1DG.3f4mjNjuDO=\2=tkt@dMgX@V=$sQ7MM;D"dGgc=]JpuX#-&.?eV2U
+1mX?S+kA2Ha,8c"7=6:7MF^Jc.%2KksCVGNBn%MB1s2)>:j<'ohZFu1Gb`/OB1U-RNX0bJ!XI
+4Q0ad`s@5/"M2a)4s=j5nlF:Qcjt>B>n$F8C>p`TO$D>'gK5jn)<I_lq!@1nH(;l$,n*^@9Sg
+YV'P4ag*"d\QhZKO)PRX57FohA0-ZXg1=.-q[RteG#t"b$?_'#5_9r*Y4L_0jPYRbT]ePRmA4
+KU>$@_3Md@,T?(!DV>82ZE<d@Su?m.\PeW/UV9p3rd(2S^$?9Et8J(duiP6kA`1@WJ/82!`R+
+m>39oVPTi1LN?sTRSRoZa&o]>;JCbL@O2b'=N3K<7WtFddICKA39fK`q6s&QfR#5CYm7gP+^P
+YL9UL?pBY"?>#s(-\8LS@NEVb-/FVUT;S==f0>_RWO7@ko?pi6P]#"U`kInd>2-)X,T.3b+S0
+*t7]@ELk\nYGD)N>^5#UHguddl&ZM'VZ1<qh#rhmZ`STo0M#1Tj,g]^LV?M`Dp.,mSAh^\s&-
+iLqMXK%8U=750B"]<lRuQ&,g0&M\OQq]V>=#^V\=MeJY[7LD@QC.&,NSRMI:bCDeLX$h<?U+`
+YWB,g;J)Wo2H!*]mtrFFW_#U5nL)ijQ=,YL6!=Z&-g#[L;tIn%8SBf&jCScQHVqWIkOm:5SUK
+s6_N7WXmOWTD!=S<8tt>kY_aK1u(Y;*/[B3'rrQ(mDl>?Qg9"tR89u-7X/3E\H@P:F_VI:WM\
+-2YF&G?%DU3q/p-BK)B4=q8i]hQ`)_q"G="KAcL*aLDc'"PnUbm2/"IsL:-C8oH[_W[BWST`W
+AS)3CQ),`OJ3j*ehq^YCbuMKhjP?G98`%oY/8Q;rg39;SH83KgXT:`\,sq!*CR>K*(i(Jqt^`
+=(N;>N!bHqi8)2cLM,3r:/ki?Qm^&0]l*>Dra;,aC[`D==Ff4d)*R:qn-W[iSaS,tIU?#:CQ5
+o9%TM:hoqSe,L46b\IYsU<,`$3dXi5d9F]$A[-(LGL=fK1<]?%kbP.I&:?LiO7"%5"As-]q]u
+l8fq(9HIt^LW;()o=?OIeFNUD%@uK(;Vn5,lVGNe?Ec]<OtdPV#_K+t=c%;TRG4Cj\aK%N:2J
+CUA<(e9SPEabp;1n11s.7="$cmcA/j@km)gV!"FA98S[:]n_mu^%Me4_)Eq_TaaRr&^VM5/Q#
+5Nc4^'i#H8JY"#4^kiGfmqkY85K$'l%"BT*0O/Z+/MA$V'ID27@_Z_dU_7"#(,7J_thZh7`Dn
+V=#N@jR:gXi=.T/"g?m#HKF.hJ'H%7<<Hi3)rdieZ"WHQJ68#gB)k<#Mgc,Ru5!7=$Pq\QDHl
+*C.q<qrU;ZC&mEp+i")JU9"aIu9c*mG#dS^Q-60+&Sn4Kf]_H]sB0Km*_cTJ0Z^<s/2@&bU.`
+S'LPO3rfBe*k8$oC4K(,X<ZC;o5JAZ'h:D,3Z:4B\HLGsiqn%h'cW-[&@pH4\JH&p'TshLO:X
+/>J3*Xl`/4KB3)1.UONOXP9%(XSM<fRI"$2F^YK,MO?fTN%lH4=#2fMWrJj#&G\fY*:q<lqhf
+oXu&&f&](mlMP,`]RS`kp9htluU5S)>5]'PB$%s\!siD`C$I+Vob3NEJ?5;3QcYa]C*J&9)PP
+?Q84o?2!Ye!,;i$@d@o35l*K+R5Mf^qqr'n$\F@01XSZtkGJ/I?)g#`KIUAO34D-\=jI]]pV^
+i/XSOK)?X5_1#42##YG4)1:$)GDnD81SRn+f8)VWY=COlCU!H1?m_?/TZ1F`V1:%3l&1HT\e>
+6'XhtVrkQ-0SP)8"'@8t@/0/T)b3i'20nrpXF'd1je!Xok:Q>)h2d&4\9mGphL51V%hH,kTn>
+4[QkuL#nP@Lq=V@O%rL7pF*K1'^8="m:$WS/[9W7IKcKgP3DnCSEfs0Q\W5*D#L0R&)(rb`5j
++5&e(ndI1U&cW=$)OmDqCY4\@Hp-="\&pN?uSPh/U'+b]=e(8iNEd$TV6N.qXNOj+$SP1\-"e
+j5I6Qf9ge)jHC>CYI"e,^Sq)Be/MLBG8Z+7[HV9`$mEq:rg:905qu)`XjlL(3lSqMr')]NFhA
+KXREcMc/fH%CB\8IO)UUc8$e-D$O<-?f4;*C!%:TbQG%`sOf$p`&]7ld5@0KogBr9&jIa[u!l
+cQ=3G^RO&.r:o70iVER'XF5_b0XN(:0SJ;*WiZdf1_ckua4VIC>GYMW?7L?Wo=VQGYu-5hl^-
+T\b)%jc3-/RW1'[;/SQq@m>"fK48OQ-n:tsC..Y)ThOA`'hh;I>T_o&)g*o?WUh#6WD+9-N]V
+iQ%OrTh?km-IJ@P1TKOT:.2EhtPN50H?g#EtpH&C%o0Jm4Da-[7=^fi<UM?hd3K.^n4A?''lM
+R3<Wb)3Tsf/Sb\:urKn)4[$*%S:!g5cW,B-oU#aRO]nQh>I<(TKL.o('p[IRf_[#DmqKLbNO+
+7+Qqq]/^5/LB_::C7LVSc2SA\DG;:n>[(0LW4m5S/N,UcH&sm4Da-[Ds%("dC=Y&+7H14'h]#
+-aC5rg8EmaOrsJPKr^"/`q&A]FG8sA?949_2MiHF]9c2]NZ36!S(j-F@4[1RI(0'IJ)0MLhVL
+DC\=;HuDGG2"IVAZlc@#*ICoTk,6FRV^/g\QuOkjHmfN2==lr;@#:O85H39XP,Jg!kZUHnn)7
+i)uESMEc2PU=tJioQ,55kE$nSkmc@A'DUOGL=7Ga4rcuL@`7-\.AKuR7nkd?TLsG)sO.`F8?f
+O'94_ob^1a"$4l@,)=nDQlC^IEETMp]YBSiUa6Qs1\<.C+S`(H.V^j?Vj?R/27WWd1+d2@<^k
+aA%>+R'm.3_4,ilij&`glT&lQj0`9mD5W`0@%7N?/$ml"6h:8LNeE6'"P14jNM<5W!U[YuYk;
+e#54i:BDP^J<"^)mM%+=kIp@AXV.H7oSd;?\i[AEQB''F*iG%/]%`_/pe9`]M60^?i*IA40]/
+Df(=0'^>QL8j1HCD:#<,TM4#F7,+mVmY5Z:ZfqdW)N]^(/klLtD<OQh,JkIH3GWSHC$Ks>]Ve
+;K)AaWc:,3qCPF;h9p&\J@o6=F9(k]J9sK=\<uRNM&Xl*A\oK5A&4/HPq)mWoA>H)$6`+n&QM
+KncuV+\s6JPf'G&q2tN@f=h!9%@#HF@D&)gA+J*nGBIHD7]&COl7240\<:NMAXMG3l[!C[?Z'
+7K3']'pq+_>m>lEoK:AFkkb@siG5*Q=H/a+1uOp0FqUPf:>u3_UkGX8#NW:Au+Z;T!2orFi'?
+7QMQpmZ`d='BZ-3bJfnPM!Rj#G@.i:'4?_X3uZe+BI5u*"m!K8)^tg9M/kU(hAK)&bm-<(q![
+!Oi$JPr<cNn83Zt&[Tn5e,O>d5Q+N$mR2NCPqhFZ.3.qgnbD>JUbU[,SPSnC1LJ5.5XVOH1%l
+;".4@qU"e\l1K3:)!cn;K67i6X&BmXKJBu\rA\J^ZH<&*=3a)1.GR)o=I"5_,-Van1f7Gn$TV
+<I#VfoAM@(updYlJg=n1t,(";&%UGmmC&ij"!$,RFgr(4@=63c!F#Aq6K-S\e]4IcBj@)7TIH
+WqEcPR!5'M]dAd&K)86$\(R0NR_Rm4EVS3'1"''eXNrLt&,'=Jt'9INnNgrXh='R]>@(c2nK/
+?$CZ[)$fnR-]QVD)0LYP#.39`epF7r2+8mW!H`Jebg261GQTs*EMDS*<bR&<M5-eZlla'iR0B
+M`>bHn.F*lV$fVR"$d,uj`Thcml]E/u775SMP?sDP&"ll;g3pKJC3bFG)Eh$E4G7rT,_F"lG[
+[Etks7l.fdE)YAN+D0ra.r1cUtbi.2*Bj8FPQtscH9,6Lp?jX8uDr-JTVHBS@eY><$Bjb>iH4
+bM`C\<knFYIQ49-'UV&;3'=jLAJtbW;:Q-;OQsrpZ/'shLl\t)#q;Ib@U-^_qHu6kceiC@r3'
+37GG+t!lflGK!:'Z`rCDsWqp_8!ZS7WWD1R/?)"&AeBct70:$#':Xd?QT:"H'@&kQ=91je+dt
+3qe:*JMEP-M&!\LZ-WMJn'"S_hb2JAV=^F%,Ge+C=%G(UR"j$\]/tT+F;7,DpH@a"i@O8E.^"
+pZG+YgnZP1mIhjVi.=VX(DGD)]43Y]"oa?tMU._9kQ'):)ajeFB%/(a"53k8glMhA=Wk$l@l@
+ffT+`%H0*c,ss6A-(h6Q)8/T0'G&Z@l[(=n&hIF6,!KdUi\/GlWnbo(&:%m#ZPfjSN?e.Hhtc
+3S]Yqq_Rt[>&Tu:.jlu@Kb>iYa5/O56(3+Ls&'A7tmY0g-g8_+K4.6=:$[m5L3=71Q=.9_T;J
+4V38TRQo]QmuW`TbJ[D%pr*25o0Uc"<9bAJpu,N/4b!Gqpb<I]j%e>h!qp@=6:E`=$[/H/6S3
+ggplAD=W+D=>-5n,9-iGFXIiq'ZT\3]rs]58Z_*FH1a=ZK>R^,L@@t*8hu56X]][>`^iUtHZo
+&Yge#CeUpa?n_UG@jVhp#QX>4LaZo9>3ChK@&?HM/J3#tD)`s(9jalGBN4isuicL1M&H$MeJL
+E:tJRS5?T.fIC=WgkCueGi2#ipKeP__4\XJ2SQ%Xl>n6QR4-*340]3@3@5sCJ%_oP;jW'j;+D
+04.Bmda8.#'M2'#0Nqn(0FFr@%r7X5R6XoN"ocr\e3]IcM:#c">9;b.H)Y]*NFsh,2n>=ZC&(
+MJ!KTT;&?'2oHOZFH(<#U$Nq(;kND[qM8+gDM:pPh,Bn0[2;"oc@,"gUpjs7(NC:gqcREst%d
+G[_T$!hNj0Vk!bIU=C]=0<%k'5EAo-]jtqp(&-Xs^;bJ/BkjQ>0g?+gq49!$2bCnJm<l$Jdo6
+pQ:lb?NJBIVJ58Q^:DiBX\C]_%ReeL-l`UB$47OE0Hg1672_<2:n=/3!Cbc$)V/9&&t3*P/&7
+AFk1:$Q[A)1G`tI;+mol'rPF:R[uB9:=_dC$JSFL,kcYg<$uUjH(s,SjX5l'Oa*W$8FKhhG:p
+J'OYEuESWkEm6b9T4!<5>@U7ZT:RTL<)?(juHV9`$mBMWgP<(eJEA:7&4J+(_M(IW_6;M9+fM
+I'UMsJ*4`S]j>OCSUHR0XFr0epu@7+oR*k\"P2.u-?_+Vj7;.!%&Qdf$'1/R^]Ja&[ag$-7s;
+UiSb)AI)58:9A=]&1PohksO8M(-92iSYTC[_dTuf?M4i)c'7FC.]tS-?k)c=3mchR0feuc-J)
+T,VGhhXPueqH=f<P3JjeV<GdTsD2J@YncTI'5=dVnNBPJ8^q$O0[CVH^uC$NTDbRhR#:ua2_p
+2`c-&lJrL4_H.2gjglA:@5;T??%!3YV;oEL^u2D,'s=T2->g&dStI(3ZmLP&#qH)%4JS'Zg"E
+>1)6WW62Dhr0-QViF-8#u317'iRdk0\'4]Z9:'\XN+*As28"Ea<VV$:p2./JQ8)no=3qONr3p
+AD.ke!_/=JkmD[$d+/"n]STSU)$9l2T8D$U"o-176Eb%R.\$%L7#2QocPA^m-5hq?Ki'<d[D7
+1mMdXh\7cMq\n$ZLXRF#_d+/_As"X=_&]J)l-pbYG[o/ARNL;$F46h?Hoi!NVaBaF7PbXRP/C
+7c#Z,?93]'I61JK+_)pcrgliQBPM:q%:9VP2lBJ*$3TR*K:gmY*l$XHXE*[)HCT-QuUR^/^TF
+4T5?CqKdK0V-pmYo-K&n!iW78VIGSCDs^c9cBYqm']Xm]#:;fP%&4sk[ItD"sqht.WD>b@k=,
+^f`i-/Ug31J$"Im/)1,oSS4pSR1[6<d#6[en_:t2P#LB?L;h[1mZ1/<'^iX=Pk4S(SoS/oBU<A
+%["#sHm1&$]>("JpLCnV8!h<&7S\7r3'RLjXYVYSlii['<R4'`gUesR(d]I2#%)J*Y%H!d1LR
+$?#Ya+@a8k]iG`!Z&srYs190HcPh]]3@*5g$)#(K%!Z#3XmfC;k9YXUl=p@/59ZY$'M&c3]hn
+.P%U602AUP/X*Wrr]S7bo=CP47cLhr?db!;2E`r1/ihAOB\XS1m$7Tn*KH,2H<\\@T41n'EmI
+sbl\_%ptZ/$jL.1dV(`7bqKrX#Eb'+[AKKR2'iDT0a\+`i5A*DU^*\TsYA,#0p[S!jKp#OGQ@
+St$.0pLqa5iQmUmF)q-M#"kAr,"s@!Ja*@ho?WLn*>Oj1Hag]-c^7H4pJkmsI4f]N<Er*n`8f
+fUK'nP^.suFPGKJAS-Y"k8$<1P!@j7[M#LY'ncGbSB=4a*<N;GX24iO\N[:7Reg5%i2atRpT#
+tM\Vq.P_O2#^5P(C#'H.?6.kF=6G>F>Cac^XJMCR-CuY'3LT_a2S((5?s^n*=$FX=P/eBah^L
+T5(t7"O@'>q/Lc1)UGLO/-mj).0HBdjQajDOSI$=GrM@bX@/EGANUiV3HKV%8a;r;/ac!rW0>
+,X2qd9C%TDolX^\RU'r8[hS^]2WprqjJ04*8F@r5V$V,/[HjK^#kE'3J3.5/I.kDWo-=<:"md
+.^;3ja/n(WpCp@6LZG\?L@HC0Z+dQ&M4%d")='fq,q4IsXqtsO4&WOta7;kZb-=^/BaRn(?G4
+t(d@52:UuV8'"WOtug%f;BLoDfHb]Tg?5)?&]dch=q-9!::j/>%Rs0hBO5SmOEk$O6m8hegKO
+bo6gZnMW+GUi>bP5$eh:c]$if_`3S^>,D*NUGbA`F56I`K[cON*!7D]'&7O2n]gg7MG,\#O#f
+ZL4UTF&GS<I=D?S?XHjuFLaSm[aF>\3@J[Y_=Y!QO?LUYP"TRq`+Q7\R.)&Z[OHa*:b/+N7%Z
+_$dH9)8r46(96R:B3QK=r8%"iD`J-g1MHaCAu!30\8KQU5Y-g7DF4jS1M3jlt;U1=F2kFk8dg
+n45TkYRE[Z:7:NLWBf)M:I1nA_ftnbo'`<aI-#rm6DoK+G%_TZ0Kb\:nRAkVMQKlV$a2B_'@!
+tI:D9QBTHFtqaDRf58L/=McDMp>6Z0:]9/dM!j&eZLmi:E;\I2+M3aI!f>flH6/`/oqI*me."
+j"-e_,!WM'5`hh&/SL5J4Qk/Y;J$?l))uJK4dLu)^PaLVhHuTb+X;"3U(M,>/?3<6]r`M'esD
+:VgC3uHJF6LV#^aV-'2Q'UH:Z[-Ea,&@nuZ.e9`utKC-Dp8"_5TB,@8;i!/OM,9I,T/s]RpXm
+X]ur]U@R7.utdK3'8YZFAWCo&a_ZjoNggoH9kg3'[1k,uq3V#"^0i`i3*BO2R9IEt\SNX$*N-
+#-LV1jM%Kl-Blr9#jK8Vj%+'%+\&;XZo1+>SA,pJ5LI/MLi1$PV3jk!5BO0:UWgE.N<4!=H_6
+U!F[;L+=aI.):-;`Ad4ABdM4gV0@clC?k=;>*]?$L5@Gq:[2^)D%c6;>g3hMVc$,M$477<9/%
+L/Q#(lFR&'qRD5&#j_aKHnB2_+KS:O5m<(?DL%8d%@0JUt$<j^\GfiVc40I_o^G&8ZK45m7se
+OmShJ('Vah[Z*SfIF<W&?O!d:PLkil.ks[RLMfC'c_fS11_O1q*Uc0K]BB1G)Qmo:M[Eu`n/b
+BcFI46''<&uA%'BnRU*0a@:ZB,J.BEZZ(!'.<AH>h)!,BDV06rtM%5^/q<?n=5=l1CsM;YR_s
+o62[E%R_>.2Kj8e(I0>Ql`"P&'cl^**tG2.ZATafH#>r[b,(hh4Vs>4+P4sNjVaqs:bGq&:`(
+M8Itk08W&O_2a"]`We'\V0XaW@Q*gC;D.,Ee$?6"_S?IK+#X.C]D#J0]Oo.UE[n&)rd]-=jc&
+p5Xb`<nGd:+br%e'][DL2rpWgR0E5<c#M4Bc[86c'U11_[\;$I%n,iWN/UceA@'L"DNT'#=j+
+I-)?%r)Ib$IB-;tlFrL`Bqj0u]c_j&O%-D&WQBD_mg6@p/2'piZogsaK]COc.-dM&G5as]N7^
+#:V.==T$]PfD,hpWuO\b@m;Hf))OVdo?6YL"^;g"BbQOhU$XZ%G.PDf/'gq#rb[4qfurjR7bD
+$KV?4=NpH6X+JAU*M@JC/#SaG/FcQ#_IQsiedX*M1lnm_91$O?+"'P;U%1>4lk5!U'$/Tuqk1
+Gd>tQ=M@qUh8,4qYFccQGR1g;M.H$XUnd55?T^AGpHN)IQlgBCT)ek(d5%,9X%VmhPAk(d'Rk
+qf"HW6Zl2i;*4JW?Vp=!QND[#;F!0$Jh:%UQ^Y92TGYE]Q-:K_X]-18LGVg.8A8FoKfYfLYCD
+jJ&rh)KIZPk$CMDu_dq_7SG6e>Eb!7N]e`KVc6kT.di2Rti*8&JjV2Z*c"7uuX@`.'j6W..)U
+s0\W)s:_R*q\f;o=`gUYXhe3+n:GnnrM<d5KIeQn'K1Wj=P=.[5(r,_1%dh`NU@*F--'@R?LS
+p!e+EU`-oI#o*J*H]ni#:>#QI4!R5R9FpLZh(],!Y;i9/iXkFbI3s'1+hCFV)H.de;S##p@nV
+esVqo:'W%])fF#Hb59U.T:X[sj"e!!@;iF%I\4N3hFQp_F+G*s%&,#e@X:r^i?I"jfFPEJj"1
+u5dMR8Pj3Le@YlPR2V[$J=,=1FEQYP['<,)Qi!Q!cr$YcK&l'LW4ZNLM:hpSW\)0/kPF6o@+B
+oBC8GgCto8),KbrMPS%fej2oY(m%'2DNF-/shk#$HOCfmGdOCW-aCjHja-dm1l(h`6"K:5*P_p
+%_Vkf2KBao0L7'REI]G94uFEI,H9W`m`]f@*,*Z)iM7mLdDn[Z)<)IFl9JiKYP0%T!\5Wnn2p
+0OH#!(N"JBRCEjOc3S55Qt/-%,2aCBk_9oq0C9tO$:V)Ts=J7EXB=Mi7!;#I?AXB,Rr!P.g=5
+gH=Whir2HX@>YJ,VKbPXL_8CD#P[TrXT&TDgRM0YULRD7mRXfD%Pd([=Yn#ts&2B^j`clq)8r
+V&&9<(-K\p#-LA/(r_^0uDb\M;)&YtqMZ5]c1SV@/<;3g]Wko?^KF)BkY*&ZV0ob&C=RJM*.E
+.+USrEf+``Y+A6QAI)7P3<VB3nMES=Ak96dF"3S;:M_9X;(7cR<pRUD00DbRpfLl$*j\*BWSV
+8(7+4h%d)H#J8WG]Mmn:\:dYSrC65318QqF8e.`p'NF.8p"4,L/(\I')F4u`R!a$:FYH,(]-i
+V5%J,Br@i/nX89@HXV1@WL64aakq`S-WS.Kd@g<"ms&CNR#j?hUU0,A3BXY%/$V6ac>`33i6@
+#f)e,=[`P1/Ta/r2i+O1T%"&L/]2OS@:]leaTG1hLG8:]D=$Z-Kk_"_H-kpD]1Rr*gEcI*VUm
+pi2N%q8?Y+FeIi#kRs36TO737cJ0P=p5A7D0>s,Ot%K]F'#!JaVp(jMB(-8<X>55=42jj^VNX
+?9_=TR2QDX)A%u8K1(:YKMH^i)3"2BA.#(6P`+["7HR2496*Cjjr(3q]*XqOdAYl@'$Moo.-5
+(RGH!5BN<UD/aGq%[,Cs_9,7mU_k9D;Q3$`u6i_ub-_)',9p#(P!H0@OfcRdG.aXJ!>JuZ?@,
+h\t3#n]!9fn`oJA7U!CQ,g,s'0;LJBBW#(7_GBu*p*LS0iaq?m[^7N;,3:7n4Y[hYW$n"lI@m
+c[W)0@22Xn+ld%g2T7I4.;QS)>Wo>ZR>@^RHH?LE24se3e=,oFhC6Qt*\M8LNQD1u^a6%;8XA
+Wmt1j.0&P6S0,LUk@W7UrbQ2ElD0FQ]Bdi6<4?cMTUXZ@fEPUsAE,$qGLrf)e,MRW`jX:+/7/
+XCJl?POZL`XZ/3aAY'eg9ef@P1I!`0/C'b:Xi%Ygi&$]X;WG6MA=?F8>c`,gN/18LjG.ZPN,+
++<HX2k2$F:UbWu((s#=.=L#?l>/quM\,+hBb/FIK*1=;[q^*HPqiH#57+nb\nnm`hm"Y$(*n)
+j>7_M";O0U5+'*_;,r6<3AQ#3goWWZY1g;V(bN>Nl"aH\g@g6klB?oeS<IYWSoO$^gmk*^^Yn
+Rp?)(hgY8BN"!?Jbpi%#PG9;DIh>=ASI6aP=rM`q42?SX>L@mc((tgS#X[<][$gL"Er6)q[`l
+,u5X:#6c8Xe!r&!d0Lr`/.EPH-4)S*/sr*"#MbP2+_2$r%C$UOE[40fSI_I"FRKB6Q(m:(m8=
+DQg6p:tNLYCSV\mpu1q%CO#jhhgW5PrfL7/areio>M/!0qM3h[5N*u7s%slt`uA97bE/1b)r*
+*p=V`BI^##g]<s$R9H2jZ&Kd!:h_kasdbd9DeH,[>$oKf]MW`@2RiQG#q3FQ9M[0Ml)HP6AuO
+9k@Lj/r:amX0ctJ'^$h-/W"oO15lf!3<8P0`3a)K"pUjU)?f8W!(Q:%d;D:Er%rq'>+s]'^/f
+Yldq_X7>A"%1=a(!FQQoRmrZK:1gVl)]$D\2(@V;F(F?ke8ruef!`/d+$iO':BYI^bMlnpmmQ
+MadmQ]L`HjF]E[9ilC@#0K#]*;HpOD)30r'28"_/KiTG't=Jd\43[Um1W=eS*I%+L-50(?JG'
+*mC#Xh5H6D9]M,S]$g],>WQTr&a3!N;3:'<>nA7hfBn=/m4<c@!@Ul*?24&c)[$Q%^$4FG/ik
+q2EmkQ%Dm3m@K+b#+"dJkD3k]DIR(DLV:nonS%pdF+=9,]qV\nePV;sXKjd@SpqE:p1i*Kh)3
+nNu?g%uYWKf69D.XiKsT4B\<&N_fQ4<1);nmG,pj9ZSSW8#.J)e.+u<!$VnkeiQ+?A+tP,n&r
+hP!80sfDV3)le1Y'Xd)W1n_N'ZUR<-'BasD)TmM9kf:^3r?)5IA.=k4QNJ]Eb`YbM8X3I8ci.
+II/V\-G'UP5Ur%te`c:'p"ss+G9RR'f=V?H^7n6,i'g@0.G?%D.uQA^QLn)33.^pf)gWMAP?`
+!fD"("$1P?S`,N#0UjApT`=WMB95lu7JHb^It']K:fbG9d#$Q4Rp#Lbp-tq@3[`rhkW5'S@i:
+7\/BW*$:;4L54S1&cL>D8K8cthlK'Cc+gJpBBrD6Q*Vp+,[0b!6_CDqjp*?+CYMqGYT\R/&,Z
+0Wap@K@t-m:(Wa.PQ[>?o83B/=j(K80!R?r(u7A>^,Ya;$"T"3_I[5nI3;P3h6FfraGQt`m38
+]U[sTb]fO2i:X9u)(R#6.miu,A+5j(-A>H@3b]@q46K=:H3c223J0dRE:Xe:p-W%dG`.pMbL_
+SaYZNZeoI[6W\ao2`qMtH,J]t+,^EU*K2Z3LNa4ZrR9B81]K0us5Z/\:Zh]!M9O*5K!Bi0OgI
+0&TR4T?/eW1FQ3]\cOERW%g_0Go0TFGnK0da-$\UmsG$scId[X8#]P:RuVWh"/'q.HH/DS08;
+qW9uf6-$A4i&"\ORgYT`Sal"JJ0fDS-.WZ)L8rTic/l(^$8XQ_@sq\bFV4,[7k?/VMQ(Gp)m:
+7tkn\`CG%n4BXI"Bs=BG#6@c=DrdGOD4@0_i^GO.:%giU_@inR#W-mV=J?cgOSP<*mJb9inu;
+L+B":q1"m*bd+P+7]"[Q\^]E;?QX0d@`4rpt7BHf\"'P&)2o4k>Ai>:8hhTLY)uSIl7B6O%'?
+HeR"tK?POA-a##[Lp&V?:k9gR5mP+Ila3YPZEcd=ZqkGB&YVm0(+/4HrV)>s&TNJ'&0/nC/>^
+h<@2W_L2n'j,,Uj5];G']p"?k<H/kW=c3sQp,a7XrFh0a5?J;jZ#l/:>[*]3drnL_QJ/.9Z1H
+"OZB"s@k4/]#qFOAgH9UoI<GFcVM(^L,W5&TPIW6SI!b3Nf:cV9XnX#<=MRR%M_gr^E#F/sb_
+;Y5baoVQ@is-Lghqm;h$M!3_A$3JAkng^n'B=mW5C>s@r!j00\(BN3,t^tWOL=[`J(2>,NaJO
+lVLM#u_Uu0rYkjF!>SgM(j^(`g,j[^=-oCDZ*1Y-tTa/[N9-UCfYK='f.@eo,=Yj-G!(3M.Nn
+NA-rpI[sCOZ1(lipmKnEDg?"jJOtq$(ar6(k,VDJsH2qR>)TgY4o2&lipl#+o7riq-h>"?gWb
+`qH[k<&B;8G9G]oQ.g>T0'MF-AJ:!Vh@c\aHSh;q2UX&PKOu7q:PiCb/<"`!0h#4bo$33WN_,
+OOWi]r/?@0l[I$`ELanQB;'47nj#uL=Aq*LU=3BA4-hV#le2cm6`PoG<O6:8T@eCgf<P]0HiU
+_ACK`Ql/P6XrK7.50g:5WI/tT$e=W-BR?2>^J0`d^a@nUf<#3Rp_iKiX)],5I>m+`jR-ee_f$
+/IZ:ba$G$jH)8$=nNoOUHMf^U!(M@8,(k@q/SZ-u#3*:8P.:hl&)GI(&fYU]p9;fUV$@Yj?E;
++t^r?KfrTZ`6S;$X4a=AB:LRZ[,NqR"?/BHhF3=pE)RMG3qeC*S.&FaAsE90X\tp!CWg=NL[!
++(-rg?%t-F.Ep(sAnXnMh<A<\XukV6<0?'8K@#U6:^W+qpfOrsbeom;(DC(EF$.:bn3\iBX@)
+`nf:._G'3P'VN7I77PMW)o*l!HGg1C9s^@ts_dL#oiEQ2+u%UR-g3hS+OGsfR<r*Z8RG@=]4A
+#`)F!ZtFNHfa7tO\m94l#ZoAiDG+9$0X3eIFUWO<34ItFi!W5B&CAD[F8drj/rF6faNE=(dG+
+/E1:<a*jC4<BhjL#p^)BS(`SLoiR%Wi\c[XNpk&0A#;2=#6>I7=p.WkJJ<iDE)s46&3:u-ZBW
+aG]`4=],V]0fR0%LgmHl=2KIS/p`%o#c<UIt\T"u%50O\Hld5[c6*KcY/u<=8=@C2tJeW!)T(
+dnUR9>Xe!GP/0X.4(9<\OAG_G8U6biTo\;fF]ak\5fP%\K:mKV*j%Li?fMC\:jj0b_)%+9/\4
+PgjA;dG*N0iQl2oVDK0d;M%]`AdQfb!1k!bb35Q,CjQe>j/fm=#NS[9$m6"bsOG//,JI#k9e9
+;_lbEL`Rkhs>Q8fCuPC)"qeh9"`Mp;1/d6jai$5lh/8a[XrE>IV),1cuOI4#-0)")#.X$69>k
+_#P^Q;qk,`l:[@p2OO3TM[:lHF:8mNd+,7k%DMZKp"[;h?=.iiYZ*_'nmt^,pF<=>e9ngJMVU
+IiXh!V!:SWF-H^u`@crb[OL/q&-DnE<$eHeTJAB.bQ[DqkRdRWR^18gdTR@EiSk$QG7cZ[8E`
+SCg3&)eFOTN)jCfF"b=)^`MbcO]jrW$<4o3<-I!iE<b(eFntVO5j@@i^6Hj';dLFJNE'uJ=VO
+!=fmBeI:-'#V&4)er$=VEg,IR-P5T\h'6/2SICHZ4Z--@:tk'Y[*46jXTd-h2e5)?KX&3TI2]
+mohHnF/-$4`k+@T-P=/jDs%fHoDr;HfK0T'-)@HGmQt[?NOT\8*@X8gVY*Q$hiF`^:T&H4LE3
+8+MdU`0MA=]TQq+Y1`7aDY_goj-qQ]]]fJ7P](c'G3Tea1M1>*u(o]lhf/nbcI6Ms=lM!Lp(8
+$3Hq0B0q#I<u@^`N]-pc7RDG6)i2pCI!?]%mn4ZkKeT^h1C-INKC0oEhc`HLG,]<fHpkS9Jpo
+BWQt.ig0to_=:S-(1auMJ=nsq?memgqb@n#'%)M1%d(RV$$ia-h,+-M_:@/o)*Hd4kkr]hNHc
+BF1Jjln+?4]1YdAU<nJ7\@U)T%V0MR'14chqE,@K(/#q4`[L\i][V[j<oIXouqd(FbaMUtA)'
+_'5b@NFoF.Iq,1;X5nS]/N'"JH1'&r>kA;U_@KN^s]hiLCsXV5WV%oY.,:(VU>d7d)u]:(c"H
+goDpX\0KjdSl5Yg>&u0MiRHk+AIg[81&o-M#j[(S3h7%<r7gabt-`EX65c*4!p3(j0e3itZp&
+J>'q@hd*O9g0?#r)[0l,$7/qS#TJ%k`88*.!N*q\STm8&2GpY!LmcmG<A(92f.Z=unAZMfmmD
+3ic1=Hf$+W^gN&+Yg_h/kg_1,?6Q(]5:ts?Kl.Ft2"0<kDanY`Z.:E6g7`QhXZ>TP@OKaI:`&
+?_]!n=oI/pqeaE6=Q#:1If(7N=L>9&9KHO!H01c?HdFD8F<JL*RhrZrt*TSd.g3^u\cH/?H$h
+96&94]!q5]_0\#M=F]L8U3U)iaDE/LN,CNH@Y.:p*@EIAq[Gr,6EBW$`->^Qqt9oLlV(5csOS
+o#aS3)+GbW+kCGJ+:FEtqs2/+Y,ZFF>#Uo8>"Hn'!87quaFc"Q0r3nZ;l]9<p#WiTDk9-1=a>
+6f?nG@lbf&!4W`Uj:PMPhKZdfAk,;o"@4@SQPVMM?d]q4o+BBN(@i">IKD:[kGm+ed22gPm"h
+e9O+o6/U]uYd<X#0e=R6KYr4V$lXBjgRoKPYLWs(&Xbi0a:@tZoPaSm^a'Ie.#d$!BFpu'OtK
+cq5]mLBHSfMt;(=l<iZ'E!q\L+0\KPQ?6il$+TJ7VNcL(tB`pP*pBBT!khtKJXd=[s@`t$E/q
+muB#UUMYB3mmcXo?4<*?G_46FS!s,5)n';Dph/1jd;!r_27'i_-M$SE7[N?(3F\l4/%iucjB=
+he<MXVDfL"mOTjqkIZ>WA'lXKaEi;49"o1R_)/<'5Y)h#Q<?4chM`t0=Zm4g7d4^j0Eh+o($E
+UKo@3T"d4h/+V*Xg"f+K'`d?VPk9R"8&:cJO),(CLt/<c\Q]!NFTgSHPjgNh`=TcO\Bc4TXXM
+&-QL)5URr5oJ@e.!W8'Vl<fRn*q8SLp6IkkS_WfK>!^J)DuKu<#gHN9DD4@*2*-6;K+EB((?W
+n'1h@J3&2:?'m7f"V.=EX^Fm*K2%'ZTkU8t5#WumkI0`D.:;XiXlII))QFTMlt?(AosqX*$7+
+*nk_2i`J4T`V?pS7DC11ao'^ahIrnl4sL:C?*+*%k+7AK,Z(8ruI'L/kP^;3aH0)!V-SD^<mn
+\eG3<FlcE`=rLj4n$;FEILd"nGg[2cq:>&4L/*USO6s<,6Wu>lBg+%0&!`i(tj8V2A.`Zfpnm
+%mq3KR%M2a)D_BZ1s6WB17]B$th6hLBn.lZL*Dk7jcAV'!?o[<0!-pC="JgYP#RDC<fGTi^Xe
+R_qM/Kpqc_=e+?2@cT"!7Fg_02^3jj$S]&NSlNkUo?f(![MO+^:8DK8GJ_d/R(,"kHP>]/,aP
+u)0)rP`ng.e:q],G@TRcS/5!6ukE*?"$r>oR056jgZ[X5TATsFi(iSl\"n'109#^X^/-gH]=^
+MO1m_352P`=HYVbPq/TNp:#"(SD'Iq`4ER*INHW'0(1(GN@D0j#:WT7)A]"="((66@S$I&p8J
+[-8(86F?:-2pb'Dj*lS#c2o3oKNP&#d4./<]Da\GV?K]Z^kp&He:KXTR8':Q[RP".Rrb!qQh>
+rW(5ghcb"ML$!n9Y,^IlD]H*tOpfBr<aJ\IF/DqgbPDqPT6I;5_mXKTUZG^P@poFDpWZh36%:
+PEX0rpE9f+IXDDbF<<bGS\Qke-U%7s[f7t)f0?eJq:=f?rnU07nm-b;Y1FbPbA[:;o&LR/0At
+^Cj]`QF?ClOl+3rC&?,(kZq814fr6]V,*2co*Qi8`EQ0GYt(ldaDW$q:7.JABYHjn#=?'$Vn'
++b*#ae&P8DD-^RKaqah<:;_)nRh6`=2_r0BtTNmVd;<,&)-eMh`JB^")cqTs5WhHh;oZu-#Fm
+:S(sUjp>,gIhKhFD,"j"+q&\b\T"q4irH"X]q/:g>kIogIZ9L@;!98BD0CMZU*fTDao^NRYUa
+TOmI_>)ZVHQT6Wpf;?gt<:.8LGD?5[-f7Cfl3/`oL7SP,_`\o,OjO"Vc!TIpCU,e=4;k(Q0)!
+*=Pm1^n*@mK3dDfU1-n*7q_>J_0jO?(Q@:)I9bP7%uC+oZke.c%dfqDVaVVp=el1BD/[O"3XM
+\43]*WGG'.,i&uY?9rmtNVYJ:&QoQp-D9+I+^rei6ZO)!7qHrk*D\U%ClgrlsgYhP@'Vc.;?[
+k*O*Qqi<hF:*FTniZ$P56IDSo'g"h(Lh:2W:4J#l#G;eTu`)mF4P2Gf;WH6.\FlN71-)8qNKb
+!:5=9XcOUKLjEW^eP"G5R74279kq?r<@a6U`5r[%F#0nQYO)9`4;Rp05(8hOW5ttSI^fIR1fB
+JN@M60D4,c8q(U;Ma\[9))8V&dt:_,Ds)\TT6h(u(]$SJ"/_3b(q_\"=IVns;SOIYdhlBUm.<
+dVm#'8(Yp@T/(GS_?EMk>:HgtX@g$dVl*sfhE,#8AF50)8;,r*4e/8W]t!G]@61ed6g98&/.-
+0,riNLti]mAfFF>o.(Q5;jK#gu)YuQ6_S#\CuZBF94Vs+P)9bo*JE\'oY[E$dm10&pBq^A!`?
+n*'^BBT(39;_lbZ#kjKWk$7/rp/P+^QEW4V"IJLQ0i8a"\7a4[[g?k!?/+>V?-Q?+c?nX\k#b
+A9'YlM5(Z@S@1G[EkZ,3ESj'Ab:HMBj%+@BdF2]'8k_\Q_U"\?9VGhguQ;7&X@qQR)\G^@gKN
+-N!gCG\9:\n,gBV=-a'Ga2^JZ<"Zo&$4t>2)7*odInULoN#7]d6@Mp1PkFCgQYMMNfC<alRlZ
+[&dQ!cQ`B@;pD;^b'/p"d1VZBa"4K,n4EqigZg&c7[J=>7If*g&uJTS1n8*mNl@71d)\FQ9:(
+6VP`[AtrY2d036m"F1B-D!Q,IC5bp:DF:\j]5acp:n;VRbsh@c\aHShN3\i72]8fV2)8m(*%G
+NE::BC_tnC\fgqZ-9pnT0or1DBJa=M>_O#h_aQJ[i`S'C!OZ=<.@fig>3I>;gU@fm,/aoU;=t
+U>K814A`DdH7R>nl9h\Zi>e>,*>".&r_5&ic_T]m8$.EBDWAn)7IUXgDjP*b`n^6UCVdm]@:O
+-/$VGl>:PU\2\7&HGa!lETLCc8gL?\[+nQ]$hA(+7c8cBLQCC7/l&+XVJ8X_pA+[XX7al,fcm
+Gj5L&NpN"<0I`?uK-eNS60JHcBUcQ5&qtJkEK'!gbV8Si*MjB;;MS.q@1n,:_8(0F92Q<`WKT
+)7l4im8NEmoE]ZM^h(DX-TrVW<R>Ib@`kI#aE0830?OPHaJZEY9'0f7<=!6hOXm`.SB6:E9A,
+Wob-G($"t1(!!f<JZnGYT>qrI`<52'ZW8R0CUMjTElu<KiB>%$?uiY(_&Qr\gd8g8WcqkcIs^
+GknLP=,tt4,1tbuTdZpPl;HaH+XsK9q(t4O62\G02<,A'm(c\V'7k8*e:4FBj5]-Q6nMh+Y%!
+3KHMiaH.h[IIBd(qT7^=9G`4XP;`:15j?kZZJ-esdTK7GQQ:0qD9S*g_bYKYjN/Ps%FnI"^<W
+KViIV$!O=MS?5`2UE(&?Z)a]7*!$1F*)X^TKmQ2p2l?i+M:-chOu$5UX:KU,.BbjJ=_9&fa)-
+/rQqi]UZ>!ra*Z7*2(c*ar<66KA>b/Pg+X\!NWPF]P(ni^<.pOS!/8[987)aJ,7.3Ru]M[/l1
+BA<TD+Fh*R8KPSki&fNUr1Ac*80`XBbk]qF@pB$7Z>JZl,I5O9cq+>KT*$U4-:#u_Bg['e'K$
+_@kI$#%7(o;ioj\(N'L.08ZD8kgNV'h@6mhQEPf<S/U7[a'lL;/mP'W?]Q=5>jHr5_6HR&"8V
++HOVBME8>K[[333^ns2..4]0`,!"feAG@MC++'B%r2amH;tH-`'Y:U!pK!fU_U'^m06lnt53>
+UQaG#eF'p.B=k>LYA(:N,`A-aMLmu^:N3gIA%!V+a4cuP[.?!ZFZOH8Va[\MSNA6"9!F$O,bM
+6aOZ<%$_]a+,X'J"?UT_rU]mJuhd[/\$C-InZTp*4D7+.OFp$GRc]f]IZI8O*4-]u-"AMjNk'
+OJpt24XT<EdqO7cK6uIkqUPAZ'e>j$=r$$m&7"61-26_3W_?*q$A#c2G0k^Dp'%[AUES'KNL"
+#^(<,sP9u")/JN?%W^8(14qQ3-7AID8>1RXZCdY+0a8#upSW4I)7X!ptnlGNb>YD$BBrSN6h2
+L]dC"`l?,c9%1@"[9,/CV<bqj%]VlJdG1^V/LZr(t7:L3UZ,*cpN0^O<BF8X@q%17bFQ3jijg
+ku7i8WHFCuV^e'/Xd`i^<P`clh'CIK$Dpbf-CIV/0V)B+a`OOlDfg<b1qM[3GHUr"(Q1H(l02
+Iu%Wpn!^O<BFT^oO!3n8cFe.t`U)DI`9K'?6e4IlsfQ/_T^]4]+[pr+IRVaD8sGWs4:=n+\)n
+_h]q/XT9j?ok\!e#<QKU!mNEP!*1D:<nma<.d?]WP(=_#p.9-cAq-gK72.H[?CD4FP=^e0qE'
+pFCI;u&54IKdgj39@QNlfO/%meIC0acqLP@*lBi+S0jX8_FB\'G:c^]9lth/p9W&fqP"m3,5S
+)*<g"5#2-^%6!IW=W=O@UtKNp0Mqh9\`\85:ZENf$T+S1^a6-fHbMG(cF58M!LXk%-TAIcO'^
+]4E]T5*mFDl*ND9SkaC?lLPUCP"s]PXmV(7:-6=1kbNPcnLWoM*2_31YVYONgn9NH0:g=sPNf
+FV4@s10'Qat'A1($J*T<-&11N=+GZpOE4aG4GcJWdU<P1;sX#iDO47*G`N)a-LqWsSE2./I"S
+TY:9'@UZNpgWHoo<VpfeUZo&FP7o37An_K4pdd'EHY$R)XN;UD?'PTk:,W%PI"a[eURasg4JQ
+g"/]"$0V)soEHW=7[mP,)*QQk#&8Wb&6bs8KFCI;u&54IKdgj39@QNlfmHBf23FthjDkE#QP:
+/DhmFgBr'NQU4#=^^Vj?^C+5c.Hh>1+jJ.4hIp4/Qh/j6sK(8gboCd7KR)[H6'rSSIXR3oR\"
+UUeSbdO`kH?0K\%YU<G0qFc5k1NjXS9S_l>F$,md_H,Qq`n=q:a-4qC'[CQ`3ZX-qg#_EC3!s
+n3GdQm<I9Yiuh+'o>D2Gnl-WV!7?=pLL+?l2g]0L`-AH&TIb;,XB7^?k;Z!=Gt:?Ag_oYsS&?
+!nJ>h$Q2+3g+>QjA)]US[*6JbHNRq;[moI4"XO_W@Xa'JPM5(f"mbL42C8RG3e/ST%<=?A,gS
+%9i2cVj=/q8$BXLOK:Q,`7HLIa(&p&ZBKCtre*1jrn0R&`d]"j-+OfQ_"]#.TSTY:9'@UZNi&
+J?WB?,+o!QWm$4ZfN>%6-&A/XT9j?ok\!e#<NkB?,"83s<UWELbhp_1i"L'^QB)-`5?&_/s-I
+m1;r=VUH#PT[Te-\Pa\WBqtT'$^IIQa$S]i@lcIWTA/r'Ee+hhn$FSZl'/naM!CJ.*2C++ZR@
+u.>YN>lF=K0l<mtcpZZG]/II)s()q<:Bhs8/Bm.s'<ROBgl<i&_TVQCT(2MKIoGBQZXI:*e\6
+ofXtZp*Xt/h0Nf675Vi\$S:Ag7985BcgHR4&t0qlZ4SWgQh"K$6J6^d]$sUgid>NFP6sLd`MD
+ehj/D:,5]Cs6EHn[.0*eCd]*2u0qJ#h24`Q(FNSI)XO&C:dN+3?2.ssOg'9P#:<UlmXLd3p6U
+:f4m@I(RcAq.r%r<6=V9`\?Zg?bs;l-`t<>D]bgm1]0_WP*mSTn\Q4f2-eelfs\qkLGsr6*#.
+3f,03M<VB)<_B:D$&cenANG7-i$i'2dgj39@QNlf*,!msm$LO*i&J?WB?,+o!=)*%"k0FT9W,
+=,3n5?KVoQ`JI9FYZ=n+\)n]92D&Lta9L?tKHn)G2pmd/YZku7b^;d1rHC9Sd@mANema*]G8;
+[rFgVqi=^*:pG&:,P"C3bdpQYo\hf<!0!rgLDt/C;=q+HRu$m%@Bn-O2Z4@_3T2C9`n3tifmN
+%nd_DV+Q[/R.*sr!61J&-:8kUTqL^Sp<an-OM=dXM["-DCW]P<JnKp:3%j`8_VfaRj&'f9#M6
+5teZ;2f(,Rl4PAcZjC4,Mr\L%pg':eKG6;`^a&+I4N@P3_=rS[1lKm`Gp\SK60n-/-a</FtT4
+U(YsV8#MXL/9;3;EdKk/%Nnf0SJjPScFIQ?MR-eRXi08`[&fr*@ND!HqdeH;mHIT:]V#:rdNg
+Bei_Hm/=a,$_Vj1peVt'p=AH?b-H\qTIEX/YboIelhVe$N&/M$]u.$]:_SfQ9o-/)"iAIUN`#
+.8PVZ]E0j`3bZ%TMs\"0qD@>h8i>B=5J(O;r)6V52u'Rg3Ae6feK$uU8?\FW3qH0Jm(4s2\EJ
+?Z-,T46q-P!kjrDu;jP((\IG+P(EmOZeXdf1BdJeb.P>c)-6@H6r,qGi=<]gBe#<Pl7OO<_2t
+=Cf's;U*`tGpm0qE&uA98H<EtaTq<q/4pE@d5:(=T5e7n0E9\VXf[(=T5e9W,>>@QN%I?Zb!n
+31Dni@kjNhYTGo_*T<BH`H8*\#=c*)e#<OFVm]toeUZo6(/1VE0V-pl6mi1iF/QB6JPJ:a07N
+oYS'`",QB)FYK>CqL(sa2Q$1H7(_0?7tkmN.6BSc#gi%3)[["0ArqC7d^XVfe;[;0BcP=Y_D6
+X*e5a,eZ=?#%q)q7&TDk8i:7b'4+=dV5,58d,O??u3jGolQphX?/-TU=MUVZTI]uNj0&GhheU
+*0V'%B"Oi446SP&J3s=#hYsU49(cqlLM6TE%SJXEke*5&qA#=V=%``\fU@GdBM@7=e2$@ALI;
+/I->.Y8XXuOC"M`[W]YDhY",GrqmEWe+g%);.^:6*R\[p(olSafZ]s-+HeM4N!b-ZdB(<)4lP
+DhTuV[F5f<km=Wo?bR8Gi,NNbVPFnFC"AeL,(1ofM5AZ5TL>^;JGjO.3gmaA6R#=.20<kTURU
+LYUf@%7bcb<<itp2/#uRQunHhC2:)SbSdn*c:f$e?$Mi8:FMCtY$M<XZN3$(+@9;C(9Hs3A(Q
+_V\lhKrLlh8bpY:PdiU$+m`Kd]%iK,J-YC(sST8F<&p8S_A71c0-F1F=MHW9W&!QGj+5@d*)*
+Q?(Of#-(T(b"K'W]U-pBlTW5L^aSO1W'S^`%-Aln#,<N_`H?-)?HLZ6lPAhGpSJoqU)-Ap?"<
+/[`RNCStXl@U(`,p=Nf\)d#Tb_<Gku=%)q=PQDZbrs0[/2:[`cK*r3iFa(.iqKa]Pq=@IGlT9
+@67RA5iHZUV_8s\gBo=Kfkut,_:TZ"-cQWn8#J_PlXW+NXJ4/g\l6V8McFk.0Ns(m`7Q5nR81
+.en;KkGIsmm'_]Lb,g7?Jue]AVerB4P>0/&G_m3?,%lLO\$]j7<iYJ3Uh[2teWe`H6'9W.82N
+9R\^9W.82N9R\^9W.82N9R\^#GKVHPSYjb(%?!VX4edu;7fOCS]%fF@'e&^fVB<q7]pn;.gk_
+;S*;2UB-^M`m'"CWC3k4:MF5`^eD:bAk$&lb'@l@m<DgBM#!-<g6lhgdN`BPh8Asdbf:H=13h
++rs_r>'GU(=)b(HE"GOi<lL_Jt)(<Fki,/.4NH;hZ]N:a&GkkN0$!+P3JS/0.$PR5gLHXH-;U
+PI!ECdS&(Ud%sYl?Y>Z4,eL5>_gsj1rO/e^D5M`?.'5:U]=cAUZWItR+Y!^3V>Y2TVLW]n6Bm
+O0U/TXdD;3_Y,3d(DlR^kR<>Tdc*(UfORI['jBjS;dGaFcMIC?^cFmJ%Mr#oh#-3mt.<YPFQY
+'Y5)6<q!]::3Ki^!7OUmc`m\d[06)cLhu_=oD<*Y\@X7h3qTkMl[f$XLlmV/nao=IfrW3DYYT
+d(\J%pQ$TqeMUMbj'g&UflRZ@6mX1$%c02N\:!Ii"%92lWXV$9C7J^)!p6T.c%^1@@;-Y!0ME
+<D*Na5)eTccLQ=@X`IF3HU4=k0*=`KRB0BCSU4neoh(YOpp/<7l]WAX5ZUX<FHS811\%Tk0sp
+Gh;FKVg#[:Vqh8oa0)-KSVenT^9E3hZm.Vs:U5#3[F]PCW2!;Q%VBW>os*q.kH;%Gh5Qq8U,o
+T\$:_POl!;T#kLa#[/s^gHo%=_>*G:f>f+`PGcfJJ.R+I=PVe,DhZXX>hMJK@Nh'9]'d:!3LQ
+E04KIM8!s#.q0uMt2I,ZFg#o*4]'sB@lsD=P_Yqo]"tY3b=b`_2d_)Wf)%CQ]IY341ie9`!TL
+L<:o23=uqN%I\`1[G)%Yglu[Q6BV[`OjAr^CGR?M!'25=[UMtpTMJU",f.>D=:fK8>_/s-I[=
+q_tq?>?IFc/b4q0PE>.hp/[QqhLPPN*Y5jmN@)YAgh;d>Oh7@h%'0PHdJ/S[RC7j6Tg!l*UDC
+ELbiW0V,Ye0K'WH7/70YUV1]3R&e#E@QHBBPA%0Hdu!=RqD=Ib4Y#;5fu?>mf3'euQqhf_/tG
+?Y:=*Q7&pE;HAU_s5Irrh[#\Ru1f_\]G3h-$neUA/)_DF9Y3m%6+EL^<ml[1UhPtjb$;R*<s9
+[6p\q6Y6aElM[;!epBGfKcA*RM)1>pm%qBA?1T;NNVm+?nIq,me`i:>ENDm9f2:Pk_)_X$])o
+qaR88VO8C`H^W?9CEaY-<+$(.>ZOfY%pj9M8XJ:t]QJ_7W?KC?M4n,',7(5.hchS7-)4e)!'q
+*rrG"8-Y:=\YE3Aol2d>UgHh+8<h>Sbmnm"\?u#2B$f;r(#EJuQ%O3Ndf`#93#^:?Cdm4e/:d
+VU!Kd;_/<O\*W?BmDppYGBJf%l/hY/==KfH\A.,43Yf`B#<Jus:@[]7Zi\uh_LA;ETR!`ef&t
+,G<r'G^)6W5jQ5f%P%p[eCFK3)NnIk%2QH)??]$KVHhB/:V9fF`lL#lFD2r1HZS`5@MWI]+h%
+JDZbKDV276])WIc-EQha=^JGQdn(-4kZA5f9r1mGlDf"KtZ01`$;p1MeC]+CatE-PuW3EfD1Y
+UIWX;sJ*5t#&^(:)l):H*.Qg'ZmHb6?T1rTMcZ=8F^i\<0_O+(K_0"E1_O+(K_/sF9@BFKJQb
+O=jS[RFX4Uun^H\\r:>,jpHqr3f!o]7._ft7a#&'NT24T$q_M=KrJFCOSJ9IIgi_/s/Q&1'@l
+(lq"7:6-6$1Dkp8b=;bh_-er6$jM@#@-e)Q[T>.h'Fnu_@([m-=unDU$jM@#?n`E+#(sa"0YV
+5eg\`A-]bf5U-9CO^Y*I2np7?DR)mJMSWPjF1HdB=;%=%-(cgC,.]a]5NQd>'d[_3,pl'K``m
+C'\;30qb6(BqqS=a;a&<j]HoeTrLQ^V1`Ii9bBsZ!>"6?Re]MDZ6$s2E&8/le<!]hVJGVbN0-
+',&C8MI#Xc"hN$Gdm%-uJ<q=A3GBJ<q_SP!]J7H-;@:!b)%8eU1:gCO$8[n'Q$EY$!G'/3p_S
+P!]J7H.fI*!M9U1RGGh;d3>\%YimO)D-Y%c6%H*6[H%gq0N3WE`P?f5sWs2goN>7;UcHi/a5h
+<""h8(M,X-(Tt?la/J"k\71Ab3!XrG9W)'Mgq230Vk**J@_"&<1jorTpHA<3I>2hV\_#P841K
+[#HPZkIS!FDD',iqRfqij>+nC5!O!D7gNGOYiY<eMgDZ(X?,h?(02RR_ts/)Q-:S]Y/V)rRu^
+89uZmZUE!s)=uKCngq#Ge?i.ShMhj7^a>GQYg$:gkksG/_\s0#"<a%Bc"+]*p0UXs3Z'4m0WA
+^CLl12HQrJU[!7=PUskLk[%m=Q)VK;aSg]"9[a^u+4j[p)[5YT!cf=OZFaG>,/tRem(!GDgIB
+r1mh)V$ZI2,DPduN,q\TdQhFK01LPW!:)h?Id^-W+COg!naIGe?i.T#eU'IF>*2;d9(K\@i@(
+7QQf("`*L^9eLpj9r,:MBQ2G0]A;3`s)IGf>"[[@`Q5L:p51ac@2hAbaR2o-GPNG2=`l6P)i+
+^EHE5fViqSRLD[/7HHQ-p;3mi_qWh6W4'K7^7Ys_nnVA>+;m8_NmptK'2;r>nKBl=(`H26S_M
+.KD:?GD%>BlOlGc*j2![`@:jqO[P45"0f;E7i@[$R2jWd)g*cXV!Ep(0]?o<Sd6@>@-44EU`Z
+[i6[gOldttNM7e7)e.Jm,B@l/<>@68dhp6_[[fM98SOD>qDElZfY[%.:>Bb6BNk`j3m/mT3DZ
+c#U:>(Q(h*=p]pZ$@n(<>=pqO[P45"U)?E*-+&D\G]26.WU-2p_XY;<ikZ>I4#Qf`(YM?/JT<
+c_kGp".o>MQOgjsp;D^Y#CjB[Vd2S>pIhEqj$2Yu*G'R:n=2/HAr^K$m58ir48@iI3cTMm\@i
+>rl'K``mC'\;E;!O?8oT,1WkAiQqZaP(U=s*2(^pV$_-er6$jM@#=T8?7-i"\~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 590 574
+%%EOF
+
+%%EndDocument
+ @endspecial 396 2612 a
+ currentpoint currentpoint translate 1 0.4 div 1 0.4 div scale neg
+exch neg exch translate
+ 396 2612 a -2 3006 a Fe(2.2.1.)39
+b(Printer)f(Settings)396 3350 y Fd(2.2.1.1.)e(Printer)396
+3540 y Fm(Click)25 b(on)g(the)f Fg(Pr)q(inter)30 b(Settings)c
+Fm(tab)e(near)i(the)e(top)h(right)f(hand)g(corner)i(of)e(the)h(windo)n
+(w)f(\(see)p 0 TeXcolorgray 396 3669 a(Figure)h(2-3)p
+Black(\).)g(Then,)g(click)f(on)h(the)f(do)n(wnw)o(ard)g(f)o(acing)h
+(arro)n(w)g(to)f(the)h(right)f(of)h(the)g Fg(Pr)q(inter)396
+3799 y Fm(combo)f(box)h(to)f(see)h(a)g(list)f(of)h(the)g(system)e
+(printer)i(queues.)f(Select)i(the)e(queue)h(to)g(which)f(you)396
+3928 y(w)o(ould)g(lik)o(e)h(the)f(printed)g(image)h(to)f(be)h(sent.)f
+(One)h(may)g(also)f(print)g(the)h(image)f(directly)h(to)f(a)396
+4058 y(\002le)h(by)g(selecting)f Fg(File)p Fm(.)h(In)g(this)f(e)n(v)o
+(ent,)g(the)g(user)h(will)f(be)h(prompted)f(for)h(the)g(\002lename)g
+(when)396 4187 y(either)g(the)g Fg(Pr)q(int)h Fm(b)n(utton)d(or)i(the)g
+Fg(Pr)q(int)k(and)g(Sa)n(v)n(e)f(Settings)e Fm(b)n(utton)e(is)g(click)o
+(ed.)396 4367 y(When)h(either)g(the)f Fg(Pr)q(int)29
+b(and)g(Sa)n(v)n(e)g(Settings)c Fm(b)n(utton)f(or)h(the)g
+Fg(Sa)n(v)n(e)j(Settings)e Fm(b)n(utton)d(is)396 4496
+y(click)o(ed,)i(the)f(settings)g(are)h(sa)n(v)o(ed)g(in)f(a)h(\002le)g
+(called)g Fh(~/.gimp-1.2/printrc)p Fm(.)c(The)k(user)g(is)396
+4626 y(cautioned)g(about)f(hand)g(editing)g(this)g(\002le)h(since)g(it)
+f(is)g(generated)i(by)e(Gimp-Print)g(\(although)396 4755
+y(it)h(w)o(as)f(the)h(only)f(w)o(ay)h(that)f(the)h(author)f(found)h
+(for)g(remo)o(ving)e(bogus)h(entries)h(created)g(while)396
+4885 y(playing)f(with)g(the)h Fg(Ne)n(w)j(Pr)q(inter)e
+Fm(b)n(utton\).)p Black 3695 5692 a Fi(4)p Black eop
+%%Page: 5 14
+5 13 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 583 a Fd(2.2.1.2.)36
+b(Setup)e(Printer)396 772 y Fm(Before)26 b(an)o(y)f(useful)f(printing)f
+(can)j(occur)l(,)f(the)f(user)h(needs)g(to)f(associate)h(the)g(named)f
+(printer)396 902 y(with)g(the)g(actual)g(mak)o(e)h(and)f(model)f(of)i
+(the)f(printer)-5 b(.)23 b(Click)i(the)f Fg(Setup)k(Pr)q(inter)f
+Fm(b)n(utton)c(in)h(the)396 1031 y Fg(Pr)q(inter)j Fm(section)d(of)h
+(the)g(windo)n(w)e(\(the)i(upper)g(right,)f(and)h(just)e(belo)n(w)h
+(the)h(Printer)g(display)396 1161 y(box\).)g(When)g(this)e(is)i(done,)f
+(the)h(follo)n(wing)e(windo)n(w)g(appears:)396 1450 y
+Fj(Figur)n(e)j(2-5.)e(The)i(Setup)h(Printer)e(W)n(indo)o(w)396
+2550 y
+ currentpoint currentpoint translate 0.6 0.6 scale neg exch neg exch
+translate
+ 396 2550 a @beginspecial 0 @llx 0 @lly 293 @urx
+196 @ury 2930 @rwi @setspecial
+%%BeginDocument: figures/gimp-print-setup.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-setup.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 293 196
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 293 196
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+294 197
+12.000000
+294 197
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPU%@X%7%#0uC?d_-/STF/)nrjWlTLcl\gYHV0VWKa(Uu3k`a^d/p9Vr^kVUXLSs5U\X&k
+j^$;.<aYY,6m$BiulJ?c)R'ZO\@+NmKB/'r3AJSNBZW2'U>^##S!Y$t[<-<`-^;H;^Ii5[9He
+_MT/aVBedq91&D'fW[1f,t8':$[r+Ar:BeO)C'eG?RW@8Pjmdb*[U:?"spQZ:]_MSO>"_i'*t
+[J.A_=3JY86j.`P7KY;I/VMEj`^dE5`d$!.XZ@Yl'hUZCEkn!6NK;Id24PiSa,&r;Ok7?GNlT
+S2/*D+a'8#>-6DPu<3-O^T^7]G/Y1=aMT7/F:nHN1V9F3-)PtXD0Cs\@mJhPg64SlTJ'b[jNt
+.l@4^ZmnfT=mndVJ1a=:M)'u%gPeMat+T4t*-m1AY5,^u.\tIfmPW>2.9g0==7\s>hdR9>,qN
+lFA"nG!aNg#fOqNh7aGr.J^V-MI$mQ$En2J_(k9&aLgM5?/@HMpKgdYN0?SD^pJJPr9BV-te^
+e\@=ibp_tU1HKHJ;DV59%V\C)r?9EV8O5hf-lJkbTJT4>;YBg]!I@Mh-=\Tngq[`'&uG.FjfR
+H7PSfZ/a"MjDs3_KOK_(Q&04DM5/#O)OkXLE\0Zo-h%#E^pW>t/0idk6(WS9C`Xe(^c8m=G+L
+\mG#VPM\U1b>JsqNjf'g%_DiP_]rEmqmM:DACGaG#.66\*RIR/<gPhTSk<LNS)#,.Dbo-lNQ,
+Gk$HW@#pgC9YjV,Eg=<]a.03YS4!4`g,=;-Xdc;&p9#&j>1F7j^+FFB^O"uqTj_d\I/<`$o@$
+C_eUaRnjD3W!<%8%gk^V>#qn8@JLr6c>Sc5ik<MW)W2isglDR?F]YL?6sM5j[CO9:QW;!TT?E
+&6?Hr2C23mQ:,=!2_;A1"R3<%keI$Q%R*c_*8h>&35G"a^E9;W&>/S@TnL2*-oKT\-1C+'-*g
+`O65ad10,[;V6Rg8Q%Krg@]S].U"f2J)M=4S>XB#j-M:XH(L;aRYh3_)2C>>@/-2B!dKOQ1t*
+Mp#F;bC+T:a-dUOqQ+!UJgZ..9*4Np/9UHfW0#,nM?tDKY3/hUqLjbV)'UjX0$!0e/ctrPkma
+FTqpLKF@#qi;)1a5kmis-`\1mM`XPUu]$PNrOr1JZF=_8gG5:nZ5.I8Cdbf)1c8^BXj-SERY+
+c8i53HJ@s.#;0j-NlMAga[IP28!9BV\HHRu^o;6cid5K'+e,8l[*W`d(2,jl;[-;nOt>!Hb#W
+s7&apM,?4g]CXMCc:DaKddu/hH'L0O@[%pT:f8@L"Eq79&>a10?_[PoES>t`/=QPdr@hrX30V
+J6:B.1jG=jQ_]'!gS6,fbq[4<I-#M8@S^IRPWqYJ/%#$WTS>#:j>+/9&L8Eg^8/Vq!&hX.]/.
+0WHrPS!coND@T8;P8[abnQCgbcI'*M^<n/s8)774lH0D9VgNjC#q/PV)KX4CYXisn<=n;c1]T
+_nbkH(s!JU2"\,Mob3.fMU;g+kMaOkb-W5Fd5;T;u-'QG]17:f_e%W2-e#K638c(EJ;EDK,PE
+!dhN07$n8s<(tV7"HA0M5oP$;8d7>\,.DqbR@V[k8sePH-.0j-1`0LelB-.rg>k-Rf'CB3i4t
+"5C^m/kiarGlW5,M_FCoJ70J@#*`.$D[=-[(Aa8q\4.nnF8.M/aWq0R;("'uCaKr*1Ye3=-1Q
+1^fJBXM2(n&f`]^TZfX3I2-CGj>R8BbPBhe&-PX=4qnhpUOY:&#VDco]f%,3NE-'"lOQ?In2-
+(fgp'_>`gmHu/jjFO8+P[_P(?!\-DMC;J2#$\I$r1trGj2-F4(R!49?K5/]hO)CgA?OR"Z6,n
+Vnnmiq<fLF4h'a/;Ro#PA7VQO..URO)8sH]XUH4i;-BlP^17:f_PK@>jR7nrka^d/p9QedTr\
+928Ig2B0g9GHLS^Sn,6eeU6P\r:pm93-LD&T5`)5Rr`V%VUL;R8h7,a@"$eu$s>S=nB]YaX9D'
+%YbT<g-BAjB#Q$7]F>[2c0o<WkqE.2;GIFpP!n1C+>nki:qf`eo8[`Vf.fSePnd?_?)p3=$S2
+Q8>iQlh)I8<W3j!#ajGpnes"(cPWgCXW`[D`\HSh\2,7&,)eZ$i3dUs7JQs`X;c;W,\C3#1DZ
+i6TAu!<!97*&+g.U\;orrF69#n&^;qq2Z25=,[bp\iZ1J/tEDFUVQYI]lp9>eo:gAS1D:hjcJ
+R8R8Fop;Pa1.iiJ8gV%l,obEJqGR7smO'D\~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 293 196
+%%EOF
+
+%%EndDocument
+ @endspecial 396 2550 a
+ currentpoint currentpoint translate 1 0.6 div 1 0.6 div scale neg
+exch neg exch translate
+ 396 2550 a 408 x Fm(Scroll)g(through)f(the)h
+(Printer)g(Model)f(section)g(of)h(the)f(windo)n(w)g(until)f(you)i
+(\002nd)g(a)g(printer)396 3088 y(which)g(matches)f(yours.)g(If)h(you)g
+(cannot)f(\002nd)h(the)g(precise)g(model,)f(pick)g(something)f(close)
+396 3217 y(and)i(hope)g(for)g(the)f(best.)h(There)g(are)g(selections)f
+(for)h(a)g(wide)g(array)h(of)e(Postscript,)g(inkjet,)g(and)396
+3347 y(laser)h(printers.)f(After)i(you)e(ha)n(v)o(e)g(selected)h(a)g
+(printer)l(,)g(you)f(will)g(see)h(the)g(printer)f(command)396
+3476 y(displayed.)396 3656 y(The)h(Gimp-Print)f(softw)o(are)h(does)f
+(all)h(of)g(the)f(necessary)i(con)l(v)o(ersion)d(of)i(the)g(image)f(to)
+g(be)396 3785 y(printed)g(into)g(the)h(language)g(of)f(your)h(printer)
+-5 b(.)24 b(It)h(is)f(unnecessary)h(and)g(undesirable)f(for)h(an)o(y)
+396 3915 y(other)g(sofw)o(are)g(to)g(manipulate)e(this)h(data.)h
+(\(This)f(is)g(why)g(the)h(command)f(contains)g(the)g("-l")396
+4044 y(switch)g(or)h(the)g("-o)f(ra)o(w")h(switch\).)f(Please)h(use)g
+(care)h(if)f(you)f(feel)h(the)g(need)g(to)f(edit)h(this)396
+4174 y(command.)f(Once)h(you)f(are)i(satis\002ed)e(with)h(your)f
+(selection,)g(click)h(the)f Fg(OK)h Fm(b)n(utton.)396
+4578 y Fd(2.2.1.3.)36 b(Ne)n(w)f(Printer)396 4767 y Fm(In)25
+b(the)g(pre)n(vious)e(sections,)h(the)h(user)g(selected)f(an)h(e)o
+(xisting)e(printer)i(queue)g(and)f(associated)h(a)396
+4897 y(particular)g(type)f(of)h(printer)g(to)f(that)h(queue.)f(F)o(or)h
+(most)f(cases,)h(this)f(is)g(probably)g(all)h(that)f(is)396
+5026 y(required.)h(Ho)n(we)n(v)o(er)l(,)f(some)g(situations)f(might)g
+(require)i(more)g(detailed)f(control)g(o)o(v)o(er)g(the)396
+5156 y(handling)g(of)h(the)f(printer)h(data.)p Black
+3695 5692 a Fi(5)p Black eop
+%%Page: 6 15
+6 14 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fm(Click)h(the)g
+Fg(Ne)n(w)j(Pr)q(inter)e Fm(b)n(utton)e(to)g(tell)h(the)f(softw)o(are)h
+(that)g(you)f(wish)g(to)g(create)i(a)f(ne)n(w)396 708
+y(name.)g(In)g(this)f(case,)h(the)g(ne)n(w)f(name)h(may)f(actually)g
+(be)h(an)g(e)o(xisting)e(printer)i(with)f(dif)n(ferent)396
+838 y(settings)g(that)g(you)g(wish)g(to)h(sa)n(v)o(e,)f(or)h(it)f(may)h
+(simply)e(be)i(a)g(name)g(associated)f(with)g(a)396 967
+y(particular)h(command)f(for)h(handling)e(the)i(printer)g(data.)f(A)h
+(windo)n(w)f(will)g(appear)h(thus:)396 1246 y Fj(Figur)n(e)h(2-6.)e
+(The)i(New)f(Printer)h(W)n(indo)o(w)396 1966 y
+ currentpoint currentpoint translate 1 1 scale neg exch neg exch translate
+ 396 1966
+a @beginspecial 0 @llx 0 @lly 248 @urx 72 @ury 2480 @rwi
+@setspecial
+%%BeginDocument: figures/gimp-print-new-printer.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-new-printer.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 248 72
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 248 72
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+249 73
+12.000000
+249 73
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVQ=$a,(8&-^G(r\mu(@RU'rI*u^i;suRSUlt6g$cPZ-@i0r/R+&]IB-\ISZOMV,C?#RIr%I
+%+C%%\7er#,&m<7G_:BTJ1d68QIj0QOM(`\HPCKSJcm;QLg/f`QeH)F^IG\dW5D0'[k*csCe"
+/V"A7bl=%O#Q%T:F(Gg37Ka/1-2Q=DnTKFOaJoW_2BB/,J_HW3o]@omWTZ9U$qrg_8/i(KI[J
+iKG,s=+'?076fGA`ot8TgL1-J21AaPl[*67_nnQHPbE*BW2X2(5fWAsU\9q#f22C]$KSt8n5Q
+R3'49.!6Y(DQIedJ[]aVH4nE5KZ2rTo*Fk^fXQ&UqEe%X@L>^Fjc0VB1c%_UX-`"!.i'$!<!f
+`I3.tE'14F!^D3T8krkCLDos<an_mU>?%_DksN.=kHhQ1_7Kq2UefA&EMiu3O6YPf1LC8$.g>
+G?3drE*F<(l*Y`e6PW^cZQC<"$!&Pb=Ek2AZ$:hmLN@<oB<?'GCC>?Dq!)achC'2J?!E6d'C<
+9F_NqMbI~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 248 72
+%%EOF
+
+%%EndDocument
+ @endspecial 396 1966 a
+ currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch
+neg exch translate
+ 396 1966 a 229 x Fm(T)-8 b(ype)25
+b(a)g(name)g(into)f(the)g(windo)n(w)g(and)h(click)f Fg(OK)h
+Fm(\(or)g Fg(Cancel)h Fm(if)f(you)f(wish)g(not)g(to)h(do)f(this\).)396
+2325 y(Notice)h(that)f(the)h(ne)n(w)f(name)h(no)n(w)f(appears)h(as)g
+(the)g(selected)f Fg(Pr)q(inter)p Fm(.)j(As)e(you)f(change)396
+2454 y(settings)g(in)g(the)h(rest)f(of)h(the)g(Gimp-Print)f(GUI,)h(the)
+o(y)f(will)g(be)g(associated)h(with)f(this)g(printer)396
+2584 y(name.)h(When)g(the)f(settings)g(are)h(sa)n(v)o(ed,)f(the)o(y)g
+(can)i(be)e(reco)o(v)o(ered)h(easily)f(by)h(simply)e(selecting)396
+2713 y(this)h(named)h(printer)f(from)h(the)f(Printer)h(combo)g(box.)396
+2893 y(One)g(e)o(xample)f(where)h(this)f(feature)i(might)d(be)i(used)g
+(is)f(as)h(follo)n(ws.)e(The)i(author)f(frequently)396
+3022 y(prints)g(photos)g(on)g(Epson)g(4x6)h(photo)e(paper)-5
+b(.)25 b(Note)g(that)f(this)g(paper)h(is)f(physically)f(lar)n(ger)396
+3152 y(than)i(4x6)f(and)h(it)f(has)h(perforations)f(on)h(all)f(four)h
+(sides.)f(The)h(author)f(dislik)o(es)g(printing)f(part)396
+3281 y(of)i(the)g(image)f(on)h(the)f(perforated)i(parts)e(of)h(the)g
+(paper)g(which)f(will)g(be)h(remo)o(v)o(ed)f(after)396
+3411 y(printing)g(the)g(photo.)g(By)h(selecting)f(the)h(proper)g
+(scaling)f(percentage,)h(printing)f(can)h(be)396 3540
+y(constrained)f(to)h(the)g(4x6)f(part)h(of)g(the)f(paper)h(which)g
+(will)f(remain)g(after)i(the)e(perforated)396 3670 y(sections)g(are)i
+(remo)o(v)o(ed.)d(The)i(author)f(has)h(sa)n(v)o(ed)f(this)g(setting)g
+(using)g(this)g(feature)h(of)g(the)396 3799 y(Gimp-Print)f(softw)o
+(are.)396 4204 y Fd(2.2.1.4.)36 b(Media)e(Siz)q(e)396
+4393 y Fm(The)24 b(term)g Fi(media)f Fm(refers)i(to)e(paper)l(,)i(card)
+f(stock,)f(en)l(v)o(elopes,)g(or)h(whate)n(v)o(er)f(you)g(ha)n(v)o(e)h
+(put)f(into)396 4523 y(your)i(printer)f(onto)g(which)h(something)e
+(will)h(be)h(printed.)f(Click)g(the)h(arro)n(w)g(to)f(the)h(right)f(of)
+396 4652 y(the)h Fg(Media)k(Siz)o(e)c Fm(box)f(to)h(see)g(a)g(long)f
+(list)g(of)h(dif)n(ferent)f(sizes)h(of)g(media.)f(Choose)h(the)f(size)
+396 4782 y(that)h(matches)f(the)h(media)f(which)g(you)h(ha)n(v)o(e)f
+(loaded)h(into)f(your)g(printer)-5 b(.)24 b(Once)h(you)g(ha)n(v)o(e)396
+4911 y(made)g(your)f(choice,)h(the)g(drop)f(do)n(wn)g(menu)h(will)e
+(disappear)l(,)i(and)g(your)f(choice)h(will)f(be)396
+5041 y(sho)n(wn)g(in)g(the)h Fg(Media)k(Siz)o(e)c Fm(box.)f(The)h(a)n
+(v)n(ailable)f(paper)h(sizes)g(will)f(v)n(ary)g(depending)g(upon)396
+5170 y(the)h(printer)f(model)g(you)h(ha)n(v)o(e)f(selected.)p
+Black 3692 5692 a Fi(6)p Black eop
+%%Page: 7 16
+7 15 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fm(Some)h(printers)f
+(support)g(arbitrary)h(\(within)f(limits!\))f(paper)i(sizes.)g(These)g
+(printers)f(will)g(let)396 708 y(you)h(select)f Fi(Custom)h
+Fm(or)g Fi(Roll)f Fm(paper)h(sizes.)f(When)h(you)g(select)f(such)h(a)g
+(printer)l(,)f(one)h(or)g(both)396 838 y(of)g(the)g Fg(Dimensions)h
+Fm(box)o(es)e(will)g(let)g(you)h(enter)g(your)f(paper)h(size)g(\(in)g
+(inches)f(or)396 967 y(centimetres\).)h(The)f(box)o(es)g(will)g(not)g
+(let)h(you)f(enter)h(sizes)g(that)f(your)h(printer)f(cannot)h(handle.)
+396 1372 y Fd(2.2.1.5.)36 b(Media)e(T)-7 b(ype)396 1561
+y Fm(The)25 b(type)g(of)f(media)h(onto)f(which)g(your)h(image)f(will)g
+(be)h(printed)f(should)g(be)h(selected)g(here.)396 1691
+y(Click)g(on)g(the)f(arro)n(w)h(to)f(the)h(right)f(of)h(the)g
+Fg(Media)k(T)-12 b(ype)25 b Fm(box)f(to)h(see)g(a)g(long)f(list)g(of)h
+(the)396 1820 y(dif)n(ferent)g(types)f(of)h(media)f(onto)g(which)h(you)
+f(may)g(print)h(your)f(image.)g(Media)h(types)f(include)396
+1950 y(such)h(things)e(as)i(plain)f(paper)l(,)h(postcards,)f(photo)g
+(quality)g(paper)l(,)h(transparencies,)g(and)f(more!)396
+2079 y(Once)h(you)g(ha)n(v)o(e)f(made)h(your)f(choice,)h(the)g(drop)f
+(do)n(wn)g(menu)h(will)e(disappear)l(,)i(and)g(your)396
+2209 y(choice)g(will)f(be)h(sho)n(wn)f(in)g(the)h Fg(Media)k(T)-12
+b(ype)25 b Fm(box.)f(The)h(choices)g(a)n(v)n(ailable)f(will)g(v)n(ary)
+396 2338 y(depending)g(upon)g(the)h(printer)g(model)e(you)i(ha)n(v)o(e)
+f(selected.)396 2743 y Fd(2.2.1.6.)36 b(Media)e(Sour)n(ce)396
+2932 y Fm(The)25 b Fg(Media)k(Source)e Fm(box)d(allo)n(ws)f(the)i(user)
+g(to)f(choose)h(the)g(paper)g(source,)g(sometimes)396
+3062 y(called)g Fi(Input)f(Slot)r Fm(,)g(that)g(the)h(paper)g(will)f
+(be)h(fed)g(from.)g(Man)o(y)e(printers)i(only)f(ha)n(v)o(e)g(one)396
+3191 y(a)n(v)n(ailable)g(input)f(source)h(\(such)g(as)g(the)g(standard)
+g(paper)h(tray\),)f(in)g(which)f(case)i(this)e(entry)h(will)396
+3321 y(be)h(grayed)g(out.)f(If)i(your)e(printer)h(does)f(support)g
+(multiple)f(input)h(sources,)g(you)h(may)f(specify)396
+3450 y(the)h(source)g(of)g(your)f(choice)h(here.)g(Some)g(Epson)f
+(printers)h(of)n(fer)g(a)g(roll)f(feed)h(option)f(in)396
+3580 y(addition)g(to)g(the)h(standard)f(paper)h(tray)-6
+b(,)25 b(and)f(man)o(y)g(HP)h(LaserJet)g(printers)g(ha)n(v)o(e)f
+(multiple)396 3709 y(paper)h(trays.)396 4114 y Fd(2.2.1.7.)36
+b(Ink)e(T)-7 b(ype)396 4303 y Fm(Some)25 b(printers)f(of)n(fer)h(a)h
+(choice)e(of)h(dif)n(ferent)g(types)f(of)h(ink)f(or)h(ink)f
+(cartridges.)h(Man)o(y)f(Canon)396 4432 y(and)h(Le)o(xmark)f(printers)g
+(support)g(v)n(arious)g(combinations)f(of)i(cartridges,)f(such)h(as)g
+(black)396 4562 y(only)-6 b(,)24 b(black)g(and)h(color)l(,)g(photo)f
+(color)l(,)g(and)h(so)f(forth.)h(Most)f(Epson)g(printers)g(let)g(you)h
+(choose)396 4691 y(between)g(three)g(and)g(four)g(color)f(printing)g
+(\(three)h(color)g(uses)f(only)g(color)h(ink,)f(while)g(four)396
+4821 y(color)h(uses)f(black)h(ink)f(as)h(well\).)g(Epson)f(printers)g
+(that)g(support)g(six)g(color)h(photo)f(printing)396
+4951 y(allo)n(w)g(you)g(to)h(choose)f(\002)n(v)o(e)h(and)g(six)f(color)
+g(printing)g(as)h(well.)p Black 3691 5692 a Fi(7)p Black
+eop
+%%Page: 8 17
+8 16 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 583 a Fd(2.2.1.8.)36
+b(Resolution)396 772 y Fm(Click)25 b(on)g(the)f(arro)n(w)h(to)f(the)h
+(right)f(of)h(the)g Fg(Resolution)h Fm(box)f(to)f(see)h(a)g(long)f
+(list)g(of)396 902 y(resolutions)f(at)i(which)g(you)f(can)h(print)f
+(your)h(image.)f(The)h(list)f(is)g(written)g(with)g(the)h(lo)n(west)396
+1031 y(resolution)f(at)h(the)f(top,)g(with)g(increasing)h(resolution)e
+(\(and)i(generally)g(impro)o(v)o(ed)d(printing)396 1161
+y(quality\))i(as)h(you)f(approach)h(the)g(bottom)e(of)i(the)g(list.)e
+(Dif)n(ferent)i(printers)f(support)g(dif)n(ferent)396
+1290 y(resolution)g(options,)f(and)i(man)o(y)e(printers)i(support)e
+(dif)n(ferent)i(quality)f(choices)g(using)g(the)396 1420
+y(same)h(basic)g(resolution.)e(In)i(this)f(menu)g(are)h(a)h(fe)n(w)e
+(terms)h(which)f(may)g(be)h(unf)o(amiliar)f(to)396 1549
+y(you,)h(and)f(the)o(y)g(will)g(no)n(w)g(be)h(e)o(xplained.)396
+1853 y Fn(2.2.1.8.1.)j(DPI)396 2033 y Fm(DPI)e(is)e(an)h(acron)o(ym)f
+(which)g(stands)g(for)h Fi(D)p Fm(ots)g Fi(P)p Fm(er)g
+Fi(I)5 b Fm(nch.)25 b(This)f(term)g(refers)i(to)e(the)h(number)396
+2162 y(of)g(dots)f(that)g(your)h(printer)g(will)e(print)i(in)f(a)h
+(space)g(of)g(one)g(inch)f(\(approximately)g(2.54)g(cm\).)396
+2292 y(This)g(is)h(highly)e(dependent)i(upon)f(the)g(capability)g(of)h
+(your)g(printer)-5 b(.)24 b(Resolutions)f(belo)n(w)h(300)396
+2421 y(DPI)i(are)f(used)g(for)g(draft)g(quality)-6 b(.)23
+b(F)o(or)i(general)g(purpose)f(printing,)f(select)i(300)g(-)g(360)f
+(DPI.)396 2551 y(Higher)h(quality)e(printing)h(can)h(be)g(achie)n(v)o
+(ed)f(by)h(selecting)f(600)g(-)h(720)f(DPI.)i(Settings)e(higher)396
+2680 y(than)h(this)f(are)h(used)g(for)g(the)f(highest)g(possible)g
+(quality)f(for)i(printing)f(photographs)f(and)i(other)396
+2810 y(high)f(quality)f(graphics.)h(Experiment)g(with)g(your)g(printer)
+g(and)h(these)f(settings)f(with)h(dif)n(ferent)396 2939
+y(types)g(of)h(graphics)g(and)g(photographs)e(to)h(see)i(what)e
+(results)g(you)h(can)g(obtain)f(with)g(your)396 3069
+y(printer)-5 b(.)24 b(High)g(resolutions)g(\(lar)n(ge)h(numbers)f(of)h
+(dots)f(per)h(inch\))g(require)g(substantial)e(image)396
+3198 y(processing)h(time,)g(and)h(the)g(print)f(\002les)h(can)g(be)g(v)
+o(ery)f(lar)n(ge;)h(it')-5 b(s)24 b(not)g(uncommon)f(for)j(a)f(full)396
+3328 y(page,)g(1440x720)f(DPI)h(image)f(to)h(require)g(100)f(MB)h(of)g
+(temporary)f(storage!)396 3706 y Fn(2.2.1.8.2.)k(Draft)h(or)e(F)n(ast)h
+(Econom)m(y)g(Draft)396 3886 y Fm(When)c(this)g(te)o(xt)f(appears)h(ne)
+o(xt)g(to)g(the)g(resolution,)e(it)i(refers)h(to)f(the)g(f)o(act)h
+(that)e(the)h(quality)f(will)396 4015 y(be)i(relati)n(v)o(ely)e(lo)n(w)
+-6 b(,)24 b(b)n(ut)g(suitable)g(for)h(rough)f(drafts.)h(Draft)g
+(quality)f(is)g(higher)g(than)h(f)o(ast)396 4145 y(economy)f(draft.)h
+(These)g(options)e(will)h(gi)n(v)o(e)g(you)g(the)h(f)o(astest)f
+(printing)g(speed.)g(Economy)396 4274 y(Draft)h(uses)g(less)f(ink,)g
+(and)h(as)g(a)g(result)f(the)h(image)f(will)g(be)h(pale.)g(These)g
+(modes)f(are)396 4404 y(generally)h(not)f(v)o(ery)h(useful)f(for)h
+(printing)e(photographs.)396 4782 y Fn(2.2.1.8.3.)28
+b(Unidirectional)396 4962 y Fm(When)d(printing)e(an)i(image,)g(you)f
+(ha)n(v)o(e)h(probably)f(noticed)g(the)h(print)f(head)h(inside)f(the)g
+(printer)396 5091 y(mo)o(ving)f(back)i(and)g(forth)f(across)h(the)g
+(print)f(media.)g(Man)o(y)g(printers)g(are)i(capable)f(of)g(putting)396
+5221 y(ink)f(on)h(the)g(page)g(re)o(gardless)e(of)i(which)g(direction)f
+(the)g(print)h(head)g(is)f(mo)o(ving.)f(Ho)n(we)n(v)o(er)l(,)p
+Black 3695 5692 a Fi(8)p Black eop
+%%Page: 9 18
+9 17 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fm(quality)f(can)h
+(sometimes)e(be)i(impro)o(v)o(ed)e(by)i(only)f(putting)f(ink)h(on)h
+(the)f(page)h(when)g(the)g(printer)396 708 y(head)g(is)g(mo)o(ving)e
+(in)h(one)h(direction.)f(The)h Fg(Unidirectional)i Fm(setting)d
+(instructs)f(the)i(softw)o(are)g(to)396 838 y(only)g(place)h(ink)g(on)f
+(the)h(page)g(when)g(the)f(print)g(head)h(is)g(mo)o(ving)d(one)j(w)o
+(ay)-6 b(.)25 b(When)f(the)h(print)396 967 y(head)g(returns,)g(it)f
+(will)g(not)g(place)h(ink)g(on)f(the)h(page.)g(On)f(man)o(y)g
+(printers,)g(the)h(print)f(quality)g(is)396 1097 y(better)l(,)h(at)g
+(the)f(e)o(xpense)h(of)g(printing)e(speed.)396 1476 y
+Fn(2.2.1.8.4.)28 b(High\(est\))h(Quality)396 1655 y Fm(W)l(ith)24
+b(lo)n(wer)h(quality)e(print)h(modes,)g(one)h(may)g(see)g(an)g(ef)n
+(fect)g(where)g(the)g(printed)f(image)396 1784 y(looks)g(lik)o(e)g(it)h
+(has)f(ro)n(ws)g(of)h(stripes)f(with)g(a)i(small)d(separation)i
+(between)g(the)f(stripes.)g(This)396 1914 y(ef)n(fect)h(is)g(called)g
+("banding")e(and)i(is)f(undesirable.)g(In)h(the)g Fi(high)f
+Fm(and)g Fi(highest)i Fm(quality)e(modes,)396 2043 y(the)g(printer)g
+(will)g(mak)o(e)g(more)g(passes)g(o)o(v)o(er)f(the)h(same)g(part)g(of)h
+(the)f(page)g(in)g(order)g(to)g(impro)o(v)o(e)396 2173
+y(quality)g(and)h(\(reduce)g(or\))g(eliminate)f(banding.)g(This)g
+(requires)h(more)f(temporary)h(disk)f(space)396 2302
+y(and)h(prints)f(more)h(slo)n(wly)-6 b(,)22 b(b)n(ut)i(does)h(not)f
+(require)h(signi\002cantly)f(more)g(processing)g(time.)396
+2681 y Fn(2.2.1.8.5.)k(Interlea)o(ve)396 2860 y Fm(Certain)d(Epson)f
+(printers)h(\(older)g(models)e(mostly\))h(support)f(a)j(printing)d
+(mode)h(called)396 2990 y Fi(Interleave)p Fm(.)h(This)f(mode)g(uses)h
+(special)f(softw)o(are)h(within)f(the)g(printer)h(to)f(impro)o(v)o(e)f
+(the)i(print)396 3119 y(quality)-6 b(.)23 b(Interlea)n(v)o(e)i(print)f
+(modes)g(will)g(usually)g(produce)h(better)f(quality)g(output)g(than)
+396 3249 y(non-Interlea)n(v)o(e)h(modes,)f(with)g(only)g(a)h(small)f
+(performance)h(penalty)-6 b(.)23 b(If)j(Interlea)n(v)o(e)e(is)h(not)396
+3378 y(listed)f(at)h(your)f(chosen)h(resolution,)e(fear)j(not.)e(In)h
+(those)f(cases,)h(the)g(non-Interlea)n(v)o(e)f(print)396
+3508 y(modes)g(of)n(fer)h(similar)f(printing)f(quality)h(impro)o(v)o
+(ements.)396 3887 y Fn(2.2.1.8.6.)k(DMT)396 4066 y Fm(DMT)d(is)f(an)h
+(acron)o(ym)f(which)g(stands)g(for)h Fi(D)p Fm(ot)g Fi(M)t
+Fm(odulation)e Fi(T)8 b Fm(echnology)-6 b(.)23 b(This)h(term)h(refers)
+396 4195 y(to)g(a)g(print)f(mode)g(used)h(by)f(certain)h(Canon)g
+(printers)g(to)f(impro)o(v)o(e)f(the)i(quality)e(of)i(the)g(printed)396
+4325 y(output.)f(Unfortunately)-6 b(,)23 b(at)i(this)f(time,)g(all)g
+(of)h(the)g(a)n(v)n(ailable)f(DMT)g(modes)g(do)h(not)f(w)o(ork)396
+4454 y(correctly)-6 b(.)25 b(The)f(cases)i(which)e(do)h(w)o(ork)f
+(correctly)h(will)f(of)n(fer)h(signi\002cantly)f(impro)o(v)o(ed)396
+4584 y(printing)g(quality)-6 b(.)p Black 3695 5692 a
+Fi(9)p Black eop
+%%Page: 10 19
+10 18 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black -2 601 a Fe(2.2.2.)39
+b(Pre)n(vie)n(w)396 802 y Fm(Notice)25 b(in)f(the)h(upper)g(left)f(of)h
+(the)g(windo)n(w)e(is)i(a)g(pre)n(vie)n(w)f(of)g(your)h(image.)f(This)g
+(pre)n(vie)n(w)g(is)g(a)396 931 y(representation)h(of)f(where)i(your)e
+(picture)h(will)f(print)g(on)g(the)h(selected)g(media,)f(and)396
+1061 y(approximately)g(what)g(it)h(will)f(look)g(lik)o(e.)g(This)g(pre)
+n(vie)n(w)g(will)g(be)h(updated)f(as)h(you)f(modify)396
+1190 y(selections)g(in)h(the)f Fg(P)-5 b(osition)p Fm(,)26
+b Fg(Siz)o(e)p Fm(,)f Fg(Media)k(Siz)o(e)p Fm(,)d(and)e
+Fg(Output)k(T)-12 b(ype)25 b Fm(portions)f(of)h(the)396
+1320 y(windo)n(w)-6 b(.)23 b(Y)-11 b(ou)25 b(may)f(also)g(select)h(the)
+g(image)f(with)g(your)h(mouse)f(and)h(mo)o(v)o(e)e(it)h(manually)g(if)
+396 1449 y(you)h(wish.)f(In)h(doing)e(so,)i(you)f(will)g(note)g(that)h
+(the)f Fg(P)-5 b(osition)27 b Fm(settings)c(are)j(updated)396
+1579 y(accordingly)-6 b(.)24 b(T)-8 b(ak)o(e)25 b(note)f(of)h(the)g
+(arro)n(w)-6 b(,)24 b(which)h(points)e(to)n(w)o(ard)h(the)h(top)f(of)h
+(the)g(media,)396 1708 y(where)h(top)e(is)g(the)h(\002rst)g(part)g(of)f
+(the)h(media)f(to)h(enter)g(the)g(printer)-5 b(.)396
+1888 y(The)25 b(pre)n(vie)n(w)f(may)g(be)h(mo)o(v)o(ed)e(around)i(the)g
+(page)g(as)g(follo)n(ws:)p Black 396 2167 a Fl(\225)p
+Black 97 w Fm(Clicking)f(and)h(dragging)f(the)g Fi(left)i
+Fm(\(primary\))f(mouse)f(b)n(utton)g(mo)o(v)o(es)f(the)h(image)h
+(around)496 2296 y(the)g(page)g(as)f(you)h(w)o(ould)f(e)o(xpect;)g(the)
+h(image)f(mo)o(v)o(es)f(with)h(the)h(mouse.)p Black 396
+2476 a Fl(\225)p Black 97 w Fm(Clicking)f(and)h(dragging)f(the)g
+Fi(middle)g Fm(mouse)h(b)n(utton)e(mo)o(v)o(es)g(the)i(image)f(around)h
+(the)496 2605 y(page)g(in)f(a)g(\002ner)h(f)o(ashion,)f(such)g(that)g
+(each)h(pix)o(el)f(of)g(mouse)g(mo)o(v)o(ement)e(mo)o(v)o(es)h(the)h
+(image)496 2735 y(by)g(one)h(point)f(\(1/72)g(inch\).)h(This)f(allo)n
+(ws)f(v)o(ery)i(\002ne)g(placement)f(of)h(the)g(image)f(on)h(the)496
+2864 y(page.)p Black 396 3043 a Fl(\225)p Black 97 w
+Fm(Clicking)f(and)h(dragging)f(the)g Fi(right)i Fm(\(secondary\))f
+(mouse)f(b)n(utton)g(mo)o(v)o(es)f(the)h(image)496 3173
+y(around)g(the)h(page)g(much)f(the)h(same)g(as)g(with)f(the)g(left)h(b)
+n(utton,)e(b)n(ut)i(the)f(image)h(will)f(only)496 3302
+y(mo)o(v)o(e)f(in)i(units)e(of)i(the)g(image)f(size.)h(Thus,)f(if)h
+(the)f(image)h(is)f(one)h(inch)f(wide)h(and)g(tw)o(o)496
+3432 y(inches)f(tall,)g(the)h(image)g(will)e(not)i(mo)o(v)o(e)e(at)i
+(all)f(until)g(you)g(ha)n(v)o(e)h(mo)o(v)o(ed)e(the)i(mouse)f(f)o(ar)
+496 3561 y(enough)g(so)h(that)f(the)h(image)f(w)o(ould)g(be)h(mo)o(v)o
+(ed)e(one)i(inch)f(v)o(ertically)g(and)h(tw)o(o)f(inches)496
+3691 y(horizontally)-6 b(.)23 b(This)h(is)g(handy)h(if)f(you)h(wish)f
+(to)g(print)g(multiple)f(images)h(of)h(the)g(same)g(size)496
+3820 y(on)f(one)h(piece)g(of)g(paper)-5 b(.)p Black 396
+4000 a Fl(\225)p Black 97 w Fm(If)25 b(you)f(hold)g(do)n(wn)g(the)h
+Fi(shift)g Fm(k)o(e)o(y)g(on)f(the)h(k)o(e)o(yboard)f(when)h(you)f
+(click)g(and)h(drag)g(the)496 4129 y(mouse,)f(the)g(image)h(will)f
+(only)g(mo)o(v)o(e)f(in)i(the)f(horizontal)g(or)h(v)o(ertical)f
+(direction)496 4259 y(\(depending)g(upon)g(which)h(w)o(ay)f(you)h
+(\002rst)g(mo)o(v)o(e)e(the)i(mouse\).)f(This)g(allo)n(ws)f(you)i(to)
+496 4388 y(constrain)f(motion)f(to)i(the)f(horizontal)g(or)h(v)o
+(ertical.)p Black 396 4568 a Fl(\225)p Black 97 w Fm(If)g(you)f(click)h
+(another)g(b)n(utton)e(while)h(dragging)h(the)f(mouse,)g(the)h(image)f
+(will)496 4697 y(immediately)f(return)i(to)f(the)h(position)e(it)h(w)o
+(as)h(in)f(before)i(you)e(click)o(ed)h(the)f(mouse)g(the)h(\002rst)496
+4827 y(time.)f(This)g(allo)n(ws)f(you)i(to)f(not)g(mo)o(v)o(e)g(the)g
+(image)h(if)g(you)f(ha)n(v)o(e)g(started)h(mo)o(ving)e(it)h(and)496
+4956 y(ha)n(v)o(e)g(decided)h(that)f(you)h(don')n(t)f(w)o(ant)h(to)f
+(mo)o(v)o(e)g(it.)g(The)h(pre)n(vie)n(w)e(will)h(not)h(respond)f(to)g
+(the)496 5086 y(mouse)g(until)g(you)g(release)h(all)g(of)g(the)f(mouse)
+g(b)n(uttons)g(and)h(click)f(and)h(drag)g(afresh.)p Black
+3645 5692 a Fi(10)p Black eop
+%%Page: 11 20
+11 19 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black -2 601 a Fe(2.2.3.)39
+b(P)-6 b(osition)396 945 y Fd(2.2.3.1.)36 b(Orientation)396
+1135 y Fm(The)25 b(Orientation)f(menu)g(allo)n(ws)g(the)g(user)h(to)g
+(choose)f(the)h(orientation)e(of)i(the)g(paper)-5 b(.)24
+b(The)396 1264 y(menu)h(selections)e(are)j Fg(A)m(uto)p
+Fm(,)g Fg(P)-5 b(or)t(tr)o(ait)p Fm(,)26 b Fg(Landscape)p
+Fm(,)h Fg(Upside)h(do)o(wn)p Fm(,)e(and)f Fg(Seascape)p
+Fm(.)396 1394 y(Click)g(on)g(the)f(rectangular)h(tab)g(to)f(see)h
+(these)g(choices)g(and)g(mak)o(e)f(your)h(selection.)f(When)396
+1523 y(you)h(ha)n(v)o(e)f(done)h(so,)f(the)h(pulldo)n(wn)e(menu)h(will)
+g(ha)n(v)o(e)g(disappeared,)h(and)g(your)f(choice)h(will)396
+1653 y(appear)-5 b(.)25 b(Also,)f(note)h(that)f(the)h(pre)n(vie)n(w)e
+(image)i(will)f(ha)n(v)o(e)g(changed)h(accordingly)-6
+b(.)396 1832 y(When)25 b(set)g(to)f Fg(A)m(uto)p Fm(,)i(the)e(softw)o
+(are)h(will)f(mak)o(e)h(an)g(intelligent)e(choice)i(of)g(orientation)e
+(based)396 1961 y(on)i(the)f(dimensions)f(of)i(the)g(image)f(to)h(be)g
+(printed.)f Fg(P)-5 b(or)t(tr)o(ait)26 b Fm(orients)e(the)g(print)g
+(media)h(with)396 2091 y(the)f(longest)g(edge)g(going)g(from)g(top)f
+(to)h(bottom,)f(while)h Fg(Landscape)j Fm(orients)c(the)h(paper)h(with)
+396 2220 y(the)g(longest)f(edge)h(going)e(from)i(side)f(to)h(side.)f
+Fg(Upside)29 b(do)o(wn)c Fm(and)g Fg(Seascape)i Fm(orient)d(the)396
+2350 y(paper)h(the)g(same)g(as)g Fg(P)-5 b(or)t(tr)o(ait)26
+b Fm(and)e Fg(Landscape)k Fm(respecti)n(v)o(ely)-6 b(,)22
+b(with)i(the)h(dif)n(ference)g(being)396 2480 y(that)g(the)f(image)h
+(is)f(rotated)h(180)f(de)o(grees.)396 2884 y Fd(2.2.3.2.)36
+b(A)l(utomatic)f(Centering)396 3073 y Fm(There)25 b(are)h(three)f(b)n
+(uttons)e(that)i(deal)g(with)f(centering)g(an)h(image.)g(The)f
+(leftmost)g(b)n(utton)f(is)i(the)396 3203 y Fg(V)-8 b(er)t(tically)26
+b Fm(b)n(utton,)e(the)g(middle)g(b)n(utton)g(is)g(the)h
+Fg(Both)g Fm(b)n(utton,)f(and)h(the)f(rightmost)f(b)n(utton)h(is)396
+3332 y(the)g Fg(Hor)q(iz)o(ontally)h Fm(b)n(utton.)e(Use)h(the)g
+Fg(Both)h Fm(b)n(utton)d(to)i(center)g(your)g(image)g(both)f
+(horizontally)396 3462 y(and)i(v)o(ertically)-6 b(.)23
+b(This)h(will)g(cause)h(the)g(top)f(and)h(bottom)e(borders)i(to)f(be)h
+(equal,)g(and)g(the)f(left)396 3591 y(and)h(right)f(borders)h(to)f(be)h
+(equal.)g(If)g(you)f(ha)n(v)o(e)h(placed)g(your)f(image)h(manually)e
+(by)i(using)f(the)396 3721 y(mouse)g(b)n(utton,)g(then)g(you)h(may)f
+(center)h(the)g(image)f(in)h(the)f(horizontal)g(direction)g(only)g(by)
+396 3850 y(clicking)g(on)h(the)f Fg(Hor)q(iz)o(ontally)j
+Fm(b)n(utton.)c(Lik)o(e)n(wise,)h(to)g(adjust)g(the)h(image)f(only)g
+(in)g(the)396 3980 y(v)o(ertical)g(direction,)g(click)h(on)f(the)h
+Fg(V)-8 b(er)t(tically)26 b Fm(b)n(utton.)d(Note)i(that)f(in)g(each)i
+(case,)f(the)g(image)f(is)396 4109 y(centered)i(with)e(re)o(gard)g(to)g
+(the)h(edges)g(of)g(the)f(media,)h(and)f(without)g(re)o(gard)g(to)h
+(the)f(printable)396 4239 y(portion)g(of)h(the)g(media.)f(Man)o(y)g
+(printers)g(are)h(incapable)g(of)g(printing)e(to)i(each)g(edge)g(of)g
+(the)396 4368 y(media.)g(Some)f(media)h(may)f(ha)n(v)o(e)h(edges)g
+(which)f(detach.)h(Consult)f(your)g(printer)396 4498
+y(documentation)f(for)i(more)g(details)f(re)o(garding)g(your)g
+(printer')-5 b(s)24 b(capabilities)g(in)g(this)g(re)o(gard.)396
+4902 y Fd(2.2.3.3.)36 b(Man)o(ual)e(Settings)396 5092
+y Fm(Y)-11 b(ou)25 b(will)f(notice)g(that)g(there)h(are)h(six)e(box)o
+(es)g(that)g(contain)h(numbers)f(just)f(belo)n(w)h(the)396
+5221 y(Orientation)g(menu)g(and)h(just)f(abo)o(v)o(e)g(the)g(GUI)h(b)n
+(uttons)f(related)h(to)f(centering)h(an)g(image.)p Black
+3645 5692 a Fi(11)p Black eop
+%%Page: 12 21
+12 20 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fm(When)h(you)f(mo)o
+(v)o(e)g(the)g(pre)n(vie)n(w)g(image)h(manually)e(with)h(the)h(mouse,)f
+(or)h(when)f(you)h(click)f(on)396 708 y(one)h(of)g(the)g(centering)f(b)
+n(uttons,)f(the)i(pre)n(vie)n(w)f(image)g(mo)o(v)o(es)f(and)i(these)g
+(six)f(box)o(es)g(get)396 838 y(updated.)396 1142 y Fn(2.2.3.3.1.)k
+(Left)396 1321 y Fm(The)d(number)f(appearing)h(in)f(the)h
+Fg(Left)g Fm(box)g(denotes)f(the)g(number)h(of)g(units)e(\(cm)i(or)g
+(inches\))396 1451 y(that)g(the)f(left)h(side)f(of)h(the)g(image)f
+(will)g(be)h(printed)f(a)o(w)o(ay)h(from)g(the)f(left)h(edge)g(of)g
+(the)f(media.)396 1580 y(Y)-11 b(ou)24 b(may)f(select)h(the)g(units)f
+(by)g(clicking)g(the)h Fg(Inch)g Fm(or)g Fg(cm)g Fm(b)n(uttons)e(in)i
+(the)f Fg(Units)h Fm(section)f(just)396 1710 y(belo)n(w)h(these)h(GUI)g
+(box)o(es.)396 2088 y Fn(2.2.3.3.2.)j(Right)396 2268
+y Fm(The)d(number)f(appearing)h(in)f(the)h Fg(Right)h
+Fm(box)e(denotes)g(the)h(number)f(of)h(units)f(\(cm)g(or)h(inches\))396
+2397 y(that)g(the)f(right)g(side)h(of)g(the)f(image)h(will)f(be)h
+(printed)f(a)o(w)o(ay)g(from)h(the)g(left)f(edge)h(of)g(the)g(media.)
+396 2527 y(Y)-11 b(ou)24 b(may)f(select)h(the)g(units)f(by)g(clicking)g
+(the)h Fg(Inch)g Fm(or)g Fg(cm)g Fm(b)n(uttons)e(in)i(the)f
+Fg(Units)h Fm(section)f(just)396 2656 y(belo)n(w)h(these)h(GUI)g(box)o
+(es.)396 3035 y Fn(2.2.3.3.3.)j(Right)g(Bor)n(der)396
+3214 y Fm(The)d(number)f(appearing)h(in)f(the)h Fg(Right)j(Border)f
+Fm(box)e(denotes)f(the)h(number)f(of)h(units)e(\(cm)i(or)396
+3344 y(inches\))g(that)f(the)h(right)f(side)g(of)h(the)g(image)f(will)g
+(be)h(printed)f(a)o(w)o(ay)h(from)g(the)f(right)g(edge)h(of)396
+3473 y(the)g(media.)f(Y)-11 b(ou)25 b(may)f(select)h(the)g(units)e(by)i
+(clicking)f(the)g Fg(Inch)i Fm(or)e Fg(cm)h Fm(b)n(uttons)e(in)i(the)g
+Fg(Units)396 3603 y Fm(section)f(just)g(belo)n(w)g(these)h(GUI)g(box)o
+(es.)396 3981 y Fn(2.2.3.3.4.)j(T)-8 b(op)396 4160 y
+Fm(The)25 b(number)f(appearing)h(in)f(the)h Fg(T)-12
+b(op)26 b Fm(box)e(denotes)g(the)h(number)f(of)h(units)f(\(cm)h(or)g
+(inches\))396 4290 y(that)g(the)f(top)g(side)h(of)g(the)f(image)h(will)
+f(be)h(printed)f(a)o(w)o(ay)g(from)h(the)g(top)f(edge)h(of)g(the)f
+(media.)396 4420 y(Y)-11 b(ou)24 b(may)f(select)h(the)g(units)f(by)g
+(clicking)g(the)h Fg(Inch)g Fm(or)g Fg(cm)g Fm(b)n(uttons)e(in)i(the)f
+Fg(Units)h Fm(section)f(just)396 4549 y(belo)n(w)h(these)h(GUI)g(box)o
+(es.)396 4928 y Fn(2.2.3.3.5.)j(Bottom)396 5107 y Fm(The)d(number)f
+(appearing)h(in)f(the)h Fg(Bottom)h Fm(box)e(denotes)g(the)h(number)f
+(of)h(units)f(\(cm)h(or)396 5236 y(inches\))g(that)f(the)h(bottom)e
+(side)i(of)f(the)h(image)f(will)g(be)h(printed)f(a)o(w)o(ay)h(from)g
+(the)f(top)h(edge)g(of)p Black 3645 5692 a Fi(12)p Black
+eop
+%%Page: 13 22
+13 21 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fm(the)h(media.)f(Y)
+-11 b(ou)25 b(may)f(select)h(the)g(units)e(by)i(clicking)f(the)g
+Fg(Inch)i Fm(or)e Fg(cm)h Fm(b)n(uttons)e(in)i(the)g
+Fg(Units)396 708 y Fm(section)f(just)g(belo)n(w)g(these)h(GUI)g(box)o
+(es.)396 1087 y Fn(2.2.3.3.6.)j(Bottom)g(Bor)n(der)396
+1266 y Fm(The)d(number)f(appearing)h(in)f(the)h Fg(Bottom)j(Border)f
+Fm(box)e(denotes)f(the)h(number)f(of)h(units)e(\(cm)396
+1396 y(or)i(inches\))g(that)f(the)h(bottom)e(side)h(of)h(the)g(image)f
+(will)g(be)h(printed)f(a)o(w)o(ay)h(from)g(the)f(bottom)396
+1525 y(edge)h(of)g(the)g(media.)f(Y)-11 b(ou)25 b(may)f(select)h(the)f
+(units)g(by)h(clicking)f(the)g Fg(Inch)h Fm(or)g Fg(cm)g
+Fm(b)n(uttons)e(in)396 1655 y(the)i Fg(Units)g Fm(section)f(just)g
+(belo)n(w)g(these)g(GUI)h(box)o(es.)-2 2298 y Fe(2.2.4.)39
+b(Siz)q(e)396 2642 y Fd(2.2.4.1.)d(Slider)e(Bar)f(and)h(Spin)f(Bo)l(x)
+396 2832 y Fm(The)25 b(slider)f(bar)h(can)h(be)f(mo)o(v)o(ed)e(as)i
+(desired)f(by)h(the)f(user)-5 b(.)25 b(Notice)f(that)h(while)f(sliding)
+f(this)396 2961 y(bar)l(,)i(the)f(pre)n(vie)n(w)g(image)g(changes)h
+(accordingly)-6 b(.)23 b(One)i(will)e(also)h(note)g(that)g(se)n(v)o
+(eral)g(box)o(es)g(in)396 3091 y(the)h(Gimp-Print)f(GUI)h(change)g(v)n
+(alues)f(when)g(this)g(bar)h(is)g(mo)o(v)o(ed.)e(These)i(box)o(es)e
+(are)j(the)f(six)396 3220 y(position)e(box)o(es)h(\(left,)h(right,)f
+(right)g(border)l(,)h(top,)f(bottom,)f(bottom)g(border\),)i(the)g(tw)o
+(o)f(size)396 3350 y(box)o(es)g(\(width)g(and)h(height\),)f(and)h(the)f
+(spin)g(box)h(to)f(the)h(right)f(of)h(the)f(slider)h(bar)-5
+b(.)396 3529 y(This)24 b(slider)h(bar)g(is)f(used)h(to)f(scale)h(the)g
+(image)f(to)h(a)g(desirable)f(size,)h(b)n(ut)f(the)h(same)f(ef)n(fect)i
+(can)396 3659 y(be)f(obtained)f(by)g(either)g(clicking)g(an)h(arro)n(w)
+f(on)g(the)h(spin)f(box)g(to)g(the)g(right)g(of)h(this)e(slider)h(bar)l
+(,)396 3788 y(or)h(by)g(manually)e(typing)h(a)h(number)f(into)g(this)g
+(spin)g(box.)g(Notice)h(that)f(by)h(setting)e(the)i(spin)396
+3918 y(box)g(in)f(this)g(w)o(ay)-6 b(,)24 b(the)h(slider)f(bar)h(is)g
+(also)f(mo)o(v)o(ed.)f(All)h(of)h(the)g(described)f(methods)g(will)396
+4047 y(cause)h(the)g(image)f(to)h(be)g(scaled)g(accordingly)-6
+b(.)396 4452 y Fd(2.2.4.2.)36 b(Scale)f(b)n(y)e(P)l(er)n(cent)h(or)f
+(PPI)396 4641 y Fm(One)25 b(may)e(choose)h(to)g(scale)h(the)f(image)g
+(by)g(a)g(percentage,)h(or)f(by)g(PPI,)h(which)f(means)g(")p
+Fi(p)p Fm(ix)o(els)396 4770 y Fi(p)p Fm(er)h Fi(i)p Fm(nch".)f(Click)h
+(the)g(radio)f(b)n(utton)g(ne)o(xt)g(to)g(the)h(w)o(ord)g(to)f(set)h
+(the)f(desired)h(scaling)f(f)o(actor)-5 b(.)396 4950
+y(When)25 b(scaling)f(by)h(a)g(percentage,)g(the)g(number)f
+(re\003ected)i(in)e(the)h(spin)f(box)g(ne)o(xt)g(to)h(the)396
+5079 y(slider)g(bar)g(represents)f(the)h(percentage)g(relati)n(v)o(e)f
+(to)h(the)f(full)h(size)f(of)h(the)g(selected)g(print)396
+5209 y(medium.)f(F)o(or)g(e)o(xample,)g(with)g(this)g(spin)g(box)h(set)
+f(to)h(50,)f(the)h(image)f(will)g(be)h(scaled)g(to)f(50\045)p
+Black 3645 5692 a Fi(13)p Black eop
+%%Page: 14 23
+14 22 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fm(of)h(the)g(size)g
+(of)g(the)f(print)g(medium.)g(When)g(set)h(to)f(100,)h(the)f(image)h
+(will)f(attempt)f(to)i(\002ll)g(the)396 708 y(print)f(medium,)g(within)
+f(the)i(constraints)f(of)g(maintaining)f(the)i(proper)g(aspect)g(ratio)
+f(and)h(the)396 838 y(mar)n(gins)f(of)h(the)g(selected)g(print)f
+(medium.)f(This)h(ef)n(fect)h(can)h(be)f(seen)f(in)h(the)g(pre)n(vie)n
+(w)396 967 y(windo)n(w)-6 b(.)396 1147 y(When)25 b(scaling)f(by)h(PPI,)
+h(the)e(number)g(re\003ected)i(in)f(the)f(spin)g(box)h(ne)o(xt)f(to)g
+(the)h(slider)f(bar)396 1276 y(represents)h(the)g(number)f(of)h(pix)o
+(els)e(that)i(will)f(be)g(printed)h(per)g(inch.)f(F)o(or)h(e)o(xample,)
+f(if)h(the)396 1406 y(user)g(is)g(printing)e(a)i(640x480)f(image)g(at)h
+(a)g(size)g(of)g(6.4x4.8)f(inches)g(\(as)h(measured)g(by)f(the)396
+1535 y(size)h(box)o(es\),)f(the)h(image)f(will)g(be)h(printed)f(at)h
+(100)f(DPI.)396 1940 y Fd(2.2.4.3.)36 b(Use)f(Original)f(Ima)o(g)q(e)h
+(Siz)q(e)396 2129 y Fm(By)25 b(clicking)f(this)g(b)n(utton,)g(the)g
+(image)h(will)f(be)h(scaled)f(to)h(as)g(close)f(to)h(the)f(nati)n(v)o
+(e)g(size)h(of)g(the)396 2259 y(image)g(as)g(possible.)e(This)h(ef)n
+(fect)h(can)g(immediately)e(be)i(seen)g(in)g(the)f(pre)n(vie)n(w)g
+(image.)396 2438 y(The)h(nati)n(v)o(e)e(image)i(size)g(may)f(be)h
+(found)f(or)h(set)g(in)f(the)h(GIMP)g(by)g(selecting)f
+Fg(Image/Scale)396 2567 y(Image)i Fm(in)e(the)h(GIMP)-11
+b(.)25 b(Under)g(the)f Fg(Pr)q(int)29 b(Siz)o(e)f(and)h(Displa)m(y)g
+(Unit)c Fm(group)f(in)g(the)h Fg(Scale)396 2697 y(Image)h
+Fm(dialog,)e(you)g(can)h(determine)g(\(or)g(change\))g(the)g(width)f
+(and)g(height)g(of)h(the)g(image,)f(or)396 2826 y(choose)h(the)f
+(resolution.)396 3231 y Fd(2.2.4.4.)36 b(Width)e(and)f(Height)396
+3420 y Fm(These)25 b(box)o(es)f(sho)n(w)g(the)g(size)h(of)g(the)g
+(printed)f(image)g(in)h(either)f(inches)h(or)g(centimeters)396
+3550 y(\(depending)f(on)h(which)f(unit)g(is)h(selected\).)f(The)h(user)
+g(may)g(choose)f(to)h(manually)e(modify)396 3679 y(these)i(v)n(alues.)f
+(When)h(one)f(v)n(alue)h(is)f(modi\002ed,)g(the)h(other)f(v)n(alue)g
+(is)h(automatically)e(modi\002ed)396 3809 y(in)i(order)g(to)f(maintain)
+g(the)g(aspect)h(ratio)g(\(the)g(ratio)f(of)h(width)f(to)g(height\).)g
+(This)g(ef)n(fect)i(can)f(be)396 3938 y(immediately)e(seen)i(in)g(the)f
+(pre)n(vie)n(w)g(image.)396 4343 y Fd(2.2.4.5.)36 b(Units)396
+4532 y Fm(The)25 b(units)f(can)h(be)g(set)f(to)h(inches)f(or)h
+(centimeters)f(by)h(clicking)f(the)h(appropriate)f(radio)396
+4662 y(b)n(utton)g(ne)o(xt)g(to)g(the)h(desired)f(unit.)g(This)g
+(setting)g(ef)n(fects)h(the)g(v)n(alues)e(printed)i(in)f(the)h(six)396
+4791 y(position)e(box)o(es)g(\(left,)i(right,)e(right)h(border)l(,)h
+(top,)e(bottom,)g(bottom)g(border\))i(and)f(the)g(tw)o(o)g(size)396
+4921 y(box)o(es)g(\(width)g(and)h(height\).)p Black 3645
+5692 a Fi(14)p Black eop
+%%Page: 15 24
+15 23 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black -2 601 a Fe(2.2.5.)39
+b(Ima)o(g)q(e/Output)d(Settings)396 802 y Fm(By)25 b(clicking)f(on)h
+(the)g(tab)f(labeled)h Fg(Image/Output)j(Settings)p Fm(,)e(the)f
+(Gimp-Print)e(windo)n(w)396 931 y(will)h(appear)i(as)e(sho)n(wn)g(in)p
+0 TeXcolorgray 24 w(Figure)h(2-4)p Black(.)g(Notice)g(that)f(there)h
+(are)h(tw)o(o)e(sections)g(to)g(this)g(portion)396 1061
+y(of)h(the)g(windo)n(w)-6 b(,)23 b(namely)-6 b(,)23 b
+Fg(Image)29 b(T)-12 b(ype)25 b Fm(and)g Fg(Output)j(T)-12
+b(ype)p Fm(.)396 1406 y Fd(2.2.5.1.)36 b(Ima)o(g)q(e)f(T)-7
+b(ype)396 1709 y Fn(2.2.5.1.1.)28 b(Line)g(Ar)r(t)396
+1889 y Fm(This)c(setting)g(tells)g(the)h(printer)f(dri)n(v)o(er)g(to)g
+(generate)i(color)e(quickly)-6 b(.)23 b(The)i(color)g(is)f(bold)g(and)
+396 2018 y(bright,)g(b)n(ut)g(color)h(accurac)o(y)g(is)g(not)f(v)o(ery)
+g(good.)g(There)i(may)e(also)h(be)f(some)h(une)o(xpectedly)396
+2148 y(sharp)g(transitions)e(in)h(colors.)h(This)f(mode)g(is)g
+(acceptable)i(for)f(printing)e(te)o(xt)h(with)g(small)396
+2277 y(amounts)g(of)h(color)l(,)f(and)h(may)f(be)h(acceptable)h(for)f
+(presentation)f(graphics.)396 2656 y Fn(2.2.5.1.2.)k(Solid)g(Color)o(s)
+396 2835 y Fm(This)c(mode)h(produces)f(color)h(which)f(is)h
+(considerably)f(more)g(accurate)i(than)e(the)h Fg(Line)k(Ar)t(t)396
+2965 y Fm(mode,)24 b(b)n(ut)h(with)f(a)h(reduction)f(in)g(performance.)
+i(In)f(general,)g(hues)f(will)g(be)h(accurate)h(b)n(ut)396
+3094 y(tonalities)d(may)i(not)f(be)h(accurate.)h(There)f(should)f(be)h
+(no)f(sharp)h(transitions)e(in)h(colors.)h(This)396 3224
+y(mode)g(is)f(good)g(for)h(printing)f(presentation)f(graphics)i(in)f
+(most)g(cases.)396 3602 y Fn(2.2.5.1.3.)k(Photograph)396
+3782 y Fm(This)c(mode)h(produces)f(the)h(most)e(accurate)j(colors)f
+(and)f(tonalities)g(at)g(a)i(greater)f(cost)f(in)396
+3911 y(performance.)h(This)g(is)f(the)h(mode)f(to)g(use)h(when)g
+(printing)e(high)h(quality)g(photographs)f(or)396 4041
+y(other)i(high)f(quality)g(images.)396 4545 y Fd(2.2.5.2.)36
+b(Output)d(T)-7 b(ype)396 4734 y Fm(The)25 b(user)g(is)f(gi)n(v)o(en)g
+(the)g(choice)h(of)g(color)l(,)g(black)f(and)h(white,)f(and)h
+(grayscale.)g(Color)g(is)396 4864 y(selected)g(when)g(the)f(desired)h
+(output)f(is)g(to)g(be)h(in)g(color)-5 b(.)24 b(Gre)o(yscale)g(will)g
+(result)h(in)f(the)396 4993 y(printed)g(image)h(ha)n(ving)f(v)n(arious)
+g(shades)g(of)h(gre)o(y)-6 b(.)24 b(Black)h(and)g(white)f(is)h(just)e
+(that.)i(The)g(ef)n(fect)396 5123 y(of)g(this)f(setting)g(can)h(be)g
+(seen)g(in)f(the)h(pre)n(vie)n(w)f(windo)n(w)-6 b(.)p
+Black 3645 5692 a Fi(15)p Black eop
+%%Page: 16 25
+16 24 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 583 a Fd(2.2.5.3.)36
+b(Adjust)e(Output)396 772 y Fm(Clicking)24 b(on)g(this)f(b)n(utton)h
+(causes)g(the)g Fg(Pr)q(int)29 b(Color)f(Adjust)d Fm(windo)n(w)e(to)h
+(appear)h(\(see)p 0 TeXcolorgray 25 w(Figure)396 902
+y(2-7)p Black(\).)g(In)g(this)f(windo)n(w)-6 b(,)23 b(one)h(will)g(see)
+h(a)h(representation)e(of)h(the)f(image)h(to)f(be)h(printed)f(as)h
+(well)396 1031 y(as)g(se)n(v)o(eral)f(slider)g(bars.)h(These)g(slider)f
+(bars)h(collecti)n(v)o(ely)e(adjust)h(man)o(y)g(dif)n(ferent)g(aspects)
+h(of)396 1161 y(the)g(image.)f(The)h(v)n(alues)f(can)h(also)g(be)g
+(adjusted)e(by)i(clicking)f(the)h(arro)n(ws)f(or)h(by)f(typing)g(a)396
+1290 y(v)n(alue)g(into)g(the)h(appropriate)g(spin)f(box)g(on)h(the)f
+(right)g(side)h(of)g(each)g(slider)f(bar)-5 b(.)396 1569
+y Fj(Figur)n(e)26 b(2-7.)e(The)i(Print)f(Color)g(Adjust)h(W)n(indo)o(w)
+396 3381 y
+ currentpoint currentpoint translate 0.5 0.5 scale neg exch neg exch
+translate
+ 396 3381 a @beginspecial 0 @llx 0 @lly 386
+@urx 406 @ury 3860 @rwi @setspecial
+%%BeginDocument: figures/gimp-print-print-color-adjust.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/gimp-print-print-color-adjust.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 386 406
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 386 406
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+387 407
+12.000000
+387 407
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+9a9a9a
+cdcdcd
+b7b7b7
+eeeeee
+808080
+547098
+7393c0
+424f63
+5a7191
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVP5]l*/WQ7eRT-)q602p8X?"hLmW'UhYj'lGd)!sbKnGlp-APE!2*VP9W)-aOg5P7;UfV.
+[;dDB];=3&C#C^K":0IOs7.[UdPK[;=##,u`CkCAl^bV<*koKnY57KnY57KnY57KnY57KnY57
+KnY57KnY57KnY5WAN:^%V^]>AQ1h8(jjOZVFbKqQ<`Q?Ok,ZqD\Y]W!>trB%]O0Wc5(72fQ_5
+RE&T++Cc11OM#sl=ZmV-*iX.Bm9REV_?hu=;0?kPtl3Y.D!!ZIS1F7&jGD%m<tc8DSLmVo*qn
+an]J:uE3f4"6Y:$k0YbR5s)&ocp8Oh%Mq;+G_)'DiOk;D+Cu3rf9=]0H-u_WC-nHTWRe@!&kh
+_OYZU"^juhC$ONE%l-Pe!NVg8)@5-t*=!<d+!OI%C#f0,s4m3q>X+`)dD86)q&/C8dGS8&I+V
+<#25M*<7aY+MKE(GG6IZ,^XFNbD5obsH44;iPd9-?WNhgfEK2:g,1:`,NEH=al'5gEAmW\bct
+=Co&5/sZ)s`p&S6TgTOZKIZOd4\^Q8)_XV1@26!5^is4??m$h.,"'m_"9OJRDIaBVbfdHPrt.
+eDY0N4ZND^MQU/sik1\?%F*hY+]6!UO%XDX]:^<5<Xlgkkq(E2E?)2eK6Yq`gF#l=A!?n6aP;
+UIHe7mL*@YqV';EuB#l-4FD2ejJ*HOOH,q-Z;uiA)m7FQ-5&lF^^PRY@qr.^CK">D;A2^1'A/
+U^fdbYj!`#1P_RJcVap;kj03[^jMkJAm]DmDY;R/_+8OJ)k.XK-l$=\aRN"1sD1d:?CFSkoU@
+%])";4Qm'V,J<JR">C7f%_29/.sQI51rcU?8U$0Hf"&D25W\hO4H:l%.".#\NSTdsZ;g!c3jH
+,)'Bg(S$^6.6Y:2?'#@j1o9Mi"DYu.4f5PK5mb6%o@>+EH'j!#<G9*0Ei"D,dNL^EI9U&\%oq
+9gmD+q]Jg"5K0?7^8<!C,FPc[BBccU;%]+?dH^4B_sLDKPg9(.H_H\HJ;"H;eaCKE<Z4EYP*,
+cCWeNS.PQ;DSI!AK%KqNf];/UJ'$PhOeD:l6e(I-iG<[::$pas3](;TUFd/)<!p$/Qi8UL$k?
+NqIM9UM-`%a!*rcC'-m'H-@*"b!='po"c$T@@sK+5.p.f(9[pVP#nU[.01h=;=TWR3F9"Zf8_
+KBbDI*C4P/%Z:#TID9[9#0(6RPT:Ah;!aYVI#2"j?!EF`A*!*MYMk[,sr&iS14K%:'mY^0^El
+e7O>>42M#.E$8cgIJb?^J!s'C0UdA9N6qnE7\"`@Lo7)[N\BKYfa<fQSOF2,B4Bu]bDajjRls
+qF@U+,R=*M#gV-8[+7\is<R2M:&^r7DuK/'UgHi!?XHE:E_ODH`ZM@N_..*^$aEB"GE,%LoD/
+28^[VfLSH<-7Q8^Zl*X7&Y"f3K#W,m%J.OBf#>%RAlU,);(;dPg080g[G.Jj?,hA&>^_Z>06Y
+P"MJO$[!lV-#%[Y3:-X/.&/\D/mJBrOoZ(o68<cf^9$+g[i,IY=gT_>7munJ/4q"e#,KPYg3(
+cjiYjT)%'T%;\od-u7Q\`p22_?&PAZ^>Y#F*pOF\5)romSHU0V$'+"GIrUH4VG8&9=I]mjQKf
+!$Pn$cYUKV.Is5#pO<;Ya3eH<b,-_?,O.Y(e%Q_pAE?I!2U%s25'0rhRVLt)BHV$Sk,)!a9VW:
+%-jtoG*8RG@*iV!+U!?T*igdAU68#C2Pt7fH9dd5ARCE.oO$LQR'TFaJl_Ss*/4cddq;Y"?7O
+n//d8aM<3YSf^Q&nrdpbM;P=[K0c"qi,HjJnC&C\7(&rs4_IIfABRc[Xg-I.$q&T1'=dAh'^#
+oq1TOW<joJ>d,H)S4/RO*!cLcKeL/5`.DkN-`X6HT.c??K9o'A"@+pl1eM+?k9[Y_kte??@H3
+PY8`T?sJ,Y!sYP?/oc/%2OJ)]Y_S[:fi3MJ/ij+sQqEb>B4__EE)0F4GHBho#*.qhHF7S9.@C
+gmNq8N7moUiV3B]URpk@$,u9P!'e#?i:UrDuT2irk+*UrqOO+T>07=h#WAY7:<`N[1sfQSXR[
+a1+73u!"be[$R9BXDj-nNTa9BlAbG]!XUn14REh0PRkVbe>nUb*'jVa.=k`]Kf?aK[mV;q5q"
+*Y>h<2C7rk,cL!Y`E/[4DHK8hs,)a5%.)]C#?B">YP_LrZeGRMNjnUMdFUAN#`TbrNB5h\Bd-
+2mn:/,1HK=8.gp5q';QMkp=4;pu_225B!?g"tc`2*$`mE1iobATI>H$hu=9Z(_MNI=S33=(b;
+QWO8W)1hmGZ6::"N1\AHHa<)R:X:nAI`23VR6V<V<Zj@I`JZ*Tb,/]%$PrU@-I?+N_8,D*iW>
+Z'j8KILJ@"Z4)]eK!A"(8f0\F"b*_"f(ghmp)?>SY<=5$X^N3LFFQd/:b3&a9j?jbFi65Zm6\
+i(b4:5d),%gbRhZ(6+$[mGmdJ"`7u12.98FkA*,CV_Lg]Xn#`^Rb3'5I`?+-iSuJ@Z,@j3l/<
+Z/8'I<2o*+$JhW\6L?6_;Q'q-6i76!$u'hGfr#>i8YLGr_cMIIZKD1)!Z>FQ;6q7G[.0E]8P=
+<SX*V%a+-rBkM)"LeJDJ8^<,_ic#H`'BsO8dSVqHh&.`AoZqT'+QP[BV:.jk3^m(1lbVK-+>,
+MY"Mgg+#oL7<[?d&n;R\tdAhXHi$D]g5$"R&t2CZo0Lq5G3,8+.b,D,P&_QaI5Ai3JO18/A48
+?3TE#mNDT"4W(V!'tg'Tk54D<-(VQ'f::Qr)I'<TnH5u1'EgMQ(=/e=d>+:le6;_.]$qk9J%H
+C@(As#K2<kbNgYj5%>:h2N>qV+DV,_;6GaWpE60Xfl$Ot]Gr::3!AHM6ke^CIV6GD?PmUT\Q2
+\FS$<ecV?(0k)l0#_t?7V4nj9ESD3L^Fe'pSC`4]It"Nk=/l%9S?0*^b?U,6N!17oYo7>ZRRX
+8(+B7).9+f/@&MXlC[ANQcjb=f-[>$8nAtSeS#,!6mPe,<$a<g3:_ss'V]1Z;O_drVU#+N'W>
+Y^%.D.\TJX\YSkBpTd>e9/fc1f>68csUQrM)Jj@G8<"#Do!%`_%\3U0DADg1b@rfA#GKZn.B*
+]]=iNiK!m19!u>m:m+i9kHrKH>OB`>trZ2=e.<(=g(g'IVG=D.QAk'RJ0/qC(\]As1q1K>Z-Q
+>>UE*C6>I*F$@&@qUq,Cd?W4lDBp]XGS"A6oS'5EW>(tF!0H3.4RHRWr/n1^NOX>';6rN:KVa
+?3s=,t?B<L+[OWmtfCO5*D2)b,_o%!=o07nQKF'/c2rUX<U?-qT#H.^)um/]\'.Bu[kd,?VeN
+1I.$<C^#o,Dq`h7-5MMO$Ft%]Y9%[O'MET]Q4IDf*:m[1Q8J@^6u&ukUNdCb2R/,S;2o2;X&_
+#3LJi<J$:ph=Zf]?SR.[mE?NWQ:n7Cp]R7*ug''b@bA[nXt1"@[4QR0Qa<a[INAqX:@n,E[3Y
+%h.lDP]9cU"\#n(\_&#5#Ctbg9@HG$T7EY<$;)k&9%uuF2tKd6T<E>cYR?@EJ>Xg,n;.hmYk8
+DB)Kr#:9R[bY8js:7_Ps772+,$9]h6jYZftU1)lQkae]j]/Z"u,*d&PB;"!ls7+h]7&7gB2o&
+o_.;PT1_!sg6+&KFJNa+Gt]dAn7fJLE18rb+>;ZS9i3%)HsuMQ_:_l]k*>brR-p?ti-%e#Sj?
+U/K(Ecs;fGID]-^>SUDgA>2O,K\RDg7t&pkc)GIkf+ONj/>[8'V.9`q=isn%n,E[3!8p4'>u`
+Nde$bc]Amsu8(q[T3[jYDYU0HBWE\rgA9.]En,t+u0dAQcgjAYDk+CkYDiQ#T:aD[JL:#VHfM
+EN[E'=53DB9n/Foc.'s/SSiJrUm-E^M9(l]>\BB#jc1"ICmMIXhueVfsM,B'Fn%k$ciZqaUhQ
+)n9m^Z4O^lGMTcWWc/O!sD^HH@f91IIckgT9R;UXlAsTMApps$k]*q;1W@`e,',uTt2>Y_OBS
+e8c6NAj4Ir6*(Pn.FtT?&?99pSLf@`p'a`2L$>G<i'<oP6s7[sVOiYOs1'orPHe4U[&(E.kR&
+oi)24?*]5l7cBj\5Z2?Q\`BP$e-.?F(!gD^F"l9P'$XKiaEg\V<_8_S3T=kWHGcCp1\[qMI#Y
+IQiBi6NE!Y*lBi^QkWgjgNm!Z))pO<<T.-NJo:\0jUJu#+Y@f02'-Pb%'qben)OHoJ&S?[i]_
+[mb1XP7KWm^c_KBmS@._r5!VK8F;Q+G]5[f2YY6Y%0&UdYu$mkpD+mb#8"&=m8QDc:M@g\0YB
+nU)+*O0"R4E=cUKWGL9UGg^1U>QpUJYhN)6>KnJ><pFVLuRMHK\[KL.Bmmja\=FaL88"f3\g+
+FgYS!S-4\lm-`(+0LMK'Y*Lg1fCq$$Y/XhgX6,NP@Fn%Yc-u&pN`%9kbB,/(lB($6Yd\<ACga
+M;,\b?XZe"8`Woi2[aB%'tArk-4'Kd'.FkEgkJ8*O^tB-;_P?:V*Y=[ER`<KH%-mYL!2Om/=0
+sI%o&$V321+_k!lCW]B,?<Yd+bADDq&l^#li&"p@l:2(JdrdfarjYbug]Br28M4mK^m!QP6d1
+tQ;b6o+?C.Dj#4Bbkid/3oSqR]R9i/E[CEj^BR7RFQ@V3Jq`8-'ahdnU3BC.;XsIAO:Pq*":o
+@asSANrV2#4O[GlZ&R,:S(/RCP9`/YZQ^S\4+<)f(7AMJ&>u?lOM(Vd0+"i^o;H?aT`!F[lm[
+LQDJW^GV`CNWoD#69".qS+D^BfUm-U[Yc-2Y[hbj#7Nq6o2\&P15aD*sN\Y_%hD6F8$Ej[,14
+Q+AOF%!P@Nd"]QCO?%2U,g69g%tB`ZIj@W1\Y,<TWL_6hjKUS1Jf^3H6j'a!OP4s=998kb7:,
+Jd>Y@[]%K4Y,@q>VQs+!T``g4UM#7T*P+=ihr/;U*%ibV\p>XJ0%l,#q2@:D&*g+h`L,HJ`s&
+)3K<=rW8%VaIsOok?h+/`8KZ#qIEKofY;Z!eIpp8^ia$f+D*p[JfX'h/n>T4FePu?d2seE*6e
+:/g:X2eDkG6jZ8T.*O]f+-'=N(10cQ(N9nhOq5l2skqE6N"hgM(>\1M'/]]g%9Im:&<mG`tgi
+fppc;75R[*FVD9,r8RQb.;cH_np)_im@li$P@c.7!sW6<t_d&]"g#B'7rPDi2I\2r(LFAZ!*=
+K.pk&DXPk(R[';dGO7CrpIEJ#Hrn,Zo4C3WhsL\>WR:bIq1hQi_bUI</S.f?]JnZ0GXRh=5%+
+U24tUM,pG-Lp6MQg$H8GeBQ'X1V7*;B5YZt,Af"Kb:_Ni796@IUtd/F0>kQFrs:F474dfPT)i
+)g!DM&u?6Aj(0&8Muc):Ln$g:g8f1I11RYj9IEKatm4O9XQKq-tn0_.fC>Q+Tip_0&!>*/dJD
+&1K4%5T+"K-a\4&[R3<bcZ63UYg[G.JKRC7sDbkt"/rf"7iFc0M,<\Y\m7`'tAJT]p.\B_<Es
+f,_KJVoZ-%826e!+SN2t6.$*4qK2Y&!+Gcl3Jkg%7d'<?EcLW5NKU'FR=TOA$;JPLQQaM>0m/
+TSW:jW^N6)h)&7W8kJn"r!pc!b.so)3m[_%BN=39OJH7TIVU^BWQknZ#S5m%E&*qYZ`n@/IB\
+<1MOYi_2B@qt,$NBM\)WbE:CM3Sq]'HuOIIO;W"l6dcs95A9Tb!#pnOY-WG]fUh":F/>/0`Ab
+&t0Ao7fUC3;--^g&O[d63[Tpa"AS\/'+OHXdJMFkEYL,l@-FiWsu+pflji2C$[p)]A&J(2+[,
+SZ$+%AqX:@_2[Fc:/.?5#<)'S3P3[]G`<*@X-:4nX.DK*4TiZAeX)d#/@ojdPIU,H'&=RL:DR
+uaHL&6<W(j[QM?H/mkZ3"mo>8B>F$o+:.*g2b:M;VQ6U0)M0MO"2USV7U_g8/ciKe@J"Msk$*
+?0V9A;.LLWoe^8lG=JX2$d?&%V^Te:g<YPHP\!>h-k%A>L9i.G4'BDg67=*BlK5RVRpU*:DQ^
+,d]"+NPT5\k"F+^)A9u!RikF;,8D41Z9K-If7MW,DOquq3YEm.:V6f=B9Io7CD"WQud-\IW!E
+2K]#0^^1F"7ckLkSLB0+LHu=78l*9Tga;!'5@@/k-l:]_LDH,6`BoTVs2q[KW!cH5N+0SlH5g
+^Ia]HK(0%G)f&^:!4AiW_.5YgVB%3W/`UO24/BJ64*Z*ZNKpIOtY6kt@UdXfqAUhFk^u[Jf^:
+U96oT^%]^]$iLJ%YnQl-6W`s%i80/.(KicI[usbohcqJq;:_*0)A'W%9-d-*NJqdNp39[,WtI
+VLfOJdhadLNRB#a\k]R[%FUa<qPmI`="+-t=[XB;hqTj.0R(G5l5&&L?p*([2d\Yl$@k\*>'E
+1'8P_)EoC*F<fU*.nJ@Zj2DVKX?7j+)mF;`S<56-<!qDY\CAC3_CWmhDcYUn#,+PG"@9bTQ3.
+\fn+JVKBQUkS#;(S0<]@"F(76jEjL<2[QTE?!^<L`NWu,UTE[88!H^17F0!2"RB7%.PPJGX!B
+E8s'Z^GjNUG9Q#;O""6_'d!_!^05/4#hfamHX0a@4h/s0D-UfN5"jR?aV*pa.gg4XqT`BleR)
+tAVc++u'ba1^h0VhFW-M#4)85_!>f*LI.2W1uT1g`ME=\5k`Qe0i'VoT[jU6)?&M?GUaA=du8
+l^uT/Fc*1m#7He$Q+@MIg.;?A\[j9/[1o1+aFQmU[Aq;oi0@251DM(=Tb&@jbD8e]KJ!ugUdH
+g;L4JEHHaK2%@R1KBJ+FVB'K?_&7UJS3mA*gS`?He3o]g5T3`r2K77A0mV@,M'U#;_a`GK^>=
+,B?Uh%s82=-Y)i:^^gAWL[$cYQ8\-=(4j^dYS[K8.fHq`nn!G>+/SM]0p..qB_l<9f`l#IkmE
+>V4GBS"N_sd^SRQBio[`..qM;nKoiL469pLD9lFrfDshLp[-6H;l704=L^XM9*g,\d2FB/8Om
+sibTJAlW`o3;J;YjW4B*E!a1EItElFP+0Ria*r9Mod%X3!PTrJC1(e8Y)IHOaN$"dK72#V3t*
+M28+tW[hb6g+BG3Oh;RWd`)?p6*)8r&:J(WLXL?S(Q$PV93TQ!.OmruPo-udTsldB3Z4_4K%g
+#=r[#7<DI?05^.-1/AXj9,:JOBm\YaeQjCgsZl<F\MR'%"5B/RWO(A-OVQ*ae$]?nl@Hteu:G
+.0^-8PJQ9C$[bRp(Kob&!gnkaJdfNF(d_C%jNY6b`NZ8BQ#ac)KfcITU+Ypr/.V,k)O0";lUm
+;hi,R(VsM2tFNb4GA]Lq56`Ju^G-ICRk(J9<Q),g0qfQQ+G96ut]@n0u+#PciKFP+TN)J`4Ou
+oM%04!8?T+U_e8B#=#q%S=QFiND$;]+Lq3!nV@i?Sot/#9lK5>C?(DSh6Y,2J:C-;lA9<0j>e
+9aGWM^C\k\&C]#pd8gMnWQ^<\A4O"3Q>lK5m5^Dh=hVc+Ct)m2m+QfmRPgk*hsq.X8iNZ-d(0
+o<B[MUGU"/(AqD3!*6G)>))1LY2<kn?BPpPf36<Bi3b(HLOLb&]WV9>]/P-dcc]O!an]5YCq-
+p0.EAoAlI-d1&;'YSgJK@TPhRJg*_m9M2f_HmpW2PNQlEi;3d>adsa+@sY&>+5FFFYBGT>aeI
+6atSW-3#%Wi[*:`b!,a/ZC&<q'.#F6_8Q2NcdO#5*+(hOnSa*^0@:G*sJ<-n^Hmf'q<(1Le>8
+g)A!^Q6JO`Y<\7F]D(?RBcei_0ek2%IMYI24]Nq?SK@"G1&QgFJm@"[,BTM;Q/**NEAo@PWpB
+"?.P+')jF#S*a"HGT9.%Nm5;j\8t5=A;mI]</UU>6?:iLrs49?ZhYS0G]kP5,7:to_Z@D3Kjk
+^H_iU7@dI:ss"r(N(M3:7-J9./>qg*TjTK%tq@h;Td,mA!r4$MunEXXeA0d??<Oa7>LEK!E-d
+9)qeE("E'Z5(`fRJGpW*j+rL;,d:D(g#aj;"65%_\]\(7QG0Dp`#G6KbNNABc<ZF9@!]JE(?3
+*^^(X6DHKJ@oT%]_57]!+&PaHq!d\i')+7pV"=qQ%3ROYipO<<4]+`iC5FhDXs6CBqpJ(pB$P
+ja?^i;=TS-";f68&u,M,FL77T#UBl/,Dfrc:=<aKPbsK(J$l'"9#(c<5bWU+kd;PaF.\a--Oo
+gY%*>;A`9`M'a]equ%Uf"Hp3qTkITSVC0kjo*3+I'qIcJn=V?:.gX09'OBDF)9-P\l$mdrV!$
+-NH375jCSJX^)I:7q`0#Wj)GnpSE(NK)l&>$sku:]F4#1h78W$EC#l8DQs!*Un,q6A?7;762n
+4m?qK4056aPh]E+GD`"`rC1dd(qE+^j3s-JMkR]AJ(41\01pI0V7JhL>Rj/fpmbK%+_7'Hk2"
+1__Y6C+iJUQVhd"1.gd4!&STmIs$n32aoW!kLbbDj86.G6L1fVeU4X$sAI6>-nY4HiC_4UCUu
+t(hE("Y8#R-j8_A1l2\$olaj2pEXP4B["!bseo'IKk)4!55rCI;2n^nsLlk*9i]r?$Th#UA)K
+(Sm.$kWqs=LN*55%0&0*#37mgFePXU2F.p@#cK_B/no2frJ[4riW02b$J(H)6H=__:K7Ck5m.
+06W:3W>ad6YE1[8`%$4i9iMT[;oIY$nd.(C%gTdM[9@0N*3>/glM!"'`"BXJ[48iWl=%-B=<5
+GH<Y-Ffn\okb7.fCTr'0u`!*B\gT.jJ1Z6eq;cC/0=g1r7!\aR)CJt41Rn6[-dU;"JR5"XHDg
+=Pc,#4$G<_F9i`qbO&8*W6GdDUEH)!b<0>XQa6/fL+<Dd$dK_'s;32!S.8>dMm@eP1IV/X2Qt
+86CPEnRVDY,XiE-P7D%1t09=`b#I!3!?`rt.eDDA33!%UVua$PFUnTt9MSB3>3dL7bXA7HI0A
+"@sf'8ttN)7Gs!AIo"C/$S%1c!#N/@9$D_b"k;!F!N:LC*"/#9.LptE:W<uH#SV?MQ]b0\qu%
+UfTZe]<Lt$^7`[5FuAHjY5cb]uk_'aI:K]<FXNtq*352oFU`]RY(N:[St.>BX5^&`ejcUgYL@\
+%.B%PTHVZH3&BnTILgkp0:q+UU1]:.eYk=BJ[-=BJ[-=BJ[-=BJ[-=BJ[-=BJ[-=Pfa!H\Jj*
+^OHgjk.OlEHNh1O\+&89S*.O_SF6?Pf>djh59E5K2ZteChW'auh?sHM?(r&>rj?Zir9`qPp&=
+Wf]g1N1CHPgRAe<J4X0^P.hA1^`s5QI6ci?@?p>2tT5d42;7g6_@`qSl9&?I_Ufq6Mr%n#:,s
+5-HmnB;\OKtHLc$ZS]1fKS*G^)7%mpC@_L9$tt>^fC^oLVRt%39>)6ZVU2\I5;!V#lLM,mE`e
+FNWgpRhp_AOY:]dm&2Y9P$`1+[-Qo@MZHlk[JK]7g#WD]jm63m64!JnHHq/8h!mc5C&U@TB*$
+,1]>sRn:N+b!_1`9/M`p12?CN\q`&;%rKP&CH=>(6==FhrtZGfVSQ>7LYL'A\=/6gt/&<GAm/
+rN/HVp9M.Kd6@DKhKlX%>nHr.8!&-bcq9eq"3Gn,<du6;4ToR(YEW*:d%s)_^As1SD_EsLhrd
+R@()E57#kNjU(Zl=;0(62#BU]%@4<io"XWTTP*ms$:U=F/=&Tp^Z?!Y$I(L<SY"pC"%o[,qne
+i]](MY2.ah*2$\5S&/I"Q#X>Lj&+7F7WjVCncoGZSc6<3<Y,0O*h6:DpKZ^$%^Y,nfF:aFZcC
+Z%Dg557#s[=gn(Wd%Tb=$&GWFSYri*i(TZ0NmMUU8Kj^a&O!30;LtqMAJq<YU"Q$j8GQW9=>=
+,PI&rY@P4mP`7)Fmb^k2tIj+F%[Jcmp5PQUg[1q0iU@BG)9o">>jbnq[b^_%FjfnVEbI6/*(r
+jq3"aH*>KX%j]@DC0d2se@L$SW=epL,@Y(i@:<SQ@:@iQ0W2:#@8:P&nm6Z2D6lNr;p(WY'a2
+`0D0sFf0XG@J6M:Z#j"GO3&@BS/]r.1Yjo>rHVt><JW"7+u)V+KQ&:?GMb8rX>:I.hWnsE@%+
++jH18tWJB%4'R5[POW[a>sIdfLBM.TEPVd4\V2Y"ckVeGC4pKi#N()k*1<:#'F50eTY).GgD.
+q3MipeLRl;P;ZBHNV2nlJ3Ml^ZE(V4a/osY`[bGmG8D\-gq?%%F8m<+oPdW4%?>9U,F%TS;=S
+=#a,ALMO8(>,_f=IVl"q^B^Qq+N8J9aP"\*75T.J:,u5Ol+I5k+Q&Ns:3eGXV5[baUo64JKk=
+n=!YH<qfW6e^Y2F(4m&UEVWcZOggc)[KkQ6dWrGhD2oe/pVe@\K4)7F<qSVpY?lr,nFo@\n^^
+FMgDKo/pR6jTJce@/i4.ZhQm(+&7.0h-NbI%9FLqP+'*QN(H3=;5np'maU(o'cS`lIQ0TYFO^
+cX6n,OuAc,HAf`^*#CE3EdKO7LAc2"Dq(fQq-e"jLmIP5EIR[W-)Mi;=!f?V+0B!O,/LDAP^0
+*U=P$D7'4XZXUEip!&9OjGsj.gQq,YLRr4jh;K(sR*BedYjq5:6#ae-S'F*\l?9M`ZeT\[fej
+KSc*W(WEO2tOCcQtNm?_-m-Joq@m]cU,M8S7]?f\]3BI4ts#/lopq<JI/H#b!j@&?O8,(kOV8
+jGrt7)QY(6[Y!mLIHD+^,U6KPs*GX24W'PVF<Ck'?^O@E^WCpmH\(+2j_/p-hZlI%'HlNMI3<
+g=c0>fbbTgk.Qq,Z;I!_h)prjsl@:<SQ@:<SQfon+fZuoePC$Y=rHUM_W6((ZoSC/,Ta2BETr
+;Sps3M*Zlc"Irqh:qaiLRWfU+aEqXg/dt^&A10(eD!s8pY^+!%)F['8"YIMCOoF<r/%o:AS#_
+*U5b@P]@8tKJg7"j4:+;(SC4gkc16%*QK<NeUUTZZ(]o1/SC2"KDlS-\jP'F[b:j(uIL(p&Xk
+qe,Xs$n3aUfEt!cKsEGH7/U3&IOT-NmYS3F2s,0sO4Z#/R>GNHJN7o,aA%XZI_RdT^VX;YM"2
+8';tP?3oCLVt>gh5hcWq!eM3oF%VJq!p5_&Vt:)4HYlf5+CS#Zlb]1?f&bXZNPK1%.16O,SqM
+AWXUF`V>*nte(UVEe@NH-QLfP','9D>lo(ZEP<(l_Z3i-Fb4S[ipqJY7&4T=6O"U&]2:$4AmO
+$*Db&A/SYl)=<Qo9rm%K/D*5n\/MmEfUdEc(&G$4JLXC3(7cT-bSgqA;6b.@"3OPh1K*@hqiQ
+Phu=E7fUo6eD<#Z=n$Tj&]T%`_&0)13ec#@l^_#jO7.,:aNlYGmE($fnn4"+f[Wt91&2\MqSI
+o^!U;eas"$t9<"mQ!ULt5pEcO`4d8U(UK?6F13,MIAWjq7E-cQh.k($6,(D7AanOM'1Wo`l,l
+&[a78,ALMu^!m=8jq4l&Yj=rK8(>+(O/R2HYB<.c$m=[E0oouO_3+>F*e+Q7\,),e;bFr:rt%
+<lP/d\kgH;4.R7)CQi5i>T3[u2uqW:U3GA(j)dT\m(3XCa]:P>M&&ZtF3[B+!jh0oXS_=@alU
+(7dN*^A]5>9E"a:*/#AXY9nWSk1K&N5jZbCrC+Di,B6P%p=J(<j:$b\`5gVK3d6[m1k3tgS3o
+1GXTa"r><3Q*79Yhp"^0!o+jd`O%6Q0h[.+4*J.dQi!%!p&KM)Z]H7aWLd$@%f4O[\''9e60$
+GPT?,"#%#^kbHZ*:I:Yct@9Zmr9<@3/a`;b+$.FWCU:[TQ^nah;fpK0o'bHKN#KgkO`sp(&!l
+eqG8\?&ftXokF)b+Rj-gM77hM\`S0Q\+^tjn1SP_<_2#``-YnKgO&]+]a$1_!XK]nM:\12Gg4
+L.&9s7W8Y:UM>9h&R<qWdAGiCA`!l;@3+g<HgRZD:=+H12*Yk@N\hWA0kRrE10i-B+n"-;l=j#
+%Ij->dpi-;sl/HfBJsE#<iC@t7s.YIS7\Rn!(oXX@uQ:"T;HqogVsJ[bLG]^8)T!BSLh#e]Q>
+g*6aXNX16up9,JJm/5s^?Y25"CC4B^I5_:OrNqbEodFtJ=V.[%%EAW<6PsslnnPr21'kPHoeb
+N;)hQ)C1nJC:$J*Jc&.j4N63u-agpR%7ZQQdHeaH^.%DbY(X)RDG(4q:ocuqnNOFh]8oEkjFM
+?W<6_$;+8p/l[!"Y43&1"6B`b3@N,k8jc\):@#BDP=9@_0ST32(=Qp#/RI$W4CT%Ap^k9qL-)
+UlM18Ve]4]Mn(6K+9'ga0JbSjL*2q!LIX=KKCM;Q-JjZr6hCf#XP+usE0a%p$)aMdDJ+/9hgM
+;.rq4E)?Hu")-5:ZD>PM9+S$O[=M$O[?c?VT8:F0Zd0_Z&/K[]PXFL#pD;n<'C2GBib#n:_Go
+$(d<4G>/s,Vh?4,>o81EKct^;*?7J[k5#jF"2;n_JD_POopR*1_;S^S+kS5ZhWKD#*"q):'S`
+9'@0g$QL7iZlIg;J8'5r$A>AcQ=o*X?&DX;Ef==noGNdO(t]]Nh:G-lDc^7Mu=6f:+HR4%'j6
+=:;Ig(QF!=1>6ZRqj55F5+k5?9NT"#PBPUDn17Qq>:7:=KX+/gKLE74h?<fgD\!`LLC"JO'0I
+mKOD@G*8PB;nogO0Saa'e[1<P/Io-Jp//.]"S6e9\?amG>SF>!l[s$]4l,LU#o[FBWJ[_M2j_
+cSND@]`cCXB47kBlm_XW;XJ?L]37i"1.&&9uBFK786nW4/V.QY/]*02fRM"7cI9B^,Ycn9E4"k
+%M:t>J,91W997E;q<JaK"lP"Zo?t/pc62&Zn;bQlbX4?/dt&3iZEjBk2"M8_-Z7%6Z=0.gD0n
+sI$OF:_4cQS/?K:Id(1n6XU@MC\pQTlntoUEIYTI*`utC(5*q#b~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 386 406
+%%EOF
+
+%%EndDocument
+ @endspecial 396 3381 a
+ currentpoint currentpoint translate 1 0.5 div 1 0.5 div scale neg
+exch neg exch translate
+ 396 3381 a 329 x Fn(2.2.5.3.1.)i(Brightness)396
+3889 y Fm(Adjust)c(the)h(brightness)e(of)i(the)g(image.)f(A)h(setting)e
+(of)i(0.0)g(gi)n(v)o(es)e(a)i(fully)f(black)h(image,)f(while)396
+4019 y(a)h(2.0)g(setting)e(gi)n(v)o(es)h(a)h(fully)f(white)g(image.)g
+(V)-11 b(alues)25 b(greater)g(than)g(1.0)f(will)g(result)h(in)f(black)
+396 4148 y(not)g(being)h(solid)e(and)i(highlights)e(turning)g(white;)h
+(v)n(alues)g(less)h(than)f(1.0)h(will)f(result)g(in)g(white)396
+4278 y(not)g(being)h(perfectly)g(clear)g(and)g(shado)n(ws)f(turning)f
+(black.)396 4656 y Fn(2.2.5.3.2.)28 b(Contrast)396 4835
+y Fm(Adjust)c(the)h(contrast)f(of)h(the)f(image.)h(A)g(setting)e(of)i
+(0.0)f(gi)n(v)o(es)g(a)h(solid)f(gray)g(for)i(the)e(entire)396
+4965 y(image,)h(the)f(e)o(xact)h(gray)g(depending)f(upon)g(the)h
+(brightness)e(chosen.)p Black 3643 5692 a Fi(16)p Black
+eop
+%%Page: 17 26
+17 25 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fn(2.2.5.3.3.)k(Cy)m
+(an,)g(Ma)o(g)q(enta,)h(Y)-8 b(ello)o(w)396 758 y Fm(These)25
+b(three)g(options)e(allo)n(w)h(speci\002cation)h(of)g(the)f(c)o(yan,)h
+(magenta,)f(and)h(yello)n(w)e(le)n(v)o(els)396 888 y(independently)-6
+b(,)23 b(for)i(rebalancing)g(the)f(le)n(v)o(els.)g(Normally)-6
+b(,)23 b(these)i(should)e(be)i(adjusted)f(to)396 1017
+y(yield)g(neutral)h(gray)-6 b(,)24 b(b)n(ut)h(the)o(y)f(can)h(be)g
+(used)f(for)h(other)g(ef)n(fects.)396 1396 y Fn(2.2.5.3.4.)j
+(Saturation)396 1575 y Fm(Adjust)c(the)h(brilliance)f(of)h(colors.)f(A)
+h(setting)e(of)i(0.0)g(results)f(in)g(pure)h(grayscale.)g(A)396
+1705 y(saturation)f(setting)g(of)h(less)f(than)g(1.0)h(results)f(in)g
+(more)h(muted)f(colors.)g(A)h(saturation)f(setting)396
+1834 y(of)h(greater)h(than)e(1.0)h(results)f(in)g(more)h(vibrant)f
+(colors.)g(V)-11 b(ery)25 b(high)f(saturation)g(often)h(results)396
+1964 y(in)g(v)o(ery)f(strange)h(ef)n(fects,)g(including)e
+(posterization)g(and)i(banding)f(that)g(might)g(not)g(be)396
+2093 y(e)o(xpected.)h(F)o(or)f(normal)h(purposes,)f(the)g(saturation)g
+(should)g(generally)g(be)h(set)g(to)f(a)h(v)n(alue)g(less)396
+2223 y(than)g(1.5.)396 2601 y Fn(2.2.5.3.5.)j(Density)396
+2781 y Fm(Adjust)c(the)h(amount)e(of)i(ink)f(deposited)g(on)h(the)f
+(paper)-5 b(.)25 b(If)g(you)g(ha)n(v)o(e)f(chosen)h(the)f(correct)396
+2910 y(paper)h(type)g(and)g(are)g(getting)f(ink)g(bleeding)g(through)g
+(the)h(paper)g(or)g(puddling,)e(try)h(reducing)396 3040
+y(the)h(density)f(to)g(the)h(lo)n(west)e(v)n(alue)h(you)h(can)g(while)f
+(still)g(achie)n(ving)f(solid)h(black.)h(If)g(black)g(is)396
+3169 y(not)f(solid)g(black,)h(e)n(v)o(en)f(with)g(the)g(contrast)h(and)
+g(brightness)e(at)i(1.0,)f(try)h(increasing)f(the)396
+3299 y(density)-6 b(.)23 b(Note)i(that)f(changes)h(to)g(this)e(setting)
+h(will)g(not)g(be)h(visible)f(in)g(the)h(image)f(pre)n(vie)n(w)-6
+b(.)396 3478 y(All)24 b(of)g(the)g(supported)f(printers)h(actually)g
+(need)g(less)g(than)g(100\045)g(ink)f(density)g(in)h(most)f(cases,)396
+3608 y(so)i(the)f(actual)h(density)f(is)g(something)f(other)i(than)f
+(the)h(nominal)f(density)f(setting.)h(The)396 3737 y(ef)n(fecti)n(v)o
+(e)g(density)g(setting)g(cannot)g(go)h(abo)o(v)o(e)e(100\045,)i(so)f
+(if)h(a)g(v)n(alue)f(speci\002ed)h(will)f(result)g(in)396
+3867 y(an)h(e)o(xcessi)n(v)o(ely)e(high)h(density)g(le)n(v)o(el,)f(it)h
+(will)g(be)h(silently)f(limited)f(to)h(a)h(setting)f(of)h(1.0.)396
+4245 y Fn(2.2.5.3.6.)j(Gamma)396 4424 y Fm(Adjust)c(the)h(gamma)e(of)i
+(the)g(image,)f(o)o(v)o(er)g(and)h(abo)o(v)o(e)f(the)g(printer)n
+(-speci\002c)h(correction.)396 4554 y(Gamma)g(less)f(than)g(1.0)h(will)
+f(result)g(in)g(a)i(dark)o(er)f(image;)f(gamma)g(greater)h(than)g(1.0)f
+(will)396 4684 y(result)h(in)f(a)h(lighter)f(image.)g(Unlik)o(e)h
+(brightness,)e(gamma)h(adjustment)f(does)h(not)g(change)i(the)396
+4813 y(endpoints;)d(it)i(merely)f(changes)h(the)g(shape)f(of)h(the)g
+(input->output)e(curv)o(e.)p Black 3641 5692 a Fi(17)p
+Black eop
+%%Page: 18 27
+18 26 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black 396 579 a Fn(2.2.5.3.7.)k
+(Dither)g(Algorithm)396 758 y Fm(The)d(recommended)f(dither)h
+(algorithm)e(is)h Fg(Adaptiv)n(e)29 b(Hybr)q(id)d Fm(\(which)f(is)f
+(the)h(def)o(ault\))g(for)396 888 y(te)o(xt)f(or)h(other)g(\002ne)g
+(black)g(detail,)f(or)h(if)g(this)e(is)i(mix)o(ed)e(with)h(continuous)f
+(tone)i(images.)f(The)396 1017 y Fg(Ordered)j Fm(dithering)c(algorithm)
+h(is)g(just)g(as)h(good)f(\(and)h(some)n(what)e(f)o(aster\))j(for)f
+(pure)396 1147 y(continuous-tone)e(images)h(and)h(photographs,)e(b)n
+(ut)i(may)f(yield)g(poor)h(results)f(with)g(te)o(xt)g(or)396
+1276 y(other)h(\002ne)g(detail,)f(particularly)h(at)f(high)g(printing)g
+(resolutions.)396 1456 y(The)h Fg(F)-5 b(ast)25 b Fm(algorithm)e(gi)n
+(v)o(es)g(the)i(f)o(astest)f(results)g(at)h(the)g(e)o(xpense)f(of)h
+(color)g(accurac)o(y)-6 b(.)25 b(It)f(is)h(a)396 1585
+y(simpli\002ed)f(ordered)h(dither)-5 b(.)24 b(On)g(simple)g(four)h
+(color)f(printers)h(\(or)g(other)f(printers)h(used)f(in)396
+1715 y(four)h(color)g(mode\),)f(the)h(quality)e(is)i(similar)e(to)i
+Fg(Ordered)p Fm(,)h(although)e(dark)h(gray)g(rendition)e(is)396
+1844 y(not)h(as)h(good)g(due)f(to)h(a)g(simpler)f(transfer)h(between)g
+(black)f(and)h(colored)g(ink.)f(W)l(ith)g(six-color)396
+1974 y(printers,)g(color)h(rendition)f(is)g(some)n(what)f(w)o(orse,)i
+(b)n(ut)f(it)h(should)e(be)i(quite)f(usable)h(in)f(cases)396
+2103 y(where)i(optimum)c(quality)i(is)g(not)h(critical.)f(In)h(black)g
+(and)f(white,)h(it)f(is)g(an)h(ef)n(\002cient)g(w)o(ay)g(to)396
+2233 y(render)h(grayscale,)f(b)n(ut)f(it)g(may)h(not)f(gi)n(v)o(e)f
+(best)i(results)f(when)g(used)h(with)f(v)n(ariable)g(dot)h(size)396
+2362 y(printers)g(\(modern)f(Epson)g(printers,)g(or)h(Canon)g(printers)
+f(using)g(DMT\).)g(On)h(rare)h(three)f(color)396 2492
+y(printers)g(\(CMY)g(only\))f(the)g(results)g(should)g(be)h(identical)f
+(to)g(ordered)i(dither)-5 b(.)396 2671 y Fg(V)d(er)s(y)29
+b(F)-5 b(ast)25 b Fm(is)f(e)n(v)o(en)g(f)o(aster)h(than)g
+Fg(F)-5 b(ast)p Fm(,)24 b(with)g(e)n(v)o(en)g(more)h(loss)f(of)h
+(quality)-6 b(.)23 b(Color)i(and)396 2801 y(grayscale)g(output)f(will)g
+(sho)n(w)g(strong)g(patterning)f(that)i(resembles)f(screening,)h
+(although)e(it)396 2930 y(isn')n(t.)h(On)h(laser)g(printers,)f(and)h
+(possibly)e(on)i(certain)g(kinds)e(of)i(te)o(xt)f(and)h(line)f(art,)h
+Fg(V)-8 b(er)s(y)29 b(F)-5 b(ast)396 3060 y Fm(dithering)24
+b(may)g(actually)h(yield)f(the)h(best)f(quality)-6 b(.)396
+3239 y(Error)25 b(dif)n(fusion)f(algorithms)f(\()p Fg(Hybr)q(id)29
+b(Flo)m(yd-Steinberg)f Fm(is)c(such)h(an)g(algorithm\))e(perform)396
+3368 y(v)o(ery)i(well)f(at)h(high)f(densities,)g(and)g(are)i(capable)f
+(of)g(rendering)g(v)o(ery)f(\002ne)h(detail)g(rather)g(well,)396
+3498 y(b)n(ut)g(the)o(y)e(tend)i(to)f(e)o(xhibit)g(artif)o(acts)g(in)h
+(the)f(form)h(of)g("w)o(a)n(v)o(es")f(or)g("w)o(orms")g(of)h(dots)f
+(which)396 3627 y(results)g(in)h(noticeable)f(te)o(xturing)f(in)i(pale)
+g(areas.)g(Furthermore,)g(pale)g(areas)g(immediately)396
+3757 y(adjacent)g(to)g(white)f(tak)o(e)h(a)g(while)f(to)h("b)n(uild)e
+(up")h(suf)n(\002cient)g(error)i(to)e(print)g(at)h(all.)g(This)f(is)396
+3887 y(sometimes)f(called)i("tearing")f(or)h("w)o(aterf)o(alling".)396
+4265 y Fn(2.2.5.3.8.)j(Set)h(Defaults)g(and)f(Close)396
+4444 y Fm(When)d(the)g Fg(Set)j(Def)m(aults)d Fm(b)n(utton)f(is)g
+(click)o(ed,)h(the)f(slider)h(bar)g(settings)e(will)h(return)h(to)f
+(their)396 4574 y(def)o(ault)h(v)n(alues.)f(The)h(dither)f(algorithm)f
+(setting)h(is)g(unef)n(fected.)h(The)g Fg(Pr)q(int)k(Color)f(Adjust)396
+4703 y Fm(windo)n(w)c(will)g(close)g(when)h(the)g Fg(Close)g
+Fm(b)n(utton)f(is)g(click)o(ed.)p Black 3645 5692 a Fi(18)p
+Black eop
+%%Page: 19 28
+19 27 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(2.)h(GIMP)g(and)f(Gimp-Print)p Black -2 601 a Fe(2.2.6.)39
+b(Printing)e(and)i(Sa)n(ving)g(Settings)396 802 y Fm(At)24
+b(the)g(bottom)e(of)i(the)g(Gimp-Print)f(windo)n(w)-6
+b(,)21 b(there)k(are)f(\002)n(v)o(e)g(b)n(uttons)e(labeled)i
+Fg(About)p Fm(,)h Fg(Pr)q(int)396 931 y(and)k(Sa)n(v)n(e)f(Settings)p
+Fm(,)e Fg(Sa)n(v)n(e)i(Settings)p Fm(,)e Fg(Pr)q(int)p
+Fm(,)g(and)f Fg(Cancel)p Fm(.)h(The)f Fg(About)h Fm(b)n(utton)e(will)
+396 1061 y(sho)n(w)g(information)f(about)i(the)f(Gimp-Print)g(softw)o
+(are,)h(such)f(as)h(the)g(v)o(ersion)f(number)l(,)396
+1190 y(authors)g(names,)h(project)f(web)h(site,)f(and)h(softw)o(are)g
+(licensing.)f(After)h(clicking)f(on)g(the)396 1320 y
+Fg(About)p Fm(,)i(read)g(the)e(information,)g(and)g(then)h(close)g(the)
+f(windo)n(w)g(by)g(pressing)g(the)h Fg(OK)g Fm(b)n(utton.)396
+1499 y(The)g Fg(Pr)q(int)k(and)g(Sa)n(v)n(e)f(Settings)e
+Fm(b)n(utton)e(will)g(sa)n(v)o(e)g(the)h(current)g(settings)e(and)i
+(then)f(print)396 1629 y(the)h(desired)g(image.)f(Recall)h(that)g
+(these)f(settings)g(are)h(sa)n(v)o(ed)f(in)h Fh(~/.gimp-1.2/printrc)p
+Fm(.)396 1758 y(The)g Fg(Sa)n(v)n(e)j(Settings)e Fm(b)n(utton)e(will)g
+(only)g(sa)n(v)o(e)g(the)h(settings.)e(The)i Fg(Pr)q(int)h
+Fm(b)n(utton)e(will)g(print)396 1888 y(the)h(image)f(only)-6
+b(.)24 b(The)h Fg(Cancel)h Fm(will)d(close)i(the)g(Gimp-Print)f(GUI)g
+(windo)n(w)-6 b(.)p Black 3645 5692 a Fi(19)p Black eop
+%%Page: 20 29
+20 28 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(Chapter)58
+b(3.)f(CUPS)h(and)f(Gimp-Print)-2 1167 y Fo(3.1.)47 b(Intr)m(oduction)
+396 1383 y Fm(CUPS)26 b(is)f(an)g(acron)o(ym)f(which)g(stands)g(for)h
+Fi(C)r Fm(ommon)f Fi(U)t Fm(nix)h Fi(P)p Fm(rinting)e
+Fi(S)q Fm(ystem.)g(It)i(is)396 1512 y(assumed)f(that)h(the)f(reader)i
+(has)f(properly)f(installed)g(the)g(CUPS)i(softw)o(are)f(and)g(the)396
+1642 y(Gimp-Print)f(softw)o(are.)h(This)f(section)g(will)g(discuss)g
+(adding)g(a)h(printer)f(to)h(CUPS)h(that)e(uses)h(a)396
+1771 y(Gimp-Print)f(printer)h(dri)n(v)o(er)l(,)e(as)i(well)g(as)g(ho)n
+(w)f(to)g(modify)g(the)g(v)n(arious)g(settings)f(supplied)h(by)396
+1901 y(Gimp-Print.)g(This)g(will)g(be)h(a)g(rather)g(quick)g(e)o
+(xplanation,)e(as)i(the)f(CUPS)i(softw)o(are)f(is)g(quite)396
+2031 y(well)g(documented,)f(and)g(it)h(is)f(not)g(my)g(intention)g(to)g
+(attempt)g(to)g(duplicate)g(the)h(CUPS)396 2160 y(documentation)e
+(here.)-2 2662 y Fo(3.2.)47 b(CUPS)h(Printer)g(Installation)396
+2878 y Fm(This)24 b(e)o(xplanation)g(will)f(use)i(the)g(web)g(interf)o
+(ace)g(pro)o(vided)f(by)g(CUPS.)i(First,)f(aim)f(your)396
+3008 y(f)o(a)n(v)n(orite)h(web)g(bro)n(wser)f(at)h(the)g(CUPS)h(serv)o
+(er)f(\(http://localhost:631\).)c(The)k(follo)n(wing)396
+3137 y(screen)h(should)d(appear)j(within)d(your)i(bro)n(wser)-5
+b(.)396 3416 y Fj(Figur)n(e)26 b(3-1.)e(The)i(CUPS)f(Startup)i(W)n
+(indo)o(w)396 5096 y
+ currentpoint currentpoint translate 0.45 0.45 scale neg exch neg exch
+translate
+ 396 5096 a @beginspecial 0 @llx
+0 @lly 621 @urx 416 @ury 6210 @rwi @setspecial
+%%BeginDocument: figures/cups_startup.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_startup.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+b7b7b7
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUl#,OmZ@sb-PkI90FW\d2XLJ]eH&''4RreX?UYk'MAeeI5jZ/1LQ]<:`A8td&%N>2i*r
+t`K%"LG0$+5>r!O[LU!O[LU!O[LU!O[LU6.Db_qQKj!+U#+*[BPN.5#*kXhJk"3YoVb'..YKh
+4B-1(H8+lFWeFGCN0JnDq8]C5!Or6pW6P2bfqZK6qPXiO##k.q.DDQdn5t;A\;L*OEP!PJ1R<
+0MEr9l2_!O[-$Pa^d`D]d+X:5rDhWlp/KP!EB[Nc)JHR]:aDWKJZ.;'g>%:LJ079d`pO5"9ee
+<U;_ZP1hH5/q+#:Fs>`1c-hf'T%SF2akdQOO]ZrWhd>`+Se)SUJPs?`MO]sAe`is)k6IbD7:n
+#AR>&$d@R^[n.`:,*U:@R.so]7\&M2k?]-m<D.epa";+Z#Ks%d(5]K0^5?/:3e94V_)RlQXA7
+ClEN2&I'm#<81-]#+/0U3PJE#.'[Z;Dn[P0,YJ,.KX1N!aGohWVC..W\JfXq!\6Tf-j_TJgaR
+TJl9fTJgaRTJgaRTJgaR56$!3E%`:2J0B.eU6Br2Rfu$JcYp"q8"ZnjPt/<A`93c/E;7Ff;o$
+3gp<i7OTg^jj(<q'sD3&SqYJQG]m%`<(_ME#AArfgDLZW%j>&=^^RcQJ*)rJ_NL79Kl`O<;/#
+h8"8X6hV=rVKe0QL;tY0q4iEk$oNrYF(`#F#C?C*o5HZVlI16=SuJ&Vu-8$E"(?:99G[s7XEM
+Fj($G)nZf9cRC2EQD(g>M`j\6LFgVZ#lbDc#h5jiUJA_'7;WP;uL`[sBInXno275:`(72Fr60
+h4%Yk;41V'F6$DCls]'+BiUk\\j.fsdsMB.Sp%2U,h>X/L<PF[*:]ooGcSiT!-EMneR$H8[];
+)JGt*GLGY9Z:7p4(B:6hjus%+f^=ZcPM0M4D<o2e1@+FsfJ8@Rj.E2,SW;r*&+eK6\:LnpcF8
+MI<U<LeCe++O&jQc\Pkua6^;%.RCA[o;C--+:c%a4+^X9B!j7);JX(eZ42XN_YCDH*[6Z]3uV
+!GG?>I.YJ=^rV`Pd$=B(^SeonH&=Tr'1maGAYTP;.Pno9b4kbqq[+.LT4)!U-(h\1V]ff`>6t
+3csll+@Z-gp9Pn6ubDiZ<^slCYD7\nFN8-T8ZTXLude2<%cMS9n-9MJIF]Nd@]f:A-\[B,<PJ
+S,3k"1V;'i0/[[=oYrWUQhP/t!LRV[F,!6upN+/;&cW,u`P##*Q:GL;V&](4SQ)B?SmDf[E7-
+'5IGrakEM+r#%#Gesc;If":1Gk2BesoV>6!*i"O"Z(>N[/j'f#igHFD@W7C?DWWb,OY.!u<r2
+L3USH&BWS!h_4\6i*MK4,Q,PXE?1CM'9-$f'$gOn#<jCZ=GeFn+VdHUJjU,a'$[Ad=!l3s]$H
+DAg+g1>F]U[mP7bO*3k2*Y^4S<U'k=:C,A\8>Jf/pG5Q-f(u.CE#GQZh]]N/^tQ\N2s&u;k#&
+@6>][bOqR"&C/O2c+#-9gW9nN$]@(]VQE)Sp*,RNY1iHg60DRLX2m"t_\*!2=I9SERASSP\)b
+T9tmn#rZ:iC.TD.Xf,Xuk(NiP<\F-dO'qFqqE)B.3Yj0<I,W2_2>hP:kEVHs<VqEX7jfMpQ;I
+D&(RoiRFadf(c:8APYq[2Hp^?6=<N)j`ACm=ptY2j7upj$&:stg[oL?\D!ZD13$i&&/7"![O_
+TZ[]IZ$aRYt)[Y#X.FkUL'5[%s@8SYkJh"Ga74mAWQhOlek.Qo5'DXsfK>^FNTUiHAOAh;.pP
+FN$h4\qI0.Dg\:/W:)Fj'h()'8@!G]hS$^Y;fZ-c-Q>pRSYh'RVLi9mR@K!HW4thnNaM,r]%1
+%osVV)D?KEGZ_B<5[?5YAb[sB.V"A4$q4(FK1&3$CV*$-U/CrdX\^`!dK6Hd+m5erWH6+<_&k
+44D\)]8F2C`H'r*:j;%bA)uGI_)ramW)paZZVhgVV.9=kkQTLLIk;0%S__CAZtC.p&A0O)E.U
+g:^YH2DdA*_kKP"Rs:KGm8a=%$f0u\#BZ0r*3LHnOfS'!FfiB(<W6C/>+#r>?,\.kXaZg_IB^
+o@f9!o[_&Z%+dJM\RKnR'qD0f"SSUfE6hr\h!8):e('su\\^q^o_dHr,tjGp!R^`SBW_]/<sm
+3;'&T(%+!oA<o>8%4DppK&=/5,@q'^dipEo+]MaK.k++l58u259F/Rn:`UFnZ.,`[""^C;*H(
+-+Rk)idKttn:A>XT-:`X@^_g*5rpJPjSh6m8NWQV>0q<@`1W4%F^S!JF$If8LYgPPrJb@@:.%
+cPQ&GX,4Z-5*Ijj=55?^MT/zz!!$t2Q>]]oo.^94:%S4Y5P<@1hY[nu's$`*ZaFs]C<OVRX'*
+0*cdt,UXgpRSi1':XD6:Kc?'ucf2ndnsmm_G<Y=ni_d7"6Mj:)'sXS/#b?=%YOC#N^(,mW?$g
+h]b$Rj^*L0QVP]rMJmAK@#oWmFgj@V=ACAr-P`!8qfLI"l6--f:2GH<ai14GeWLNK/W,ESEPp
+[oHnn4VdpIM:@`:@8S;tFm]Vi,S*N(oYbFd;1BY&)5GbK)VZlhkk]2<r@5W8OfIcp,f>\9LQ@
+=d)V?K_/@7"A2>VFeJWL7Vu[\r:VfB.BN4'6PGYAN1+<`=G(0>5a!n'^H[TH67NW;_.sDH@@p
+`#&>alD<,bll$nSV69HD^=<"bkhNO89/a/e<d&8d9T-E]ijC.WpQ#3TRV#39R!C1mTX6l]/Is
+!&2TlDXipVe0-8\/YB`H`R[^ds`B11JMVYS1T?;qJ;0=l_eJ``I`$At<&[\^_o&:V^k=o[1pF
+hN$V`VlOb3.98_lt[3-l)W^[2&3`e7lnMqkuY=$Fsfa!1O2+WFj>l?9CXdMCmXk^'dB6`!4?Q
+JFhOm5RME<<3lfm0,<%R=I'ka54#,)nl1MKUFKX-=N6Y*\Q=do"8@A0fj(d$`0[9B,V<FDJ43
+&jol2UJ6+'d)a<#`/&dJ@".?L5knQ$TQss5\LR0m5kfXIW:KH+2pP:$kR1de-?omF:<\*LXTE
+*EcrV[B5rtl\X>Ao<7oK2Yt%#[Tdf.RS=g>Q=<sac'<UaVN_rp%543"h[]XT)RR&kr+YfTmBG
+m5D=kM];1>DL[X)<KIi6_QMqM?8"r+a4G;ls2XZm*"e4.(8]cGH/@7+nF;6m7tc$c(@j1fG4X
+'iX3lSJ&P,J!YY\WDu%M/(COkW1G`TXSabID'H+p3j>/Mt/@NhA9WsZX`C(b_I4Q%<fC"/;Hj
+P\A\'t:f2>q[[O-QHVl8oi0qUo?+;gXl0M+\qWd5J?>\Gq[XDr0ek3[$'Zch+\g-Os[FEc6GA
+)<oIHqBPq`!mEKC<N66e$n8,^H@.j%Xa;gI=t?)QasbF)QYEoe^QQNik2-<pPm85;i/JXhgk+
+AhjrWFQhR#NOo=J`n.II>`@_8CpUlSF\K$a>KFLWnjuDj@r[t2<S*'^e!ld^7<b#ns+IK+C9(
+RgRK#]kbZ<l,X5DcmhchVNeqD^6mq.Lp/b>4:Q^^$-E7[2-lL"/eXIa;$5f%0X)LL02Y.ra1G
+IB59\DI3%^$VA/bNlPpMHed%b`/1;G9^(N@Fr!A+MDgq%u/pXI&hUDDT$,WYk-iN0Q+3Hg)<&
+"1H+#FNEE*+G[hs:><BO+Z73K$V%)Sn2qhs!-(u@QG,m!4>F-QVa',t$U>9MWaE-h4;%o,"4_
+aB5kbFR&(Z"h90e9-T`\"@cY\CYUIVG"O'7800Q'U+rY.*b4lHWQ#=\?j1U*i\LQ=8ItXOFns
+-;V$ig'ZTcmB1P/4"I\bMu'#EXiR]O^$(CMfX__I<m)slYrb>?3RTuZk^otGhUO\"fre76Bt9
+4o;iqrFoZ]kEZ,SDDCj*O06Ot9Q]F97)X3Xq<;G,@TrRI!83pt;3hedbG2K:WfrN$>Dn`=JLM
+V\$LkC]5M62'`b;)[S\!_lRK'U%fmSa`*&VqKP&`Wr1Q;oSMTQN"L%HAeRSXdrinB@F6?>ASg
+R-6?+F9^bQ>rp%)jCF0ABhVuRf.pK/fE6BaZ2=o;bh+r%a/=W!n@*]\ISXECNe*&)g5+Li>O0
+HT+]!A_cqDiB$p-]BP]me3TT;"to5_X,4p&Da:.>84:]>e?K2N5[%[\4)V?<,%nH$cf9qDaY=
+G,6,s.H^UU7bE_H\T'Fkm<03`4g-kE0.nd0O;1YYC#%i=gb3qa[S<^rV)]W_ak,BLRVmXpEp8
+gs5,Dr<Lj83pbpptFo/,lP<N^;RHaPjCm\AA"?TlUd.Od?-<H(';n85>?[$_H]gNa$&0RLr2he
+%d-]\.;B1@92?dJc_b-/p1flTOK?cKAQcjb8r97Te0GmPl1"#_OOh&J?IUa,+G-`cH$Pk<;=j
+8I@1>%%$67I&<Y,)jP&)N>,h8gm-:Pi/O4D./>bQ2=3]:RrLSjo=",4OMt3>W@2]1r_?JJdU2
+ZpF'#'$6u?O7+(+:nMilN3aisReV,l:+Iuijj`-lk#de#g4`4+F-f!b'bD,>tX&bn%g'dNO_2
+L(9hHO&ijZ5Q`:Ze<9:+gDb\$6'(k8cDgC;NsJ7+;ua`.8D9e$:&>Njj?,Q<QH,'L+tcZ/BsQ
+XU:tKjI+ss",qEA`(Sn>&,JNJ#P&Jf!1R5T-2QQpqie?jXH!?K_[e*Xs?N&lO]i\[TQnG8-*u
+d)>m!e-H>kcnj[q7toqdN;;g><C&bgB]9\%O'E[a0?UC:Wo5Eq4'#9lLGRV^m7e9t3t_,I^Yaf
+%[W^cF\tB>Y<_N`/QSXMn9<\ZV($jBiQI*AiEML()Ai8q7A=cod<iQ9ZffLNpMf_@@LHDHs;o
+%H6I+D]_O\D_.1\annhQDqT-f28YcQ0,#'L@=$6;iI#sa<VF:SSRMbg[1enGT^"8^8Sb6jlCg
+7/<@:l@>3kMG@PC2+CS16*R6f#h*AV-ANh"Y=fN@hCAgUgUufm*6iZp""t[O-2dG.jFWs*?P$
+;.ne[VQHFfR0=iVHe%KUJD>;=>Gk,<bh:eI.7ZFir<+icA/hlqk)8]2kSlHbgVmuGj!6eLhTd
+t76bu]amPgFV-5i;Af:8I+d]AONg!"AXCuDb0os3jm)>Z>UDuI?7:&/RcWRAH29I[qZaa?hu>
+J"FtfTY$tmIG\gjJ/96:?.]6C;'St3iuQBQH!c'J'RiO0jX%h$m=E8_OQj]Tl*$;%g_N506c"
+?G4O/;5$<BfSUHm"V<IPF94qMUYESCfXZ!!i2j2Q?*L>d5E>sbpS6"[9^-lF,)X4@t17RN])Y
+:S(DbG!(Xb*gZaG&9cXd@Y:bg+Y9ehr+dI'V!6.W$7gi)GkIEHBRg$#E(m-DP`EmJYZ6YLnF"
+U]YafBPTPO=`UsOXd[7E[=.RBU-$aY,4f4Ym9Wh5hofW#`Ku-Np8iPG5d"-@K1fo;p`rR#rXO
+U#N&A57@#Ul9TPTl&C,Rn^a>:qdL_'r#NBVqM6F0S!(^G])@V>pX`crA.baQY2m"f"8#,f`Y9
+"C>nqBbA_QenLVhU;eZ.aP/U-G@M/FrtUhph%AaQ,_\6]V8MSR$Q04o]VY"X;d1Og0-`=hik$
+is63Gml4u[3:/#ph3IbSk-++Sbn'\r+p"O&qm]M[dnc?_*.N,4\ebJZ+L5"0db:9EGD9@1aF"
+l17REM2a8sK<G$b'/E@=2*JD'++&0iqm";X?AH-m@qHrXs):'N*btV`7_8Ko7u-VqL7<lpuVM
+/FmE>@&gr3(j7,CWF^KVI]o&XWh\C?nP&3(q6k_+p=,qLT$pCAU>?5dau_V)if9"sQT@^GS"k
+Of>3E:sgh@qnCR9pSi]OP\*c[=9fG.lC"?.TE@Zl2HV@dP;:fPc$>2@_E>H3g[M2E]na2q-PB
+jBi#ok#""b`&3=UU@NX,25b">E\p&X->!Dm&HLBIsA'>a&:U?%uL#EJ_4peVT8%oOL^>bEAtk
+ZB&Z"#A>^c[&\m#_B>0qQO4LD^HFq$+]$O\mqb235A(=i,%C6pdW_$LaN`=^XpG]LV#Wo#oX0
+$/%<jhKo9!C3eUFI-?+aS.=C6"f6USF753K>[O\?KSWpKI0+:$t?cOA<sINb*-MX:,hg4)[Th
+AuFjbYWs]2UI$ctq:aplZH\r/3Z6Qiq7bUB#Gg24NeEHR0]0q=Wfr@L$iA/&D66nX>YhbtDg&
+0un,:`>Ook[azzzzzz!:\7t,3,AS89K7mG"p*0$!H`^!H(nUi%086N42K0lpA+>BqRPN!7+X-
+5,Mrs4I"2:@ra)[?)G%:\q\pf-F$"BUUFl.Sp)^r)D_H&I2Aj97`IYo<81O9;[c$1hiH82A-A
+65.gsm]%a8dDcRp368!8bcc8LF=L/QZKN+Ia3'QR!I$R$g*Sa?Ul,?%f_FW,pmmb0(DNj`Oi@
+u@nH#8K\ZAeB;LZH4<b@k#A>BcB/?Xu>-_@=KVo9H*8YE.k1"/W;[*[A)BN03,Ef[?UHj'P_t
+C'@`=k>bng`2A8i0RG*IV/1'0'5.\1p*Bm+-PX(R3cW==T1D7,K<?&9lj]hNsn/1p-LnqJ`UU
+s'6/KNfT1ofTEPBtY\8lT5\gS81eG1#c?E#8/BR?;ATD;@Wq.oPZR.LFVu=Qo<@><%HrXJTb!
+c;:"fd8ncJ$#6N1b]?Qsj=-A+_4ug]Z:]=.?!h?Ypq^#sf^`7TMqDV2R*">i^6/)BOq#.R(Y8
+_beN*]G:SiD-*aS"1zzzzzz!!$tJke5Hs\;e(?8+sKZ]qOjDGlnR)2</ft[,[2Uo"A2QM0\FN
+e"ttaPMFMbe^bdCgX4MAcChV<5tAW9M%(pq/5^7_@uI4W[N@k_E;8Jum4M;kPQ5\k$+9^?$FQ
+]b^AS^N*Zb.,Bn/<4MfHkN?^SON)NDWd\P*d,$c2X>4q*-3^D?)$/9E^DjHdO^Uhu$?<,XU*d
+#V^5HDsRH:+S-34;6.5<uqQQLG!k'TXn0MeI19l[VRchh,*6_g,>9hr=qmLTsg[R*gZN)4?$t
+%pd1eNZg^^`I'HL,8SuC*HQgut[C)a*+qmPsCb,G"9,PAgngh"\K#kRME\7"o[7(IW^<0R[b=
+%\6A[\8@01W1R@XKNhB.qo[m@EFpb.,Zd8X[ZO$9KCpjS$"&gOG+7"Aa3<DsNbo5qUK/0f+Z0
+a]>])FjU`T'0Zu&*Fp\!NH\YZ#WJ-#WN2"^aMgH#M0UF]XHj%\o4spLn-+WB8_]q7P28AOa=Z
+_]fOu]A_sJ&f7BO`.'/E)K:*PQW_)J5Y2[.L"HNkNsal"@(%#Vk!JC=Juzzzzz!!'eFin1Aqo
+^IN<-q!LP.W3%LHFsC#PgEDOh`DUd'-<fmFE,,AM(0I,)q5(p6V!dI4<!?=P>E3+FA-OW2:.1
+</+K:@kGI98\[+feKg9AMT0Jo""YVq$Y"N[YK^PFm>]!G9;BS#s8FqbV%Xi;`*&"%;Va=9c^0
+ajo8-JA8MQkUXJYusVD-cC\TJgaQ`@PFsD4Rc:CjENe><ED'4ZW<FaCnB'eU<ot;B!qKD9kni
+\iZdtDH(K54_amN;lK(4af\m.W3$``2Y(n2i]-(rJ.B3T(%pp<)Lpk"q"e6@<M#0L3r34$!,u
+]r[&9aI0TRhNpu+JJi,6?,!<<*"zzzzzi+kXIDS4P[NoaR)\:kPtOq=cEM8BnT"q:G"^?ZY"Z
+3*38*I/Lt<(Tc5SL)bi%.RK[mUSn2:`DBR6>bsa:\nV7n4`f%E%cS3^<N72GD72FEc?NVq`0P
+c8@"RYB)@9VC/bI4pTu0Y0_iJ+ajgOE[IS)6l2J+;09RdG`\\OhrfM%bD,3]K+&)2ck>Ft/;7
+-]`gCi"j@GI&5hP\?5=Db4;Ck(dpKgFLmg=QZB4;GE\MBS=j5Ii/8$U(Z$2L8<kAE:Y8.;G&Q
+%2chV]jj2SNsVB_4qNob+=Z^HnfYbTS%n0m0UTW!&j-P!1hf%SZ=P\_9`(75nkP<q-%X,qqGA
+pe]VcX;6hat0?%2;9kqMZ0pB-unzzzzzz56cF<j>H@eXP=#?HS9pnl/Fb5j*('WdX5sKo[.4T
+pEmGEX/`9bXu<f%kMt:bVX,Wors,qp+4ks#j^bc-.//C"qq[KYg_N*;CBpj/X:(**nb1+tb-g
+,$8Rhu'8G7q-D"6F8HJ5"4[GO^#ej!Wfd[orK3%fR%=aqPqIQ&PpNm[:'SZ&uY+)($HEntq<S
+u&l/JW0i,[i`\6hbAC)Dek&DaR.#fh02ehWj[pjLcoHd$2ar$5j\&c;kC'KC*ASk\4uHKLn[J
+qCo-LZG>kdJ<u-PF9+,lY$-qs(57.I:2^LG=m`Y4c)?Pts_mg'/&,7.Fzzzzz!!!#s'[F?;HV
++DabjfB*6('6i0YW'h5.?a3O7'K7#C8GYjRk;'9TZ8<,MMcDP9-5ccX'mTU8l1m5B"Wd0"bYf
+P2l=dSdR=LUsQ%+cA4A9bbW:da<Q2$'W>b$V9X/2q)9h/kf"$8//eUa-U6KaNA`N8<40!XB,7
+F\EJiK(>]$U=[S&FPXAH<q:jj^kXdc&nY,f##R2O1!NiT9$0dIaSf^0)<$h-[Dr=GA+W7aGJV
+4k6YYWCWk*AQ:1_1\nsm%Jf9NnU>)H_0OuZrg=416=#OS)TV<=s9l282Md!cVC>q17Vr$l]*j
+8n89.a\)c:!)mVBUb_:/4Z_JI%+_c[n[BZekVUJdW[Gk6Df2Pd9QIdL>X0(_mR+bF@<e4u?;s
+_e-l,mCfF62:]EbV:`kX;fn^,^DY?!],'e5g0"?#QOA[eS7TI]0!LY]3%<9eph%De$iLhK2/&
+GqGk-&G,bZE2?g6[MXM*g.Guj2CGFT7NPRaPZ^?,6W50j:/P6C/X-Ee??eOIqFLd`UHN>Ijc-
+hs.5-n7Q:DV<et0%Q2HO+06u>H6Z`R3RVhL^m2ca-a;&^I@a#t*d-4_LnMrSR<Z44C?Wj^%qV
+4ol(0%HN>\7&_[;Yh*.HrOtI$dD?]p'?X+Cin]P@hqYH11Nb8o,WF=B\uBGl^<Kc/&r?O,Xjr
+HBIa6YU#Z.39AI@#A8)dXVj-6J?#!>R1cJPQN[9e"?!\%.i*rI[V,k[E=AT"5/a:'!H$"Z@zz
+zzzzzzpaR]ii9*]s'?&J[#<u;d!<<*"zzzzzzz!&,GTd!s#%;]ZQ&@en?WQ%+Ht;l&2>eauH/
+nKhRG,%&>68t.2q<@?DQ`&JD3SWgKujQcceV'>qs,A6+C`D8-<iIc(?`)U#=>;DTo2O5#Q=I.
+`sA4j-Xk%0_/;sUQWdY*%H#<<RVT/9jO\.2NHSQTa@%7j-f`)8!`O"]Q_MDD3!/C@-,m?q^YA
+l]48Nn)jM;Oce%C*V7Bqm\0b^'AKQ+26![138'$aQ*.IVO=NJSr&hn4`:*7H8!i:P<@rl=NZ4
+sYbK,-4_6*I]jaIT.Uk:h#-5YHP\BI2S<YD_7ap4[L!6PWepaVl52J"\F+W_p+5=,.d^t7.`U
+gM(ja@%ppHc7P;5"F5\!EI-NHA?=PdFbgThs?7a%FS5LtYaRA]g*5*35H(ZU.,[oN6't=io+<
+_e"=T<f".$cfqAk`F=r_9$CW2D,+/<&mcBg>c>)mIaE=!QrR5]RoeaNg;q??nq:KZV!@Q2(iu
+[T#R.W$?!a]3kShCF<%DS1CfP=/Z"-g-WJJIpYS%VEoUI6GAJlX<7b&9-AQ?dHG9+(+[<@\dM
+ST^&f`\^je6THBe5bSBcD!ks?KR@bosi^N1X!/AAPr,aGtLLN*e4Q]]0sUI#\kl*?]os^[rnc
+Bm4K=!(!36lJtA"'9uW/eD4,1,W]&GP6#GD$.PXPqA<nNR.MS$^M$gn!0m0fkeSp'g`N5#r6m
+H\W$!GPLl;=s#GoK[d)[1Gbg9Lmf1n[_A\5E+a7q4YM$r[i8R$f=n#!Y5$Gflnt/7l!.?^mB)
+b>L*\<5MRMH!)U3;`2b@RY;oA[CK-hV,U.ZV^O8S8sW7Q=m(1,&V@8KM[/6fS"1FM;;@EaWF(
+Oaa!nc'U.i"Ds8:ab2/1[AFn%k746,nOQcf@,'0j(/>,g<`%k>u/@>bk78G-i@npfhu-gYSDW
+mi,k1B7D7)g`l_I%(sClFA92SoS2X.6S2ESPmlZ4pB+_+-G6N&re<9`k"Kc0?LR2WFBjVDan?
+$Ht(kPbD83a:VX^G^ojAQl.`SaPfcC=_O`HR03=CtElkk,b?'_128A-3;7?+m$@=&9,Djm7qe
+8urMTI;ons-S`%Vo'A`&Y5?Y6<J%e>j3pX0&rE5N0>8nX<<d($B=IZNfF0c;bfdI\'Yl9@Tj0
+MCXmUWoBiPN?ius_6:fc@H91n]%l3=Wu!Ltqd@%r3a`o@VN3,dip:pocl4D."n(BYLY2Rr)]G
+F[G,\,8>MG1:N@d#cV>,-K#$m%&;]a&b+CD:KpMnO]kA.l<K4N0a9M2&5Z?:7q'sskjf6L<6Q
+>>hg='H5-9<Ripl/HL6lIaYe0Q&,Iklk:'M>9eAD=nhrEk..d^qd,h`dL7@4FL@L1l7GI,t3Y
+B`q!Al4MTd+hZ$JcJm$7o;-#8*LUF-1MGb<^-u&\jkW2:I*PJj0h;74%KU?W2f%&olki@<<WN
+8d6'!e*'C@&6`1P9+p(mPuWc,'fNBf<mS4uU$kSeB+U7W0<'S(Y$Q4I^TC=?Rp@'l"tjKW60H
+_,:_QQO./)<BPR@[AE2lU=qZnS2q^,U=u!k-Jq'SqLh1P\Jj2'"nFs;+RD]f[oj=mA8DmTaO+
+t2U:-3]4[q3#Z78^s9KC/dWY"T5C;^&;S?BDR/($)R0O]Z``Qjq+3YJ4O8TRU#]7E:fB9Ltn[
+:eZClB8Ft-`J]`SJ9>T'([*SW1raEeYYlrU*l3GIGp1IWlV55lnOE3/F1nd>8lP"iBEN4\GG*
+ka[p&nfh<TZ;8f:kE^Ia:C#fJUlI&dX(6``W5'Z8b@ISG@`BfqE&i?c#`>K"ERcU9grL%cB8+
+r:o,dJ:V>)UV)6KMh$r?GHF'[nX7C"^`R7>@u6hnBVH+%a1P]3<\f7rMGrB`YuO6FqM`Q/%OB
+dS6ceI$OC5hhL^@eb6-'Md1)uF_c6WgfM3!jahWGzzzzzzhi'c"glE<QGN'9N"*_Y]mBaSK\c
+_\!kGMeSn'R]d$,*9;>:r5)mlpW<@h\^/E)H[u5OlY]q</6HnHlUODkK"em='G$[4N/P@2PZG
+mt+VFA%sk-.d)H_39ZFB+cge+*.C[V@,[L[-N<Joj5[oSr:A6*FJZmo0;"Zd(:-JCGqkh^2W[
+,f@XmA<W9pGbh_nTQ%C@US@G^4]L\YC-UA]:"G<6=0o2!gms/ZCY-A2taZ*NL]L;:QYi?6(I)
+:E!k:iXfoY-qr>r`uV'X"DE9rMDeoRb4:A$R%[4Q,=t02V36ok-K[_L8;8\Z#li,Ki?aHn)(l
+m%9M<20SBS!7]k>.C)aPUfl2Ps]F0AG*^m[heRD_nc(Nfin3#40*I_d<PeKlh*:l0H%^N(5D*
+=sH[99IdZagg?e<@K#=fZBo>:=W^g.Y:'9l*Y\KoGZ"F"N+AqOmfA+]H:PREt&Oru1hUrb6g#
+[B[!'Q,;8JUs6quo.O17$"7p6%&MY^.l?j=Qr1+7[4N;nLOBDE6cDB^YI8o>W"!LRPY+_tQtr
+$FDbQ'.-Srq8DFSMECrWqE-Uj&MZ'l9W@clIqiWS.^(kUDAB:HpDT0[<;rqbO<W(m)e!n;BtC
+-Cfi(n>NnJ+\!AeK#PQ2KPNI_E'O0@Yf&6rbO;n)mW%epMJKdPs)+5Rh;-RS`_f.D>jKhJ$7q
+f<;6g.h3>0)WGt\Nia>eQXCA..17db"5p(5e9KO\t2EOt21P9-'-D)hhn!d!8C4?UGgJ0eeD=
+/bYT>\2Z/6DF[:tn,MR?J]S1Hf?>c*aG"g(PKaM84]s0X[<oW1Oq9$R&O=g\`OW0IPCk4/a8[
+V4?kbRW$C#gVQnjC:c@r3U*6B?.drV&f02\#d_f)2(Q*`R4qZ_C6MOi^9++fm5sK;CsiY]oPG
+tVm4t?CbGb02c"o**;=3&\V"CmWe2F*EWgG'L8ubp/DLukif@pd):=QHb53&0_lVsiP/-OJro
+bm!c#Hb6+@'3ZBL\5@^_j,i$j5dNTnaGGoR8FXPq2)0Chja(_<Lss-CA[imD,B!cpm,ZYT8`S
+.j(@5uD]ZVg3^4@[[R]5X55hp549YiT#LitGa60r%_r(dh5A9@G)#~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
+
+%%EndDocument
+ @endspecial 396 5096 a
+ currentpoint currentpoint translate 1 0.45 div 1 0.45 div scale neg
+exch neg exch translate
+ 396 5096 a Black 3645 5692 a
+Fi(20)p Black eop
+%%Page: 21 30
+21 29 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fm(No)n(w)-6
+b(,)24 b(you)g(may)h(click)f(on)h(either)f(the)h(w)o(ord)g
+Fg(Pr)q(inters)h Fm(in)f(the)f(bar)i(at)e(the)h(top)f(of)h(the)g(page,)
+g(or)396 708 y(you)g(may)f(click)h(on)f(the)h Fg(Manage)k(Pr)q(inters)e
+Fm(te)o(xt.)d(In)h(either)f(case,)i(the)e(ne)o(xt)g(screen)i(you)e(see)
+396 838 y(will)g(look)g(lik)o(e)h(this)e(one)i(if)g(you)f(ha)n(v)o(e)h
+(not)f(yet)h(con\002gured)g(an)o(y)f(printers.)396 1117
+y Fj(Figur)n(e)i(3-2.)e(The)i(CUPS)f(Printers)h(W)n(indo)o(w)396
+2797 y
+ currentpoint currentpoint translate 0.45 0.45 scale neg exch neg exch
+translate
+ 396 2797 a @beginspecial 0 @llx 0 @lly 621 @urx
+416 @ury 6210 @rwi @setspecial
+%%BeginDocument: figures/cups_printers.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_printers.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+b7b7b7
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUBp.Je[Y6#VRe(FdS/7Y#N/Jh#3ACK$'G6?=3K'qE>Fi$5PH+:e,oBe=lB\mtS#kM^!I
+,Lj!1q+HC'.66C'2caC'2caC'2caC'2e7W/W7E]D>UE7T.:'\;ZrlN&Q";q-;cd!T6g/nerPe
+W7i$KB\>2C'UN)ZP"''8T:a[;i!EY`2WL"l*lWhiZRTEB)Pb'+K`M@0QSLD\R4I/=Zn%'?#`>
+d+FtYl[GT:%,[_Zga(lE(OCEnX7*d%PsfP\Er[L3s6HcuiQ*Q5o'EfOUZ#857R)!r&*4E"G/;
+Oa<6/S:quI#]#Q^MF>pWM+<Oq*\X"n3C)^*I5'gGNQ:L)^Oks.gkF9>J\bJdYd%uC'te?:tt%
+#I2OuW@<<bH)P!Q\+2FJK[WEdCF`73B`-W*fe9:Mt/L.!A4Zemo,I#NkrZ<YH$Yk#8ZfZ-(SL
+j,:K5PkQLqSq0h#_Rn'II<7)(s]n>;WB+6=R4>Higu.E_4(lM*#!c7q#+!^tf=#E2X4.&uZ7%
+&#]rM$E+Cr&#]q"&#]q"O7Vfr!70ZT?SDV4(!aq7g<G46T(C^;mF>;(:Z^.*P2lJPP72B22?l
+!Ha1f,lEX7eMFj8gs\%TA:IgYMG@pe%F3Ma_W^3GXk:4esp#dnZfq>*h8(*:E`mU;LkZ.1cPJ
+_Dql[11sdpFe7(H88dE@Y3>/W?[8g=I9Q4S(]-kmd-9=<*Ru)ht;JbVsdg<h7kVLPghTHP4I)
+$'3-cdmoc$;)G&C,IM:/=6#1&>Ff3LYk'OX@eg=jMs1Z_J9@:9d=fC5`]=X6[pdq0;jpJ&W8J
+8N1BPd)F?`]LR@5Ga8fRr$QD3KAeZYs>FoXSZoD-TQT#=mm;H`N.oIos+$VuN:PmnMt-S":L?
+[*c3Ud`2AcVmFTEpdo-m^NQ?Xo`r#S<TgI;2I(SajmW>V72D*4T;OT0NuU]GeY9co@-jEWD71
+rtn5^=ZL#*o.^bVOLrZqoc,d$r:O/hSp[V?b7g(mumle?]nBHB?CD'b1,e0b+V0;0T[3q/gsP
+&<0IDg\n=X2[PD5%BoU`dfWfF'hc<h]M>s1Tl_@lD1)(<W?WSqRemEohr3&;NdBFD.3-[L"NK
+\C*C$L'V"]1@qs2qGeVWENTg6h:n&<4\<Pa)bMu$/,i*9qi8e*CCmhIm3Lpo!_Ob!qI&1Z2.o
+Q3(RsDQJ=s`)"Z>-]j)IrIm*A.FGRTCNK%>a)8Z'e)'NgG=NQliESHgnjS8ODmJ[Ve)'VuAjl
+cPGt("Q(Ou^7c<k@C#N*[dZ@Z#,*p5eWb7k9?lG&aGcouD$HtqY21]Rljt3EJq\nc"P!c@mY7
+n\H6B='hj4-3_H050ho=Gr(@!=a6)6D##4d`11H)!VJLrP$E8JTZ0`_^lUX7*6WD1Q1MTr0g]
+07gcHF2ge,d0,78H*]8<Em#_(M!EL)!%cgT7kupEijUjACmWNg:Fkr9CoT3[HZ*ODsVV];6I#
+_eVdEDR8)2nb`&T^O/X]Y[R=t34ZOh:;q,8gFJd/)[>"I_0$`R-[Fe)dqd,/RFPO@EC@`H94,
+ohkH^KP5h^7D2e0a:sLQh7FadP%_RhAql3oBL!RT0Rb`bNpKp[M9n+K^DB1n2%#-Mb*^W%E+G
+H,"Q)[=ndBXj:(<Pa`;T)bKA?"lJHH1S)D$h3&Ya14<`aG1(+=EoZ;b;*'k<\Lf^FDBlB][e+
+pc)7<!>WT2N$9F8>blYZL2D-UpQ+d"aY'gtMg@qs0rNqmeM@5=T9QI4R&eM`4TgJ[eT'1ll>S
+#*Ptk&%"^N23$6HC[#T'h2*dh"&)&DX/TTPIgFb?*OMbRZsVK`B%ENQ3]?JS"1EB`pLoYOdS7
+trO-C:m1p(,p\PJM6,CHLN4U%b4;0"\;6qbYT0rD9m*QM2arNrLd2Z>+DSPRCb,lo&D3=I&Uc
+.d&"r<,TCJt#L#i[]j'6E`u[Ujn^.]><"LHk&>`unXb9"7VWP$Z2M]nDLOkp(IW7T7epI+S%*
+:qj&Yapfjkr/AcB5EZAaeOFGhITZ,pDR8SFf%LP?4e('%c-#D>qXRk#2s&dTrkKm4;Y"SGhC%
+.Ch7uH2`a%JQ*`ANe*b$)!/-"=Mp!:psGZT?UGHGD7m\s[=X0$cAF>Kl_kBfbZJ`)A0c04b9q
+F8>#`AW,iI4([Gc.b?Tq5S(Omt+Bj)G%`*I<E<c\F@Ga)t4eU1P?eGl@-kF#COGXe_gE+TtIs
+DEkK0@_#*'i%L@FbGW:2lGI50s@D4eBa5$9e.g1;T;EAFAO&,Xs*_g[(FbRUA7S1XLATYdRX1
+!BgW""]ZUgp"AS`8>(g@@h.2DBlONqj/>S++b(/Y</\"!]5Ybkf3QGr3Y=eJ/-MQn,Vu`fn'H
+6Jr)I!<<*"zz*m+7<om8kXigTJbUNdM<F8ia8pg\"7O/o[3=__`T`PpH$o(DTf54RA8%c3H+]
+sW"t\ro9IDW6bYcVeo+caEQBl7.E&EeT!I(Iq.B0-`KW2#FTpP(R]M]BSL9/LrY<1"1Htj/*k
+YXjGX7iRu_q[Ie<?r;4\:0kT=S)hq4dYG:Z%8n">aG\6/=P;_CI[-4=6`$%Uu^QP]\RcW@c?>
+%;SrN7Gie0Ck*Q?-b13Dni!>M;Df6?&R#XuCSG8oo(9DVhRFE]m9(RlQpB(20Pt"bA__UF;I,
+PK300Im#SnRiWm+A50gd<_ZLA9f5YO2F:?WCTTMsHhAAQpi"dYmE5n-"96Jd8V/`aUD#RNPg1
++=PqR4(9mAL56\qdC8+##KijQt$4]0&mi4%g\-NS8D)Fe,O?MGt0OSe/*$'F$3:2^fg.SR4!l
+*oibQ2ZY/^$1uH+Q6$0dHr,=-of&HBd9[gWFB)$3s523CnESWNE"NT8Bcd#eJ?SP?3MF7(q_;
+Hb3l7-^bF.>HJZ$/\+VTkNg[ObqD)+u'"-A7]7-lbhFtf^)c/-d'^a<iGoPIOY;%qVk,-b"T5
+'(Q('^KcNAssscBdkZlqE^T/]5Om.^[f4<gsqVBu/u_U>]#Q`uB/<hAbJcDJ/.^(>,*irMi7I
+ouGu.q^g6HG.WPEqb.$TSN4]K>LU$X%])[F^JcdI`AOH'AtM[c8m+c'X`eFg;-P:F2.k]7Ip:
+e(nm[i=,)3*df?2!sI48)g:8kb[[Q.<Xq8>=&Y*3d/I-eJRq,5<FdRBQh)6Nj@+$QLbDC5tL_
+M"Z2fBu\IWq$DG(>B0tI8CTgc5s4H(aVJiDsZ4X)Y9qH>ALqACC9Un''])q8s.;;kL:XF&8`U
+15ocl(Rs*JrigXQ/(A#.K#?-H]/WR-caqlp`ldU;`>.0F!eX;>>gJE"SekT26\g_37E965:W8
+,cO3ZC)4I[[Zq;-WM=G,V4hWgn!k("/G/(s!VD0==^P*I&enp\JuS3!pa@I8;.0U,XG8a_T9A
+7kkkT>V&sdd#AGraCmn'>R-,HU&`6^L_TV_C#@S.FA>>/#^7D#2o_d(b0Y.W`i=&3NRkEcI`o
+mTB\T:6]km72=n]!Z]_W=Z,0_sMj^cna@u3-K'\.#2Mk]\_[)H!SId6WDjSZ\h@]X+14o^[d4
+D-[u.J.XZ(CBqeVr#*m+6DqD<_O47[Zn%&hrsU9QgSZ?kAZFWOa9*&h\N\:,8Jh1iCqRgjC]o
+@=^XD$W@/33s)1>9RT27\U]3%B6%5'A!YrJTo/<G>?J7E\\`&kGCn$1.)jO7Rg5D_,jn*ij#M
+Kc-Ki&qV6TFGH(CRf\QcPt"f%%'>5<:o]V:Y%3$!F9j[*a.Uc:h`JDFQlm'\R<_(0`M1>5-/m
+D1-EZ8D5S.ae1;,Uio]2g2[kf`7-1rF.'8@gU;-ppA!l8<NEN=O-SI:794a]1cpS`Od*97Q`3
+i(-XV1JJ[oB,D%l4c<*^`.G(_nkgDa4t7APZ5VPU+"p0'n*o$QqYF*!>SIG+$_hqA\!Ib8f*W
+#+'eb/n:qNIGgZ,gu*lqYeuEC[5#Bb0MhI&5s[rQlEbD;\!P/6ojH=LT-Hk">n:q,+E0(g*CL
+FK3pciE"dq/oF5<-=Q7#$)iLLHPoXX6'N=_Xd<._713Ya49HQjXk3fg.Q]$O2;4+msX6R+$DR
+n:qP<[S`s!1[lRd^)J>qoqNPI3*2dEWNa?Kc]o:t8_7\lEkJg%E%iODUZ<YIrqEo%Y9_inJ#@
+J$"?nm"&hUl*4b@\oTlX4+mmC.aj-Ym8TOoc/aaLkuK*NV;JfdrCE5Y]s@)'eoc;oEjAtm;0l
+F\;Sh/$9oHMaLQ,GVg[]-*4Yg0CK5NNn!VYLc3V=^HB24>/lF]h?c.qoTm]B3-351@*Zj%%9C
+[,2!o92YL%\U4iVm=$2&!s<cepD3$+=j<A3To-r<P,#p2lqG#p5\F_-dU`eEP:n<S\1OYPfpB
+nf`SjcV;/==QbcFkA3ia)>9>GgD4453RBZ<IJ]fg4d\bC%Y3i9nqLPu_-u>[l>O/Gf<]aer%R
+]*^$)n4A,2A+uU%n0)a=3$b37:XCSGJeV[^E[3H.7&3ejOBG:n1mN22d\uX(A1,fik?@?p;2M
+:$-%Ig%!'SJbV.2f30K7Xg6)G.fpC)mUCFu<a"n=#k($,>L]Ck%Q7NM0-mu2:A1=g?'752WoR
+\u(PpM^cDRr?nI\<-pbF=3db;!\cHm;=)s-=iACS(/!oMRa7>WK2@g"54RtP,m&+A8+b%0P8H
+QI9Zauo4MHXgisg=GDHe>Lt^;`>)[(DG=5lXQok<eY=]VMEJe\htAkcm3Bng])#G,gYo7]PZh
+[gEH-)mCG0AZM/2tDOl@ieFe$d$2kdFaAio+rO1RaH!=oSk9R]t47I;F(R4]_esD0f>nuOjof
+=\6Z+)[6hqRCq\\P:SHmrOu,i#MT<GkgpgS1F,/"mmDBZd8#O01J![gAab1TfMsn/\/jl>m;;
+n`9T<<b>s4jpZ?\@:0:;[k)2&7VbnFb.#d!Z*j!eY"CoIESCTi^9+l28k#p[4Ypqd<8!L?;lu
+(\)U#XM?A6RT0=+&."MRU<jIXGq;=!2%:Uq1ip=3h[M'\GB5SC&#ILm054j<Y(Qhm5\\Mm.kI
+lWu%U+JoS[;=HQ?b5N,]is1&@eFW$mRs`a)IKr45"kk?lJ]$j>ogAD=\I2;OF!nCDth)dX]Oo
+<2QdOL>Otp.h0!8jhP5!Gj#)6[mS]4O;oMe>K6urkD1/hkg2$KiB.!3E:gU8$s!k-.jkK^GD/
+ZQpdlh_"h9-,CZ-TLCK.BpiLRAI"]'Z>t\je9C)Drk"(DYTT-(7V)Y;CaJ2;ru3K<\GPSD8ZS
+g='b-%%Xki1tlY`^%IZ07AYj$BpR.=a0q?Ao"NA\FhJ.u'I@+C]fXqro!CAlX]jNmC@b#>UM[
+Aj*IrQ4XMsS.Y9sH'!l#RPgM(":?QX.cD9)^Wa3[F!KQW.9gR_-7D>TkqinTAm&]kj"Bt%k`f
+PWdqii]&74_7r;OL',^l(%I<a\l_]Sj9OCJo8nHkgD.J.;P\Mc'Ci,AL=7_$!bH-a[a]IBMln
+fh.0>=$uOqD=BNV7gbWY9JGW^^3-C4Bb"Zd#YK<HJ2BL,&Sm%4JGt)p5lYTn3kO?:2[hD)qT6
+j)oMIc$]>#*i"ZTj&B*]UH?X3C595aDK6Vsu"1h?7OZ>gD*GjWd(#[%^4-pL3srpWGI>\g@rK
+-PVc5A>G4=nahqQB6N$ICRcZXXR"+!_'j4KDgTVg;<#Q5ga[m.q,o2TK,[CgV'<7-,iE..13'
+f!&'jm?&bV-1MG((=\>W&7p`WD/B);BtM76tBIIlj4EOU3<V4qnWcc''_FgTmR^/K@)^?n`s%
+<ZB2jOD?SVmceqo0-NkCqqs0QSMmTgP_1LXWFocnt\^W>^Kg(k15qlpLH3#Os$6OB"0-ub@YG
+u9,boH+-Pd>;lfe9CZekHl(TG[%%-u&5Cjk<L#1;`LKkEJHF?j36tD(Cf[ci\mOmU;QX*Qhef
+S5`o<DQ/j\o=ZoRuP?\BnaZAe]-P9=UU'ANMW*T%UH,CpTa5ngj`$K:/hjWASFG_[`BFa:=@#
+W5a^kb]h9SUoPgO\U2b<PMG'FSg*NBX^1:!p!T/k5:OLuUlDBbgdK_OkF:VNV(t*$fjEdl]S!
+P;[KiQbj4<cgW1DAub-V\:\%Par!b"<38"4,:kaUBNc&JKdDMZKDNru,o4e'#"fO"?chi:4&_
+qq!'G9r?Ca.B<S=)DlnjFQSJf,13Q8gWB_gV,Ckl3>?2zzzzzz!!!"DF3(-=;=LVZ#6$lHXs1
+DfeHQ&+)mQucX>[RME%?4Aj^Z$9XPhp&X>Wc6^s15ORsd#t3#BRa]:>g)>a"7"<<-rif2C`&'
+8H@)5!]l'J4Tn@+%Agi9eJ:#5Vr_RJ]S$>U&-N2D#d8l$FMm4#do5/>j:"kZiF?AT%_7('YY%
+#B!0j8+OgU-'&8Rma,FoDd2f\=>&l8<zzzzzzz!!%O>&H7NI>_H1F&H"h]moYk$(QJN`%oXC8
+VB`#KgkJn"s0em%Ao`,1rE1B9VmZSm#UB@!-b%5hb3I?E[VouJ;Zo@J;k"0g+2#ha+)&IIAH9
+'a.[mLuT;mM"^eCn-S+CJ37T(oF]AHXh_;@0YrYDO6>L)pbqC=B&>R_q]Sd3aLSd*2)zzzzz!
+5L!)+1n$<pipp5^cQK?W>WOc\gH@UF#U?iDVu.O'H?*;`jr/&+?(t]PmWS5m$jdb-fW\L!C)s
+45]"*+[]I"0C4gR07<3/'qLJ0>D-TTio$i]3(Fi@^%?u]sQ2+EHdVj]jGjlJ:a&!*qP#iT"&t
+QLcB7_A,%:"Xf/ZU<]6VGt,P<`tm'(McicVn%[^$t;*JY1+U<c,BmgVf3gWru6EUUJ%.1fYJt
+P<s+o$G/CklM?%'%.7AO-\Au$i/-BK,Oe+j1aRAnGZ#L]zzz!-oE1n8l(2MfAUPk>"5Azzzzz
+zzzB#+VF?NjscC@2d7_=Y,Hb'\r&'lseA_^9b&d@/8^:MTtIR5&XJ;Vf6H;qj>_197_"As9s!
+RC8T!4l>JN9@?_k%XfJ$fT_d:YjbrMWiF9%=7'dg%qS%A2NjO_cGVBTQ:t$[n[6IYQKt-<RGQ
+ZkaSj<4AU_CXLA,8??K,_)./eeKQ<_>&1#j%AV7(-Eg;;Ec[+\VYjD;98]$Dj5RXJ%MdsE?U4
+6d(fGe*?c9ljt?"g2.!2m1g/q/@kna3.S%@0&mJ7YY;+VGP%igcme<`$3*OCVq9^fc!lTa:_h
+.3OS\"AElo[>"7eoBI6_]n0DA-/[\F=OXdGTI.i`Wa9WBb'K*_$cW*ru];gi!GBE3Cf:QpYfL
+mr&oMB?M[4sE>Vd>LJ>f&F7M^=4S@%(k=.Iotpa0;4iV7O^$/PR3e/j*!8<2sbq0N*WJ54Q5#
+28_arA8X_<.d9ou.FA%D`kmHU+/7W;NJYk0;l=59glcTNe(:71/1QZ<_Pfus?BJ9@asNlAgHf
+8?LPeY;R&N.Tr!@F6]F,sDa5#@"g76E,/X84[iTci(2DY*QH,?fpm]/6L**NYhrOOW,X"C=bX
+a<o^FoW[q!m.PoX"EhDJKLGa[SUmVX%-pJet&g'EnbTsZT+"nf(;ij1r10>\SKXuQF^nnp\lC
+OHjQ.h(A:(:C"%PtU2dS@iTOhN?*:.ocOpJKeAb%:n=#F!QWG+VeNL$HVRf@)T]fOd"kVLV[B
+YVM5h-YHbfOV3]@O"):Ha;t/>F@H31e=BOYE5,17"GPrd_PCFtOfB7_E"@q(oL?#u/kB?mQDe
+.,9Oj9bG\5C&2Z%=dWR/r1Npk<E^O1#Dq8EX"nMJgi!pmb-sCuU>13%Z/3m.B'*FZ<SEAfaeo
+AVrTK\US)#mcrY'Q\T-l_#&'t'/^%5k;[66.#GT4PU5;_DUqs9fpp6/.)H34/_X-rq!J_@"2(
+,b0j=MikP%("PFp.8sF7(UR7U5UW\V)\%qP'i^-[pX2Z@^>Ti<:UXq8Qfq*0NpBG=!"Fo7Z/)
+M5g;5L\*i@J-A9X)E[e`5BU8'4K+.K(=]W^\MI[&@VhC;HjT0^G\Wt46@U-Z\APla4[V9>V-H
+W+,r@#'&/ul$WdSGp)>NVW4Ok.,R^ZT6"Y@'jSENguTU9]UKk^kBeEhhCEV[>@%-^d\PMWr,m
+7ER]X'7K_.Q7T.X]I.J^X!"9(VB:EQ>/K[]V,bRa^8Z*KJ$aZ!I58Y4C_4d]VeQTkQc=]`kmU
+V?W1/,:`n)csa1ln5V2nlK%/na?IK!VBD8*b/AQ19BX\1!_Rb:A#U\e6BP9IL7j*8rj99Rr*-
+2^fYN>Xi,>(1K=\sHuSHg-6n,YlR>KV#8mFEb)c&k0V^MpPA_09\:&>9oNPmEX!?TA]/]0e1&
+!g<q.jpB8l`<@,KfN2@+LN1)>uNFiqh)%u+s?GkkCLUXdfreYd9W/4BZ&WJb?6m]'Bk%(or*m
+o='CXTs6eRjiY`C&c"R&G/F`jnfXY%<F0bR#NKmtlpLbc'h7C7AiocpfFAU7[Bc8eQgiJgLu>
+J;"1_C*NllJeGJZ@?9WmXp477K%cO?3K^0(%(1e89.nE#g1]POeE6*$%A.7"FFO#+6"%hb,:k
+LkFD+LgEO/YMYY\`(-UY1"d6s\21.@3UKQ4CgAK+QPTH0r=5V%DiCfh<P;VRA184M%OV(o-]q
+tRVhTauM#-dNn0907BaUU#?gS+8$8T.'2LM\[PdbZ6Ph'IWoka@K(?RcH'"0epguq<??[RH""
+i#&WKt\G`k4RFX$jU[m^N1>Sk6Z\b^)4/qF,=@kn2$F_l_RP]=)K[q`#i8dX<1,M"d]9VSX*m
+_o@@KkHWW$S>.`;UAHi(#I.jfO!Gg'WhNr#*/GnPmE=Qe9Bhqi\$."BDcHoqe2i!!(sFh"?ec
+H]E>]=W)s$BC1-O!u#)V_raIgigo%4bJf&rY1\N>;o-6Y]Tq2g2*/)=i6L-Q84<;[[g<RRh"D
+.Fp=TTFX9g<W,Lrih*E]VB)*CMXT81NO!eJDbDnq5UF-FIbA8icG4;*e3/Xl;CL(ilqcVUE,I
+BgX5A?=s/)<F6SfW_;/14NX3bTOFI6sFiW,8&ulTD]<jk!%h4B.-ZQJHFi#/tqsV"tc:eLW-"
+Z"bUI""eq.SWirGHFmd0Zh,90LOX?+k1MZOE_k;%<U,l7n&Yb'TWk@&KP/V1:K!`nZePM7LIO
+$+4*%r5**kULfaGK.rbPSa#@"'A\STc6M:gu,N>98VDO4@!T#iip;-rQh^7%^92XbY4]`1pi7
+?t&I8#au8$I+Y6fdI<V]"FgeXeTSD,;kUS6QUa/*0fMH"zzzzzzzzzzzzzzzzzzzzzzzzzzzz
+zzzzzzzzzzzzzzzzz!!#sm%D_R;!:V8Z:`FWt;JkS"IHh,$/"]$@fm^+G*+t5)8o:g9[D+e!P
+3Yj?ISr@Z._jetk5=KGNH'^,hA`D1%T(ns]XQV[]'d->C3pbUg:7!pBiD/qoeM>iHAIao_shG
+F#.7m%1%Bake*4XIr:A6*E[KeV&*HK#on&)Gf,`B7-<T0V.D^/6.=&D^,'6r;?'=QhX-F/73<
++aeq*1@-D&G\J6<`&q7QS`-P&A@:<Ws+F4#%OlNn),cm,**k[ClrY,ZSkEPB/7J[r/Sj11K`f
+>B7\<2-k"*SUUP6[G[b43ZaC)5\j>UXfSs+QsXr3gY5OG8VPeT*UcCGAipUsD8S"MNRYEDT-I
+\ZdR!Geg,@b6V`#hY^/uhhj[N-23X`@GMjcB!m7eE88QS4cX3DdbgCU>mi2bCCpoi2nn.5OFe
+J?BBPS?$%,itq2nmAIV)+3\jlVb-58ndd.=AZ8J[FLe(C#:%L0NSRZmH7Cb8V`RM8LlE?>WS9
+A1ink$;dts)9fjeEf$;gA_!6Vs;tURV2KVu9b-S5*M6g3O9u$K?C3q=#,O*Qtg:)o_E?#L3".
+*J\-^IY4"(0WMP>gDclGZ4*/J="\;iWFM8WDN$fX0uRB<Sbgs%E?FDgO"Setg_SFnHl$6'PiW
+s,r$#Y>1V<DG3#=U,Fl11Fn)qUDKOgY/WEBEE)l`@TJ,g'ALY\'[FY+%1;m=[pilB3ij*+cF-
+g]9l5P2)Noe>:$;Yda`XOb)0C!J=6&&Z/kBSK.c`KA.lPDSl\08(GKO^LJZBr1-!(D\E$LcNV
+j!P^S!/f%X(f!'EqR/KTJkaj=%7#:*>%DgTXM>(4Hf8(-eG-1ZcPZ#YfWlHo062/?A=/=Q.kj
+3A'",J%8osNY=[#W9kndm=R@R=[JbJB7ab$[Ct6Y><o(!JB@Yif(d1Z$dhr)ps":+9K"s21b.
+fn(I93"@!c%W.5](Rmg2>q&eX$5Ibk[-OJ`f6[r1&06<0Z*CrOD^ra4g&8)"9Y\2XiiSDrZVh
++2ImVakY0?~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
+
+%%EndDocument
+ @endspecial 396 2797 a
+ currentpoint currentpoint translate 1 0.45 div 1 0.45 div scale neg
+exch neg exch translate
+ 396 2797 a 229 x Fm(At)f(this)f(time,)g(click)g
+(on)h(the)f Fg(Add)29 b(Pr)q(inter)e Fm(b)n(utton.)d(Y)-11
+b(ou)24 b(will)g(then)g(see)i(the)e(Admin)g(screen)396
+3155 y(\(sho)n(wn)g(belo)n(w\).)396 3434 y Fj(Figur)n(e)i(3-3.)e(The)i
+(CUPS)f(Admin)h(W)n(indo)o(w)396 5114 y
+ currentpoint currentpoint translate 0.45 0.45 scale neg exch neg exch
+translate
+ 396 5114 a @beginspecial
+0 @llx 0 @lly 621 @urx 416 @ury 6210 @rwi @setspecial
+%%BeginDocument: figures/cups_admin.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+b7b7b7
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUBl`L]QA'PR;nhpV_@OJra;bQAF7B*?EZ@C#34#RMF(ZjG)TgXtZOK7Dgt=:HCaA*!^B
+'^\"TT5+$+5?+JD.e\5]'miTJeJE:`Gc3VDclDGPta^"k)/5Yf%$D-Q'M_GU`$o*T168H]>Kc
+>]#CFYi67pKr$Rpo"]ACnR5Dt-K#NE=eA[e."7dNWWO#h&cX)5G>o!B9@+_-T>*g2=(PqTA_j
+0K?VClI5D%ToKtCBj<7P%#7MMfXlUE(;c$VutB+jk1a9g[@UtLT&:-sIm&riQ?[u)IP[k5n)/
+I_%_,Lk:/`f&VZYlp!?:qsM,Uc8Le,?.]6=`*,gK(`)pm(I%$6%6<Y9g-eH-uQ)oB[R!jh4N&
+[C"6F6Hd\q10kq(XBNhh*4mCb(n_Hdg,0$VLic/0g6kt'O/$0&LfMMC1.cQ'6VI\2d/\JEH?#
+%`ImYKQ^8_?fM(KFlVod%':lYXbBOpQtCNJ.XM:?81%H]g:uDN;l0'S)YdTA`Tc\0k)lQk$&(
+bQZK#V?:Q8dfHk-l1k2T$,BNar<5RXU[V#rDDqs;4eE7g[^j`8YKGYf;W@:lV`6iDg'APTL7P
+q^8k>(eX-Ip?h_o['IhgOS_p7'j-'ZJ3Z'\$u+-N[a8@8aH`;2dL(2p")mV[kSZ)t/e!jrp2C
+--Qfrqqq3V2=FL('E&54usJTL7-_PS#MAM"BSZ/f<,%Rrq#dPB4^:Ehj-]GC?t+U`Q(IrMdg2
+R1,E.jOm69N.Xja$R[VsAO6rS,T;TZWap.3Mhj-][Bfc9g1A+j/G?7_4ps>D0q$cOSBbn.+CM
+`6k==glAdrp7m^)Ob.:HH!E-20kl;9Z:R2I0GEk+f&s;J(&jegWNnX,X<4343lNs7odqfll5Y
+R?:@e/%p0TIC^Y;F=M+GT;9KNCF:(UHr+l^IE\[-.uYk)%PJH!@PMZrEGC^%W/gMW>cc3ikW<
+C(Rqi(_hWeQ3e&jfSW:5Yf+&ald`6%Do+D(;6NN;I<e#D^[e[F[B^]&K(QAi_:X0&8(RbFS;r
+$>>g?VfZ\kt/?gX#I<>RTX,I[ZE2.^+nQO8cB+_iVN^CCt?"NjXSGeA2SbfS_rn]9UT&#9PU>
++PYl0?1!%8'<SPBnkt83@[B67W5*X^4BBrK#Z,XtH:-;otX%7*5k7UC)+$sft8j2E^CB^WmMI
+J)`%Ee"<neLlblk)m-HaRC<cb>fKqPmQhD(k),>`WJX<\nkhI7D^mY%+3q7T#4[D<=-ArFMc_
+DTq1\N\7GrOL$3%f#^E_=:U`6PL$Pg]$n]L<e!<#B1phnU2L]Vhb]6G0Nn9&>PoKlMq"3fC>-
+;AWTNGT;<UT2g+5i.h.jPmE*[]4#`:FQLl)dkgoX[29Ll\:Hs?$j.pj<VHs>q]U(4?cq1o2GU
+Y5q7a%4-DLhe+AWY-';k`hQs;iMH"ZDLM`7?Sr[9@.]X@WQ;]Zhep0o?ig_.EZD#7J>pRY-rY
+O0DaC6EDiQPnKI#fU#qdcMrL6`<a3&u<jcpO^Y2BLQo>MdheLcoIB44-/hripc(!rp)l6_/e5
+kpn;RJrbUnC,)-uJE@f#3N4eQ.Q(<)dUd.rgC!r]J<*[,8?hC'tKk)iYq6>F=je^.laEW_LT0
+S3F#mbN>U_g9fMDh"fNJd\8M,2qEU>[>q_\*U2j2MTlo3SjC*X->JH-;"f6geWpJOXP0U$ZST
+<ia\@]<pS=kW);c3E1EXK0bu3c6$>nnSp0lGtjX0=oUV%u9Ea*@ldR%>9D>Ep`$YiP/P`D)'3
+@*rl6#XZ]D>h2n[n>p3U:7ERl=qh_\e6ZaW:m3m,i,2h/lgXt%bdMMcNq7e)l9uY`bceFfopU
+MSE]+S8#7TpcE4bEm$D&,3N8X#\f"0%U017&Q(03Qj:l%Ae`K=*R;k1W=;6K"G.impPqP@)&?
+,q;2s4Yid7F$?h4bH+mSSlu#a^X@)2(Q_Obh5Yj1Ka`OBD$kr_SDY=*K-5Z2+($5>#f6o50De
+2&!C&B+-=,BBQ)g@0GhbPiS3Zjm'-6-^CdAmRQ'u'$!STpn`)']I1COSneX3qG[cJ6\_L(2iM
+'?gZd%!ol8EoXdeC'Ppa78APqkeV;,*PDIRatm%(`T[_#^Y]iX=a0<BM>S_BUX5(-Z7OmYs@[
+SGWJ%Z?j_g5=KR[q7L:Z''O<F?k&lcKQ*R9<KR/NU`*SLCDLO*3sljrhQ]#W=[m]@OnL]I[tS
+-d`]tGOMi0U*Ckk@qqK>KKLs-@]I/+QTJj^*geBf\]t63hWbi1ZEPp)X/g\fuEV'8/L=e%s_p
+7'j-,.2Sr9""XpD7E/Ft)tVC'0MaGRb","LpNXi]GlPM_JHXrI++sg][ad(aU37l6h>bIeH8,
+S@_&E$_sQY^+qb-f;Ykl"_n-fB^+0]F,+uuVm^U[W"&B-Ugq/,9ETa7g<*9c2UI)BcDWCtJ+c
+A-S@_&E$Zj->>CVmJ$O"0t%0-A.zzi1@%-L47H="^DH*qBfS2cabG"K5\kDs*V*&c:`"+N4?h
+&<P?,\fh^W(N.VAsjjmU^PIaXV<c2qVkg)kDDm*sP4*Qh'N*P;uf$tg?b0*D;/'\$oV<$RhIQ
+%).@Ohd[%Esdf9YY;Q:+*FA>'`+*]2lX_LYj3I9B=s@/%ST[Y;bjr[)-.Wn8-^U#Aqna):9n0
+a\DE'5E_Sp)Wff3K$N4Zc+B+jS*;quYe3VU;Zemc^SNN)-O'6*GIbP;B[)MS]*5tC.a1.pD9$
+=)>%!TW-3SY<oV+ZD9l7eWrHLfC2Ub=a_4#XpD;)GGRVLT#D2"keejaQdRX5H?rI*Af2m[/V$
+i[/Pa`\JDoa]bD=$!'/e\96h2sJ_A%4SH>hV,'K,46e)m"sSIM#K;!m+Dk+DiFj\Zkn3a"-if
+'H9`VQpL9Ep<=oGh5PMW'fB*!`8:0)JcV_W]$=`9h2GeK\>Z+'eEC7^R[T<[g%pM55?X'A0(F
+q5T^SnT.<er+!R"Z)goi#j)7IQ0[SRF2*NGbl9aG>6kcf`$f7?M+0?FlL%>+`K^LuT;E2W@`f
+bN;N8@QU&PN/\gfRJH!GSg!<SJLjGE\+QP<6O,J0;u'OrrN[Z5g2#$89m4<7j5WbZMP3-/.s5
+^d>O)g&kJaJRZ8^/,7?LpK_r-AX/*.jY0/CP@O9'32N%sYLN3/dZl!([SBr7Hl*7?(<=03^L/
+?Q@?EG@((>H<3W4)X).)mS;$P>Q2>&@rS37W!&,?(3#qT^#j,mBPpB-gIM<:;$u0ESkWeG9-X
+\>a4'DJo0Ara(JtpHVp9%b(-3DkO)*sWqH\C(@@ou53`/Sk;I!lNNujC?g?Bf*;aHbff8;_5F
+[LR+3E#&P`&G&04#)C%9Y'Y'',?2\uh<icb?M>A$N[=G-lr_o'C$O)tfq\Dk.s<.a,!CFs_5)
+mOF*Tgbo8bVCtQP'jS/V+Ue$V-_7C)6=9-8^oD8?eTPbnfU@tA;["qSNpOhjF"OfIf,[8[54?
+bTk4g9OT^t=+Ees:JRO#(JA%]q/GVA-"77c75SOXDgW^iF^1:k]F>HLDQr2Hu?D072%2jF]a+
+[``iW8CUJ'=NpDiHuW?B:\u1ePX/+D_Cdaap06'pVd`hX/ltGVH#LOMJan:^:C?/C9(R'R=F?
+VVCV8ge8MD-mu8)mUV\"h],K^TbAg.ZQQ%tW0\8D2lL"FBXe+q@5f%,,)gg8IVSCn:GICF[\5
+rVX]cE)N9C&ucMVI@_b`&+BB-gNB@FM^M+>)8r=OGi;<L):,a(?FD7l;mFiEJ6Ydjj'%4%D.d
+g^-iZds-,4,:Zn&\[Bg6]tT10is9kWB\6<O3pcfO:?_Bu7lHC9Y,=^DhX3,D]pVA"85f2XX\#
+;\Am/D\gB7;RW+tY-\<4\+oj7Nl?-&&p8bZClC=g)Qd]9>PA%@Rs,2J0;S0k>nZE7<.I<uEpC
+1FX4[^FlGaJ9;LBW`/Z4Xk7#+6d,(7D8'4$0J:"j/Ub%U&#aCN?^8G2galUNJM].8Oclqj'Yi
+^"s9u"OWS?Ygro+ngXc&em__\1\+]B_eL?1tNR;CTG0.6!(&tME`S1.@SG';M11JEOLj\s1Z2
+*<)A<<QHECf9J7Gp`Q,.St'?RKj<*Q.7.=kFkP@]1,*`00Td[C+(*;ql<3A2[GG^%hkGIH!Ge
+R,L3mg0S&dmqS#iD`)]S[aF2?41DjW;H#g)dJRNfcW\!J4+5-$mS&n_Sjk@coBo"*I=s5ug6A
+_ue'DpHf-dlYC%\N%q%16H#*epA<WDOR-mc>GCKGd4eV='*M7r4AUfWh$ADUX7SCWb^Wa4ja8
++O3?nIbIX8aagHHGAA47SdepeVhPlhIVBUYV^5R,&Z"PAN%EUr*#YPV"/XbPpRHcSQmqH]hQV
+<;^*8DDUV4af0#=FgZ0k)moF9pK1E+&r@Wm$=X?'5Y]5]$EPB\>QTF``HQ2FH$DpTZn(Vq]]/
+Mlj=GNHe46j9d]nE#rmB%c'eG9$D?(O^2D7E"dm>g#-!cARG1;`%\nego`np&1!`46BjI$02N
+/qur?m9W0-O+Pf]:er6Xc<Vm$G1O1gL4X?-;Ni.i\f&saM76uqL+K4]=@HA6qJW=df(Q-,S%/
+m6Ank86o(ZD6=d5^?7V9Z4Xej1#p9RQH->pGZ(XY8m0]/bZ>+<aF2,5$87UX-D<K,kj)Ws7ek
+oI9P959\rB=%3i6>"E=j>OU%-.ueB86uL<JuGc`KK-+s+TSR&O@S\32D/pQ1\BAR-#*3$M>O_
+kjP0BJ<g!N]=@"F[2WD>B,PX0r10(mN]ndRl-_C/%K=*R=D/4JelI@MYl&,_fMofGNq6<iH7d
+i9"c#fS[Ebd/SZ-DEaY5S#)8KBthESF.UD9'T(D:TYQ.L4l),+MR;4&,PLCr3j)1NHb)DS9n*
+kI_aPbG6DsMVe\L0Y].01RjIJ$EGZ51RiYnBjl!oQ%*bj<I9<X_1Z'h*8#^)'@s-?O`*mu;D3
+^+QoCL)4a?VP$,0+@9chuT-&KtK7\h3(a;#6"0(3=_LM>U1(FB?p,PBN;p1Uk2A>ahp58uQ,I
+Ag<5X3C"o."ZBl]2PQbB;c]9DH'G4Pri3O:?W=kYcX=IX,V<b76<uQ:"SHWafa1ciTF9"'fG]
+-Dq`8]Q!-G9YrCYj#NVbOh]#jiA&dZI:-$2UCaY#k,C?>"2d^qk7GjNdg;.E;mjI?CpNi_,mK
+t"u1k34Z5"XY]ER!1I,gQfJQd5Ns&.RFg\m@:s015'gr/I7k]og#%(b3dVc&e)QQ.5+rYr1k2
+)LG<8^0/2mN-qEWPA*-pYL`!r`b8*D[P2S\fQ5%jO6T=JC&me40?d"_1XrL]f`?Z<lt+JR<_o
+;jh'^A^]sDi[Zk/e#C#P"dj6NL2CT@ajq2Jd(c\EeqI,)a$(oJ\(dT7#&PXg&CP>#RLY/]h2i
+7iif2lg=`<m$+UpoTlaO_8<D<,3C=00\W4FHq#k*H3E`Za^tIon7!J&14/u3UQe@rRlCf/aGY
+r+55q<\1B*+c(9Zpg$E'^'^nfXN(CX\7D"nGhtODqB(;_XP<Ebh/WeHDV)'P@3h)p;aPML+N^
+_3!9[Lg'1FV!'K:3eklLN/>miqOY=/5LtN:<pu/c*;VX;G9[M6XRL05AaB_fkec/qZOS#eAa?
+!r\R1RVV6:I.(bPWKh*ra-5AV"e16.-GCG'LVh\*R9*ol&&V<!ocF&E>]dlG;d3aes$ns^YWm
+!g6-UTE)rjlR%F-'MF\OIak_HD2E;Oh37<d@J&a=gT:mL\&dAHs=+N&o`[d,CjMlk,_np<(ES
+#OT&l:R:g#n+4G?uC@X9C:qidUKB3-m[Pe[SV[^]CH2Fq`mi'rLW"R/S6X#>T@`WA*K-TiEYG
+Lhn`-;LLSnAfgm^\]DQ`XPX?JYmXjnl*fY)"2GMA#RcuiW[(tuZ_l%l1B<JaS=4Bm6T\A5T5_
+WC&CGi`QU6MiK-kc?$B%B)`7>>WFMo?@bZ+Lg8[$rq4P_K]Ooc1Kl6bTp$23Kgo(.IU-r=(uJ
+krbg!oE'f:&[Z/Wf!J+]a-,*+/3j+`j_0ud<E%9eSnmr3<-Iq%7Jm"5Dn%XQIJ--@DHD^?(h.
+&8E$%;bTRlHeT60]5T?^h7CKbJT?K#j/BI^;tU-#N_C+d[=Zg2>*6!`o0<SASi2mfCuLJhtj>
+?ARUC?6P%?u=91<RPf[kf(_FF66Hd*R,QVEGWJ-\M`-:eXCVrjY#$lkt64^7+p=c.mo$#SThb
+IF!1JE(._*sBV?<lHl^WUal\//:'PlS4s+tH!I;.u@,ZMDeE=QXlH2OW\:&*Z\!F4V=AQ>pmg
+bh8C]2`tOok[azzzzzz!:V""Sh6o/40OAYnW,m7.$.%,C'/Z)o4:`;\/Q[B#/G?me-77P\@f3
+>oLHCP?HF5L7fXA2;]F=&P8<\:d?2!2%N^R&92&8YqGoWY^gJoL6#GOdpudGi:`Ho'?=*iCJN
+Mlp"1<^W'<QXmF4-q:g;(s@hM`nC0;q<X<&apZzzzzzz!!(qmndN<Q+>ki%&0$uJL^d#``!.O
+k@KR8FZ%34lV:paX-C$NG"\N9?9%NXT\SDOWc^iQ$[b6Ct>CZ9Q,?>aLD;TkJMX@t8RCLtXSE
+fWS[1s1'8*:q.,I^6<JRlE_mn`<mq9INiboIoCmeN9#%QhMEEAP"Jcf>hZV501<*F:?FaKp)7
+iA5J="eS:K&j^AqamIU?7)7=Bb^7cNf:.rt<).qZ^pB)bRpkj&@ra*-L#0%(D9n>J1:9Oi-+,
+$"_4tu\[FKTOkI=$0NZHXM[F$dXgI!bhD0<B$Kq@kgX"9\AfQ[$4Oq+aY[bKlL#X=8p`i/95)
+(.=I9*!QD[=RQZWA_g,>g?HV6#PUi`et:H!uH!7fH<+l&XS=`EW[+sWRr=Q0Tp4I"onW'zzpi
+b#FB("CQC!>DiZa-17p4!uKilA?Zg*R#="4I:YJa%^=^iVhYi!,SErRk?Q7;=(;/MmgBh%$3dF
+%],lq6k2b2Q6"tOB1(pe>@kt,q?D&*Iuj]7o5]@<40?E/s#A8@FCk1pNu*5C:bM)I]_i#TARW
+<7Tr@FA+3oM&%TuLf_32b[G?k9X5M+4bfEL#SD"VEQ0`MIbUN"-a:2mr*Ca/IT1*K&Tq'iH%q
+FA!"=$/*n3Cj",H/isee5C04Xp,<7B)CTMM#gL0n*lqjp/j($F9m&gt[G)No%u,H$rgAILiPH
+D:9.kB;gj)LYe]4WJT+o6W`0ZLYSQ2WVJI.,1Q;d5]'miTJeJE:`Gc3W!uE*dJ=)(GO>DeI^I
+b#2?3^Wzz^r%r%,Lkjemb7\Tbh_-^JnkZ+K<+QN3hSAb*Dd]B%]Bh1#Lir1inTcib)p:Pm[:g
+=#dmq?ocO$VC7G$7WDM>,cio3IC1DV2$K?V_AuP)8S>:t>n/=L%&(+<gC6*&<X4lLd*Z#0%'Y
+S,)2WC4?i@0(V+GC%(-=Z&^U_3T_K)Y9siG#:0U60f(9cOsaHWW&2ktb9+P*QV`ITg.M%*IdB
++lV&N<1^[d8'Br0[ll@PGN<L3SeThP2WK*5C<Hj&B@Oqn^t#3g=iCTQ>t(VK8tQfbW/ZQ.2A,
+hs1VV,W#eo^'@W-'Rk6HH^i"(s"AtW4p)fcN4O)`dkFMYt'_N+*?ShO\b@lS+P8o^Q5T0uJ-&
+!k)oRXs1A(0.aOpH*K%Mo)lT*sSm3K'@g>^iVhY?ojr=0HEt/Qju51&5:-*()ta-zz!!!"D=Q
+Y'cg:YX8q`g(NgNut?/R`+-<?=g=e-;cPC'2oc[=RRmg;"9Fcf(ktUU)_"Rh&"*(i#NFnh5Cl
+_WJb:mFL0<L>#+)e2D,sEob[N#<2I?k^?lS:Q:9m>F0O)B5g.R,9Z_Qr^e3ZirIbb!U8Cg!f(
+nr`1H0n'hGL%b2Y,[(e^KQ"1?C.;d85FJ40B67T=WB;;l5?d;r^.08Z;0'85VB,q-WO!r3KJh
+"-OS`%*r7cpVJ9M*78]gO\)@a/b3@4g^#00X0`VD<9riEF4n((%738Gf"h#nQU8U*iST#Y/i@
+kd9D.TB#BV_perRo='OgNW_[W8W3,VY_7J@k<&1kX(8/+hn3aB+mn%qX?F<e)(771TW9rF4!)
+k2/T.!fC>95Q*/4?X-W,40(HCLBFY\=(`]?`\nON<KWfN=#eNSMS[%PQn8/f7;=P0k,'BOo+f
+>Bi>?CcSra[\:.5c++"@F%['EAm)$ag:fJ?e2D]RI[3E2>YFkOd(.]aa1@RU>G/F(J_In]5]'
+miTJeJE:`Gc34=q+<a,^uTe-5mQ!!!!aQ03Yr^4:^)kKZ#24J"3gRK7^:j7pC4`V0&`s#5/i_
+*`4-fH<+,L+Bi4FJ`Fk9K27j@4!=pJ,>VF"Q3^5Nc\8teetI'\Ui`;;im8aET1p0VRD3Un@/G
+X:@Omdb5`T;JePJR'#Jddd0KB"XqZhi7r<`s[J^QBJZH=TD=N!_mP9;_iF:]!8LYM$5De163O
+O^F-cIV;%"p;%])GRrq59^G]#eVL-cHDu(s:On['Rt^!q82-aq^9T>a5O-Jif".K]$`?0I=5-
+)uos=zzzzzz!!!!E&:X+iZ_+Q0r8?a-56(Z`zzzzzzz!!#JSP2<AD&dql(7!^eAXmDmG+Ak#8
+3'/tT98_#*@J?uEn:?FJ\T;>C!tMI!,g4[OZV?(dS=.uuXh@Qqa\,Z5`<O"#<3=;0%OccbV.p
+qGbuOMlPkS&iRsIs?fbsR]fUBo*HU;ERS+X("EJE)Rg[`+UZA`^G<q.@%a\,eg9&e`2D:pr))
+`"Pc;/0kNX"CK6H`N.#//OL%Q$lX2o&Qid)r;c-gIXd-S`_N<<&HU8?f]qKH0^@$T9&ld\A(_
+f(2'jAD6++WI1#^ahYjdU;(1!Ypc=@WP:KLopFPhp>uFnJ9VLgcV^5@Zie]L3`j9c8ZJ7dC7@
+La9l-XQe@m*4Z;qqL%T:7+82cUg_mWdV*c9GD-WL"g#oiQ#f[1V_VF0A+cQ2$?nU+B3JS#70-
+9)MQ90GNWQ<q\AV[=JFFp1J,5E`Hof@X3dH1Tqag1DF&'@hW0I=eek<6ap,9`>-KY,ctA;'.G
+?Y`25M1c+!6%CK*2aZ=Ah)pP?X9nmZRk'\)7`-uSWY0pr(NAZ*VAO>deW(oodi7k8?G2WM>I?
+3QV#B7S^gi4%bRq\$E@g3@dc+kZVVS%,Q.UeJGf<OK@IK_5X&[AL+8aLaojFKjJ.^#cYnW3'0
+FY4BMJVi=Jd)WddjWE-!M0l$=CVV>6hZC\hcpS@%&>Z4k^$H]9lJ"oR5C2;hcan`PH<QC[Wh-
+!YqYo*!kT?+4;2QE$*04pof=gTUC7C>SIgN^,'_c#E-Mga_q[G>)'9bW7&d7BSu*k+3ObO_;Z
+)-IS`#JE>EJ'a1OUY88*M\:O%k:s55rZ9<0Or8s\E8iV3d6*Is/3Ci8V:,sh^=D9^idR!BNKu
+'Sl7Mrl8ZkCNo-Prh[oLVBb\BVM-!mC\jIL_1F40e8fqleb;>.37A8Rp?W89]!$eEV$!c#>S'
+'V/@fRMM+n*[Ncb1g"C*Qefk!-9smIKR2[),4kuLVAS@bn4P@EU8>;$j^s=:.6+I1=X1>6Vm'
+t&A&[8_]lFPVlZ!S\5#Ym3C.T?pf_r"ZfoY?Z2uo?m+AVq;];lYI#rF.m7Hp1?OEb15p]=O;_
+pfs'pD#Ye=5P0CMou:8$?BL],,&+>c>)>AuQ@'>iED]g,*Hmei`IupJtMWVM(Pp]8j,XkBa=F
+75/eeP\b>B,\qML&hCT@D6HmWMiEA5Ah1iJ@C'D<m7W;nrP3K?QT/97FaKT+AD$#dUAJ-RjkD
+/\N[ORuqa'i$q)/,mmWM*q;!p;E>I=:LR]n]`_'\Dh9=M]iP/Zb^=*LeEQ4'0i=M!\i+7uK`Z
+r`u\`^f3'.I8'e[ZJnt\lNia81FKo>k1?e'R.#S=R()RUDlYfGKqJcZ>=;@"lVU!-Y>fa%lPT
+@hg3Eh-+d:mZ),BGAp"sB81KD\SXmM[+^@AY0#E4onh)T&"OhA>AAX.]ju5KrR]WTL-^NO*P,
+=J9_t=Y_Qai4P8TdGV7'G=37_Bu*&pS^Pam=k2`8DB$am`V:S)&rL%u"4qP1kmGk;oI8RUI8D
+,`H3EB.=63PGYCZD4K9M)mLroIPOVHM\HDPW]4ktM@C9L`\JP$b1(%84f0;[)fQ$4C4"scM+q
+8GW%HS)G$:3^`WKSC2K(7KpcQBon`*g`,#_5SEIOn6TMZ$mbr0:U@Y*(t$n8'l,K75DA2uX^q
+ULnmX\WerG.cNQX[L$Hqm)bM[6:c3=\i3\2>YjH)rDFgo\n*lm/DWVC.J#=1sXDM;aD`"*<e`
+Ha^eqLfnRO<_NaKtkt*<<PJ(NRAk"61TASI&aA0fn<+l2\?Z1:s_tkbKW5:ZI%JRF">bn5':+
+COMAeN4E_Cs0=.SXdaiFU2M34TXa$k5tqAiVo=`Y8^g/0GB4>%?2Wm'km\hh"_IDtEYP<iOTH
+YJEntV^po7`5_Z0=csi1Wu4p:ZSjuI!.^P[dp"#6g#K>OA\A$uCU_J((^LT+2a0crXpe[,08e
+>j7VCjQ)$<t0:hmVnkfE+C)ft*m&c$Y,#2FlOh)uIkHP?1f-7fPCMUs+(Y\Z`a\s7s+%o^%C!
+k7K&JJ1W6,"61dkX#Kc,pKs)2!?7p0@n>7Tu`4JCrKO*=>,pp8V^ZXTqjFNcW:)kLorW*RN6E
+A"?Xjuhh4k:c8b/3MVMm@JFoR/Cd#,@Zf]`1<-09nn8-^l1m4I'9iF$t]blo*C5Fq@kipBEg;
+<B)=$9>N)4EAiaj#0,=`%<e;RJAZ>j1Qa\4/sF&s5XY-]L]USb$^b^i6]HI9UHjglnV\]<\2p
+@kaKiDM_c1eIK>#j2u]sEhh;QT>a@'a7hNg]jl(m@HeO5*Y3XHB[Ep=rDt?PIL8HmG-`,dTXL
+K94mo!\Rih\2zzz!!(q)nf*,D=9(#eT26Jo%&LDY%!-(`VFp$`U?Z[bc>c6*Wn!D-d.k6!6#s
+Yrh\2jX?2<kp%%hTRW/j`QmBM5r`W3DPa()/e[9@]Y#IQ]%<c(0Q&A0KZSUNT@QdmOEFul1C%
+81)?=VOR-cc=)HJ,fB2YFar'_tah8M:tu<+g\iHTXG*Aq6j$+Y2`M2\ttL8:Wlb)7JlOoBm-)
+$pe*`+^U==#.YJFfZEfILFH1hch5LriB1RpIKD_=e<,H)1s/re,gS;Q1;D!Z"G&/W#eh%]9Jf
+'*nSqQ5T2n^t]qtTjMf0[DjlU4,a!M`LD[^t0RBn"GqD%B"I-^A/qG+t2f=n"Q/\".t>C#m!&
+qAf1>:_$CQe@+bQ-+.HdM8`ANXjiQ'hH?jq[9+#,D%As/:V)cg=Dgp_^RYupSA]HY4T/@GkOb
+,9V:69?]sJK^VC**#^XR2%2AJRCXQso7F]rJDkHs/V$YilPP/G"tZpDD;:tsU"dZ^8gdNpK!C
+2r?G(<OWla\@[fq)79/fMOS.;Z^/TN14"1n85)KM+r?*V*FJ6eE5b/s+T/JM-<]$l8mt[jLa2
+B]=O2&@T*N'Pd!pBC"7Jh7K.,2fIE%UK(X!7Z/n-JQ(&DUOe(SiW,;FHMLXU>*f@ZlWH(bilD
+.HHZspQF;P!-W:*)919KFW"2Eb*I1P9R\-D+/8ei0RW<<$N=et'/agX8h25+-=NC#I_eMOlim
+Bt9=8[`)-ZC+DHp.@UUE(gWpq2%R)NK5O[[ebV29$<!7T9"CM6M2fTd?MLs!V`lIk$/L:eeLY
+,Th+1u*l(t8rjsB'-C.<':<.f+iW(m-6V%m3K"iU9rW9p:WpS;9GWVNLbChcjog6U7>KcdIb+
+N$gO>&@l'E@S0$SWoYS?W2@K3N:OXdE37,CA[l"oVA$WfWnFWXh)u)S5jd0T_CEmbsVDUqKJX
+_'^bh:<Va\tZ*2=A69oBp+/j#b:tp+TUtWuKN;:-EB&N2<%o8D7G=AQLmb?9Ihq!g+_1:d#g;
+%fX5)^Qfhgk_3o++2&~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
+
+%%EndDocument
+ @endspecial 396 5114 a
+ currentpoint currentpoint translate 1 0.45 div 1 0.45 div scale neg
+exch neg exch translate
+ 396 5114 a Black 3645 5692 a
+Fi(21)p Black eop
+%%Page: 22 31
+22 30 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fm(Notice)h(in)f(the)h
+(screenshot)f(that)h(the)f(three)h(box)o(es)f(are)i(sho)n(wn)d(after)j
+(the)e(author)h(\002lled)f(them)396 708 y(in)h(for)g(his)f(printer)g
+(at)h(home.)f(Y)-11 b(ou)25 b(will)f(need)h(to)f(\002ll)h(in)f(an)h
+(appropriate)g(name)g(of)g(your)396 838 y(printer)l(,)g(its)f
+(location,)g(and)g(a)h(description)f(which)g(meets)h(your)f(o)n(wn)g
+(needs.)h(Once)g(this)f(is)396 967 y(done,)h(click)f(on)h(the)g
+Fg(Contin)o(ue)h Fm(b)n(utton,)e(and)g(then)h(this)f(screen)h(will)f
+(appear)-5 b(.)396 1246 y Fj(Figur)n(e)26 b(3-4.)e(The)i(CUPS)f(Admin)h
+(De)o(vice)e(W)n(indo)o(w)396 2580 y
+ currentpoint currentpoint translate 0.35 0.35 scale neg exch neg exch
+translate
+ 396 2580 a @beginspecial
+0 @llx 0 @lly 621 @urx 416 @ury 6210 @rwi @setspecial
+%%BeginDocument: figures/cups_admin_device.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_device.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 416
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 416
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 417
+12.000000
+622 417
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+424f63
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUl#u't[Y6#VRXOqgP(QJG*/[+HGMrGWUiH]MO*Z_b?>HMp2JoD:0*rIu>3_uO)Oma6^A
+tb_1B?j]-e&@g#1NkF#LitG#LitG#LitG#>psEW-@i;_+-9$[CCgY5#!kYhYC(+6NQ+G#kH-!
+*)pd]HF2ZL;2Zr"(s+"\o?WJ5!cSCi;4I/KAWIJ@e6*Hi(er@A+a?8ki2I.@GnJ1Xj*#QBAut
+2SkO;qZJD1[djr<+MMPI2[Z8Pg\qP_S*i4Jf<g.l/qlj5?;E0(ijjda6h2h]GK"RQpo3cCLY;
+Ho[HbpKB+G`Ki"?a0gAgsE:8@Nliqg^m=`7p0^!>t"(V#0HbXMF*!\(0c*T>#AO+D/@T%[G@G
+,QYFo1#"R+A_'s,W!TLh.b=BuNpVrh#\ed(qD.h2L$6lM&o0[4TK&DC+^S2o)W9p0MR^^7[ZE
+Qt2L=r+?p'*8^$cH1JQpM3l3",V#afLX28Yd8_$1+*/,R(Y&m<$etPr0uj=,1/A:`Hnj:`Hnd
+:`FWn:`Hnd:`Hnd:`HndT>*Pj\/15*Jg'ni"=NqW2[fV05+c.uO1nf4.Za"a&tcpbc1-Y@-@g
+eom%aHSKG%G&>fp^QD3+,GYJQ0@m%aHSKGI]DB9,pE6#j.AV)AXU>Wmqtpd'f(DjIpHg[\eu:
+n+;a[U]@7pJ3YL\hecOCkUO'TdP]#=I?M/RbBTZmd,^-<En?6IkUhn++>jprUp&n853q',H3d
+FH;t]HqO3+@Rt9(JiYS;:)miXI>CTcT?N6VCk"?Mq^OBN*q.]'1M_<L4h;*KRD=V)=7108Uc6
+S<PIl+TU7a;dhno6h0^sI_j7W"oKS+(>`8aO!-2LSgrc*O1`d]KY\V)GpbiRQL$r]Vl_YP[82
+m*)E+NF%!q4q1%D>ni=o-`&Qpg8iN-+7u#OSF^K"9C']Y_dd.K/7tG;9l2@%4cg^$ZfPm'6g(
+Oho6i%>>?u%m\pY]Q.!u[$O!n*=Uq+1m5!Qa7N_4/pIeiSZn8-3/I(\0J)QTi3q9P[*7I'OoO
+-PiL]ln^cla:"UAn$Z9MpaNgHne(bJpR@o5ST]/D/uo*$HfHi0>#]rh2/+dW_M!+4@F$B\#6:
+Fk1-n>@QS8."j]*&[UP/]4'g3hZ*0PKeArrDg^[4(cUoGHHL1j5hhkknHjqRhXR[,"m-9]@@s
+ba/Q-[14=8Jpsp2)Id2F!oBiSX4bP%i=Wg*gAp,j1]B4A'V+A87mZCg#Q[dM\H,p0X]*rcn3b
+q>3E>>Iqkj^.ji?6]HS(ZM%9VrZ*MEd[K`A`k/4Hk4(,UN20Kk%]tP9\Xk,B+Zp?ii.[f.C2f
+6GQA_.O8=,`_bPcbKX/!nJM(kN@4_5hqC@br./GMA@1Prtb7="HL)gMt97;htUC9qs0@e4@3]
+faNhH?:TsR^1Yc/Gl>$W7pO-4r`dRfhp)<j[%#UT\#Wf=`I0Ye^cDNASp9^X>X9Dif0`$f>b5
+kLZN@"-Y>0B"Z+&2P='(8M(MXF<DQ2CoG"]8(nCgb<`Y^&QeHo7ePJ<ngJYGuNh`.7c_`j!_k
+M'JE`6`%Eg+Oro530LPc;o`Xj<PVI3^BoK6h#`C")s($T4"uO%4)rE:JnXD-'RRGD9\D2d1&\
+q0gbij^uFH7agDpKPudNR878>DCGuuKtd+m4'8m>\Oh"s-m)$[gh,ldZk6D=>Q2=qJm(!$XlI
+Ae9aU].eD'bDgT]Bu(FOX"X<<C`W2hMlJZ14=Z@shUIu)g=C=5"A5/Tfe>3dQ8m?2bLiM]5o?
+?s4j*?6OR.<TOi?0AHbP-.BoqU;WMR#<:;l'H.U0N1Vt,upG,).^bcb%"J>3k5,H_0<W1@Nk"
+8p`V7<,Yoat\Bul9;>>rN>XA.Dm)gG'&mS"\fc-l,p</=Fm'lrEEpJR#Rq9:$W/^]o"1-\&2(
+ALE#gtT0:il3(Dp.^?<3]^*+*jnk*(T,M(WpmKOn:a?mNi8m88lU[mVGkPG5T$Y*fe7LolmrT
+'hFroR?^9?-+B_7Rp=gOGfP9HmP!/F"L\3epcDQLlqR07Droi7DsQKoT<QBcX0$W=FDZ4(B1k
+,E.L1'ZiZ,-F[Xl']hs4Tsore3ihmLleqR_WeXL@tRde2"(5@6bj2Zunr=U(L:ZSrNb.^njlk
+q`@J=e=bib""V,HPMe!<^=Pap<ih:ikuL#:V\W>c+uL8dJZu&&,:n:UVHj-7<s!iP^%YbJ`e3
+U4!=#)i9#EFmq@>,_K9o/O1CmDXq:BFB^*$45<80+F"k`!UFQJ]0Le,&/#+><^"UV#TJeKWOc
+FcLGDp2+C+CZ_g;"8#3po)J@`5HO><*#>"pQd0RIl4+cbUm!O00&h_ORmU2OrjU'`qa0"onW'
+zzE(a7#A&%3%,HdhiHWRE9kM1RO+$;F:p>p+mSX.u%>&h[7Rsod4GG!sX"U@iGla=.oY&pLiS
+D;Vf1nV2@hVVB!pX)tF&*+0![]5@T8mY85<,)>EV'H<'p:]-S'jFOKH=CLZB#dV-FF'X_<m%b
+:hj*nP)uP/k?Qo>OJ&*gRo_!)aRSh_,&Y9q&c(n'Z1b1Vh1j+V:oNSU-8!CU?HdpaGRshaYHa
+b5t(05Bgms:]Th7'bVmZcYd*aN^R3/m!sbh]"#H]rWI[W6FG]e$B[o*YV@A4KLrV5B=4gV,fa
+?(2i\c",)5]JXQ\(eqDT]5g4oIk.QYJp?o-UAFbuh0';^`#&@%m?.VhJd*T?E@@A3Q5X*GS=B
+(_d=r98B9'Q'gr/TcJ+ge`n(:tpjd$&5FXrLqPWf!pNDTJ8WtCK2hlGQ[e5[?"s4#q,?<6nY&
+oCq+]Wd&*<Q)>(l6(7:T$p/8EFZtrEd%`c&(s-^hcd.b=!t6a?;qlAQ*Og?ZP^!MIOacbQp@8
+,"C'Q&VRL^^'+UEm?2?Tp,uV-qm9d=QF7g:]:>^TejI9nNmTk"k:3V`'M).*&hL%+0"LBdYF_
+TC2=`egrVe9YR*%N&4##_;2p9`Q'!)*baXVS#Y)`ZWO/,.m]IrIEO6#Fj&8F'n7H8Y^>]F]"H
+qG1uFQ"!fCJ?^oLQud&of%?\g4l5Y7b>*0hR@2`td?.:l;-R\(>"dArlJL1;gZVul[p+88l9c
+<(e=uF(@4+6t.A8+grTg?:2nf)6H=a82Dc2#=p0IQ(P4,f:Ee-8TpT`GeB[cp\53sa4MUl+G)
+q1h,+*_"!UKmKK9^$eP+L]QD$-N6Fhe(<H:YW&Degl6Q&0E'XD%B[);O4LP%4Vn=-Fsf=Of>p
+-QVAmBCGot5]M#\WQ.XRF(d":;1"3Vgb]gI+he3su\U*uZ7;$Mo8@=kT;LSjPDf2Mr]t6^GX,#
+%\[l/2?gBP(Q)_JLqjP+d1m%pH]ZI[l*D9RD5g$6mfHb.nF.j*u':SSr)3i*Y7/(GO+C,"L:[
+9Shd2`bo]UFGk,)l/Xt!kd,S,j%n1I:oUi3PF`FKEDt$F[e_pJR5oG2O+YaXI`/V4&JL<gV!F
+3lR!^=jYg(.2K,Ti[$at(S?BG?/G8.`@[aE:;&0(a[[:dQ2qu'KT"d3RN/`k(P95+2(G,0J\<
+e/H8?hhMmI'B,?14A%e3q,fb8>T^[W]==C3R,6F1Bg!BYEf8DbJimeV`\:E+\9.qQgs;0!HAN
+9U&Sfs0/5?c)M_j[JqfQ?@UJJ!Y`?Ao/<A<XgYRfF2O!%`AZi,)j=+Qg8UjmjRi-e&$.#2.&/
+MqKQ>`"X]j(gD2DL9A)/\oG([[W0>1X]NQBP,Uohn:%;&dFFZ0AVU?H2.[b.QndqW[rdO#_WN
+20Z&/KOJWNm)D+c<>*g:;Vsa':0"U^MU%GC#@gBVs:@lr3:7RS]Y\[K]Yd%2j0&Yr!>0:^?V&
+e]tct@FM<V!'l'n6eiH,:[G*`DDae2k:19u1%sCuBHLfJ+N<jTbSU]>Z>i5AihLBe;h9f8/ZR
+2T;V)A)n8WZQVe*2&q=052!bo&_rHpM"cU_$u0mT_cN#o.#i0-"CmmM!qu$]07sD.jU>Er3@m
+HBBfe[29k&9sN4FG3(9<`\_kO0i^p'A+-)ng5pU$M)0T+?+IT5qHY`e[]RBjbrSe,Q$:EBQ(%
+\dp@]lGH<0TZgRB_5%;36fmP9+]L%cCp*@"7#<jllT?%2M%XgsOAT[U*YjC@c/*`2"RFSgQh=
+AJi\[BB4*\du]h&mISR.'KZ!W3X+*1i8W%<JT"^8JFes)A6ikZJ=)tolf)D:/>(h[u2i\eea$
+>YV^:),&UJp0cT@]I\j5<U!'jQNM\bP?X,(YXii/\diohpD_k",pH5j1lgc'V&#V=d_0s\!Gu
+rJmXHC-tke,qi]Pk-oV('(OhUXdPMO@*ipbl($rnYd;<\_sI8+RL[QO&MZXn/@%^7J\jbO[ai
+"2CgHgp'(F^e^\H5tDo$+"NpWT$Fnb?M^$3A6DIf;qP>Vr\[`)01B%Y0i3^dG?7tK]ecgHU$1
+6qe<C28DT7]5npTE\.>r%&dSS5Zq&?BCQ+QAXDXTooLt_Kp3knR.(+lN2b09^gPu?;lI1H(ab
+h[7/.U+P0inM[`CQnS&`[es.#[A@aM\1AAj1Rs`]E@hD8W*p?fPJF;OOsn#q1G9N,^1k?.EK:
+X&@IeTR)[`*7NefFb@mD;kKCl9@49DJaYRHVW,LEHhmVW88Lg+e"K<ubKHD\)khD?EFQ9O4P'
+);s4S.AjB5=m.<pl!tS(g%]2[cu/;q4k5A$)WRKNk'\LX0#52'$JiAns`js(7.acgJZ_m5=aK
+IH'"m<Tc!rkhBF?G7$(Oej$5_lmlG*RjRY%D-OL3m=HpZPO^3^+O7ei;!)E%=<8&u<J"klla5
+*[il3EskGPBK!qV##V+B:%n?<N`\M_U?,t4e7_DKKK/#/LpL>kVYVM(hlFEU;$G(:<Ab_`mid
+J)b9bhP$,)!L"s^^[)J=jZT-f!Oe&DkgBDkM:o"Q+j6WG'b*TgX]^]%D>*qbd>hrF]30_[<cP
+%XQ-a4's8'2g_+JMI%+il*KaWCf#'.ZH7<UrS'eT?9.IW+Uf)DWY9r=RR,;(Qg2kj-c7M'9jm
+3b=^*$X`A\VRLYZ9T5e_2ViCE"&RZ1MY)n_ku>Za>4U*[/_Re\(#!>*9YTeB8PTZXXZXX_F-)
+%<Z@%R_Nk.Y'8jm4iTs4?8L^X/g^HW<c$$<h.)L\gGZ*nSX#7VAh&iXj4.?)gK:Qqh\PBl4*S
+rZma4Dd:/<"h[tQ[g]0bn6R%"YSgKsTRCX(k<2.Nq<0nHH6U;c3c8rHbUbO:Y_SZO7$'Fpkb/
+Y/3'd!6R%A"Apm>@0fc<1<#6cSAYfp_Ip:dC2QRDKip!;9G0VKqm6YR29LI<GO\5Cd+8)oSp<
+R")t>u\%%juo`V]ILl5-:SbDUEnIc&QQ40F0$uO2hY=m$HgPTumh=fAF$1:3`M"HV^[!V1,f^
+!.>`Rg\6p5F:15q]b#hWD32?'[MrpB6(4a1AsO@7VX0Uo[392&dIaQ^O)p-O:Hj-6L#ATgbqb
+%$O!-0XQBEA%[i*HI&B3!TAYai7KnR/iUI0^ES<mb'C?JH<NTQjZ1l=X>ak4m_]Jihi%gQEUK
+C!/$c:4EB.k?c[H2GHJllFX`;hi4]r-%T/M_&Fq^\5KUaurb=@.:BuQ0](W1FJn!=K1\u(E[-
+PW>EA>"pniU`fQ(O"OcCRcr`Y3X$p_&.*fDgUb2;<fHFg_tb>q,o>XI2GP6V'<7-/Dt'8$?8#
+d&&Is7&G6KZMGpXE\YrG@j??:LB)9,<M)RdLA+T)FEAqGR[A%U1cdc3ZFgRVo^/MVP^2;aa/T
+kcNjL!*^TXTlAo<)?.@_ek>QTA!OS!/sAXj1-.Hd\WfY$J,l#j]^9H]":$=ccEJ1Ye(t'si";
+23!it%pAMjW7>1e[7`*7F]"Gm#>G,OT>D)08oJ<o6a$c!4'QK(,-lVgCb&DTE0kUNbH@kEkRU
+J^q+r]5qPg3;H6RH9>3I,V'+22t-/=KbZ5FNLcg8S@2T8H=q3h7DK:At\WO6>n_[iH?aS(JYW
+5bj6/9f<MTW:Nk\NA5QUYObZSg*MnX^1="o?u1S5:XS)UlDBbfL4,FQ^d-UV(t$"fq%0UU4`&
+a[X4o0kLRdCW1VM'b-YZtgRP92"l@Rp_5>llqW9_-9B0]Z)q&codX^Ct-cRbC2CC]W2T$-kYd
+YkI6OEDJTr71u<SR='I:.@O1^;Q1XlPsW[r%\.\j199zzzzzz!!!#u"Hn7=:d9/1NB,r^rW&T
+V.Nt`"gl0ID6#GOl9McZ.QQ`"[E&RobQVj@Mk`>YBn7Uu'!2`'37Q!W1-"n,WoB<K4-R7(Qd8
+Z=DQ-K@`RS6@N)n6XAh[sRq2K3G`^')piDN#A?e-9e$g\JqAUeLs!JZD)L),V=.:h+F<E!?:B
+zzzzzz!5R4I"b<jCC>c6[CuC==CuC==CuC==CuC==CuC=Y;/P`n4t<,%-9/Wm2Q)Ys"dZt&\>
+F2Fom9+7.emh>=K)J3fjF7!\`Q.l<AiLT>iLgGY[?atf,j_XgdZ.t3M&4]^$ms>$Mr(,C,eLC
+M\tE,"ZpWLTXH6-(2@ob&Bsg'(T&Ap/;!SYLu*L+BL0p?g[fD0[0]((H=:9U$],G=`8Y8$'>[
+M>/+Grl#>j0]E#Z3=J4sfBH:_uDbr`UDD+nV>gXC+Y[3akhbKJP#1`.)O8Q-^DF247:3LHbRO
+o&u>lAX'\q'mP8VAjYd&>ggGZnTf63P_sa#uefdYBpS;c^tKm#4BNB[G=>jj]c-N\X>'.gm87
+YEfScp2fKPqM%+J-B5k$++?)!Bo>LpMJOs)n2#mUVzzz!59!DpH<eDZ[Ymph<g7h4M'4\.Gs\
+O(JrjrJD.g;JD.g;JD.g;JD.g;JD.dBfRG4n$`ujiWj\WFSY8S@$7Ti&9Oq0p?J]qpAt"8(Y"
+#[kDQ5UqTn.I&80UN9E<J5>%Ru^kJC:#Ae93]cB8pcSM/!^#c7\AY@^T2dE5(%^1S&+[<!cjq
+L9/CU9^L<M5#6%8.XeWNGm;-N_7_\CC?%&9^e8_+;'o-1BMdI6#b=CjS'^!]ZXoTZR-P@F:#m
+1J(dAuIU3sd>=qWW?&;@,X!G]4qd5<lmY[0rR&/3S`-h(@\<"k8[:a)3597.[1EY=R?[jOV#4
+9_\NVM(YgJ)k?;@S]l@<ss(^9r^*$.\D&ZD;IE6r#CnA.lu2RQ(V&rOaXrW,d"&*RV"oG+32Q
+>CQb'49hIU>4-GIda:i=#&nJV3%!p#pq`M:V\[nD^nXVM"(R`aMkLlYjQ^5n`9'I^<Knp1QHS
+fBl9/pihq^OjJ%g$JJpZ"BDn^6giGg^%c5I`3SmK_5GmK_5GmK_5GmK_SGr'if[ftSun;f#8L
+zz!!'MH0E:r0K7EB_G_*uLS0Km!oEM2_ht+h\j2ZWk?$c!>>U25K%8>`4@2+>CQjD*!<+KI$k
+')VOf)RoB02,FNAY"o$S/W<k56Y1m(FO^r2gm7ULEGK93l-:e>mKjM'V(PSPa$V6AKSu4L/K^
+b!O_m!CAS%>JVuNaD1"M:kW46,iG@D+74FVJ5De1V.CI96,fM56N.c*:qXIG2oqu/\qSd-^-H
+-H#(sC%g[$*V`#2jdBSL\YLE*"+9&Nk%9mKfD]"SW$pM?<hYzzzzzz!!!"Lo+:]5c]rrKLeZk
+65?I[^zzzzzzzz0En-er%=Wb;+mg?$)Xnk:_>JtU7*;[NYq:<7;oIC4K\iSA0I\X;g%78a0p+
+gAC2*L/Ok.M1N,5(HEkk]Q`R$@*I:(@[4)J0&H(A8WbL6i=8co5%M^P&(s"9EBB6O2CF7)T`7
+bn8lZLP%N,NQ_'Ri\tRGRD.iFCQ)QaBp?8Uk6XA_6EZbd>>:WN@&?2Vo@]<h!Jc/nS=fqkWfE
+fiQ]^^.4'hPE#p"V]3D#1fm^"F7$u[F2buAo<FC<Q`8\`!=.+DL0ud6:qme$5<6nrOl7Ij+U]
+("7SQ(Pn8#V2[TJn`h<@H\86lACUu;L'ndX8M$^DcIGcfH$Vpn1*#hDo'KLe9c8SPB.2DX(8Y
+qKF5^@bDX-"t]:fP5.7A-gJoU*.#92ekurM3;88/$kK8,M"T$Q*=<`['6rpK.)FdC.h0!lk)P
++^u?$2bH;`!Xc^.#D5jU87A2uu=.A+W8NnE5>oFAF<2NAAGhea+UXN:F2j"fp)A1ID7^#@`6"
+NtkS*qKVk?Ka0!Xj,ebb']!,e>\XGTrZ[W%HZ_CT4rQ.Taq%[?8RLaV,.qE*]m!im:;ZlSip*
+=`$a$B\f_(o)f79'1d"8?#@ft1-[g'D-V")X!_X4et&g'ESG3jM_pK8f(;k@1r0m6Kko-Bf",
+\Un+n8CH3r3Q`d8l>[-95:1p"-?O&"QhQ(".gQ8GhC2F171CHdkf=`'m6pUlrKl=S.?d>MaLf
+@tDTM2((Ve]*%"BXM,OCJ>J?*c*/RBS[0okON^?9P0SWA1*!o&E0FW9=*2?[u1lK(=k4q,^j;
+UM.B$e2OnFf5+AJ7Mffgu^NB9;pU?U(5h$;W]54O22fIra8P0`PS9@bD^TC].A5tF*0C^U\-1
+BpDNO-?Ac-FT%*d.L?go\o/*S$YBI)b%=]n"gSQUSKF&]8OUn]cLU7:lA=V*hos!8u6uIbqm-
+<3eq%q(S&;F?%,'3KAMeRLt[b18l$7F%\*F4uF^[`n7Cq*1*&Z4Csej`I1W]=q_=1NUE(<Q,R
+/$Or^LcAuF4nT$rM"ktt3pG8JLd]G/`O;'kgGhMdRj`T3DJHFM[;c`OSF(fX2mpS'4-1Y"D/X
+=,>S<OjcZ2T&+o208WYenQ]tPVCI1QP&uir92+C">^95Os;H7A<2afZ'$'^mQMBCC`I"EgF9!
+=Rggh8:epZI#?nFG`p'(r%rGFmGYC?+k?@ZSmG+aPmbc5JBKpgXAj3b5J!S(EkGd0;nD'FN2M
+8gm)0JT5^r2]3IJf"Y<r0mkb:mhie)q5Ge/%p3;+;4^e%-5[a-eLn1qBfT4;h&>5E2#BM(FL5
+=s@kWqj?_9dJB%_ah97Wg[ci+3H8M',kPU\UPGUiQ7*%d=`@#j^WbDn[n&!(bFMp`4sAcM&la
+Mf[H0b^lj9EHVTFM-N91X7%%=;uNFnJ=)3X-H?c2OTo35Hks.h[geAS$6Ldlt@U(Wj>9/;u8N
+u5R)2]:MRC3)mmnPFH5->?cB30u'GZjcJl-".Mb4]>4:R<2_'D:?]aD/`WWrFD?qQAA%=:!C4
+7E!$9OOTMk^9Pn\",Ppr2!IqDL[Q/J*AEc-@D-V#4AQ`%QNI6T:Jj%]SH%oJbo1':X.Ba.d?;
+]o_<l8@P9j05'YhG9a`LLTcY,amOP7(f$D+WE8eAej/eAel4K]U+W^ma!>,XjVS(+tST[9^h^
+nV9=+<M)F(&2.no/4\b!9JdJa_Oi64E_@/mj30D<71uNrAB7#2Z's`*X"c=Y@eo9;/VW3&d]t
+b=-c1>egeI+te5=2-!1E7Rg%e$1':i+nc;kS"MBZl]OX<dD"eg(^*]U\CV[SR1k\;D)Q,c$C)
+Hf?\5&-'s40a8<?hb4l8pQo0YI7&ucG'PoC-9s!cQtJ)mQMo^&OF[;7X\t5!rr>23`g_TigM)
+5=]Y+_o;l6$?sk6hAD$N&9tE-.Bt4B$j-j5?.hrIt^f.6";POn`&$F-1O$r'dFW9i^`b!Im'V
+A*mc^Kq>#ZA>_fmtG2Rd<laqE.I9&I:M%IfWk$Kprd],MA%bnjl/l[qO8Y(dY7d4[Y>NNQ'mG
+-s/.Q1<G=.Yn9Q;'`NLa0EH@#M72c<7j?#c55?@\_L9FDcVW[lR0(g+0&1bbK,-'",>uq.K#+
+d!!msPbeMg4]3Y,[jDQ+rAaHNNQ"gu>@4K)S`U^g+&K]M+*VQ@5-A?"9$Q54d.)lf%BO$oe#d
+m[cpA#F\n3AFiWA`&dl/<?U+o<&3q8dqS<aWhDYZ.e^Y@9iR97;arOk`Z^[FoHbU3]\Su(7$"
+mT]s8D7uRcn%)4bhn6Hm3[];QY!k!G`DXe.Se-l?XzzzzzzzzzzzzzzzzzzzzzzzzzzR*%&^m
+`,`d47NWbJ\.W+p6f>bh19q7o;A>;n'QdJKMg6t/X<"%GFtYkH4dp[Pg>uEYOH#sHuspopk7@
+m)lRT\:toPD\([.kA`*5YgU#hf-HuceRrZoGQ_Sk0*n+Z?j72<B%$loV_8Q?n%Yt)^p"*OQab
+>Tg5("\l>L'#oo!4&)ScnN:H6]qk2PoaV;M?/.b<ASmT>eYO*i8d-cK/F!Jo)Mq$US'#F!JB]
+?VQ#$Uc&BS@QTAWnsQLPcG[K@2:V=NOHJ&6iKKd9.)#;3fs)ZSW4'5nb]D6+X1#plT0HtOX0%
+_I63^Jc7Vm4Toud36LYA>SqFIX)[dI_1qQo+*W,Fcs<78j9S+8T9Ff$1TXJp'mY=iUd;NnG@&
+R/rp[A1'+gN'_:!c!&p#"I$pP/:[V<;u9PW8T-@MoG3N>!L'BjA2m92YSt)=PJs;*e*D3<,F[
+NelgnnC?pl+oZqMH`>7"4PX8+ANlm(^Q%7T&5*_9&\54el+a&i]-SnD-DH^pICtc@$-Ul>W\X
+F;dEb=.WEe83kp0MRTZRs%N:Tl[KIf1qLp.Wt*dUV0=hko8\EB;SiV&#Oa1"X9'b5&=REao#a
+3Ep9^7=t,J`j+VMWKWeeS!BQ)1TG<j^RBZ2gRa:r25taorUQn26&]9Os3cPccX*0MDG3&>U,F
+f/F";llD&8fq=6H(F3,8FJ0q1HiLi))d$D58G*=_LT:W:,<oXL9f3SSAD1ppAUka3q)Q@tj/9
+s6q?b+N)WEco+@m=H&'Ue5MpiPd-sFhR9]cVAm_HB`"I>Nf)(;Rqq,W\[2jLb20;cdf,N9"@F
+K<`,@WSI6gRdLJh;D,Atc;'/BkXOlc8jk9:#oXHNQXcG\G0i<[j>`IJ(!omD>D`_\o;89"($u
+8b=;^%I#&l@?7B4*"PQ,4<M^2)7@f@-ht3sC9"a_MsXhrDI-XX4hYM7`?)c#_d-Vj2ed^-5BJ
+'VMnXGY5B/^DZWg`l#U@+!/-l5(>%OD3'-NIJdUBp_F:J+&Eod+.l?hLVY(Jrr_9E0g#~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 416
+%%EOF
+
+%%EndDocument
+ @endspecial 396 2580 a
+ currentpoint currentpoint translate 1 0.35 div 1 0.35 div scale neg
+exch neg exch translate
+ 396 2580 a 229 x Fm(Click)h(on)g(the)f(drop)h
+(do)n(wn)f(menu)g(ne)o(xt)g(to)g(the)h(w)o(ord)f Fg(De)m(vice)i
+Fm(and)f(a)g(list)f(of)g(possible)g(printer)396 2938
+y(de)n(vices)g(appears.)i(Select)f(the)g(de)n(vice)f(appropriate)h(for)
+g(your)f(printer)-5 b(.)24 b(Note)h(that)f(there)h(are)h(a)396
+3068 y(range)f(of)g(serial,)g(parallel,)g(USB,)g(and)g(other)g(de)n
+(vices)f(from)g(which)h(to)f(choose.)h(Once)g(the)396
+3197 y(selection)f(is)h(made,)f(click)h(the)g Fg(Contin)o(ue)h
+Fm(b)n(utton.)e(No)n(w)-6 b(,)23 b(this)h(screen)h(appears.)396
+3476 y Fj(Figur)n(e)h(3-5.)e(The)i(CUPS)f(Admin)h(Model/Dri)o(v)o(er)e
+(W)n(indo)o(w)396 5084 y
+ currentpoint currentpoint translate 0.35 0.35 scale neg exch neg exch
+translate
+ 396 5084 a @beginspecial 0 @llx
+0 @lly 621 @urx 510 @ury 6210 @rwi @setspecial
+%%BeginDocument: figures/cups_admin_make.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_make.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 510
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 510
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 511
+12.000000
+622 511
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+9a9a9a
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUlZ2!r[Y6#VRWWdnaMtG"%a?0=466@tUf0^alF/aaCJIGZ2Ad%;a-QpfXLj4b/saW*T)
+_i#!C.sFTJfUUW"%5YC'4-Zg-@fo2GapY2ITGNk-kTaaW1'N($,!u@YE@(0;Uhm!:GO`YPcI-
+e[F]9<]hW'r/(lEjIX?`kJpR'W5(9*F#L"6;1b8uCHNBG$2Q"PGNanQ;M+>L#l.]oG]d%&/F,
+4Un7"b8q[qB@/)7UkUK;;DD(nca]e0tLDrqFB]9$EV:O&RgK/>Y@jhqD6,A[K/BWF,@ESKK9g
+>_%.0gTZo@m"B&MBuBc&IjXK#3%h^*>)k*PgpQ,7FYW^+aG/s;2?p]@T/=\1Q$J.`[3iFg\lt
+GR9%"2YUAgtE/NADK;biZ]I/,LC]*UrCD#%FG4iAI+JPJ&Hro%j61B]Q^S45':g6X@NSEGSRF
+n>JL=)P7nI6``-A[Rd@1"`Ni$,83-)4'V,`ugm#-`0C&/<o`[*_ThoZTl-QlUX06Z(bQ5]*/8
+:`FWn:`H><e->1=[=NXOrVQ_i(6<p[&H#B.,PPk-$\!H:SmH8p^089%O)C9s?U$Wsq2*WKJ;#
+rKUYDVu&m;\Mb@e8#O)F%I_M1#9UYDVu(0N"$O&=Z0ioWdrg*Dc#o-A)2#:Zsj>N/7kl^K,Mg
++<2;4*SGgrD8-Cb&drJ&SdN%*=4i<Ap/2Q[:p]<fFOl]D-aXM[JnMCo@M^Ec/4gUqU@FMPKM4
+t:)1a%Shi/adug)*r$JdfK@]nLepZt8m=$W'bI-roc/4gUIMfZcU,2I@2g<lO2Yh'k=UQ*(`[
+(01^GWHA7P7^gk4<IY"@F-ANS6kV2W<PJK%P/)iq.['NLh.:1#;0<:hlck+'rg?kC5\I^NNne
+Cj'@=d7Q([Ue`"o7Mgb'r^ghJ^36N]m0>d%2<VX+G1'PLA+5l<Or1OFT;FN3Np]HaX2XpU"@M
+@RD=_TmfNZ,C/i<HU#>t7AllT*/(^P24[=*IK[@NT:(>\i-Y@-%HEVOddokCL'D9@>,:b#AHB
+6iq08U!7o2n@\r=^reeR'7u%1#TAe_?9)nq10qPBA2E]SRn&))BX.#qqXhC%oo+_$h=k:/_le
+t&t;tW>)DWFM_/&>+gi&#]\M_&HAl^[e>@OEWTEh&p$nd+PO<ThE;H[b[_cNN6"`?AY\.$u>a
+`+R.oQ0/ah6&s<nYr.?>[DH'>hNGh'LOEHaR0HLIf_$3--alrfX7?7V;8O7[G`j$%;hjC?s0;
+s&oBu,aL#f@pi(GAP]8p#:B<hA`M*=3L&*Z<AW3#9f:7hMaC3Se`P59kgm@7K($Pi5mX(X"Y0
+ed\3%6)fT('Efs]\=pH1LZCmt_/):qe6!j4H=#KhYSF)`O5=Bn^pI,%3J6ZA/X4h'.HgpG_Hg
+4$.gQYJ^qQ=iopD.8WUFTtiMJ"nZOg1>9TUN610jS#S9R\,MtS<U(V>BfDIESI_OD!m*:Nk4*
+ce(/rM(TT0F2H*h9Alrnj88TZXASS"*.4LCNU+mF0B0d^lX%h/CgTRI=8r%7fWj^Q![*e*j["
+YJ`Zu&EQ8o7aLo).`g>;dj?C,9>bEoYp3P89ELXg&bNl#jY(l:BOi1QSt`nVjbjZ`&j&_m8);
+XYq65NnUkqN7^Hm]&$_sD6Z"j+\^T@Kl3s<<aKX8<c(HHdbQe'HVu?&`NC^C"SSfHJ$-;S(<p
+"JGdUF:_JUCe2LaF>XL?Ko8Xh%_LnZ0keX!#He<Y406C*3f6u?QoBNlsUiB/QkFd(<ubIHs2X
+Er;i=hRQNI.m3.e@:cFS\rlK3[YC.:Hr>t-CX"k>H<%d6;8'C<,I(pO@ASM*fIn^_6(0Q^@E!
+c$VBs1%rjoZGq^DZNG_ng_L'el%)OB&B*N@=i,Ta1]n>#S5HWSTHJ:))[uT+L7Fmoag;nIH//
+B&bV"Dh9dQ+:'A+I%2bOV0&Z/59uH*:ElB4^((b&l('oK!3E,n*I<n&])-D"O[nr+j"F4<*&+
+<OlNQ8GB&6auu_egY0bDY4%[iF19nH2f!8^g4",@SZ=F;VV:U-12k1@Fn1PS/98mJ/)DZ0g"!
+mW>4oGK!8Sq_k;gI=E**%b\l[d9=8o;i>%o'a<O%h>epj<6G;dXjF%G;N@)nC@E.=@jO\f%oj
+*T3e!c#&(c#1ZomG4<:V7$i[n:l@5]9Kh0j6-gE$*cL8_`kY;9)Jlhpc\KLmr-@DgSMj[Wsq0
+%nU!N/,J`.2,G*9ehh:7Z)")I[*aKoXNR?0oX+#*En(1s/Y=BB7Ht/+Wr$.s]I_FIX6(g+iKT
+V;LSNFisH*roi5]'m7.in?mYo*#seQ*.][=J@;F='/Tr\YPRld5k;hj>p[fnP,A\j50mdf9@J
+zz!:ItkII)#=g>bZF[s.MFI]iXHJ+1s(%kh""mBY5"dY^\8hXp-g]DEjlcT$/I?K]nn]@)uDE
+H5!5dX9WGH[jeKha\J#4HM)[gSVI#<:Y'mUIt,B)^RMs[Qg8!<3[0lV?^^6DmnQ1?)JLmAtpo
+Hq;#`=[`@hYp+(fGlYboUNP=8/75G9t1W"3=V\uijMe5DUQ)5&=PQ$^2_pKaqp)\AMrat&i`8
+5@WWJ)'\g:JE)8b\IXd[_$+gS;q$*f&.uPd+H"CN%W2e2D3'VPaSuBmrBVNbg?u[FFh'Ctg&X
+7+5ap8MaJT05jS>2F^V^gMWP.bhpG*N?B9*L?SSa4WLm@cbqd?eb,(c(Rt[7DQt^_d$GYT(6"
+`gBJBuCY,s_<DW2l.2Z)2Aj*YBe>:C*$6-icG#GL/;T2H2r5IhZj.K$m5AO9[UOmufT436/sI
+mp#_CRQ%Tn>:fiH;P-i:<759a=D/0fJ`0CJH$e9BC/p(eb/2Q(>Og_j0V]Blso0F[_8;jCF[>
+d#J.]:[Th3aa,'hPU:d#nI]a$R9(CWK*]E0G/HhTX!4A)1Wa<.&Em*Lr?5)#1Odhn[^6ojjR2
+Dm.[-H:;3k++I7qXk))ssdh;Ph)#ZJ&7_9J\l7'WiA@3*`F%pYIrXE'(6hD(ND`Z!S70eU/7I
+&8s_nT3O$!`3GC)'@2oaS6<1<NU9?qj8D_7m8V]!)4A/U*>rE+[;E$CCPgbKrS+o')u\O6_a.
+XgqG?uAV<GAaE%=+G<'h+o]%;@WC-))\F=Ojs^Ie+gcu%MJ'E"Y#P]P@2[ND!fMiPAqeVDnN!
+C^e-h7]df@h3rl@]rJuaUIAoIio4R;W<r>V7+X%EM!`qXcL0YcXl)\"L@^:E`#I"25ig;U$>$
+IJiYYUGP/6PflttY@k=gHSQm=51cm%UXaW"B\'BqVFj.SJp,6p`mOO0TgpSHXAo:6:'jSG^Ta
+LP^-Cq:,6JpSR^o?]4e95T6fU@t?dfm%DNp=\hHS;c]pDmeF59K7Vk4GfmTXR(D2MgX_Sg85RA
+%\kfp`S+/74R,,a-64oe0D)Z$Ec/RhU`u,H`H+MEHO19GFaS0TR=4$dbn)tPHKp?iBeB^B9W:
+rkXU!S^\cgP.Nar:+V[F)DlQQS1p*o@?$':RlHNt\<*Oj2.e>=#`_9sXg%oRYpq8CkCp]h0r6
+Srd&2R+=>Ih#&"FIo4Y24'Qp$14:%2>nP9Ot>^f(PF8D9hj$%+gpiXgaM%D/$\l>&dcqS_:93
+riCgR1MlqHj/!LY+',bO>'6[Mp1qK?qP0Vt)#p][[i#o$F?Cp62V^r.XA_<q0`cE%7s20r.D<
+F8")A2:.amN[65f.-5u$PQ2FfBYM;:j`Ne?.4cb5l>NC_LiUod@d%FMPckcP.!=jbbX*91'/R
+l1L]QhE-qTdMu?BkaIUF_"NOO#H-dV'J_f3cUUmn]S@eSbE"6>,n^TQ9R9>GH6lf)PQt5eFfV
+H9E'V/7:5`2_-UNC>.2/&m1jB=Ok(F;lZIPnVV[3OFIg9@b8qY*MY,i%Q$X+_)Fsh55J";r4h
+Ugag:<u2\n4Z/0hE>KM^2%IlqrO&mTm*k@5_cbXRI*IjcMl_mX+9j6).7_:A2O:-KdPm9sP>O
+-eX58iAGh:Z_nW(][.L*`OI(WH9Z4NN2/4'4?bNc:#0:IT`Nl/GY!ZI^*haH]Bf<!:D+/>_2Z
+^JVHb'YQFBn0qPQ@,TBtjraO`dlXr,c]ku,%7kga>&?g+qZ0ZD_tZ8Hb#fc:Rb6M?F7^\X+S_
++SQ/R;LFGs05u]q#aX/g1';)%-L5&Hl&NYWX>Nlp1hIO@3jIZQ0qA>OSdW@i%U8RhTi25LM^_
+s[,uJDfW6'?<_*6aj#/FIG/Gi:OhTs:qK`i:?RK&lWWE%:V,B@aPX9Iq`+-i)7VV:^V`&JJI"
+gUuWQf2I'XVK/eM'4g,]<[khXEAY[b:)sADUO/CE7N5bU"'ARji+HDT3-Tk\.)nH&KL3KLst8
+=jg&PcS*<!q3:f.?dpjnfUj\P#>mN,,`FC;(!f&SB?^k2I1-[M/;3X=CoSHS)N0'-,0bu^.)a
+u3/$7@I7BX7rB\Sd$PQaor`qE7"rRC*UMles:;(ap$2cac7GLuHBhM'Yp[HU&$I\Z$V>#JQT1
+Mb;p8nBCE3MbsRGMUBACqUO=D)5t09kN,uY7*33E.7^77^R#l[iVZW%b.p52(EudZOc(_&m%W
+G+*?9`\T=H85mDdiW+1+4@=3?p#>uKqO2dQ'IGVIg%,';]Bndl:[;@:'gC?=r8HDb[+Ebm\i.
+joLg,>c_?+HGWA.;oZcYW@'`ALh9)g=g;bq5NTRg%N'WFDn'Yu]?)\6GG7]?aNI2=9_ZAog;r
+rapt^cQ:!6m5<V+;e"LiS#s;eUMY@ChC(c^>Q-=GYciFDDQ:LU[iO7oG8oPI.4M;1%cS<V3+[
+8F)tP<6W_0M>G+M`<=PQ""+8p0/?!ptm0c)9/iZ;^K-FJT][NmC%KeO85mdb#qO!-U4[OIoL1L
+%I:&KANC1oA2bn`]l@?=n)B(*_u%`5$Mk@9V$LSCY(6N,>=kj49\14Y(qZg"i61Zu$%tWAO5S
+[3O/&p8Y06mu#Xe;e#.'[Bjh#nDU6X-YD+,9cf/X=u.7LH.,\h)o(W3)`=J?$V2c><h@fkgii
+8oX%Rfb`d)Z)Nd*Rr$)5be_/%`M(I)``pNEug%,![p8UAUoR;%'DK#]/(?RSE81,Lkl3B*;#=
+Wul^RGT+>_!POpA_VqpZsh8;\9Z]<E;(D`V)bRo;[SkSIN9rIB#F&A8$sA+c,\5S7i=+J`f%*
+:Xnch8er4I(j0k_pAmFrkY4SXt&FYCkS<R<QG!4%Y#g@-=He#N9o$j*l=hPZmeka\&E-eA"/$
+A".8P^tA-DhIe@\a5i/4lPq2A4"J/SUQcM?L+>d!M?p1=PbNk+&/_Me:eJK!DDA$ZQSFYAZ2B
+cGlm82M>4\1<o#5mGp@e=:u_9Ia[6_Cdns`ULlORj5o;IFJ(5M5]%UsQigZ\Pf*2;`j+>@?<r
+Y#:=P4n^Z\+uf55JRh2dKa[A/pK'>7]p(YdQeVKD00Ouabq"2UU>c!F'tKFrB([S6r`Hg9/ER
+H330#R0Z+5(JWGAu.`30Gmb(6Rt-QN0j'7YF03`6hoRq3-L=Db=sY:Db-e:E>C.uSlUqBGtrK
+=l$Za>3nuI[r<O2Oa54qN,$T@1QdU?Pm'koQ%7a`AN>qkhaAftR['9kDM]aT!Uq@e?5N6cX/V
+`3(k]WK2?1r)Y9c9?/-q74Y5TO]sc]<snYhF8)j^b'-=XQB<A#u*4mA]PBWL(,6CBWe?B=ZMe
+TdMGSMMskWLPpj9pt_9$KXd(pW,L<d>cPce6sU-E:MD45dQ_%F]H90PX7'0_].Z\&Qh>e+\[R
+f5%IO.PB1btN[[ikaV'aI\S9A'IoTg(e5*e!+FP%E&dSEj0rh?;WXn,`@G$:.$Fc8a%@@ilE:
+N;L?F7Q#<JpWZi@Zp/`:Eu^p6WQ??)XFZC[S&K@2,P,W4%t+?:LQ=\V)P`rTk=M1*N_1N&_X-
+/[LL>S\4\j8AG<+'BFcc(q+rR<r_pf2l&!c+Br6[FRuk1/.H#2>/GkQIoZU0kA7,7FJm\?@$u
+WFaUt1tL%c;u;,!.*^UDiICA[u7C"&1YQb<;"\)eK#g[M7\&WpSZo2)!^unrHDIDpUsR1)ra1
+MO1C+_PK"IRQ4\afV3rgCUPUg2.tL_?)SjnQ1B$-g"Tj`6P$i#pOcIe'_KX'OI#aj68PG53i3
+D/iDGQ)%.#Wp5441hdVeMEr.c9UcU5>0b!eC<2go(;.oZ`);d[iEa6fRCG3T:R!<<*"zzzzzz
+p`2o>>>XcMn+A^"++F8e+I*Mf#4=rmbFgb42^YI4JD1W3)lSLanhS?D+8q=O(&faI"2HaLg8L
+m)ZikM]B-*Ufn76'5,+<8p\'c,o7[%NmC'42SI#gf#[=NZ<oHg.gE+cgkTJgb=fZH]B-Z'd#%
+Eo$]Ajg?T6&iR7_AN=Rzzzzzz!!(o?(BAc3e3I"V2Gb!A%9*I>!u6C>5XceR:m&n8dgsL>2s-
+\QM\l-<8^u@G\?E%>RncNCL7#aV[;B,E>NVLu$[9C.3#M81eJb\j$Ym#_@!6:/UsmjPf$N2]O
+)1\"6qeBIm4QmhS$bOg8%)+qG6fifD8I6`(]X%=?UE,t8t>i7p%FPq$\hMDD>3+2C5XhY>WU0
+Y:tt-/(<o\N80lBQMYa16OMFhs8M!]mSTpsa?D:StK62G1-*_LI$rOblAs$68Qf'NoQ$FVF/O
+][%Uq58d;F+kG/GpoE:i4T5#usgV$OupKZkrb@(T?_M4Ap"u4Xj;GT.dDl=/r\?<H&uH8TXF:
+?qu#4DH5HPosWMHnQA1t&4%(Br@=B\jsiF*]^R?617aaH4$gNaGc3%oZZEJ*T&X,YjRXsRg-@
+f==5,OP/\=pc*l/7oHO@<7Dnmo5KA=6ZAeH'D"th^$fH<+lM&F8:_1<bAQ5T`'zz!!&5poC;%
+=J8`b]@bX#V.,`i)KUdf,e-7N+[=NWhD4hqH)lO"k#3oXHB',=S)n7h-A]"C3D;_!ND4hq9D=
+0Xpqr7XK2D?4=ACSU*3SiIVD;ZUP:MOGgg^hm=k(Kd0"N(GOJbc!S'4h#!H.i8+JW'<r2K.6$
+'\A;tTJeJ*ge.Y?JD*7OTJfUWW"%5YC'4-Zg-@fo2Gap_%FdaugS=aC't[fk2HqM':`HorGb[
+k<Wj_O0Q=*Ha)n6(q&tMH)kI2N:.>jf<>#60JLe%]6X3J7DD;[l][F)-UA83?]Tf+SBW]'SG(
+"<G"-Q0D4!M&'<`l;l#UP7F;FQf5o(=gE#6>bY,k^"1R;A7"4,q#BEE$`#\!9sTmJU0RuTH6o
+KW!CfVl2e;DH9c>?*`*fS8%P0fn3)tQTf6e]o\.O(bS"Xm(J/dK-9EU8f/0^k^!m4#"/Fh!ji
+JP<U=ob+jiabFe-7PBpUB6G-d-8bh($nY`\C)&a]DP1D;[JMDTZMQUgW2>Z6N_g"grpOoT%Z5
+C5[Ek7J%"rJ^K^*;i8F6T9^6N\j:2k,()<q?Z./rB(+@.Op@GL2DBjNmj04i`'A1t+ue;f_RL
+%K"SYJR4eO]0&#]re")7r2JD*7OTJfW-pn,8nccYu8k!Eom3rRq<;Vk.T[=RX8^BmoE:NU72"
+mZB#JW%nDdcG3ghl.o5oE;RQX%Cj-I1n*[#%f)Y>Io;#C'1firseZiD&Ba5=\.\Nr%/f-6#GO
+<pj/D<cRmW5PZVi+o72/oTH6oKW!CfVl2e;DH9c>?*`*fS#LitC!O[K)OO[XQG?&84<&qV.$a
+kPDn2j]nY>P9nQ%NZ[C',::<Eo$R7fmE-2^8s/&XeXW+5]m6(^^)3OHPRW"BX?nIpIf_^dng@
+c"Tj:D.$r_j#1$Y[gi8eAZ-&sUoZJ:fK6#@%&-3tm+iYI]LfQg-G<QWj14.KnI;mW-E)n`Q$g
+]!JD1!9TJfUW@Dq86Xlb9OTDdii#do6<+_pW.'''=5"#D-We@[g5a)pGD[=R'UC(hf!D:'0L#
+%iC0RXuM;kXiV'#iT?,[:XjkAdRCHjBkK(q6>1C%9uEfqqE`OjTj9>XoiD@omka]4if7uG_7'
+t2K0Ii[LHsRG6)F\omka]4aR)2%+GLL!:D.`H9c>?*`*fS#LitC!O[K)5]*/8:`H><e->3Sri
+m#]Aj66Ehr1./nK1LlD;ZW9>:6a14JMlE>I&1D8cC_0e-7O(<a/NC;k#1OK_%L'2K4dPD8CUr
+s6lGX9aL"a[=L%XC*Wa<;J'[%-7p7a6#C!<4gp>R1"*02OiS"q.@<Bj42olm:`CL_@?pm?;c]
+AYF]D<Ys0>t0%:#^u^L5L_2R`<KO.nk;%?(>^&jSUQ2Gap_%FbJp"8.2u5Wtbu:_0K6e,sFfo
+n^*/e$WC'q);<:SWs'PQU5Os,lGqfEefO#RiAn40;1:C%HRPc$*#8N2ZE`ke,K[`[=PRg_5p^
+;;"EF4ko$E/9IEi0kYW;n-FjN6#"Fa.[_*uQaZ$#Mh7`1@\"GWuOaPrMcOuCT62h5!JPd-DUn
+nm+%Eq)OhSrpt^\TRt6>^*M\<d3\!O[K)5]*/8:`H><e->1=[=NWhD4hqH)lO"k#3l5sJU0Ru
+TH6oKW!CfVl2e;DH9c>?*`*fS#LitC!O[K)5]*/8:`H><e->1=[=NWhD4hqH)lO"k#3l5sJU0
+RuTH6oKW!CfVl2e;DH9c>?*`*fS#LitC!O[K)5]*/8:`H><e->1=[=NWhD4hqH)lSN'S%3cc;
+8BYR5-[Cjz!!)pl]_qBq(&[[ok^8$Gj5h2Y=eI]-NW6UsCk)K`Iuhl<GUdSD)rq4#E'lRAc4i
+s*kXOItbetdOmgtO4!I,MhR'$e=\f`jI2_^hQ$F6ra:B%BQoWe$1rXOG-#laGZ14X#2@)SS2V
+"EIkq`s#bQ%E]YW9nN'[_JLoE&6+FNR&sn>mBdL>]&4L.0Yq2-]sn2Uc+Y6UmNHYOjM'Qh`j^
+os7CA158h`/Uf[WuA%B+>G*,:]!'Ce%Es4%F]CMU=fPq$DK&)Za-J0aWzzzzzzz!:W&nn:R@d
+IP)i7K:eQ\zzzzzzzz!),^-"s4!_`,"V%0[B<ua&U%\L$26nB1Io*8C9q1E#r'__6X\-\k?Vt
+*lliSP%E#TZRnX0S=.uuX1_X"a\,Z5`<O"#U:2T[3=u,EQE"ZSPH4\j.D#p&=q%2BZSV0GfY/
+cS\AZf0%f=G@Kc+7Pr[@]1atgZd8]A`_-SK2=6k]LEC<Nd=6(_kN:JtCQ>&Co1m]AC`Z<U)3<
+;&oZbEMBpg\;O5`gnqSE4fHOV5fqdIE]'fkaa.4G+SG^]Y@.j`\TTI2UVbm5)%^u@/e8Nk)4<
+lTamKsn0Mi?SqUP#-+1_9'Zs0t>!^:TBHdo3Ga<5<QH%;#+q62JHM3NU8.WOOMFJbPcV9SW=k
+-!Q450GJld+13C8D'X3Yu"mg'$YlF/p][.f>:G-*fdm1JO.RPh7530S8DjYO#t8qZ[P)jIW>&
+a]5T7"N^c;:TQ1\Ad"0SN(mt[AW8/H)4FoLJla5nOL021:D?Zo2RMCkqeR2l^9Y&$,Wdms5qQ
+QQMR44"2?gMa#3'LF'pC)N:j0\AM$T53'1OHIKX3gV$ZYaJ<*f_k=3h/[OhktX&e63AYM*Z5B
+HbIi)k+:<[\QU(m(I0**=1mC88:l6g6d"oG'(+F\DHd[:XiDr4&pQ8[aW54Bc?*/l(us0"]Nn
+dY"eB;f44u5oCo'F-/>CVh?qB$9n-<=@C7u*GOkI1<7Td0UlKk<'-m^qjqIQUeL(.8Sen_0ga
+j;cH;SPGHCM&qd?#'@g:5BIXgZojehhC1_+(_^\p3C[/5LW0A7R,WFu%\P&Pi2-1olUX\L=^q
+@33=]V!i+HOj#5jJeJU08+SQbZ0[(?QVKd/qGremLtY--03bI;eQ_lcP$GseVbL,oDsK!!196
+hQQ?\\gP'?K]c:Qp*ACi/0U[6m#C2KQEW89]!/(W!]!O^`:M0'U[]&,C(]A)\Ao(JVqLN3Is^
+n[=1hnZ?nZ:PN$0GLa53$I!k%/ZtW,<X6!WL-5BQ9IP0e<51t'5p[*irYF0VlZ!S\5+SHF+V6
+@dC"!QZP^nmZ2umHg8SZP:MGL:F>'!Y]8L8=?4(B?W01_uCrT#C-d".rrQTA<27M#X@o+nRh2
+ARPY#O/cBLO)cV8@X2[2CTsX]a(JpJtL,;o1feh*tZ@o=YrE&^1Zb8<0W"Ou5;/`(Foh]DGQT
+Z#NaMfh*u)fPF*-LJjkY+)&sj&uTNNhR-cUj"^MJp9jDOgSIuld_D3!d!kV1c$XQWr[d[&cVq
+5+kG=*R`>Kk9P$YW)"X]OoYN+Nq[F-WC0#>&>:\Pq>W%GGZU5UE%Ve%<eNf1?-dH&#BZ88;@I
+d/S3'3Pm]>9Y]mH_5,LB`HAGjBe-fm:@!gOr,o$&pgj?hS[_r$^<W7,^<">^!,c'f17BHgPoL
+kT+LH7#qEfDg@?jL[KOutdq$='OldT)#,CQc)bhm:)3Uk]?c2ggk-qj`p.9BPBG?)6,8plCLe
+;'c/BM^"/Rl)E50EZWX#>1?-P(n_0M1[&b.15\Tk9,"/.&*(m[8s,c_TfOe2Am^V@>/9?9=RP
+PQg%f=;CES&3PPrg.6sd;l2J)m1K<lfml<?UUDI+:1WWN6#BkFfk";e)teT:g-U1giq!;Z`og
+P9=B&TE4MRW;TWEgad5G^Y\A7raL(mR\J[hii=\^T&@C7D,)c@X(:/DnY$58_Lb8gE/[Nm$%T
+!WHN%'+4dgVu1#po?U5Ih48M[[3cZFs]Zn<Piqo7(FV-O`Ac,1dp?$]JF(@V-$F^QBdh*.UrD
+AmZp1_@W#>>KbIn.D<ZfJ95:Eb4Fdk7WU,#*VMRblH"SpiA4@/sk"(aa><urUZ4/0;E@IX0$-
+ed2952mHBOh._GcuOS>D`;1pr6MlHLfg<J$nrKlLK;kTZT&*o3>`LrU*%9*oYUBWmle^4obS5
+fpQtU`1/t3R9"A&lXH>:@pgQkUt]uE9tE*-CVBpUj-lL+R5+tai2P4LCSVWM%qatD/J7fbDBh
+&JgpW!4\2T!,2'H*6Uj,V>!_ZQNfiA`s+/ZCK!o*Bd^l,"-P9Mn1]9,Cf6tCM"7W$!J@_HXi7
+360e(=,;jp/3?'FQa_aO]4g/q\?mLfY&V8ZX^F3ONW%B-B,fi`c6>Rnjo/Md[MjOp+-]B[?-D
+>72I`abB=7],O&4c1kk6XL`s=*QA?arSiRY:(=.'"r]DK<B[SFWS+iAWg9R6FC26pRkj<,`7O
+E&18->cR`h^R+ff!k[]\:N:/WI!iPGZ@3a.Xm$?okc5M'1Pfa)Ai)E=YJZBf=<c+k#$=re@e(
+9K!ZP[Qr2Yi;4`g3=WRWS07T*(ot*u2Pr`VIkLKJ6SUGazzzzzzz!8PFe!:$fhTFtU.)lSKlg
+K0+m<In?<r3#8[HZ\F1TbfS$9-n9=h:F'chSd`4l27^^$nmpM7qZLk0<"9KJ_Ht$[GAiDX)5O
+VG?kH]4UY#%dX7.`.T`0d3NJM>3=U-qT7;em@-q&1UA1A,cd2Xjp"*OQ_1hFr5("Yk>;)epo"
+'J-Sciud3[;.p<i,.`;RrB#lRiS=hpok1Su)?X0'-HP6JU:M(5.]Za!9h2s(],d+gf@Q'&0;i
+/mkU3j?idVhEc#)!pN:9*59M)Q-rmG>+>t0Lh^-d__R:!D:S@Uj2[47jD+!+UQC#VW"E7Kg,]
+uIU4_0kLAmcDM/Ckd::4`Nnke(arh6-MgGWVao]ng_8D0oL?+2>`bt(P]<^po%T%*JZ8o<n5=
+pV(o8JpY_=%Wh#h-&F?F/"Dq>ch&is(_M&s,oURg=Y'$87?.X;Yg,Us/'P[5.&VH/lu7iKVj7
+E$S&T`[^?fafQUA9LenAUmJGA]PFbju,d!k[EG]5%aiI3"c%o*K2J],0=[,s9!a@=ZR9ECjD<
+K3&buhDS3:Z+\k/6ZeL"`,T^7OuPFk4"#GBKF!F_@\mVGAbNYg.:"mXgsr4^0R_RUhT>Cn!.q
+Gu*_dVT!.YkP0pLg\n><?eDfb@VAN:NDm;MlW"Lk(i$g-kPCrPB<<%M7Z+.hN7H_-T\J/A-VN
+"C-Ja`O^J)kKP7D&+\V\0>Z#++UCthlC0IK#e(2D(%==Hu3PU/A''7i$7@qsKa:cC2oeqI(oD
+0)a#KfQ,qgKAd+$"6O]Ctl;F5:8TedtOpr/7G[)87C'eUh7O\,icp[<c+[4UM]<oS$JS8-aqG
+18?cr-gJcMWPKH=lkG-2*kt1,b=&N6=J#HhN%!tl0C9nS4F*YIdXQ;k;RcZ-E8Y&V1=GK4.D;
+Ut:T!VE'>BTeF<Hm:oMq-]6(d(T#F!(FRs'9:q0uks&Q%*\CqlW%5"P!/DJ_Ht$[GAi$Wic20
+bh!T!JZ!E-Y*70"MG`-'\#YSIerHY95Wtbu:lhfXZ,>KYi;WiX,E=)~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 510
+%%EOF
+
+%%EndDocument
+ @endspecial 396 5084 a
+ currentpoint currentpoint translate 1 0.35 div 1 0.35 div scale neg
+exch neg exch translate
+ 396 5084 a Black 3645 5692 a
+Fi(22)p Black eop
+%%Page: 23 32
+23 31 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 778 512 2601 17
+v 778 4578 17 4066 v 977 742 a Fe(Caution)38 b(Regar)m(ding)f(USB)i
+(Printer)n(s)820 910 y Fc(CUPS)25 b(v)n(ersions)f(1.1.11)h(and)g(later)
+h Fb(REQ)o(UIRE)34 b Fc(the)25 b(user)g(to)h(insure)820
+1029 y(that)f(the)h(desired)f(USB)g(pr)q(inter)h(is)g(po)o(w)o(ered)e
+(on)h Fb(AND)k Fc(ph)m(ysically)820 1148 y(connected)23
+b(to)j(the)f(USB)g(b)n(us)g Fb(BEFORE)34 b Fc(star)t(ting)25
+b(the)h(CUPS)820 1266 y(softw)o(are)o(.)820 1435 y(CUPS)e(m)o(ust)h
+(see)f(the)h(USB)f(pr)q(inter)i(when)e(the)h(softw)o(are)f(star)t(ts)o
+(.)h(The)820 1554 y(CUPS)g(softw)o(are)g(is)g(typically)g(star)t(ted)h
+(when)e(the)i(computer)f(boots)o(.)820 1672 y(Note)f(that)h(one)f
+(cannot)g(simply)g(plug)g(in)h(the)f(USB)h(pr)q(inter)g(and)f(po)o(w)o
+(er)820 1791 y(it)i(on)f(after)h(CUPS)f(has)f(star)t(ted.)i(\(Note)g
+(that)f(this)h(does)e(not)i(apply)e(to)820 1910 y(par)o(allel)h(por)t
+(t)h(pr)q(inters\).)820 2078 y(If)g(the)f(USB)g(pr)q(inter)i(w)o(as)d
+(not)i(connected)d(and)i(po)o(w)o(ered)f(on)h(at)h(the)820
+2197 y(time)g(CUPS)f(w)o(as)f(star)t(ted,)i(there)f(will)h(not)g(be)f
+(a)g(USB)g(pr)q(inter)h(sho)o(wn)820 2316 y(in)f(the)g(list)h(of)g(de)m
+(vices)e(on)h(the)g(CUPS)h(Admin)f(De)m(vice)f(Windo)o(w)h(\(see)p
+0 TeXcolorgray 820 2435 a(Figure)g(3-4)p Black(\).)h(In)g(this)f(e)m(v)
+n(ent,)g(stop)g(the)g(CUPS)h(softw)o(are)o(,)f(proper)q(ly)820
+2553 y(connect)f(and)h(po)o(w)o(er)f(on)h(the)h(USB)f(pr)q(inter)-5
+b(,)27 b(and)e(restar)t(t)h(the)f(CUPS)820 2672 y(softw)o(are)o(.)820
+2840 y(F)l(rom)g(the)g(list)h(of)g(de)m(vices)e(sho)o(wn)g(in)h(the)h
+(CUPS)f(Admin)g(De)m(vice)820 2959 y(Windo)o(w)f(\(see)p
+0 TeXcolorgray 25 w(Figure)i(3-4)p Black(\),)g(a)f(cle)m(v)n(er)g(user)
+g(might)h(attempt)g(to)f(a)n(v)n(oid)820 3078 y(this)g(issue)g(b)n(y)g
+(selecting)f(Inter)r(net)j(Pr)q(inting)f(Protocol)f(and)g(then)820
+3197 y(enter)g(something)g(similar)h(to)g('usb:/de)m(v/usb)n(lp0')f(in)
+g(the)g(ne)m(xt)h(screen.)820 3315 y(Ho)o(w)o(e)m(v)n(er)-5
+b(,)25 b(this)g(f)m(ails)h(later)g(in)g(the)f(con\002gur)o(ation)f
+(process)h(with)g(a)820 3434 y("client_error_not_possib)n(le")g(error)h
+(message)e(with)i(no)f(other)820 3553 y(e)m(xplanation.)g(Note)g(that)h
+(enter)q(ing)f('\002le:/de)m(v/usb)n(lp0')h(will)g(not)f(w)o(or)q(k)820
+3672 y(either)-5 b(.)26 b(While)g(CUPS)f(will)h(allo)o(w)f(this)o(,)h
+(pr)q(inting)g(will)g(not)f(actually)820 3790 y(w)o(or)q(k)g(in)h(some)
+e(situations)o(.)820 3959 y(CUPS)h(v)n(ersions)f(1.1.10)h(and)g(ear)q
+(lier)h(e)m(xhibit)g(similar)g(beha)n(vior)f(with)820
+4078 y(regard)f(to)h(not)g(displa)m(ying)f(the)h(USB)f(pr)q(inter)i(if)
+f(it)h(w)o(as)d(not)i(connected)820 4196 y(to)g(the)h(USB)f(b)n(us)f
+(and)h(po)o(w)o(ered)g(up)f(pr)q(ior)j(to)e(star)t(ting)h(the)f(CUPS)
+820 4315 y(softw)o(are)o(.)g(Ho)o(w)o(e)m(v)n(er)-5 b(,)25
+b(these)g(v)n(ersions)f(of)h(CUPS)g(will)i(indeed)d(allo)o(w)820
+4434 y(the)h(user)g(to)h(enter)f(the)g(name)g(of)h(the)f(USB)g
+(connection,)g(unlik)n(e)820 4552 y(v)n(ersions)f(1.1.11)h(and)g(later)
+-5 b(.)p 3362 4578 V 778 4595 2601 17 v 396 4831 a Fm(Select)26
+b(the)e(manuf)o(acturer)h(of)g(your)g(printer)f(and)h(click)g(the)f
+Fg(Contin)o(ue)j Fm(b)n(utton.)c(A)i(windo)n(w)396 4961
+y(will)f(appear)i(which)e(asks)g(you)h(to)f(select)h(the)g(speci\002c)g
+(model)f(number)g(for)h(your)g(printer)-5 b(.)396 5140
+y(Scroll)25 b(through)f(the)h(long)f(list)f(and)i(\002nd)g(the)g(model)
+f(number)g(for)h(your)g(printer)-5 b(.)24 b(Notice)396
+5270 y(carefully)h(that)g(there)g(are)g(man)o(y)f(dif)n(ferent)g
+(languages)h(supported)f(for)h(each)g(printer)l(,)f(as)p
+Black 3645 5692 a Fi(23)p Black eop
+%%Page: 24 33
+24 32 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fm(denoted)h(by)f(the)
+h(initials)e(in)h(parenthesis.)g(\(en\))i(w)o(ould)e(be)h(for)g
+(English,)e(\(da\))i(for)g(Danish,)396 708 y(\(sv\))g(for)g(Swedish,)g
+(\(fr\))g(for)g(French,)h(\(no\))f(for)g(Norwe)o(gian,)f(\(pl\))g(for)h
+(Polish,)f(and)h(\(en_GB\))396 838 y(for)g(British)g(English)e(\(see)p
+0 TeXcolorgray 25 w(Figure)i(3-6)p Black(\).)g(Also)f(tak)o(e)h(note)f
+(of)h(the)g(Gimp-Print)f(re)n(vision)f(for)396 967 y(the)i(dri)n(v)o
+(er)l(,)f(and)g(ensure)h(that)g(it)f(is)g(indeed)h(the)g(v)o(ersion)e
+(of)i(Gimp-Print)f(which)g(you)h(ha)n(v)o(e)396 1097
+y(most)f(recently)h(installed.)e(Once)i(you)g(ha)n(v)o(e)f(made)h(the)g
+(proper)f(selection,)g(click)h(on)g(the)396 1226 y Fg(Contin)o(ue)i
+Fm(b)n(utton.)396 1505 y Fj(Figur)n(e)f(3-6.)e(The)i(2nd)g(CUPS)f
+(Admin)g(Model/Dri)o(v)o(er)g(W)n(indo)o(w)396 3922 y
+ currentpoint currentpoint translate 0.55 0.55 scale neg exch neg exch
+translate
+
+396 3922 a @beginspecial 0 @llx 0 @lly 620 @urx 501 @ury
+6200 @rwi @setspecial
+%%BeginDocument: figures/cups_admin_model.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_model.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 620 501
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 620 501
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+621 502
+12.000000
+621 502
+1
+0
+0
+256
+000000
+ffffff
+b03060
+d9d9d9
+c0c0c0
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+0000ff
+990066
+ff0000
+ffffcc
+00ff00
+e7e7e7
+6f6f6f
+800000
+333366
+6666cc
+808080
+9999ff
+000080
+222222
+ffff00
+808000
+008080
+429aa7
+00ffff
+00373c
+008000
+ff6633
+ff66cc
+7f7f7f
+ccccff
+ffffbf
+d4d4ff
+bbbbbb
+8080ff
+5151ba
+cc9966
+996699
+33ff99
+0099ff
+1a5f67
+0000ee
+551a8b
+a3a3a3
+8b8b8b
+000033
+000066
+000099
+0000cc
+003300
+003333
+003366
+003399
+0033cc
+0033ff
+006600
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333300
+333333
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339933
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+666633
+666666
+666699
+6666ff
+669900
+669933
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+9966cc
+9966ff
+999900
+999933
+999966
+999999
+9999cc
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+cccc99
+cccccc
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff00ff
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+8c8c8c
+cccca3
+8c8c70
+b5b5b5
+cdc0b0
+eedfcc
+f6e7d4
+716a61
+8b8378
+a6a6a6
+GhVPU>B\`C[YCj&iQ5a.,YLCAS<^cXg]O-L5Ks#iLrgLG08A>>cKs^mpR8E@638=GrdWZFUo
+IS,:U;Z'OtU/bBI_7LBGu:&CsZ,_CsZ\oCsZ\oCsZ\oCsZ]:YR)QIDLO,,J]r*cX<<jj.iLP;
+H7A6a'@;FYa=BJqU9Mo-_2;;^/Z^p@,S)G$^YZ.$TZcX8fUPG]qibto>r;Y@_$']MJtJtY4I2
+YP/jfPLgoerFN+LhB*+!Fik[KFRq>0fEi`(W6N!9YhmrB9J^6ObpFsOn3:O(1&6(/g[EY8GbS
+Cm$scpi"Ia)&(lYf21LC]J;-j#cE$MC"YOL:Z&qOa%/qEY;qCb-8j/&^a5\P4t!YKEsps2X<=
+\R2?_u2W"OO(KYFq[-!o?]@!Xp+gAp!@TqFTDY2Ybn\LJC64AM6j=skiTo)"jO4FC=DQ*I`.V
+o-o#rQD?(>m5u/i=J8G(SB482s9PB2pR<kX]Y.f%H2u-/hCjLrBXC3Y\;T(KB,NVDTj0;$\(E
+r;Hn:cijU*TZI>hTIU>Q6'DVZ6'DVZ6'LR!Q`grWOfnXW6Kg3S\@?<9=m2XHleTI%m@3c<FmW
+cil0F[*CN7D!r>.6Km<\/3.7l8FbiePg4km@`q*oJam<\/3.7l>HaOt]DHWE2^Lk8>fno,t\n
+Uje]Fg8k"C\+ll!&gT5Cl@H1\"B_?`EKO@<MEV,f]3PJRi0t?R$jcj%5to[mFmPJD,k"[ReaG
+g?OtK?k#Tb%9j(F)[Z56)rchbKU=`_3R_bib784SIQF(<%oVg;KCORhL/\aHm*p,(_1O`7<p!
+[Rh??E'YkgjWdYfRtjcdoX\%$nX:;r7jb\ftc_)Re1*fu$),Y&4>GDpKd.>?;McXe/<0<`&DS
+.'[lf)ahG2(Hsrtc&]VgbeG`2_64a/85me`]B7QU8XkXT&c\X<Z`f@'C\pED7a3e$gJV3>B&"
+D:/[:\Nr@ll'3k?,54O*$/%<Pm^T$93f?uL2=NjO+&!)`M:llQ71FMt^LCgXr'fG4h&=Yp*R/
+bh3VAG+Xe[MiU4fTc..W?>*B$b<LE2![Vt98B!A.\BXM/LFa#G(@nNr#0nZY!?OB3jqLAc*N?
+aX77_-FE9MuF]I'^/]oqYS%5A#`L;R!rqtC7LLr.5[4^*h'jbd!5m,-(@^&!S$`RieQMPi,l:
+.+5a.%N.Z<$b;;o#L*7J6$0O\a]94jTbAA2jAm?Kk*_g%W'?Cq_tE_S>2\,t$(ng*!(J,hJR2
+4@l``A?\p@2D7D<f\_Pe*WK9H22`Q+c+j3"IP$,1Ir?b4.N8=rAF2Hor7b1G$8pqoN,OpFpj#
+p(7P/FO;R88gc4Z9.c6inY?ep[M#PGQ!q)#FkkWJHQ\Q>t^7?i'U&NV_.;oSfmc$+]Di:WVb,
+RC^kl/Z>4nfFN`h"8[l=kY]J*k$"Yk6EjXS]c^f))a4mrcnnZ>J89o?-P-/4DW::XCur]ZcqR
+PX>h/1YWXr:AtDb'.\85CNI2JujZMU7BcPmmGs6RY-"\scdVmW:@$=m#Puu4;U[XL5UmJ%!6J
+!cEYqg-9,1sUmr&&ihp1u0oZ/')_dAps`o7(o!l,Vf(o0R^Q7@.9WE1SYNNDeC[CJF5CleQ4d
+%-ibqJ8M/W5H.t2^0#?\KmT_aB,_"4mL%-DY;^8[qBW:Zg'hbj)kAXCGd^_Bq=#\IPsV*CBIX
+O^P(l]YB',Mf;E%3^Rk7^d.USF>_3TS!\,_H<6=INQH;_YseNDjBJ'?IQ>A2uk8X%7`Obc&78
+I>m7Uq[\N'`ArS/_#=<6$WkT8>4TCK'eLORmKhlUFYHt)KkPEdZ%/V2HsnLAnh64@DWk0=S/o
+S6'Ih?k%]c-;mV*:Ke7]*4uMaU*OEVm_6($M^>]mi#taI'%rj3FGr4K_"e.U[mnSe)#G7*K'Z
+Bfu&<`G%+1Bi=b?A"\qke(3&^NAY)Dcr(r'LOlg!SJ$r>,_6Cim&tC,eEO<GA'J'GbiS9E-6+
+e`n?:bmWXkT9SB3h<8S<G_49s'tpEGniWZKgZ$t8raTA!>;OB"WZ[F;<piElD0&4:S?FR<*.G
+.r/lu\\2?:1H/cW?G.sk2hq+Wk.j4P>"VaIQj>OgD1d]NYsk,Ur"bV-;6?nhk$*=q-oe`6JjK
+D7m1S=:#99ZgNV[ed>Xjhe)[O$U\fKe5b`Sbq+,j+Bp+led]YP5q*"h/&[qekY$uUgQ8LL\lV
+(F,SEdkR1M!ipD'ZAgusHI$O0S?h;!+?+X63\prA*]2AL852[TW9C#N('cX^n%>U^j_nF1.!d
+#C0jLE`(g$eZNB,&,c<Fs6kkVPGO4`'4.J.:e*+iiuhmGle\Cum'q%I0$$a*grio_A*`Q(n=;W
+%LH_TWb2Am>M,!TW1ah?L*Vlm/fS_Wtp:0#_F0)Jfk>N+:*Rl9BbltpFABfi'GMP8+im2"S<S
+>ftO)9g2YONd]t/00DbA'd=%2@k8V!2]oA!)UV]Y'382lU1nQXIO"Ub2HgMG5=4D3XG,TSNMC
+qC="jR&e'QNVYT3L'$X;*bEK//@Sm5/[pkrCgFP[?5]#OU3qq#+a<6MS%PoKLd_ok=8k!URdE
+kP@n/?rR'K18dE:LZh2lV:OU=Li7X!Qp&19G>$S`m5?h'_4a$W6(2n&``C_@hHm?jD!61#a:/
+uq7BcD/m3(fS`b0Te?pXC*!HVe`:oR%8a7*o;?GdbPm39e?c+^it]3T36g?j%ga-l`b=PS_N[
+Drg.hm_urF7i5^i30;Mlu_2ckFaF#U]!8Pj2lmg;uS>::i(!mdH2"lDE$65D.68TZG2B`>B3'
+V=Esn?m.!kcJC:&PoEZ01hX'g+/j`A2a8WO<]\K+jC$V5MSOGZA+LYTU"0i7)PWJBNojmIJSd
+5$4Z>?srfkItQ*+@fR&N6e_PV)d"Koiq3VrD0C3QWKdd8oZnVQjG47dMmU4SNuh'M4SLXa/YB
+bfs@J3.0h%,@=E`C`_\mgY&*+CtP]2c88nPjM8tG<)Ii(fM"4_i`2&`F>aX*]]qp#HFr4AWSX
+!(HWVG7ZL>p'3^("ISb!'KlRfolm.I`7;PZ8)R.lq>q$5N0MXalkJ?^oKQud#n<mQ6e0g=X)'
+@*^hj2K;"%h:,mgW$h3*J&(*Is5eS7fPAe]@FBb5#`\!+e"BSgkak-PgG&^k&%fd[uL81)J-)
+!Dc2#=2OiN@'7I&)PWPjsD13T#n(MmTV@PVN_8OXU\SG-C`Z'/,@]^XCh@/NbIiu2F-omRkV4
+PrMEM'\/NON6iF.)eD,2)g#\L8d"(19sQW&i=kTT2^n?+m=,p0G(/MriKo]dq$mB#iQWkSH$s
+CWom^>P=>j[Y_&/?Vtpp[cn$dGnT3TDY:#a.bg_fDXMWHq;S7T%^p5)D;T*Zg6-*tjfpb)lG[
+r?q.XW92TVHg]X=*\rM/q6hXe,.*NDbYH@/P+nYgcnX].(kWNabtpH"[n8(plk]#qfuXZL"K<
+82W*)Oo0Mc9sWgTm+dq3)rd">nrjGKfBi\PPpK>9*\ZcqV:Bdn!2rl'M#SbW_TphSZXtYFB_o
+5c"G!p>MZ$rr&_#8;jf;IIWp,)hAR/6*TgB$f&OAMRA[uO>gN4sIE#t;D%D\ReSM>l#o5+&lY
+X8?S`Nm6ZaCjhmECX2D/VRA>-0jqgrAttG2/lXCJK#$D9$7?m"G7c.!DaoFe.se5PVqD+8(T.
+K\uS[Rt57RmHjMUE%PY+9)6iR7+AYOe^;C4o^Wh0X;bCpU[_;Tb$AqpC+?^#3HB+uFYb7gmHb
+d;md1^g8!9_gh:XW._9C1>h0"2j/%XHG/T0(*l**$OBcXMn]$[W'9:u'_Nm'!<X0oTM.1+IW%
+\"U]r+`??Spc!CIVNB?o#Jc5DH'63L,7_@\o(J`aIb.lkaR%Sg=n.-b/W&;]g'a^ZEnGq#2O*
+dT=55sIT'@Sm(o`V8.Rh+E\5-fj41oG?X;.WmbNA;CY[<<h6A<'R%uV90$,OWpJo7`?+XRJ_`
+Z4h=lD0ras2TGIJ:bCK:5V&p@c34-KdPo9sP>P-b0V-_J=$2-Vj-Y"ec]A`OOllHJ]d678fPn
+N]3i@WE\^D1r(^h*`D"_h2NK2"*ORFk6Kb4OW0X(9X,(3c_)RYs0R.MPMJ;*q6k.arSmZ/>mP
+Wf^%o><gY?r`VDJN^[$FHLS*ee^`r;dO=5WL%H>2aoo5)#7Iihcbr]jJdp/eg3_mPZ9^Ah"n<
+Q.g\HS]Yb@2)f18(T(caSf>!YjFu%D<KF'm3]2c>'%8]Cf[u./#7]l0q2a!GMnb>8mh/pI6.e
+,YJ%%peH#U*;CQHg9#7$0\EB7(JEEGEC?N%IQSs:SfIVXOJ=:ab,Q+X'r9_8hDQ!0!c1[DLn(
+r1khk8/(DRcg`^J%4g7l+a:`08b2R^X-IUbI5O3^;?^]D:8B4J.d$n;CGh)>e1Qq#Q`*#`7Tb
+A(b#JnZ7r5\W7=hP(f8eL/%@!?XqLX;P[G-*JIUBB;JIBS8m?k7F.i%;[u3@);@Bta8Jbo=)>
+j<MK7k'?Vf;amRcT:IIqV(Yj"MtrLdaQR])4Bb^-UJJo'm>LLa]EXtP'a4&5qJChAO3brf4r_
+(_&R(WJ+87*jG1hm$+oJU4c#6A=lBemV6CCk\,O6,O_+],$8<..C/&D<3@hn`>T.88Z:-)HX6
+7H/l%]A7qI/)3P]`ZgF/ng[_Ek"\e$&e<XCYh^XWLfb@u.EXuBr)SdViH#D4kpK[R!UcH2%jo
+OTVJbENPP\O[/@G7+?et^p4F/PRt%^k2*ZU*LHApC,T^4nAs>P)b/`3X:j[R8d^ch?LUI!al@
+D"5D2_S5T?\>]MDcF.l%h+b+b;c5e**5qAK30ecW:!AZSb:17\gDO1/6#l;-J+Z0/GCOmE@P1
+QlP4N)lCf5&:B1oO.08-<l8!c_%E"(EVSkX4%Y&*H66u2kHBM=7CikCK54_8Me(?.8m:>gHG0
+I,6;*GV$(j4WY0\FIj3cUV>ADDun[4knQF-nW+sm@\QrKBen1]2CN7'Ng.Hg$,t0q!BD@Hfj#
+J(mn./1Ge"aQc#l5Dn=@t9r@R"Oc$i7HSlSJIJhZ*Bs1[/YAUc\De:pcoGQ>.Pl4;G[k7G[\8
+f7/ei$4JA+%Sej0p[d9[`ooEeG]*9CnTnZUgN";D+1/od^ugD,%][G+f>V0\^O%Pj;2V#EH(;
+SBm-CM-/4VXhM$Ea6F8FD0u%pS`E8N16oeinS()VgKN*cB8^9.=*M]pf$XH[WuaAcD@<dJG(8
+4g0K0h&carI+[klL1S`u6dM`J?>PHu*shIlA-g[SpOHY9C=.><CfFA%B7WT]_/`3Cpfg*Nqs6
+;STb0i'QmjS0X7VkRg^:>N(%Z)j/tnJ[GE?=]XuK8%l7KNWFQc0-ZpmsEqo&oVbQjJrQ&1(^@
+WAf:"1qsX:+HgXGnBfj\m*:T\ug2=?nT/N2+Ru7oLM4+h:(VNrF[L)-Rf)7/620>:"bj/h[Z$
+C,$9!=4I;CCN`*VaEOeVa`g35Q0H2T^J]9nW:)PMH$@U#=Jb*O8.J<pCI<5YtGhXl.,70B8O.
+/D6*uiIfHacfm_jRpMCFO<4#Or)r5E/WU)u#9?NaSX+%0>qkekO#%si]9=[4[cYpiV01tOS'W
+TGN'(pY)u8sE/AV5N@eXS<5B^9TiH=VUO]1FB@Ydc!lg+>jZ=_j*b*)"&U0!V%eBt/jH8!0i<
+OVKK-];j(0EYE5[-c)4:AsrZ]u9SI_j;I7jeV922d4E>)1c<GNg?XUG$Y(YCe#aWO84WBQ'aS
+1@r^QnNF`=iYK%ij].NpFHS'tXQ]9M#^<SrE9A.qAY(qLNFDj=s^28)DU"O>4c3OJhR6ncojh
+)=(XGaU<'qnnT%909J?E)W7MGh1@,9B(ebZ^pS\r`KRZ"S`)P.+n`m]_F:C$^p]cRZCA8+`5&
+;N53]PXWtIL45C`anD532m]f`-NcFl;JUK0Z$hJ:"3F;_1-*uo=(*S)_dcEtQ--[eWG%o188.
+5PRYD=qZU\mI_%Xg:*Ds,Y`t79I3V0V-K#*Gr$u%f0[,Lo.Pd,Xg*C[&ua`>"p4'JXcInO\3I
+a5-86P7"t._FEEk%.IAJ$/uj"#^KX[u$gi03?D\4/I!Ho6Q!mMsehCea=GmcDd*+:Ht@"AVo=
+ClXNA^Lc=q:ZY!MIIIld!V,"DE$>I40kER%$MSA\4oo[S(lgB;1cQgWH0aIPrf.OXTd6`m42T
+g]qi&K8-^4+mSGKrpR:)jC&&-P91"@3S%5nF/b&-P91"@3S%5nF/b&-P91"@3T@G=qkr5eY4N
+)RBBmk5djPV$$fWkYfPc).8(LV#dedcrh!3%@Tn@dUg3M+8q=O(&f\r!^VH,@&$7)Z33>2Y$=
+'Wd![?1M'1?GDl"rqe5mM[J.9)O_ESd`!]K8Z$?ulm#$k9$(Vg5\>\qM,RuOj.@"ZH3nRVh[\
+raqg7,\IU5nF/b&-P91"@3S%5nF/b&-P91"@3S%5nF/b&-P91F9?iETO@n9d$+TIcu]>)cu]>
+)cu]>)cu]>)cu_;V2Z6)=pr:UWa5YqR'1arZ=2mZ&jnC!>`VY!QmgMk9Qo`R""k^-Pl*514%)
+\*QWJ`,K@S$s3fjEt>3j0>?%U3:!F,i2bR<fZ(=noG[d!;iu&*,IN9e,ppn.K+BhX.uQQhU7f
+U5$#8Zp1G(hXb-k/IK::;]6%P8:f^[3'TbnRjTdKU%"0Ub=k?PBf[LpAMp^ofPX.<_=eq@)BG
+I!MslL`o1k*rFd>JY'Al0eQrXu]cs&7*>ubOSp7Ci>26cQPoM4%J=;%Y7gH1DjcHqK!1^IL$+
+cQ_27lSTKi_p"=ge(u_VS_$SDDZ#+*OF-4dQ,e(f_0Db.Uk%HSBnh9!ooB"07qSMn*f$W?(UX
+eYmVfoZU5`VFFEgom?X=dJ=cWP@"Te)J(SXo[d<N$F;Gk2g'uF6h4k1Z#25_+1lsTA#+_j3XF
+W:n7%M+3G_8c<M53EK"@3S%5nF/b&-P91F;+L(F?NpAnH%ALefjj6mDbb>2@3*RK7`K?ZjudE
+YX'(hLJ>Ga2X%FJCk-@X3S4fHl/&W"pjhbl$F"6sgm:Rf]0.=n]Dq)%j$bUEMH)03\C?29a+?
+bojFSrF,dkdSYUFcllKp7!g&*6I>_e^jYUS/!Zj53#r2[Wql8?3^=3LTMX)]BJk9I+eRn?),\
+_XVq8I@R-=\-hi+Ao^Yj4D!/&3W$'A.u1Q!&ikN+p:I^*/2X9OMU'2M*fiMCbfX=(i2)!Xob)
+$c-Z0@@AD'sdctGKKq?J1?FI'0/M9HJkQ*TXcX`$&_^="^OWJS2Bc^Q?fTG58FX\-^O@TQeJ8
+G_I4<h%R"c&'s,9MY#WT5c#])6+_(pP*cZ(+dpVB%K6H+EQ6i\Y^2\!_ST"m@GcM6J#[;hRpS
+>@AKtC9Wi/b[I7e'5oYk(kjNVQ?T)Y-f0o)fHW*rM@_m_V+cP5,0<1a[SX%[@/DTb@uXb4ZUI
+,m=HPP<Lp7SMLQC,5LWMm6@?Xh<<S0]cDcAi'iEeV][f;0cCpEY%<pLsA-q\>SB<l3;[B:VY8
+9R\/EWd&9HGPnlhY<DR(AhUW2@aP6S^$'dE==5TYWBH7L0$,?`p&'i)+hBaN?$F/'/GkHLZHS
+8]Wf]DhXcH5F?731+XN&m9,$83du-"bF(7,&CH)5m?oqZWec31^G>ZPXa-gAqY^P4[gSrG;3E
+j_X(`<uW4qEs5c$fB"'8.$'j*"S;afGM$4G]V'=D%_PP6pPkJ8I&Mkl\.a-GTi<-50e)k"0J6
+46g_gYk<d25H_lca\&PP=O[Lj-.n@cn`>Otog\^1RjS6k"^n+MMTq?9AJ,dii^\S0RjV,V7gi
+>\q#T77YSG/TfK@86K)i=l@:R$p[0IY\J'uT*'!PXY2VM3:R7)5gj):NjNXZ!CM6LF[A9IJh2
+1?lfJ.7tqqjRS%=+h$P-\i#4@IrPj!c3)m5FDKj@%0i?%BrPR^]rF<'4:oYP6nI%o;"=,*S"Y
+V,67dK*B*o,$C`E(U*SgI+Fn;/Crq>)njC`LSU\T&P;*\X3tF7'XOoWQ==/$aN!?*AKf3<h_1
+p3uWK3g.''WtF%Bp:oXY>dPk/h0*A=/frec=GifU2,JmD0"pfK:%0#M;M!NODig=HQneA=FrX
+aWb+3"rfHrp=_XN$kHt[Y[R.a+;9-5$eV>/m?;CY%-L#KJ1^j\Cn;V]q..s)%1hGG'4:oYP6n
+Go[`J[)!8D#cCk-@X!B+bcoEMTG;RTFL[t"pW-Y\IkdA^nrJ8GR.ab0BZ6dL'GI#Q=67rB`jF
+s:b0=g<6-4rP/fTFBJmJ.7tq;]eMb&:eUsfF$XeCn==0!4L9_A%p-o#911&_Te9pD$np/>K(1
+efu4K9GnR>e!&eYb/8q+*Ak-5<Y[R-658/S7b-6;gc'+n:'X2$;jCA=.GS!*-!#o=89RmSV9d
+[X[fHq8>")O/-Y[R.!2io'Q2Zq_/_o<d"@In$+<9M[6fW]W6YY>THD,tJE$k>B^,9DCo^kU*t
+//-..&!7V=Yal;/@2t!GPGJ<^[P;0"^<<nh)n:CWc'*\FP-E?BMDZukMk=PO,[fr$\msF*qiD
+n.o4/\2ZI29]<eq>iql$a,!B,,,E.lK"rCm:#/&M":2G]?Bo>AFWG]L")]oim,3,G1V:7hME6
+=$(nSI$5l9HP(Z5T5F&3k3SWCsW013nV;\^c&_e0PnDF'R$p8DY/h_TWn7+d_<>]5qCS*^c&S
+a-uAj9c',t/G!l]t`p=JF@Ika=0n%oE?3Y3^JLu-Y?[h3AL[@HGScijS_a^+1RjWgjmuK22lO
++Xi:Sp=9G3sfs<7hQ<-u>L9AcUS1YVG%sg4Kji5PaG5^ih0ZdRn,U0n73U=uO)iK&-%\8\d4s
+CtLjQhE35USlNRL->]UG]I"Jh!AA(G*BB^0&[5^8A;?.\Z?hf:)`CJugl*%W_h7a+"P<_/A--
+RtD)),M^c%S\)do./J.7tq]n,OKY7\Q."?-7h$C`E$V8D8mbJBK,LbD!bX>e%Pg,o\o7YZm\.
+lL0-QH;MSZY9MXfK@82_$[tD#&GO#<Z">8o46M11=@3g^kU*t%&Bsh(4behYgKo=r<^76_)G.
+:4rLSa!?3pmQ8_UFg!89P!B+bcltZ[,>nsf/^Njj)Mgu8+-RTR8_h7a+"P<_/A--RtD)),M^c
+%S\)do./J8NHRPC/Mc?M7/-Ms&?)!S`j.-du_#+qL7M+j9j6!:4uFa_EPgancm)E0VFYZ3f1'
+L+RZ^?[h3ADh6p1af:'LhEM>!`eKJ]l(p:6Z8T@jrKADUH*dU\BfAi92D',i['.33rKH>`!Og
+Hb.h&.)Z$DKu;h-Ig7Up&5[!siY&:eUSfU2,JNPS*O,A`r6@Ec_Q9GXoDRk,mhK^IFka`%p0Z
+X!nrg/,&s7<W\/k/h^dA-o6igHQSQA&'u(Cf>2BAE,AlgQCDc&=OXZ1M0*/[!sj!?C\nO@(Y^
+daY=3/d^&(VAq0m9a4rd+a2(jtq)h?$m6bc_P`g6i[irPA#P!uaYQ;2S"P<_/A--RtD)),M^c
+%S\)`CJ]Zh[IJ1OuSTD#A8f2G^V+A)kr@fW]W6YY>THD,Y8BUb%_>GS!(DCtLkl3>V6P83WsP
+D!/W8(dqg(,f-s6*t?m!^rCbgCCE+9s1FgK-"+>1Cp]mF)i<q@Vq=+7*?G3h;ddN*8`!hFc'-
+ZP3NN6>Cn;VW!jGr<2Jes)-GYA\PEQ<WiBdBP!c3C(1'';K2OOOa@%0i?%BrPR^kU*td;482O
+!Teh!,ND&pu<i?Sn(X:\euMT)dpSGaV/&l>@ITe@+].^@e1jVRDb@G)ArJ")?Da4SkLrVb2@o
+/oJ3o,)n#k![2]-<YS@@>fK;ap-,n%8I1gAmnCikO2;";bEfIn)mFXN=nli9K(H0fhRU^D\mD
+cmMfP!Xk=r#`0caS0tQ7N*G!O-#(,k!DPRjXW_JZQBgJt^F1>eBO0!o)rX;V.6iE(S6IH;\hh
+W<f_:oAi.U%(8HY\>9^)RsVnnj51Sf2pL'qE[OU>%G:.mIPU^f?2k,]TSj,\!Og)a*`r=7dls
+oq5a1H=5H_S@rI6:C[=.G^LEHkS+:*RlZJPWWqZQlhIdMMMGGk168@&A8cli;MFOpHjq`i]X4
+`jI\M`&ic%F>u@.!ed)Qj>VHq-D"'1r!>-FpXggd6#7G!7hb1i7aj\qPQTDF`?nirMGXPs6t7
+-UFu&.CR5(5',=c>,>(ScLU%HO%K.\380+r59k!o<YX.I;1t_S&in@somR/FL2G?W7U&$.19c
+ep]B&+j^#Z*b52-o*"8ilS9ZV`prc"EeRqLEnWkVCjh?+U6dh$B(BT]q+7n^)Bp(*dKR@Ika$
+Ts-*gJfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)3_ofAp_i>Z\0QOm1XZd:5nF
+/b&-P91"@3S%5nF/b&-P91"@3S%5nF/b&-P91"@3S%5nI"];!Ru,T--EmQ\7@n?RobX9MgO[M
+EEtpcdrc`MT(%,?"uF)&CK:<ZL`TplT3.nBT(OZrP"#SeXNVQ=R!q#<`?sA]pqKu-4:\&r7r-
+gD;A8mrG,V$.p-W8O]ot(hf$819_LI[92dgOQT^8U^UF)<paqbBGdETkO*ON-dUJ%YrafN]mb
+lBPBn[(LXmHQ:YDc,l-<QRlad1(5."?O5<S7/W8C;V/&E2^?atHc>\F;5fDQGoa*1T.[#^L'N
+_T)3!!?:9Q8V]XG>4DLO.LS]AL/<Tj[.#AVo599>d3[FSAdW+Ih5h`1&N#W9B08gG,YK^g>,:
+8V:9P^kNV!a_VPjf`Hu>/'NX6ZhlY+<Tmlk+SWK.ZKkFApuCkD;o\PEnb(&g[>M(DPFR\n4Y-
+/OHcMdSQHPs*B.D:B\#k;1bR>SUI2O?Bc:`94F17W<-R?p\WYCK+0Pd-.\??B=/7db(B+;+**
+TCr+$?4<#<OZD*1$44]4\r\41:=q""t!B/h!]ZE/f)1[FH$g(/O0G5BCWB:cq<aZ:nq(sS)K$
+)?e"#_q(/c!5c"@e*)k(]1QgqBD8bHN9]U.)9&k'IWe+ct4-3c*$L1,%?#2ND!Jkm;1FZ;\gX
+Vk(908CJt7:%,G]'b#XFgm\4QXiWX'7digq)n6(kDhR2kVS=Z[2f()7R_6*[eMR"Nl,ai[K#H
+SkHpV0X2GkuO?Hb`UZY1oU7G-8[2B4X&Oq]<\ggg&4D/@_U2@_h$+BHiFrcC2[Vqk`9W"^Gf(
+qbD*(]?%V<CXPnP^'MgL#FBC4.AV`PDQNj6t>_;4H3]!]AVqM1Cq("e`IaD?BEfN99d)897Lf
+AX'"PlM+[)MeT*#NRXo71VkBBhP>;jg4HXq;2auD<;%o0UG&`]mI):d:<!$kP9-ITUM!$F]mN
+o!-S$uVI*QegW&9Ln]hI5=X.+r]sI-?Gi3ZMQ$'X-@D:6.Z8oI.`#K2jL^^@XZSos%`+fIo!_
+Eln`7JS1aP1`bf()I4M!PD[Z@,qDd/bml=O4f'4_L'K^ShVBsuiM@ZF5!nhe5.#`oWL3$nVVW
+laYI0YX*1aluAhR'0Sd8ObZ_A#m=Q+-)2P[%O[1DoYV-tn@6g1J^ZP8c&I+Q=Q!]09pOs<RfZ
+8Ta(<lq[bpMc"n1%mAl/J-D(ba.>!.j_daJ`\L:EOlkMcaGB84Jj4Q:):QYqr$FXn8G0;Zlct
+_1S<H:J!G`Yf-tP&oResYC^,N/dcHcQ]u6*(jnj,r<P$;hV&'s7l&LB+fOAnJ@'h(</P=u<5I
+6'&-4dGG]ca0Ddr<EuaJ/J.&TNBZLLg9Kl[*3+#?\.6+!Pn>`.^3@kf#Fa%n@.5UuX@(Jm1j[
+AQFT!7T(5OG'.4`6@<_t."_]Uo):7""MqTb1G5'BI&fW4fd^epZ",LYRSnS>f1X>[CF.5h@O.
+n/:=ogr_$s6C*Zdq<4]$VFIA/Y<hlEul,<g#oCjJZfQWMI8TS87Hm]sc"Z.Uph@`YA,.^0@<b
+L#0H<4uh2;AP)o?o?/45]?f/fLUbMW=1]:k7N+>7)302_"L$!':H3;J;rTTh3DR(B]([S$g(R
+)kNQPpcSl^q;]Z@=>u>92<krUZD433)=)BT]0dR`p@o^TjEZ]D@QK5.U2MOtWNM45!o&m<B2:
+rs@N3!sMg_nqPNT/Xd2@k;`B0-U_NQlWb[,/to;\9YVLEP$2bX;5pD/"qS9R/9^7nU%Rj=Ml:
+0e-Z3l$epbG%,>lSV7G[SaF7QkT?amMGjL1d\kUj88T;O<:\<]&]nQ-/BO#(9f@LJZ=R66`mH
+M&^!diL6V#Um,,(S3'`E[8e8GB],Nsk@>u^CLhEGb@8q"2Y?)dDK31RQ!?#`A$+m!`V#3>9BD
+%AoD"HBK[2aNDUh2r!i5C]-0nM1=APN[:0G`Xgh&3`$[Jurl!cHJfsK21$(_03!/J_>gueX;m
+Lnh7EDfQM8kY)2.U"M23uA3l=:[E699=ib-C8*CGMd\[7cbs,L*Oi!<=fT,=_"ka$@4X01!m3
+8c\g9-:fBZq7<6G[uIPY!q.0o\^RU[X<m5lJYC0[YdFZO)6=jFapI'V6oMgGP*4AH8N%>.F7L
+#0g=B8#4AJN5;]g+bE72caRcM/e9KYO3nRuo'#>[!c7Bf5?6$.;MI*S6F'at/]3n9/;:3;EIl
+lDU5067"Hc/KVi+-!*V4+.6@[Y1Sh2g%mRC.,>rbd(0f3"qCk<e!B_u_[3-3\>DDW<mP8L9A^
+7uk=)O#T&V+hIW*d$ud]hW^A5<D0pPGg-NUMWF#CnFapfJPB?5mW&b#_F0)Jfk>N+:*QA#_F2
+_b5)0*PA(4ee*&;iK;Ofdm;"%qB`_"oc3KW;^2*J%"1h;2>=tR]G$k+kH`FeRPg0NaQgeI,dl
+$q9Yhc\egCOCoZZP*/c0+\qB`QnYaMB4J#>&_%WA-%6oeKmMdCt,1rj,r5F/SBA@^5^CkND#X
+s7+,O*RTQJ(I"Y!c"BpcH/8P0qiLPgNT%"52(>"BWQm,fk,U&e^Rq+aa^7sF+WobebCXS*X6)
+]P=j@t0am2a)k#X!I3^\e4B+`F"YfW=.F1qcnG9YIp)B*9`4t59UVqLfEk1BrU&(9Yb2a+XS4
+obHUF!`n`NFXNSAe?o%eR<6Xq:Q+Zh2CRSW+'VSOt5(Q3GZjFrVDj),PQ#sj65*_G)rp5gTjt
+J?o+V#foojHe;`1b=i!"gc%Q.6pS!UboLY27Zs5F`X$qWpGPUn'o_mYc[pOX+IqdQf\BBu<[,
+%[.ri(BGfQ7CY=juH9223pcZ^=V@,&D<Le>VoLZ6;OX!8Gc!dZ#lNPXBb[]"te4R3eUd9q,Qc
+HT(2aaAkH"dsTDQek+*kGd^'$=YkNo.9m._q=r,t!S\Woer;;N`d5'noCRHrNS;*>c.]@ud:9
+VQr$<HIWrOF:B(O\R/"%J=cXts9hMjSM1i&C<-N`&nJ$o9/B=fO6bso*V>0Rk0q832"^"<#IZ
+e<Z)1]M$WQl=fnfZZ>"9a[>cST_;<SS-BAW;0*,C^V7GZM*AA#h62/2hG\S-[!X&(JhBfPO^H
+QC;*YrBT^O?k!U^(S">2B8O5-cV!:(3>Q-%p7MTbJiE6i23aR'>4'-hg\r`fhH>8[WRkGP8_L
+0h5R5_0H,fYno/8V.^UM$XC2HtQYEibOl5([DLD"j`O2_&I@n&hu=<c^DE>qAXQ2;r1:JVb(A
+;Dk]3\](cC3nnjIdt2m'XZ.8:<^oF"6QlHac)[TY>q*R\<r,\DC9\ajeNY/>]M;f)&:]0/;dC
+PQc".@qipU"Dr?.[I!jLLn!8A%c[^1(BYa)s+oC[d=^VdMf:Qs'/Q%A>VHdhl\@E00jTZI>hT
+ZQj!DS.ZFs8%3iiBOI~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 620 501
+%%EOF
+
+%%EndDocument
+ @endspecial 396 3922 a
+ currentpoint currentpoint translate 1 0.55 div 1 0.55 div scale neg
+exch neg exch translate
+ 396 3922 a Black 3645 5692 a
+Fi(24)p Black eop
+%%Page: 25 34
+25 33 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fj(Figur)n(e)i(3-7.)e
+(The)i(CUPS)f(Admin)h(Success)f(W)n(indo)o(w)396 2356
+y
+ currentpoint currentpoint translate 0.39 0.39 scale neg exch neg exch
+translate
+ 396 2356 a @beginspecial 0 @llx 0 @lly 621 @urx 510
+@ury 6210 @rwi @setspecial
+%%BeginDocument: figures/cups_admin_success.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_admin_success.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 621 510
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 621 510
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+622 511
+12.000000
+622 511
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+9a9a9a
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUBo_2q[Y;Ws2!807W/HXgE?UL8"7r-VV.:Us/8k*bG;R=:9rcd2$(,](Z+QiO_lmDI4H
+0LE:Z;as"&B#6"4%'a"4%'a"4%'a"4)Uu9k`Ucr\*1ll0XX@6$?T^7!RPe>hWZti)'dNcF5?(
+D2Y^/llK$p.kX5QH5>-$T2l-R$!a5`CQn<)`Oj7*g1/^'TJ%Iu6Qs<>$/5?pkAS2s<EWJ/XIG
+IQRgB*:7o5\UE7ZS*U>#1l@%PNS/e`eOjpPq9OJ%Y132-5/3'/\Qa9Qr4C]l%tX'"A$gZ"CM_
+Vf;d6Z(jn4D+Su-!6rTNJf:ii]b-[&UAN[eJ:>;cs@\8q&Gf"#X@*R;iaR-MYjE59mWJ@`tR/
+^Y'S9):Ki]rNnT);GcocKT(LR8nY[&(7Ee]be`4)sL^N[_Y-dO]n;-Z8U*)(em?u0:[tRU5Z&
+9k!UH:d$)bJ[X&/RcD$8I_%_QUF;UIl^U&Sip#0QSE['KhPgd<0LEk+i"4*I`Z/D;^OAD;]\)
+D;\DZD;]\)D;]\)D;]\erV?TR=hOS86h"19NSLSZ/GS9$H@*'5qIoi1]XhBhI/W=E_],XN!!@
+/l=1:g4.C*j)Y27j?]t0?@$QIs,YAT[H8n;58G`CG&P+*\YC9'U"D;IZtHm>NR*gX;Mg\U&'T
+Jf/?D+"'ppJ3eOH88dE@Y3=6F%6;h0f.SLDJE+_]!5U;;/KUJrk8<Wo)*iOkjI>o=\<EJkt.r
+I\W]IeU$nD;XmS`&07FSW[R"\?[<:["n*TT*@_&og]DK'KQCjVk^Ssp*;U+$_e5i+t->Petg6
+a.7bEp62p/Hs8Nd98PLg]R9DlpIi[S=8mYomZ9ZoFU`6)/'s;,!$318NXfqM/!RGQ,p6rHm:E
+b@X45*Neu#Q1V=KeEA*_`P5!(RJ0H7[eZZ[UjAY3gU8l'9H-)@[OB.kn`QlGVP?3#@C93ENaQ
+[qZ#-WQ"oB^+m6\.?GS$9]_Rt\V`CQB:X6o5rWGR`3>BK2'^V+3:`o5Cs<mk)AD:3n4PU_jb6
+T#R(dd>WNXkI[;X>(;k86Fs@(i\.BrW`%7s$.-b2/UlYSRdu()K'_rf=R6F?E,n\$M"h;/aSq
+/'Ur%U>)M^K`9&Z+R+ei'So8^:4bgCSC6Le^V;ug&eFk*<PA[j1E9\Yu[`iSb?>"srfTW).>3
+WQK.oQ0'cFhr7<ls0(:2R.('>f0nh'LOEI5bJ[LIh-l3)_K`rfX7?7V;4#8!c,s)1DO%C?pWG
+J(DB\`3R?t%.%l+j:4%r_dr"42L^^P7;>P#2/V11<-(#P1-MU6Rmed#>Ak;iXp^9n+aE,cX;K
+aPDQD=)FJS6@[\\/\E9epYD8Q$[>Yg1^\Ct10=CpijNAL.BiX58;j#6JmK8VSOH`PE49o7,om
+J$IiPk3:F2(8$1'8tr!),tJ77UM+^b@4;Co'.dfG#i\/o--7Dj_F,4h7>F\)crNN*O3UMpKML
+g](:6QlCqr*[J=LUeQ.[//LRtpD,`YY-.6'U`_>hP87["R<R4Rtn"oACa),%^[a9!#dHKGsKr
+J:\D,P7LD+\]rE432,R?KD6BsDf[nLaL2=_1EFX9WTW*H*5cde,<`BJTn>,hmJY[;f]D[sO=h
+`e-KGD+\\LCq_9&D_KbO:n-\\->o,C\!:YXVm`p/S!7,gcPiWC.@&XsgZ91P957,g/'b(^0dn
+'G<cUa`Xb5K-O5%\)k*n>FdqArJPsebl;$p!6;3rl7>k")YD30CYV6h,kPLNbp95V.sgWkH<8
+NUYZ3k95_oVC!Hj]A#OdRu\Mp%(s<@pp^QjJ6#'H,;mC&_9ouDIehsmUdMubg=2/[gBe>jX1F
+5o7nu-6;d8\U@K\CX,IkOULn-M/g3#,#a5C\;]kB/e@,-``9,\+IOhsO`3q7\er8*JSh[HO>b
+%#+LCqIG;Ba*ACKHku3N6Q&Faqr::2p]j`36!$UcmsbN1<NXR?0Uqf::MBW,;=C?CqI>gUa;Q
+Yk#`aW%@L&WKc/kb,ni3/:0anh0(_mD2-dDE86k^0D6RDo!^Gog9u.S"0\q"af@"?SoeaK!uG
+b+k=PjKOR*DM&DP9/q7l6#IIXE:T[$^i+5Kl7Q<.;d4R%%9bKopE_umgj7u#FWgWYM-Vi#>;:
+\mgOD2,O1RdsJ1mbS,H[LH(&L4+3VjLB0Jd2VQ_@^GQYI<E0_p]KsRHhI?phiq3O99/aJ)gEI
+AF$O+X^r,suma26rK_amMmrQ6M>p/Wr;:;_MIath*YL+J"Y:^C]`b=VH>=L"<4141&5]'m;/K
+K1\mM*k,e<UUH[=L&kFR20/@`#lY><W>B#"HtfR<?FDf4^8L<u2-iA$/pG)\;N)!eG8`%0-A.
+zzGU/d-eGFWXa%]Q^SE.<[]Cnhri2p_j+'37FZICdt&QcC9;"#JRqlRFmj5<YbhcjkDW@RXSj
+X)o:rEZDjoWaPYY:_ST+]m=*9sMa'o!4FR8ooJ$.66%h^RK\TfWmhB"#H]2dr1\Xdg9ltOd8`
+ADj5+niVtS.(W(TB2ftfu?RK^<[),#6n8-^U#Aqn`):9n0a\DE'IjI1k29WS%K$I+5k0llfA9
+pus/8rs3C7nV\]<nF&Uu4FC?#K-m[-$M0h1Ar0W6@MDA&i7t>%!TW-3SY<oV.V6RbEL5qs0Ya
+g.X0!#A`JhUMcN(CT;*;N>7n2D2d<WimhOpir?a]gQuR4)ucma8XqS3UBA!PQ-SSd[4V!i9j4
+n8LD3gj\(XPY`,1^YSnR9hHaQl('*gC5jW9)6O+3'NjBgAKJg^TPRq4odKSf5+HM,g*\\B=bD
+k#ko$[>T99YJLO@QUT*lGtDlWn96'b^fR8b@f'iUXZ]\'(bNo[;hY8WnH"B8(A<gA_0ng,7em
+I^1pj->)/LHa.g5:q_D4VP,6fTqgP<$hFt`\$W(^5+mYsf<@s90]dC%Q,<%F9r6R5&4Y`%0C#
+l^oFLL2%7V=1m)s&\6;Q7@lZJ&go9J\l9'MUI8EP,1.p9V$ti-+g#D(NDXZ!S5ZY9*s%`(-O!
+Zg1&73+Oe;j-^RK2/=PAWEna;SF8;`:3d94OkGN@O]IcK>AK1$6e'\cs2L)Rkc:i^?6+u>;u4
+k;kZYCIMGG7X:]m_8^MAjPB>99u7b=W#8q-0>[e\FhO30jn8*-lOg`1gBW4TasC^U?&`Z2TP?
+)u[#\@BIPRd-Xhcuj4noJTV,Pe:J[VSh&)IG;?c$SS!+:ER[-#KoOgah:c.9LIBfWW]l/Mf.i
+lkHf*-c,>uV,s0gI*,0S<4KWqY_m`C%G?)kidWQsWq<9AdNni?FC==Q,g^:2fglR4Ofh#hO]$
+LsL2m@&_^"SLS&mLp5D5ok`d#f>OA'Uq%qRf2GW:.FQ>oukj#!1L;.t]6oWCcYM2TA=3`dK/2
+/!\VDE]bgi;E^:bP/1]6:8K"gfi&X#NN4iaSQ$s6L@j<S8A.rVY-N2O$g5DE4mVIDU5\ZO41X
+.I.\Dr9mu(,p+0nX@1l\Lq<HM/Bo##$-='I[SRJ@r3`cPd@R/1[Lpq>6fXHfDFor5rU5%^B![
+rPCp$0HW5=hWX]eEY^^%MXl1FCb9_1&Y[ebh5aNi>VZmoQE("/[!\p.B_4WR2J)cmn0N._kqA
+$?5d7%YbJDQW[bD2Ns.bJYA.76rASWLVH)-HG`HNT\>uWGSata!%]JAJaK8L@oPk3W`XqQKUq
+nL81t[40-Zm&DOU\'qf@-J3B_TShDrsn1P12X/A(#%<1lX)um/_W9<4._+fZIXOVUp!*(UE(J
+dU#R>3IT%%]pa7$0fLX0TmP1TdtE]b[T2Y#ViP5b>,*[YXj(`6P<*BN\R*eZUnT.gTmP2#HL&
+fVk,Y>$<G[[lI>g#&&/q`hDb[nWOmY8aOd=Z[(_s$d7oSf.+);kOg[8J(f(JP#bJ(;e]f]nL8
+g-b>l&U]]afl!brii`JgA0El[^3h^`0R;6_KXn>bm04pH9%Dr8*HJT!&Vek+I?X!l\*mF1!H5
+<<7VG:0iX)P@`crF@q-dLWT.u\a_[sm48B(oI,[=9cLd]MA'_<Y:Gk`-)iYl-[CTT^B9laH2>
+(#mc!PM`CoVp@kp+2kB;u[>0\X._]*$m]&\9q@;mr,i5J+Y]#I8EXqGi;u#bG6&8o0uss3D-I
+a_f,Q<>J68U#233G?p$3W\TOWgKoYLr(+!CQ0r`:TDQ;4d#TH_1Ge@2DgeD$25f`YA>OKQ+U-
+)LgPgrX%Bn!eE](U/a.lK,3gr[)%H%^KR8Rs%o$Jlu:E?oYV:fp]b.P.H$HK&ES'g0ACJB<$@
+=D*Gc2b5snC5alRI3schH=c,*E9lI+m3^3/o#UYj+^9I1tGNRK]"lg,d+VBZr>$:%rLlB8oDN
+uC2%bUp182q.$YAW`g+T#B:"?/AqoJ4"Rnup6Fm^TeW"nd76afscAEGf`6Oc$V:Ej\Y.C<7gS
+E>p"d*E:oMF*&fVfsOWAmdQ2ELf*Wj[mMlZk6uTf,;UC/aQXa>o0A<,6#Vm+Fk.ltF02FD^$G
+45!\pP6/"+HEFSMCg6:kTk=MZO'BR/[]O`(UQO,Yg:!qLL$NPuIU#G'ngV,/Ngh<+cPO^H^eG
+A?/Gg!uPp^f![1Vu.NCiI,`f6\<c7V`<-Rl!24#5RAo;k=`N3Rt61#%5N16#\rUrlZuDYf5JJ
+5/53h$4nNA@6:@)6".YGc"7P-n?X&.He`D9s&Rt2U-?9NA>:lf<Ip0KWb:H&4u7Ppi5%PfX>:
+#gY,A;&*73Rp6@E@_9nM)cR-jtT98FhE9hASSb'9R/sDI*.XiV$_7W]UBA/Fh&QVoEAN'.egq
+r'r.f\F]X7cO7JdJuD3=pC!'@s/5bdKrC.2P<PbfT!E%j$.BJo-]<PC$K>,S:s1LbtpG9_%38
+nkNe?R-#XW_Sj65UjcLo*3IeVm'LW)7q:l/LROKWaR$@U.bM2d*@`p06I!TY<F/[*mVK/>8s`
+ZUD9OP9D1(%dg6(&H?'>L;]11,%Ise2oW/4mUVR;plW<FOb\uh!55]41/hWWDS1N=K&PTq0nG
+(Sp5dQ9%mq;S;$qTd=9%R++1T;77tl^>bj.sOV5]R2_eP.mo@c.TWQbmGndcM[+G#&_,WQaZE
+qB`+C8[e$YcYid&pV-0i:;Y#U+HCl[qHGe%5#IX6tk4<!A,E8*bj+k'XNW-,@f!K9%j0jS'Ao
+.(;Y4S@k&>q]J-Y5fH=V%h@!e&eG*-I744>j]GQ>bK^EDs4US/uD'Lhld2d\Df&%Oq45&8=pq
+,r'Ms7`$";<LK\e/D_ldF@qaUAid*7XAc??_5s,+0U@uO+V&s:s&#WGfbi8.L<tiS\f"eM*F/
+mi9&a=8c+6&hbm;0s<%k.trqQEM44&_(TV`7%o`d'B9],PQ)K"6tD%LV\jGZXCWC=FIleV9HB
+ef$;3n`!0Ws*OkmQ6W\TsI=jK^9EZDBEZfCk=j00S?Yh)V",P=-mQ_HPaI6]GQ#!'+)oU3CZ4
+MPSHP93/WZ]ENdqe>2nJT\-u-',G]?Y$hPCdBl:"@o=_%6UfO'e*DLhr([O.E0_*s%(D4[DdC
+^Z+HC1#HDKP?Vi2R0FSD%^>r'-@DJGj7M%r)kG)NIU=2`ZB+l'>NF_%4BLE;t+7Z)_[2<:PKJ
+;O*3j;*2LA;T,!R[bE8Z$*D?2o0+".c.$H'FXB_pKnW__0K20gV0;JoBf9%''TtF\/6'XX0)r
+o2I1Sepj-J\&/LDh0;OH_dLXIFG_kk/\Z(7Tb%U$QYHmGPin'^[D;GK*V].<:u4W<'uXQtV01
+t-N7Bn=l?Jku3(cWo%0Qdn`sT\A3j:RPDL[@1?7Oiu?"'M8(FB$rfp7>Ab&Kq\nA8D^XDg<Gd
+MEl3[.H4Dd_6b0XH23Kdn&k"b(^;E`U3_u_6]tg=R"H=;$eI<,D0djC=acAYZ3SS'\eWdIsQe
+Hg<Q!JZ:2L`6T2dDm;Z1qpADO1`UQkIS[U)Vp0&/3`.^ZjZX5+TNMf!NpF]u&a>crai!89\$C
+`E_OEAiJ.;PIfNOWO,7ZDe_oW%_::G[]Y'p9BDe1?tmtW<AGUaer&Xkk/*fI3gr'6A(ZBaF)/
+3SX#4\Dnm/15dcL%A@+j:?.RO6ncF_K(3=,K?(.`NFBVl[,HlZ[OB_*@D:'PkX^)qOY*bi*-+
+T?d!eG$5KlLIA*3&e7=>K^(Pf2F-]]0k=3ekY$D3<0$Zzzzzzz!.P'tZN\m%k=)"!IeX"q%'b
+JY2XiC5>6_KdLG;/5!8N<Zg;)/K<*iaRqQ&@kn&"IgHN9E<;&e%"Od;YXCsT0R%c3.4912^$r
+/o_9^gn'06#GOWpudI_:`FX9?=*bK!tWBX#&47$LTPqLF4.XSg;)Meer2#:/uZ#cOkBg:zzzz
+zzz!5O4!r)T+fDe`E-QhnsUfH^eQ:X*>5rMl?*66L=WccpS;Ag@3mgSh;RhGV,Pqaa+RitiU%
+=6***r1JYq?3"&2Z=b4b@E\KdWf:paD(i])9t5]I6#N9<0#"*^FWX3O9BTh[>,&J#2J>CH"\g
+RjE85NsH!Ys'mh\F\SNLeMppA-Ngjo?._Hk@]3Gu5Fe^S_95&;l_"f1h1qobh"f.s6^_'5rYA
+!L<n-:gJk\Kl;E%.d\am7lL(TX$C)i(44J))m=.%b?[[rmt=d9;e\!r4u]5?h?(?hS>5bmqIM
+sWY^8dbo'+AM*=<t0J`sAI0[dB`r.I+LGNHseE1nsR\+>J$)q=e`[/aaGrK$l?4bji\YqF&e[
+E]I4=@+fFjdglO*?aRA3PrZ+c6k=l:FFE2CRurUsID^>u9&F\_bf=WmuQaYcR(-gG4!`OntIO
+H-f:1bmt]#o/Va/&7HBCDt(Fs55JTL/@b.k%CLV&QESTLrIE8/0?YkjFe2+=W9k&hh@c7XQJ)
+<=z!!%Pa#(]#:h<Aj0fIHgXmnS?4zzzzzzzzk2;l%>kC:ok'!R3N\@o*a3K`.31abqg/G0^0i
+!+,(4"=]I7Ej_Z?)(*lT31oW3b.mPO?^il`Fbp()=qq;H)6QI3AMto&Dq/VUnP5I=,qh<NshZ
+,W5-36.>7Z/O_\=-1crWYZWT*&nZH,]<1QFlV(ID[l^SaOS@rj/s_=15?MdE0g+_WY45Y0X!a
+s-f>aT9-<QS?al^`0.t;:(7C>j.O_ifM6\K)aO4R@)C@8/eB%j#X+G\j0$%3uc0/Lr:AnJWQ2
+UVbm5)%]JqUfHWn7hThB9nZ`E+eoekIOE8(4Js?e.sg'.6Hp2l0mC5RRk[ZStt\9A\XInDipK
+T3o53TD5;qp2&6/b%u]uZ5Ecab&c)S]iV-cn?:5h"-KLYQV'b.6[>!dh-[pH$d@D.T$]tRLS8
+"uSVT9g`L(PtlV6\.0/I`[fc95$/PcJVY#a,GTT3,BBbQo7/rVaTqhu9>,+47>KmDj(9ep+9c
+3oiAi#UZD\gI?t%XDB*'Nep/#M\rN>/I%J77W#;ZGaicn,RVb[>qgULHmHO]Oie>dDaA5(:-P
+":X.XG(9McZGr8oQh=9A4s)pJjE"?CpZ'Bdm]Q&1g?W&E7YO?S5k<gV@&r4YZJ,8\kLop40TU
+pb*mWQHHl*B1]ge&Wn2&%+_=bYaio2P"?Wa[TSIGRAV9#aa&\>9Q&7ks#P4Y-sen:<q_XWg[.
+XfWh515sk'N5*B8ZD5(#'[$[9@-G`g8ZYF!jgO-DcR\W4!`bjjK[G>,(F\R<]7F5u&`AttKH1
+iI5ghI+Wm%hAsPPK&4?Q8NU;.S#N4GH?t5P\*pn/6peE2"NNBKlADS>be+V\`,nfFR2A)5;;9
+`64GrH1g<+Fd/q'kHp(dlYXU]8$eYPCPc,,0DZsO*h;kt96P/mcRA[7jCrJ&XJe<FjX\p-T*<
+a<\0U'FN8X]^KHG*<Dp$gYc5k%:!!'37p@SW5V34PfaHs/^\]l#>?=VV8Kpgl`/tIl[jMGgS\
+f\;&hkn=rLiMFXhh@>nUl^Ws:F^C+K$h6Y[;n13(sQBo!]<3r\RdFl1r4%CQV7>F5ne]#3.q$
+XiUC\El.9;N;,2*[2p2<Sgi>33;8r<RccVur;JjmW'q$22$MU[PVR`Y6H:bk7>&B[c&k6X)2S
+toTlb1r.?t*M4ZpeO<XjOC"<cXqhSu:S+NK^)2<f6.YAkhhXQ4gn-J`\L8EP*Xa>\iIXCst'(
+\e`#-]B$_[mWqq._s(2;j9O2j?KR1DY.@[RF*>==DW;-i`#eT_\P$<sanRprc!;j5jME5\QL=
+#1#:!skm1h(Fp;(HG19T*#c"&XlY8(=\P"S%5(O_)bLq?h7/G2)slpB+jPr$gu/DJn%+M9!T@
+TFarB-"Y^X^r+nE[FBIQm-mFe02#X=:VeZ4+DZF3/8cX#W$3g]=cK'7)sG@#_PR7?MH2mD,G.
+,Z09>l32Q6a/shrtielG;ercV&N2hkN`#BmMJ`SX7ZR*#8_(*#E_e2h`G)K-;17,dE[EC)`2P
+p5<+Vlj]N,6*R.LJA7VCST^?F3BF>S]ai)5i]%iZ;2:o-P#2JrJDSL7(u72V[U2rOCO2gK@A-
+Or>]'Fe,3aY.*Jrbc?_L^-um&5$%2fJk>"o9+G'':)Q1/,1E3dK]CJ2EQ5N(8lpaX;keiQXtj
+.?%YSi07<ohN)q0gK)q,--Q?,\=957[o&4oZd3Aeb+Fs#JY0D]WXI<,9P34.AH*4<+/+f_1JI
+RQPa>;R4c(2Zc57"4].L5_oBMFg!p&sGjTa?RAL-'Om]>?5BcLL4t(g0srC)QGJ%+N&UW3u=i
+uK9;$Tfh<TY;>?tJ;Phd;+LGt,"XeNR;FH]^\m(1IV=BLt-5KEOpKD%[9'dY92nfEiOPfp3X0
+#3tbO<9*.Sj-iH\maS].Za%Jl=h5;IA/Q!!!#ec<W)[\7^jmVNos8]%HG;0ea1od;?Ua3aN]<
+2.(s;EQueQSMCCei2tLPCSWbm&+7Z$QUIYD\kT[?j0i_OZI^GMCJ@>8"=[XtXh^)79m.rl]cJ
+ME#m;m4^B#^FbXm]=OR,@>\Ki@Z>;YRg$np2tY+\B2%GB`DaMaZ#AX!Zf@j@_ja?3f1b^c7"U
+,>$oOpH)qcb9Z0F.RC*2&'c#9EFZT(ERo9#L/]58&V,0)1uM4"eq.SW3>O2EULdWSPkBaOTpj
+e1MR<p\PkLa;&SXY$dlq?F^AoVc=433/1gF:2,kg,08YJea-4NA`@fh%Z=CK"o!U-10]/)6`k
+1/*a>'(./XJkebA*q^KQ6$0'PXAb5bE^cA*;H&`4]Z&@:AR:#T=2#J&EV1;>6On"FgeXeTSD0
+;kUS6QUb:J0fMAuzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
+zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!%PaQ!XMRNs,MZiX9K':ID,K/&CRu!maL%:I
+WgkX#n?>]r4t9/4!e7^*^tp-@S*,SNiBHrlss*l3r[B"gu$&:tlt_[bH%F[B8'HY3VahGJU;]
+dU+J-Q)dZp%J"@!`5.1:pc0pW[:PJWir@<eo7-f9kF[mp6Mg:\^*9te(R<58\qA_n"D?IM/\$
+gAA_!n4krPos>nZM=X-IZEWp63k=oG\O`3"D86)[no4He"[YG)skTll*cfZq@GI)Tj$(?46E(
+2A1485H8In4!&QUu&]5@`X?KW,5[OQ>+iaUUKd?T0F,,='J`\1'neWC9a&Sf#d+l*Rsd@P^?:
+W[V])gZ9:"0LYB2qVj'YcgSE(kmgE\LX-22Fh);/h/[]>udULDmUo&@%C0N@B69oC+_FRJ6P#
+>D!#AN(M8.@qo>-3PZ.fBeU<'QZ%f[rhi@;C2;lMOTZa(eO:Pg6im<ElATVZ);R'jFMh\e9&9
+2omt30*Keur@.B7_b-An<M`l()4<oME`7#-@T0_[(b)cBNRa9/edGubeh_-scoJ@FbI6t'^7<
+n^q!GgmgH/9t8VaH)[S;4nmC929.O@!\A#Y,=<6KFIji$N=HEgI<P6>[UZscUS;Ca[P2Bt<,=
+&@ZFrtYRN[_3DcF&HS>](M^s6*t+"rDK3PcVEmcAkX*lU,G/8ZSR5OCF5Z)<GS('5H8(IQuse
+D`O<&cKeHoi"q>D'>;7l\*EEP.Am;@4VRFnc%EV"G:$@tue3)7+%(^R.<GU@U.S+/H.ciPo-T
+3-,l%Nu$GKP!TU!d6!9$J""dYq^KSR-&7CgJl7XCftJ9/YA1K%d$f>Zn>n<^=<7KA,1>E_fjj
+3]/"EQ;((GLM]e'?211P#r4'-Wmt].(dibcD,>8IG"qMgkG2.V6EGSYTXO=885Ir2KrmCYeuB
+[to3uiT$:acRpXI6u_nQSU-Kb)WZh!S0H_6S$Kn.mk5>^)STXNU"9=<mMN;:'E@c7%u%mMG45
+8C</='r*orN^V%"Tt>$e-;MbfA"qdn-AGI<[LI4~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 621 510
+%%EOF
+
+%%EndDocument
+ @endspecial 396 2356 a
+ currentpoint currentpoint translate 1 0.39 div 1 0.39 div scale neg
+exch neg exch translate
+ 396 2356 a 229 x Fm(Congratulations!)f(Y)-11
+b(ou)24 b(should)f(no)n(w)h(see)g(the)h(CUPS)g(windo)n(w)e(indicating)h
+(that)g(your)g(printer)396 2715 y(w)o(as)h(successfully)f(installed.)f
+(Notice)i(the)g(sentence)f(which)h(reads)g("Printer)g(your_printer)396
+2844 y(has)g(been)g(added)g(successfully".)e(Click)i(on)g(your_printer)
+l(,)e(which)i(will)f(be)h(the)f(underlined)396 2974 y(name)h(for)g
+(your)g(printer)-5 b(.)p Black 3645 5692 a Fi(25)p Black
+eop
+%%Page: 26 35
+26 34 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fj(Figur)n(e)i(3-8.)e
+(The)i(CUPS)f(W)n(indo)o(w)g(f)n(or)g(Y)-11 b(our)25
+b(Printer)396 3700 y
+ currentpoint currentpoint translate 0.65 0.65 scale neg exch neg exch
+translate
+ 396 3700 a @beginspecial 0 @llx
+0 @lly 634 @urx 554 @ury 6340 @rwi @setspecial
+%%BeginDocument: figures/cups_my_printer.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_my_printer.eps)
+%%CreationDate: (Sun Feb 29 19:55:37 2004)
+%%BoundingBox: 0 0 634 554
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 634 554
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+635 555
+12.000000
+635 555
+1
+0
+0
+256
+000000
+ffffff
+b03060
+d9d9d9
+c0c0c0
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+0000ff
+990066
+ff0000
+ffffcc
+00ff00
+e7e7e7
+6f6f6f
+800000
+333366
+6666cc
+808080
+9999ff
+000080
+222222
+ffff00
+808000
+008080
+429aa7
+00ffff
+00373c
+008000
+ff6633
+ff66cc
+7f7f7f
+ccccff
+ffffbf
+d4d4ff
+bbbbbb
+8080ff
+5151ba
+cc9966
+996699
+33ff99
+0099ff
+1a5f67
+0000ee
+551a8b
+a3a3a3
+8b8b8b
+000033
+000066
+000099
+0000cc
+003300
+003333
+003366
+003399
+0033cc
+0033ff
+006600
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333300
+333333
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339933
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+666633
+666666
+666699
+6666ff
+669900
+669933
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+9966cc
+9966ff
+999900
+999933
+999966
+999999
+9999cc
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+cccc99
+cccccc
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff00ff
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+8c8c8c
+cccca3
+8c8c70
+b5b5b5
+cdc0b0
+eedfcc
+f6e7d4
+716a61
+8b8378
+a6a6a6
+GhVPU8Ts.([][HSeFH8)Lns*n_f=\-Q#:/7PHfie`FpMm+FC#/-U@?7*4Pm&H>d2DKdo^gs4
+N\d&2eoS'EmMN?N?IJ)$!V)("*35!9o&kJFpWF5^Hf^+?_Cj7!d#&^74!]hNKrPq,QKt5;C%8
+c:_kq3In0'a=BJq;!H6IhS_4MjB)"BP'^6MT-%);i7].q4_Lm->8,fGZc8d(:!l2%\3hFV^'*
+8;(%O<Dn`m4"=Oq?3iPgNO=!C8_f=l/I7o=T<:me/$kKFY!gUp%&4UHl<PZN8m8@-33:4.S-_+
+%^f2N]4)lco:%(C,W"&^otd(G`lVQ=-"Ke?-(pM#.2(6HN,fV&/#h'Oht(H1.,`W%^VLF-jTi
+aa'`'AkeBDQ&,s>[Y(?]__">;7XEHJ>uu>tLHBWoHn*QUNcEK/HE8JBWXtfkEQ]C;O%B7M"f4
+M2P;-gR(Z3=k0o[lG#Si3",N1?4S/#&(<(DPHYca=O7#@pC._$>2:9$WWE&CMsR'nHfDumI"r
+7Zqu^t!u-^dLG6i$O!H^dLG6?m6^V0G.[,Hj*mjVLB9oHsVF#S([jpcc+MJQep5YmThMh,>!:
+];JR%l/A;&c!kaerDBt'>EV4]ch6YY$\rgoo")m;#)bE@HY-)Bc8FND:j@EJ=<?U7>-dq#[.F
+muuM7:WsT,\05-W$,cUAjlRkAkRI2D).,Qjo-`otsAIN![gtRA]=ddaL;SVJbbTU+!^dSq!70
+qr-YkgescZ@7<f:lf`;g+"tgG-oT[ic/=fMDbXko'&)V:GR5\\eN]Y>4ah[E4j9J;qYUdQo$a
+fO003$=FPGCnkuBr)0@oWH%*FV>PrA_:B<'XkQJQZP1a%CQrU!(#K<:a9Dd>Zq\RBK(^PYM,N
+lj!Qq&Gh_bCl-%?!?dHX+1'Ea8F]@1>"]64jpR@_UAXe6_XQ,*:Zh,i9Y78[_2R3B=R)oQekY
+PD4E>79R03gR1dM2Y>%O][u9G&]K_"NF4TV*hINIKUSk_-\&3h24t6A!g:g?DlD2nIQV--jl$
+`NqV71-72ll++^BL*.eQFI7P?ph"-0_h'ok,eSp2s4aXI7<ognuMI^?V]*8##Q`_W"K-5+D))
+s7d!k<1YsnFnIlC1<O'c?QVPBq3.a(Q(BH/\Yf#?&Wtqo/L7gJo?s,Cr-S-).kfPf0'S5C0.T
+:bO0RZ2oNpfOV7$%ql/S2]iBBCbp$"D4H,;pX6$.f6"ir<ml<,(>Qh`G*5\CT^8e7Y-cbatld
+D!Z8jh3,WVL,^W@b4%k7*d0m>IX6(m*jcPqiLH4.d=CBR%E<:F2tQ6Wu"#"4ob5.fXsUur)p)
+e@6X[`C$DT]rWJ[b'jb\EN8:Pgj-Q1\iEGJ+.]pAZdk$&t:I-1\r))*kYu"[&<'AQDIlkuX?>
+f9@O5)Lka*Sf_+L4^@`(M#u27(f)Z+-N/q,gEm`;jJgM!ji'5GVIWV.[36Q05"<D>s+Qc>Mgq
+66f-!c*FN%U!bGA@+Nk!Zc.j2H7uDo?J:f_rF72"E1-?)l?PNg-U7j9QUm0bm=EH+aN9W#HHV
+ZNm!5!eRn5:3p4@ngW\3O-b0-SNV'O0GT$"Z-VK!M:OWKjVMWTgF8We'Vp!W&AT_,r]r-S.cD
+=pfk`E&cd8C+0Xc+i_anRM+LA^O\e<bp7FLU2<[%$sT4.^..BEk0(&AO>dk)<f?!W1ViDG.q)
+JBS@sNOOZFNoXL<R/`Kp0a"s$XSu#8FSk=CA`>(PF26-6gmej')lG]dJLHT>j$,)hTE*diB>'
+d=EbhR=fFgtCtZ_qBJba3`Md`W`X(8R^.[%^kj5I\POjZJE=pfO_(HD+1KV'JtN6!djFPPS*9
+>eq%adSk`/ZVL\[#"rm^%eLfGCD*aU4\C#JN:gB5[2n\@[>/mOn>"@h;R8;dC@09or:)ECT[O
+n;iH!sQEjD4E'9--Va-]fiKeG>T,PP-'R4uKsl[$ZL4j5ga<"ZL@;jB%o=70=LPC)7/Y;c]B.
+IaeX*t8gq,[J!//nBe!N9;KZDt_."0<FJfe(S"=X#J4j2N]'V$A[<9GD8c*l[dB$QV5j=lK>l
+jmG/1Z8U:<rJ#[h*]Z="FU,DqrX\ko8mW!@(btuidK&8A)@R@*TdngD">C;pdIk6Q/X06RD/>
+*VfEeiCaDsju6c'OdN4g8$P4Y9GFh?`@OS+EG)P4ZEL_Mtqu\(:$dX&iBQon6D0Sp1e?af[\M
+k0$2!cS)WP@;ue=F_i.eG#Q5&;Elq&iq@plh&8KEUV<c!AEfBJiBAj;ReJi7EC$gC8t^7?T"U
+D/<TO\YE:4*(:Z--!MGCQPq(/o$4+Iarb#:6^7*ha045^L2-c'#4l:-s3!"VFlr=Joj0QeU3g
+qWKsSJ&\Y"kEc\QV[.E41I`!9;T79^<'de\4*cbh!/?+m.Y:.&4d<?`9>8KW?1QpV'cM!oY=j
+nNnchZ+Z@Y>:C[HjJ\bG/\HfCiJ6srm3=)DcL156]l72kKFp<Ni^d*o^cKbrqFb.?Aci=%Gzz
+!'UsLa.^gDBoe%LH@9U:gE-S_,O=ab4MpF9h4_,HWt)?0p%?^\W_P2N\5P:%(#EFN1B$7?f,d
+uTZ^0P0l_49J])5r&::5J)@`R2;c0:;3cMnkfrP@cIDRLoA:K3l+bZXJhma_$8??M#jC\,d=6
+!M#;IQuMh;Z<d^=)Vlmp1S95OkZp6U$H.35d.S<<e4Ftm3+OG:WY(+*H1ZnUZ`b+mCUp'U[;H
+sb(?mFe:YBU4n7BdYZ9THe<L$2_[,bqnQrSIYE^-`*Se/"cRZ*`r/AK4g!7%S]$n^(HCpd-N1
+TE1blH)(]JfY8@g'6tmgi09k3l]s7o3-F4,UeBm<1X<->r<Sf1Y6W3->`)@ZPkPQYW[-0RKq(
+M\3Bi>FVD\+g)fgZYu9ec>W&f>ub+gTP)*rK50H,T2H3J?Zd4D.K"&LEhk>)_"dg+[af*&59e
+J*29h-b4K0I3?J5Tm-`U\AaNO$#jW3-i$3*AYl1V<-/[^Se>AtCTa4XNo_`hZrWdXE$\6NM`H
+(Z4eeUDA(mVQLMXsj0g?fn:PD(.C9ApZ4uZ4M!Qg=Ei]D<kd3=KQj2lXM,#A[H)_YHMPq@:g9
+l_=m9$RDQ,WRi]uA9HCKegY]G+h"OIFmAFYI`YE2p%<_$?iIcL74%jQSRijj0hn[m*$FHdIoD
+VoAs6+cC6bE^C0_(*YbS`M^f24^!A%WUn-aDE,.Bdp_H>kVqdT]ps[jTVYlefApld<Ii[GC,k
+<$/P49TeVJ5$Y-q-7Yhs@J+6?IrB)r8_%["[=511O5"uos(-esCZFLr[C>h4_u!2!?#TAo\hF
+ECgT,X3Wn:D\+.$0=7f;'N!c*:Y[OtJ;Pl7FZc\-;1[d1>^^$t2?nLFaJotbYl-+O?1B[^Y\6
+ru^%A;]g?AJMN>Wm/O3YK"8f6G1e6R!@3Y`=2QW1IfqMqat)G`7oKC;091S5"9k\*gp@nf'=Z
+"8KZb&G-?8H=#[[/db=uj]f0,?NF_^(l0Ljhp31k1T=6P!5,u<q]X=Z,pW(iGHE5P/;q[bj;s
+m$-166:E]rg#a:=Y4m42,KKXct=$e-9hIn6"tcR&/@']=;UFd\G)U3,!a/?)5;.TWVORS&0k5
+<no&!CK3iN><Vi<lRF!@j>I^MC0oXUdF%<'c0:tWb%fg]<_Tod@r*s9UGZX5o@;F\?B=n$UWc
+4)H)lDYEFFZkVo7u[;6p[X0@h`n+!1))h5VK#=J;.M2qu%5<k$f0Xn9,ADgo(ghQ>=$.s\>[[
+l1pk*H12g>.$Ec[L4oup<*=mP.do+?,M$d4mMM4URkO(s*Hu]1QpJWGi&+<E`H+K"nNn"$)lm
+1CQI$nV:Wb4?qo^^NAN[f[&/5_D5W.nRj/`h`,=^;Dk4Qicb5m*%7noh\9j^b5")`$7<]b`aG
+R./mMORCkj#B0(2FYk'0=pNd@#1SeK1,YgG^)CSu&5VB7%c`j5AOHp#>K$CU@Mc.l;`lXRj"t
+pW]Y^GIFZl<GV0'9P:ub03`efKfWE7qR5"Y\U*u#6s?e[Xm6S#U.c)uXNp1KS!B3ZYjAEU$KI
+=/s0?rl%IFB%rkkUV8)*`P2CZTjD5=e$3432PFSN>1/(Q2o%?1Nl4sR3mPu=<B?b:^4-sA:mp
+*rrek<8l?;@)?IgkRrL2>8/i?T\90KkQFM@be2hIGZ)NN2/4'4?g&/S%?Q[6Nc[BiZTVnOWEl
++D$//RHBthl)r,[UD$kR@H:;#nl(@+oraaX2U"X<uF"Oq/:D_,Y?lNGcDZX`V@`iku"`<I6[b
+boH-12eER'eZ)_54Q:bj+H4piTsnq1H,U[4Ti:)U:ojI8A>GgGV`p[uC^#&#6mKO1R/u6LHcU
+^pYK0Q(=gk\*K];[,uJDfW8n;<_*7fZ(=tfrkL%jWI2r4oYmeO^><_'[12&tZo4b_9.<9,'n+
+S6ccFDfO4Au'SM-T4Emh:GHk4(Mn*N4\X"eN2f%qZ0hWid#eWdukH##?\.F#iAp",caGPu3p)
+MdNimA>/e_'Qs_E9h=VXfqAf0nqk<J)D-hN1ot."T6&.B7ts.jfqE]jl*9Aijk*N6BXZ++2Xn
+$n?9+\n!-MOU,iXdnqKgG[s!o"%OtYq<d1Z+Bl/mt];ipG]cPkZMB`ktU,.9h8akU*a?J=I@L
+")?IFt,UZnii,YI2oN[<.1)EprF;aFq`nlZG,9hWobq4gVrYA6,o(1,2]7kJo6;7'"pa]<ZAB
+#.8bKod\iHXhn2'`"c2@#;nG@mT_/<d"J$/l<#r!N%\!!5\_P+d?p?0cPng,+Zl_Mc&e`q<pu
+S^]e.Q&;SX!E:*$YKpo@+6>.msW\oJ>9MD]oU4L==U'0g5O`Tkb%4>WH\[k"h6CWkL.]sY5u`
+naf[gWT#m_:--TpXou(Mnoh&o\$]-f%WTnpRYL#otbg">@R7`DQ*>*9VJSI0HIF%I'R\U_lrB
+Ch$eTMij(#@p*LctEEdD)/C6H?8&YY$@'f7%:KkP=\]`pU%rpFUk1(,dOn(us_n=^!ehF.kA>
+NN:;_a=cO(Q0FZ4j?HX1J#Kg+I?_#-`uE.5<&qg]dh`3B+;QZ.3i+iVM:_YLpTOiFr`>X%0AB
+[5TX_Nr.PmIJmJ@X1.a<;+%Nm41&:/YI\%AY)IL7MQd!Hm0$c<r,NIbG@pO78=F42De@V5f>F
+)=hfQG(4$h='<GgrBp"k_mm:]mC7;C0%38`M]-!oeQ]'2#VotpF/cX4-E/*1@N5$Qbqjc?r2;
+jC_(i%[h#(Wm>Q%.2>UcHT$s<_0bpk#ZJ;YdZL_ZJL?lm)'/sj!JZ)b2!DaQ0.FI9M*3lDUUX
+AH>GB&Phri/r3GI,h3tl4_4@iTHh5uoi>J[4a*M[lC3"0fHe^PCk]kki1L,+jg3#>5LbO&3m.
+IkI;mF%#]%\%]\G$ZN(n=obnQO`>HarMsXsU"[%Uu5<3g<40@m(IER^:-hZ&&Ue1sfa(A270U
+2<LF'eVaXhY-tU:aG"jH8"8*[cd'@!fJ\Ccf.tV7/+)0ee$1/^`msU?BWrpSSD'EC]3i0W]?n
+ml8O%"&g;Y-%Ju*;8>;_B4HFn/_JtZoA=8G?=%W9k6D6k,rj//\P7h`RBU0$YTD,Yb]?'75l[
+oL;;@i>ml$t5A@aK:YWd#*/BGp^)r!CFV\_)nl`d&`IA$j4SZ@V>omOmt2EoQ&0E3.qf+K1AW
+kEp`*q":*Aa*h9>?SZGhhOeIs]c,V:cj`S(@ii<)4.Lt=!M+P.U0eB/$kLl?_oK?,ZHB"CY]T
+]mZqq9#Meul4C3?]?B_3lTEVc7@9:5nVqq&=%e2@.E(l*t5"Q#tO'])2DuLkSjBdjc^QD.Z+)
+/'hmIDf3\^)e88.>V.jKo4,@:GOM6C'sgG#/t#(F#mJ'oq*Ts"$KS>8L@eJ[B"[uW<:=NL1KA
+\c$bYbbfiR(#k]\=C;Tehcs'.,::_UK&oi^'oC\?PRAl"DWm9o=o,)@lsAE-D0WT^Q!`D\*UG
+h)+OBEDMZg&;O3?gQp=T=&9J-*CTc:-K@dE(0=E-Ku"5JrrM?=nTGT=Q@%:McQj?XGO5*g>TD
+o+^8b)gPX=YS`hNAhN%)o4]1"HUq?fO>e#DIg9MNk-!JGT!Hb0D.\@@6V^E*oFEM'Q#G0Vn5U
+si"7Pc&NZ=1nCaP$.K3PPF.NUVnpp1Ej5pU$pZh@gK!_%j:-\'h:Oh$3PrjC00B(l(!giD$?K
+@T/b_FfG:k&hFLaW+<K7&FI)72*KPckFh#*A<Rg(T3j!qGJ\D*:[Vrq0Mon7[g]=O!YsXQ^?V
+et2auX%WiX_+$>ksg.l2"`iL:`HRoo?2ITprAUqJ!UClUO&T=]7Qb!c\dDqOCi.YEY[Pk3G[H
+FnAjlWj8gzzzzzzz4qGeaO(?nCcWgL\&4U*r,t^tJ6@@^S"<3\"0:i:(&l@g]#=Vr"\-Pi96"
+Ks>U^%)j`b8)6.bGt$M26'AP9O9_U^'BJ'uqWAV\&Kck`\\T)q+aQH=."U7<G@O34&8kk1dSM
+Uq_WU^d-&jb@Qu3:Q`AYqh+N+0Cas)16F#c2F2Y@1`Jsr%##/A1(ahEN'>>B$Af#9"2fqXi>l
+eu)C[g#.>*2ieN(@biZ,9BDNd*.BH#Ys"2d]J^:G0bRCjjsH-&*Sn3\Fj\kM%bJ7?;^5^Hf^+
+?_Cfm&h0*zzzzzz\:<_OJOV$/Rs?LgE[R=8F-*:a,5M-1DtDuFVQMpu.bS=<i@3OlDhVh@4!)
+4$rTW+pk)[6.q^2-%]OB71!d+\64#N*B\).XjpE<'Lp'tGR_7peS4b"tG+n!)iaF?h`HW6>\b
+r:VC7csTs`cS&Q>P1b:fKjg*#5[E`:&*]K7I6Q6%EW=W1e8<](-\ZWH81OB2&W[hDY:Kjg2BO
+N6c$M2Jpun%;!B\ZfqaeU:9aoL%K#rg@mp(GMsGT``r<b:6W=a?e8VJO*L)__-bG8aMf7Ij6$
+aWBUaHS6#f]K%UdkJ$\lL7Bl#9e,9OPNND'6NQ8G6D>K)K04UYTN:;#J$W70Q.*asSN`RM"^!
+@<?/K+'Hea*BaLD5+j<CD13SCe9M6?#j;QpzzzzzE$]Z-S,qg`9F$deV?4mB;ZZ!2WIXQT<'Y
+_:.P<&2r@"CgeaGTkdZ=FB.=^9GG5f:jn)>;Z5bmS$?M'ln^HR>HR%IC+PEb%Emk,;j7ukbqm
+E6NnV\nX+\Wl`fmXk)tmf5[1qh**9C/51&UZmb%4-P%%l7e'oE]bU_]1f.[j!".HEKtTK/e>M
+^i`VO>oS0oHdF0a1qs&kpJC'O^-$T?:k:P)A95f"dl0X'[9nN/a'W&8`0>[**l1O+T-V.#af*
+ueSoR:"ck/7s[eDK5LF`qrrpLrg1(5j1IX59CFMF]CB^nIt*$Jgj$D+A)q)BiF37iZhL2-,%.
+0B@S7SCNW<a#JMRU/\KEO1F#anjsYOLR4T2=4#jM=?#t'C<n>L]_%$0\0thZ\jf8C`"7cJ92$
+UF@%pFLefE.R=aI\ZH;#\kHJpQC*_F]@,a%&GHJ1A`/EGqL8<;sb9IG"?aF<U!r8K-*Qcp\Ao
+[r)J8&Q:B,Wi"DQ-,?W.JmM#Un(tuo[4.h%4P/#.[M!Wnl_hpq,Er>h5??@I.NQS>^B(d8!!=
+dd;gM\,M%_%\g4tr_kdBkdS&a-_`D%k++?aA>X@L^V+5[r'D`-clgA^jlXr_:a3ASb-AWBgK]
+!:U#)-XQ'ft-GeQ&?IQtS+I*KsejWfs5k]oeg!V3`JAQ]"0WmtE!`\A,r(aY&V<I`G5m7F/R6
+aBKa&?-g+OH,M>h45)EdQ:4[<,s>Zr8>;k$LgPIs8iP'rRUJ)d;C#,3Ve";mqe"iE-VSQI8FN
+]thXToX"1<5n/mS4=MuKkiEt62_n!J#qoN\salI,'D_<<&UJS+?h65n/j2kR\VATM>i;'%V,J
+FbQjH-dTl2a`i8m=Fja>^=[;3%&4##PEXh0iiJuzz(kLKEeENb"@hMXO9[4T8U(BXgItAc7=B
+C*ss'&mms5>W@.9(QVndl>^d1M'L'_SBHEN'F44uJV;ZHU`uE*FTih!_^6U-YdO8^IDqo+!uP
+V&+PGH5GY@?6utaMZ8@$r1j*8*k?cIhltQQL=!fbO%Ogi;;$EFor=_KoK>)EVXg`Y@Z$n#5tG
+`66],GklK7oHZo)/ieWA`j'$e/trK@ma'Db8g*_t0B%D#D77#A)u1+!QEmSo>r&[.G*Qm8FM]
+dmK4k85S]+MD0<W#]Y!D59c1^/af$bZ3q,e8_k-2#U[*4PN2gR"!LKE+Y=JSr*Rh/jF9RicJ'
+=/Np6_V/i3`;l0t43#bEWed6ZOmu"&^T_p&iY]fH"Sf/<*mfXS4HE'?+OPVQ%FVbQ$q=R/fa(
+Qq4`Su-53jVhlcp-!I6h$R7'IFB-6l6TB^EL(#VQqX=S?K.Q0r=)%rIa\aFL:nnI_QtCr-D8P
+LgR+>5%,H`6YZ'FopmYK$V4&ZH$>+f3a+/MrB=0;.InDkEi<@;JG2UDm\8[Hl;POd4In/#XHY
+eM=a\Nid<1eTMZE/VeSjs*?8q+ogEW!%fI96HjrB3bqYj<MclFuk>^5!T=%.m6qGtL5LW_F#K
+3W>YJK8SS^/T@W)CN5$*!p4qB\6hC"-^MI$c?DZ$mWE7Q)$p9JB;SPUIpW>,+D(:>s=:>\]UW
+i$d%I*ASK+81I?>*%Fk@_nSs1oKiaG/E;Q\_UC+^).c8oRDJ@L3_QAdhNa22jDS2rhG]3iQ/W
+*Ebj-p@fnG8to4ph*]dZInL"'=uXCd\m'r8pcRAfT!bGX!%n]+W7\(iidPlHV$GH/Zln;bVL0
+[R:R?n'^%o3WrtT5DMgk7c$CV2aCUlVLf_"n>]@6$QFj+CfEu*UR:Z\*H!)n:Y7m(EsLr(LD&2
+%8u>AjqCG7"DE)A*7ZuF&aW"6Kkf>(Ul0aaGR_V7ofgMV12AEG=71Kj2!*LE32LT:8Rn58=f=
+O:S0AmL;#*W@rI!JMW88l,BWf&e1W!t2;hAq\KO,Hf$q53<$88kP_GA6<$;'%dC4!9_.'qaBJ
+;A>^bT%2YnV$B1&K(P4QA6m($dbDe%W=&gr#uQ#bo^V><iiJIfZ\\E9V=`TP<P;m&Z8?fj``8
+oe]'-1nOri?dg9K:3P[7TTCY1otM1FCZ.XF]'ogY4Pl'!0#-<I)r]jWkPL.X*\,Ppej*cXD:H
+E!+no`?a<VtB]N4"mW!Gj/dHYYs+Ed]bOoYR+Xq[p/?)Cq`6+Ce*GETM*JE/,sc.E,iIcQTbF
+,8p^$N9DErKGp>n$a"+q#-(YLBU)Uj/VKb@k#*-M6#mRP_;Q<ZAqnDG#h,Z2AVfu4+N?erNlU
+;Pc'9tZ];@K!,9-D!a.n\.%_WG,5Ze]j-km;eQ[8Y2gYK<T\:+>0l?]/+rPY,F#4*#:+gf*$-
+8<4%4oX;`p-6;9:@\rH?.aLCJA!MXs$PT-$3OeYO4m_7AcE`ETm&NkUDA0UV-%(CRT7R@Gh;b
+R)`20"V`6e$mFIB^C4p+)kK(r*IH<85eE?<34%n&;nm%N/'dSnUeYJ5<n=%I7=<2R&8daO8*h
+mE#JEsAq8'MJ[3Ro1K,B@iVk>'f+]aZ<Q^:jW*kp`M_=*5^c'%?Oo/]h=l?`(ITg-/?521LN*
+kQ?'%S\9a>].sSq52_Z93U5J5u*o56g$a3uKq8?-Ni[\n8=XZ"4B+i>GEHHm-VPUMaX?*/tB=
+.p%'oeCC&(:?.W3Z1dkp>'j<'bcq7Y>.j.Xc.Hkp`>Shtd+Q(j7tiI?9eEVg%q%%cS:s)bBE%
+.#Lf^?N0oG`G]kj,"h<#nQVkaH<cKYD-6=D=JT/6V'+EaEa&scLT@6-GIu\ROh0/KLP4Q.NH:
+!H.X/D=>U;=:'g9M>,mE8j+MF8<A*6gpn@#Xt_ED'%0tlUCrUige$.!O#!GDh?&4H%BOP\6d/
+ao2J+?WMK^9O*)U^gI[(Oh*@2ka;Ql)>pC@7ps'GCsSrP^;.O_TTn7fCe?/QDOIOK$PdT-bE:
+9FqqHl7)`(UKgH?>3_pejLt@["F)%B;8jg<s",a]2W-G-,+rDfBqbS?0G;CN8;'"Q1ne$P1Nq
+Se&&YJnj_?2_d._[P"6$V=XF;[7GiIOX"(8$3J^h"sO:I06`_PF209R76k\0.O);\1"[!eU1]
+KEnYGf'@&n4E(`bnNhEX>&8PQ3e-)J!o\^PJFL?b5^6Zdc6L!XDK?\=]-O5fs81+[q![)V.6s
+3R$e.h8`Z9+)iE\uuY-(>gJ"K)PQG5(OJDCt*j[4poW8O"B*j+],4eM<Eq<*5\;h3[=lK.&?n
+$p0"<aMllZRRVCn&tsf?(kRgOS5.'-Pr+NT!.B7p9q?S4aR3Q=/_IHUqNN0[:+6mpuCQVcW(^
+`^+'Xp_P@l'UI46(8PbU5q%*'>HMsaH!*4j0Tdos1\]oM$Bk3K#PIbndTU<a^B#gsNgg578<a
+FZDqBGs/l_l:):K3c6]tXddi!AT7GdJ36j5C-M0#]2PHueeDX3?WRWQ^(?le6fbVa?*XF6$9$
+kl7M@1=j_)5Ao_E/h?ZsV-ZMWrtPq"P%IjsG_W0#=JC9/Yp*62UJInr#")RU?6m9tX,=UP%82
+.qKng?3PGb,QXk/ssI$JiQ''WE_NHq?`Y##+ealG%"XYra*H#BV=+IfHg]V*4^,\bX_4uoEr.
+q1+$p.D,N.\)Q=G]6f3:-_3CbSGqa+S.i<$I[*)^rmin09bK?l"riQQ"j,fAEnoAT#>=78^CI
+UHEI(.j9fN_DNdUeckEg5U@bN64/D'>6:Ts3TCamsPkZh4;/S%F29>@ikugJJ05\B$E.[_^j.n
+%r31<a#/*3ubjYNA]1aAed7W;r'A_Mq3Z;LGukuEEEm2G9sdu:;BX>dB$Q)>K_A%ffX)!gRpB
+E^IU<dMmLLhT>noQ\'4)=E7)E;_d9U5D-E7?\Ht5Fa7LE-(7UYJ#iEndIGkKff"SE9SI:i?hh
+r\HXQF6@nbKRgW&h%OS$%b#JB\7:uY$c*<5/Q_P1^]%M"QF5JZD05jSRNO7`Af6nn2B^(MhO`
+j\b0RB1oCTindf<p%b.-Ykm+#m,CKBi]`3rs/dP&lOU;jR_n7HN<6X6:;6#'i5<fH:\)!!%P1
+^r=<>?/qlk3\P9-U@+%W4J$!28(0T,mOSq,I;pk#;=/3QU-,8kKBf&<T(8WL/u:[Dn".%do"t
+@QM^]0bmN"T8+[=N0s/=uALB)s%gfKQWcb`QEYN3_[FbPEu&>N<`Jf/NSHqZf3(QOE/.&\OW;
+/*?.@.s#ASKJZYM)%3^a.J9hW&9OgK82Sm\5't@=h@.aiX:rVAUa7ZpJVYAY,AF#0FYci8R'7
+2[eF;;I#q["#@ooe?&u%,kuH[o4(?X=fN[uB%H,`9$AQqO]a^="oGAAdlOA+diCN35`%&pD+h
+`6_Gj32X`RoqG-0\QL8Oml%QV0",L@jnnPH<W<:O9m2UFBB[_GRf7KF,]K<=4I(b]!s<j!2*N
+X>dB$'rDk]-S:DP#'RMDB&!]77Cc#3'4_GB-b>dp/T9i?J7NXGoVoq@<s^\<>^@+oLW,O*@l'
+M4T.]4'/a[O2^sj)+L,/*bRe2Er1#PM>L^_d>n*RL@b/<oR@)8]h0GW4i$75ioj8f5\zzzzzz
+zzzzz!*k>$I-'/oh`(k\Eji/TK_W>2cM/]XclO%?=he8Yg&lsfo+r?5HXJ7$2q^E;:]:s)kU0
+g(npl(<rS'+,%i^_A&c_JDJ:8d.Z2]hSV)S%=^&u_X@`=N1#Ckf!I0ZDe=aJ3)5T]euhZ;qr8
+l$-<*RtVtVsaWXPKk)HERGLI*)i10g^-&>HI>o6@#'YS"rN(;]tt1:QX93S^&p'>c'b!24Q(+
+mNAN=(fKK;4!h6(&<+)aTQjdem#64`(zzzzzz!!"t_V,V]9cC)Ff?un#E3PbT%<Kg$FV&s5b.
+FC?[6VrrO'Q[(kJU>'1:`rAkoX\@T`_!q4htS#dGs@;W\040m&4M&]nP]:G]eLHD>ue^i!`24
+JT!Mak&lh%a!XI,hk(++49f66miDl+K#cIl1#k<J^oLY+8TcLDf%AUfE_t!&=9se#5WR!T0%[
+\g0`QsFS!WW3#zzzzz!!!#7=oL3&riIF_c.'=GlC5@'^t#t)j["6cO'>I&[.i7`*T]S6T8_Fl
+<Ju=l&r6'W3\)0rT1WE@;ca15,!.E2W`sdL8Mb"B*mEIg@[BZ[g/u7)m$fqd<N7!N+G6"g0Q"
+&`U>Jl5Ku![MV"Ya8SS<>,MNXh!S>s^<.u*S,fFaHV$qu&Ca8L,LNfb`LBrKb,dd%SeMarl#e
+A"db*T28)UU:c3=8@k;*d()9fgJC"'9Prg"R/pUC8BD7UiNTc:u!%b_u5hdHDJT`<ph>qk5*,
+EM=cJ+*i9gI#dU0uf(J#b2!H]pMG/N!qY1JC,L:=m^mO)0DDp[N3^!iB\"A\egdjMjoO.;T([
+'0%H)(],I5YtS!s+Y\q7$n$6$](8Clel%zzz^s/VCK:e)"oII,^%t6/#!rr<$zzzzzzz!!&Mu
+e^F9CU`s-A;p%)Kf7L&\#qAqKO_72W5L14A'V's/5k(jSN39ANguHbm:9pr>1#$HaF0%^A\_;
+t,T"JSk,rV\=p#u;^aDnIkL$U5eDN!.(mYP<Ng;pFSKiT4n`U""[R(+!p&=6K;iNQS\/BmV;p
+.+(C.a.Ua-5@WoT"Ll<;Fu+5ME&l,)3gLoh46aYl5q=cB!CoPeQc:(MIfpa<\"!Fr8l$:V)Q%
+U`42"c#`ekK03*u]"Z_A182AaO3K"oh"5[V[DDd\cXLY4mPTK(g8_6<_YL#q(Zcj6M77-AqBB
+;e9j;efHg*Q"&bQqdX*O6l#;)FDiB08gG,YMVqZq/)-SY#54*pGag:!k@gnsNHppupJ-8]l=1
+Q&ZStYOD60?CAMV;Z!;(3OnWPdSls>cL%GPWUMhbQc]@Uc88N:;du_..k-e%;VBOCQGs_5EmL
+PJj@X5#7In7l'77qU+N7h86Ps!*=edGi6bH!rH;m!CUSXl5Xca2ddn<uEMDDT5(&(q<H?B).g
+-m=@Z&pGL/#0dg=&>cHL6na1VNSEBf\sta=3T*k&4n]rV".JE>EE0IP>B3h.O\Oo"/JEkb`[t
+P8g%u6QqPDW`"CFmH(uZ0=*A7q=aEX?Bgi`4f=68VMMZM'9j)edmP5/3=F+5"GnVIO'?a,sc\
+`M$JlI%Y;H\<//M^4MiBm3tV'bO'91C`(g/hE_NL!msEL3IK-c7Pk<Y;_79@@U#-g!"S<:AW)
+UlHbc.2%5:K1(X'oMhgVGqk$4B#.U#7Hq(8DnP^A6W0T*j48=VoKk`U'8cC,V#5h<B1$)r?+b
+5>)5&!^2DiZR#"tZ,8O"&)<Kf%.-'g/WKQraRSP;P9.7mXoU*9;RJ;+l`Y'>9Wr.V;K20jqTK
+d?2o,uJ!^dU/4!.b6Us,&(>d=RK^'6q/t;'X8[Ar#K5AW">/:o')rpLSoMG"t+VSZJQim\bg.
+#Zs&?X@8Af,?-\pV>Y*1j^2,+b[5I)qd=a.lql+kQjkO.Dgn1nc!!(r9\E-IDjWP_W!_S4mU-
+6ML%gk,.doj6m'?Pm'j@>hg+J4D,>DR9$@'W=g'll^AY>C!?"N_jZ>G"fA5mn&]K;'BUol<Y,
+gr=^*oC&iTL[ZL\h4nL%RYPL2IL8p^E@Eh>a26Srl7`Mb6m-6?3Dt1@U/aOA^7sJKoF/F]CED
+];91r(5%FJ%"jiY*GoTCH!O^q=EXj`F:7s>o2Y?29l2Ht'rX.qDSmZcoV%%=MM?U_Q19@cRX>
+')P*=nkbCS:(kg]MosMS*;Qm7rRqA-g0jB111$nO4'CdlMTS7E,gU<S"t+k2WDZ<nXBR?dg:/
+Aj:[!AOdL)3P9tCGZs\LOY\6B0e`=Pp&_#K8C&4gDj@s2Or18mmo>(66]3<DTGEQ0AY3@%&$6
+P(LF,HY=S*3!T4_0*VB9ECY.C#[O*V(+G8`cJ9%QgcV&F&:>@r.HU9G0sok;/O_($gge-p=#$
+N)WJ"^Ufg<<]Bpd>1-NPW"b5c;gLhc_*h-`4?Q0'H_@f&g.NN!HnS+<*V%g<YRr7^?!]OhfAX
+!XT#EuuC;,in'VmZ?>#n1#^7kd*;p#/]&$3KjHRKqd+?blrk*/H`oo;F6IQHF`(8U[ibnc]QO
+,tD!?ZqFOd\EC0YJVU((Mc.I&G`Q2SnD@93Fg%qNjd%;8_'[PMkrK])MhIVOQGQ'ka#P<[k?o
+"+U.*bi@pOB\'2*&]a#/olYqRDUg&/>eN9W<8_]9U*nsQ?6k(YY>fi9D5">2G$em=ld5EgLie
+Jf1UlgN`W>I%O0P"=`.ubgPdf(9$"bj;u4V?9<*o+EdJXWf&OWa6!W^.`*BqkDqhUtjRR?E4L
+5\be3NAu%JOD]D*6QKM$7cT2sc-s0l63@UoL3kL,D#"l@c!<lDE,4Xq2OLH6m[jf0LBo?PR2M
+,S-ij;J^gPI@"-V=cG<[^gM/!/uKB(QujAC905hFuhEZ"t'_7?CdC8>.?K0*Yg*g+p[G_fQOk
+k5=G"[t=J1s,SH=lEmQ?-&X1P<!'("h5-&-HV?4,2l;>EEbQr841N/c[l^TILA]Cl-LA54;hH
+bE$L=u,9kq0*4Eg2O-Ia0^"L;5cf1U#$gFThJMCZ=GrN_THUJ#$`Uhla/3WD6KCc^N8Q8D6]e
+!fqoGSJ\ik$LAk;6e3Lb(\H>'d1o4n3<kdL`E-I)rWA=^WpH,PHq`\A]\R1n,qU&8CKYqaK4q
+-JKcA*?$aS\22VWVbZuM'*OqjU!c$W[rXf\^i5,^*b,idzzzzzzzz!5N7+$NLhp"(2JM6@*#X
+[.M(EfMbl0>3UDAFCe5'LQ:S7NV$+3>"eX5\:BY%bE^NO'RU3?QCG&/YE7TG!n&"iUj#;r>C,
+o:]WQ$@mk/V.X3??Vf'@Bo?5DqOI$"X1rr)`?@0t-ufnm[WnZS:GQiI!R`uc><<U2;c8>S8;<
+Ge&b25GGWGcOmbp!pEUX89AA>o1iYAJXVscd124YH%GoHDpgf'&qKre`tMd4O%Ybb4DO.r_(D
+&c;:RS(DU11kuBP4kPPY7]1Y\MCU?CnoskfErB0tkb`!U*hEtk!aJ5>2l+R#mq/]SVl.$M9OI
+d2g;-mCOFW:9q$0g7njUSb"hUAc6[Z-b,O'002rhn:<DY71KUgIcgFB0^P4k3>koSi4<fs=PI
+eD]+V]Tq?$2HL76]14nCguh]ScVKJqH+?JapUtm%IfB<g/\]"!W;]:[O,_bM/tQm7>J9sa^T$
+k4%kYB(cD=S]e`i^FN%-JQDdKDd[/%Cp6\RilH?ViP_d,C6`p1+_c*,C<//dhhm2>#"X(TZn3
+U=_0>&El!2.6"f<c:i^jVaQ^*)6Y$q=%106@*iKWP`#k[C(>(qYC"D)sr'W[.=3rCH^7<<I\!
+Zo4="2ZZPflP9u]/33-[c?JaX%m:kZb%6B=;T)PAE:KY=-V/(gdc.6pLcjMBo51Hlds#uqN>h
+8M]XFY/BKg^6!I-7@BookrhZ;dCFdbV&$9?2>dm6)rfg!)@Peba67e[o0LB"3c^g%)\]5P9'r
+eCpii2NsLAQ:uUN<pQUuoit&<=Zs70,0Y"1m4FQ(Sl4,f_s2XuatqgAAU:rN]!ZkU`F:"7@6O
+:r?7r"%r:nQ0:J*KJ]n5lgMsnteH.(\EY^2DfrDN'&X4d&jC\=":\Xqe5Sg<RNiFbaD'/`o`e
+O\$3;#ZX0otIoh>#:-TM)3q5Bi&Oc$3BDI)''acZBa29;VslH/tU)%lL._pSgU_PO$CDZfq'?
+&cXdU@#<iRj]mYDH!n+\:+MBKpH=u:kV'eJWo_"#Wcf;K+?RMC?JW\g=]C^mIk/Ust?m6^V0G
+.[\`^5<=`r?:On9J7~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 634 554
+%%EOF
+
+%%EndDocument
+ @endspecial 396 3700 a
+ currentpoint currentpoint translate 1 0.65 div 1 0.65 div scale neg
+exch neg exch translate
+ 396 3700 a 229 x Fm(After)g(clicking)f(on)h
+(your_printer)f(\(epson_870)g(in)g(this)g(e)o(xample\),)g(a)h(windo)n
+(w)e(will)h(appear)396 4058 y(similar)g(to)g(that)h(sho)n(wn)e(in)p
+0 TeXcolorgray 25 w(Figure)i(3-8)p Black(.)f(It)h(w)o(ould)f(probably)g
+(be)h(a)g(good)f(idea)h(at)g(this)f(point)g(to)396 4188
+y(click)h(on)f(the)h Fg(Pr)q(int)k(T)-12 b(est)28 b(P)l(age)e
+Fm(b)n(utton)e(to)g(ensure)h(that)f(e)n(v)o(erything)f(is)i(w)o(orking)
+f(properly)-6 b(.)396 4317 y(T)e(ak)o(e)25 b(note)g(of)g(the)f
+(Gimp-Print)g(re)n(vision)g(printed)g(on)g(this)g(screen)h(and)g
+(con\002rm)g(once)g(again)396 4447 y(that)g(it)f(is)g(the)h(e)o
+(xpected)f(re)n(vision.)-2 4949 y Fo(3.3.)47 b(Con\002guring)i(y)l(our)
+f(Printer)f(in)h(CUPS)396 5165 y Fm(W)l(ith)24 b(reference)j(to)p
+0 TeXcolorgray 24 w(Figure)e(3-8)p Black(,)g(click)f(on)h(the)g
+Fg(Con\002gure)k(Pr)q(inter)e Fm(b)n(utton.)c(A)i(partial)p
+Black 3643 5692 a Fi(26)p Black eop
+%%Page: 27 36
+27 35 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fm(screenshot)h(of)g
+(the)f(printer)h(con\002guration)f(windo)n(w)f(appears)j(in)p
+0 TeXcolorgray 24 w(Figure)f(3-9)p Black(.)g(The)f(contents)396
+708 y(of)h(this)f(windo)n(w)f(will)h(v)n(ary)h(depending)f(on)g
+(precisely)h(which)f(printer)h(you)f(selected)h(when)396
+838 y(you)f(con\002gured)g(CUPS)h(for)f(your)g(printer)-5
+b(.)23 b(The)g(screenshot)h(sho)n(ws)e(the)i(selections)f(made)h(by)396
+967 y(the)h(author)f(for)h(his)g(printer)-5 b(.)24 b(The)g(indi)n
+(vidual)f(selections)h(will)g(not)g(be)h(e)o(xplained)f(in)g(detail)396
+1097 y(here,)i(as)e(the)o(y)g(are)i(the)f(same)f(selections)g(which)g
+(are)i(a)n(v)n(ailable)e(when)h(using)f(the)g(Gimp-Print)396
+1226 y(plugin)g(to)g(the)h(GIMP)-11 b(.)25 b(These)g(selections)e(are)j
+(e)o(xplained)e(in)g(detail)g(in)h(v)n(arious)e(sections)h(of)p
+0 TeXcolorgray 396 1356 a(Chapter)i(2)p Black(.)396 1635
+y Fj(Figur)n(e)g(3-9.)e(The)i(CUPS)f(Printer)h(Co\002guration)f(W)n
+(indo)o(w)396 4240 y
+ currentpoint currentpoint translate 0.3 0.3 scale neg exch neg exch
+translate
+ 396 4240 a @beginspecial 0 @llx
+0 @lly 618 @urx 994 @ury 6180 @rwi @setspecial
+%%BeginDocument: figures/cups_config_printer.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%Title: (figures/cups_config_printer.eps)
+%%CreationDate: (Sun Feb 29 19:55:36 2004)
+%%BoundingBox: 0 0 618 994
+%%LanguageLevel: 2
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/pixel_stream currentfile /ASCII85Decode filter def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ colorspace 0 eq
+ {
+ /DeviceRGB setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ }
+ {
+ /DeviceCMYK setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 1 0 1 0 1 0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ colors 0 eq
+ {
+ %
+ % Image is grayscale.
+ %
+ /DeviceGray setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 1
+ /Decode [0 1]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ {
+ /DataSource pixel_stream
+ <<
+ /K -1
+ /Columns columns
+ /Rows rows
+ >> /CCITTFaxDecode filter
+ } ifelse
+ >> image
+ }
+ {
+ %
+ % Parameters:
+ % colormap: red, green, blue color packets.
+ %
+ /colormap colors 3 mul string def
+ currentfile colormap readhexstring pop pop
+ [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace
+ <<
+ /ImageType 1
+ /Width columns
+ /Height rows
+ /BitsPerComponent 8
+ /Decode [0 255]
+ /ImageMatrix [columns 0 0 rows neg 0 rows]
+ compression 0 gt
+ { /DataSource pixel_stream }
+ { /DataSource pixel_stream /FlateDecode filter } ifelse
+ >> image
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % colorspace: 0-RGB or 1-CMYK.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /colorspace exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 618 994
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+619 995
+12.000000
+619 995
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+b03060
+d9d9d9
+b3b3b3
+c4c4c4
+ababab
+ececec
+6c6c6c
+cccc99
+0000ff
+ff0000
+00ff00
+00ffff
+ff00ff
+ffff00
+990066
+6666cc
+999966
+ff6633
+cccccc
+999999
+333333
+9999ff
+006600
+339933
+000033
+333366
+666633
+666666
+00373c
+333300
+669933
+9999cc
+ccccff
+ffffcc
+666699
+000066
+000099
+0000cc
+003300
+003366
+003399
+0033cc
+0033ff
+006633
+006666
+006699
+0066cc
+0066ff
+009900
+009933
+009966
+009999
+0099cc
+0099ff
+00cc00
+00cc33
+00cc66
+00cc99
+00cccc
+00ccff
+00ff33
+00ff66
+00ff99
+00ffcc
+330000
+330033
+330066
+330099
+3300cc
+3300ff
+333399
+3333cc
+3333ff
+336600
+336633
+336666
+336699
+3366cc
+3366ff
+339900
+339966
+339999
+3399cc
+3399ff
+33cc00
+33cc33
+33cc66
+33cc99
+33cccc
+33ccff
+33ff00
+33ff33
+33ff66
+33ff99
+33ffcc
+33ffff
+660000
+660033
+660066
+660099
+6600cc
+6600ff
+663300
+663333
+663366
+663399
+6633cc
+6633ff
+666600
+6666ff
+669900
+669966
+669999
+6699cc
+6699ff
+66cc00
+66cc33
+66cc66
+66cc99
+66cccc
+66ccff
+66ff00
+66ff33
+66ff66
+66ff99
+66ffcc
+66ffff
+990000
+990033
+990099
+9900cc
+9900ff
+993300
+993333
+993366
+993399
+9933cc
+9933ff
+996600
+996633
+996666
+996699
+9966cc
+9966ff
+999900
+999933
+99cc00
+99cc33
+99cc66
+99cc99
+99cccc
+99ccff
+99ff00
+99ff33
+99ff66
+99ff99
+99ffcc
+99ffff
+cc0000
+cc0033
+cc0066
+cc0099
+cc00cc
+cc00ff
+cc3300
+cc3333
+cc3366
+cc3399
+cc33cc
+cc33ff
+cc6600
+cc6633
+cc6666
+cc6699
+cc66cc
+cc66ff
+cc9900
+cc9933
+cc9966
+cc9999
+cc99cc
+cc99ff
+cccc00
+cccc33
+cccc66
+ccff00
+ccff33
+ccff66
+ccff99
+ccffcc
+ccffff
+ff0033
+ff0066
+ff0099
+ff00cc
+ff3300
+ff3333
+ff3366
+ff3399
+ff33cc
+ff33ff
+ff6600
+ff6666
+ff6699
+ff66cc
+ff66ff
+ff9900
+ff9933
+ff9966
+ff9999
+ff99cc
+ff99ff
+ffcc00
+ffcc33
+ffcc66
+ffcc99
+ffcccc
+ffccff
+ffff33
+ffff66
+ffff99
+dcdcdc
+e7e7e7
+6f6f6f
+ededda
+eeeeee
+808080
+547098
+800000
+9a9a9a
+000080
+797561
+797161
+cfbe9e
+797159
+d7cbb6
+cfbea6
+969286
+716d59
+dfdbd7
+beb296
+beb6a6
+beae96
+b6aa8e
+b6ae96
+716951
+716959
+cfc7b6
+b6a68e
+ae9e86
+a69e8e
+696951
+696959
+GhVPUl#ri5eolasZM/Q453LQnb/ED4V!]E#Ij^L;4SG_cGh%"of!#_\R8n5o,6U[n8RP3+If
+hsR%KHjMTc0R)WW=<:)B]*]!@"0T+Mq':8bfXihgej#^2@,?H*b,&$'(LIg323R0FQ*O$t!^r
+eTT2q-0MM0AQ_MIonD)oq>Cd(R%#h1l"H<A-$C3!.i1l3`r&'@_?gYXG&:(%B/Y7O0O9g+?''
+3:Ac&.O!&NS51Ip2i&l#-9Beb3nRL@lc!-=/^<9r209og18m>Eqc_3UiB^g%#M-K^p59jCcSF
+fFLQFLqRR[Fa_r^mEi/>s4m)ZeS13&n!=o>)fn(m[6**iWQsXQ6la@<NMjqdFEo;<jeTc"4_#
+'S]LT9CK_+m`WV'qjsDcce`m>%dV!(=`0VL!WA_>jQ8#6\4]?qj0>PGXdf3I&=\t*:6$5'Zlo
+!h_"Ds-YH0M_QfJWtYNE.gcZGE*FXqoP54c<DnQs2j6K']LF2W?MFcUC2/'S'm(5MK!DbQ_#K
+6pNW6#Z(sA!S%/^:^n!+rVIN6&siN6+F"lBG[!5EJo1+mHI\>\W+O0"-RHb+mn.P'Z"a]Okk=
+Q@dO-=E2lta%M`"#4V,)+I*5]%noLVUt%',9A19,bBmS8G9<]iL"Q)GJ4Laf@W2U5%Ohjk$PC
+K9b&rV?&K=-/6;,'H+K/&!KOjU!a7;G<sV@-NlGWG5G@s0MaO?XJ<VMJDu$RA<E^Q3+GgqPs=
+nkd@>4b_n#:A`8%R,-!f9B[*PW?S?n8rqs2$CTePUVE^27IS)*e+>WUoSEm1H[GjiRZ=Ym@_a
+nXtjtF9BjqPETRI]aA7fmPbf9WH0NbZd#[B61coh3abbP^FR=&DSt<(D@3oENRO>W)OZLJb2M
+qTmdmcV%hZR]6fsrXhqT)a9i)ST0s?'u&^[WQ0mgC%Xs&5ik,'g.S,KQje+gBi0bq1I"Pj^)^
+("hO\ofmKD8+WMmhRo@A$[r7Pqb\7G],GfS=+V_;ggVk2c'$:)86YM/`[;=2A'gK"-CIr%f:.
+c1,(CD*^?2'+c-EeX;KXgg5&TJ%s%[c6C;[1R2O\IGmp\,K)[RJf^fq[J'39aA)cBj]%sOK/2
+'])T0\0<%B?@nj!4;N2DY@p;:-S\B'd9f&g:\S5Ef1`Oot<(e;#oGM<@K'l#1Wpp.k&?^Eriq
+4p(JA/[0gVd%=[)A#mXCMc)3j3sRMC4hcrlNpjg5kMs5Er2H<m.FR$8TWF;n\D(7+@:/,dOKJ
+hY?]T7?YW#TUML?b)<E"l9nn&U,D4I]>&J(B#6-e<irr]rFc/nbDU*)jb2R$5d_]#Kg0ZqqA!
+3/$RlN$NQ3gmf6G4(p9dO-TLq)$d%T1.llo-F*SJ6FbjU/>#\36pn[)6VkIq_^l4L_g-_E\($
+\LfCXqg2ga1Ok#<V>&<kHQ3>5>EH0Cje[elE$S!\CGOc7]0p/.MKBr+C,YX):e`Q^]*5pc[Bd
+HUfCp:=uR83C<^C=f61&82c1#;^:7rcU1O/.9=@)QeZ+&*DlTkGX/9q#`F1.mM[X@Nf7*Hn7E
+O+[ZcTST<j\il19IFBY>.^-W$WR(J^q1?\Itj,>+r*I9uXL.NN2sQMjL+(;(YhnSMgG+q/bTF
+lVDS!NP!21'<W(Z0-/SX/^Qa?Bj+LI]?LLm;@>]!bDMau?MDC]ci*5H-CaekoSRCIW"p;5Nd/
+6;MrN,\e\%j3;`3O&1sHf/qj3>Ajpkt9g(L$A6tqoG;+@rHV&FQ[co6[D"fUnDm\NN]n7tq(r
+aXl>.Y=.Oq!!W:"09,!XaaWY>r?t$+u9k>URD_<W^U,_)A(I$H`38$[N<u19(=7YDS2_;(QT=
+aW`=[N];Mh*FlNX=`BPphJ+;&cJGN\+I;.A@AVjWa[^Bh<-p_hGE`2:M_dLO>"FFK5;^&(cDO
+MKU7#aK>=(C2(0&&E8@KX9kc)Y#p:TUcZZ&?OE@6p>u17/NMVLWFska^@;j18OG2CWBF0^CG/
+2,Wulgu$72HX6$"E38]*g9,TK,LsFZ!Hu*#(9$,75hlEP]Fqq;#;Y*:jm6?u^LF@8(cNMkT6S
+`T$d`n#gaup5G7D_j8H19Gqc7ntW-8'EhgaHm<3&RX7p4hiT'Xl/.!KO3>q>WTAa`[5]Ms*52
+F+[XE//2JZ#=t5s7!fNUKU[Apq;MFC"8C@5[W#@^YPIt[64**P+C>AVR>2s?ft/Y;7USWh0p"
+rV8Nu]WG-(sRdYgAguL?T.=@KpI#4fcpqE3.<Bt;&rrR::5d`5p184#,7/=`#4+L>0f(p\e(%
+<0>$,X$[oLVWZJKO&,rM/a"=o+qi=MJTY-+H-#&08R!4N%c25n4<)UV3W)?@%AlXpAt<e\.^7
+s6nN=^6d\"O=S`uo2EsVs,CdX<M17D7!bWCBA4f2):d095W-oEnj`ZKQhC,l<(jCreNaerRmB
+7ns))-(Hg)OP\ME/b>5KdBmh!R*&qHC+K$_s!!S\nM%%#6LfIl(=nnXBQHd][&)OLu1g@*qV:
+^tVV<!,NZe`?1lTc0:5W!8%hMWm<?d]+<Oqu0>\/9iS#O&,brs"X#!S1`.J<9s8E:aiZ-_hWL
+7psebiqf<3Ib$1'E[XZ,^C7f>dm,M%Be#r5-KmYP<qtrGCs%Df6=HM]sWZ;uc9(&#=c.C2;4)
+j'geK12Q9"!REIX.kqdP=Z;;mNC^;O*WhZGV762#7.oU=pLb+7)4%k,CtPp757OZPLYHALs$k
+I7W[GM('ri4I.GVKP(-.$IFRhCgUK5Wd2e`WdQqM5!RQ'o'93hR)1<lbW\JWXO+_`k0e8(5*k
+&>YT-QNkB^,!8JRj>KrUX`FM1AT"-dDp"X%0O_QsfFM:[Pu%o8*uIKB;E/n>r4\TuQ0[*Og(G
+V#[fa5c]_/X(Yh-(>-D]&(g/s6Xhe/Y7e-s,5o8S",kq>$5nmBO$2teb%H;K=[M1@Q(=X=QU7
+SAtA"`e%o=h4k4j,Ocuubhl/"Vh?;4u%2WD7^$o=?5jGO4oN936]rB2+@Ma?fht;1Bm`YQbPq
+Mp_49mCn[3OtHn.QM[.)m5OUK]D%%f4noq<)$14+80'>&W+J4$BQHaK[/9i,*=fin4#YH20j'
+$s2`P;B/L'<*]a3fTp&lm[G*%'&SVVlKrVR+5Okm_lkqgM@Y/@:7oKS9]n5ZZ".^R;)MM6QV@
+P7'&YiljKE,.o>If+7OBm1&CYq#ai->bX2`=g5M*eriE5`CfR?4!qY@'7_>V#LeUmF>VESak2
+q]uK@il0W5PVbX26McEaE3.^V?<8ZldA;2:NnHj2)>!*8(P[DUdS*2WS0ptZ_OGP;>`ZD\siY
+C.P;P-0bc;:&onegPB_@^^LU59<2-D%oC9MqoK-+Dj=9\!n@+bLFSmFdIi#pm:DA_XIN@:;7F
+K_UG^4&&6laaTp+-`RN!(IZG32*e>uor7o7C7iU>D^"?Q@VW3r7[oF>BgSr96oQZ7Dp7&`b.D
+aZ$7%hZc:liZR_lEnBu(3SWod_kp=*?O_A647V`O8#C>?&$j>YaZ?Rqfc7B*g,OR?#Kj6PSbf
+93ml?fZ[,O+Nhm6,7`&rp?o0YG@Zt^DXg3Y8B.oT;>m#CkgnFGnDmZWt-c9cLbmk8F!q>SL2T
+8>V*#_dYlBG)E^RJ>iSn>5(1PCcFP-GGDW\2o>4`)l+>phVF9Jk.B>f4e6"9:mCAp'"h"W"ZS
+&&laQK^iJW)3_F"Pr=`s9/9_"L\JL%6f-W.oGDbsD*tsd\;&hU$lfqmJ-^,9jfU>b"R=FpkQo
+p`XlM)DhS\:77Q=?7tnOqBtCs(_&_YD\P20Do"?_T]2MQ:9#?9(hkactX77o`5h6m+RLHJ;<r
+'=,<PW"pK)UX8BR9/0FR'(:ON,.FRCPD^EK*rOuqO/Y+58(HAe]6Gj[!HS"2WN/UE/g?j1;'.
+n:7Ikt`<>rEB8F+E*S`H)#52?S]!m`u+2^nn@eX$Y^^0O]uoK"aMfabU%QAT,=<PtfV-=m4(<
+80CdA<(ufFhq^s+q@h(MC2_73a?2`3kOb2!q[\M&sIe7=7WBU<Mb'O[_u_8R;<Zre^_mO=`H1
+io>APGP7l'OQI5EE[r[h#RDMl=T^:b<0j/b8M2.#cB\?m91<3IE2W^jsW'[.\oQ8Im?5Y"]9W
+#I#0<Rnj;;jJMB4gHG=7^CFl4[q?G4Xjud]Y;$djhif2Q7=;0"ac'h5aZXHIf]N[V[r@@@>5n
+hOfBS>ABdP55Z]$,4Feq_dq';$N;@c/"'*Qm4ep.gq.>S4VrDV5=Kd(FL?uj?Of+cmpO:[9O^
+,Rif&<>'6(;t[p'4(=b%RcD0,4u=p:7f7+]ISEi0Bo)P<7,ia;Marma1kLZ7]!aj5hs`PaCm&
+($ff\bV&^U-\4j61%e=2`@_[7=Kp76nPV;Ye/Faf6V1/9cX(<LL<d;"[B@<<f%K'kG>\UP(Ue
+R^(/KDRp>,iCN#1YkZP'!F8oiR\?p)CXP2'gbK6@GprJ<PU9\eo=n-Yh<EE*'*tR>H/.6O[&)
+tLJ7)%O.6/s?.I'WO5/p^/K3FQm1\sh,Bhp3!fm8UifnOop["FR\Qa_+q`Y8neXd6F%\;jsY^
+8kGFl'=:bE&:5]fCc8<8rN&1o?/a]gWjjILh!->)PO5)SBI,jacSF.@/X[F;ifsqjAmPO;E=s
+/ZehR&sbW4;,;ZS5h]j&<j19m]Z6Z)L(*o4!6(G*i=CY=QN#uj7@8gc4u+;`S<B0:S2(o,6Ni
+q**sC+AMaGm?qh-i\LlG0kFi5LiK*K;Y/_alaaj$Usi4;N@_IG2S7klh>RtHHWl6Gq4op"#$[
+r$`[biWg-$]f`][FQjXZ^Wg+oK*-kfYUKVb!R42Xk[P$d?A[c2V<+.K/oB\)4#>B28V"3[!1&
+KuHn;`7HUC8@pPIE4Sg?b?)D;%]>5H;C%;=,!.-/-0PD50X)YP=#o_aQGcQoMU29+dZo\a`kQ
+^?W*%WHQWIS3HR613krH`%Sic]I>C23m$V9R]03V-j#i>lMXh#!Lf3*X$pLce^i:->Z?'2U>"
+jNdN;p7e_UWH%bsI[o="If*lH",gjaBNm@mgp-_$FU&s"F6Kr]FN8[ShFEqs/3!fDuZW`>@rJ
+9]Z!?VM88J%CRj/f-6DDn9f[b,ppp</\'1]G'kOI-Ni:$DYk+Me_$&53J^o5e%K#%!>b]JoIn
+d\>=1==3^*cQ"p]io$b#LNpg..iLGjAro`c]!f(HAIdk"Ah?t.M0'5N!qO^J^'g7CB`Gn$+IB
+!Xb]40HgC2f(I^N>+p4c!kD0O?p*NjA?Tr#luM.XbHUQFm5E/emi`:W5E!JZI5tU81c[<16nE
+`c*#1h&J6h\JUH'lgU7pos8D&?#@#&[Ron-0:N`lb`9;0W^"*;G*DV^LIY+K*;us`q^"%J^'9
+k1M``ViUYU^#D;ghmU%QP"X[RH\FM)^"ZC`B3f^BmF+h2gc<4eBM?WZ>!%qBthcSD(4jo858-
+DR$1X'PCr7@tMrJmLmBiU`4GJHh`@Fko\l!p!W=om&XAVUA<W`V`"s4IQJB>M]=<\^/ta]Ee;
+9djj1>ljK0D`NP0;piSH4*>P^aFbqW*?.<6GZbFP[Bk*0jT&cW7$g?kj=-/^>:0d1e[u[8TSV
+'g@SHsM38Y/Cmd,%L-lh88mGcq"`TLlOHBEG]@Vn?j>lhT/=/N8_s\Z(J3;SEE\,j'-YY^W*;
+QT)U8%4&Ub,9FeB\[Rcnp3,kji`kM'm:>eI&i_td<GG1Y8oIUD8:S%_bR;^AEeANUVCH&QW$6
+<V(H$L3Ec5!_45RJn$Ru`Q/'TNs$6VPerW/#l$hs0c>TPnN'C6[%_6?e`U0?cL\-.<Nb0#?sA
+[]rb2G3ADErL7.nQsTsj2TD.VD)*)NZ&P<Wsns8FDdY="jPpJl;Fb6p&0*<m]ZX2?,<MCG8s!
+:B$\.Hk=rPN&DG[<DVB70PB%/I0U&AilOgf?8]rhL[En<,E8mnOI0Z[Y[b03M(VZA<.qK\6[k
+u'`-N;r+c:Y]BSZM84].H:3=n6;K[0`CNPZ[XLIUgj@1/GUW(t!I3CVcucS`2e=931G`>q;Q%
+B"Gm(9eLcf-dn7PF8^OI?M4i5kJV:)>?!+u/<`ru]e#4n0N/.PC'RkoC=pd;dlC&r3%&9O`[Q
+9&>UXU5_a@W)r^85C=1:iH[OQ(U-@%bJ2T`&^Dt*,T/\+IOZ:U-WXeBo_Y(!D&k+eJ.,.1?K>
+=D5!pi0W8C8EC9\SUh?L1gW.<=Q&mHA9,29KRKeZ$.;q8*WR/P**!7KXYg[gcR*T^-BN,[5cW
+Pkmb_h3ORkS:FbP!e,24-ert1GSQn>VPN+ROb#6j<Uh<2C0uK6GZ!m*`FM;.B=\PHQF3Ajo<R
+P3e,M"C7ofZ"jf@6L34LOb=e?o7h2V:u+o+bt8+rS/ELSj*QdTVL<-:1lHeRW>L(M;R4BKDf_
+928EF94d<*jR(a1!tBo2q:p:$Y0;AN=$]d(BAsoLq7=QZU6es4\+Y=>G^hlc0BeaG=)WAR"7a
++m>B8t6]:*HnKfiT5@"^9mjnsKh?&gs:NDL(7.=c/`#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XL
+k'5j#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`BN6YLp.p']]HN^*3<1I^W)c5B0V12
+QC/GD>JalF0)?='MW5bJKR#j5VI(,npnu[1K*grG^cN,/cT5)):Sla..(<fp-[m5C!X&]nU'<
+7"`;KDj-Bi.Sg5W(5-NN1YQ5>%jYVP%'Lok8)Ik$8;D^c7c^1U]P+0G0;ER:ji'#1^M6)H?=f
+R&?@%i@K4_M)bP=i(HIg#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`J80T?W!8'.C4H
+Sg#)IeEJ-`(XLk'5j#cIr`J80T?W!8&krQ0'$b'lQGnX$8Xd@*Jh]\u)0M1/khs7$3)C&N%C4
+CPpd@GWN#R`QIK@Vofh<e]5W=BFd<R`6H4WM_JN-"jO7Prd@[NSP65'H'`rUg!"h-%B+b(Jt*
+,Ob7!hCLuP`a"q>=3@atBh1f#L-!)EopN,:o/q_IU<6L)8eX1R?Op.)TaZcsbrTBJTd2M\7nL
+R^F4ii=+l5>4h\^IWam"9bo5p[4qft&26mAdQW\W/.l=_/IeJq_qbT;&H>/Eg)8McA/:T3\nt
+IIKTt3C:,QAFee3rA5CEC?qS,"^36QWu%E[386_>XW49CZ2jPQQ-;mZC9T9+g97QF]";%oB43
+S]/R!l\!`s@p)=naQ@C*fcLoulU>YhqN.jJ@`DN+@K7\r)cJOSuBgj/a)cROK\J;>LN]CV$pD
+E+a3ghm?b5W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5Ik5W(e0<!,NR2*_:D"%5C35X^rRcN*T
+L]P:+&*3>3@W\'cWYXZX2[WJ+W3Z5*SdQ%MIAZ0?:k814d@B(oM>Hh]d:lT2e8PALfaH%dER^
+C:?NBoEu@u+koBdg<\)JEb-ePopdk"h8@qXr:K#kD@9e[/,t3BNKL`W=>;;,,$;kHON3YQcqJf
+%"N80gmm,QqB4Vg-Wu)D/JNc"BdG;FZ!dMEpWn;"uNho!/Q/?J;?Lk_)3p8EgUT\%?.)&WZ#+
+EUF:nu#1pWrat]p42)(D<S8,8;%&.P?5</p95W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5Ik5W
+(e0<!,O)9""]HZh,lR#cMn_(tuSd)cM`@K,@%+!)W&(T\9C=g-%^/!C4&>J8,1:CA._Y"p!3A
+!NHT:=k,oY++4q6T(SRdWD;")p/of/A+EE:S2S3XW\OD/:Im$H:MP,lLT8A2,_gT-\o8&-#-a
+n</3<HFX(Kdnfiec_$b&rL!/mjhT#;LFJ+C!ol]mu\C&Q-FU\@51e>8U\AQN>e6f$1d@Mr,a5
+SgAbp;E;$Y]*JXW9-*AqG7&iF"<Y[X?4?d[6)K,[5+kQodj(eDcu^2N?qQiO^"c--[F4lmSM/
+(Y]!eVW\$LX/Po_-Mc=2[C8$;3OL/'iC:?-"2.j*"6FHf'Ea?phbiQ0jG%Qo:^"Z^QF7TVn$V
+E'h<dX&I1C^@D+htVmGFUhO/]\g.G#r"D>(<hVXm`Bl'MpAoZ;^-3TN]W+[<mF="+Y.\!7_8R
+ea<I<%:E\G0l!$2jV>$Pe]:I;CAlhMC*7/^)B]*]!@"0T+9JPD,+ohs!ic8FTGepSWW=<:)B]
+*]!@"0T+9JPD,+ohs@T09Y0Q+_D/:GHl!7fZEWkL*p1"DT8!A3X6AgUJ]0i2^ATN]W+[1reo(
+'CSu$rgFc:i-mu5BX#$D`YbAWE/>Nc"*210;spLmIorm)qFlC85lj@/2iu4IP6n&qgP0(mJ33
+&e:h,*2N@g<2)2:Lb^42J@QI)W<,JJ&<bA1s=%qkm7%*:g1`G'j*cRcb#GlY*Ng]DPb!<@t:,
+O[T[9%,d,LmY&c<4n$Jj]k%iQ7]f2<T*S2*^DJ!S+'b)]qLk^0Hse<%In\4D,$YZG2?nR[Z&C
+:i/7fJI5@R=_=@2,1)cK#1`R5RqaKs?5#[F,R;b"6FDtM[<hR;:i-oD1#T3@H'NktS,uVF@]k
+j?H\dWm1Zr+.X'\Vkot&lRLJ>iZ[4/oIJt.C,.gE"*##rb`W4$0.g1!=TS:PE*#-'6Z<6L\hW
+CGd7r3@l%`.tQKeWrDj:p#FGW<RAIWW=<:)B]*]!@"0T+9JPD,+ohs@V_u,s*,R#O6<A2r;^Y
+,[HB99.3RC#CeD*b`gc\uqTmU#h`=t>m4QlGg>$L8[6$uVPbA4r82X23Jl=J)OT4';H4RI/G#
+WeuUe5=Ni>KMdb\TeW*sniEE%>86PB^B#2m;r$%t?g0hM4h3*Rte]9D_[&VXt;RGY]_R$$Za+
+?@C@1U"V7a\nYXU@d/<n1lndXR\42-8$sG$CIOS)7BHPYZX?P:URHZ9f+a-shqBn=:t,'<[m4
+r<@nsJ->5<J'9CK^*foTsY0pO[:;@U+io4CXqiCcRAZROGoe]=96Q>633GK+Gn239Cd%1iQj!
+"i$:&CI?.1B>*+YM.Db#O>liC.m_.XH>6;/Y-OY:55gXFH41@)62E=q$$(qQtf:W(9Eoq<"hE
+^5I6qc'[)(5A.$k_48f>7C6-IJeJaUtl9I5RcEsUndSUdXHD:/*l(Sik4XcMnp?Wbl4KHW[^n
+MT\MMY;21+B,mh4K%4Q@Wc]b>_?`;sN&fbq?gDeK17X<V&pocV[XL$q"!@BVrJGAsr`q/*7Y<
+b\J5L#6T/X!"i$:&2?^5\->E$%T<h>JWZ0a<J,'p']j;ai#3Fu3CYm9"pS"d;[p0d6'Q6E-c^
+`CW!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`J80T?W!8'.C4M+7WV4)$Yk1e_$`K@1D!@]S(E6:ik
+oAIhK5,0%WoXXgb7(>X$D:SJ5degdC9%?7j\.;,0n"kGJ#MIE<a1U''+GVS`n5n+)lh/C<@sS
+?7TM7WaK2D\G*bqX]9h$$>GsGANN/8O$&p<B`N%T#5df9RqNS"iV&u*S7*Q&-KOe]/;djFkli
+u72jI<.B3>K`1g?a'aH-WBR0<R"0(@u1`U0>'Lo>IL6EDUKaR.F"j.o3RW[:&<8-M5to;lceU
+B'JDld\7GU/V:0pRG^LHDdj:@JeKr>C+KtP8uOY>S5]lS.U,]T[[#ecZd_YP-u14r-er@k)R.
+k26a`=:Kp,loB;MYklVkTNWqoE6!djLG!B(1#dPQ3G6+(id]*11seM76,XTGGe1JfYZT\:lGC
+,lCH1'=PY!iVD@)cM`5J>J=d>\m'@V(I75/Sn$:O>B]B&-:;]&ProJ!S%/^:^ms:eGp1X%1iQ
+j!"i$:&-:;]&ProJ!S%/^:^mu@.Fi%qhL4YEg'COBE<d+!An.jcOQ^l&X%3XulN4(\"B=[gW_
+EUqlN4(\"B=[gW_EUqlN4(\`)<TigG`KCE=2Q9<GPed,u2'G:i.BlMe^/L.HlObXaP!fei)p#
+"qi%*5Lmp1KFt5LGH:E;h)H%RS8(F2.BqWmQ<nd3bZiTcT[YW`RFfugh*a6Qs$?Hjon,q3%]X
+Z4;\2ZiFg:(HQ^QCM>G5k-7K_1QA3n`MN)L9L;OWB<E=:RS"tZUT(CHiS'j7JI-8^`]d%Zu$B
+!&5U_NgkVTc,@QWn)ZiJnVaY8>6*D7Ks2Y`"L2e@BnZ4&6,-T7B`cb*iHdm6,5&"dO^3@p.$D
+"g(hG%MT6W+J/I&nkQ7bY"B=[gW_EUqlN4(\"B=[gW_EUqlN4(\"B=[gW_EUqlN4(\`5YbDn*
+^"W/_)P:5fRV4239Uj%1iQj!"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&ProJ
+Ypn48)Rj)\Q9LNh!7eAcMr0ZOQtf:W?m7N)F\Ja",>]t9TN]W+[2aa4\HCB&#--bj<1A`9@i0
+=f<,SdP-K/A0aX,#g#hc*=a?d65@i.%G&[*#leIqi,Zh+mZPIb]@e`NV#(^>Yn2(UIFW=-13D
+(b[E@8N85!So,J\qAF.)(8do]V`0fT^,M-Dlu;9!fIj6_8CBfS==81@i0lIE\gan]3QJAJ](@
+iV;Kb3=X'BrEWXe&a[EP.@i,?KQ+Db4e@5\"1Z5+U!o:^>K"7J&j+1s0oGb]@FE>.%mADaoC+
+PB]_%P_^=Mn!$2+m_)@8Jk]2F.B/Sthth@b$(@_8aOd0OlEiTN]Yr%(lseqTW!aK&FLP37L5J
+7Y8leYjje.\38&<#s"qBR&2AEFE\+)<WT43!V>St&Pt&l<iB3]/s_5c[CL3R6+,LamIm'$C,l
+@GEX/W+$rkC^W0TM$NE`Ui9-;:ofTp8F$Nej^fT^+nB:p.c!ic8FTGepSWW=<:)B]*]!@"tLg
+@LBW&c?l[3o:I`[T%Spj-]tSc-<+bqe*QUYHRsWSboOq-.VE=%Bdt#L/bd[oL'Qh^kPh[Ua\8
+\P7%-#NMZAWgMBBfk<Q&#<ZRbTXNet4<;Ves8d2]`<BQ,iKmE9)s8;B\A*JEo1ttkZ&\bVJ7:
+Ag7i/RJa&sRp%;!le7m1lWQ_kX7J2B\=BLJ@C(WhB_k`cb>Y&\1qaWE.LU:c&RBA36ge=)^m=
+=ST!mdfMC$c[#s5(H^bi40"RLGI-o_Cmtm5L)X':ZQ[k<]01)@U`-s8PVnq.%:>+=R;JpX077
+EVel2b)!n@8_:^ms:eGp1eW]^I2S+3L1STD#!`i6CgY/)"oUY=.A#4#g0C.m_,XHfKZ/Y-7Q?
+A>GfFDep`R6idYchTAD2I2oD(JF38aGU@(P>XuioRAq+!65Z$)NmolM7BEFK5)ON'WN&(TGhM
+&Iat#qc-1NdBcpjde\&];ls#h]+sn^'j[6!#dX)-QA>3Z:<!-E"E3[;25IGZR%Fi2L!^Hlf"%
+3Pq%Bb90Pf$IQCLAFL:t=JB(e$Gi27Ni[:l\B^Y(=ERj&CYJ?k?lgprP65!ic8FTGepSWW=<:
+)B]*]!@"0T+9JPD,+ohs!ic8FTGeq^;l]fb/saf]eq%Q?[WLrHcGig&^Fk.R1BZ/a:i1*CRKf
+e:%91eA[CLj')Q5PQ:e_&BjsCblAD^PH>AqN3</bS9Xj*T\Q5hH`muKd^W_#9Sn1K%?`rrL_@
+mQjgUKOaKi>/H<9qJAQM/8DkjT*hu^F_,e)6'K*3W7hNGhtM<a-DJ)50?:iX(F9ue]>g$2.ld
+6eep>IrH5t"W0T[$W2:Y=l+Ld*;d(LtqbSkWZ;o-aTQSf/3jEKt/SB*%NJ4Bt_95BWmK/W\WQ
+$JI"&NiH1/Z;dFtZ\&$*G#Y9"1&B.L9$qP8^U)H)<kb1,;_/N\*C!J@btF"4bWhT\@V#X'3Wt
+i3NsEE[G/D7KCtZ#-)C1g>"qN%9/f9W2>,\F0dUOfGuN6qlR1Vea>.$Wm/bb<!,,_eGp1X%1i
+Qj!"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&Xu\c^2XN7Uqs]/2%41a`5YcG-
+!>V2EY>$K2c+?(TNX9ND%`LF2c+?(TNX9ND%`LF2c+?(nl/>+V)ES+UhXBD0o0nWo^UQ:=fS@
+2nP2hs=B^kcX`G&+&.E8,)`aq<>VDr4oS1?PX4F4-=>b1K3A"C6k$G#N88CR/QnFe4Q_e`m8Q
+9ccY.k$^OL8i3oCu_W!Z#som!/]`E[G;H@\n[*^\ues=+k<KPGN#kY1BD;/Mb#V;ZP?g-:cU\
+E<d,V"bg]`!gN@Z%K4Ms7$ak+/shbh(R/ge1\XYIQG2#!0o/+$L,>9W4B3=,mM=jl<9jag9`e
+;[#-(B!<9jag9`e;[#-(B!<9jag9`e;[#-(D7``0RN2gP$O5:bJdD'm`)g(\?q239Uj%1iQj!
+"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&ProJYpn3WDF)Q522ka)`5YcG-!>U
+QEY>$K2c+?(TNX9ND%`LF2c+?(TNX9ND%`LF2c+?(etZE0Ym`=(6-cQ$[>(pp!\eLXcE'IBVQ
+gO20Q'2%X@>)=XEuHTj^@?Inr7ORF(T9h7BZDQ)F1^C=da$=AC43X,ui'WeYm*GC90<YMd6Ug
+jign-Zbm;ee[,=MDA]i*B3(dr*MpPXp@'",(q1W;et\\1q8D<26-cQ+[FQ9$:b?<\VcqhhLMA
+iU2Utu^C,lCH\q+U[!7eZ3C6JYJ\q+U[YVF\TR=)_b9/VZ4O>35&%HIps"%5C35Qk$g6pNUp"
+B5Ik5W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5IkCe?Pn:678.%>,<*YqaeKYD_j6c4*b%5de.
+RC)X$/2c*3Ne`I(9BqX285W'!MS"#@:C]@[FC5,T&bYSI>D/M+0c#j`R1c(`$<U1X)!.tq962
+mmhNWhQ)W7F<nF:Cf2p8Y*0Dj`gZ!Ri]E$0qculE?Z4"B6UU%B=,8FJ$&)?0qrujio8SA'F7$
+T"4Am=B&jaC,qKkC2UODjsC8,(=^AVJ8.*-^M5>hAh6fP)J`7\4iYs7Z"d#;h(5ej'\HmE%Ts
+@Aei?\1"t*N)N)f2#V[2]+jNPbH$\pHeC,rVDeH/%0>0a3S[1K:&1JgdJe`I(9BqX285W'!MS
+"#D:L*#CHAQu0CE.X&%P\M=RTGepSWW=<:)B]*]!@"0T+9JPD,+ohs!ic8FTGepSWW=<:)B]*
+]!@"0T+C\9Lh)B3P&PF4A`IM^A4RUh\2Q#3V3U#OT^OZ^ABRsnpN<lHeeVJ`j:lPaZ#1\N[C@
+eFeoo`o61b[Up5kk,WWce!1<hC<'b8.84T%B:G1#a$fKDD:2hfEXT["2o<`W`s*n#'>]WcYNt
+>We]`fk+"E_C\`V?+%1,g[pZF\Rc3tJ"18T6(*HVhIP3G<);&k3@1).V&a9c]So?*-puNeD4,
+Ws43;?8O(p64['Xq'TDDid``ZsRBF-TG*P[G$n'1rUWjr0b*.K*YK6OGUAX6HUMH91h\KMdG?
+UJ/BY_-QB_h+Jr_VDMR=K!"?KPI>$J&(cHX;:?[&#fR`=Nd>29f3U/bR22@TY#0pJObst3&aZ
+N&;5266sqIWEu"MhC5^rD>-(5YT2;pNQ)00/:i-aO[6Wac=/L?`TNYCtlKdEO_4#+qc*sb);-
+-,WocA5,ea0'1G^JH]pp9@0]2EtRTG$.U>*)i(4LlW`U9ZZ1DJ9lhVptp)7gR3.DLpE@*5M'U
+"hciLPp&s5WjOK;R35<X2q>Jl=f!";>0i1%kQb)1::3sWG'hM"2-QXk<$MIE5rBjZg/_1bX#G
+;BQ9IitYq=Lled/:`YUS*fc9O6P"B5Ik5W(e0<!,NR2*_:D"%5C35Qk$g6pNUp"B5Ik5W(e0<
+!,NR2*f*W<1Buppn`1N'0nF62*f+"<1>2e#Q?dEPX)WoT\:YV[;MYk,XAbTT\:YV[;MYk,XAb
+TT\:[PWg`i'gX&lh<6aa_N(&f@o<S#9fE@VBApZBU6qT>?s)?S^D0+='(i*M;nl.4)p:*>h;/
+NOPkim(j10)R^R0(\D;@j=?coH![:t=oY:i0CA<iq;b(gsc'4h=pRC710gC5g-f*[gr=$9hG4
+R7pV%*O`:dc+M^:W0T5bWYUPod2(:1fkmaori4NG%"`5XOK!!_\lsNX1&oS.&`cRKM]LZY"4:
+T[N&<:.\Z.Opgb$SbW7DDWRfo\@%9/f"W7DDWRfo\@%9/f"W7DDWRfo\@%9/gMNN%XBi:CMaW
+aVu[N7jG1+D7>c+9JPD,+ohs!ic8FTGepSWW=<:)B]*]!@"0T+9JPD,+ohs!ic8FTGeq^;l\)
+#D?7a2QiO(>0arljQtisG!ah-2%9+8N<#Z9G)[97\%9+8N<#Z9G)[97\%9+8N<#\O9WqH>\>P
+AZi,1Z&.:$[bb#-*Y0"4d7>ES&TY'6-u]d<"W.=X#kb@5&jmX6-&-nZ"HaQaJH)0aoBT(Y+\$
+&HkmI8Z'YY1?nkP;)PO%djR*&jf[k91^%)<:J*7>,mGS"T=cICYB+W#U%SOE)X*jd?E.=U;c1
+dd"P)of+4\NljEmnPD1Or0q%U1M>#hW"Am[I(*MD,^jJ\LdFX?JJh+6K?%aKH"[;b%+<_Eh#&
+Wro)_-dDR!jnh.HN@;ON<O%(WJ6Gp-R8fEo_8NF_$K$T#(l/O[;gb\f@:K9*AB,uju!EZ(1@W
+(8]a6*-G4Y(cT/L>O>H3$NAVJr:b?H<<iom`F^ft)0EeE;9[9XI#--dDnE\g/eN/7rUZ$ZM6a
+cnY[F'AOHS'QBed5:pc,N_PX#G<G/:Tn=;N8IKW&Br9W<RAIWW=<:)B]*]!@"0T+9JPD,+ohs
+!ic8FTGepSWW=<:)B]*]!@"0T+9JPD+uZ89ag_M\Z1QG5)lT&1S,X\f``-/'#NOM:G:oRm-:"
+t=!S)2pWau62>89sdB:rET5d_mDIKAVUD:\C?\DF6jAG<Q,:QDk&b]eJ&:VP:6,aoH.Wn&kq_
+!oY1gX9`BZu#3WM+m\;,hEu'lG>,P>6G;`C'hj(\'V)I5i#:LX-su@^cMu-a":suht9P*%@5q
+sB&9t$:-@(>0bB`0m:ed+ZTmVh<HJ+da1ZNf+1Ing".i5pDO8&^TC%q\pOTD0#!t/T64]_mAu
+_+S]Hq4_(q6/\)lsH`BD/=->-Rf^#>hNM.o7fPej.Q$$bFas<JqKFC(moXe`(Z+Hea4moP:W)
+>GY0@*V1CLRjLYUCdm+WGr*V"itaIi^u'eef93Oi<ni!Y#"!ViZka^(5_L+WlX[hO$g-1kW0S
+IINa"3pDF(\s=E`JO\T_i,XA?5>TN]W+[7l*cWrf<_$rkCQW4"0H`\!R;V2sKgCeM14D1QFRC
+e?RH1JeMl!S%/^:^ms:eGp1X%1iQj!"i$:&-:;]&ProJ!S%/^:^ms:eGp1X%1ocneRn.2IH_d
+,"AfOp$4sHseRhBrqqkR&!NL8EeKt<sFT^/@!NL8EeKt<sFT^/@!NL8EeKuG,eQ>HL0^U,co>
+a"M*d_O5ksM`_1/uNeJ@g6?GX>$1Y]oT@YK6p.3MZW]lVXd5_L&7_N`POu3clVj9@\D5]KS]X
+E<MZd8#T[4'%Q>p:i0Ak=0:=DZ5p1mkjK@gj\MJJ3R;g6dSlS6Y4UbF"KLQWk,MRj]RIMGDW^
+o3hP"-(A?)(_-@k]^?>>5dRoNts<HEr5V?#/D+@F[Q+mHH:(^jOLk,k1-f1]Q<Y\*U>Y4e5M$
+BU@CC'g=5.YtmrJt.C,4gkjNVI1FEQ&PArhbYn;<h`b^TN]W+[;MYk,XAbTT\:YV[;MYk,]$.
+32@iILfI#7:C,;7^eYZ_QWe$[kC4HSg#)IeEJ-`(XLk'5j#cIr`J80T?W!8'.C4HSg#)IeEJ-
+`(XLk'5jLeXk'E=6dkWaXZa+uZ=P/BQnPOcodq\q+U[!7eZ3C6JYJ\q+U[!7eZ3C6JYJ\q+U[
+OH4/92fLq+C"$N.[if=h;,)8ZkJ(k?Y$iBk/]a?]<%E<qec`uEaI.ET1OUb-!fi[dQ#.V>hMc
+CZ"*>m)!jYZtpX\MO'^n)fp$??3_OuQsH'=;(AQem&p?40$&U!fLJ8.*.NG?$ECl3'!%&gTqn
+kmX@p(ImdiC4l%<Xn()jA.t>"_//>%0C-r1:%.cD'^kl)rh^p:H#4I!U^`a$rlNsW_EOolNX@
+`!`\IiW_EOolNX@`!`\IiW_EOolNX@`_T#Pbo<@kID1ZW(2NqiOD$i1t)TWep#)IeEJ-`(XLk
+'5j#cIr`J80T?W!8'.C4HSg#)IeEJ-`(XLk'5j#cIr`fT^+f[if=V)TF?O@UlF_Ot=<c3=/Na
+)lPY$:ot\82@33^)lPY$:ot\82@33^)lPY$H)nrZcHo6\bRIt8Jt0qe2=3ufa8@XA0Q'0/A?K
+)e`Gj?]DF#nV7Pts)r2k;m[=<4*FM"&!\Z;U@8G9J3oth-fng8_69Qc=L`p1R3_(ud%/SA+ZR
+X5.ef#a@[9+P+NCQ'^$>Hg6CX(G*e$ca]8UR62&`\;9r-=j=6&9,*$B:rEe:i-i<=uT8p&tiD
+e:i-i<=uT8p&tiDe:i-i<=uT8p&iQU*RtmhaC_LVX[@'^@C/_>ceNhDF2*_:D"%5C35Qk$g6p
+NUp"B5IkCe_>#+0Qpan[rtX++S4-p,p>N"_=*l9r[j4Ggfu+s&hDW>A$U/h.7L0S!skdG":eR
+16d:uWTHcNE,$^7np_TOn%lHcNbZmk<!fZf4@<5?RI-sH,N4joDT/Z$'!D]7k10J,iU=h8qlj
+eK^OQ,3SXhi5KJ2^k;4,cfGiLr\"=:i^9tX^l4*T&Gg8hF2.o]^W?@`%S]bAIg95!Dt`i0_3+
+I:l>:%RSKTa=>GBGO.je;L00EsFoRf8;32MHU%<B#1!R7lC;RXsk+o^U7cZTVgsVDh6nWa.15
+/*S`ON]QA>bU%>Qm-VNpE[b6aW\1s7-l4WN'rNp=iE4\8O[\OhU7$KS*`mjbZDbLK,e]<^&cA
+a7V^@7[FTkOLgYlfN.Dl<kR&?:01:pUG#g<M#W#B/i^EBrJ3<K$h)GN7j&rAW,I2T]n7T_MhS
+6Z%3<[1reoL&fcl@,7jMp\UtjT\:mBWYP)!i?-+<8j;&*_u:FTG.ZRZp=mAhZV)S6s1Z4]rql
+HIJ%)N)pi?)QGGNrA=7@d0/#]l\9N8'gD3]SjMs@;";f>J/Wj^W2T:XQN>>b<(r)N[nP"8e.+`
+%^h]S),@L49BW/[;b.&3'!7fdYg`C;l53]75BHX2$5NV$l2;]I,=9osD=W9Q7$1-,9@ar)HO=
+Y>kDqq=EdP#Z[p_JA_YVT[L2ZeLI0gY(CESTXb'aVS,qt`D:(ik4hg@p60i#O(pf2LrZ%lNCB
+%G0@`]f2<e8KH]k8&$;a_NF4Kur4_%<*%C?hB:Y^T#QQ)!%[n)3WnauHqqlc+Ep36%*W#!mlU
+^&QQ!%kp6MZ9qr@L42\<Rk*MUh/QCD<IDN<8/4J=7pGn%;'ecWb"pm!IB+P_<@j0Vd"h@>uY#
+AY"@)1<)_btRqq;%_QNi4"fVBMW-55#BelPKfbr[:27*;*^JJc)1_l[mW_u]R5P*KH$$RnQBk
+#(h_Q$i1f=nOC"d*W9HP&ZJ!Zfg%8?3Q"g,3<-E_c5n<."H@Jq"B_ejEXL<.q)_IhNV\Ub7,W
+&nU@SMU,9'N/&cV2-E/m9nDRu2)U#glDPtc:\e'J=dI=`ZmXZbq"CH99nK=P*a2a?\#17MVsU
+(c:bOp8h.ehI]gig9-<ctO.8]CF>LcSF?gpUn5e1YhAkZ]."^OO(<R]_)]bRj6H4nJS4V&Zl2
+Q$.@RV$t&oeWFJC9&te25nNik*%\TFg8hR25mr)RL@JO=,GKUO(k<pH@&5_<k3^o0$_:fX\.,
+CMrL&:Y'(I2q%6?jD-NZ:;TAER-_OZ*ZkT/JfB]CK2l3P/bHOsj]n"]0hICtjIrGATKM')!Dq
+o5;1$cR0mdC9Xb8dH="K6JKX&L\Ldh[h5<`*^HP=X5irmlApDl;W./:\#)#)N%\9`tZ9kPkMpC,Ws~>
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 618 994
+%%EOF
+
+%%EndDocument
+ @endspecial 396 4240 a
+ currentpoint currentpoint translate 1 0.3 div 1 0.3 div scale neg
+exch neg exch translate
+ 396 4240 a -2 4792 a Fo(3.4.)47
+b(Using)h(CUPS)g(fr)m(om)g(the)g(Command)g(Line)396 5008
+y Fm(It)25 b(is)f(possible)g(to)g(use)h(the)g(CUPS)h(printing)d(system)
+h(from)g(the)h(command)f(line.)g(While)g(this)396 5137
+y(document)g(will)g(not)g(delv)o(e)g(into)g(all)h(of)g(the)f
+(speci\002cs)h(of)g(the)g(CUPS)h(command)e(line)p Black
+3641 5692 a Fi(27)p Black eop
+%%Page: 28 37
+28 36 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 579 a Fm(interf)o(ace,)i
+(there)f(are)g(portions)f(of)h(this)e(interf)o(ace)j(which)e(are)i
+(speci\002c)f(to)f(the)h(Gimp-Print)396 708 y(softw)o(are.)396
+888 y(The)g(command)f(line)g(is)h(in)f(some)g(cases)h(a)h(more)e(con)l
+(v)o(enient)g(w)o(ay)h(to)f(generate)h(printed)396 1017
+y(output)f(\(e.g.)h(when)f(printing)g(from)g(a)i(script\).)e(Ho)n(we)n
+(v)o(er)l(,)f(most)h(people)h(\(including)e(the)396 1147
+y(author\))i(cannot)f(easily)h(predict)f(what)h(a)g(command)f(line)g
+(option)g(of)h("-o)f(stpCyan=1350")396 1276 y(will)g(do)h(to)f(the)h
+(output.)e(It)i(is)f(therefore)i(a)f(good)f(idea)h(to)f(use)h(the)g
+(GIMP)g(to)f(vie)n(w)g(the)h(image)396 1406 y(and)g(the)g(Gimp-Print)e
+(plugin)h(to)g(pre)n(vie)n(w)g(these)h(settings)e(before)j(relying)e
+(on)g(the)h(command)396 1535 y(line.)396 1715 y(When)g(using)f(CUPS)i
+(from)f(the)f(command)g(line,)g(the)h(command)f(will)g(ha)n(v)o(e)g
+(this)g(general)396 1844 y(format:)665 2060 y Fh(lpr)53
+b(-P)h(my_printer_name)d(\\)880 2177 y(-o)j(option1=<choice1>)c(\\)880
+2293 y(-o)k(option2=<choice2>)c(\\)880 2410 y(/path/to/printfile)396
+2872 y Fm(When)25 b(typing)f(the)g(command)g(directly)g(onto)g(the)h
+(command)f(line,)g(put)g(all)h(of)g(the)f(command)396
+3002 y(line)h(options)e(on)h(one)h(line,)f(and)h(do)g(not)f(type)g(the)
+h("\\")f(characters.)i(The)e(list)g(of)h(possible)396
+3131 y(options)f(which)g(are)i(speci\002c)f(to)f(Gimp-Print,)g(follo)n
+(wed)f(by)i(some)f(of)h(the)g(supported)396 3261 y(choices,)g(are)g
+(sho)n(wn)f(belo)n(w:)558 3477 y Fh(-o)53 b(PageSize=<...|)e(A3)i(|)h
+(A4)f(|)h(A4)f(|)h(...>)558 3594 y(-o)f(InputSlot=<Roll)e(|)i
+(Standard>)558 3710 y(-o)g(MediaType=<)f(..|)h(Inkjet)f(|)i(Plain)f(|)g
+(GlossyPaper)f(|)i(...>)558 3827 y(-o)f(Resolution=<360sw)d(|)k
+(360swuni)e(...|)h(1440x720)f(>)558 3943 y(-o)h(ColorModel=<Black)d(|)k
+(RGB)f(|)h(Gray)f(|)g(CMYK>)558 4060 y(-o)g(stpBrightness=<0...2000>)
+558 4176 y(-o)g(stpContrast=<0...2000>)558 4293 y(-o)g
+(stpCyan=<0...4000>)558 4410 y(-o)g(stpDensity=<0...2000>)558
+4526 y(-o)g(stpDither=<0...4000>)558 4643 y(-o)g(stpGamma=<0...4000>)
+558 4759 y(-o)g(stpImageType=<LineArt)d(|)j(Continuous)f(|)i
+(SolidTone>)558 4876 y(-o)f(stpInkType=<PhotoCMY)d(|)j(CMYK)g(|)h
+(PhotoCMYK)e(|)i(RGB>)558 4992 y(-o)f(stpMagenta=<0...4000>)558
+5109 y(-o)g(stpSaturation=<0...9000>)558 5225 y(-o)g
+(stpYellow=<0...4000>)p Black 3645 5692 a Fi(28)p Black
+eop
+%%Page: 29 38
+29 37 bop Black 0 TeXcolorgray Black 2384 67 a Fi(Chapter)24
+b(3.)h(CUPS)g(and)f(Gimp-Print)p Black 396 925 a Fm(F)o(or)h(more)g
+(detailed)f(information,)f(consult)h(the)h(appropriate)f(sections)g(of)
+p 0 TeXcolorgray 25 w(Chapter)h(2)p Black(.)p Black 3645
+5692 a Fi(29)p Black eop
+%%Page: 30 39
+30 38 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(Chapter)58
+b(4.)f(Gimp-Print)h(Utilities)-2 1167 y Fo(4.1.)47 b(escputil)396
+1383 y Fi(escputil)24 b Fm(is)h(a)g(command)f(line)g(utility)f(which)h
+(allo)n(ws)g(the)g(user)h(to)g(perform)g(a)g(v)n(ariety)f(of)396
+1512 y(maintenance)h(tasks)f(on)g(Epson)g(Stylus)g(inkjet)g(printers.)g
+(These)h(tasks)f(include)h(head)396 1642 y(alignment,)f(head)h
+(cleaning,)f(nozzle)h(check,)g(printer)f(identi\002cation,)g(and)h
+(retrie)n(v)n(al)f(of)h(the)396 1771 y(ink)f(le)n(v)o(el)g(from)h(the)f
+(printer)-5 b(.)24 b(In)h(order)g(for)g(man)o(y)f(of)h(the)g
+Fi(escputil)f Fm(functions)f(to)i(w)o(ork,)f(the)396
+1901 y(user)h(must)f(ha)n(v)o(e)g(read/write)h(access)g(to)g(the)g(ra)o
+(w)f(printer)h(de)n(vice)f(\(typically)g(/de)n(v/lp0,)396
+2031 y(/de)n(v/usb/lp0,)e(and)j(the)g(lik)o(e\).)f(In)h(general,)g
+(these)g(operations)f(should)f(be)i(performed)g(by)g(the)396
+2160 y(root)g(user)-5 b(.)24 b(As)h(al)o(w)o(ays,)f(the)h(user)g(must)e
+(insure)i(that)f(the)h(directory)f(containing)g(the)g
+Fi(escputil)396 2290 y Fm(utility)f(is)i(listed)e(in)i(the)f($P)-9
+b(A)e(TH)25 b(en)l(vironment)f(v)n(ariable,)g(or)h(that)f(the)h(full)f
+(path)g(is)h(speci\002ed)396 2419 y(on)g(the)f(command)g(line.)h(The)f
+(e)o(xamples)g(in)g(this)g(section)g(will)g(assume)h(the)f(former)-5
+b(.)p 778 2557 2601 17 v 778 3543 17 986 v 1812 2736
+a Fe(Caution)820 2905 y Fc(The)24 b Fb(escputil)33 b
+Fc(utility)27 b(w)o(as)d(designed)g(f)m(or)i(use)f(ONL)-13
+b(Y)25 b(with)h(Epson)820 3024 y(Stylus)f(inkjet)g(pr)q(inters)h
+(suppor)t(ted)f(b)n(y)g(the)g(Gimp-Pr)q(int)i(softw)o(are)o(.)e(It)820
+3142 y(is)g(possib)n(le)g(that)g(damage)g(MIGHT)g(occur)g(to)g(y)n(our)
+h(pr)q(inter)g(if)g(this)820 3261 y(utility)g(is)f(misused)g(or)g(if)h
+(it)g(is)g(used)e(with)i(a)f(pr)q(inter)i(other)e(than)g(an)820
+3380 y(Epson)f(Stylus)h(inkjet)h(pr)q(inter)-5 b(.)27
+b(It)f(is)f(the)h(sole)f(responsibility)g(of)g(the)820
+3498 y(user)g(to)g(insure)g(that)h(this)f(utility)i(is)e(suitab)n(le)g
+(f)m(or)i(the)e(task)g(at)g(hand.)p 3362 3543 V 778 3559
+2601 17 v 396 3777 a Fm(In)g(this)f(section,)g(speci\002c)h(e)o
+(xamples)f(of)h(common)f(usage)g(will)g(be)h(presented.)g(A)g(summary)
+396 3907 y(of)g(the)g(command)f(line)g(switches)g(can)h(be)g(found)f
+(in)h(the)g Fi(escputil)p Fm(\(1\))f(man)g(page.)-2 4301
+y Fe(4.1.1.)39 b(Determining)d(Ink)k(Le)n(vel)396 4502
+y Fm(Perhaps)26 b(the)e(most)g(basic)h(function)f(performed)g(by)h
+Fi(escputil)f Fm(is)g(that)h(of)f(determining)g(the)396
+4631 y(amount)g(of)h(ink)f(remaining)g(in)g(the)h(printer)-5
+b(.)24 b(T)-8 b(o)25 b(do)f(this,)g(the)h(user)g(must)e(kno)n(w)h(the)h
+(name)f(of)396 4761 y(the)h(ra)o(w)f(printer)h(de)n(vice.)f(This)g(is)g
+(usually)g(/de)n(v/lp0)f(for)i(a)g(printer)f(connected)h(to)f(the)h
+(parallel)396 4890 y(port,)g(or)f(/de)n(v/usb/lp0)f(for)i(a)g(printer)f
+(connected)h(to)f(the)h(USB.)396 5070 y(If)h(there)f(are)g(multiple)e
+(printers)h(connected,)h(one)g(of)g(them)f(may)g(be)h(referenced)i(as)d
+(/de)n(v/lp1)396 5199 y(or)h(perhaps)g(/de)n(v/usb/lp1.)d(In)j(the)f(e)
+n(v)o(ent)g(of)h(uncertainty)-6 b(,)24 b(and)g(if)h(CUPS)h(is)f(in)f
+(use,)h(vie)n(w)f(the)p Black 3645 5692 a Fi(30)p Black
+eop
+%%Page: 31 40
+31 39 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fm(follo)n(wing)g(URL)i
+(\(http://localhost:631/printers\))c(with)j(a)h(web)g(bro)n(wser)-5
+b(.)23 b(At)i(that)f(URL,)396 708 y(look)g(for)h(a)h(line)e(which)g
+(reads)h("De)n(vice)g(URI".)g(The)f(author')-5 b(s)24
+b(USB)i(printer)e(is)h(listed)f(as)396 838 y("De)n(vice)g(URI:)i
+(usb:/de)n(v/usb/lp0".)396 1017 y(F)o(or)f(this)f(e)o(xample,)g(assume)
+g(that)g(the)h(ra)o(w)g(printer)f(de)n(vice)h(is)f(a)h(USB)h(printer)e
+(speci\002ed)h(as)396 1147 y(/de)n(v/usb/lp0.)d(T)-8
+b(o)25 b(get)g(the)f(ink)g(le)n(v)o(el)g(for)h(this)f(printer)l(,)g
+(issue)g(this)g(command)g(and)h(notice)f(the)396 1276
+y(output.)396 1492 y Fh(#)54 b(escputil)e(-r)h(/dev/usb/lp0)f(-i)396
+1726 y(Escputil)g(version)h(4.3.0,)f(Copyright)g(\(C\))i(2000-2001)e
+(Robert)g(Krawitz)396 1842 y(Escputil)g(comes)h(with)g(ABSOLUTELY)f(NO)
+h(WARRANTY;)f(for)i(details)e(type)396 1959 y('escputil)g(-l')396
+2075 y(This)h(is)h(free)f(software,)f(and)h(you)g(are)g(welcome)g(to)g
+(redistribute)e(it)396 2192 y(under)i(certain)f(conditions;)g(type)h
+('escputil)f(-l')h(for)g(details.)988 2425 y(Ink)g(color)214
+b(Percent)53 b(remaining)1203 2542 y(Black)268 b(18)1257
+2658 y(Cyan)g(71)1096 2775 y(Magenta)f(70)1149 2891 y(Yellow)h(67)934
+3008 y(Light)53 b(Cyan)268 b(71)773 3124 y(Light)53 b(Magenta)267
+b(70)396 3587 y Fm(The)25 b(user)g(w)o(ould)f(substitute)f(their)h(o)n
+(wn)g(ra)o(w)h(printer)g(de)n(vice)f(for)h(the)g(one)f(sho)n(wn)g(in)g
+(the)396 3716 y(e)o(xample)g(after)i(the)e("-r")h(switch.)f(Notice)g
+(that)h(the)f(printout)g(sho)n(ws)f(the)i(percent)g(of)g(ink)396
+3846 y(remaining)f(for)h(each)h(color)e(of)h(the)g(author')-5
+b(s)24 b(Epson)g(Stylus)g(Photo)g(870.)g(When)h(the)g(ink)396
+3975 y(le)n(v)o(els)f(get)g(too)g(lo)n(w)-6 b(,)24 b(print)g(quality)g
+(will)f(suf)n(fer)-5 b(.)25 b(In)g(the)f(author')-5 b(s)24
+b(personal)h(e)o(xperience,)f(ink)396 4105 y(le)n(v)o(els)g
+(approaching)g(10\045)g(be)o(gin)g(to)h(cause)g(print)f(quality)g(de)o
+(gredation,)f(b)n(ut)i(this)e(will)h(v)n(ary)396 4234
+y(depending)g(on)h(the)f(precise)h(printer)g(model.)-2
+4678 y Fe(4.1.2.)39 b(Err)m(or)f(During)g(Ink)i(Le)n(vel)e
+(Determination)396 4879 y Fm(What?)25 b(The)g(e)o(xample)f(abo)o(v)o(e)
+g(did)g(not)g(w)o(ork?)h(An)g(error)g(message)g(w)o(as)g(printed?)f
+(What)h(does)396 5009 y(it)g(mean?)f(There)i(are)f(se)n(v)o(eral)f
+(possibilities,)e(depending)i(on)h(the)f(speci\002c)i(error)f(message.)
+f(If)396 5138 y(the)g(error)h(message)e(is)h("In)l(v)n(alid)e(ar)n
+(gument")h(\(see)i(follo)n(wing)d(e)o(xample\),)h(the)g(problem)g(is)h
+(that)p Black 3645 5692 a Fi(31)p Black eop
+%%Page: 32 41
+32 40 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fm(the)i(k)o(ernel)g
+(is)f(not)g(con\002gured)h(with)f(the)h(CONFIG_PRINTER_READB)m(A)l(CK)i
+(option)396 708 y(enabled.)396 925 y Fh(#)54 b(escputil)e(-r)h
+(/dev/lp0)g(-i)396 1158 y(Escputil)f(version)h(4.3.0,)f(Copyright)g
+(\(C\))i(2000-2001)e(Robert)g(Krawitz)396 1274 y(Escputil)g(comes)h
+(with)g(ABSOLUTELY)f(NO)h(WARRANTY;)f(for)i(details)e(type)396
+1391 y('escputil)g(-l')396 1507 y(This)h(is)h(free)f(software,)f(and)h
+(you)g(are)g(welcome)g(to)g(redistribute)e(it)396 1624
+y(under)i(certain)f(conditions;)g(type)h('escputil)f(-l')h(for)g
+(details.)396 1857 y(Cannot)g(read)g(from)g(/dev/lp0:)f(Invalid)g
+(argument)396 2319 y Fm(Another)25 b(possibile)e(cause)i(for)g(error)h
+(is)e(that)g(the)h(ra)o(w)g(printer)f(de)n(vice)h(does)f(not)g(ha)n(v)o
+(e)h(both)396 2449 y(read)h(and)e(write)h(permission)e(for)i(the)g
+(user)g(attempting)e(to)h(access)i(the)e(de)n(vice.)h(In)g(this)e
+(case,)396 2578 y(the)i(error)g(message)g(will)f(read)h("Permission)e
+(denied".)i(A)f(\002nal)h(possibility)e(is)h(that)g(the)h(ra)o(w)396
+2708 y(printer)g(de)n(vice)f(speci\002ed)h(is)g(incorrect,)g(in)f
+(which)g(case)i(the)e(error)i(message)e(will)g(read)i("No)396
+2837 y(such)f(de)n(vice".)-2 3281 y Fe(4.1.3.)39 b(Nozzle)f(Chec)m(k)
+396 3482 y Fm(On)25 b(an)g(inkjet)f(printer)l(,)g(there)h(are)h(se)n(v)
+o(eral)e(small)g(holes)g(on)g(the)h(bottom)e(of)i(each)h(ink)396
+3612 y(cartridge)f(through)f(which)g(the)h(ink)f(must)g(\003o)n(w)h
+(smoothly)d(in)j(order)g(to)f(create)i(high)e(quality)396
+3741 y(images)g(on)h(paper)-5 b(.)25 b(If)g(these)f(holes)h(become)f
+(clogged,)h(the)f(printed)g(image)h(will)f(sho)n(w)f(small)396
+3871 y(gaps)h(where)i(there)f(should)e(ha)n(v)o(e)i(been)g(ink.)f(One)h
+(can)g(easily)f(test)h(for)g(the)f(e)o(xistence)g(of)h(this)396
+4000 y(condition)f(by)g(running)g(a)h(nozzle)g(check.)g(One)g(need)g
+(not)f(be)h(the)g(root)f(user)h(to)g(issue)f(this)396
+4130 y(command.)g(Note)h(that)f(as)h(sho)n(wn,)e(the)i(command)f(will)g
+(print)g(a)h(nozzle)g(test)f(pattern)h(on)f(the)396 4259
+y(def)o(ault)h(printer)-5 b(.)24 b(If)h(there)g(are)h(multiple)d
+(printers)h(present,)g(the)h(desired)g(printer)f(must)g(be)396
+4389 y(speci\002ed)h(with)f(an)h(additional)f("-P)h(printer_name")f
+(switch,)g(where)h("printer_name")e(is)i(the)396 4518
+y(name)g(of)g(the)g(desired)f(printer)-5 b(.)396 4698
+y(The)25 b(printer)g(will)f(print)g(a)h(series)g(of)f(black)h(\(and)g
+(colored\))g(slanted)f(lines)g(on)h(the)f(paper)-5 b(.)396
+4827 y(Observ)o(e)25 b(these)f(lines)g(carefully)-6 b(.)25
+b(If)g(there)g(are)h(gaps)e(or)h(spaces)f(in)h(these)g(lines,)f(then)g
+(the)396 4957 y(corresponding)g(nozzle)h(is)f(clogged)h(and)g(the)f
+(print)g(head)h(must)f(be)h(cleaned.)g(Ho)n(we)n(v)o(er)l(,)e(if)396
+5086 y(there)i(are)h(no)e(gaps,)g(the)h(nozzles)g(are)g(clean.)p
+Black 3645 5692 a Fi(32)p Black eop
+%%Page: 33 42
+33 41 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fh(#)54
+b(escputil)e(-n)396 695 y(Escputil)g(version)h(4.3.0,)f(Copyright)g
+(\(C\))i(2000-2001)e(Robert)g(Krawitz)396 812 y(Escputil)g(comes)h
+(with)g(ABSOLUTELY)f(NO)h(WARRANTY;)f(for)i(details)e(type)396
+929 y('escputil)g(-l')396 1045 y(This)h(is)h(free)f(software,)f(and)h
+(you)g(are)g(welcome)g(to)g(redistribute)e(it)396 1162
+y(under)i(certain)f(conditions;)g(type)h('escputil)f(-l')h(for)g
+(details.)396 1395 y(Running)g(nozzle)f(check,)h(please)f(ensure)h
+(paper)g(is)g(in)h(the)f(printer.)-2 2121 y Fe(4.1.4.)39
+b(Clean)f(the)h(Print)g(Head)396 2323 y Fm(If)26 b(the)e(printed)g
+(output)g(is)g(sho)n(wing)f(gaps)h(where)i(there)f(should)e(ha)n(v)o(e)
+i(been)g(ink,)f(it)g(is)h(lik)o(ely)396 2452 y(that)g(one)f(or)h(more)g
+(nozzles)g(are)g(clogged)f(and)h(the)g(print)f(head)h(is)f(in)h(need)g
+(of)g(cleaning.)f(One)396 2582 y(can)h(v)o(erify)g(this)f(by)g(\002rst)
+h(running)f(a)h(nozzle)g(check)g(and)g(looking)e(for)i(gaps)f(in)h(the)
+g(printout.)396 2711 y(T)-8 b(o)24 b(clean)h(the)f(print)f(head,)i
+(issue)e(the)h(follo)n(wing)f(command.)g(One)h(need)g(not)g(be)g(the)h
+(root)e(user)396 2841 y(to)i(issue)f(this)g(command.)f(Note)i(that)f
+(as)h(sho)n(wn,)f(the)g(command)g(will)g(clean)h(the)g(print)f(head)396
+2970 y(on)h(the)f(def)o(ault)h(printer)-5 b(.)24 b(If)h(there)g(are)h
+(multiple)d(printers)h(present,)h(the)f(desired)h(printer)f(must)396
+3100 y(be)h(speci\002ed)g(with)f(an)h(additional)f("-P)h(printer_name")
+f(switch,)g(where)h("printer_name")e(is)396 3229 y(the)i(name)g(of)g
+(the)f(desired)h(printer)-5 b(.)396 3445 y Fh(#)54 b(escputil)e(-c)396
+3562 y(Escputil)g(version)h(4.3.0,)f(Copyright)g(\(C\))i(2000-2001)e
+(Robert)g(Krawitz)396 3678 y(Escputil)g(comes)h(with)g(ABSOLUTELY)f(NO)
+h(WARRANTY;)f(for)i(details)e(type)396 3795 y('escputil)g(-l')396
+3912 y(This)h(is)h(free)f(software,)f(and)h(you)g(are)g(welcome)g(to)g
+(redistribute)e(it)396 4028 y(under)i(certain)f(conditions;)g(type)h
+('escputil)f(-l')h(for)g(details.)396 4261 y(Cleaning)f(heads...)396
+4724 y Fm(Nothing)24 b(will)g(be)h(printed)f(on)g(the)h(paper)-5
+b(.)25 b(The)f(printer)h(will)f(mak)o(e)h(some)f(noise)g(as)h(it)f
+(cleans)396 4853 y(the)h(print)f(head.)h(W)-8 b(ait)25
+b(until)e(the)i(printer)f(is)h(\002nished)f(cleaning)h(the)f(print)g
+(head.)h(Afterw)o(ards,)396 4983 y(e)o(x)o(ecute)f(another)h(nozzle)g
+(check)g(and)g(insure)f(that)h(the)f(print)h(head)g(is)f(indeed)g
+(completely)396 5112 y(clean.)h(Note)g(that)f(the)h(process)g(of)f
+(cleaning)h(the)g(print)f(head)h(causes)g(ink)f(consumption,)e(so)396
+5242 y(do)j(not)f(clean)h(the)g(print)f(head)h(an)o(y)f(more)h(than)f
+(necessary)-6 b(.)p Black 3645 5692 a Fi(33)p Black eop
+%%Page: 34 43
+34 42 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fm(F)o(or)i(se)n(v)o
+(erely)e(clogged)h(nozzles,)h(one)f(may)g(ha)n(v)o(e)g(to)g(e)o(x)o
+(ecute)g(tw)o(o)g(or)h(three)g(c)o(ycles)f(of)g(nozzle)396
+708 y(check)h(follo)n(wed)f(by)h(a)g(cleaning)f(of)h(the)g(print)f
+(head.)h(If)g(the)g(printer)f(had)h(gone)f(unused)h(for)g(a)396
+838 y(long)f(time,)g(the)h(nozzles)g(may)f(be)h(so)f(clogged)h(with)f
+(dried)g(ink)h(as)g(to)f(be)h(unreco)o(v)o(erable,)f(in)396
+967 y(which)h(case,)g(the)g(best)f(course)h(of)g(action)f(is)h(to)f
+(replace)h(the)g(ink)f(cartridge.)-2 1411 y Fe(4.1.5.)39
+b(Align)f(the)h(Print)g(Head)396 1612 y Fm(T)-8 b(o)25
+b(insure)f(the)h(highest)f(quality)f(printouts,)g(the)i(print)f(head)h
+(must)f(be)h(in)f(proper)h(physical)396 1742 y(alignment.)f(One)g(can)i
+(check)f(and)g(realign)f(the)h(print)f(head)h(by)f(running)g(this)g
+(interacti)n(v)o(e)396 1871 y(alignment)g(test.)396 2051
+y(The)h Fi(escputil)f Fm(utility)f(must)h(kno)n(w)f(the)i(e)o(xact)g
+(printer)f(model)g(in)h(use.)f(One)h(may)g(specify)f(the)396
+2180 y(model)g(on)h(the)f(command)g(line)h(using)e(the)i("-m")f
+(switch,)g(or)h(the)f(utility)f(can)j(detect)e(the)396
+2310 y(printer)h(model)f(if)h(the)f(user)h(passes)f(the)h("-r")g
+(switch)f(and)g(the)h(name)g(of)g(the)f(ra)o(w)h(printer)396
+2439 y(de)n(vice.)396 2618 y(Note)g(that)f(an)h(unpri)n(vile)o(ged)e
+(user)i(may)f(use)h(this)f(command)f(with)h(the)h("-m")f(switch,)g(b)n
+(ut)g(that)396 2748 y(\(in)h(general\))g(the)g(root)f(user)h(may)g
+(only)f(use)g(the)h("-r")f(switch)h(\(which)f(requires)h(read/write)396
+2877 y(access)h(to)e(the)h(ra)o(w)f(printer)h(de)n(vice\).)f(In)h(the)g
+(case)g(of)g(multiple)e(printers)i(in)f(use,)h(the)f("-P")396
+3007 y(switch)g(is)h(required)g(to)f(align)g(the)h(print)f(head)h(on)f
+(the)h(non-def)o(ault)f(printer)-5 b(.)p 778 3145 2601
+17 v 778 4130 17 986 v 1812 3324 a Fe(Caution)820 3493
+y Fc(This)25 b(utility)h(lets)f(y)n(ou)g(align)h(the)f(pr)q(int)h(head)
+f(of)g(y)n(our)g(Epson)g(Stylus)820 3611 y(inkjet)g(pr)q(inter)-5
+b(.)28 b(Misuse)c(of)i(this)f(utility)i(ma)m(y)e(cause)f(y)n(our)h(pr)q
+(int)h(quality)820 3730 y(to)f(deg)o(r)o(ade)g(and)g(possib)n(ly)f
+(damage)g(y)n(our)i(pr)q(inter)-5 b(.)27 b(This)e(utility)h(has)820
+3849 y(not)f(been)f(re)m(vie)n(w)o(ed)i(b)n(y)f(Seik)n(o)g(Epson)f(f)m
+(or)i(correctness)o(,)f(and)f(is)820 3968 y(off)m(ered)i(with)f(no)g(w)
+o(arr)o(anty)h(at)f(all.)h(The)f(entire)h(r)q(isk)f(of)h(using)f(this)
+820 4086 y(utility)h(lies)f(with)h(y)n(ou.)p 3362 4130
+V 778 4147 2601 17 v 396 4365 a Fm(Aligning)d(the)i(print)f(head)h(is)g
+(an)f(interacti)n(v)o(e)g(process.)h(The)f(utility)f(will)h(print)g
+(out)h(a)g(set)f(of)396 4495 y(instructions)f(and)i(ask)g(you)f(for)h
+(responses.)f(Please)i(read)f(the)g(instructions)d(carefully)j(and)396
+4624 y(follo)n(w)f(them)g(precisely)-6 b(.)24 b(A)h(single)f(sheet)g
+(of)h(paper)g(will)f(be)h(needed)g(\(one)g(can)g(print)g(on)f(both)396
+4754 y(sides)g(to)h(sa)n(v)o(e)f(paper\).)396 4933 y(The)h(follo)n
+(wing)e(e)o(xample)h(illustrates)f(the)i(alignment)e(process)i(when)g
+(issued)f(by)g(an)396 5063 y(unpri)n(vile)o(ged)f(user)i(who)f
+(speci\002ed)h(the)g(printer)f(model)g(on)h(the)g(command)e(line.)i
+(\(T)-8 b(o)24 b(obtain)396 5192 y(a)h(list)f(of)h(printer)g(models,)e
+(issue)h(the)h("escputil)e(-M")i(command\).)f(Of)h(course,)g(your)p
+Black 3645 5692 a Fi(34)p Black eop
+%%Page: 35 44
+35 43 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fm(responses)i(will)e
+(v)n(ary)i(and)g(should)e(be)i(substituted)e(for)i(the)g(responses)f
+(sho)n(wn)f(in)i(the)396 708 y(follo)n(wing)e(e)o(xample.)396
+1041 y Fh(***)53 b(NOTE)g(-)h(870)f(is)h(an)f(illustrative)e(example!)i
+(***)396 1158 y(***)g(You)h(MUST)f(use)g(the)g(proper)g(printer)f
+(model!)h(***)396 1274 y(***)g(Run:)107 b(escputil)52
+b(-M)i(for)f(a)h(listing)e(of)269 b(***)396 1391 y(***)53
+b(supported)f(printer)h(models!)752 b(***)396 1624 y(linuxpc>)52
+b(escputil)h(-a)g(-m)g(870)396 1741 y(Escputil)f(version)h(4.3.0,)f
+(Copyright)g(\(C\))i(2000-2001)e(Robert)g(Krawitz)396
+1857 y(Escputil)g(comes)h(with)g(ABSOLUTELY)f(NO)h(WARRANTY;)f(for)i
+(details)e(type)396 1974 y('escputil)g(-l')396 2090 y(This)h(is)h(free)
+f(software,)f(and)h(you)g(are)g(welcome)g(to)g(redistribute)e(it)396
+2207 y(under)i(certain)f(conditions;)g(type)h('escputil)f(-l')h(for)g
+(details.)396 2440 y(Please)g(read)g(these)g(instructions)e(very)i
+(carefully)f(before)h(proceeding.)396 2673 y(This)g(utility)g(lets)g
+(you)g(align)g(the)g(print)g(head)g(of)g(your)g(Epson)g(Stylus)396
+2790 y(inkjet)g(printer.)106 b(Misuse)52 b(of)i(this)f(utility)f(may)h
+(cause)g(your)g(print)396 2906 y(quality)g(to)g(degrade)f(and)i
+(possibly)e(damage)g(your)h(printer.)106 b(This)53 b(utility)396
+3023 y(has)g(not)h(been)f(reviewed)f(by)h(Seiko)g(Epson)g(for)g
+(correctness,)e(and)j(is)396 3139 y(offered)f(with)g(no)g(warranty)f
+(at)i(all.)106 b(The)54 b(entire)e(risk)h(of)h(using)e(this)396
+3256 y(utility)h(lies)g(with)g(you.)396 3489 y(This)g(utility)g(prints)
+f(3)i(test)f(patterns.)106 b(Each)53 b(pattern)f(looks)h(very)396
+3606 y(similar.)106 b(The)53 b(patterns)g(consist)f(of)h(a)h(series)f
+(of)g(pairs)g(of)g(vertical)396 3722 y(lines)g(that)g(overlap.)106
+b(Below)53 b(each)g(pair)g(of)g(lines)g(is)g(a)h(number)f(between)396
+3839 y(1)h(and)f(15.)396 4072 y(When)g(you)g(inspect)g(the)g(pairs)g
+(of)g(lines,)g(you)g(should)g(find)g(the)g(pair)396 4188
+y(of)h(lines)e(that)h(is)h(best)f(in)g(alignment,)f(that)h(is,)g(that)g
+(best)g(forms)396 4305 y(a)h(single)e(vertical)h(line.)106
+b(Inspect)53 b(the)g(pairs)g(very)g(carefully)f(to)396
+4422 y(find)h(the)g(best)g(match.)107 b(Using)53 b(a)g(loupe)g(or)g
+(magnifying)f(glass)h(is)396 4538 y(recommended)f(for)h(the)g(most)g
+(critical)f(inspection.)106 b(It)53 b(is)h(also)396 4655
+y(suggested)e(that)h(you)g(use)h(a)f(good)g(quality)g(paper)f(for)i
+(the)f(test,)g(so)396 4771 y(that)g(the)g(lines)g(are)g(well-formed)f
+(and)h(do)h(not)f(spread)f(through)h(the)396 4888 y(paper.)107
+b(After)52 b(picking)h(the)g(number)g(matching)f(the)h(best)g(pair,)g
+(place)396 5004 y(the)g(paper)g(back)g(in)h(the)f(paper)g(input)f(tray)
+h(before)g(typing)g(it)g(in.)396 5237 y(Each)g(pattern)g(is)g(similar,)
+f(but)h(later)g(patterns)f(use)i(finer)e(dots)h(for)p
+Black 3645 5692 a Fi(35)p Black eop
+%%Page: 36 45
+36 44 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fh(more)53
+b(critical)f(alignment.)106 b(You)53 b(must)g(run)g(all)h(of)f(the)g
+(passes)g(to)396 695 y(correctly)f(align)h(your)g(printer.)106
+b(After)53 b(running)f(all)h(the)h(alignment)396 812
+y(passes,)f(the)g(alignment)f(patterns)g(will)h(be)g(printed)g(once)g
+(more.)106 b(You)396 929 y(should)53 b(find)g(that)g(the)g(middle-most)
+f(pair)h(\(#8)g(out)g(of)g(the)h(15\))f(is)g(the)396
+1045 y(best)g(for)g(all)h(patterns.)396 1278 y(After)f(the)g(passes)g
+(are)g(printed)f(once)h(more,)g(you)g(will)g(be)h(offered)e(the)396
+1395 y(choices)h(of)g(\(s\)aving)f(the)h(result)g(in)g(the)h(printer,)e
+(\(r\)epeating)f(the)396 1511 y(process,)h(or)i(\(q\)uitting)e(without)
+g(saving.)106 b(Quitting)52 b(will)h(not)h(restore)396
+1628 y(the)f(previous)g(settings,)f(but)h(powering)f(the)h(printer)g
+(off)g(and)g(back)396 1745 y(on)h(will.)106 b(If)54 b(you)f(quit,)g
+(you)g(must)g(repeat)f(the)i(entire)e(process)h(if)396
+1861 y(you)g(wish)g(to)h(later)f(save)g(the)g(results.)106
+b(It)53 b(is)h(essential)e(that)h(you)396 1978 y(not)g(turn)g(your)g
+(printer)g(off)g(during)g(this)g(procedure.)396 2211
+y(This)g(procedure)f(assumes)h(that)g(your)g(printer)f(is)h(an)h(Epson)
+f(Stylus)f(Photo)396 2327 y(870.)107 b(If)53 b(this)g(is)h(not)f(your)g
+(printer)f(model,)h(please)g(type)g(control-C)f(now)396
+2444 y(and)h(choose)g(your)g(actual)g(printer)f(model.)396
+2677 y(Please)h(place)g(a)g(sheet)g(of)g(paper)g(in)h(your)f(printer)f
+(to)h(begin)g(the)g(head)396 2794 y(alignment)f(procedure.)396
+2910 y(Press)h(enter)g(to)g(continue)f(>)396 3027 y(Please)h(inspect)f
+(the)h(print,)g(and)g(choose)g(the)g(best)g(pair)g(of)g(lines)g(in)396
+3143 y(each)g(pattern.)106 b(Type)53 b(a)h(pair)f(number,)f('?')h(for)h
+(help,)e(or)i('r')f(to)g(repeat)396 3260 y(the)g(procedure.)396
+3376 y(Pass)g(#1>)g(8)396 3493 y(Pass)g(#2>)g(8)396 3610
+y(Pass)g(#3>)g(8)396 3726 y(Attempting)f(to)h(set)h
+(alignment...succeeded.)396 3843 y(Please)f(verify)f(that)h(the)h
+(alignment)e(is)h(correct.)106 b(After)53 b(the)g(alignment)396
+3959 y(pattern)g(is)g(printed)f(again,)h(please)g(ensure)f(that)h(the)g
+(best)g(pattern)396 4076 y(for)g(each)g(line)g(is)h(pattern)e(8.)107
+b(If)54 b(it)f(is)h(not,)f(you)g(should)f(repeat)h(the)396
+4192 y(process)g(to)g(get)g(the)g(best)g(quality)g(printing.)396
+4309 y(Please)g(insert)f(a)i(fresh)f(sheet)g(of)g(paper.)396
+4425 y(Press)g(enter)g(to)g(continue)f(>)396 4542 y(Please)h(inspect)f
+(the)h(final)g(output)g(very)g(carefully)f(to)h(ensure)g(that)g(your)
+396 4659 y(printer)g(is)g(in)g(proper)g(alignment.)f(You)h(may)g(now:)
+504 4775 y(\(s\)ave)f(the)i(results)e(in)h(the)h(printer,)504
+4892 y(\(q\)uit)e(without)h(saving)f(the)i(results,)e(or)504
+5008 y(\(r\)epeat)g(the)h(entire)g(process)f(from)h(the)g(beginning.)
+396 5125 y(You)g(will)g(then)g(be)h(asked)f(to)g(confirm)f(your)h
+(choice.)396 5241 y(What)g(do)h(you)f(want)g(to)g(do)h(\(s,)f(q,)g
+(r\)?)p Black 3643 5692 a Fi(36)p Black eop
+%%Page: 37 46
+37 45 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black 396 579 a Fh(>)54
+b(s)396 695 y(This)f(will)g(permanently)f(alter)h(the)g(configuration)e
+(of)i(your)g(printer.)396 812 y(WARNING:)f(this)h(procedure)f(has)i
+(not)f(been)g(approved)f(by)h(Seiko)g(Epson,)396 929
+y(and)g(it)h(may)f(damage)g(your)g(printer.)f(Proceed?)396
+1045 y(Please)h(confirm)f(by)i(typing)e('s')h(again)g(that)g(you)g
+(wish)g(to)h(save)f(the)396 1162 y(settings)f(to)i(your)f(printer:)396
+1278 y(>)h(s)396 1395 y(About)f(to)g(save)g(settings...succeeded!)396
+1511 y(Your)g(alignment)f(settings)g(have)h(been)g(saved)g(to)h(the)f
+(printer.)396 1974 y Fm(The)25 b(follo)n(wing)e(e)o(xample)h(sho)n(ws)f
+(what)i(will)f(happen)g(if)h(an)g(unpri)n(vile)o(ged)e(user)i(attempts)
+e(to)396 2103 y(align)h(the)h(print)f(head)h(by)g(specifying)f(the)g
+(ra)o(w)h(printer)g(de)n(vice)f(on)h(the)f(command)g(line.)396
+2319 y Fh(linuxpc>)52 b(escputil)h(-a)g(-r)g(/dev/usb/lp0)396
+2436 y(Escputil)f(version)h(4.2.0,)f(Copyright)g(\(C\))i(2000-2001)e
+(Robert)g(Krawitz)396 2553 y(Escputil)g(comes)h(with)g(ABSOLUTELY)f(NO)
+h(WARRANTY;)f(for)i(details)e(type)396 2669 y('escputil)g(-l')396
+2786 y(This)h(is)h(free)f(software,)f(and)h(you)g(are)g(welcome)g(to)g
+(redistribute)e(it)396 2902 y(under)i(certain)f(conditions;)g(type)h
+('escputil)f(-l')h(for)g(details.)396 3135 y(Attempting)f(to)h(detect)g
+(printer)f(model...)396 3252 y(Cannot)h(open)g(/dev/usb/lp0)e
+(read/write:)h(Permission)g(denied)396 3714 y Fm(This)24
+b(ne)o(xt)g(e)o(xample)g(illustrates)g(the)g(results)g(obtained)g(when)
+h(the)g(root)f(user)h(issues)f(an)396 3844 y(alignment)g(command)g
+(while)g(specifying)g(the)g(ra)o(w)h(printer)g(de)n(vice.)f(Note)h
+(that)f(the)h(output)e(is)396 3973 y(truncated)i(and)g(only)f(sho)n(ws)
+f(the)i(printer)f(detection)g(output.)396 4189 y Fh(#)54
+b(escputil)e(-a)h(-r)h(/dev/usb/lp0)396 4306 y(Escputil)e(version)h
+(4.3.0,)f(Copyright)g(\(C\))i(2000-2001)e(Robert)g(Krawitz)396
+4422 y(Escputil)g(comes)h(with)g(ABSOLUTELY)f(NO)h(WARRANTY;)f(for)i
+(details)e(type)396 4539 y('escputil)g(-l')396 4656 y(This)h(is)h(free)
+f(software,)f(and)h(you)g(are)g(welcome)g(to)g(redistribute)e(it)396
+4772 y(under)i(certain)f(conditions;)g(type)h('escputil)f(-l')h(for)g
+(details.)396 5005 y(Attempting)f(to)h(detect)g(printer)f
+(model...Stylus)f(Photo)i(870)396 5238 y(Please)g(read)g(these)g
+(instructions)e(very)i(carefully)f(before)h(proceeding.)p
+Black 3641 5692 a Fi(37)p Black eop
+%%Page: 38 47
+38 46 bop Black 0 TeXcolorgray Black 2488 67 a Fi(Chapter)24
+b(4.)h(Gimp-Print)e(Utilities)p Black -2 1189 a Fe(4.1.6.)39
+b(Printer)f(Identi\002cation)396 1390 y Fm(The)25 b(printer)g
+(identi\002cation)e(command)h(will)g(query)h(the)f(printer)h(for)g(mak)
+o(e)g(and)g(model)396 1520 y(information.)f(This)g(command)f(requires)i
+(read/write)g(access)g(to)g(the)f(ra)o(w)h(printer)g(de)n(vice)396
+1649 y(\(generally)g(limited)e(to)i(the)f(root)h(user\).)g(Substitute)e
+(your)i(o)n(wn)f(ra)o(w)g(printer)h(de)n(vice)f(in)h(place)396
+1779 y(of)g(the)g(/de)n(v/usb/lp0)d(sho)n(wn)h(in)i(the)f(e)o(xample.)g
+(The)h(output)f(will)g(v)n(ary)g(depending)g(on)h(the)396
+1908 y(precise)g(printer)g(model.)396 2124 y Fh(#)54
+b(escputil)e(-d)h(-r)h(/dev/usb/lp0)396 2241 y(Escputil)e(version)h
+(4.3.0,)f(Copyright)g(\(C\))i(2000-2001)e(Robert)g(Krawitz)396
+2357 y(Escputil)g(comes)h(with)g(ABSOLUTELY)f(NO)h(WARRANTY;)f(for)i
+(details)e(type)396 2474 y('escputil)g(-l')396 2591 y(This)h(is)h(free)
+f(software,)f(and)h(you)g(are)g(welcome)g(to)g(redistribute)e(it)396
+2707 y(under)i(certain)f(conditions;)g(type)h('escputil)f(-l')h(for)g
+(details.)396 2940 y(@EJL)g(ID)396 3057 y
+(MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylu)o(s)48 b(Photo)53
+b(870;CLS:PRINTER;DES:)396 3173 y(EPSON)g(Stylus)g(Photo)f(870;)-2
+3900 y Fe(4.1.7.)39 b(More)f(Inf)m(ormation)396 4101
+y Fm(F)o(or)25 b(more)g(detailed)f(information)f(about)i(the)f(command)
+g(line)g(switches)g(accepted)i(by)e(the)396 4231 y Fi(escputil)g
+Fm(utility)-6 b(,)23 b(please)i(consult)e(the)i(man)f(page)h(which)g
+(is)f(supplied)g(with)g(the)g(Gimp-Print)396 4360 y(softw)o(are.)h(The)
+g(user)g(may)f(also)h(issue)f(the)g("escputil)g(--help")g(command)g(to)
+h(get)f(a)h(listing)f(of)396 4490 y(supported)g(command)g(line)g
+(switches.)g(The)h(command)f(requires)h(no)f(special)h(pri)n(vile)o
+(ges)e(to)396 4619 y(e)o(x)o(ecute.)p Black 3645 5692
+a Fi(38)p Black eop
+%%Page: 39 48
+39 47 bop Black 0 TeXcolorgray Black Black -2 647 a Fk(Appendix)58
+b(A.)g(GNU)g(Free)-2 915 y(Documentation)g(License)396
+1213 y Fm(V)-11 b(ersion)25 b(1.1,)f(March)h(2000)496
+1429 y Fa(Cop)o(yright)c(\(C\))h(2000)g(Free)g(Softw)o(are)f(F)o
+(oundation,)g(Inc.)h(59)g(T)-6 b(emple)21 b(Place,)h(Suite)g(330,)496
+1545 y(Boston,)g(MA)g(02111-1307)e(USA)i(Ev)o(eryone)f(is)h(permitted)f
+(to)h(cop)o(y)g(and)g(distrib)n(ute)f(v)o(erbatim)496
+1662 y(copies)g(of)h(this)g(license)g(document,)f(b)n(ut)i(changing)e
+(it)h(is)g(not)g(allo)n(wed.)-2 2294 y Fo(0.)47 b(PREAMBLE)396
+2509 y Fm(The)25 b(purpose)f(of)h(this)f(License)h(is)f(to)h(mak)o(e)f
+(a)i(manual,)e(te)o(xtbook,)f(or)i(other)f(written)396
+2639 y(document)g("free")h(in)g(the)f(sense)h(of)g(freedom:)f(to)h
+(assure)g(e)n(v)o(eryone)f(the)g(ef)n(fecti)n(v)o(e)g(freedom)396
+2768 y(to)h(cop)o(y)f(and)h(redistrib)n(ute)f(it,)g(with)g(or)h
+(without)e(modifying)g(it,)h(either)h(commercially)f(or)396
+2898 y(noncommercially)-6 b(.)23 b(Secondarily)-6 b(,)24
+b(this)g(License)h(preserv)o(es)f(for)h(the)g(author)f(and)h(publisher)
+f(a)396 3027 y(w)o(ay)h(to)g(get)f(credit)h(for)g(their)g(w)o(ork,)f
+(while)g(not)h(being)f(considered)g(responsible)g(for)396
+3157 y(modi\002cations)g(made)g(by)h(others.)396 3336
+y(This)f(License)h(is)f(a)i(kind)e(of)g("cop)o(yleft",)g(which)g(means)
+h(that)f(deri)n(v)n(ati)n(v)o(e)f(w)o(orks)h(of)h(the)396
+3466 y(document)f(must)g(themselv)o(es)f(be)i(free)h(in)e(the)h(same)f
+(sense.)h(It)g(complements)e(the)i(GNU)396 3595 y(General)g(Public)g
+(License,)g(which)f(is)g(a)i(cop)o(yleft)e(license)h(designed)f(for)h
+(free)g(softw)o(are.)396 3775 y(W)-8 b(e)25 b(ha)n(v)o(e)g(designed)f
+(this)g(License)h(in)f(order)h(to)g(use)f(it)h(for)g(manuals)f(for)h
+(free)g(softw)o(are,)396 3904 y(because)g(free)h(softw)o(are)f(needs)g
+(free)h(documentation:)c(a)k(free)f(program)g(should)e(come)i(with)396
+4034 y(manuals)f(pro)o(viding)f(the)h(same)g(freedoms)h(that)f(the)g
+(softw)o(are)h(does.)f(But)h(this)e(License)i(is)f(not)396
+4163 y(limited)g(to)g(softw)o(are)h(manuals;)e(it)i(can)g(be)g(used)f
+(for)i(an)o(y)e(te)o(xtual)f(w)o(ork,)i(re)o(gardless)f(of)396
+4293 y(subject)g(matter)h(or)g(whether)g(it)f(is)g(published)g(as)g(a)i
+(printed)e(book.)g(W)-8 b(e)25 b(recommend)f(this)396
+4422 y(License)h(principally)f(for)h(w)o(orks)f(whose)h(purpose)f(is)g
+(instruction)f(or)i(reference.)-2 4924 y Fo(1.)47 b(APPLICABILITY)i
+(AND)g(DEFINITIONS)396 5140 y Fm(This)24 b(License)h(applies)f(to)h(an)
+o(y)f(manual)g(or)h(other)g(w)o(ork)f(that)h(contains)f(a)h(notice)f
+(placed)h(by)396 5270 y(the)g(cop)o(yright)f(holder)g(saying)g(it)g
+(can)i(be)f(distrib)n(uted)e(under)h(the)h(terms)f(of)h(this)f
+(License.)p Black 3645 5692 a Fi(39)p Black eop
+%%Page: 40 49
+40 48 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(The)i("Document",)e(belo)n(w)-6 b(,)24
+b(refers)h(to)g(an)o(y)f(such)g(manual)h(or)g(w)o(ork.)f(An)o(y)g
+(member)g(of)h(the)396 708 y(public)f(is)h(a)g(licensee,)f(and)h(is)g
+(addressed)f(as)h("you".)396 888 y(A)g("Modi\002ed)f(V)-11
+b(ersion")24 b(of)h(the)f(Document)g(means)h(an)o(y)f(w)o(ork)h
+(containing)e(the)i(Document)396 1017 y(or)g(a)g(portion)f(of)h(it,)f
+(either)h(copied)f(v)o(erbatim,)g(or)h(with)f(modi\002cations)f(and/or)
+i(translated)396 1147 y(into)f(another)h(language.)396
+1326 y(A)g("Secondary)g(Section")g(is)f(a)h(named)g(appendix)f(or)h(a)g
+(front-matter)f(section)g(of)h(the)396 1456 y(Document)e(that)h(deals)f
+(e)o(xclusi)n(v)o(ely)f(with)h(the)h(relationship)e(of)i(the)g
+(publishers)e(or)i(authors)f(of)396 1585 y(the)i(Document)f(to)g(the)h
+(Document')-5 b(s)23 b(o)o(v)o(erall)h(subject)g(\(or)h(to)g(related)g
+(matters\))f(and)h(contains)396 1715 y(nothing)f(that)g(could)g(f)o
+(all)h(directly)f(within)g(that)g(o)o(v)o(erall)g(subject.)g(\(F)o(or)h
+(e)o(xample,)f(if)g(the)396 1844 y(Document)g(is)h(in)f(part)h(a)g(te)o
+(xtbook)e(of)i(mathematics,)e(a)i(Secondary)h(Section)f(may)f(not)396
+1974 y(e)o(xplain)g(an)o(y)g(mathematics.\))g(The)h(relationship)e
+(could)h(be)h(a)g(matter)g(of)g(historical)396 2103 y(connection)f
+(with)g(the)h(subject)f(or)h(with)f(related)h(matters,)f(or)h(of)g(le)o
+(gal,)e(commercial,)396 2233 y(philosophical,)g(ethical)h(or)h
+(political)f(position)f(re)o(garding)h(them.)396 2412
+y(The)h("In)l(v)n(ariant)f(Sections")g(are)i(certain)f(Secondary)g
+(Sections)f(whose)h(titles)f(are)h(designated,)396 2542
+y(as)g(being)f(those)h(of)g(In)l(v)n(ariant)f(Sections,)g(in)g(the)h
+(notice)g(that)f(says)g(that)h(the)f(Document)g(is)396
+2671 y(released)i(under)e(this)g(License.)396 2850 y(The)h("Co)o(v)o
+(er)f(T)-7 b(e)o(xts")24 b(are)h(certain)g(short)f(passages)h(of)g(te)o
+(xt)f(that)g(are)h(listed,)f(as)h(Front-Co)o(v)o(er)396
+2980 y(T)-7 b(e)o(xts)24 b(or)h(Back-Co)o(v)o(er)g(T)-7
+b(e)o(xts,)24 b(in)g(the)h(notice)f(that)h(says)f(that)h(the)f
+(Document)g(is)h(released)396 3109 y(under)g(this)f(License.)396
+3289 y(A)h("T)m(ransparent")f(cop)o(y)g(of)h(the)g(Document)f(means)g
+(a)h(machine-readable)g(cop)o(y)-6 b(,)396 3418 y(represented)25
+b(in)g(a)g(format)f(whose)h(speci\002cation)f(is)h(a)n(v)n(ailable)f
+(to)g(the)h(general)g(public,)f(whose)396 3548 y(contents)g(can)h(be)g
+(vie)n(wed)f(and)h(edited)g(directly)f(and)h(straightforw)o(ardly)e
+(with)h(generic)h(te)o(xt)396 3677 y(editors)f(or)h(\(for)g(images)g
+(composed)f(of)g(pix)o(els\))g(generic)h(paint)f(programs)g(or)h(\(for)
+h(dra)o(wings\))396 3807 y(some)e(widely)h(a)n(v)n(ailable)f(dra)o
+(wing)g(editor)l(,)g(and)h(that)f(is)g(suitable)g(for)h(input)f(to)g
+(te)o(xt)396 3936 y(formatters)h(or)g(for)g(automatic)e(translation)h
+(to)g(a)h(v)n(ariety)g(of)f(formats)h(suitable)f(for)h(input)e(to)396
+4066 y(te)o(xt)h(formatters.)g(A)h(cop)o(y)g(made)g(in)f(an)h
+(otherwise)f(T)m(ransparent)g(\002le)i(format)e(whose)h(markup)396
+4195 y(has)g(been)g(designed)f(to)g(thw)o(art)h(or)g(discourage)f
+(subsequent)g(modi\002cation)g(by)g(readers)i(is)e(not)396
+4325 y(T)m(ransparent.)g(A)h(cop)o(y)g(that)f(is)h(not)f("T)m
+(ransparent")f(is)i(called)f("Opaque".)396 4504 y(Examples)g(of)h
+(suitable)f(formats)g(for)h(T)m(ransparent)f(copies)h(include)f(plain)g
+(ASCII)i(without)396 4634 y(markup,)e(T)-7 b(e)o(xinfo)24
+b(input)g(format,)g(LaT)-7 b(eX)26 b(input)d(format,)i(SGML)f(or)h(XML)
+f(using)g(a)396 4763 y(publicly)g(a)n(v)n(ailable)g(DTD,)g(and)h
+(standard-conforming)f(simple)f(HTML)h(designed)g(for)396
+4893 y(human)g(modi\002cation.)g(Opaque)h(formats)f(include)g
+(PostScript,)h(PDF)-8 b(,)25 b(proprietary)g(formats)396
+5022 y(that)f(can)h(be)f(read)h(and)f(edited)g(only)g(by)g(proprietary)
+g(w)o(ord)g(processors,)g(SGML)g(or)g(XML)g(for)396 5152
+y(which)h(the)f(DTD)h(and/or)f(processing)g(tools)g(are)i(not)e
+(generally)g(a)n(v)n(ailable,)g(and)h(the)396 5281 y(machine-generated)
+g(HTML)f(produced)h(by)f(some)h(w)o(ord)f(processors)h(for)g(output)e
+(purposes)p Black 3645 5692 a Fi(40)p Black eop
+%%Page: 41 50
+41 49 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(only)-6 b(.)396 758 y(The)25 b("T)m(itle)e(P)o(age")
+i(means,)f(for)i(a)f(printed)f(book,)g(the)h(title)e(page)i(itself,)f
+(plus)g(such)h(follo)n(wing)396 888 y(pages)g(as)g(are)g(needed)h(to)e
+(hold,)g(le)o(gibly)-6 b(,)22 b(the)j(material)f(this)g(License)h
+(requires)g(to)f(appear)i(in)396 1017 y(the)f(title)f(page.)h(F)o(or)g
+(w)o(orks)f(in)g(formats)h(which)f(do)h(not)f(ha)n(v)o(e)g(an)o(y)h
+(title)e(page)i(as)g(such,)g("T)m(itle)396 1147 y(P)o(age")g(means)f
+(the)h(te)o(xt)f(near)h(the)g(most)f(prominent)f(appearance)j(of)f(the)
+g(w)o(ork')-5 b(s)24 b(title,)396 1276 y(preceding)h(the)g(be)o
+(ginning)e(of)h(the)h(body)f(of)h(the)g(te)o(xt.)-2 1779
+y Fo(2.)47 b(VERB)-5 b(A)-15 b(TIM)48 b(COPYING)396 1994
+y Fm(Y)-11 b(ou)25 b(may)f(cop)o(y)h(and)g(distrib)n(ute)e(the)i
+(Document)e(in)i(an)o(y)f(medium,)g(either)g(commercially)g(or)396
+2124 y(noncommercially)-6 b(,)23 b(pro)o(vided)g(that)i(this)f
+(License,)g(the)h(cop)o(yright)f(notices,)g(and)h(the)f(license)396
+2253 y(notice)h(saying)f(this)g(License)g(applies)g(to)h(the)f
+(Document)g(are)i(reproduced)f(in)f(all)h(copies,)f(and)396
+2383 y(that)h(you)f(add)h(no)f(other)h(conditions)e(whatsoe)n(v)o(er)h
+(to)g(those)g(of)h(this)f(License.)h(Y)-11 b(ou)24 b(may)h(not)396
+2512 y(use)g(technical)g(measures)f(to)h(obstruct)e(or)i(control)f(the)
+h(reading)g(or)g(further)g(cop)o(ying)f(of)h(the)396
+2642 y(copies)g(you)f(mak)o(e)h(or)g(distrib)n(ute.)e(Ho)n(we)n(v)o(er)
+l(,)g(you)i(may)f(accept)h(compensation)f(in)g(e)o(xchange)396
+2771 y(for)h(copies.)g(If)g(you)f(distrib)n(ute)g(a)h(lar)n(ge)g
+(enough)f(number)g(of)h(copies)g(you)f(must)g(also)g(follo)n(w)396
+2901 y(the)h(conditions)e(in)h(section)h(3.)396 3080
+y(Y)-11 b(ou)25 b(may)f(also)h(lend)f(copies,)g(under)h(the)g(same)f
+(conditions)g(stated)g(abo)o(v)o(e,)g(and)g(you)h(may)396
+3210 y(publicly)f(display)f(copies.)-2 3712 y Fo(3.)47
+b(COPYING)h(IN)g(Q)n(U)-9 b(ANTITY)396 3928 y Fm(If)26
+b(you)e(publish)f(printed)h(copies)h(of)g(the)f(Document)g(numbering)g
+(more)g(than)h(100,)f(and)h(the)396 4057 y(Document')-5
+b(s)24 b(license)g(notice)h(requires)f(Co)o(v)o(er)h(T)-7
+b(e)o(xts,)24 b(you)g(must)g(enclose)g(the)h(copies)f(in)396
+4187 y(co)o(v)o(ers)g(that)h(carry)-6 b(,)25 b(clearly)g(and)f(le)o
+(gibly)-6 b(,)23 b(all)h(these)h(Co)o(v)o(er)f(T)-7 b(e)o(xts:)24
+b(Front-Co)o(v)o(er)g(T)-7 b(e)o(xts)24 b(on)396 4316
+y(the)h(front)f(co)o(v)o(er)l(,)h(and)f(Back-Co)o(v)o(er)i(T)-7
+b(e)o(xts)23 b(on)i(the)g(back)g(co)o(v)o(er)-5 b(.)23
+b(Both)i(co)o(v)o(ers)f(must)g(also)396 4446 y(clearly)h(and)g(le)o
+(gibly)e(identify)h(you)g(as)h(the)g(publisher)f(of)h(these)f(copies.)h
+(The)f(front)h(co)o(v)o(er)396 4575 y(must)f(present)h(the)f(full)g
+(title)g(with)g(all)h(w)o(ords)f(of)h(the)g(title)f(equally)g
+(prominent)g(and)g(visible.)396 4705 y(Y)-11 b(ou)24
+b(may)f(add)h(other)g(material)f(on)h(the)f(co)o(v)o(ers)g(in)h
+(addition.)e(Cop)o(ying)h(with)g(changes)h(limited)396
+4834 y(to)h(the)f(co)o(v)o(ers,)g(as)h(long)f(as)h(the)o(y)f(preserv)o
+(e)h(the)f(title)g(of)h(the)g(Document)f(and)h(satisfy)f(these)396
+4964 y(conditions,)f(can)i(be)g(treated)g(as)g(v)o(erbatim)f(cop)o
+(ying)g(in)g(other)h(respects.)396 5143 y(If)g(the)f(required)g(te)o
+(xts)g(for)g(either)g(co)o(v)o(er)g(are)h(too)f(v)n(oluminous)e(to)i
+(\002t)g(le)o(gibly)-6 b(,)22 b(you)i(should)f(put)396
+5273 y(the)i(\002rst)g(ones)f(listed)g(\(as)h(man)o(y)f(as)h(\002t)g
+(reasonably\))g(on)f(the)h(actual)g(co)o(v)o(er)l(,)f(and)g(continue)g
+(the)p Black 3645 5692 a Fi(41)p Black eop
+%%Page: 42 51
+42 50 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(rest)i(onto)f(adjacent)h(pages.)396
+758 y(If)h(you)e(publish)f(or)i(distrib)n(ute)e(Opaque)i(copies)g(of)f
+(the)h(Document)f(numbering)g(more)g(than)396 888 y(100,)h(you)f(must)g
+(either)g(include)g(a)i(machine-readable)f(T)m(ransparent)f(cop)o(y)g
+(along)h(with)f(each)396 1017 y(Opaque)h(cop)o(y)-6 b(,)24
+b(or)h(state)f(in)h(or)g(with)f(each)h(Opaque)g(cop)o(y)g(a)g
+(publicly-accessible)396 1147 y(computer)n(-netw)o(ork)f(location)g
+(containing)g(a)h(complete)f(T)m(ransparent)g(cop)o(y)h(of)g(the)396
+1276 y(Document,)f(free)i(of)f(added)g(material,)f(which)g(the)h
+(general)g(netw)o(ork-using)e(public)h(has)396 1406 y(access)i(to)e(do)
+n(wnload)f(anon)o(ymously)g(at)h(no)h(char)n(ge)h(using)d
+(public-standard)h(netw)o(ork)396 1535 y(protocols.)f(If)i(you)e(use)h
+(the)g(latter)g(option,)e(you)i(must)f(tak)o(e)h(reasonably)g(prudent)f
+(steps,)h(when)396 1665 y(you)h(be)o(gin)e(distrib)n(ution)g(of)i
+(Opaque)f(copies)h(in)f(quantity)-6 b(,)23 b(to)i(ensure)g(that)f(this)
+g(T)m(ransparent)396 1794 y(cop)o(y)h(will)f(remain)g(thus)g
+(accessible)h(at)g(the)g(stated)f(location)g(until)f(at)i(least)g(one)g
+(year)g(after)396 1924 y(the)g(last)f(time)g(you)h(distrib)n(ute)e(an)i
+(Opaque)g(cop)o(y)f(\(directly)h(or)f(through)g(your)h(agents)f(or)396
+2053 y(retailers\))h(of)g(that)f(edition)g(to)h(the)f(public.)396
+2233 y(It)h(is)f(requested,)h(b)n(ut)f(not)g(required,)h(that)g(you)f
+(contact)h(the)f(authors)g(of)h(the)g(Document)f(well)396
+2362 y(before)i(redistrib)n(uting)c(an)o(y)j(lar)n(ge)g(number)f(of)h
+(copies,)f(to)h(gi)n(v)o(e)e(them)i(a)g(chance)g(to)g(pro)o(vide)396
+2492 y(you)g(with)f(an)h(updated)f(v)o(ersion)g(of)h(the)f(Document.)-2
+2994 y Fo(4.)47 b(MODIFICA)-15 b(TIONS)396 3210 y Fm(Y)k(ou)25
+b(may)f(cop)o(y)h(and)g(distrib)n(ute)e(a)i(Modi\002ed)f(V)-11
+b(ersion)25 b(of)f(the)h(Document)f(under)h(the)396 3339
+y(conditions)e(of)i(sections)f(2)h(and)g(3)f(abo)o(v)o(e,)g(pro)o
+(vided)g(that)g(you)g(release)i(the)e(Modi\002ed)396
+3469 y(V)-11 b(ersion)25 b(under)f(precisely)h(this)f(License,)g(with)g
+(the)h(Modi\002ed)f(V)-11 b(ersion)25 b(\002lling)f(the)g(role)h(of)396
+3598 y(the)g(Document,)f(thus)g(licensing)f(distrib)n(ution)g(and)i
+(modi\002cation)e(of)i(the)g(Modi\002ed)f(V)-11 b(ersion)396
+3728 y(to)25 b(whoe)n(v)o(er)f(possesses)f(a)j(cop)o(y)e(of)h(it.)f(In)
+h(addition,)e(you)i(must)f(do)g(these)h(things)e(in)i(the)396
+3857 y(Modi\002ed)f(V)-11 b(ersion:)p Black 454 4136
+a(A.)p Black 25 w(Use)24 b(in)h(the)f(T)m(itle)g(P)o(age)h(\(and)g(on)g
+(the)f(co)o(v)o(ers,)g(if)h(an)o(y\))f(a)i(title)d(distinct)h(from)g
+(that)h(of)g(the)576 4266 y(Document,)e(and)i(from)g(those)f(of)h(pre)n
+(vious)e(v)o(ersions)h(\(which)g(should,)g(if)h(there)g(were)576
+4395 y(an)o(y)-6 b(,)23 b(be)i(listed)f(in)g(the)h(History)f(section)g
+(of)h(the)g(Document\).)f(Y)-11 b(ou)24 b(may)h(use)f(the)h(same)576
+4525 y(title)f(as)g(a)i(pre)n(vious)d(v)o(ersion)h(if)h(the)f(original)
+g(publisher)g(of)h(that)f(v)o(ersion)g(gi)n(v)o(es)576
+4654 y(permission.)p Black 459 4834 a(B.)p Black 26 w(List)g(on)g(the)h
+(T)m(itle)e(P)o(age,)i(as)g(authors,)f(one)h(or)g(more)g(persons)f(or)h
+(entities)e(responsible)576 4963 y(for)i(authorship)e(of)i(the)g
+(modi\002cations)e(in)i(the)f(Modi\002ed)g(V)-11 b(ersion,)25
+b(together)f(with)g(at)576 5093 y(least)g(\002)n(v)o(e)g(of)h(the)g
+(principal)f(authors)g(of)h(the)g(Document)f(\(all)g(of)h(its)f
+(principal)h(authors,)576 5222 y(if)f(it)h(has)f(less)h(than)f(\002)n
+(v)o(e\).)p Black 3645 5692 a Fi(42)p Black eop
+%%Page: 43 52
+43 51 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black Black 459 579 a Fm(C.)p Black 26 w(State)h(on)f(the)h(T)m(itle)e
+(page)i(the)g(name)g(of)g(the)f(publisher)g(of)h(the)f(Modi\002ed)h(V)
+-11 b(ersion,)23 b(as)h(the)576 708 y(publisher)-5 b(.)p
+Black 454 888 a(D.)p Black 25 w(Preserv)o(e)25 b(all)g(the)f(cop)o
+(yright)g(notices)g(of)h(the)g(Document.)p Black 465
+1067 a(E.)p Black 25 w(Add)f(an)h(appropriate)g(cop)o(yright)e(notice)i
+(for)g(your)f(modi\002cations)g(adjacent)h(to)f(the)576
+1197 y(other)g(cop)o(yright)g(notices.)p Black 478 1376
+a(F)-8 b(.)p Black 26 w(Include,)24 b(immediately)f(after)j(the)e(cop)o
+(yright)g(notices,)g(a)h(license)g(notice)f(gi)n(ving)f(the)576
+1505 y(public)h(permission)f(to)h(use)h(the)f(Modi\002ed)h(V)-11
+b(ersion)24 b(under)h(the)f(terms)h(of)g(this)e(License,)576
+1635 y(in)h(the)h(form)f(sho)n(wn)g(in)g(the)h(Addendum)e(belo)n(w)-6
+b(.)p Black 454 1814 a(G.)p Black 25 w(Preserv)o(e)25
+b(in)f(that)h(license)f(notice)h(the)f(full)h(lists)e(of)i(In)l(v)n
+(ariant)f(Sections)h(and)f(required)576 1944 y(Co)o(v)o(er)g(T)-7
+b(e)o(xts)24 b(gi)n(v)o(en)f(in)i(the)f(Document')-5
+b(s)24 b(license)g(notice.)p Black 454 2123 a(H.)p Black
+25 w(Include)g(an)h(unaltered)g(cop)o(y)f(of)h(this)f(License.)p
+Black 493 2302 a(I.)p Black 25 w(Preserv)o(e)h(the)f(section)g
+(entitled)f("History",)g(and)h(its)g(title,)f(and)i(add)f(to)g(it)g(an)
+h(item)f(stating)576 2432 y(at)g(least)h(the)g(title,)e(year)l(,)j(ne)n
+(w)e(authors,)g(and)h(publisher)f(of)h(the)f(Modi\002ed)g(V)-11
+b(ersion)25 b(as)576 2561 y(gi)n(v)o(en)e(on)h(the)h(T)m(itle)f(P)o
+(age.)h(If)g(there)g(is)f(no)h(section)f(entitled)g("History")f(in)h
+(the)576 2691 y(Document,)f(create)j(one)f(stating)f(the)g(title,)g
+(year)l(,)h(authors,)f(and)h(publisher)f(of)h(the)576
+2821 y(Document)f(as)g(gi)n(v)o(en)g(on)g(its)g(T)m(itle)g(P)o(age,)h
+(then)f(add)h(an)g(item)f(describing)g(the)h(Modi\002ed)576
+2950 y(V)-11 b(ersion)24 b(as)h(stated)f(in)g(the)h(pre)n(vious)f
+(sentence.)p Black 487 3129 a(J.)p Black 25 w(Preserv)o(e)h(the)g(netw)
+o(ork)f(location,)g(if)h(an)o(y)-6 b(,)23 b(gi)n(v)o(en)h(in)g(the)h
+(Document)f(for)h(public)f(access)576 3259 y(to)g(a)h(T)m(ransparent)f
+(cop)o(y)h(of)g(the)g(Document,)e(and)i(lik)o(e)n(wise)f(the)g(netw)o
+(ork)h(locations)576 3388 y(gi)n(v)o(en)e(in)h(the)h(Document)f(for)h
+(pre)n(vious)e(v)o(ersions)h(it)g(w)o(as)h(based)g(on.)f(These)h(may)g
+(be)576 3518 y(placed)g(in)f(the)h("History")e(section.)h(Y)-11
+b(ou)24 b(may)h(omit)e(a)i(netw)o(ork)g(location)f(for)h(a)g(w)o(ork)
+576 3647 y(that)f(w)o(as)h(published)e(at)i(least)f(four)h(years)g
+(before)h(the)e(Document)g(itself,)g(or)h(if)g(the)576
+3777 y(original)e(publisher)h(of)h(the)g(v)o(ersion)e(it)i(refers)g(to)
+g(gi)n(v)o(es)e(permission.)p Black 454 3956 a(K.)p Black
+25 w(In)h(an)o(y)h(section)f(entitled)g("Ackno)n(wledgements")e(or)j
+("Dedications",)e(preserv)o(e)h(the)576 4086 y(section')-5
+b(s)23 b(title,)h(and)h(preserv)o(e)g(in)f(the)h(section)f(all)g(the)h
+(substance)f(and)h(tone)f(of)h(each)h(of)576 4215 y(the)e(contrib)n
+(utor)g(ackno)n(wledgements)f(and/or)h(dedications)g(gi)n(v)o(en)f
+(therein.)p Black 465 4395 a(L.)p Black 25 w(Preserv)o(e)i(all)g(the)f
+(In)l(v)n(ariant)g(Sections)h(of)g(the)f(Document,)g(unaltered)h(in)f
+(their)h(te)o(xt)f(and)576 4524 y(in)g(their)h(titles.)e(Section)i
+(numbers)f(or)h(the)f(equi)n(v)n(alent)f(are)j(not)e(considered)h(part)
+f(of)h(the)576 4654 y(section)f(titles.)p Black 437 4833
+a(M.)p Black 25 w(Delete)h(an)o(y)f(section)g(entitled)g
+("Endorsements".)e(Such)j(a)h(section)e(may)g(not)g(be)576
+4962 y(included)g(in)g(the)h(Modi\002ed)f(V)-11 b(ersion.)p
+Black 454 5142 a(N.)p Black 25 w(Do)24 b(not)g(retitle)h(an)o(y)f(e)o
+(xisting)f(section)h(as)h("Endorsements")e(or)i(to)f(con\003ict)h(in)f
+(title)g(with)576 5271 y(an)o(y)g(In)l(v)n(ariant)g(Section.)p
+Black 3645 5692 a Fi(43)p Black eop
+%%Page: 44 53
+44 52 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(If)j(the)e(Modi\002ed)g(V)-11 b(ersion)25
+b(includes)f(ne)n(w)g(front-matter)g(sections)g(or)h(appendices)g(that)
+396 708 y(qualify)f(as)h(Secondary)h(Sections)e(and)h(contain)f(no)h
+(material)f(copied)h(from)f(the)h(Document,)396 838 y(you)g(may)f(at)h
+(your)f(option)g(designate)g(some)g(or)h(all)g(of)g(these)f(sections)g
+(as)h(in)l(v)n(ariant.)f(T)-8 b(o)24 b(do)396 967 y(this,)g(add)h
+(their)f(titles)g(to)g(the)h(list)f(of)h(In)l(v)n(ariant)f(Sections)g
+(in)h(the)f(Modi\002ed)h(V)-11 b(ersion')-5 b(s)23 b(license)396
+1097 y(notice.)i(These)f(titles)g(must)g(be)h(distinct)e(from)i(an)o(y)
+f(other)g(section)h(titles.)396 1276 y(Y)-11 b(ou)25
+b(may)f(add)h(a)g(section)f(entitled)g("Endorsements",)f(pro)o(vided)g
+(it)i(contains)e(nothing)h(b)n(ut)396 1406 y(endorsements)g(of)h(your)f
+(Modi\002ed)h(V)-11 b(ersion)24 b(by)g(v)n(arious)g(parties--for)h(e)o
+(xample,)f(statements)396 1535 y(of)h(peer)h(re)n(vie)n(w)e(or)g(that)h
+(the)f(te)o(xt)g(has)h(been)g(appro)o(v)o(ed)f(by)g(an)h(or)n
+(ganization)f(as)h(the)396 1665 y(authoritati)n(v)o(e)e(de\002nition)h
+(of)h(a)g(standard.)396 1844 y(Y)-11 b(ou)25 b(may)f(add)h(a)g(passage)
+g(of)g(up)f(to)h(\002)n(v)o(e)f(w)o(ords)g(as)h(a)h(Front-Co)o(v)o(er)e
+(T)-7 b(e)o(xt,)24 b(and)h(a)g(passage)g(of)396 1974
+y(up)g(to)f(25)h(w)o(ords)f(as)h(a)g(Back-Co)o(v)o(er)g(T)-7
+b(e)o(xt,)24 b(to)h(the)g(end)f(of)h(the)g(list)f(of)g(Co)o(v)o(er)h(T)
+-7 b(e)o(xts)24 b(in)g(the)396 2103 y(Modi\002ed)g(V)-11
+b(ersion.)25 b(Only)f(one)h(passage)f(of)h(Front-Co)o(v)o(er)g(T)-7
+b(e)o(xt)24 b(and)h(one)f(of)h(Back-Co)o(v)o(er)396 2233
+y(T)-7 b(e)o(xt)24 b(may)h(be)g(added)g(by)f(\(or)h(through)f
+(arrangements)h(made)f(by\))h(an)o(y)f(one)h(entity)-6
+b(.)23 b(If)j(the)396 2362 y(Document)e(already)h(includes)f(a)h(co)o
+(v)o(er)g(te)o(xt)e(for)j(the)e(same)h(co)o(v)o(er)l(,)f(pre)n(viously)
+f(added)i(by)396 2492 y(you)g(or)g(by)f(arrangement)h(made)g(by)f(the)h
+(same)f(entity)g(you)h(are)g(acting)g(on)f(behalf)h(of,)g(you)396
+2621 y(may)g(not)f(add)h(another;)f(b)n(ut)g(you)h(may)f(replace)i(the)
+e(old)h(one,)f(on)h(e)o(xplicit)e(permission)g(from)396
+2751 y(the)i(pre)n(vious)e(publisher)h(that)g(added)h(the)g(old)f(one.)
+396 2930 y(The)h(author\(s\))g(and)f(publisher\(s\))g(of)h(the)g
+(Document)f(do)g(not)g(by)h(this)f(License)h(gi)n(v)o(e)396
+3060 y(permission)e(to)i(use)g(their)f(names)h(for)g(publicity)e(for)i
+(or)g(to)f(assert)h(or)g(imply)e(endorsement)h(of)396
+3189 y(an)o(y)h(Modi\002ed)f(V)-11 b(ersion.)-2 3691
+y Fo(5.)47 b(COMBINING)i(DOCUMENTS)396 3907 y Fm(Y)-11
+b(ou)25 b(may)f(combine)g(the)h(Document)f(with)g(other)h(documents)e
+(released)i(under)g(this)f(License,)396 4037 y(under)h(the)g(terms)f
+(de\002ned)h(in)g(section)f(4)g(abo)o(v)o(e)g(for)h(modi\002ed)f(v)o
+(ersions,)g(pro)o(vided)f(that)i(you)396 4166 y(include)f(in)h(the)g
+(combination)e(all)h(of)h(the)g(In)l(v)n(ariant)f(Sections)g(of)h(all)g
+(of)g(the)f(original)396 4296 y(documents,)g(unmodi\002ed,)f(and)i
+(list)f(them)g(all)h(as)g(In)l(v)n(ariant)f(Sections)g(of)h(your)g
+(combined)396 4425 y(w)o(ork)g(in)f(its)g(license)h(notice.)396
+4604 y(The)g(combined)f(w)o(ork)h(need)g(only)f(contain)g(one)h(cop)o
+(y)f(of)h(this)f(License,)h(and)f(multiple)396 4734 y(identical)g(In)l
+(v)n(ariant)g(Sections)g(may)h(be)f(replaced)i(with)d(a)i(single)f(cop)
+o(y)-6 b(.)24 b(If)h(there)g(are)g(multiple)396 4863
+y(In)l(v)n(ariant)f(Sections)h(with)f(the)h(same)f(name)h(b)n(ut)f(dif)
+n(ferent)h(contents,)e(mak)o(e)i(the)g(title)f(of)h(each)396
+4993 y(such)g(section)f(unique)g(by)h(adding)f(at)g(the)h(end)g(of)g
+(it,)f(in)g(parentheses,)h(the)g(name)f(of)h(the)396
+5123 y(original)f(author)h(or)f(publisher)g(of)h(that)f(section)h(if)f
+(kno)n(wn,)g(or)h(else)g(a)g(unique)f(number)-5 b(.)23
+b(Mak)o(e)p Black 3645 5692 a Fi(44)p Black eop
+%%Page: 45 54
+45 53 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(the)i(same)g(adjustment)e(to)h(the)h(section)f
+(titles)g(in)g(the)h(list)e(of)i(In)l(v)n(ariant)f(Sections)h(in)f(the)
+396 708 y(license)h(notice)f(of)h(the)g(combined)f(w)o(ork.)396
+888 y(In)h(the)g(combination,)e(you)h(must)g(combine)g(an)o(y)g
+(sections)g(entitled)g("History")f(in)h(the)h(v)n(arious)396
+1017 y(original)f(documents,)g(forming)f(one)i(section)f(entitled)g
+("History";)f(lik)o(e)n(wise)g(combine)h(an)o(y)396 1147
+y(sections)g(entitled)g("Ackno)n(wledgements",)e(and)j(an)o(y)f
+(sections)g(entitled)g("Dedications".)396 1276 y(Y)-11
+b(ou)25 b(must)e(delete)i(all)g(sections)f(entitled)f("Endorsements.")
+-2 1779 y Fo(6.)47 b(COLLECTIONS)i(OF)f(DOCUMENTS)396
+1994 y Fm(Y)-11 b(ou)25 b(may)f(mak)o(e)h(a)g(collection)f(consisting)f
+(of)i(the)f(Document)g(and)h(other)g(documents)396 2124
+y(released)h(under)e(this)g(License,)h(and)g(replace)g(the)g(indi)n
+(vidual)d(copies)j(of)g(this)e(License)i(in)g(the)396
+2253 y(v)n(arious)f(documents)g(with)g(a)h(single)f(cop)o(y)g(that)h
+(is)f(included)g(in)g(the)h(collection,)f(pro)o(vided)396
+2383 y(that)h(you)f(follo)n(w)f(the)i(rules)g(of)g(this)e(License)i
+(for)g(v)o(erbatim)f(cop)o(ying)g(of)h(each)g(of)g(the)396
+2512 y(documents)f(in)g(all)h(other)f(respects.)396 2692
+y(Y)-11 b(ou)25 b(may)f(e)o(xtract)h(a)g(single)f(document)g(from)g
+(such)h(a)g(collection,)f(and)g(distrib)n(ute)g(it)396
+2821 y(indi)n(vidually)e(under)j(this)f(License,)h(pro)o(vided)e(you)h
+(insert)h(a)g(cop)o(y)f(of)h(this)f(License)h(into)f(the)396
+2951 y(e)o(xtracted)h(document,)f(and)g(follo)n(w)g(this)g(License)g
+(in)h(all)f(other)h(respects)g(re)o(garding)f(v)o(erbatim)396
+3080 y(cop)o(ying)g(of)h(that)f(document.)-2 3583 y Fo(7.)47
+b(A)-9 b(GGREGA)-15 b(TION)49 b(WITH)e(INDEPENDENT)-2
+3806 y(W)m(ORKS)396 4022 y Fm(A)25 b(compilation)e(of)i(the)g(Document)
+f(or)g(its)g(deri)n(v)n(ati)n(v)o(es)f(with)h(other)g(separate)i(and)
+396 4151 y(independent)e(documents)g(or)h(w)o(orks,)f(in)g(or)h(on)g(a)
+g(v)n(olume)f(of)h(a)g(storage)f(or)h(distrib)n(ution)396
+4281 y(medium,)f(does)g(not)g(as)h(a)g(whole)g(count)f(as)h(a)g
+(Modi\002ed)f(V)-11 b(ersion)25 b(of)g(the)f(Document,)396
+4410 y(pro)o(vided)g(no)g(compilation)f(cop)o(yright)h(is)g(claimed)h
+(for)g(the)f(compilation.)f(Such)i(a)396 4540 y(compilation)e(is)i
+(called)f(an)h("aggre)o(gate",)f(and)g(this)g(License)h(does)g(not)f
+(apply)g(to)g(the)h(other)396 4669 y(self-contained)g(w)o(orks)f(thus)g
+(compiled)g(with)g(the)g(Document,)g(on)h(account)f(of)h(their)g(being)
+396 4799 y(thus)f(compiled,)g(if)h(the)o(y)f(are)h(not)f(themselv)o(es)
+g(deri)n(v)n(ati)n(v)o(e)e(w)o(orks)i(of)h(the)g(Document.)396
+4978 y(If)h(the)e(Co)o(v)o(er)h(T)-7 b(e)o(xt)24 b(requirement)g(of)h
+(section)f(3)h(is)f(applicable)g(to)h(these)f(copies)h(of)g(the)396
+5108 y(Document,)f(then)h(if)f(the)h(Document)f(is)g(less)h(than)f(one)
+h(quarter)g(of)g(the)f(entire)h(aggre)o(gate,)f(the)396
+5237 y(Document')-5 b(s)24 b(Co)o(v)o(er)g(T)-7 b(e)o(xts)24
+b(may)g(be)h(placed)g(on)g(co)o(v)o(ers)f(that)g(surround)g(only)g(the)
+h(Document)p Black 3645 5692 a Fi(45)p Black eop
+%%Page: 46 55
+46 54 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(within)h(the)g(aggre)o(gate.)h(Otherwise)f(the)o(y)g
+(must)g(appear)h(on)f(co)o(v)o(ers)g(around)h(the)g(whole)396
+708 y(aggre)o(gate.)-2 1211 y Fo(8.)47 b(TRANSLA)-15
+b(TION)396 1426 y Fm(T)m(ranslation)23 b(is)i(considered)f(a)h(kind)f
+(of)h(modi\002cation,)f(so)g(you)h(may)f(distrib)n(ute)f(translations)
+396 1556 y(of)i(the)g(Document)f(under)h(the)f(terms)g(of)h(section)f
+(4.)h(Replacing)g(In)l(v)n(ariant)f(Sections)h(with)396
+1685 y(translations)f(requires)g(special)h(permission)e(from)i(their)f
+(cop)o(yright)g(holders,)g(b)n(ut)g(you)h(may)396 1815
+y(include)f(translations)g(of)h(some)f(or)h(all)f(In)l(v)n(ariant)g
+(Sections)h(in)f(addition)g(to)g(the)h(original)396 1944
+y(v)o(ersions)f(of)h(these)f(In)l(v)n(ariant)g(Sections.)h(Y)-11
+b(ou)24 b(may)h(include)f(a)h(translation)f(of)h(this)e(License)396
+2074 y(pro)o(vided)h(that)g(you)h(also)f(include)g(the)h(original)f
+(English)f(v)o(ersion)h(of)h(this)e(License.)i(In)g(case)396
+2203 y(of)g(a)g(disagreement)f(between)h(the)g(translation)e(and)i(the)
+g(original)f(English)f(v)o(ersion)h(of)h(this)396 2333
+y(License,)g(the)g(original)e(English)h(v)o(ersion)f(will)h(pre)n(v)n
+(ail.)-2 2835 y Fo(9.)47 b(TERMINA)-15 b(TION)396 3051
+y Fm(Y)k(ou)25 b(may)f(not)g(cop)o(y)-6 b(,)24 b(modify)-6
+b(,)24 b(sublicense,)f(or)i(distrib)n(ute)f(the)g(Document)g(e)o(xcept)
+h(as)396 3180 y(e)o(xpressly)f(pro)o(vided)g(for)h(under)f(this)g
+(License.)h(An)o(y)f(other)g(attempt)g(to)h(cop)o(y)-6
+b(,)24 b(modify)-6 b(,)396 3310 y(sublicense)24 b(or)h(distrib)n(ute)e
+(the)h(Document)g(is)g(v)n(oid,)g(and)h(will)f(automatically)f
+(terminate)h(your)396 3439 y(rights)g(under)h(this)f(License.)g(Ho)n
+(we)n(v)o(er)l(,)g(parties)g(who)h(ha)n(v)o(e)f(recei)n(v)o(ed)h
+(copies,)f(or)h(rights,)396 3569 y(from)g(you)f(under)h(this)f(License)
+h(will)e(not)i(ha)n(v)o(e)f(their)h(licenses)f(terminated)g(so)h(long)f
+(as)g(such)396 3698 y(parties)h(remain)f(in)h(full)f(compliance.)-2
+4201 y Fo(10.)47 b(FUTURE)i(REVISIONS)e(OF)h(THIS)g(LICENSE)396
+4416 y Fm(The)25 b(Free)h(Softw)o(are)g(F)o(oundation)d(may)h(publish)g
+(ne)n(w)-6 b(,)23 b(re)n(vised)i(v)o(ersions)e(of)i(the)g(GNU)f(Free)
+396 4546 y(Documentation)f(License)i(from)g(time)f(to)g(time.)g(Such)h
+(ne)n(w)g(v)o(ersions)e(will)h(be)h(similar)f(in)396
+4675 y(spirit)g(to)g(the)h(present)g(v)o(ersion,)e(b)n(ut)i(may)f(dif)n
+(fer)h(in)f(detail)g(to)h(address)f(ne)n(w)h(problems)f(or)396
+4805 y(concerns.)h(See)h(http://www)-6 b(.gnu.or)n(g/cop)o(yleft/.)396
+4984 y(Each)25 b(v)o(ersion)f(of)h(the)g(License)f(is)h(gi)n(v)o(en)e
+(a)i(distinguishing)d(v)o(ersion)h(number)-5 b(.)24 b(If)h(the)396
+5114 y(Document)f(speci\002es)h(that)g(a)g(particular)f(numbered)h(v)o
+(ersion)e(of)i(this)f(License)h("or)f(an)o(y)h(later)396
+5243 y(v)o(ersion")f(applies)g(to)g(it,)g(you)h(ha)n(v)o(e)f(the)h
+(option)e(of)i(follo)n(wing)e(the)i(terms)f(and)h(conditions)p
+Black 3643 5692 a Fi(46)p Black eop
+%%Page: 47 56
+47 55 bop Black 0 TeXcolorgray Black 1850 67 a Fi(Appendix)24
+b(A.)h(GNU)g(F)-5 b(r)l(ee)25 b(Documentation)e(License)p
+Black 396 579 a Fm(either)h(of)h(that)e(speci\002ed)i(v)o(ersion)e(or)h
+(of)h(an)o(y)e(later)i(v)o(ersion)e(that)g(has)h(been)h(published)e
+(\(not)g(as)396 708 y(a)i(draft\))h(by)e(the)h(Free)h(Softw)o(are)f(F)o
+(oundation.)e(If)j(the)e(Document)g(does)h(not)f(specify)h(a)396
+838 y(v)o(ersion)f(number)g(of)h(this)f(License,)h(you)f(may)g(choose)h
+(an)o(y)f(v)o(ersion)g(e)n(v)o(er)g(published)g(\(not)g(as)396
+967 y(a)h(draft\))h(by)e(the)h(Free)h(Softw)o(are)f(F)o(oundation.)-2
+1470 y Fo(Ho)m(w)48 b(to)h(use)e(this)h(License)f(f)m(or)h(y)l(our)g
+(documents)396 1685 y Fm(T)-8 b(o)25 b(use)g(this)e(License)i(in)g(a)g
+(document)f(you)g(ha)n(v)o(e)g(written,)g(include)h(a)g(cop)o(y)f(of)h
+(the)g(License)396 1815 y(in)g(the)f(document)g(and)h(put)f(the)h
+(follo)n(wing)e(cop)o(yright)g(and)i(license)g(notices)f(just)g(after)h
+(the)396 1944 y(title)f(page:)496 2161 y Fa(Cop)o(yright)d(\(c\))h
+(YEAR)g(Y)m(OUR)f(N)m(AME.)h(Permission)f(is)h(granted)f(to)i(cop)o(y)
+-6 b(,)22 b(distrib)n(ute)f(and/or)496 2277 y(modify)g(this)h(document)
+f(under)h(the)g(terms)g(of)g(the)g(GNU)f(Free)h(Documentation)e
+(License,)496 2394 y(V)-10 b(ersion)21 b(1.1)i(or)f(an)o(y)f(later)h(v)
+o(ersion)f(published)g(by)h(the)g(Free)g(Softw)o(are)f(F)o(oundation;)g
+(with)h(the)496 2510 y(In)l(v)n(ariant)f(Sections)g(being)h(LIST)g
+(THEIR)f(TITLES,)h(with)g(the)g(Front-Co)o(v)o(er)e(T)-6
+b(e)o(xts)21 b(being)g(LIST)-7 b(,)496 2627 y(and)22
+b(with)g(the)g(Back-Co)o(v)o(er)e(T)-6 b(e)o(xts)21 b(being)g(LIST)-7
+b(.)23 b(A)f(cop)o(y)g(of)g(the)g(license)f(is)h(included)g(in)g(the)
+496 2743 y(section)f(entitled)h("GNU)f(Free)h(Documentation)e
+(License".)396 3102 y Fm(If)26 b(you)e(ha)n(v)o(e)g(no)h(In)l(v)n
+(ariant)f(Sections,)g(write)h("with)f(no)g(In)l(v)n(ariant)g(Sections")
+h(instead)f(of)396 3232 y(saying)g(which)h(ones)f(are)i(in)l(v)n
+(ariant.)d(If)j(you)e(ha)n(v)o(e)g(no)h(Front-Co)o(v)o(er)f(T)-7
+b(e)o(xts,)24 b(write)h("no)396 3361 y(Front-Co)o(v)o(er)g(T)-7
+b(e)o(xts")23 b(instead)h(of)h("Front-Co)o(v)o(er)f(T)-7
+b(e)o(xts)24 b(being)g(LIST";)h(lik)o(e)n(wise)e(for)396
+3491 y(Back-Co)o(v)o(er)j(T)-7 b(e)o(xts.)396 3670 y(If)26
+b(your)e(document)g(contains)g(nontri)n(vial)f(e)o(xamples)g(of)i
+(program)g(code,)g(we)g(recommend)396 3799 y(releasing)g(these)f(e)o
+(xamples)g(in)h(parallel)f(under)h(your)g(choice)f(of)h(free)h(softw)o
+(are)f(license,)f(such)396 3929 y(as)h(the)g(GNU)g(General)g(Public)f
+(License,)h(to)f(permit)g(their)h(use)g(in)f(free)i(softw)o(are.)p
+Black 3641 5692 a Fi(47)p Black eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/doc/users_guide/users-guide.sgml b/doc/users_guide/users-guide.sgml
index f4fef19..33843c3 100644
--- a/doc/users_guide/users-guide.sgml
+++ b/doc/users_guide/users-guide.sgml
@@ -1,1873 +1,19 @@
-<!doctype book public "-//OASIS//DTD DocBook V4.1//EN">
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+<!ENTITY title SYSTEM "title.sgml">
+<!ENTITY history SYSTEM "history.sgml">
+<!ENTITY gimp SYSTEM "gimp.sgml">
+<!ENTITY cups SYSTEM "cups.sgml">
+<!ENTITY utils SYSTEM "utils.sgml">
+<!ENTITY gfdl SYSTEM "gfdl.sgml">
+]>
<book>
+&title;
+&history;
+&gimp;
+&cups;
+&utils;
+&gfdl;
+</book>
- <bookinfo>
- <title>The User's Guide to the Gimp-Print Top Quality Printer Drivers</title>
- <date>November 23, 2001</date>
- <pubdate>November 23, 2001</pubdate>
- <author>
- <firstname>Andy</firstname>
- <surname>Stewart</surname>
- </author>
- <copyright>
- <year>2001</year>
- <holder>Andy Stewart</holder>
- </copyright>
- <legalnotice>
- <para>The User's Guide to the Gimp-Print Top Quality Printer
-Drivers, Copyright 2001, Andy Stewart.
- </para>
- <para>
- Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License,
-Version 1.1 or any later version published by the Free Software
-Foundation. A copy of the license is included in <xref linkend="gfdl">.
- </para>
-
- </legalnotice>
-
- <abstract>
- <para>
- The Gimp-Print Top Quality Printer Drivers (hereafter
-called Gimp-Print) are a set of printer drivers written to
-take advantage of the full capabilities of a wide range of
-printers. These drivers should work on any POSIX compliant operating
-system (e.g. Linux, Solaris, IRIX, etc). This document will explain how to
-use the Gimp-Print software to achieve high quality printouts from the
-<ulink url="http://www.gimp.org">GIMP</ulink> (GNU Image
-Manipulation Program) and
-<ulink url="http://www.cups.org">CUPS</ulink> (Common Unix Printing
-System).
- </para>
- <para>
- Please note that in addition to using the Gimp-Print software as a
-print plugin for the GIMP, and as a set of printer drivers for CUPS, this
-software can also be compiled and used with the
-<ulink url="http://www.ghostscript.com">Ghostscript</ulink> software
-and with the
-<ulink
-url="http://www.linuxprinting.org/foomatic.html">Foomatic</ulink>
-software.
- </para>
- <para>
-Regardless of whether the Gimp-Print software is used with the GIMP,
-CUPS, Ghostscript, or Foomatic, the print quality and printer settings
-remain the same. However, use of the Gimp-Print with Ghostscript and
-Foomatic is not covered in this document. These topics may be covered
-in a future revision of this document.
- </para>
- <para>
- This document corresponds to version 4.2.0 of the Gimp-Print
-software. This document will serve as a guide to the user, and as such
-will not explain how to install Gimp-Print, CUPS, GIMP, Ghostscript,
-Foomatic, or any other related software.
- </para>
-
- <para>
- Andy Stewart, the author, is the founder of the
-<ulink url="http://www.wlug.org">Worcester Linux Users' Group</ulink> in
-Worcester, Massachusetts, USA. The group was founded in July 1997 and has
-approximately 140 people on its mailing list. Monthly meetings are
-held and all are invited.
- </para>
-
- <para>
- In terms of "code", this is the author's first contribution to the
-open source community, and definitely his first experience with DocBook.
-Constructive comments, praise, words of encouragement, and the like
-will be most appreciated if e-mailed to the
-<ulink url="mailto:andystewart@mediaone.net">author</ulink>.
- </para>
- </abstract>
- </bookinfo>
-
- <chapter><title>Project History</title>
- <para>
-This software package was first written by Michael Sweet of
-<ulink url="http://www.easysw.com">Easy Software Products</ulink> and
-initially worked only as a print plugin to the GIMP (GNU Image
-Manipulation Program). In the summer of 1999,
-Robert Krawitz (the current
-Gimp-Print project leader) purchased an Epson Stylus Photo EX printer
-to feed his photography hobby. Finding no existing printer drivers, Robert
-adapted Mike's Gimp-Print plugin to his six-color printer, and by the end
-of the year released version 3.0 of the Gimp-Print software, which was
-included in version 1.1 of the GIMP. The intention was for this to be
-the stable plugin in version 1.2 of the GIMP while development of the
-Gimp-Print plugin continued for later release.
- </para>
- <para>
-Robert put the Gimp-Print development tree on SourceForge starting
-with version 3.1, and quickly found a group of like-minded people who wanted to print
-high quality output on inexpensive inkjet printers. One of the main
-goals, which was not expected to be met until late in the version 3.1
-cycle, was to write a Ghostscript driver so that printing would not be
-restricted to the GIMP. Imagine Robert's surprise when Henryk "Buggs"
-Richter wrote one within days!
- </para>
- <para>
-In July 2000, not more than a year after Robert bought his Epson
-Stylus Photo EX, he was invited to the Linux Printing
-Summit hosted by VA Linux Systems. In preparation for that, he spent
-long hours printing out test images. Robert went back to the
-Gimp-Print version 3.0.9 release, which seemed like such an advance
-at the time, and was floored at how far the project had come in four
-months! Output that had been considered impressive with using six
-colors was put to shame by four color output. That should give you
-an idea what six color and variable dot size printers can do. It also
-illustrates what a group of committed people can do.
- </para>
- <para>
-Robert came away from the Printing Summit with a lot of new ideas, and in
-November 2000, Gimp-Print version 4.0 was released, the culmination of 9 months
-of work by the team. The quality was already tremendously improved
-over what the software could do at the Printing Summit.
- </para>
- <para>
-The team started serious work on version 4.1 in December
-2000, and version 4.2.0 was released in November 2001. Despite the fact
-that version 4.2.0 is a "minor" release over version 4.0, there are vast
-improvements:
- <itemizedlist>
- <listitem>
- <para>
- The driver is built as a shared library, making it much easier
-to use by higher layers of software
- </para>
- </listitem>
- <listitem>
- <para>
- The packaging system now follows GNU standards
- </para>
- </listitem>
- <listitem>
- <para>
-The print quality (in particular, color accuracy, a well-known weakness in 4.0) is even better
- </para>
- </listitem>
- <listitem>
- <para>
- Improved performance
- </para>
- </listitem>
- <listitem>
- <para>
- Many more options
- </para>
- </listitem>
- <listitem>
- <para>
- More supported printers
- </para>
- </listitem>
-
- </itemizedlist>
-
- </para>
- <para>
-Releases of Gimp-Print have been historically numbered in
-a fashion similar to that of the Linux kernel, where major releases
-are denoted by the first digit (in this case '4'), while minor
-releases are denoted by subsequent digits (such as '4.2.0'). Even
-numbered minor releases are considered stable, while odd numbered
-minor releases are considered development releases (whose stability
-may vary for any given release).
- </para>
- <para>
-This project is by no means finished. In future releases, the development
-team hopes to include the following:
- <itemizedlist>
- <listitem><para>implementation of proper color management</para></listitem>
- <listitem><para>improved dithering</para></listitem>
- <listitem><para>improvements in performance</para></listitem>
- </itemizedlist>
- </para>
- <para>
-The entire Gimp-Print team hopes you will really enjoy using this
-software! For more information, please consult the GIMP-Print project
-<ulink url="http://gimp-print.sourceforge.net">web page</ulink>.
- </para>
- </chapter>
-
- <chapter id="ch-gimp-and-gimp-print"><title>GIMP and Gimp-Print</title>
-
- <sect1>
- <title>Running the GIMP</title>
- <para>
- This section assumes that you have the GIMP version 1.2 installed
-and working properly on your computer, and that you have an image of
-some type that you desire to print. To get started quickly, log into
-your system, start the X window system, and bring up your favorite terminal
-window. At the $ prompt, type:
-
- <programlisting>
- <![ CDATA [
- $ gimp &
- ]]>
- </programlisting>
-
- This should start the GIMP for you. If it does not, check that
-you have installed the GIMP properly, and that its binary is located
-in one of the directories listed in your &dollar;PATH environment
-variable. On the assumption that this worked, the screen should now
-look something like this:
-
- <figure><title>The Startup Window for The GIMP</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="figures/gimp_startup.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>Startup window for The GIMP</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- </para>
- <para>
- At this point, you should use the
-
- <menuchoice>
- <guimenu>File</guimenu>
- <guimenuitem>Open</guimenuitem>
- </menuchoice>
-
-menu option to open your favorite picture. We will print this picture
-shortly. Your picture should be displayed next to the GIMP startup
-window, perhaps looking similar to the following (sssh! Don't tell
-anybody the secret!):
-
- <figure><title>A Sample Image Displayed by The GIMP</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="50" fileref="figures/gimp_image.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>A Sample Image displayed by The Gimp</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- </para>
-
- </sect1>
-
- <sect1><title>The Gimp-Print Graphical User Interface</title>
- <para>
- Now that the GIMP is displaying your picture, put your mouse over
-the picture and click the right mouse button. A menu will appear.
-Choose the
- <menuchoice>
- <guimenu>File</guimenu>
- <guimenuitem>Print</guimenuitem>
- </menuchoice>
-menu option. This will cause the Gimp-Print GUI window to appear (see
-<xref linkend="fig-gimp-print-gui">). Move the mouse cursor
-over the various parts of the Gimp-Print GUI window, and notice that
-if you leave your mouse in one place for a short time without clicking
-any buttons, a small box appears. This box contains helpful text.
-These small boxes are called "tooltips" and are intended to remind you
-about the function of each part of the graphical interface.
- </para>
- <para>
-The next several sections will continuously refer to
-<xref linkend="fig-gimp-print-gui"> and
-<xref linkend="fig-gimp-print-gui-1">. The difference between
-the two figures can be seen in the top right corner of the window.
-Notice that there are two tabs, one which reads
-<guilabel>Printer Settings</guilabel> and another which reads
-<guilabel>Image/Output Settings</guilabel>. Notice also that the
-window is divided into several major sections which directly map to
-the major sections of this document:
- <itemizedlist>
- <listitem>
- <para><link linkend="sec-preview">Preview</link></para>
- </listitem>
- <listitem>
- <para><link linkend="sec-printer-settings">Printer Settings</link></para>
- </listitem>
- <listitem>
- <para><link linkend="sec-printer-settings">Image/Output Settings</link></para>
- </listitem>
- <listitem>
- <para><link linkend="sec-position">Position</link></para>
- </listitem>
- <listitem>
- <para><link linkend="sec-scaling">Size</link></para>
- </listitem>
- <listitem>
- <para><link linkend="sec-printing-and-saving-settings">Printing and Saving Settings</link></para>
- </listitem>
- </itemizedlist>
- </para>
-
- <figure id="fig-gimp-print-gui"><title>The Gimp-Print Graphical User Interface 1 (GUI)</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="40" fileref="figures/gimp-print-gui.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The GIMP Print GUI showing printer settings</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <figure id="fig-gimp-print-gui-1"><title>The Gimp-Print Graphical User Interface 2 (GUI)</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="40" fileref="figures/gimp-print-gui-1.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The GIMP Print GUI showing image/output settings</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <sect2><title id="sec-printer-settings">Printer Settings</title>
- <indexterm id="idx-printer-settings"><primary>Printer Settings</primary></indexterm>
-
- <sect3><title>Printer</title>
- <para>
- Click on the <guilabel>Printer Settings</guilabel> tab near the
-top right hand corner of the window (see
-<xref linkend="fig-gimp-print-gui">). Then, click on the downward
-facing arrow to the right of the <guilabel>Printer</guilabel> combo
-box to see a list of the system printer queues. Select the queue to which
-you would like the printed image to be sent. One may also print the
-image directly to a file by selecting <guimenuitem>File</guimenuitem>.
-In this event, the user will be prompted for the filename when either the
-<guibutton>Print</guibutton> button or the <guibutton>Print and Save
-Settings</guibutton> button is clicked.
- </para>
- <para>
-When either the <guibutton>Print and Save Settings</guibutton> button
-or the <guibutton>Save Settings</guibutton> button is clicked,
-the settings are saved in a file called
-<filename>~/.gimp-1.2/printrc</filename>. The user is cautioned about
-hand editing this file since it is generated by Gimp-Print (although
-it was the only way that the author found for removing bogus entries
-created while playing with the <guibutton>New Printer</guibutton> button).
- </para>
- </sect3>
-
- <sect3><title>Setup Printer</title>
- <para>
- Before any useful printing can occur, the user needs to associate
-the named printer with the
-actual make and model of the printer. Click the
-<guibutton>Setup Printer</guibutton> button in
-the <guilabel>Printer</guilabel> section of the window (the upper
-right, and just below the Printer display box). When this is done, the
-following window appears:
-
- <figure><title>The Setup Printer Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="60" fileref="figures/gimp-print-setup.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The Setup Printer Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
- </para>
-
- <para>
- Scroll through the Printer Model section of the window until you
-find a printer which matches yours. If you cannot find the precise
-model, pick something close and hope for the best. There are selections
-for a wide array of Postscript, inkjet, and laser printers. After you
-have selected a printer, you will see the printer command displayed.
- </para>
- <para>
-The Gimp-Print software does all of the necessary conversion of the
-image to be printed into the language of your printer. It is
-unnecessary and undesirable for any other sofware to manipulate this
-data. (This is why the command contains the "-l" switch or the "-o
-raw" switch). Please use care if you feel the need to edit this
-command. Once you are satisfied with your selection, click the
-<guibutton>OK</guibutton> button.
- </para>
-
- </sect3>
-
- <sect3><title>New Printer</title>
-
- <para>
- In the previous sections, the user selected an existing printer
-queue and associated a particular type of printer to that queue. For
-most cases, this is probably all that is required. However, some
-situations might require more detailed control over the handling of
-the printer data.
- </para>
- <para>
- Click the <guibutton>New Printer</guibutton> button to tell the
-software that you wish to create a new name. In this case, the new
-name may actually be an existing printer with different settings that
-you wish to save, or it may simply be a name associated with a
-particular command for handling the printer data. A window will
-appear thus:
-
- <figure><title>The New Printer Window</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="figures/gimp-print-new-printer.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The New Printer Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- Type a name into the window and click <guibutton>OK</guibutton>
-(or <guibutton>Cancel</guibutton> if you wish not to do this).
-Notice that the new name now appears as the selected <guilabel>Printer</guilabel>.
-As you change settings in the rest of the Gimp-Print GUI, they will be
-associated with this printer name. When the settings are saved,
-they can be recovered easily by simply selecting this named printer
-from the Printer combo box.
- </para>
- <para>
- One example where this feature might be used is as follows. The
-author frequently prints photos on Epson 4x6 photo paper. Note that
-this paper is physically larger than 4x6 and it has perforations on
-all four sides. The author dislikes printing part of the image on the
-perforated parts of the paper which will be removed after
-printing the photo. By selecting the proper scaling percentage,
-printing can be constrained to the 4x6 part of the paper which will
-remain after the perforated sections are removed. The author has
-saved this setting using this feature of the Gimp-Print software.
- </para>
-
- </sect3>
-
- <sect3><title>Media Size</title>
- <para>
- The term <emphasis>media</emphasis> refers to paper, card stock,
-envelopes, or whatever you have put into your printer onto which
-something will be printed. Click the arrow to the right of the
-<guilabel>Media Size</guilabel> box to see a long list of different
-sizes of media. Choose the size that matches the media which you have
-loaded into your printer. Once you have made your choice, the drop
-down menu will disappear, and your choice will be shown in the
-<guilabel>Media Size</guilabel> box. The available paper sizes will
-vary depending upon the printer model you have selected.
- </para>
- <para>
- Some printers support arbitrary (within limits!) paper sizes.
- These printers will let you select <emphasis>Custom</emphasis>
- or <emphasis>Roll</emphasis> paper sizes. When you select such a
- printer, one or both of the <guilabel>Dimensions</guilabel> boxes
- will let you enter your paper size (in inches or centimetres). The
- boxes will not let you enter sizes that your printer cannot handle.
- </para>
- </sect3>
-
- <sect3><title>Media Type</title>
- <para>
- The type of media onto which your image will be printed should be
-selected here. Click on the arrow to the right of the <guilabel>Media
-Type</guilabel> box to see a long list of the different types of media
-onto which you may print your image. Media types include such things
-as plain paper, postcards, photo quality paper, transparencies, and
-more! Once you have made your choice, the drop down menu will
-disappear, and your choice will be shown in the <guilabel>Media
-Type</guilabel> box. The choices available will vary depending upon
-the printer model you have selected.
- </para>
- </sect3>
-
- <sect3><title>Media Source</title>
- <para>
- The <guilabel>Media Source</guilabel> box allows the user to
- choose the paper source, sometimes called <emphasis>Input
- Slot</emphasis>, that the paper will be fed from. Many printers
- only have one available input source (such as the standard paper
- tray), in which case this entry will be grayed out. If your printer
- does support multiple input sources, you may specify the source of
- your choice here. Some Epson printers offer a roll feed option in
- addition to the standard paper tray, and many HP LaserJet printers
- have multiple paper trays.
- </para>
- </sect3>
-
- <sect3><title>Ink Type</title>
- <para>
- Some printers offer a choice of different types of ink or ink
- cartridges. Many Canon and Lexmark printers support various
- combinations of cartridges, such as black only, black and color,
- photo color, and so forth. Most Epson printers let you choose
- between three and four color printing (three color uses only color
- ink, while four color uses black ink as well). Epson printers that
- support six color photo printing allow you to choose five and six
- color printing as well.
- </para>
- </sect3>
-
- <sect3><title>Resolution</title>
- <para>
- Click on the arrow to the right of the
-<guilabel>Resolution</guilabel> box to see a long list of resolutions
-at which you can print your image. The list is written with the
-lowest resolution at the top, with increasing resolution (and
-generally improved printing quality) as you approach the bottom of the
-list. Different printers support different resolution options, and
-many printers support different quality choices using the same basic
-resolution. In this menu are a few terms which may be unfamiliar to
-you, and they will now be explained.
- </para>
- <sect4><title>DPI</title>
- <para>
- DPI is an acronym which stands for <emphasis>D</emphasis>ots
-<emphasis>P</emphasis>er <emphasis>I</emphasis>nch. This term refers
-to the number of dots that your printer will print in a space of one
-inch (approximately 2.54 cm). This is highly dependent upon the
-capability of your printer. Resolutions below 300 DPI are
-used for draft quality. For general purpose printing, select
-300 - 360 DPI. Higher quality printing can be achieved by
-selecting 600 - 720 DPI. Settings higher than this are used for the
-highest possible quality for printing photographs and other high
-quality graphics. Experiment with your printer and these settings
-with different types of graphics and photographs to see what
-results you can obtain with your printer. High resolutions (large
-numbers of dots per inch) require substantial image processing time,
-and the print files can be very large; it's not uncommon for a full
-page, 1440x720 DPI image to require 100 MB of temporary storage!
- </para>
- </sect4>
- <sect4><title>Draft or Fast Economy Draft</title>
- <para>
- When this text appears next to the resolution, it refers to the
-fact that the quality will be relatively low, but suitable for rough
-drafts. Draft quality is higher than fast economy draft. These
-options will give you the fastest printing speed. Economy Draft uses
-less ink, and as a result the image will be pale. These modes are
-generally not very useful for printing photographs.
- </para>
- </sect4>
-
- <sect4><title>Unidirectional</title>
- <para>
- When printing an image, you have probably noticed the print
-head inside the printer moving back and forth across the print media.
-Many printers are capable of putting ink on the page regardless of
-which direction the print head is moving. However, quality can
-sometimes be improved by only putting ink on the page when the printer
-head is moving in one direction. The
-<guimenuitem>Unidirectional</guimenuitem> setting instructs the
-software to only place ink on the page when the print head is moving
-one way. When the print head returns, it will not place ink on the
-page. On many printers, the print quality is better, at the expense
-of printing speed.
- </para>
- </sect4>
- <sect4><title>High(est) Quality</title>
- <para>
- With lower quality print modes, one may see an effect where
-the printed image looks like it has rows of stripes with a small
-separation between the stripes. This effect is called "banding" and
-is undesirable. In the <emphasis>high</emphasis> and
-<emphasis>highest</emphasis> quality modes, the printer will make more
-passes over the same part of the page in order to improve quality and
-(reduce or) eliminate banding. This requires more temporary disk
-space and prints more slowly, but does not require significantly more
-processing time.
- </para>
- </sect4>
- <sect4><title>Microweave</title>
- <para>
- Certain Epson printers (older models mostly) support a printing
- mode called <emphasis>Microweave</emphasis>. This mode uses
- special software within the printer to improve the print quality.
- Microweave print modes will usually produce better quality
- output than non-Microweave modes, with only a small performance
- penalty. If Microweave is not listed at your chosen
- resolution, fear not. In those cases, the non-Microweave print
- modes offer similar printing quality improvements.
- </para>
- </sect4>
- <sect4><title>DMT</title>
- <para>
- DMT is an acronym which stands for <emphasis>D</emphasis>ot
- <emphasis>M</emphasis>odulation
- <emphasis>T</emphasis>echnology.
- This term refers to a print mode used by certain Canon printers
- to improve the quality of the printed output. Unfortunately,
- at this time, all of the available DMT modes do not work
- correctly. The cases which do work correctly will offer
- significantly improved printing quality.
- </para>
- </sect4>
- </sect3>
- </sect2>
-
- <sect2><title id="sec-preview">Preview</title>
- <para>
- Notice in the upper left of the window is a preview of your image.
-This preview is a representation of where your picture will print on
-the selected media, and approximately what it will look like. This
-preview will be updated as you modify selections in the
-<guilabel>Position</guilabel>, <guilabel>Size</guilabel>,
-<guilabel>Media Size</guilabel>, and <guilabel>Output Type</guilabel>
-portions of the window. You may also select the image with your mouse
-and move it manually if you wish. In doing so, you will note that the
-<guilabel>Position</guilabel> settings are updated accordingly. Take
-note of the arrow, which points toward the top of the media, where top
-is the first part of the media to enter the printer.
- </para>
- <para>
- The preview may be moved around the page as follows:
- </para>
- <itemizedlist>
- <listitem><para> Clicking and dragging the <emphasis>left</emphasis>
- (primary) mouse button moves the image around the page as you would
- expect; the image moves with the mouse. </para></listitem>
- <listitem><para> Clicking and dragging the
- <emphasis>middle</emphasis> mouse button moves the image around the
- page in a finer fashion, such that each pixel of mouse movement
- moves the image by one point (1/72 inch). This allows very fine
- placement of the image on the page. </para></listitem>
- <listitem><para> Clicking and dragging the
- <emphasis>right</emphasis> (secondary) mouse button moves the image
- around the page much the same as with the left button, but the image
- will only move in units of the image size. Thus, if the image is
- one inch wide and two inches tall, the image will not move at all
- until you have moved the mouse far enough so that the image would be
- moved one inch vertically and two inches horizontally. This is
- handy if you wish to print multiple images of the same size on one
- piece of paper.</para></listitem>
- <listitem><para> If you hold down the <emphasis>shift</emphasis> key
- on the keyboard when you click and drag the mouse, the image will
- only move in the horizontal or vertical direction (depending upon
- which way you first move the mouse). This allows you to constrain
- motion to the horizontal or vertical. </para></listitem>
- <listitem><para> If you click another button while dragging the
- mouse, the image will immediately return to the position it was in
- before you clicked the mouse the first time. This allows you to
- not move the image if you have started moving it and have decided
- that you don't want to move it. The preview will not respond to the
- mouse until you release all of the mouse buttons and click and drag
- afresh. </para></listitem>
- </itemizedlist>
- </sect2>
-
- <sect2><title id="sec-position">Position</title>
-
- <sect3><title>Orientation</title>
- <para>
- The Orientation menu allows the user to choose the orientation
-of the paper. The menu selections are
-<guimenuitem>Auto</guimenuitem>, <guimenuitem>Portrait</guimenuitem>,
-<guimenuitem>Landscape</guimenuitem>, <guimenuitem>Upside
-down</guimenuitem>, and <guimenuitem>Seascape</guimenuitem>. Click on
-the rectangular tab to see these choices
-and make your selection. When you have done so, the pulldown menu
-will have disappeared, and your choice will appear. Also, note that
-the preview image will have changed accordingly.
- </para>
- <para>
- When set to <guimenuitem>Auto</guimenuitem>, the software will make an
-intelligent choice of orientation based on the dimensions of the image
-to be printed. <guimenuitem>Portrait</guimenuitem> orients the print media
-with the longest edge going from top to bottom, while
-<guimenuitem>Landscape</guimenuitem> orients the paper with the longest edge
-going from side to side. <guimenuitem>Upside down</guimenuitem> and
-<guimenuitem>Seascape</guimenuitem> orient the paper the same as
-<guimenuitem>Portrait</guimenuitem> and <guimenuitem>Landscape</guimenuitem>
-respectively, with the difference being that the image is rotated 180 degrees.
- </para>
- </sect3>
-
- <sect3><title>Automatic Centering</title>
- <para>
- There are three buttons that deal with centering an image. The
-leftmost button is the <guibutton>Vertically</guibutton> button, the
-middle button is the <guibutton>Both</guibutton> button, and
-the rightmost button is the <guibutton>Horizontally</guibutton>
-button. Use the <guibutton>Both</guibutton> button to center your
-image both horizontally and vertically. This will cause the top and
-bottom borders to be equal, and the left and right borders to be
-equal. If you have placed your image manually by using the mouse
-button, then you may center the image in the horizontal direction only
-by clicking on the <guibutton>Horizontally</guibutton> button.
-Likewise, to adjust the image only in the vertical direction, click on
-the <guibutton>Vertically</guibutton> button. Note that in
-each case, the image is centered with regard to the edges of the
-media, and without regard to the printable portion of the media. Many
-printers are incapable of printing to each edge of the media. Some
-media may have edges which detach. Consult your printer documentation
-for more details regarding your printer's capabilities in this regard.
- </para>
- </sect3>
-
- <sect3><title>Manual Settings</title>
- <para>
- You will notice that there are six boxes that contain numbers
-just below the Orientation menu and just above the GUI buttons related
-to centering an image. When you move the preview image manually with
-the mouse, or when you click on one of the centering buttons, the
-preview image moves and these six boxes get updated.
- </para>
- <sect4><title>Left</title>
- <para>
- The number appearing in the <guimenuitem>Left</guimenuitem> box denotes
-the number of units (cm or inches) that the left side of the image
-will be printed away from the left edge of the media. You may select
-the units by clicking the <guibutton>Inch</guibutton> or
-<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
-these GUI boxes.
- </para>
- </sect4>
- <sect4><title>Right</title>
- <para>
- The number appearing in the <guimenuitem>Right</guimenuitem> box denotes
-the number of units (cm or inches) that the right side of the image
-will be printed away from the left edge of the media. You may select
-the units by clicking the <guibutton>Inch</guibutton> or
-<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
-these GUI boxes.
- </para>
- </sect4>
- <sect4><title>Right Border</title>
- <para>
- The number appearing in the <guimenuitem>Right Border</guimenuitem> box denotes
-the number of units (cm or inches) that the right side of the image
-will be printed away from the right edge of the media. You may select
-the units by clicking the <guibutton>Inch</guibutton> or
-<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
-these GUI boxes.
- </para>
- </sect4>
- <sect4><title>Top</title>
- <para>
- The number appearing in the <guimenuitem>Top</guimenuitem> box denotes
-the number of units (cm or inches) that the top side of the image
-will be printed away from the top edge of the media. You may select
-the units by clicking the <guibutton>Inch</guibutton> or
-<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
-these GUI boxes.
- </para>
- </sect4>
- <sect4><title>Bottom</title>
- <para>
- The number appearing in the <guimenuitem>Bottom</guimenuitem> box denotes
-the number of units (cm or inches) that the bottom side of the image
-will be printed away from the top edge of the media. You may select
-the units by clicking the <guibutton>Inch</guibutton> or
-<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
-these GUI boxes.
- </para>
- </sect4>
-
- <sect4><title>Bottom Border</title>
- <para>
- The number appearing in the <guimenuitem>Bottom Border</guimenuitem> box denotes
-the number of units (cm or inches) that the bottom side of the image
-will be printed away from the bottom edge of the media. You may select
-the units by clicking the <guibutton>Inch</guibutton> or
-<guibutton>cm</guibutton> buttons in the <guilabel>Units</guilabel> section just below
-these GUI boxes.
- </para>
- </sect4>
-
- </sect3>
-
- </sect2>
-
- <sect2><title id="sec-scaling">Size</title>
-
- <sect3><title>Slider Bar and Spin Box</title>
- <para>
- The slider bar can be moved as desired by the user. Notice
-that while sliding this bar, the preview image changes accordingly.
-One will also note that several boxes in the Gimp-Print GUI change values when this bar is moved.
-These boxes are the six position boxes (left, right, right border,
-top, bottom, bottom border), the two size boxes (width and height),
-and the spin box to the right of the slider bar.
- </para>
- <para>
- This slider bar is used to scale the image to a desirable size, but the same effect can
-be obtained by either clicking an arrow on the spin box to the right of this
-slider bar, or by manually typing a number into this spin box. Notice
-that by setting the spin box in this way, the slider bar is also
-moved. All of the described methods will cause the image to be
-scaled accordingly.
- </para>
- </sect3>
-
- <sect3><title>Scale by Percent or PPI</title>
- <para>
- One may choose to scale the image by a percentage, or by PPI,
-which means "<emphasis>p</emphasis>ixels <emphasis>p</emphasis>er
-<emphasis>i</emphasis>nch". Click the radio button
-next to the word to set the desired scaling factor.
- </para>
- <para>
- When scaling by a percentage, the number reflected in the spin
-box next to the slider bar represents the percentage relative
-to the full size of the selected print medium. For example, with this spin box
-set to 50, the image will be scaled to 50% of the size of the print
-medium. When set to 100, the image will attempt to fill the print
-medium, within the constraints of maintaining the proper aspect ratio
-and the margins of the selected print medium. This effect can be seen
-in the preview window.
- </para>
- <para>
- When scaling by PPI, the number reflected in the spin box next to
-the slider bar represents the number of pixels that will be
-printed per inch. For example, if the user is printing a 640x480
-image at a size of 6.4x4.8 inches (as measured by the size boxes), the
-image will be printed at 100 DPI.
- </para>
- </sect3>
-
- <sect3><title>Use Original Image Size</title>
- <para>
- By clicking this button, the image will be scaled to as close
-to the native size of the image as possible. This effect can
-immediately be seen in the preview image.
- </para>
- <para>
- The native image size may be found or set in the GIMP by
- selecting <guimenuitem>Image/Scale Image</guimenuitem> in the
- GIMP. Under the <guilabel>Print Size and Display Unit</guilabel>
- group in the <guilabel>Scale Image</guilabel> dialog, you can
- determine (or change) the width and height of the image, or
- choose the resolution.
- </para>
- </sect3>
-
- <sect3><title>Width and Height</title>
- <para>
- These boxes show the size of the printed image in either inches
-or centimeters (depending on which unit is selected). The user may
-choose to manually modify these values. When one value is modified,
-the other value is automatically modified in order to maintain the
-aspect ratio (the ratio of width to height). This effect can be
-immediately seen in the preview image.
- </para>
- </sect3>
-
- <sect3><title>Units</title>
- <para>
- The units can be set to inches or centimeters by clicking the appropriate
-radio button next to the desired unit. This setting effects the
-values printed in the six position boxes (left, right, right border,
-top, bottom, bottom border) and the two size boxes (width and height).
- </para>
- </sect3>
-
- </sect2>
-
- <sect2><title id="sec-image-settings">Image/Output Settings</title>
- <para>
- By clicking on the tab labeled <guilabel>Image/Output
-Settings</guilabel>, the Gimp-Print window will appear as shown in
-<xref linkend="fig-gimp-print-gui-1">. Notice that there are
-two sections to this portion of the window, namely,
-<guilabel>Image Type</guilabel> and
-<guilabel>Output Type</guilabel>.
-
- </para>
-
- <sect3><title>Image Type</title>
-
- <sect4><title>Line Art</title>
- <para>
- This setting tells the printer driver to generate color
-quickly. The color is bold and bright, but color accuracy is not very
-good. There may also be some unexpectedly sharp transitions in
-colors. This mode is acceptable for printing text with small amounts
-of color, and may be acceptable for presentation graphics.
- </para>
- </sect4>
-
- <sect4><title>Solid Colors</title>
- <para>
- This mode produces color which is considerably more accurate
-than the <guilabel>Line Art</guilabel> mode, but with a reduction in performance. In
-general, hues will be accurate but tonalities may not be accurate.
-There should be no sharp transitions in colors. This mode is good for
-printing presentation graphics in most cases.
- </para>
- </sect4>
-
- <sect4><title>Photograph</title>
- <para>
- This mode produces the most accurate colors and tonalities at a
-greater cost in performance. This is the mode to use when printing
-high quality photographs or other high quality images.
- </para>
- </sect4>
-
- </sect3>
-
- <sect3><title>Output Type</title>
- <para>
- The user is given the choice of color, black and white, and
-grayscale. Color is selected when the desired output is to be in
-color. Greyscale will result in the printed image having various
-shades of grey. Black and white is just that. The effect of this
-setting can be seen in the preview window.
- </para>
- </sect3>
-
- <sect3><title>Adjust Output</title>
- <para>
- Clicking on this button causes the <guilabel>Print Color Adjust</guilabel> window to
-appear (see <xref linkend="fig-gimp-print-color-adjust">). In
-this window, one will see a representation of the image to be printed
-as well as several slider bars. These slider bars collectively adjust
-many different aspects of the image. The values can also be adjusted
-by clicking the arrows or by typing a value into the appropriate spin
-box on the right side of each slider bar.
- </para>
-
- <figure id="fig-gimp-print-color-adjust"><title>The Print Color Adjust Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="50" fileref="figures/gimp-print-print-color-adjust.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>>The Print Color Adjust Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <sect4><title>Brightness</title>
- <para>
- Adjust the brightness of the image. A setting of 0.0 gives a fully black
-image, while a 2.0 setting gives a fully white image. Values greater than 1.0 will result in
- black not being solid and highlights turning white; values less than
- 1.0 will result in white not being perfectly clear and shadows turning
- black.
- </para>
- </sect4>
-
- <sect4><title>Contrast</title>
- <para>
- Adjust the contrast of the image. A setting of 0.0 gives a solid gray for the
-entire image, the exact gray depending upon the brightness chosen.
- </para>
- </sect4>
-
- <sect4><title>Cyan, Magenta, Yellow</title>
- <para>
-These three options allow specification of the cyan, magenta, and
-yellow levels independently, for rebalancing the levels. Normally,
-these should be adjusted to yield neutral gray, but they can be used
-for other effects.
- </para>
- </sect4>
-
- <sect4><title>Saturation</title>
- <para>
-Adjust the brilliance of colors. A setting of 0.0 results in pure grayscale.
-A saturation setting of less than 1.0 results in more muted colors. A
-saturation setting of greater than 1.0 results in more vibrant colors. Very high
-saturation often results in very strange effects, including
-posterization and banding that might not be expected. For normal
-purposes, the saturation should generally be set to a value less than 1.5.
- </para>
- </sect4>
-
- <sect4><title>Density</title>
- <para>
-Adjust the amount of ink deposited on the paper. If you have chosen the
-correct paper type and are getting ink bleeding through the paper
-or puddling, try reducing the density to the lowest value you
-can while still achieving solid black. If black is not solid
-black, even with the contrast and brightness at 1.0, try increasing
-the density. Note that changes to this setting will not be visible in
-the image preview.
- </para>
- <para>
-All of the supported printers actually need less than 100% ink
-density in most cases, so the actual density is something other than
-the nominal density setting. The effective density setting cannot go
-above 100%, so if a value specified will result in an excessively high
-density level, it will be silently limited to a setting of 1.0.
- </para>
- </sect4>
-
- <sect4><title>Gamma</title>
- <para>
-Adjust the gamma of the image, over and above the printer-specific
-correction. Gamma less than 1.0 will result in a darker image; gamma
-greater than 1.0 will result in a lighter image. Unlike brightness,
-gamma adjustment does not change the endpoints; it merely changes the
-shape of the input->output curve.
- </para>
- </sect4>
-
- <sect4><title>Dither Algorithm</title>
- <para>
-The recommended dither algorithm is <guimenuitem>Adaptive
-Hybrid</guimenuitem> (which is the default) for text or other fine
-black detail, or if this is mixed with continuous tone images. The
-<guimenuitem>Ordered</guimenuitem> dithering algorithm is just as good
-(and somewhat faster) for pure continuous-tone images and photographs,
-but may yield poor results with text or other fine detail,
-particularly at high printing resolutions.
- </para>
- <para> The <guimenuitem>Fast</guimenuitem> algorithm gives the
-fastest results at the expense of color accuracy. It is a simplified
-ordered dither. On simple four color printers (or other printers used
-in four color mode), the quality is similar to
-<guimenuitem>Ordered</guimenuitem>, although dark gray rendition is
-not as good due to a simpler transfer between black and colored ink.
-With six-color printers, color rendition is somewhat worse, but it
-should be quite usable in cases where optimum quality is not critical.
-In black and white, it is an efficient way to render grayscale, but it
-may not give best results when used with variable dot size printers
-(modern Epson printers, or Canon printers using DMT). On rare three
-color printers (CMY only) the results should be identical to ordered
-dither.
- </para>
- <para> <guimenuitem>Very Fast</guimenuitem> is even faster than
-<guimenuitem>Fast</guimenuitem>, with even more loss of quality.
-Color and grayscale output will show strong patterning that resembles
-screening, although it isn't. On laser printers, and possibly on
-certain kinds of text and line art, <guimenuitem>Very
-Fast</guimenuitem> dithering may actually yield the best quality.
- </para>
- <para>
-Error diffusion algorithms (<guimenuitem>Hybrid
-Floyd-Steinberg</guimenuitem> is such an algorithm) perform very well
-at high densities, and are capable of
-rendering very fine detail rather well, but they tend to exhibit artifacts in
-the form of "waves" or "worms" of dots which results in noticeable
-texturing in pale areas. Furthermore, pale areas immediately adjacent
-to white take a while to "build up" sufficient error to print at all.
-This is sometimes called "tearing" or "waterfalling".
- </para>
-
- </sect4>
-
- <sect4><title>Set Defaults and Close</title>
- <para>
- When the <guibutton>Set Defaults</guibutton> button is clicked,
-the slider bar settings will return to their default values. The
-dither algorithm setting is uneffected. The <guilabel>Print Color
-Adjust</guilabel> window will close when the
-<guibutton>Close</guibutton> button is clicked.
- </para>
- </sect4>
-
- </sect3>
-
- </sect2>
-
- <sect2><title id="sec-printing-and-saving-settings">Printing and Saving Settings</title>
- <para>
- At the bottom of the Gimp-Print window, there are five buttons labeled
-<guibutton>About</guibutton>,
-<guibutton>Print and Save Settings</guibutton>,
-<guibutton>Save Settings</guibutton>,
-<guibutton>Print</guibutton>,
-and <guibutton>Cancel</guibutton>. The <guibutton>About</guibutton>
-button will show information about the Gimp-Print software, such as
-the version number, authors names, project web site, and software
-licensing. After clicking on the <guibutton>About</guibutton>, read
-the information, and then close the window by pressing the
-<guibutton>OK</guibutton> button.
- </para>
- <para>
- The <guibutton>Print and Save Settings</guibutton> button will
-save the current settings and then print the desired image. Recall
-that these settings are saved in <filename>~/.gimp-1.2/printrc</filename>. The
-<guibutton>Save Settings</guibutton> button will only save the
-settings. The <guibutton>Print</guibutton> button will print the
-image only. The <guibutton>Cancel</guibutton> will close the
-Gimp-Print GUI window.
- </para>
- </sect2>
-
- </sect1>
-
- </chapter>
-
- <chapter><title>CUPS and Gimp-Print</title>
- <sect1><title>Introduction</title>
- <para>
- CUPS is an acronym which stands for <emphasis>C</emphasis>ommon
-<emphasis>U</emphasis>nix <emphasis>P</emphasis>rinting
-<emphasis>S</emphasis>ystem. It is assumed that the reader has
-properly installed the CUPS software and the Gimp-Print software.
-This section will discuss adding a printer to CUPS that uses a
-Gimp-Print printer driver, as well as how to modify the various
-settings supplied by Gimp-Print. This will be a rather quick
-explanation, as the CUPS software is quite well documented, and it is
-not my intention to attempt to duplicate the CUPS documentation here.
- </para>
- </sect1>
-
- <sect1><title>CUPS Printer Installation</title>
- <para>
-This explanation will use the web interface provided by CUPS. First,
-aim your favorite web browser at
-<ulink url="http://localhost:631">the CUPS server</ulink>. The
-following screen should appear within your browser.
- </para>
-
- <figure><title>The CUPS Startup Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="45" fileref="figures/cups_startup.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Startup Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>
-Now, you may click on either the word <guilabel>Printers</guilabel> in the bar at the top
-of the page, or you may click on the <guilabel>Manage Printers</guilabel> text. In
-either case, the next screen you see will look like this one if you
-have not yet configured any printers.
- </para>
-
- <figure><title>The CUPS Printers Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="45" fileref="figures/cups_printers.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Printers Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>
-At this time, click on the <guibutton>Add Printer</guibutton> button.
-You will then see the Admin screen (shown below).
- </para>
-
- <figure><title>The CUPS Admin Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="45" fileref="figures/cups_admin.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Admin Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>
-Notice in the screenshot that the three boxes are shown after the
-author filled them in for his printer at home. You will need to fill
-in an appropriate name of your printer, its location, and a
-description which meets your own needs. Once this is done, click on
-the <guibutton>Continue</guibutton> button, and then this screen will appear.
- </para>
-
- <figure id="fig-cups-admin-device"><title>The CUPS Admin Device Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="35" fileref="figures/cups_admin_device.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Admin Device Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>
-Click on the drop down menu next to the word
-<guilabel>Device</guilabel> and a list of possible printer devices
-appears. Select the device appropriate for your printer. Note that
-there are a range of serial, parallel, USB, and other devices from
-which to choose. Once the selection is made, click the
-<guibutton>Continue</guibutton> button. Now, this screen appears.
- </para>
-
- <figure><title>The CUPS Admin Model/Driver Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="35" fileref="figures/cups_admin_make.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Admin Model/Driver Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <caution>
- <title>Caution Regarding USB Printers</title>
-
- <para>
-CUPS versions 1.1.11 and later <emphasis>REQUIRE</emphasis>
-the user to insure that the desired USB printer is powered on
-<emphasis>AND</emphasis> physically connected to the USB bus
-<emphasis>BEFORE</emphasis> starting the CUPS software.
- </para>
- <para>
-CUPS must see the USB printer when the software starts. The CUPS software
-is typically started when the computer boots. Note that one cannot
-simply plug in the USB printer and power it on after CUPS has started.
-(Note that this does not apply to parallel port printers).
- </para>
- <para>
-If the USB printer was not connected and powered on at the time CUPS was
-started, there will not be a USB printer shown in the
-list of devices on the CUPS Admin Device Window (see
-<xref linkend="fig-cups-admin-device">). In this event, stop the CUPS
-software, properly connect and power on the USB printer, and restart
-the CUPS software.
- </para>
- <para>
-From the list of devices shown in the CUPS Admin Device Window
-(see <xref linkend="fig-cups-admin-device">), a clever user might
-attempt to avoid this issue by selecting
-<guimenuitem>Internet Printing Protocol</guimenuitem>
-and then enter something similar to 'usb:/dev/usblp0' in the next
-screen. However, this fails later in the configuration process with a
-"client_error_not_possible" error message with no other explanation.
-Note that entering 'file:/dev/usblp0' will not work either. While CUPS
-will allow this, printing will not actually work in some situations.
- </para>
- <para>
-CUPS versions 1.1.10 and earlier exhibit similar behavior with regard
-to not displaying the USB printer if it was not connected to the USB
-bus and powered up prior to starting the CUPS software. However,
-these versions of CUPS will indeed allow the user to enter the name of
-the USB connection, unlike versions 1.1.11 and later.
- </para>
- </caution>
-
- <para>
-Select the manufacturer of your printer and click the
-<guibutton>Continue</guibutton> button. A window will appear which
-asks you to select the specific model number for your printer.
- </para>
-
- <para>
-Scroll through the long list and find the model number for your
-printer. Notice carefully that there are many different languages
-supported for each printer, as denoted by the initials in parenthesis.
-(en) would be for English, (da) for Danish, (sv) for Swedish, (fr) for
-French, (no) for Norwegian, (pl) for Polish, and (en_GB) for British
-English (see <xref linkend="fig-cups-admin-model">). Also take note
-of the Gimp-Print revision for the driver, and ensure that it is
-indeed the version of Gimp-Print which you have most recently
-installed. Once you have made the proper selection, click on the
-<guibutton>Continue</guibutton> button.
- </para>
-
- <figure id="fig-cups-admin-model"><title>The 2nd CUPS Admin Model/Driver Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="55" fileref="figures/cups_admin_model.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The 2nd CUPS Admin Model/Driver Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <figure><title>The CUPS Admin Success Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="39" fileref="figures/cups_admin_success.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Admin Success Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>
-Congratulations! You should now see the CUPS window indicating that
-your printer was successfully installed. Notice the sentence which
-reads "Printer your_printer has been added successfully". Click on
-your_printer, which will be the underlined name for your printer.
- </para>
-
- <figure id="fig-cups-my-printer"><title>The CUPS Window for Your Printer</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="65" fileref="figures/cups_my_printer.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Window for Your Printer</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
- <para>
-After clicking on your_printer (epson_870 in this example), a window
-will appear similar to that shown in <xref linkend="fig-cups-my-printer">.
-It would probably be a good idea at this point to click on the
-<guibutton>Print Test Page</guibutton> button to ensure that
-everything is working properly. Take note of the Gimp-Print revision
-printed on this screen and confirm once again that it is the expected
-revision.
- </para>
-
- </sect1>
-
- <sect1><title>Configuring your Printer in CUPS</title>
-
- <para>
-With reference to <xref linkend="fig-cups-my-printer">, click
-on the <guibutton>Configure Printer</guibutton> button. A partial
-screenshot of the printer configuration window appears in
-<xref linkend="fig-cups-printer-config-window">.
-The contents of this window will vary depending on precisely which
-printer you selected when you configured CUPS for your printer. The
-screenshot shows the selections made by the author for his printer.
-The individual selections will not be explained in detail here, as
-they are the same selections which are available when using the
-Gimp-Print plugin to the GIMP. These selections are explained in
-detail in various sections of <xref linkend="ch-gimp-and-gimp-print">.
- </para>
-
- <figure id="fig-cups-printer-config-window"><title>The CUPS Printer Cofiguration Window</title>
- <mediaobject>
- <imageobject>
- <imagedata scale="30" fileref="figures/cups_config_printer.png" FORMAT="PNG">
- </imageobject>
- <textobject>
- <phrase>The CUPS Printer Configuration Window</phrase>
- </textobject>
- </mediaobject>
- </figure>
-
-
- </sect1>
-
- <sect1><title>Using CUPS from the Command Line</title>
-
- <para>
- It is possible to use the CUPS printing system from the command
-line. While this document will not delve into all of the specifics of
-the CUPS command line interface, there are portions of this interface
-which are specific to the Gimp-Print software.
- </para>
-
- <para>
-The command line is in some cases a more convenient way to generate
-printed output (e.g. when printing from a script). However, most
-people (including the author) cannot easily predict what a command
-line option of "-o stpCyan=1350" will do to the output. It is
-therefore a good idea to use the GIMP to view the image and the
-Gimp-Print plugin to preview these settings before relying on the
-command line.
- </para>
-
- <para>
-When using CUPS from the command line, the command will have this
-general format:
-
- <programlisting>
- <![ CDATA [
- lpr -P my_printer_name \
- -o option1=<choice1> \
- -o option2=<choice2> \
- /path/to/printfile
- ]]>
- </programlisting>
-
-When typing the command directly onto the command line, put all of the
-command line options on one line, and do not type the "\" characters.
-The list of possible options which are specific to Gimp-Print,
-followed by some of the supported choices, are shown below:
-
- <programlisting>
- <![ CDATA [
- -o PageSize=<...| A3 | A4 | A4 | ...>
- -o InputSlot=<Roll | Standard>
- -o MediaType=< ..| Inkjet | Plain | GlossyPaper | ...>
- -o Resolution=<360sw | 360swuni ...| 1440x720 >
- -o ColorModel=<Black | RGB | Gray | CMYK>
- -o stpBrightness=<0...2000>
- -o stpContrast=<0...2000>
- -o stpCyan=<0...4000>
- -o stpDensity=<0...2000>
- -o stpDither=<0...4000>
- -o stpGamma=<0...4000>
- -o stpImageType=<LineArt | Continuous | SolidTone>
- -o stpInkType=<PhotoCMY | CMYK | PhotoCMYK | RGB>
- -o stpMagenta=<0...4000>
- -o stpSaturation=<0...9000>
- -o stpYellow=<0...4000>
- ]]>
- </programlisting>
-
-For more detailed information, consult the appropriate sections of <xref linkend="ch-gimp-and-gimp-print">.
- </para>
-
- </sect1>
-
- </chapter>
-
-<appendix id="gfdl">
-<title>GNU Free Documentation License</title>
-<!-- - GNU Project - Free Software Foundation (FSF) -->
-<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
-
-
- <!-- sect1>
- <title>GNU Free Documentation License</title -->
-
- <para>Version 1.1, March 2000</para>
-
- <blockquote>
- <para>Copyright (C) 2000 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.</para>
- </blockquote>
-
- <sect1 label="0">
- <title>PREAMBLE</title>
-
- <para>The purpose of this License is to make a manual, textbook,
- or other written document "free" in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by
- others.</para>
-
- <para>This License is a kind of "copyleft", which means that
- derivative works of the document must themselves be free in the
- same sense. It complements the GNU General Public License, which
- is a copyleft license designed for free software.</para>
-
- <para>We have designed this License in order to use it for manuals
- for free software, because free software needs free documentation:
- a free program should come with manuals providing the same
- freedoms that the software does. But this License is not limited
- to software manuals; it can be used for any textual work,
- regardless of subject matter or whether it is published as a
- printed book. We recommend this License principally for works
- whose purpose is instruction or reference.</para>
- </sect1>
-
- <sect1 label="1">
- <title>APPLICABILITY AND DEFINITIONS</title>
-
- <para>This License applies to any manual or other work that
- contains a notice placed by the copyright holder saying it can be
- distributed under the terms of this License. The "Document",
- below, refers to any such manual or work. Any member of the
- public is a licensee, and is addressed as "you".</para>
-
- <para>A "Modified Version" of the Document means any work
- containing the Document or a portion of it, either copied
- verbatim, or with modifications and/or translated into another
- language.</para>
-
- <para>A "Secondary Section" is a named appendix or a front-matter
- section of the Document that deals exclusively with the
- relationship of the publishers or authors of the Document to the
- Document's overall subject (or to related matters) and contains
- nothing that could fall directly within that overall subject.
- (For example, if the Document is in part a textbook of
- mathematics, a Secondary Section may not explain any mathematics.)
- The relationship could be a matter of historical connection with
- the subject or with related matters, or of legal, commercial,
- philosophical, ethical or political position regarding
- them.</para>
-
- <para>The "Invariant Sections" are certain Secondary Sections
- whose titles are designated, as being those of Invariant Sections,
- in the notice that says that the Document is released under this
- License.</para>
-
- <para>The "Cover Texts" are certain short passages of text that
- are listed, as Front-Cover Texts or Back-Cover Texts, in the
- notice that says that the Document is released under this
- License.</para>
-
- <para>A "Transparent" copy of the Document means a
- machine-readable copy, represented in a format whose specification
- is available to the general public, whose contents can be viewed
- and edited directly and straightforwardly with generic text
- editors or (for images composed of pixels) generic paint programs
- or (for drawings) some widely available drawing editor, and that
- is suitable for input to text formatters or for automatic
- translation to a variety of formats suitable for input to text
- formatters. A copy made in an otherwise Transparent file format
- whose markup has been designed to thwart or discourage subsequent
- modification by readers is not Transparent. A copy that is not
- "Transparent" is called "Opaque".</para>
-
- <para>Examples of suitable formats for Transparent copies include
- plain ASCII without markup, Texinfo input format, LaTeX input
- format, SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML designed for human modification.
- Opaque formats include PostScript, PDF, proprietary formats that
- can be read and edited only by proprietary word processors, SGML
- or XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML produced by some word
- processors for output purposes only.</para>
-
- <para>The "Title Page" means, for a printed book, the title page
- itself, plus such following pages as are needed to hold, legibly,
- the material this License requires to appear in the title page.
- For works in formats which do not have any title page as such,
- "Title Page" means the text near the most prominent appearance of
- the work's title, preceding the beginning of the body of the
- text.</para>
- </sect1>
-
- <sect1 label="2">
- <title>VERBATIM COPYING</title>
-
- <para>You may copy and distribute the Document in any medium,
- either commercially or noncommercially, provided that this
- License, the copyright notices, and the license notice saying this
- License applies to the Document are reproduced in all copies, and
- that you add no other conditions whatsoever to those of this
- License. You may not use technical measures to obstruct or
- control the reading or further copying of the copies you make or
- distribute. However, you may accept compensation in exchange for
- copies. If you distribute a large enough number of copies you
- must also follow the conditions in section 3.</para>
-
- <para>You may also lend copies, under the same conditions stated
- above, and you may publicly display copies.</para>
- </sect1>
-
- <sect1 label="3">
- <title>COPYING IN QUANTITY</title>
-
- <para>If you publish printed copies of the Document numbering more
- than 100, and the Document's license notice requires Cover Texts,
- you must enclose the copies in covers that carry, clearly and
- legibly, all these Cover Texts: Front-Cover Texts on the front
- cover, and Back-Cover Texts on the back cover. Both covers must
- also clearly and legibly identify you as the publisher of these
- copies. The front cover must present the full title with all
- words of the title equally prominent and visible. You may add
- other material on the covers in addition. Copying with changes
- limited to the covers, as long as they preserve the title of the
- Document and satisfy these conditions, can be treated as verbatim
- copying in other respects.</para>
-
- <para>If the required texts for either cover are too voluminous to
- fit legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.</para>
-
- <para>If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a publicly-accessible
- computer-network location containing a complete Transparent copy
- of the Document, free of added material, which the general
- network-using public has access to download anonymously at no
- charge using public-standard network protocols. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.</para>
-
- <para>It is requested, but not required, that you contact the
- authors of the Document well before redistributing any large
- number of copies, to give them a chance to provide you with an
- updated version of the Document.</para>
- </sect1>
-
- <sect1 label="4">
- <title>MODIFICATIONS</title>
-
- <para>You may copy and distribute a Modified Version of the
- Document under the conditions of sections 2 and 3 above, provided
- that you release the Modified Version under precisely this
- License, with the Modified Version filling the role of the
- Document, thus licensing distribution and modification of the
- Modified Version to whoever possesses a copy of it. In addition,
- you must do these things in the Modified Version:</para>
-
- <orderedlist numeration="upperalpha">
- <listitem><para>Use in the Title Page
- (and on the covers, if any) a title distinct from that of the
- Document, and from those of previous versions (which should, if
- there were any, be listed in the History section of the
- Document). You may use the same title as a previous version if
- the original publisher of that version gives permission.</para>
- </listitem>
-
- <listitem><para>List on the Title Page,
- as authors, one or more persons or entities responsible for
- authorship of the modifications in the Modified Version,
- together with at least five of the principal authors of the
- Document (all of its principal authors, if it has less than
- five).</para>
- </listitem>
-
- <listitem><para>State on the Title page
- the name of the publisher of the Modified Version, as the
- publisher.</para>
- </listitem>
-
- <listitem><para>Preserve all the
- copyright notices of the Document.</para>
- </listitem>
-
- <listitem><para>Add an appropriate
- copyright notice for your modifications adjacent to the other
- copyright notices.</para>
- </listitem>
-
- <listitem><para>Include, immediately
- after the copyright notices, a license notice giving the public
- permission to use the Modified Version under the terms of this
- License, in the form shown in the Addendum below.</para>
- </listitem>
-
- <listitem><para>Preserve in that license
- notice the full lists of Invariant Sections and required Cover
- Texts given in the Document's license notice.</para>
- </listitem>
-
- <listitem><para>Include an unaltered
- copy of this License.</para>
- </listitem>
-
- <listitem><para>Preserve the section
- entitled "History", and its title, and add to it an item stating
- at least the title, year, new authors, and publisher of the
- Modified Version as given on the Title Page. If there is no
- section entitled "History" in the Document, create one stating
- the title, year, authors, and publisher of the Document as given
- on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.</para>
- </listitem>
-
- <listitem><para>Preserve the network
- location, if any, given in the Document for public access to a
- Transparent copy of the Document, and likewise the network
- locations given in the Document for previous versions it was
- based on. These may be placed in the "History" section. You
- may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.</para>
- </listitem>
-
- <listitem><para>In any section entitled
- "Acknowledgements" or "Dedications", preserve the section's
- title, and preserve in the section all the substance and tone of
- each of the contributor acknowledgements and/or dedications
- given therein.</para>
- </listitem>
-
- <listitem><para>Preserve all the
- Invariant Sections of the Document, unaltered in their text and
- in their titles. Section numbers or the equivalent are not
- considered part of the section titles.</para>
- </listitem>
-
- <listitem><para>Delete any section
- entitled "Endorsements". Such a section may not be included in
- the Modified Version.</para>
- </listitem>
-
- <listitem><para>Do not retitle any
- existing section as "Endorsements" or to conflict in title with
- any Invariant Section.</para>
- </listitem>
- </orderedlist>
-
- <para>If the Modified Version includes new front-matter sections
- or appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.</para>
-
- <para>You may add a section entitled "Endorsements", provided it
- contains nothing but endorsements of your Modified Version by
- various parties--for example, statements of peer review or that
- the text has been approved by an organization as the authoritative
- definition of a standard.</para>
-
- <para>You may add a passage of up to five words as a Front-Cover
- Text, and a passage of up to 25 words as a Back-Cover Text, to the
- end of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.</para>
-
- <para>The author(s) and publisher(s) of the Document do not by
- this License give permission to use their names for publicity for
- or to assert or imply endorsement of any Modified Version.</para>
- </sect1>
-
- <sect1 label="5">
- <title>COMBINING DOCUMENTS</title>
-
- <para>You may combine the Document with other documents released
- under this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice.</para>
-
- <para>The combined work need only contain one copy of this
- License, and multiple identical Invariant Sections may be replaced
- with a single copy. If there are multiple Invariant Sections with
- the same name but different contents, make the title of each such
- section unique by adding at the end of it, in parentheses, the
- name of the original author or publisher of that section if known,
- or else a unique number. Make the same adjustment to the section
- titles in the list of Invariant Sections in the license notice of
- the combined work.</para>
-
- <para>In the combination, you must combine any sections entitled
- "History" in the various original documents, forming one section
- entitled "History"; likewise combine any sections entitled
- "Acknowledgements", and any sections entitled "Dedications". You
- must delete all sections entitled "Endorsements."</para>
- </sect1>
-
- <sect1 label="6">
- <title>COLLECTIONS OF DOCUMENTS</title>
-
- <para>You may make a collection consisting of the Document and
- other documents released under this License, and replace the
- individual copies of this License in the various documents with a
- single copy that is included in the collection, provided that you
- follow the rules of this License for verbatim copying of each of
- the documents in all other respects.</para>
-
- <para>You may extract a single document from such a collection,
- and distribute it individually under this License, provided you
- insert a copy of this License into the extracted document, and
- follow this License in all other respects regarding verbatim
- copying of that document.</para>
- </sect1>
-
- <sect1 label="7">
- <title>AGGREGATION WITH INDEPENDENT WORKS</title>
-
- <para>A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, does not as a whole count as a
- Modified Version of the Document, provided no compilation
- copyright is claimed for the compilation. Such a compilation is
- called an "aggregate", and this License does not apply to the
- other self-contained works thus compiled with the Document, on
- account of their being thus compiled, if they are not themselves
- derivative works of the Document.</para>
-
- <para>If the Cover Text requirement of section 3 is applicable to
- these copies of the Document, then if the Document is less than
- one quarter of the entire aggregate, the Document's Cover Texts
- may be placed on covers that surround only the Document within the
- aggregate. Otherwise they must appear on covers around the whole
- aggregate.</para>
- </sect1>
-
- <sect1 label="8">
- <title>TRANSLATION</title>
-
- <para>Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires
- special permission from their copyright holders, but you may
- include translations of some or all Invariant Sections in addition
- to the original versions of these Invariant Sections. You may
- include a translation of this License provided that you also
- include the original English version of this License. In case of
- a disagreement between the translation and the original English
- version of this License, the original English version will
- prevail.</para>
- </sect1>
-
- <sect1 label="9">
- <title>TERMINATION</title>
-
- <para>You may not copy, modify, sublicense, or distribute the
- Document except as expressly provided for under this License. Any
- other attempt to copy, modify, sublicense or distribute the
- Document is void, and will automatically terminate your rights
- under this License. However, parties who have received copies, or
- rights, from you under this License will not have their licenses
- terminated so long as such parties remain in full
- compliance.</para>
- </sect1>
-
- <sect1 label="10">
- <title>FUTURE REVISIONS OF THIS LICENSE</title>
-
- <para>The Free Software Foundation may publish new, revised
- versions of the GNU Free Documentation License from time to time.
- Such new versions will be similar in spirit to the present
- version, but may differ in detail to address new problems or
- concerns. See <ulink
- url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
-
- <para>Each version of the License is given a distinguishing
- version number. If the Document specifies that a particular
- numbered version of this License "or any later version" applies to
- it, you have the option of following the terms and conditions
- either of that specified version or of any later version that has
- been published (not as a draft) by the Free Software Foundation.
- If the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation.</para>
- </sect1>
-
- <sect1 label="">
- <title>How to use this License for your documents</title>
-
- <para>To use this License in a document you have written, include
- a copy of the License in the document and put the following
- copyright and license notices just after the title page:</para>
-
-<blockquote><para>
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-</para></blockquote>
-
- <para>If you have no Invariant Sections, write "with no Invariant
- Sections" instead of saying which ones are invariant. If you have
- no Front-Cover Texts, write "no Front-Cover Texts" instead of
- "Front-Cover Texts being LIST"; likewise for Back-Cover
- Texts.</para>
-
- <para>If your document contains nontrivial examples of program
- code, we recommend releasing these examples in parallel under your
- choice of free software license, such as the GNU General Public
- License, to permit their use in free software.</para>
- </sect1>
-</appendix>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:nil
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-parent-document: ("referenz.sgml" "appendix")
-sgml-exposed-tags:nil
-sgml-local-ecat-files:nil
-sgml-local-catalogs: CATALOG
-sgml-validate-command: "nsgmls -s referenz.sgml"
-ispell-skip-sgml: t
-End:
--->
-</book>
diff --git a/doc/users_guide/utils.sgml b/doc/users_guide/utils.sgml
new file mode 100644
index 0000000..e0fe75c
--- /dev/null
+++ b/doc/users_guide/utils.sgml
@@ -0,0 +1,421 @@
+
+ <chapter><title>Gimp-Print Utilities</title>
+ <sect1><title>escputil</title>
+ <para>
+ <emphasis>escputil</emphasis> is a command line utility which
+allows the user to perform a variety of maintenance tasks on Epson
+Stylus inkjet printers. These tasks include head alignment, head
+cleaning, nozzle check, printer identification, and retrieval of the ink
+level from the printer. In order for many of the
+<emphasis>escputil</emphasis> functions to work, the user must have
+read/write access to the raw printer device (typically /dev/lp0,
+/dev/usb/lp0, and the like). In general, these operations should be
+performed by the root user. As always, the user must insure that the
+directory containing the <emphasis>escputil</emphasis> utility is
+listed in the &dollar;PATH environment variable, or that the full path is
+specified on the command line. The examples in this section will
+assume the former.
+ </para>
+
+ <caution>
+ <title>Caution</title>
+ <para>
+ The <emphasis>escputil</emphasis> utility was designed for use
+ONLY with Epson Stylus inkjet printers supported by the Gimp-Print
+software. It is possible that damage MIGHT occur to your printer if
+this utility is misused or if it is used with a printer other than an
+Epson Stylus inkjet printer. It is the sole responsibility of the
+user to insure that this utility is suitable for the task at hand.
+ </para>
+ </caution>
+
+
+ <para>
+ In this section, specific examples of common usage will be
+presented. A summary of the command line switches can be
+found in the <emphasis>escputil</emphasis>(1) man page.
+ </para>
+
+ <sect2><title>Determining Ink Level</title>
+ <para>
+ Perhaps the most basic function performed by
+<emphasis>escputil</emphasis> is that of determining the amount of ink
+remaining in the printer. To do this, the user must know the name of
+the raw printer device. This is usually /dev/lp0 for a printer
+connected to the parallel port, or /dev/usb/lp0 for a printer
+connected to the USB.
+ </para>
+ <para>
+If there are multiple printers connected, one of them may be referenced as
+/dev/lp1 or perhaps /dev/usb/lp1. In the event of uncertainty, and if
+CUPS is in use, view the following <ulink url="http://localhost:631/printers">URL</ulink>
+with a web browser. At that URL, look for a line which reads "Device
+URI". The author's USB printer is listed as "Device URI: usb:/dev/usb/lp0".
+ </para>
+ <para>
+For this example, assume that the raw printer device is a USB printer
+specified as /dev/usb/lp0. To get the ink level for this printer,
+issue this command and notice the output.
+ </para>
+
+ <programlisting>
+ <![ CDATA [
+# escputil -r /dev/usb/lp0 -i
+
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+ Ink color Percent remaining
+ Black 18
+ Cyan 71
+ Magenta 70
+ Yellow 67
+ Light Cyan 71
+ Light Magenta 70
+ ]]>
+ </programlisting>
+
+ <para>
+The user would substitute their own raw printer device for the one
+shown in the example after the "-r" switch. Notice that the printout
+shows the percent of ink remaining for each color of the author's
+Epson Stylus Photo 870. When the ink levels get too low, print
+quality will suffer. In the author's personal experience, ink levels
+approaching 10% begin to cause print quality degredation, but this
+will vary depending on the precise printer model.
+ </para>
+ </sect2>
+
+ <sect2><title>Error During Ink Level Determination</title>
+ <para>
+ What? The example above did not work? An error message was
+printed? What does it mean? There are several possibilities,
+depending on the specific error message. If the error message is
+"Invalid argument" (see following example), the problem is that the
+kernel is not configured with the CONFIG_PRINTER_READBACK option enabled.
+
+ <programlisting>
+ <![ CDATA [
+# escputil -r /dev/lp0 -i
+
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Cannot read from /dev/lp0: Invalid argument
+ ]]>
+ </programlisting>
+
+ Another possibile cause for error is that the raw printer device
+does not have both read and write permission for the user attempting
+to access the device. In this case, the error message will read
+"Permission denied". A final possibility is that the raw printer
+device specified is incorrect, in which case the error message will
+read "No such device".
+ </para>
+
+ </sect2>
+
+ <sect2><title>Nozzle Check</title>
+ <para>
+ On an inkjet printer, there are several small holes on the
+bottom of each ink cartridge through which the ink must flow smoothly
+in order to create high quality images on paper. If these holes
+become clogged, the printed image will show small gaps where there
+should have been ink. One can easily test for the existence of this
+condition by running a nozzle check. One need not be the root user to
+issue this command. Note that as shown, the command will print a
+nozzle test pattern on the default printer. If there are multiple
+printers present, the desired printer must be specified with an
+additional "-P printer_name" switch, where "printer_name" is the name
+of the desired printer.
+ </para>
+ <para>
+ The printer will print a series of black (and colored) slanted
+lines on the paper. Observe these lines carefully. If there are gaps
+or spaces in these lines, then the corresponding nozzle is clogged and
+the print head must be cleaned. However, if there are no gaps, the
+nozzles are clean.
+ </para>
+ <programlisting>
+ <![ CDATA [
+# escputil -n
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Running nozzle check, please ensure paper is in the printer.
+ ]]>
+ </programlisting>
+ </sect2>
+
+ <sect2><title>Clean the Print Head</title>
+ <para>
+ If the printed output is showing gaps where there should have
+been ink, it is likely that one or more nozzles are clogged and the
+print head is in need of cleaning. One can verify this by first
+running a nozzle check and looking for gaps in the printout. To clean
+the print head, issue the following command. One need not be the root user to
+issue this command. Note that as shown, the command will clean the
+print head on the default printer. If there are multiple
+printers present, the desired printer must be specified with an
+additional "-P printer_name" switch, where "printer_name" is the name
+of the desired printer.
+ </para>
+ <programlisting>
+ <![ CDATA [
+# escputil -c
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Cleaning heads...
+ ]]>
+ </programlisting>
+ <para>
+ Nothing will be printed on the paper. The printer will make
+some noise as it cleans the print head. Wait until the printer is
+finished cleaning the print head. Afterwards, execute another nozzle
+check and insure that the print head is indeed completely clean. Note
+that the process of cleaning the print head causes ink consumption, so
+do not clean the print head any more than necessary.
+ </para>
+ <para>
+For severely clogged nozzles, one may have to execute two or three cycles
+of nozzle check followed by a cleaning of the print head. If the
+printer had gone unused for a long time, the nozzles may be so clogged
+with dried ink as to be unrecoverable, in which case, the best course
+of action is to replace the ink cartridge.
+ </para>
+ </sect2>
+
+ <sect2><title>Align the Print Head</title>
+ <para>
+ To insure the highest quality printouts, the print head must
+be in proper physical alignment. One can check and realign the print
+head by running this interactive alignment test.
+ </para>
+ <para>
+The <emphasis>escputil</emphasis> utility must know the exact printer model in
+use. One may specify the model on the command line using the "-m"
+switch, or the utility can detect the printer model if the user passes
+the "-r" switch and the name of the raw printer device.
+ </para>
+ <para>
+Note that an unprivileged user may use this command with the "-m" switch, but that
+(in general) the root user may only use the "-r" switch (which
+requires read/write access to the raw printer device). In the case of
+multiple printers in use, the "-P" switch is required to align the
+print head on the non-default printer.
+ </para>
+
+ <caution>
+ <title>Caution</title>
+ <para>
+This utility lets you align the print head of your Epson Stylus inkjet
+printer. Misuse of this utility may cause your print quality to degrade
+and possibly damage your printer. This utility has not been reviewed by
+Seiko Epson for correctness, and is offered with no warranty at all. The
+entire risk of using this utility lies with you.
+ </para>
+ </caution>
+
+ <para>
+ Aligning the print head is an interactive process. The utility
+will print out a set of instructions and ask you for responses. Please
+read the instructions carefully and follow them precisely. A single
+sheet of paper will be needed (one can print on both sides to save paper).
+ </para>
+ <para>
+The following example illustrates the alignment process when issued by an
+unprivileged user who specified the printer model on the command
+line. (To obtain a list of printer models, issue the "escputil -M"
+command). Of course, your responses will vary and should be
+substituted for the responses shown in the following example.
+ </para>
+ <programlisting>
+ <![ CDATA [
+
+*** NOTE - 870 is an illustrative example! ***
+*** You MUST use the proper printer model! ***
+*** Run: escputil -M for a listing of ***
+*** supported printer models! ***
+
+linuxpc> escputil -a -m 870
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Please read these instructions very carefully before proceeding.
+
+This utility lets you align the print head of your Epson Stylus
+inkjet printer. Misuse of this utility may cause your print
+quality to degrade and possibly damage your printer. This utility
+has not been reviewed by Seiko Epson for correctness, and is
+offered with no warranty at all. The entire risk of using this
+utility lies with you.
+
+This utility prints 3 test patterns. Each pattern looks very
+similar. The patterns consist of a series of pairs of vertical
+lines that overlap. Below each pair of lines is a number between
+1 and 15.
+
+When you inspect the pairs of lines, you should find the pair
+of lines that is best in alignment, that is, that best forms
+a single vertical line. Inspect the pairs very carefully to
+find the best match. Using a loupe or magnifying glass is
+recommended for the most critical inspection. It is also
+suggested that you use a good quality paper for the test, so
+that the lines are well-formed and do not spread through the
+paper. After picking the number matching the best pair, place
+the paper back in the paper input tray before typing it in.
+
+Each pattern is similar, but later patterns use finer dots for
+more critical alignment. You must run all of the passes to
+correctly align your printer. After running all the alignment
+passes, the alignment patterns will be printed once more. You
+should find that the middle-most pair (#8 out of the 15) is the
+best for all patterns.
+
+After the passes are printed once more, you will be offered the
+choices of (s)aving the result in the printer, (r)epeating the
+process, or (q)uitting without saving. Quitting will not restore
+the previous settings, but powering the printer off and back
+on will. If you quit, you must repeat the entire process if
+you wish to later save the results. It is essential that you
+not turn your printer off during this procedure.
+
+This procedure assumes that your printer is an Epson Stylus Photo
+870. If this is not your printer model, please type control-C now
+and choose your actual printer model.
+
+Please place a sheet of paper in your printer to begin the head
+alignment procedure.
+Press enter to continue >
+Please inspect the print, and choose the best pair of lines in
+each pattern. Type a pair number, '?' for help, or 'r' to repeat
+the procedure.
+Pass #1> 8
+Pass #2> 8
+Pass #3> 8
+Attempting to set alignment...succeeded.
+Please verify that the alignment is correct. After the alignment
+pattern is printed again, please ensure that the best pattern
+for each line is pattern 8. If it is not, you should repeat the
+process to get the best quality printing.
+Please insert a fresh sheet of paper.
+Press enter to continue >
+Please inspect the final output very carefully to ensure that your
+printer is in proper alignment. You may now:
+ (s)ave the results in the printer,
+ (q)uit without saving the results, or
+ (r)epeat the entire process from the beginning.
+You will then be asked to confirm your choice.
+What do you want to do (s, q, r)?
+> s
+This will permanently alter the configuration of your printer.
+WARNING: this procedure has not been approved by Seiko Epson,
+and it may damage your printer. Proceed?
+Please confirm by typing 's' again that you wish to save the
+settings to your printer:
+> s
+About to save settings...succeeded!
+Your alignment settings have been saved to the printer.
+ ]]>
+ </programlisting>
+ <para>
+ The following example shows what will happen if an unprivileged
+user attempts to align the print head by specifying the raw printer
+device on the command line.
+ </para>
+
+ <programlisting>
+ <![ CDATA [
+linuxpc> escputil -a -r /dev/usb/lp0
+Escputil version 4.2.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Attempting to detect printer model...
+Cannot open /dev/usb/lp0 read/write: Permission denied
+ ]]>
+ </programlisting>
+
+ <para>
+ This next example illustrates the results obtained when the root
+user issues an alignment command while specifying the raw printer
+device. Note that the output is truncated and only shows the printer
+detection output.
+ </para>
+
+ <programlisting>
+ <![ CDATA [
+# escputil -a -r /dev/usb/lp0
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+Attempting to detect printer model...Stylus Photo 870
+
+Please read these instructions very carefully before proceeding.
+ ]]>
+ </programlisting>
+
+ </sect2>
+
+ <sect2><title>Printer Identification</title>
+ <para>
+ The printer identification command will query the printer for
+make and model information. This command requires read/write access
+to the raw printer device (generally limited to the root user).
+Substitute your own raw printer device in place of the /dev/usb/lp0
+shown in the example. The output will vary depending on the precise
+printer model.
+ </para>
+
+ <programlisting>
+ <![ CDATA [
+# escputil -d -r /dev/usb/lp0
+Escputil version 4.3.0, Copyright (C) 2000-2001 Robert Krawitz
+Escputil comes with ABSOLUTELY NO WARRANTY; for details type
+'escputil -l'
+This is free software, and you are welcome to redistribute it
+under certain conditions; type 'escputil -l' for details.
+
+@EJL ID
+MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylus Photo 870;CLS:PRINTER;DES:
+EPSON Stylus Photo 870;
+ ]]>
+ </programlisting>
+
+ </sect2>
+
+ <sect2><title>More Information</title>
+ <para>
+ For more detailed information about the command line switches
+accepted by the <emphasis>escputil</emphasis> utility, please consult
+the man page which is supplied with the Gimp-Print software. The user
+may also issue the "escputil --help" command to get a listing of supported
+command line switches. The command requires no special privileges to execute.
+ </para>
+
+ </sect2>
+
+ </sect1>
+
+ </chapter>
diff --git a/doc/version.texi b/doc/version.texi
new file mode 100644
index 0000000..e9a4321
--- /dev/null
+++ b/doc/version.texi
@@ -0,0 +1,3 @@
+@set UPDATED 27 October 2001
+@set EDITION 4.2.7
+@set VERSION 4.2.7
diff --git a/gimp.m4 b/gimp.m4
deleted file mode 100644
index 6d33a2e..0000000
--- a/gimp.m4
+++ /dev/null
@@ -1,211 +0,0 @@
-# Configure paths for GIMP
-# Manish Singh 98-6-11
-# Shamelessly stolen from Owen Taylor
-
-dnl AM_PATH_GIMP([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for GIMP, and define GIMP_CFLAGS and GIMP_LIBS
-dnl
-AC_DEFUN(AM_PATH_GIMP,
-[dnl
-dnl Get the cflags and libraries from the gimptool script
-dnl
-AC_ARG_WITH(gimp-prefix,[ --with-gimp-prefix=PFX Prefix where GIMP is installed (optional)],
- gimptool_prefix="$withval", gimptool_prefix="")
-AC_ARG_WITH(gimp-exec-prefix,[ --with-gimp-exec-prefix=PFX Exec prefix where GIMP is installed (optional)],
- gimptool_exec_prefix="$withval", gimptool_exec_prefix="")
-AC_ARG_ENABLE(gimptest, [ --disable-gimptest Do not try to compile and run a test GIMP program],
- , enable_gimptest=yes)
-
- if test x$gimptool_exec_prefix != x ; then
- gimptool_args="$gimptool_args --exec-prefix=$gimptool_exec_prefix"
- if test x${GIMPTOOL+set} != xset ; then
- GIMPTOOL=$gimptool_exec_prefix/bin/gimptool
- fi
- fi
- if test x$gimptool_prefix != x ; then
- gimptool_args="$gimptool_args --prefix=$gimptool_prefix"
- if test x${GIMPTOOL+set} != xset ; then
- GIMPTOOL=$gimptool_prefix/bin/gimptool
- fi
- fi
-
- AC_PATH_PROG(GIMPTOOL, gimptool, no)
- min_gimp_version=ifelse([$1], ,1.0.0,$1)
- AC_MSG_CHECKING(for GIMP - version >= $min_gimp_version)
- no_gimp=""
- if test "$GIMPTOOL" = "no" ; then
- no_gimp=yes
- else
- GIMP_CFLAGS=`$GIMPTOOL $gimptool_args --cflags`
- GIMP_LIBS=`$GIMPTOOL $gimptool_args --libs`
-
- GIMP_CFLAGS_NOUI=`$GIMPTOOL $gimptool_args --cflags-noui`
- noui_test=`echo $GIMP_CFLAGS_NOUI | sed 's/^\(Usage\).*/\1/'`
- if test "$noui_test" = "Usage" ; then
- GIMP_CFLAGS_NOUI=$GIMP_CFLAGS
- GIMP_LIBS_NOUI=$GIMP_LIBS
- else
- GIMP_LIBS_NOUI=`$GIMPTOOL $gimptool_args --libs-noui`
- fi
-
- GIMP_DATA_DIR=`$GIMPTOOL $gimptool_args --gimpdatadir`
- GIMP_PLUGIN_DIR=`$GIMPTOOL $gimptool_args --gimpplugindir`
- nodatadir_test=`echo $GIMP_DATA_DIR | sed 's/^\(Usage\).*/\1/'`
- if test "$nodatadir_test" = "Usage" ; then
- GIMP_DATA_DIR=""
- GIMP_PLUGIN_DIR=""
- fi
-
- gimptool_major_version=`$GIMPTOOL $gimptool_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
- gimptool_minor_version=`$GIMPTOOL $gimptool_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- gimptool_micro_version=`$GIMPTOOL $gimptool_args --version | \
- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
- if test "x$enable_gimptest" = "xyes" ; then
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $GIMP_CFLAGS"
- LIBS="$LIBS $GIMP_LIBS"
-dnl
-dnl Now check if the installed GIMP is sufficiently new. (Also sanity
-dnl checks the results of gimptool to some extent
-dnl
- rm -f conf.gimptest
- AC_TRY_RUN([
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <libgimp/gimp.h>
-
-#ifndef GIMP_CHECK_VERSION
-#define GIMP_CHECK_VERSION(major, minor, micro) \
- (GIMP_MAJOR_VERSION > (major) || \
- (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
- (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
- GIMP_MICRO_VERSION >= (micro)))
-#endif
-
-#if GIMP_CHECK_VERSION(1,1,20)
-GimpPlugInInfo
-#else
-GPlugInInfo
-#endif
-PLUG_IN_INFO =
-{
- NULL, /* init_proc */
- NULL, /* quit_proc */
- NULL, /* query_proc */
- NULL /* run_proc */
-};
-
-int main ()
-{
- int major, minor, micro;
- char *tmp_version;
-
- system ("touch conf.gimptest");
-
- /* HP/UX 9 (%@#!) writes to sscanf strings */
- tmp_version = g_strdup("$min_gimp_version");
- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
- printf("%s, bad version string\n", "$min_gimp_version");
- exit(1);
- }
-
- if (($gimptool_major_version > major) ||
- (($gimptool_major_version == major) && ($gimptool_minor_version > minor)) ||
- (($gimptool_major_version == major) && ($gimptool_minor_version == minor) && ($gimptool_micro_version >= micro)))
- {
- return 0;
- }
- else
- {
- printf("\n*** 'gimptool --version' returned %d.%d.%d, but the minimum version\n", $gimptool_major_version, $gimptool_minor_version, $gimptool_micro_version);
- printf("*** of GIMP required is %d.%d.%d. If gimptool is correct, then it is\n", major, minor, micro);
- printf("*** best to upgrade to the required version.\n");
- printf("*** If gimptool was wrong, set the environment variable GIMPTOOL\n");
- printf("*** to point to the correct copy of gimptool, and remove the file\n");
- printf("*** config.cache before re-running configure\n");
- return 1;
- }
-}
-
-],, no_gimp=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- if test "x$no_gimp" = x ; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
- else
- AC_MSG_RESULT(no)
- if test "$GIMPTOOL" = "no" ; then
- echo "*** The gimptool script installed by GIMP could not be found"
- echo "*** If GIMP was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the GIMPTOOL environment variable to the"
- echo "*** full path to gimptool."
- else
- if test -f conf.gimptest ; then
- :
- else
- echo "*** Could not run GIMP test program, checking why..."
- CFLAGS="$CFLAGS $GIMP_CFLAGS"
- LIBS="$LIBS $GIMP_LIBS"
- AC_TRY_LINK([
-#include <stdio.h>
-#include <libgimp/gimp.h>
-
-#ifndef GIMP_CHECK_VERSION
-#define GIMP_CHECK_VERSION(major, minor, micro) \
- (GIMP_MAJOR_VERSION > (major) || \
- (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION > (minor)) || \
- (GIMP_MAJOR_VERSION == (major) && GIMP_MINOR_VERSION == (minor) && \
- GIMP_MICRO_VERSION >= (micro)))
-#endif
-
-#if GIMP_CHECK_VERSION(1,1,20)
-GimpPlugInInfo
-#else
-GPlugInInfo
-#endif
-PLUG_IN_INFO =
-{
- NULL, /* init_proc */
- NULL, /* quit_proc */
- NULL, /* query_proc */
- NULL /* run_proc */
-};
-], [ return 0; ],
- [ echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding GIMP or finding the wrong"
- echo "*** version of GIMP. If it is not finding GIMP, you'll need to set your"
- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
- echo "*** to the installed location Also, make sure you have run ldconfig if that"
- echo "*** is required on your system"
- echo "***"
- echo "*** If you have an old version installed, it is best to remove it, although"
- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
- [ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means GIMP was incorrectly installed"
- echo "*** or that you have moved GIMP since it was installed. In the latter case, you"
- echo "*** may want to edit the gimptool script: $GIMPTOOL" ])
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
- fi
- GIMP_CFLAGS=""
- GIMP_LIBS=""
- GIMP_CFLAGS_NOUI=""
- GIMP_LIBS_NOUI=""
- ifelse([$3], , :, [$3])
- fi
- AC_SUBST(GIMP_CFLAGS)
- AC_SUBST(GIMP_LIBS)
- AC_SUBST(GIMP_CFLAGS_NOUI)
- AC_SUBST(GIMP_LIBS_NOUI)
- AC_SUBST(GIMP_DATA_DIR)
- AC_SUBST(GIMP_PLUGIN_DIR)
- rm -f conf.gimptest
-])
diff --git a/include/.cvsignore b/include/.cvsignore
deleted file mode 100644
index 3dda729..0000000
--- a/include/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile.in
-Makefile
diff --git a/include/Makefile.in b/include/Makefile.in
new file mode 100644
index 0000000..bbc1e23
--- /dev/null
+++ b/include/Makefile.in
@@ -0,0 +1,407 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+SUBDIRS = gimp-print
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps include/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = include
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
+ done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am: clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am: distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/gimp-print/.cvsignore b/include/gimp-print/.cvsignore
deleted file mode 100644
index 3f71c59..0000000
--- a/include/gimp-print/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile
-Makefile.in
-gimp-print.h
diff --git a/include/gimp-print/Makefile.am b/include/gimp-print/Makefile.am
index a174cbb..1a79e13 100644
--- a/include/gimp-print/Makefile.am
+++ b/include/gimp-print/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.2 2001/09/08 17:05:27 rleigh Exp $
+## $Id: Makefile.am,v 1.2.6.1 2003/07/12 20:47:44 rleigh Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -28,7 +28,7 @@ MAINT_CHARSET = latin1
noinst_HEADERS = gimp-print-intl.h gimp-print-intl-internal.h
-pkginclude_HEADERS = @GIMP_PRINT_H@
+pkginclude_HEADERS = gimp-print.h
EXTRA_HEADERS = gimp-print.h.in
diff --git a/include/gimp-print/Makefile.in b/include/gimp-print/Makefile.in
new file mode 100644
index 0000000..861d1dd
--- /dev/null
+++ b/include/gimp-print/Makefile.in
@@ -0,0 +1,357 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+noinst_HEADERS = gimp-print-intl.h gimp-print-intl-internal.h
+
+pkginclude_HEADERS = gimp-print.h
+
+EXTRA_HEADERS = gimp-print.h.in
+
+DISTCLEANFILES = gimp-print.h
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = gimp-print.h
+HEADERS = $(noinst_HEADERS) $(pkginclude_HEADERS)
+
+DIST_COMMON = Makefile.am Makefile.in gimp-print.h.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps include/gimp-print/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+gimp-print.h: $(top_builddir)/config.status gimp-print.h.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+install-pkgincludeHEADERS: $(pkginclude_HEADERS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(pkgincludedir)
+ @list='$(pkginclude_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
+ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgincludedir)/$$p"; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgincludedir)/$$p; \
+ done
+
+uninstall-pkgincludeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ list='$(pkginclude_HEADERS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(pkgincludedir)/$$p; \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = include/gimp-print
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-pkgincludeHEADERS
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-pkgincludeHEADERS
+uninstall: uninstall-am
+all-am: Makefile $(HEADERS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(pkgincludedir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: uninstall-pkgincludeHEADERS install-pkgincludeHEADERS tags \
+mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
+distdir info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-am install-data \
+install-am install uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/gimp-print/gimp-print-intl-internal.h b/include/gimp-print/gimp-print-intl-internal.h
index 0b52e47..5c1722e 100644
--- a/include/gimp-print/gimp-print-intl-internal.h
+++ b/include/gimp-print/gimp-print-intl-internal.h
@@ -1,5 +1,5 @@
/*
- * "$Id$"
+ * "$Id: gimp-print-intl-internal.h,v 1.1 2001/09/08 17:05:27 rleigh Exp $"
*
* I18N header file for the gimp-print.
*
diff --git a/include/gimp-print/gimp-print.h b/include/gimp-print/gimp-print.h
new file mode 100644
index 0000000..589a166
--- /dev/null
+++ b/include/gimp-print/gimp-print.h
@@ -0,0 +1,598 @@
+/*
+ * $Id: gimp-print.h.in,v 1.8.2.1 2002/12/08 21:12:33 rlk Exp $
+ *
+ * Print plug-in header file for the GIMP.
+ *
+ * Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
+ * Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revision History:
+ *
+ * See ChangeLog
+ */
+
+/*
+ * This file must include only standard C header files. The core code must
+ * compile on generic platforms that don't support glib, gimp, gtk, etc.
+ */
+
+#ifndef __GIMP_PRINT_H__
+#define __GIMP_PRINT_H__
+
+/*
+ * Include necessary header files...
+ */
+
+#include <stddef.h> /* For size_t */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Library versioning details
+ */
+
+/*
+ * compile-time version
+ */
+#define GIMPPRINT_MAJOR_VERSION (4)
+#define GIMPPRINT_MINOR_VERSION (2)
+#define GIMPPRINT_MICRO_VERSION (7)
+#define GIMPPRINT_CURRENT_INTERFACE (2)
+#define GIMPPRINT_BINARY_AGE (1)
+#define GIMPPRINT_INTERFACE_AGE (3)
+#define GIMPPRINT_CHECK_VERSION(major,minor,micro) \
+ (GIMPPRINT_MAJOR_VERSION > (major) || \
+ (GIMPPRINT_MAJOR_VERSION == (major) && GIMPPRINT_MINOR_VERSION > (minor)) || \
+ (GIMPPRINT_MAJOR_VERSION == (major) && GIMPPRINT_MINOR_VERSION == (minor) && \
+ GIMPPRINT_MICRO_VERSION >= (micro)))
+
+extern const unsigned int gimpprint_major_version;
+extern const unsigned int gimpprint_minor_version;
+extern const unsigned int gimpprint_micro_version;
+extern const unsigned int gimpprint_current_interface;
+extern const unsigned int gimpprint_binary_age;
+extern const unsigned int gimpprint_interface_age;
+extern const char* stp_check_version (unsigned int required_major,
+ unsigned int required_minor,
+ unsigned int required_micro);
+
+
+/*
+ * Constants...
+ */
+
+#define OUTPUT_GRAY 0 /* Grayscale output */
+#define OUTPUT_COLOR 1 /* Color output */
+#define OUTPUT_MONOCHROME 2 /* Raw monochrome output */
+#define OUTPUT_RAW_CMYK 3 /* Raw CMYK output */
+
+#define ORIENT_AUTO -1 /* Best orientation */
+#define ORIENT_PORTRAIT 0 /* Portrait orientation */
+#define ORIENT_LANDSCAPE 1 /* Landscape orientation */
+#define ORIENT_UPSIDEDOWN 2 /* Reverse portrait orientation */
+#define ORIENT_SEASCAPE 3 /* Reverse landscape orientation */
+
+#define IMAGE_LINE_ART 0
+#define IMAGE_SOLID_TONE 1
+#define IMAGE_CONTINUOUS 2
+#define NIMAGE_TYPES 3
+
+#define COLOR_MODEL_RGB 0
+#define COLOR_MODEL_CMY 1
+#define NCOLOR_MODELS 2
+
+/*
+ * Printer driver control structure. See "print.c" for the actual list...
+ */
+
+typedef enum stp_papersize_unit
+{
+ PAPERSIZE_ENGLISH,
+ PAPERSIZE_METRIC
+} stp_papersize_unit_t;
+
+typedef enum
+{
+ STP_JOB_MODE_PAGE,
+ STP_JOB_MODE_JOB
+} stp_job_mode_t;
+
+typedef enum stp_image_status
+{
+ STP_IMAGE_OK,
+ STP_IMAGE_ABORT
+} stp_image_status_t;
+
+/*
+ * Abstract data type for interfacing with the image creation program
+ * (in this case, the Gimp).
+ *
+ * The image layer need not implement transpose(), hflip(), vflip(),
+ * crop(), rotate_ccw(), rotate_cw(), and rotate_180() if it does not
+ * require that functionality or implements it internally. This
+ * functionality will likely be dropped in future releases.
+ *
+ * The image layer must implement all of the other members. The
+ * progress_init(), note_progress(), and progress_conclude() members
+ * are used to enable the image layer to deliver notification of
+ * progress to the user. It is likely that these functions will be
+ * dropped in the future, and if desired must be implemented in
+ * get_row().
+ *
+ * get_appname() should return the name of the application. This is
+ * embedded in the output by some drivers.
+ *
+ * width() and height() return the dimensions of the image in pixels.
+ *
+ * bpp(), or bytes per pixel, is used in combination with the output type
+ * and presence of a color map, if supplied, to determine the format
+ * of the input:
+ *
+ * Output_type is OUTPUT_MONOCHROME, OUTPUT_COLOR, or OUTPUT_GRAY:
+ *
+ * bpp No color map Color map present
+ * 1 grayscale indexed color (256 colors)
+ * 2 grayscale w/alpha indexed color w/alpha
+ * 3 RGB N/A
+ * 4 N/A RGB w/alpha (RGBA)
+ *
+ * Output_type is OUTPUT_CMYK:
+ *
+ * bpp No color map Color map present
+ * 4 8 bits/plane CMYK N/A
+ * 8 16 bits/plane CMYK N/A
+ *
+ * init() is used to perform any initialization required by the image
+ * layer for the image. It will be called once per image. reset() is
+ * called to reset the image to the beginning. It may (in principle)
+ * be called multiple times if a page is being printed more than once.
+ * The reset() call may be removed in the future.
+ *
+ * get_row() transfers the data from the image to the gimp-print
+ * library. It is called from the driver layer. It should copy WIDTH
+ * (as returned by the width() member) pixels of data into the data
+ * buffer. It normally returns STP_IMAGE_OK; if something goes wrong,
+ * or the application wishes to stop producing any further output
+ * (e. g. because the user cancelled the print job), it should return
+ * STP_IMAGE_ABORT. This will cause the driver to flush any remaining
+ * data to the output. It will always request rows in monotonically
+ * ascending order, but it may skip rows (if, for example, the
+ * resolution of the input is higher than the resolution of the
+ * output).
+ */
+
+typedef struct stp_image
+{
+ void (*init)(struct stp_image *image);
+ void (*reset)(struct stp_image *image);
+ void (*transpose)(struct stp_image *image);
+ void (*hflip)(struct stp_image *image);
+ void (*vflip)(struct stp_image *image);
+ void (*crop)(struct stp_image *image,
+ int left, int top, int right, int bottom);
+ void (*rotate_ccw)(struct stp_image *image);
+ void (*rotate_cw)(struct stp_image *image);
+ void (*rotate_180)(struct stp_image *image);
+ int (*bpp)(struct stp_image *image);
+ int (*width)(struct stp_image *image);
+ int (*height)(struct stp_image *image);
+ stp_image_status_t (*get_row)(struct stp_image *image, unsigned char *data,
+ int row);
+ const char *(*get_appname)(struct stp_image *image);
+ void (*progress_init)(struct stp_image *image);
+ void (*note_progress)(struct stp_image *image, double current, double total);
+ void (*progress_conclude)(struct stp_image *image);
+ void *rep;
+} stp_image_t;
+
+/*
+ * Definition of a printer. A printer definition contains some data
+ * about the printer and a set of member functions that operate on it.
+ *
+ * The data members are:
+ *
+ * long_name is a human-readable name. It is intended to be used by
+ * a user interface to print the name of the printer.
+ *
+ * driver is the short name of the printer. This is an alternate name
+ * that is used internally. A user interface may use this for input
+ * purposes, or a client program may use this to generate a filename.
+ * The driver name should consist of lowercase alphanumerics and hyphens
+ * only.
+ *
+ * model is a model number used only by the underlying driver. It is
+ * treated as an opaque, but static, identifier. It should not be a
+ * pointer value, but the exact interpretation of the model number
+ * is up to the driver implementation (it may be an index into an
+ * array, for example).
+ *
+ * printvars is the default settings for this printer.
+ *
+ * The member functions are:
+ *
+ * char **(*parameters)(const stp_printer_t printer,
+ * char *ppd_file,
+ * char *name,
+ * int *count)
+ *
+ * returns a list of option values of the specified parameter NAME
+ * for the specified PRINTER. If a PPD filename is specified, the driver
+ * may use that to help generate the valid parameter list. The number
+ * of options returned is placed in COUNT. Both the array and the
+ * options themselves are allocated on the heap; it is the caller's
+ * responsibility to free them upon completion of use. The driver
+ * must therefore return a copy of data.
+ *
+ * In all cases, the returned option names should be appropriate for a
+ * user interface to display.
+ *
+ * The list of parameters is subject to change. The currently supported
+ * parameters are:
+ *
+ * PageSize returns a list of legal page size names for the printer
+ * in question.
+ *
+ * Resolution returns a list of valid resolution settings. The
+ * resolutions are to be interpreted as opaque names; the caller
+ * must not attempt to interpret them except with the
+ * describe_resolution function described below. There may be
+ * multiple resolution names that resolve to the same printing
+ * resolution; they may correspond to different quality settings,
+ * for example.
+ *
+ * InkType returns a list of legal ink types. The printer driver may
+ * define these as it sees fit. If a printer offers a choice of
+ * ink cartridges, the choices would be enumerated here.
+ *
+ * MediaType returns a list of legal media types. The printer driver
+ * may define these as it sees fit. This is normally different kinds
+ * of paper that the printer can handle.
+ *
+ * InputSlot returns a list of legal input sources for the printer.
+ * This is typically things like different input trays, manual feed,
+ * roll feed, and the like.
+ *
+ * void (*media_size)(const stp_printer_t printer,
+ * const stp_vars_t v,
+ * int *width,
+ * int *height)
+ *
+ * returns the physical WIDTH and HEIGHT of the page using the settings
+ * in V. The driver will almost always look at the media_size variable
+ * in V; it may look at other data in V to determine the physical page
+ * size. WIDTH and HEIGHT are expressed in units of 1/72".
+ *
+ * void (*imageable_area)(const stp_printer_t printer,
+ * const stp_vars_t v,
+ * int *left,
+ * int *right,
+ * int *bottom,
+ * int *top)
+ *
+ * returns the width of the LEFT, RIGHT, BOTTOM, and TOP border of the
+ * page for the given printer and variable settings. The caller can
+ * use this, in combination with the media_size member, to determine
+ * the printable region of the page, and if needed, exactly where to
+ * place the image to achieve a given physical placement (e. g.
+ * centering) on the page. All returned values are in units of
+ * 1/72".
+ *
+ * void (*limit)(const stp_printer_t printer,
+ * const stp_vars_t v,
+ * int *width,
+ * int *height)
+ *
+ * returns the maximum page size the printer can handle, in units of
+ * 1/72".
+ *
+ * void (*print)(const stp_printer_t printer,
+ * stp_image_t *image,
+ * const stp_vars_t v)
+ *
+ * prints a page. The variable settings provided in V are used to control
+ * the printing; PRN is a file pointer that the raw printer output
+ * is to be written to, and IMAGE is an object that sources the input
+ * data to the driver (the contents of which are opaque to the low level
+ * driver and are interpreted by the high level program).
+ *
+ * const char *(*default_resolution)(const stp_printer_t printer)
+ *
+ * returns the name of the default resolution for the printer. The
+ * caller must not attempt to free the returned value.
+ *
+ * void (*describe_resolution)(const stp_printer_t printer,
+ * const char *resolution,
+ * int *x,
+ * int *y)
+ *
+ * returns the horizontal (X) and vertical (Y) resolution of the chosen
+ * RESOLUTION name. The high level program may choose to use this to
+ * rasterize at an appropriate resolution.
+ *
+ */
+
+typedef void *stp_printer_t;
+typedef void *stp_vars_t;
+typedef void *stp_papersize_t;
+typedef struct
+{
+ const char *name, /* Option name */
+ *text; /* Human-readable (translated) text */
+} stp_param_t;
+
+typedef void (*stp_outfunc_t) (void *data, const char *buffer, size_t bytes);
+
+typedef struct
+{
+ stp_param_t *(*parameters)(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name, int *count);
+ void (*media_size)(const stp_printer_t printer, const stp_vars_t v,
+ int *width, int *height);
+ void (*imageable_area)(const stp_printer_t printer,
+ const stp_vars_t v,
+ int *left, int *right, int *bottom, int *top);
+ void (*limit)(const stp_printer_t printer, const stp_vars_t v,
+ int *max_width, int *max_height,
+ int *min_width, int *min_height);
+ void (*print)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+ const char *(*default_parameters)(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name);
+ void (*describe_resolution)(const stp_printer_t printer,
+ const char *resolution, int *x, int *y);
+ int (*verify)(const stp_printer_t p, const stp_vars_t v);
+ int (*start_job)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+ int (*end_job)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+} stp_printfuncs_t;
+
+/*
+ * stp_init() must be called prior to any other use of the library.
+ */
+extern int stp_init (void);
+
+extern const char * stp_printer_get_long_name (const stp_printer_t p);
+extern const char * stp_printer_get_driver (const stp_printer_t p);
+extern int stp_printer_get_model (const stp_printer_t p);
+extern const stp_printfuncs_t *stp_printer_get_printfuncs(const stp_printer_t);
+extern const stp_vars_t stp_printer_get_printvars (const stp_printer_t p);
+extern void stp_set_printer_defaults(stp_vars_t, const stp_printer_t,
+ const char *ppd_file);
+
+extern stp_vars_t stp_allocate_vars (void);
+extern void stp_copy_vars (stp_vars_t vd, const stp_vars_t vs);
+extern stp_vars_t stp_allocate_copy (const stp_vars_t vs);
+
+extern void stp_free_vars (stp_vars_t vv);
+
+extern void stp_set_output_to (stp_vars_t vv, const char *val);
+extern void stp_set_driver (stp_vars_t vv, const char *val);
+extern void stp_set_ppd_file (stp_vars_t vv, const char *val);
+extern void stp_set_resolution (stp_vars_t vv, const char *val);
+extern void stp_set_media_size (stp_vars_t vv, const char *val);
+extern void stp_set_media_type (stp_vars_t vv, const char *val);
+extern void stp_set_media_source (stp_vars_t vv, const char *val);
+extern void stp_set_ink_type (stp_vars_t vv, const char *val);
+extern void stp_set_dither_algorithm (stp_vars_t vv, const char *val);
+
+/*
+ * The _n variants are used for strings that are not null-delimited.
+ */
+extern void stp_set_output_to_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_driver_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_ppd_file_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_resolution_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_media_size_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_media_type_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_media_source_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_ink_type_n (stp_vars_t vv, const char *val,
+ int bytes);
+extern void stp_set_dither_algorithm_n (stp_vars_t vv, const char *val,
+ int bytes);
+
+extern void stp_set_output_type (stp_vars_t vv, int val);
+extern void stp_set_orientation (stp_vars_t vv, int val);
+extern void stp_set_left (stp_vars_t vv, int val);
+extern void stp_set_top (stp_vars_t vv, int val);
+extern void stp_set_image_type (stp_vars_t vv, int val);
+extern void stp_set_unit (stp_vars_t vv, int val);
+extern void stp_set_page_width (stp_vars_t vv, int val);
+extern void stp_set_page_height (stp_vars_t vv, int val);
+
+/*
+ * Input color model refers to how the data is being sent to the
+ * driver library; the default is RGB. Output color model refers to
+ * the characteristics of the device; the default is CMYK. The output
+ * color model is set by the printer driver and cannot be overridden.
+ * It is provided to permit applications to generate previews using
+ * the color machinery in Gimp-Print. If this is done, normally
+ * the output color model will be RGB.
+ */
+extern void stp_set_input_color_model (stp_vars_t vv, int val);
+extern void stp_set_output_color_model (stp_vars_t vv, int val);
+
+extern void stp_set_brightness (stp_vars_t vv, float val);
+extern void stp_set_scaling (stp_vars_t vv, float val);
+extern void stp_set_gamma (stp_vars_t vv, float val);
+extern void stp_set_contrast (stp_vars_t vv, float val);
+extern void stp_set_cyan (stp_vars_t vv, float val);
+extern void stp_set_magenta (stp_vars_t vv, float val);
+extern void stp_set_yellow (stp_vars_t vv, float val);
+extern void stp_set_saturation (stp_vars_t vv, float val);
+extern void stp_set_density (stp_vars_t vv, float val);
+
+/*
+ * Application gamma is used to initially correct the input data
+ * for the application's characteristics. This cannot be done by the
+ * application (except in 16-bit CMYK mode) without losing data.
+ */
+extern void stp_set_app_gamma (stp_vars_t vv, float val);
+
+/*
+ * Please see the source in print-color.c for an explanation of this.
+ */
+extern void stp_set_lut (stp_vars_t vv, void * val);
+
+/*
+ * For use with indexed color: the LUT should be an array of 256
+ * RGB values.
+ */
+extern void stp_set_cmap (stp_vars_t vv, unsigned char * val);
+
+/*
+ * These functions are used to print output and diagnostic information
+ * respectively. These must be supplied by the caller.
+ */
+extern void stp_set_outfunc (const stp_vars_t vv, stp_outfunc_t val);
+extern void stp_set_errfunc (const stp_vars_t vv, stp_outfunc_t val);
+extern void stp_set_outdata (stp_vars_t vv, void * val);
+extern void stp_set_errdata (stp_vars_t vv, void * val);
+
+extern const char * stp_get_output_to (const stp_vars_t vv);
+extern const char * stp_get_driver (const stp_vars_t vv);
+extern const char * stp_get_ppd_file (const stp_vars_t vv);
+extern const char * stp_get_resolution (const stp_vars_t vv);
+extern const char * stp_get_media_size (const stp_vars_t vv);
+extern const char * stp_get_media_type (const stp_vars_t vv);
+extern const char * stp_get_media_source (const stp_vars_t vv);
+extern const char * stp_get_ink_type (const stp_vars_t vv);
+extern const char * stp_get_dither_algorithm (const stp_vars_t vv);
+extern int stp_get_output_type (const stp_vars_t vv);
+extern int stp_get_orientation (const stp_vars_t vv);
+extern int stp_get_left (const stp_vars_t vv);
+extern int stp_get_top (const stp_vars_t vv);
+extern int stp_get_image_type (const stp_vars_t vv);
+extern int stp_get_unit (const stp_vars_t vv);
+extern int stp_get_page_width (const stp_vars_t vv);
+extern int stp_get_page_height (const stp_vars_t vv);
+extern int stp_get_input_color_model (const stp_vars_t vv);
+extern int stp_get_output_color_model (const stp_vars_t vv);
+extern float stp_get_brightness (const stp_vars_t vv);
+extern float stp_get_scaling (const stp_vars_t vv);
+extern float stp_get_gamma (const stp_vars_t vv);
+extern float stp_get_contrast (const stp_vars_t vv);
+extern float stp_get_cyan (const stp_vars_t vv);
+extern float stp_get_magenta (const stp_vars_t vv);
+extern float stp_get_yellow (const stp_vars_t vv);
+extern float stp_get_saturation (const stp_vars_t vv);
+extern float stp_get_density (const stp_vars_t vv);
+extern float stp_get_app_gamma (const stp_vars_t vv);
+extern void * stp_get_lut (const stp_vars_t vv);
+extern stp_outfunc_t stp_get_outfunc (const stp_vars_t vv);
+extern stp_outfunc_t stp_get_errfunc (const stp_vars_t vv);
+extern void * stp_get_outdata (const stp_vars_t vv);
+extern void * stp_get_errdata (const stp_vars_t vv);
+extern unsigned char * stp_get_cmap (const stp_vars_t vv);
+
+
+/*
+ * hue_map is an array of 49 doubles representing the mapping of hue
+ * from (0..6) to (0..6) in increments of .125. The hue_map is in CMY space,
+ * so hue=0 is cyan. Interpolation between values is linear.
+ *
+ * lum_map and sat_map are correction factors for luminosity and saturation
+ * respectively. Both of these are inverse exponential. The degree of
+ * luminosity correction is scaled by the saturation of the particular
+ * pixel. This is likely to change drastically in the future.
+ */
+typedef void (*stp_convert_t) (const stp_vars_t vars, const unsigned char *in,
+ unsigned short *out, int *zero_mask,
+ int width, int bpp, const unsigned char *cmap,
+ const double *hue_map, const double *lum_map,
+ const double *sat_map);
+
+extern void stp_merge_printvars (stp_vars_t user, const stp_vars_t print);
+
+extern size_t stp_dither_algorithm_count (void);
+extern const char * stp_dither_algorithm_name (int id);
+extern const char * stp_dither_algorithm_text (int id);
+extern const char * stp_default_dither_algorithm (void);
+
+extern int stp_known_papersizes (void);
+extern const stp_papersize_t stp_get_papersize_by_name (const char *name);
+extern const stp_papersize_t stp_get_papersize_by_size (int l, int w);
+extern const stp_papersize_t stp_get_papersize_by_index (int index);
+extern const char * stp_papersize_get_name (const stp_papersize_t pt);
+extern const char * stp_papersize_get_text (const stp_papersize_t pt);
+extern unsigned stp_papersize_get_width (const stp_papersize_t pt);
+extern unsigned stp_papersize_get_height (const stp_papersize_t pt);
+extern unsigned stp_papersize_get_top (const stp_papersize_t pt);
+extern unsigned stp_papersize_get_left (const stp_papersize_t pt);
+extern unsigned stp_papersize_get_bottom (const stp_papersize_t pt);
+extern unsigned stp_papersize_get_right (const stp_papersize_t pt);
+extern stp_papersize_unit_t stp_papersize_get_unit (const stp_papersize_t pt);
+
+extern void stp_set_job_mode(stp_vars_t, stp_job_mode_t);
+extern stp_job_mode_t stp_get_job_mode(const stp_vars_t);
+extern void stp_set_page_number(stp_vars_t, int);
+extern int stp_get_page_number(const stp_vars_t);
+
+extern int stp_known_printers (void);
+extern const stp_printer_t stp_get_printer_by_index (int idx);
+extern const stp_printer_t stp_get_printer_by_long_name (const char *long_name);
+extern const stp_printer_t stp_get_printer_by_driver (const char *driver);
+extern int stp_get_printer_index_by_driver (const char *driver);
+
+/*
+ * This is likely to change in the future.
+ */
+extern stp_convert_t stp_choose_colorfunc (int output_type, int image_bpp,
+ const unsigned char *cmap,
+ int *out_bpp,
+ const stp_vars_t v);
+extern void stp_allocate_lut (stp_vars_t v, size_t steps);
+extern void stp_free_lut (stp_vars_t v);
+extern void stp_compute_lut (stp_vars_t v, size_t steps);
+
+/*
+ * This is likely to change in the future. In particular, responsibility
+ * for orientation will likely be transferred to the application from
+ * the library.
+ */
+extern void stp_compute_page_parameters (int page_right, int page_left,
+ int page_top, int page_bottom,
+ double scaling, int image_width,
+ int image_height, stp_image_t *image,
+ int *orientation,
+ int *page_width, int *page_height,
+ int *out_width, int *out_height,
+ int *left, int *top);
+
+extern const stp_vars_t stp_default_settings (void);
+extern const stp_vars_t stp_maximum_settings (void);
+extern const stp_vars_t stp_minimum_settings (void);
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* __GIMP_PRINT_H__ */
+/*
+ * End of $Id: gimp-print.h.in,v 1.8.2.1 2002/12/08 21:12:33 rlk Exp $
+ */
diff --git a/include/gimp-print/gimp-print.h.in b/include/gimp-print/gimp-print.h.in
index 5426fa3..8e3d059 100644
--- a/include/gimp-print/gimp-print.h.in
+++ b/include/gimp-print/gimp-print.h.in
@@ -1,5 +1,5 @@
/*
- * $Id: gimp-print.h.in,v 1.8 2001/11/06 02:44:42 rlk Exp $
+ * $Id: gimp-print.h.in,v 1.8.2.1 2002/12/08 21:12:33 rlk Exp $
*
* Print plug-in header file for the GIMP.
*
@@ -106,6 +106,12 @@ typedef enum stp_papersize_unit
PAPERSIZE_ENGLISH,
PAPERSIZE_METRIC
} stp_papersize_unit_t;
+
+typedef enum
+{
+ STP_JOB_MODE_PAGE,
+ STP_JOB_MODE_JOB
+} stp_job_mode_t;
typedef enum stp_image_status
{
@@ -353,6 +359,10 @@ typedef struct
void (*describe_resolution)(const stp_printer_t printer,
const char *resolution, int *x, int *y);
int (*verify)(const stp_printer_t p, const stp_vars_t v);
+ int (*start_job)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+ int (*end_job)(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
} stp_printfuncs_t;
/*
@@ -538,6 +548,10 @@ extern unsigned stp_papersize_get_bottom (const stp_papersize_t pt);
extern unsigned stp_papersize_get_right (const stp_papersize_t pt);
extern stp_papersize_unit_t stp_papersize_get_unit (const stp_papersize_t pt);
+extern void stp_set_job_mode(stp_vars_t, stp_job_mode_t);
+extern stp_job_mode_t stp_get_job_mode(const stp_vars_t);
+extern void stp_set_page_number(stp_vars_t, int);
+extern int stp_get_page_number(const stp_vars_t);
extern int stp_known_printers (void);
extern const stp_printer_t stp_get_printer_by_index (int idx);
@@ -580,5 +594,5 @@ extern const stp_vars_t stp_minimum_settings (void);
#endif /* __GIMP_PRINT_H__ */
/*
- * End of $Id: gimp-print.h.in,v 1.8 2001/11/06 02:44:42 rlk Exp $
+ * End of $Id: gimp-print.h.in,v 1.8.2.1 2002/12/08 21:12:33 rlk Exp $
*/
diff --git a/intl/ChangeLog b/intl/ChangeLog
new file mode 100644
index 0000000..84e2b37
--- /dev/null
+++ b/intl/ChangeLog
@@ -0,0 +1,4 @@
+2001-09-13 GNU <bug-gnu-utils@gnu.org>
+
+ * Version 0.10.40 released.
+
diff --git a/intl/Makefile.in b/intl/Makefile.in
new file mode 100644
index 0000000..19ed4a7
--- /dev/null
+++ b/intl/Makefile.in
@@ -0,0 +1,313 @@
+# Makefile for directory with message catalog handling in GNU NLS Utilities.
+# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+transform = @program_transform_name@
+libdir = @libdir@
+includedir = @includedir@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/intl
+aliaspath = $(localedir)
+subdir = intl
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
+
+l = @INTL_LIBTOOL_SUFFIX_PREFIX@
+
+AR = ar
+CC = @CC@
+LIBTOOL = @LIBTOOL@
+RANLIB = @RANLIB@
+YACC = @INTLBISON@ -y -d
+YFLAGS = --name-prefix=__gettext
+
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
+-DLIBDIR=\"$(libdir)\" @DEFS@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
+COMHDRS = gettext.h gettextP.h hash-string.h
+SOURCES = $(COMSRCS) intl-compat.c
+COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
+finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
+explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
+localcharset.c
+OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
+finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
+explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
+plural.$lo localcharset.$lo
+GETTOBJS = intl-compat.$lo
+DISTFILES.common = Makefile.in \
+config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
+DISTFILES.generated = plural.c
+DISTFILES.normal = VERSION
+DISTFILES.gettext = COPYING.LIB-2 COPYING.LIB-2.1 libintl.glibc
+DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
+
+# Libtool's library version information for libintl.
+# Before making a gettext release, the gettext maintainer must change this
+# according to the libtool documentation, section "Library interface versions".
+# Maintainers of other packages that include the intl directory must *not*
+# change these values.
+LTV_CURRENT=1
+LTV_REVISION=1
+LTV_AGE=0
+
+.SUFFIXES:
+.SUFFIXES: .c .y .o .lo .sin .sed
+.c.o:
+ $(COMPILE) $<
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) $<
+
+.y.c:
+ $(YACC) $(YFLAGS) --output $@ $<
+ rm -f $*.h
+
+.sin.sed:
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
+ mv t-$@ $@
+
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl
+
+all: all-@USE_INCLUDED_LIBINTL@
+all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
+all-no: all-no-@BUILD_INCLUDED_LIBINTL@
+all-no-yes: libgnuintl.$la
+all-no-no:
+
+libintl.a libgnuintl.a: $(OBJECTS)
+ rm -f $@
+ $(AR) cru $@ $(OBJECTS)
+ $(RANLIB) $@
+
+libintl.la libgnuintl.la: $(OBJECTS)
+ $(LIBTOOL) --mode=link \
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
+ $(OBJECTS) @LIBICONV@ \
+ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
+ -rpath $(libdir) \
+ -no-undefined
+
+libintl.h: libgnuintl.h
+ cp $(srcdir)/libgnuintl.h libintl.h
+
+charset.alias: config.charset
+ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+ mv t-$@ $@
+
+check: all
+
+# This installation goal is only used in GNU gettext. Packages which
+# only use the library should use install instead.
+
+# We must not install the libintl.h/libintl.a files if we are on a
+# system which has the GNU gettext() function in its C library or in a
+# separate library.
+# If you want to use the one which comes with this version of the
+# package, you have to use `configure --with-included-gettext'.
+install: install-exec install-data
+install-exec: all
+ if test "$(PACKAGE)" = "gettext" \
+ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
+ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
+ $(LIBTOOL) --mode=install \
+ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ $(mkinstalldirs) $(DESTDIR)$(libdir); \
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+ dest=$(DESTDIR)$(libdir)/charset.alias; \
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+ orig=$(DESTDIR)$(libdir)/charset.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ else \
+ if test @GLIBC21@ = no; then \
+ orig=charset.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ fi; \
+ fi; \
+ $(mkinstalldirs) $(DESTDIR)$(localedir); \
+ test -f $(DESTDIR)$(localedir)/locale.alias \
+ && orig=$(DESTDIR)$(localedir)/locale.alias \
+ || orig=$(srcdir)/locale.alias; \
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+ dest=$(DESTDIR)$(localedir)/locale.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ else \
+ : ; \
+ fi
+install-data: all
+ if test "$(PACKAGE)" = "gettext"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
+ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
+ dists="COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common)"; \
+ for file in $$dists; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
+ dists="$(DISTFILES.generated)"; \
+ for file in $$dists; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ $(INSTALL_DATA) $$dir/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ dists="$(DISTFILES.obsolete)"; \
+ for file in $$dists; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ if test "$(PACKAGE)" = "gettext" \
+ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
+ rm -f $(DESTDIR)$(includedir)/libintl.h; \
+ $(LIBTOOL) --mode=uninstall \
+ rm -f $(DESTDIR)$(libdir)/libintl.$la; \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+ dest=$(DESTDIR)$(libdir)/charset.alias; \
+ sed -f ref-del.sed $$dest > $$temp; \
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+ rm -f $$dest; \
+ else \
+ $(INSTALL_DATA) $$temp $$dest; \
+ fi; \
+ rm -f $$temp; \
+ fi; \
+ if test -f $(DESTDIR)$(localedir)/locale.alias; then \
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+ dest=$(DESTDIR)$(localedir)/locale.alias; \
+ sed -f ref-del.sed $$dest > $$temp; \
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+ rm -f $$dest; \
+ else \
+ $(INSTALL_DATA) $$temp $$dest; \
+ fi; \
+ rm -f $$temp; \
+ fi; \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext"; then \
+ for file in VERSION ChangeLog COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+info dvi:
+
+$(OBJECTS): ../config.h libgnuintl.h
+bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
+dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
+
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+
+id: ID
+
+ID: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+
+
+mostlyclean:
+ rm -f *.a *.la *.o *.lo core core.*
+ rm -f libintl.h charset.alias ref-add.sed ref-del.sed
+ rm -f -r .libs _libs
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile ID TAGS
+ if test "$(PACKAGE)" = gettext; then \
+ rm -f ChangeLog.inst $(DISTFILES.normal); \
+ else \
+ : ; \
+ fi
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+
+# GNU gettext needs not contain the file `VERSION' but contains some
+# other files which should not be distributed in other packages.
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: Makefile
+ if test "$(PACKAGE)" = gettext; then \
+ additional="$(DISTFILES.gettext)"; \
+ else \
+ additional="$(DISTFILES.normal)"; \
+ fi; \
+ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
+ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ ln $$dir/$$file $(distdir) 2> /dev/null \
+ || cp -p $$dir/$$file $(distdir); \
+ done
+
+Makefile: Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/intl/VERSION b/intl/VERSION
new file mode 100644
index 0000000..cb8a01a
--- /dev/null
+++ b/intl/VERSION
@@ -0,0 +1 @@
+GNU gettext library from gettext-0.10.40
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
new file mode 100644
index 0000000..c6a9bd1
--- /dev/null
+++ b/intl/bindtextdom.c
@@ -0,0 +1,369 @@
+/* Implementation of the bindtextdomain(3) function
+ Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+#include "gettextP.h"
+
+#ifdef _LIBC
+/* We have to handle multi-threaded applications. */
+# include <bits/libc-lock.h>
+#else
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_rwlock_define(CLASS, NAME)
+# define __libc_rwlock_wrlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_dirname _nl_default_dirname__
+# define _nl_domain_bindings _nl_domain_bindings__
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Contains the default location of the message catalogs. */
+extern const char _nl_default_dirname[];
+
+/* List with bindings of specific domains. */
+extern struct binding *_nl_domain_bindings;
+
+/* Lock variable to protect the global data in the gettext implementation. */
+__libc_rwlock_define (extern, _nl_state_lock)
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define BINDTEXTDOMAIN __bindtextdomain
+# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define BINDTEXTDOMAIN bindtextdomain__
+# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__
+#endif
+
+/* Prototypes for local functions. */
+static void set_binding_values PARAMS ((const char *domainname,
+ const char **dirnamep,
+ const char **codesetp));
+
+/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
+ to be used for the DOMAINNAME message catalog.
+ If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
+ modified, only the current value is returned.
+ If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
+ modified nor returned. */
+static void
+set_binding_values (domainname, dirnamep, codesetp)
+ const char *domainname;
+ const char **dirnamep;
+ const char **codesetp;
+{
+ struct binding *binding;
+ int modified;
+
+ /* Some sanity checks. */
+ if (domainname == NULL || domainname[0] == '\0')
+ {
+ if (dirnamep)
+ *dirnamep = NULL;
+ if (codesetp)
+ *codesetp = NULL;
+ return;
+ }
+
+ __libc_rwlock_wrlock (_nl_state_lock);
+
+ modified = 0;
+
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding != NULL)
+ {
+ if (dirnamep)
+ {
+ const char *dirname = *dirnamep;
+
+ if (dirname == NULL)
+ /* The current binding has be to returned. */
+ *dirnamep = binding->dirname;
+ else
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ char *result = binding->dirname;
+ if (strcmp (dirname, result) != 0)
+ {
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ result = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (dirname);
+#else
+ size_t len = strlen (dirname) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result != NULL, 1))
+ memcpy (result, dirname, len);
+#endif
+ }
+
+ if (__builtin_expect (result != NULL, 1))
+ {
+ if (binding->dirname != _nl_default_dirname)
+ free (binding->dirname);
+
+ binding->dirname = result;
+ modified = 1;
+ }
+ }
+ *dirnamep = result;
+ }
+ }
+
+ if (codesetp)
+ {
+ const char *codeset = *codesetp;
+
+ if (codeset == NULL)
+ /* The current binding has be to returned. */
+ *codesetp = binding->codeset;
+ else
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ char *result = binding->codeset;
+ if (result == NULL || strcmp (codeset, result) != 0)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (codeset);
+#else
+ size_t len = strlen (codeset) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result != NULL, 1))
+ memcpy (result, codeset, len);
+#endif
+
+ if (__builtin_expect (result != NULL, 1))
+ {
+ if (binding->codeset != NULL)
+ free (binding->codeset);
+
+ binding->codeset = result;
+ binding->codeset_cntr++;
+ modified = 1;
+ }
+ }
+ *codesetp = result;
+ }
+ }
+ }
+ else if ((dirnamep == NULL || *dirnamep == NULL)
+ && (codesetp == NULL || *codesetp == NULL))
+ {
+ /* Simply return the default values. */
+ if (dirnamep)
+ *dirnamep = _nl_default_dirname;
+ if (codesetp)
+ *codesetp = NULL;
+ }
+ else
+ {
+ /* We have to create a new binding. */
+ size_t len = strlen (domainname) + 1;
+ struct binding *new_binding =
+ (struct binding *) malloc (offsetof (struct binding, domainname) + len);
+
+ if (__builtin_expect (new_binding == NULL, 0))
+ goto failed;
+
+ memcpy (new_binding->domainname, domainname, len);
+
+ if (dirnamep)
+ {
+ const char *dirname = *dirnamep;
+
+ if (dirname == NULL)
+ /* The default value. */
+ dirname = _nl_default_dirname;
+ else
+ {
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ dirname = _nl_default_dirname;
+ else
+ {
+ char *result;
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (dirname);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_dirname;
+#else
+ size_t len = strlen (dirname) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_dirname;
+ memcpy (result, dirname, len);
+#endif
+ dirname = result;
+ }
+ }
+ *dirnamep = dirname;
+ new_binding->dirname = (char *) dirname;
+ }
+ else
+ /* The default value. */
+ new_binding->dirname = (char *) _nl_default_dirname;
+
+ new_binding->codeset_cntr = 0;
+
+ if (codesetp)
+ {
+ const char *codeset = *codesetp;
+
+ if (codeset != NULL)
+ {
+ char *result;
+
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (codeset);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_codeset;
+#else
+ size_t len = strlen (codeset) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_codeset;
+ memcpy (result, codeset, len);
+#endif
+ codeset = result;
+ new_binding->codeset_cntr++;
+ }
+ *codesetp = codeset;
+ new_binding->codeset = (char *) codeset;
+ }
+ else
+ new_binding->codeset = NULL;
+
+ /* Now enqueue it. */
+ if (_nl_domain_bindings == NULL
+ || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
+ {
+ new_binding->next = _nl_domain_bindings;
+ _nl_domain_bindings = new_binding;
+ }
+ else
+ {
+ binding = _nl_domain_bindings;
+ while (binding->next != NULL
+ && strcmp (domainname, binding->next->domainname) > 0)
+ binding = binding->next;
+
+ new_binding->next = binding->next;
+ binding->next = new_binding;
+ }
+
+ modified = 1;
+
+ /* Here we deal with memory allocation failures. */
+ if (0)
+ {
+ failed_codeset:
+ if (new_binding->dirname != _nl_default_dirname)
+ free (new_binding->dirname);
+ failed_dirname:
+ free (new_binding);
+ failed:
+ if (dirnamep)
+ *dirnamep = NULL;
+ if (codesetp)
+ *codesetp = NULL;
+ }
+ }
+
+ /* If we modified any binding, we flush the caches. */
+ if (modified)
+ ++_nl_msg_cat_cntr;
+
+ __libc_rwlock_unlock (_nl_state_lock);
+}
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+char *
+BINDTEXTDOMAIN (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ set_binding_values (domainname, &dirname, NULL);
+ return (char *) dirname;
+}
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+char *
+BIND_TEXTDOMAIN_CODESET (domainname, codeset)
+ const char *domainname;
+ const char *codeset;
+{
+ set_binding_values (domainname, NULL, &codeset);
+ return (char *) codeset;
+}
+
+#ifdef _LIBC
+/* Aliases for function names in GNU C Library. */
+weak_alias (__bindtextdomain, bindtextdomain);
+weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
+#endif
diff --git a/intl/config.charset b/intl/config.charset
new file mode 100755
index 0000000..f4f2611
--- /dev/null
+++ b/intl/config.charset
@@ -0,0 +1,438 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+# Copyright (C) 2000-2001 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# The table consists of lines of the form
+# ALIAS CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+# name used by which systems a MIME name?
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
+# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-3 glibc yes
+# ISO-8859-4 osf solaris freebsd yes
+# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-6 glibc aix hpux solaris yes
+# ISO-8859-7 glibc aix hpux irix osf solaris yes
+# ISO-8859-8 glibc aix hpux osf solaris yes
+# ISO-8859-9 glibc aix hpux irix osf solaris yes
+# ISO-8859-13 glibc
+# ISO-8859-15 glibc aix osf solaris freebsd
+# KOI8-R glibc solaris freebsd yes
+# KOI8-U glibc freebsd yes
+# CP437 dos
+# CP775 dos
+# CP850 aix osf dos
+# CP852 dos
+# CP855 dos
+# CP856 aix
+# CP857 dos
+# CP861 dos
+# CP862 dos
+# CP864 dos
+# CP865 dos
+# CP866 freebsd dos
+# CP869 dos
+# CP874 win32 dos
+# CP922 aix
+# CP932 aix win32 dos
+# CP943 aix
+# CP949 osf win32 dos
+# CP950 win32 dos
+# CP1046 aix
+# CP1124 aix
+# CP1129 aix
+# CP1250 win32
+# CP1251 glibc win32
+# CP1252 aix win32
+# CP1253 win32
+# CP1254 win32
+# CP1255 win32
+# CP1256 win32
+# CP1257 win32
+# GB2312 glibc aix hpux irix solaris freebsd yes
+# EUC-JP glibc aix hpux irix osf solaris freebsd yes
+# EUC-KR glibc aix hpux irix osf solaris freebsd yes
+# EUC-TW glibc aix hpux irix osf solaris
+# BIG5 glibc aix hpux osf solaris freebsd yes
+# BIG5-HKSCS glibc
+# GBK aix osf win32 dos
+# GB18030 glibc
+# SHIFT_JIS hpux osf solaris freebsd yes
+# JOHAB glibc win32
+# TIS-620 glibc aix hpux osf solaris
+# VISCII glibc yes
+# HP-ROMAN8 hpux
+# HP-ARABIC8 hpux
+# HP-GREEK8 hpux
+# HP-HEBREW8 hpux
+# HP-TURKISH8 hpux
+# HP-KANA8 hpux
+# DEC-KANJI osf
+# DEC-HANYU osf
+# UTF-8 glibc aix hpux osf solaris yes
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+ linux* | *-gnu*)
+ # With glibc-2.1 or newer, we don't need any canonicalization,
+ # because glibc has iconv and both glibc and libiconv support all
+ # GNU canonical names directly. Therefore, the Makefile does not
+ # need to install the alias file at all.
+ # The following applies only to glibc-2.0.x and older libcs.
+ echo "ISO_646.IRV:1983 ASCII"
+ ;;
+ aix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "IBM-850 CP850"
+ echo "IBM-856 CP856"
+ echo "IBM-921 ISO-8859-13"
+ echo "IBM-922 CP922"
+ echo "IBM-932 CP932"
+ echo "IBM-943 CP943"
+ echo "IBM-1046 CP1046"
+ echo "IBM-1124 CP1124"
+ echo "IBM-1129 CP1129"
+ echo "IBM-1252 CP1252"
+ echo "IBM-eucCN GB2312"
+ echo "IBM-eucJP EUC-JP"
+ echo "IBM-eucKR EUC-KR"
+ echo "IBM-eucTW EUC-TW"
+ echo "big5 BIG5"
+ echo "GBK GBK"
+ echo "TIS-620 TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ hpux*)
+ echo "iso88591 ISO-8859-1"
+ echo "iso88592 ISO-8859-2"
+ echo "iso88595 ISO-8859-5"
+ echo "iso88596 ISO-8859-6"
+ echo "iso88597 ISO-8859-7"
+ echo "iso88598 ISO-8859-8"
+ echo "iso88599 ISO-8859-9"
+ echo "iso885915 ISO-8859-15"
+ echo "roman8 HP-ROMAN8"
+ echo "arabic8 HP-ARABIC8"
+ echo "greek8 HP-GREEK8"
+ echo "hebrew8 HP-HEBREW8"
+ echo "turkish8 HP-TURKISH8"
+ echo "kana8 HP-KANA8"
+ echo "tis620 TIS-620"
+ echo "big5 BIG5"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "hp15CN GB2312"
+ #echo "ccdc ?" # what is this?
+ echo "SJIS SHIFT_JIS"
+ echo "utf8 UTF-8"
+ ;;
+ irix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "eucCN GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ ;;
+ osf*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "cp850 CP850"
+ echo "big5 BIG5"
+ echo "dechanyu DEC-HANYU"
+ echo "dechanzi GB2312"
+ echo "deckanji DEC-KANJI"
+ echo "deckorean EUC-KR"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "GBK GBK"
+ echo "KSC5601 CP949"
+ echo "sdeckanji EUC-JP"
+ echo "SJIS SHIFT_JIS"
+ echo "TACTIS TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ solaris*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "koi8-r KOI8-R"
+ echo "BIG5 BIG5"
+ echo "gb2312 GB2312"
+ echo "cns11643 EUC-TW"
+ echo "5601 EUC-KR"
+ echo "eucJP EUC-JP"
+ echo "PCK SHIFT_JIS"
+ echo "TIS620.2533 TIS-620"
+ #echo "sun_eu_greek ?" # what is this?
+ echo "UTF-8 UTF-8"
+ ;;
+ freebsd*)
+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "C ASCII"
+ echo "US-ASCII ASCII"
+ for l in la_LN lt_LN; do
+ echo "$l.ASCII ASCII"
+ done
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+ echo "$l.ISO_8859-1 ISO-8859-1"
+ echo "$l.DIS_8859-15 ISO-8859-15"
+ done
+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+ echo "$l.ISO_8859-2 ISO-8859-2"
+ done
+ for l in la_LN lt_LT; do
+ echo "$l.ISO_8859-4 ISO-8859-4"
+ done
+ for l in ru_RU ru_SU; do
+ echo "$l.KOI8-R KOI8-R"
+ echo "$l.ISO_8859-5 ISO-8859-5"
+ echo "$l.CP866 CP866"
+ done
+ echo "uk_UA.KOI8-U KOI8-U"
+ echo "zh_TW.BIG5 BIG5"
+ echo "zh_TW.Big5 BIG5"
+ echo "zh_CN.EUC GB2312"
+ echo "ja_JP.EUC EUC-JP"
+ echo "ja_JP.SJIS SHIFT_JIS"
+ echo "ja_JP.Shift_JIS SHIFT_JIS"
+ echo "ko_KR.EUC EUC-KR"
+ ;;
+ beos*)
+ # BeOS has a single locale, and it has UTF-8 encoding.
+ echo "* UTF-8"
+ ;;
+ msdosdjgpp*)
+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "#"
+ echo "# The encodings given here may not all be correct."
+ echo "# If you find that the encoding given for your language and"
+ echo "# country is not the one your DOS machine actually uses, just"
+ echo "# correct it in this file, and send a mail to"
+ echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
+ echo "# and Bruno Haible <haible@clisp.cons.org>."
+ echo "#"
+ echo "C ASCII"
+ # ISO-8859-1 languages
+ echo "ca CP850"
+ echo "ca_ES CP850"
+ echo "da CP865" # not CP850 ??
+ echo "da_DK CP865" # not CP850 ??
+ echo "de CP850"
+ echo "de_AT CP850"
+ echo "de_CH CP850"
+ echo "de_DE CP850"
+ echo "en CP850"
+ echo "en_AU CP850" # not CP437 ??
+ echo "en_CA CP850"
+ echo "en_GB CP850"
+ echo "en_NZ CP437"
+ echo "en_US CP437"
+ echo "en_ZA CP850" # not CP437 ??
+ echo "es CP850"
+ echo "es_AR CP850"
+ echo "es_BO CP850"
+ echo "es_CL CP850"
+ echo "es_CO CP850"
+ echo "es_CR CP850"
+ echo "es_CU CP850"
+ echo "es_DO CP850"
+ echo "es_EC CP850"
+ echo "es_ES CP850"
+ echo "es_GT CP850"
+ echo "es_HN CP850"
+ echo "es_MX CP850"
+ echo "es_NI CP850"
+ echo "es_PA CP850"
+ echo "es_PY CP850"
+ echo "es_PE CP850"
+ echo "es_SV CP850"
+ echo "es_UY CP850"
+ echo "es_VE CP850"
+ echo "et CP850"
+ echo "et_EE CP850"
+ echo "eu CP850"
+ echo "eu_ES CP850"
+ echo "fi CP850"
+ echo "fi_FI CP850"
+ echo "fr CP850"
+ echo "fr_BE CP850"
+ echo "fr_CA CP850"
+ echo "fr_CH CP850"
+ echo "fr_FR CP850"
+ echo "ga CP850"
+ echo "ga_IE CP850"
+ echo "gd CP850"
+ echo "gd_GB CP850"
+ echo "gl CP850"
+ echo "gl_ES CP850"
+ echo "id CP850" # not CP437 ??
+ echo "id_ID CP850" # not CP437 ??
+ echo "is CP861" # not CP850 ??
+ echo "is_IS CP861" # not CP850 ??
+ echo "it CP850"
+ echo "it_CH CP850"
+ echo "it_IT CP850"
+ echo "lt CP775"
+ echo "lt_LT CP775"
+ echo "lv CP775"
+ echo "lv_LV CP775"
+ echo "nb CP865" # not CP850 ??
+ echo "nb_NO CP865" # not CP850 ??
+ echo "nl CP850"
+ echo "nl_BE CP850"
+ echo "nl_NL CP850"
+ echo "nn CP865" # not CP850 ??
+ echo "nn_NO CP865" # not CP850 ??
+ echo "no CP865" # not CP850 ??
+ echo "no_NO CP865" # not CP850 ??
+ echo "pt CP850"
+ echo "pt_BR CP850"
+ echo "pt_PT CP850"
+ echo "sv CP850"
+ echo "sv_SE CP850"
+ # ISO-8859-2 languages
+ echo "cs CP852"
+ echo "cs_CZ CP852"
+ echo "hr CP852"
+ echo "hr_HR CP852"
+ echo "hu CP852"
+ echo "hu_HU CP852"
+ echo "pl CP852"
+ echo "pl_PL CP852"
+ echo "ro CP852"
+ echo "ro_RO CP852"
+ echo "sk CP852"
+ echo "sk_SK CP852"
+ echo "sl CP852"
+ echo "sl_SI CP852"
+ echo "sq CP852"
+ echo "sq_AL CP852"
+ echo "sr CP852" # CP852 or CP866 or CP855 ??
+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+ # ISO-8859-3 languages
+ echo "mt CP850"
+ echo "mt_MT CP850"
+ # ISO-8859-5 languages
+ echo "be CP866"
+ echo "be_BE CP866"
+ echo "bg CP866" # not CP855 ??
+ echo "bg_BG CP866" # not CP855 ??
+ echo "mk CP866" # not CP855 ??
+ echo "mk_MK CP866" # not CP855 ??
+ echo "ru KOI8-R" # not CP866 ??
+ echo "ru_RU KOI8-R" # not CP866 ??
+ # ISO-8859-6 languages
+ echo "ar CP864"
+ echo "ar_AE CP864"
+ echo "ar_DZ CP864"
+ echo "ar_EG CP864"
+ echo "ar_IQ CP864"
+ echo "ar_IR CP864"
+ echo "ar_JO CP864"
+ echo "ar_KW CP864"
+ echo "ar_MA CP864"
+ echo "ar_OM CP864"
+ echo "ar_QA CP864"
+ echo "ar_SA CP864"
+ echo "ar_SY CP864"
+ # ISO-8859-7 languages
+ echo "el CP869"
+ echo "el_GR CP869"
+ # ISO-8859-8 languages
+ echo "he CP862"
+ echo "he_IL CP862"
+ # ISO-8859-9 languages
+ echo "tr CP857"
+ echo "tr_TR CP857"
+ # Japanese
+ echo "ja CP932"
+ echo "ja_JP CP932"
+ # Chinese
+ echo "zh_CN GBK"
+ echo "zh_TW CP950" # not CP938 ??
+ # Korean
+ echo "kr CP949" # not CP934 ??
+ echo "kr_KR CP949" # not CP934 ??
+ # Thai
+ echo "th CP874"
+ echo "th_TH CP874"
+ # Other
+ echo "eo CP850"
+ echo "eo_EO CP850"
+ ;;
+esac
diff --git a/intl/dcgettext.c b/intl/dcgettext.c
new file mode 100644
index 0000000..b7c9652
--- /dev/null
+++ b/intl/dcgettext.c
@@ -0,0 +1,58 @@
+/* Implementation of the dcgettext(3) function.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCGETTEXT __dcgettext
+# define DCIGETTEXT __dcigettext
+#else
+# define DCGETTEXT dcgettext__
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCGETTEXT (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+ return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcgettext, dcgettext);
+#endif
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
new file mode 100644
index 0000000..6acde19
--- /dev/null
+++ b/intl/dcigettext.c
@@ -0,0 +1,1259 @@
+/* Implementation of the internal dcigettext function.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+
+#include <string.h>
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include <locale.h>
+
+#if defined HAVE_SYS_PARAM_H || defined _LIBC
+# include <sys/param.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+#include "hash-string.h"
+
+/* Thread safetyness. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_lock_define_initialized(CLASS, NAME)
+# define __libc_lock_lock(NAME)
+# define __libc_lock_unlock(NAME)
+# define __libc_rwlock_define_initialized(CLASS, NAME)
+# define __libc_rwlock_rdlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* Alignment of types. */
+#if defined __GNUC__ && __GNUC__ >= 2
+# define alignof(TYPE) __alignof__ (TYPE)
+#else
+# define alignof(TYPE) \
+ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_default_domain _nl_default_default_domain__
+# define _nl_current_default_domain _nl_current_default_domain__
+# define _nl_default_dirname _nl_default_dirname__
+# define _nl_domain_bindings _nl_domain_bindings__
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+# define tfind __tfind
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+char *getcwd ();
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+# ifndef HAVE_MEMPCPY
+static void *mempcpy PARAMS ((void *dest, const void *src, size_t n));
+# endif
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__)
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#endif
+
+#if !defined PATH_MAX && defined _PC_PATH_MAX
+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+#endif
+
+/* Don't include sys/param.h if it already has been. */
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
+ it may be concatenated to a directory pathname.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+#endif
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+/* This is the type used for the search tree where known translations
+ are stored. */
+struct known_translation_t
+{
+ /* Domain in which to search. */
+ char *domainname;
+
+ /* The category. */
+ int category;
+
+ /* State of the catalog counter at the point the string was found. */
+ int counter;
+
+ /* Catalog where the string was found. */
+ struct loaded_l10nfile *domain;
+
+ /* And finally the translation. */
+ const char *translation;
+ size_t translation_length;
+
+ /* Pointer to the string in question. */
+ char msgid[ZERO];
+};
+
+/* Root of the search tree with known translations. We can use this
+ only if the system provides the `tsearch' function family. */
+#if defined HAVE_TSEARCH || defined _LIBC
+# include <search.h>
+
+static void *root;
+
+# ifdef _LIBC
+# define tsearch __tsearch
+# endif
+
+/* Function to compare two entries in the table of known translations. */
+static int transcmp PARAMS ((const void *p1, const void *p2));
+static int
+transcmp (p1, p2)
+ const void *p1;
+ const void *p2;
+{
+ const struct known_translation_t *s1;
+ const struct known_translation_t *s2;
+ int result;
+
+ s1 = (const struct known_translation_t *) p1;
+ s2 = (const struct known_translation_t *) p2;
+
+ result = strcmp (s1->msgid, s2->msgid);
+ if (result == 0)
+ {
+ result = strcmp (s1->domainname, s2->domainname);
+ if (result == 0)
+ /* We compare the category last (though this is the cheapest
+ operation) since it is hopefully always the same (namely
+ LC_MESSAGES). */
+ result = s1->category - s2->category;
+ }
+
+ return result;
+}
+#endif
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+const char _nl_default_default_domain[] = "messages";
+
+/* Value used as the default domain for gettext(3). */
+const char *_nl_current_default_domain = _nl_default_default_domain;
+
+/* Contains the default location of the message catalogs. */
+const char _nl_default_dirname[] = LOCALEDIR;
+
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+struct binding *_nl_domain_bindings;
+
+/* Prototypes for local functions. */
+static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain,
+ unsigned long int n,
+ const char *translation,
+ size_t translation_len))
+ internal_function;
+static unsigned long int plural_eval PARAMS ((struct expression *pexp,
+ unsigned long int n))
+ internal_function;
+static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *guess_category_value PARAMS ((int category,
+ const char *categoryname))
+ internal_function;
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+#ifdef _LIBC
+/* List of blocks allocated for translations. */
+typedef struct transmem_list
+{
+ struct transmem_list *next;
+ char data[ZERO];
+} transmem_block_t;
+static struct transmem_list *transmem_list;
+#else
+typedef unsigned char transmem_block_t;
+#endif
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCIGETTEXT __dcigettext
+#else
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Lock variable to protect the global data in the gettext implementation. */
+#ifdef _LIBC
+__libc_rwlock_define_initialized (, _nl_state_lock)
+#endif
+
+/* Checking whether the binaries runs SUID must be done and glibc provides
+ easier methods therefore we make a difference here. */
+#ifdef _LIBC
+# define ENABLE_SECURE __libc_enable_secure
+# define DETERMINE_SECURE
+#else
+# ifndef HAVE_GETUID
+# define getuid() 0
+# endif
+# ifndef HAVE_GETGID
+# define getgid() 0
+# endif
+# ifndef HAVE_GETEUID
+# define geteuid() getuid()
+# endif
+# ifndef HAVE_GETEGID
+# define getegid() getgid()
+# endif
+static int enable_secure;
+# define ENABLE_SECURE (enable_secure == 1)
+# define DETERMINE_SECURE \
+ if (enable_secure == 0) \
+ { \
+ if (getuid () != geteuid () || getgid () != getegid ()) \
+ enable_secure = 1; \
+ else \
+ enable_secure = -1; \
+ }
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ CATEGORY locale and, if PLURAL is nonzero, search over string
+ depending on the plural form determined by N. */
+char *
+DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ int plural;
+ unsigned long int n;
+ int category;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ char *dirname, *xdomainname;
+ char *single_locale;
+ char *retval;
+ size_t retlen;
+ int saved_errno;
+#if defined HAVE_TSEARCH || defined _LIBC
+ struct known_translation_t *search;
+ struct known_translation_t **foundp = NULL;
+ size_t msgid_len;
+#endif
+ size_t domainname_len;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid1 == NULL)
+ return NULL;
+
+ __libc_rwlock_rdlock (_nl_state_lock);
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ definition left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+#if defined HAVE_TSEARCH || defined _LIBC
+ msgid_len = strlen (msgid1) + 1;
+
+ /* Try to find the translation among those which we found at
+ some time. */
+ search = (struct known_translation_t *)
+ alloca (offsetof (struct known_translation_t, msgid) + msgid_len);
+ memcpy (search->msgid, msgid1, msgid_len);
+ search->domainname = (char *) domainname;
+ search->category = category;
+
+ foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
+ if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
+ {
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation,
+ (*foundp)->translation_length);
+ else
+ retval = (char *) (*foundp)->translation;
+
+ __libc_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+#endif
+
+ /* Preserve the `errno' value. */
+ saved_errno = errno;
+
+ /* See whether this is a SUID binary or not. */
+ DETERMINE_SECURE;
+
+ /* First find matching binding. */
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = (char *) _nl_default_dirname;
+ else if (IS_ABSOLUTE_PATH (binding->dirname))
+ dirname = binding->dirname;
+ else
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (binding->dirname) + 1;
+ size_t path_max;
+ char *ret;
+
+ path_max = (unsigned int) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ for (;;)
+ {
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+
+ __set_errno (0);
+ ret = getcwd (dirname, path_max);
+ if (ret != NULL || errno != ERANGE)
+ break;
+
+ path_max += path_max / 2;
+ path_max += PATH_INCR;
+ }
+
+ if (ret == NULL)
+ {
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ FREE_BLOCKS (block_list);
+ __libc_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+ }
+
+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+ }
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+ categoryvalue = guess_category_value (category, categoryname);
+
+ domainname_len = strlen (domainname);
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + domainname_len + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname, domainname_len),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for the translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+
+ /* When this is a SUID binary we must not allow accessing files
+ outside the dedicated directories. */
+ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale))
+ /* Ingore this entry. */
+ continue;
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ {
+ FREE_BLOCKS (block_list);
+ __libc_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+ }
+
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding);
+
+ if (domain != NULL)
+ {
+ retval = _nl_find_msg (domain, binding, msgid1, &retlen);
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+ retval = _nl_find_msg (domain->successor[cnt], binding,
+ msgid1, &retlen);
+
+ if (retval != NULL)
+ {
+ domain = domain->successor[cnt];
+ break;
+ }
+ }
+ }
+
+ if (retval != NULL)
+ {
+ /* Found the translation of MSGID1 in domain DOMAIN:
+ starting at RETVAL, RETLEN bytes. */
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+#if defined HAVE_TSEARCH || defined _LIBC
+ if (foundp == NULL)
+ {
+ /* Create a new entry and add it to the search tree. */
+ struct known_translation_t *newp;
+
+ newp = (struct known_translation_t *)
+ malloc (offsetof (struct known_translation_t, msgid)
+ + msgid_len + domainname_len + 1);
+ if (newp != NULL)
+ {
+ newp->domainname =
+ mempcpy (newp->msgid, msgid1, msgid_len);
+ memcpy (newp->domainname, domainname, domainname_len + 1);
+ newp->category = category;
+ newp->counter = _nl_msg_cat_cntr;
+ newp->domain = domain;
+ newp->translation = retval;
+ newp->translation_length = retlen;
+
+ /* Insert the entry in the search tree. */
+ foundp = (struct known_translation_t **)
+ tsearch (newp, &root, transcmp);
+ if (foundp == NULL
+ || __builtin_expect (*foundp != newp, 0))
+ /* The insert failed. */
+ free (newp);
+ }
+ }
+ else
+ {
+ /* We can update the existing entry. */
+ (*foundp)->counter = _nl_msg_cat_cntr;
+ (*foundp)->domain = domain;
+ (*foundp)->translation = retval;
+ (*foundp)->translation_length = retlen;
+ }
+#endif
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup (domain, n, retval, retlen);
+
+ __libc_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+ }
+ }
+ /* NOTREACHED */
+}
+
+
+char *
+internal_function
+_nl_find_msg (domain_file, domainbinding, msgid, lengthp)
+ struct loaded_l10nfile *domain_file;
+ struct binding *domainbinding;
+ const char *msgid;
+ size_t *lengthp;
+{
+ struct loaded_domain *domain;
+ size_t act;
+ char *result;
+ size_t resultlen;
+
+ if (domain_file->decided == 0)
+ _nl_load_domain (domain_file, domainbinding);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_size > 2 && domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+
+ while (1)
+ {
+ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ /* Compare msgid with the original string at index nstr-1.
+ We compare the lengths with >=, not ==, because plural entries
+ are represented by strings with an embedded NUL. */
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) >= len
+ && (strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset))
+ == 0))
+ {
+ act = nstr - 1;
+ goto found;
+ }
+
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+ }
+ /* NOTREACHED */
+ }
+ else
+ {
+ /* Try the default method: binary search in the sorted array of
+ messages. */
+ size_t top, bottom;
+
+ bottom = 0;
+ top = domain->nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, (domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset)));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ goto found;
+ }
+ /* No translation was found. */
+ return NULL;
+ }
+
+ found:
+ /* The translation was found at index ACT. If we have to convert the
+ string to use a different character set, this is the time. */
+ result = ((char *) domain->data
+ + W (domain->must_swap, domain->trans_tab[act].offset));
+ resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
+
+#if defined _LIBC || HAVE_ICONV
+ if (domain->codeset_cntr
+ != (domainbinding != NULL ? domainbinding->codeset_cntr : 0))
+ {
+ /* The domain's codeset has changed through bind_textdomain_codeset()
+ since the message catalog was initialized or last accessed. We
+ have to reinitialize the converter. */
+ _nl_free_domain_conv (domain);
+ _nl_init_domain_conv (domain_file, domain, domainbinding);
+ }
+
+ if (
+# ifdef _LIBC
+ domain->conv != (__gconv_t) -1
+# else
+# if HAVE_ICONV
+ domain->conv != (iconv_t) -1
+# endif
+# endif
+ )
+ {
+ /* We are supposed to do a conversion. First allocate an
+ appropriate table with the same structure as the table
+ of translations in the file, where we can put the pointers
+ to the converted strings in.
+ There is a slight complication with plural entries. They
+ are represented by consecutive NUL terminated strings. We
+ handle this case by converting RESULTLEN bytes, including
+ NULs. */
+
+ if (domain->conv_tab == NULL
+ && ((domain->conv_tab = (char **) calloc (domain->nstrings,
+ sizeof (char *)))
+ == NULL))
+ /* Mark that we didn't succeed allocating a table. */
+ domain->conv_tab = (char **) -1;
+
+ if (__builtin_expect (domain->conv_tab == (char **) -1, 0))
+ /* Nothing we can do, no more memory. */
+ goto converted;
+
+ if (domain->conv_tab[act] == NULL)
+ {
+ /* We haven't used this string so far, so it is not
+ translated yet. Do this now. */
+ /* We use a bit more efficient memory handling.
+ We allocate always larger blocks which get used over
+ time. This is faster than many small allocations. */
+ __libc_lock_define_initialized (static, lock)
+# define INITIAL_BLOCK_SIZE 4080
+ static unsigned char *freemem;
+ static size_t freemem_size;
+
+ const unsigned char *inbuf;
+ unsigned char *outbuf;
+ int malloc_count;
+# ifndef _LIBC
+ transmem_block_t *transmem_list = NULL;
+# endif
+
+ __libc_lock_lock (lock);
+
+ inbuf = (const unsigned char *) result;
+ outbuf = freemem + sizeof (size_t);
+
+ malloc_count = 0;
+ while (1)
+ {
+ transmem_block_t *newmem;
+# ifdef _LIBC
+ size_t non_reversible;
+ int res;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ res = __gconv (domain->conv,
+ &inbuf, inbuf + resultlen,
+ &outbuf,
+ outbuf + freemem_size - sizeof (size_t),
+ &non_reversible);
+
+ if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT)
+ break;
+
+ if (res != __GCONV_FULL_OUTPUT)
+ {
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+
+ inbuf = result;
+# else
+# if HAVE_ICONV
+ const char *inptr = (const char *) inbuf;
+ size_t inleft = resultlen;
+ char *outptr = (char *) outbuf;
+ size_t outleft;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ outleft = freemem_size - sizeof (size_t);
+ if (iconv (domain->conv,
+ (ICONV_CONST char **) &inptr, &inleft,
+ &outptr, &outleft)
+ != (size_t) (-1))
+ {
+ outbuf = (unsigned char *) outptr;
+ break;
+ }
+ if (errno != E2BIG)
+ {
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+# endif
+# endif
+
+ resize_freemem:
+ /* We must allocate a new buffer or resize the old one. */
+ if (malloc_count > 0)
+ {
+ ++malloc_count;
+ freemem_size = malloc_count * INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) realloc (transmem_list,
+ freemem_size);
+# ifdef _LIBC
+ if (newmem != NULL)
+ transmem_list = transmem_list->next;
+ else
+ {
+ struct transmem_list *old = transmem_list;
+
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+# endif
+ }
+ else
+ {
+ malloc_count = 1;
+ freemem_size = INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) malloc (freemem_size);
+ }
+ if (__builtin_expect (newmem == NULL, 0))
+ {
+ freemem = NULL;
+ freemem_size = 0;
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+
+# ifdef _LIBC
+ /* Add the block to the list of blocks we have to free
+ at some point. */
+ newmem->next = transmem_list;
+ transmem_list = newmem;
+
+ freemem = newmem->data;
+ freemem_size -= offsetof (struct transmem_list, data);
+# else
+ transmem_list = newmem;
+ freemem = newmem;
+# endif
+
+ outbuf = freemem + sizeof (size_t);
+ }
+
+ /* We have now in our buffer a converted string. Put this
+ into the table of conversions. */
+ *(size_t *) freemem = outbuf - freemem - sizeof (size_t);
+ domain->conv_tab[act] = (char *) freemem;
+ /* Shrink freemem, but keep it aligned. */
+ freemem_size -= outbuf - freemem;
+ freemem = outbuf;
+ freemem += freemem_size & (alignof (size_t) - 1);
+ freemem_size = freemem_size & ~ (alignof (size_t) - 1);
+
+ __libc_lock_unlock (lock);
+ }
+
+ /* Now domain->conv_tab[act] contains the translation of all
+ the plural variants. */
+ result = domain->conv_tab[act] + sizeof (size_t);
+ resultlen = *(size_t *) domain->conv_tab[act];
+ }
+
+ converted:
+ /* The result string is converted. */
+
+#endif /* _LIBC || HAVE_ICONV */
+
+ *lengthp = resultlen;
+ return result;
+}
+
+
+/* Look up a plural variant. */
+static char *
+internal_function
+plural_lookup (domain, n, translation, translation_len)
+ struct loaded_l10nfile *domain;
+ unsigned long int n;
+ const char *translation;
+ size_t translation_len;
+{
+ struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
+ unsigned long int index;
+ const char *p;
+
+ index = plural_eval (domaindata->plural, n);
+ if (index >= domaindata->nplurals)
+ /* This should never happen. It means the plural expression and the
+ given maximum value do not match. */
+ index = 0;
+
+ /* Skip INDEX strings at TRANSLATION. */
+ p = translation;
+ while (index-- > 0)
+ {
+#ifdef _LIBC
+ p = __rawmemchr (p, '\0');
+#else
+ p = strchr (p, '\0');
+#endif
+ /* And skip over the NUL byte. */
+ p++;
+
+ if (p >= translation + translation_len)
+ /* This should never happen. It means the plural expression
+ evaluated to a value larger than the number of variants
+ available for MSGID1. */
+ return (char *) translation;
+ }
+ return (char *) p;
+}
+
+
+/* Function to evaluate the plural expression and return an index value. */
+static unsigned long int
+internal_function
+plural_eval (pexp, n)
+ struct expression *pexp;
+ unsigned long int n;
+{
+ switch (pexp->nargs)
+ {
+ case 0:
+ switch (pexp->operation)
+ {
+ case var:
+ return n;
+ case num:
+ return pexp->val.num;
+ default:
+ break;
+ }
+ /* NOTREACHED */
+ break;
+ case 1:
+ {
+ /* pexp->operation must be lnot. */
+ unsigned long int arg = plural_eval (pexp->val.args[0], n);
+ return ! arg;
+ }
+ case 2:
+ {
+ unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
+ if (pexp->operation == lor)
+ return leftarg || plural_eval (pexp->val.args[1], n);
+ else if (pexp->operation == land)
+ return leftarg && plural_eval (pexp->val.args[1], n);
+ else
+ {
+ unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
+
+ switch (pexp->operation)
+ {
+ case mult:
+ return leftarg * rightarg;
+ case divide:
+ return leftarg / rightarg;
+ case module:
+ return leftarg % rightarg;
+ case plus:
+ return leftarg + rightarg;
+ case minus:
+ return leftarg - rightarg;
+ case less_than:
+ return leftarg < rightarg;
+ case greater_than:
+ return leftarg > rightarg;
+ case less_or_equal:
+ return leftarg <= rightarg;
+ case greater_or_equal:
+ return leftarg >= rightarg;
+ case equal:
+ return leftarg == rightarg;
+ case not_equal:
+ return leftarg != rightarg;
+ default:
+ break;
+ }
+ }
+ /* NOTREACHED */
+ break;
+ }
+ case 3:
+ {
+ /* pexp->operation must be qmop. */
+ unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
+ return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
+ }
+ }
+ /* NOTREACHED */
+ return 0;
+}
+
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (category)
+ int category;
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* Guess value of current locale from value of the environment variables. */
+static const char *
+internal_function
+guess_category_value (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *language;
+ const char *retval;
+
+ /* The highest priority value is the `LANGUAGE' environment
+ variable. But we don't use the value if the currently selected
+ locale is the C locale. This is a GNU extension. */
+ language = getenv ("LANGUAGE");
+ if (language != NULL && language[0] == '\0')
+ language = NULL;
+
+ /* We have to proceed with the POSIX methods of looking to `LC_ALL',
+ `LC_xxx', and `LANG'. On some systems this can be done by the
+ `setlocale' function itself. */
+#if defined _LIBC || (defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL)
+ retval = setlocale (category, NULL);
+#else
+ /* Setting of LC_ALL overwrites all other. */
+ retval = getenv ("LC_ALL");
+ if (retval == NULL || retval[0] == '\0')
+ {
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval == NULL || retval[0] == '\0')
+ {
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval == NULL || retval[0] == '\0')
+ /* We use C as the default domain. POSIX says this is
+ implementation defined. */
+ return "C";
+ }
+ }
+#endif
+
+ return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
+}
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+#if !_LIBC && !HAVE_MEMPCPY
+static void *
+mempcpy (dest, src, n)
+ void *dest;
+ const void *src;
+ size_t n;
+{
+ return (void *) ((char *) memcpy (dest, src, n) + n);
+}
+#endif
+
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ void *old;
+
+ while (_nl_domain_bindings != NULL)
+ {
+ struct binding *oldp = _nl_domain_bindings;
+ _nl_domain_bindings = _nl_domain_bindings->next;
+ if (oldp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (oldp->dirname);
+ free (oldp->codeset);
+ free (oldp);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+
+ /* Remove the search tree with the known translations. */
+ __tdestroy (root, free);
+ root = NULL;
+
+ while (transmem_list != NULL)
+ {
+ old = transmem_list;
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/intl/dcngettext.c b/intl/dcngettext.c
new file mode 100644
index 0000000..c16af21
--- /dev/null
+++ b/intl/dcngettext.c
@@ -0,0 +1,60 @@
+/* Implementation of the dcngettext(3) function.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCNGETTEXT __dcngettext
+# define DCIGETTEXT __dcigettext
+#else
+# define DCNGETTEXT dcngettext__
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCNGETTEXT (domainname, msgid1, msgid2, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+ int category;
+{
+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcngettext, dcngettext);
+#endif
diff --git a/intl/dgettext.c b/intl/dgettext.c
new file mode 100644
index 0000000..3651207
--- /dev/null
+++ b/intl/dgettext.c
@@ -0,0 +1,59 @@
+/* Implementation of the dgettext(3) function.
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DGETTEXT __dgettext
+# define DCGETTEXT __dcgettext
+#else
+# define DGETTEXT dgettext__
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale. */
+char *
+DGETTEXT (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dgettext, dgettext);
+#endif
diff --git a/intl/dngettext.c b/intl/dngettext.c
new file mode 100644
index 0000000..f214e95
--- /dev/null
+++ b/intl/dngettext.c
@@ -0,0 +1,61 @@
+/* Implementation of the dngettext(3) function.
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DNGETTEXT __dngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define DNGETTEXT dngettext__
+# define DCNGETTEXT dcngettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale and skip message according to the plural form. */
+char *
+DNGETTEXT (domainname, msgid1, msgid2, n)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dngettext, dngettext);
+#endif
diff --git a/intl/explodename.c b/intl/explodename.c
new file mode 100644
index 0000000..2985064
--- /dev/null
+++ b/intl/explodename.c
@@ -0,0 +1,192 @@
+/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+char *
+_nl_find_language (name)
+ const char *name;
+{
+ while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
+ && name[0] != '+' && name[0] != ',')
+ ++name;
+
+ return (char *) name;
+}
+
+
+int
+_nl_explode_name (name, language, modifier, territory, codeset,
+ normalized_codeset, special, sponsor, revision)
+ char *name;
+ const char **language;
+ const char **modifier;
+ const char **territory;
+ const char **codeset;
+ const char **normalized_codeset;
+ const char **special;
+ const char **sponsor;
+ const char **revision;
+{
+ enum { undecided, xpg, cen } syntax;
+ char *cp;
+ int mask;
+
+ *modifier = NULL;
+ *territory = NULL;
+ *codeset = NULL;
+ *normalized_codeset = NULL;
+ *special = NULL;
+ *sponsor = NULL;
+ *revision = NULL;
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = 0;
+ syntax = undecided;
+ *language = cp = name;
+ cp = _nl_find_language (*language);
+
+ if (*language == cp)
+ /* This does not make sense: language has to be specified. Use
+ this entry as it is without exploding. Perhaps it is an alias. */
+ cp = strchr (*language, '\0');
+ else if (cp[0] == '_')
+ {
+ /* Next is the territory. */
+ cp[0] = '\0';
+ *territory = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'
+ && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= TERRITORY;
+
+ if (cp[0] == '.')
+ {
+ /* Next is the codeset. */
+ syntax = xpg;
+ cp[0] = '\0';
+ *codeset = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '@')
+ ++cp;
+
+ mask |= XPG_CODESET;
+
+ if (*codeset != cp && (*codeset)[0] != '\0')
+ {
+ *normalized_codeset = _nl_normalize_codeset (*codeset,
+ cp - *codeset);
+ if (strcmp (*codeset, *normalized_codeset) == 0)
+ free ((char *) *normalized_codeset);
+ else
+ mask |= XPG_NORM_CODESET;
+ }
+ }
+ }
+
+ if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))
+ {
+ /* Next is the modifier. */
+ syntax = cp[0] == '@' ? xpg : cen;
+ cp[0] = '\0';
+ *modifier = ++cp;
+
+ while (syntax == cen && cp[0] != '\0' && cp[0] != '+'
+ && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= XPG_MODIFIER | CEN_AUDIENCE;
+ }
+
+ if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
+ {
+ syntax = cen;
+
+ if (cp[0] == '+')
+ {
+ /* Next is special application (CEN syntax). */
+ cp[0] = '\0';
+ *special = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPECIAL;
+ }
+
+ if (cp[0] == ',')
+ {
+ /* Next is sponsor (CEN syntax). */
+ cp[0] = '\0';
+ *sponsor = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '_')
+ ++cp;
+
+ mask |= CEN_SPONSOR;
+ }
+
+ if (cp[0] == '_')
+ {
+ /* Next is revision (CEN syntax). */
+ cp[0] = '\0';
+ *revision = ++cp;
+
+ mask |= CEN_REVISION;
+ }
+ }
+
+ /* For CEN syntax values it might be important to have the
+ separator character in the file name, not for XPG syntax. */
+ if (syntax == xpg)
+ {
+ if (*territory != NULL && (*territory)[0] == '\0')
+ mask &= ~TERRITORY;
+
+ if (*codeset != NULL && (*codeset)[0] == '\0')
+ mask &= ~XPG_CODESET;
+
+ if (*modifier != NULL && (*modifier)[0] == '\0')
+ mask &= ~XPG_MODIFIER;
+ }
+
+ return mask;
+}
diff --git a/intl/finddomain.c b/intl/finddomain.c
new file mode 100644
index 0000000..2f103d5
--- /dev/null
+++ b/intl/finddomain.c
@@ -0,0 +1,198 @@
+/* Handle list of needed message catalogs
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.org>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+/* List of already loaded domains. */
+static struct loaded_l10nfile *_nl_loaded_domains;
+
+
+/* Return a data structure describing the message catalog described by
+ the DOMAINNAME and CATEGORY parameters with respect to the currently
+ established bindings. */
+struct loaded_l10nfile *
+internal_function
+_nl_find_domain (dirname, locale, domainname, domainbinding)
+ const char *dirname;
+ char *locale;
+ const char *domainname;
+ struct binding *domainbinding;
+{
+ struct loaded_l10nfile *retval;
+ const char *language;
+ const char *modifier;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *alias_value;
+ int mask;
+
+ /* LOCALE can consist of up to four recognized parts for the XPG syntax:
+
+ language[_territory[.codeset]][@modifier]
+
+ and six parts for the CEN syntax:
+
+ language[_territory][+audience][+special][,[sponsor][_revision]]
+
+ Beside the first part all of them are allowed to be missing. If
+ the full specified locale is not found, the less specific one are
+ looked for. The various parts will be stripped off according to
+ the following order:
+ (1) revision
+ (2) sponsor
+ (3) special
+ (4) codeset
+ (5) normalized codeset
+ (6) territory
+ (7) audience/modifier
+ */
+
+ /* If we have already tested for this locale entry there has to
+ be one data set in the list of loaded domains. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, 0, locale, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, domainname, 0);
+ if (retval != NULL)
+ {
+ /* We know something about this locale. */
+ int cnt;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval, domainbinding);
+
+ if (retval->data != NULL)
+ return retval;
+
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt], domainbinding);
+
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ return cnt >= 0 ? retval : NULL;
+ /* NOTREACHED */
+ }
+
+ /* See whether the locale value is an alias. If yes its value
+ *overwrites* the alias name. No test for the original value is
+ done. */
+ alias_value = _nl_expand_alias (locale);
+ if (alias_value != NULL)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ locale = strdup (alias_value);
+ if (locale == NULL)
+ return NULL;
+#else
+ size_t len = strlen (alias_value) + 1;
+ locale = (char *) malloc (len);
+ if (locale == NULL)
+ return NULL;
+
+ memcpy (locale, alias_value, len);
+#endif
+ }
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_' and `@' if
+ we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
+ mask = _nl_explode_name (locale, &language, &modifier, &territory,
+ &codeset, &normalized_codeset, &special,
+ &sponsor, &revision);
+
+ /* Create all possible locale entries which might be interested in
+ generalization. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, mask, language, territory,
+ codeset, normalized_codeset, modifier, special,
+ sponsor, revision, domainname, 1);
+ if (retval == NULL)
+ /* This means we are out of core. */
+ return NULL;
+
+ if (retval->decided == 0)
+ _nl_load_domain (retval, domainbinding);
+ if (retval->data == NULL)
+ {
+ int cnt;
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided == 0)
+ _nl_load_domain (retval->successor[cnt], domainbinding);
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ }
+
+ /* The room for an alias was dynamically allocated. Free it now. */
+ if (alias_value != NULL)
+ free (locale);
+
+ /* The space for normalized_codeset is dynamically allocated. Free it. */
+ if (mask & XPG_NORM_CODESET)
+ free ((void *) normalized_codeset);
+
+ return retval;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ struct loaded_l10nfile *runp = _nl_loaded_domains;
+
+ while (runp != NULL)
+ {
+ struct loaded_l10nfile *here = runp;
+ if (runp->data != NULL)
+ _nl_unload_domain ((struct loaded_domain *) runp->data);
+ runp = runp->next;
+ free ((char *) here->filename);
+ free (here);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/intl/gettext.c b/intl/gettext.c
new file mode 100644
index 0000000..22a6c24
--- /dev/null
+++ b/intl/gettext.c
@@ -0,0 +1,64 @@
+/* Implementation of gettext(3) function.
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# include <stdlib.h> /* Just for NULL. */
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define GETTEXT __gettext
+# define DCGETTEXT __dcgettext
+#else
+# define GETTEXT gettext__
+# define DCGETTEXT dcgettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+GETTEXT (msgid)
+ const char *msgid;
+{
+ return DCGETTEXT (NULL, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__gettext, gettext);
+#endif
diff --git a/intl/gettext.h b/intl/gettext.h
new file mode 100644
index 0000000..6f5d760
--- /dev/null
+++ b/intl/gettext.h
@@ -0,0 +1,102 @@
+/* Description of GNU message catalog format: general file layout.
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _GETTEXT_H
+#define _GETTEXT_H 1
+
+#if HAVE_LIMITS_H || _LIBC
+# include <limits.h>
+#endif
+
+/* @@ end of prolog @@ */
+
+/* The magic number of the GNU message catalog format. */
+#define _MAGIC 0x950412de
+#define _MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format. */
+#define MO_REVISION_NUMBER 0
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
+ when cross-compiling. */
+
+#if __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+#else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+#endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+#ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+#endif
+
+#if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned nls_uint32;
+#else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short nls_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long nls_uint32;
+# else
+ /* The following line is intended to throw an error. Using #error is
+ not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+#endif
+
+
+/* Header for binary .mo file format. */
+struct mo_file_header
+{
+ /* The magic number. */
+ nls_uint32 magic;
+ /* The revision number of the file format. */
+ nls_uint32 revision;
+ /* The number of strings pairs. */
+ nls_uint32 nstrings;
+ /* Offset of table with start offsets of original strings. */
+ nls_uint32 orig_tab_offset;
+ /* Offset of table with start offsets of translation strings. */
+ nls_uint32 trans_tab_offset;
+ /* Size of hashing table. */
+ nls_uint32 hash_tab_size;
+ /* Offset of first hashing entry. */
+ nls_uint32 hash_tab_offset;
+};
+
+struct string_desc
+{
+ /* Length of addressed string. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettext.h */
diff --git a/intl/gettextP.h b/intl/gettextP.h
new file mode 100644
index 0000000..43de1cd
--- /dev/null
+++ b/intl/gettextP.h
@@ -0,0 +1,252 @@
+/* Header describing internals of libintl library.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _GETTEXTP_H
+#define _GETTEXTP_H
+
+#include <stddef.h> /* Get size_t. */
+
+#ifdef _LIBC
+# include "../iconv/gconv_int.h"
+#else
+# if HAVE_ICONV
+# include <iconv.h>
+# endif
+#endif
+
+#include "loadinfo.h"
+
+#include "gettext.h" /* Get nls_uint32. */
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+/* Tell the compiler when a conditional or integer expression is
+ almost always true or almost always false. */
+#ifndef HAVE_BUILTIN_EXPECT
+# define __builtin_expect(expr, val) (expr)
+#endif
+
+#ifndef W
+# define W(flag, data) ((flag) ? SWAP (data) : (data))
+#endif
+
+
+#ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(i) bswap_32 (i)
+#else
+static inline nls_uint32
+SWAP (i)
+ nls_uint32 i;
+{
+ return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+}
+#endif
+
+
+/* This is the representation of the expressions to determine the
+ plural form. */
+struct expression
+{
+ int nargs; /* Number of arguments. */
+ enum operator
+ {
+ /* Without arguments: */
+ var, /* The variable "n". */
+ num, /* Decimal number. */
+ /* Unary operators: */
+ lnot, /* Logical NOT. */
+ /* Binary operators: */
+ mult, /* Multiplication. */
+ divide, /* Division. */
+ module, /* Module operation. */
+ plus, /* Addition. */
+ minus, /* Subtraction. */
+ less_than, /* Comparison. */
+ greater_than, /* Comparison. */
+ less_or_equal, /* Comparison. */
+ greater_or_equal, /* Comparison. */
+ equal, /* Comparision for equality. */
+ not_equal, /* Comparision for inequality. */
+ land, /* Logical AND. */
+ lor, /* Logical OR. */
+ /* Ternary operators: */
+ qmop /* Question mark operator. */
+ } operation;
+ union
+ {
+ unsigned long int num; /* Number value for `num'. */
+ struct expression *args[3]; /* Up to three arguments. */
+ } val;
+};
+
+/* This is the data structure to pass information to the parser and get
+ the result in a thread-safe way. */
+struct parse_args
+{
+ const char *cp;
+ struct expression *res;
+};
+
+
+/* The representation of an opened message catalog. */
+struct loaded_domain
+{
+ const char *data;
+ int use_mmap;
+ size_t mmap_size;
+ int must_swap;
+ nls_uint32 nstrings;
+ struct string_desc *orig_tab;
+ struct string_desc *trans_tab;
+ nls_uint32 hash_size;
+ nls_uint32 *hash_tab;
+ int codeset_cntr;
+#ifdef _LIBC
+ __gconv_t conv;
+#else
+# if HAVE_ICONV
+ iconv_t conv;
+# endif
+#endif
+ char **conv_tab;
+
+ struct expression *plural;
+ unsigned long int nplurals;
+};
+
+/* We want to allocate a string at the end of the struct. But ISO C
+ doesn't allow zero sized arrays. */
+#ifdef __GNUC__
+# define ZERO 0
+#else
+# define ZERO 1
+#endif
+
+/* A set of settings bound to a message domain. Used to store settings
+ from bindtextdomain() and bind_textdomain_codeset(). */
+struct binding
+{
+ struct binding *next;
+ char *dirname;
+ int codeset_cntr; /* Incremented each time codeset changes. */
+ char *codeset;
+ char domainname[ZERO];
+};
+
+/* A counter which is incremented each time some previous translations
+ become invalid.
+ This variable is part of the external ABI of the GNU libintl. */
+extern int _nl_msg_cat_cntr;
+
+struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
+ char *__locale,
+ const char *__domainname,
+ struct binding *__domainbinding))
+ internal_function;
+void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
+ struct binding *__domainbinding))
+ internal_function;
+void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
+ internal_function;
+const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
+ struct loaded_domain *__domain,
+ struct binding *__domainbinding))
+ internal_function;
+void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
+ internal_function;
+
+char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding,
+ const char *msgid, size_t *lengthp))
+ internal_function;
+
+#ifdef _LIBC
+extern char *__gettext PARAMS ((const char *__msgid));
+extern char *__dgettext PARAMS ((const char *__domainname,
+ const char *__msgid));
+extern char *__dcgettext PARAMS ((const char *__domainname,
+ const char *__msgid, int __category));
+extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+extern char *__dngettext PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int n));
+extern char *__dcngettext PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category));
+extern char *__dcigettext PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category));
+extern char *__textdomain PARAMS ((const char *__domainname));
+extern char *__bindtextdomain PARAMS ((const char *__domainname,
+ const char *__dirname));
+extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
+ const char *__codeset));
+#else
+extern char *gettext__ PARAMS ((const char *__msgid));
+extern char *dgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid));
+extern char *dcgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid, int __category));
+extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+extern char *dngettext__ PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+extern char *dcngettext__ PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category));
+extern char *dcigettext__ PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category));
+extern char *textdomain__ PARAMS ((const char *__domainname));
+extern char *bindtextdomain__ PARAMS ((const char *__domainname,
+ const char *__dirname));
+extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname,
+ const char *__codeset));
+#endif
+
+#ifdef _LIBC
+extern void __gettext_free_exp PARAMS ((struct expression *exp))
+ internal_function;
+extern int __gettextparse PARAMS ((void *arg));
+#else
+extern void gettext_free_exp__ PARAMS ((struct expression *exp))
+ internal_function;
+extern int gettextparse__ PARAMS ((void *arg));
+#endif
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettextP.h */
diff --git a/intl/hash-string.h b/intl/hash-string.h
new file mode 100644
index 0000000..ccb7acc
--- /dev/null
+++ b/intl/hash-string.h
@@ -0,0 +1,59 @@
+/* Description of GNU message catalog format: string hashing function.
+ Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* @@ end of prolog @@ */
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
+#endif
+
+/* We assume to have `unsigned long int' value with at least 32 bits. */
+#define HASHWORDBITS 32
+
+
+/* Defines the so called `hashpjw' function by P.J. Weinberger
+ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+static unsigned long int hash_string PARAMS ((const char *__str_param));
+
+static inline unsigned long int
+hash_string (str_param)
+ const char *str_param;
+{
+ unsigned long int hval, g;
+ const char *str = str_param;
+
+ /* Compute the hash value for the given string. */
+ hval = 0;
+ while (*str != '\0')
+ {
+ hval <<= 4;
+ hval += (unsigned long int) *str++;
+ g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
+ if (g != 0)
+ {
+ hval ^= g >> (HASHWORDBITS - 8);
+ hval ^= g;
+ }
+ }
+ return hval;
+}
diff --git a/intl/intl-compat.c b/intl/intl-compat.c
new file mode 100644
index 0000000..0a06ce9
--- /dev/null
+++ b/intl/intl-compat.c
@@ -0,0 +1,166 @@
+/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
+ Library.
+ Copyright (C) 1995, 2000, 2001 Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgnuintl.h"
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+/* This file redirects the gettext functions (without prefix or suffix) to
+ those defined in the included GNU gettext library (with "__" suffix).
+ It is compiled into libintl when the included GNU gettext library is
+ configured --with-included-gettext.
+
+ This redirection works also in the case that the system C library or
+ the system libintl library contain gettext/textdomain/... functions.
+ If it didn't, we would need to add preprocessor level redirections to
+ libgnuintl.h of the following form:
+
+# define gettext gettext__
+# define dgettext dgettext__
+# define dcgettext dcgettext__
+# define ngettext ngettext__
+# define dngettext dngettext__
+# define dcngettext dcngettext__
+# define textdomain textdomain__
+# define bindtextdomain bindtextdomain__
+# define bind_textdomain_codeset bind_textdomain_codeset__
+
+ How does this redirection work? There are two cases.
+ A. When libintl.a is linked into an executable, it works because
+ functions defined in the executable always override functions in
+ the shared libraries.
+ B. When libintl.so is used, it works because
+ 1. those systems defining gettext/textdomain/... in the C library
+ (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are
+ ELF systems and define these symbols as weak, thus explicitly
+ letting other shared libraries override it.
+ 2. those systems defining gettext/textdomain/... in a standalone
+ libintl.so library (namely, Solaris 2.3 and newer) have this
+ shared library in /usr/lib, and the linker will search /usr/lib
+ *after* the directory where the GNU gettext library is installed.
+
+ A third case, namely when libintl.a is linked into a shared library
+ whose name is not libintl.so, is not supported. In this case, on
+ Solaris, when -lintl precedes the linker option for the shared library
+ containing GNU gettext, the system's gettext would indeed override
+ the GNU gettext. Anyone doing this kind of stuff must be clever enough
+ to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker
+ command line. */
+
+
+#undef gettext
+#undef dgettext
+#undef dcgettext
+#undef ngettext
+#undef dngettext
+#undef dcngettext
+#undef textdomain
+#undef bindtextdomain
+#undef bind_textdomain_codeset
+
+
+char *
+gettext (msgid)
+ const char *msgid;
+{
+ return gettext__ (msgid);
+}
+
+
+char *
+dgettext (domainname, msgid)
+ const char *domainname;
+ const char *msgid;
+{
+ return dgettext__ (domainname, msgid);
+}
+
+
+char *
+dcgettext (domainname, msgid, category)
+ const char *domainname;
+ const char *msgid;
+ int category;
+{
+ return dcgettext__ (domainname, msgid, category);
+}
+
+
+char *
+ngettext (msgid1, msgid2, n)
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return ngettext__ (msgid1, msgid2, n);
+}
+
+
+char *
+dngettext (domainname, msgid1, msgid2, n)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return dngettext__ (domainname, msgid1, msgid2, n);
+}
+
+
+char *
+dcngettext (domainname, msgid1, msgid2, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+ int category;
+{
+ return dcngettext__ (domainname, msgid1, msgid2, n, category);
+}
+
+
+char *
+textdomain (domainname)
+ const char *domainname;
+{
+ return textdomain__ (domainname);
+}
+
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ return bindtextdomain__ (domainname, dirname);
+}
+
+
+char *
+bind_textdomain_codeset (domainname, codeset)
+ const char *domainname;
+ const char *codeset;
+{
+ return bind_textdomain_codeset__ (domainname, codeset);
+}
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
new file mode 100644
index 0000000..533e94b
--- /dev/null
+++ b/intl/l10nflist.c
@@ -0,0 +1,405 @@
+/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for stpcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined _LIBC || defined HAVE_ARGZ_H
+# include <argz.h>
+#endif
+#include <ctype.h>
+#include <sys/types.h>
+#include <stdlib.h>
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# ifndef stpcpy
+# define stpcpy(dest, src) __stpcpy(dest, src)
+# endif
+#else
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+#endif
+
+/* Define function which are usually not available. */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
+/* Returns the number of strings in ARGZ. */
+static size_t argz_count__ PARAMS ((const char *argz, size_t len));
+
+static size_t
+argz_count__ (argz, len)
+ const char *argz;
+ size_t len;
+{
+ size_t count = 0;
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len + 1;
+ len -= part_len + 1;
+ count++;
+ }
+ return count;
+}
+# undef __argz_count
+# define __argz_count(argz, len) argz_count__ (argz, len)
+#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
+/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+ except the last into the character SEP. */
+static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
+
+static void
+argz_stringify__ (argz, len, sep)
+ char *argz;
+ size_t len;
+ int sep;
+{
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len;
+ len -= part_len + 1;
+ if (len > 0)
+ *argz++ = sep;
+ }
+}
+# undef __argz_stringify
+# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
+static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+ const char *entry));
+
+static char *
+argz_next__ (argz, argz_len, entry)
+ char *argz;
+ size_t argz_len;
+ const char *entry;
+{
+ if (entry)
+ {
+ if (entry < argz + argz_len)
+ entry = strchr (entry, '\0') + 1;
+
+ return entry >= argz + argz_len ? NULL : (char *) entry;
+ }
+ else
+ if (argz_len > 0)
+ return argz;
+ else
+ return 0;
+}
+# undef __argz_next
+# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
+
+
+/* Return number of bits set in X. */
+static int pop PARAMS ((int x));
+
+static inline int
+pop (x)
+ int x;
+{
+ /* We assume that no more than 16 bits are used. */
+ x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+ x = ((x & ~0x3333) >> 2) + (x & 0x3333);
+ x = ((x >> 4) + x) & 0x0f0f;
+ x = ((x >> 8) + x) & 0xff;
+
+ return x;
+}
+
+
+struct loaded_l10nfile *
+_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+ territory, codeset, normalized_codeset, modifier, special,
+ sponsor, revision, filename, do_allocate)
+ struct loaded_l10nfile **l10nfile_list;
+ const char *dirlist;
+ size_t dirlist_len;
+ int mask;
+ const char *language;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *modifier;
+ const char *special;
+ const char *sponsor;
+ const char *revision;
+ const char *filename;
+ int do_allocate;
+{
+ char *abs_filename;
+ struct loaded_l10nfile *last = NULL;
+ struct loaded_l10nfile *retval;
+ char *cp;
+ size_t entries;
+ int cnt;
+
+ /* Allocate room for the full file name. */
+ abs_filename = (char *) malloc (dirlist_len
+ + strlen (language)
+ + ((mask & TERRITORY) != 0
+ ? strlen (territory) + 1 : 0)
+ + ((mask & XPG_CODESET) != 0
+ ? strlen (codeset) + 1 : 0)
+ + ((mask & XPG_NORM_CODESET) != 0
+ ? strlen (normalized_codeset) + 1 : 0)
+ + (((mask & XPG_MODIFIER) != 0
+ || (mask & CEN_AUDIENCE) != 0)
+ ? strlen (modifier) + 1 : 0)
+ + ((mask & CEN_SPECIAL) != 0
+ ? strlen (special) + 1 : 0)
+ + (((mask & CEN_SPONSOR) != 0
+ || (mask & CEN_REVISION) != 0)
+ ? (1 + ((mask & CEN_SPONSOR) != 0
+ ? strlen (sponsor) + 1 : 0)
+ + ((mask & CEN_REVISION) != 0
+ ? strlen (revision) + 1 : 0)) : 0)
+ + 1 + strlen (filename) + 1);
+
+ if (abs_filename == NULL)
+ return NULL;
+
+ retval = NULL;
+ last = NULL;
+
+ /* Construct file name. */
+ memcpy (abs_filename, dirlist, dirlist_len);
+ __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR);
+ cp = abs_filename + (dirlist_len - 1);
+ *cp++ = '/';
+ cp = stpcpy (cp, language);
+
+ if ((mask & TERRITORY) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, territory);
+ }
+ if ((mask & XPG_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, codeset);
+ }
+ if ((mask & XPG_NORM_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, normalized_codeset);
+ }
+ if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
+ {
+ /* This component can be part of both syntaces but has different
+ leading characters. For CEN we use `+', else `@'. */
+ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
+ cp = stpcpy (cp, modifier);
+ }
+ if ((mask & CEN_SPECIAL) != 0)
+ {
+ *cp++ = '+';
+ cp = stpcpy (cp, special);
+ }
+ if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
+ {
+ *cp++ = ',';
+ if ((mask & CEN_SPONSOR) != 0)
+ cp = stpcpy (cp, sponsor);
+ if ((mask & CEN_REVISION) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, revision);
+ }
+ }
+
+ *cp++ = '/';
+ stpcpy (cp, filename);
+
+ /* Look in list of already loaded domains whether it is already
+ available. */
+ last = NULL;
+ for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
+ if (retval->filename != NULL)
+ {
+ int compare = strcmp (retval->filename, abs_filename);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It's not in the list. */
+ retval = NULL;
+ break;
+ }
+
+ last = retval;
+ }
+
+ if (retval != NULL || do_allocate == 0)
+ {
+ free (abs_filename);
+ return retval;
+ }
+
+ retval = (struct loaded_l10nfile *)
+ malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)
+ * (1 << pop (mask))
+ * sizeof (struct loaded_l10nfile *)));
+ if (retval == NULL)
+ return NULL;
+
+ retval->filename = abs_filename;
+ retval->decided = (__argz_count (dirlist, dirlist_len) != 1
+ || ((mask & XPG_CODESET) != 0
+ && (mask & XPG_NORM_CODESET) != 0));
+ retval->data = NULL;
+
+ if (last == NULL)
+ {
+ retval->next = *l10nfile_list;
+ *l10nfile_list = retval;
+ }
+ else
+ {
+ retval->next = last->next;
+ last->next = retval;
+ }
+
+ entries = 0;
+ /* If the DIRLIST is a real list the RETVAL entry corresponds not to
+ a real file. So we have to use the DIRLIST separation mechanism
+ of the inner loop. */
+ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;
+ for (; cnt >= 0; --cnt)
+ if ((cnt & ~mask) == 0
+ && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)
+ && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
+ {
+ /* Iterate over all elements of the DIRLIST. */
+ char *dir = NULL;
+
+ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+ != NULL)
+ retval->successor[entries++]
+ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
+ language, territory, codeset,
+ normalized_codeset, modifier, special,
+ sponsor, revision, filename, 1);
+ }
+ retval->successor[entries] = NULL;
+
+ return retval;
+}
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. The return value is dynamically allocated and has to be
+ freed by the caller. */
+const char *
+_nl_normalize_codeset (codeset, name_len)
+ const char *codeset;
+ size_t name_len;
+{
+ int len = 0;
+ int only_digit = 1;
+ char *retval;
+ char *wp;
+ size_t cnt;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalnum (codeset[cnt]))
+ {
+ ++len;
+
+ if (isalpha (codeset[cnt]))
+ only_digit = 0;
+ }
+
+ retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
+
+ if (retval != NULL)
+ {
+ if (only_digit)
+ wp = stpcpy (retval, "iso");
+ else
+ wp = retval;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalpha (codeset[cnt]))
+ *wp++ = tolower (codeset[cnt]);
+ else if (isdigit (codeset[cnt]))
+ *wp++ = codeset[cnt];
+
+ *wp = '\0';
+ }
+
+ return (const char *) retval;
+}
+
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
diff --git a/intl/libgettext.h b/intl/libgettext.h
new file mode 100644
index 0000000..c5be54a
--- /dev/null
+++ b/intl/libgettext.h
@@ -0,0 +1,49 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+ Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option. */
+#if ENABLE_NLS
+
+/* Get declarations of GNU message catalog functions. */
+# include <libintl.h>
+
+#else
+
+# define gettext(Msgid) (Msgid)
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define ngettext(Msgid1, Msgid2, N) \
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
+# define textdomain(Domainname) ((char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset))
+
+#endif
+
+/* For automatical extraction of messages sometimes no real
+ translation is needed. Instead the string itself is the result. */
+#define gettext_noop(Str) (Str)
+
+#endif /* _LIBGETTEXT_H */
diff --git a/intl/libgnuintl.h b/intl/libgnuintl.h
new file mode 100644
index 0000000..f891deb
--- /dev/null
+++ b/intl/libgnuintl.h
@@ -0,0 +1,128 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _LIBINTL_H
+#define _LIBINTL_H 1
+
+#include <locale.h>
+
+/* The LC_MESSAGES locale category is the category used by the functions
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
+ On systems that don't define it, use an arbitrary value instead.
+ On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
+ this file!) and then only defines LC_MESSAGES. To avoid a redefinition
+ warning, don't define LC_MESSAGES in this case. */
+#if !defined LC_MESSAGES && !defined __LOCALE_H
+# define LC_MESSAGES 1729
+#endif
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
+ precedence over _conio_gettext. */
+#ifdef __DJGPP__
+# undef gettext
+# define gettext gettext
+#endif
+
+#ifndef PARAMS
+# if __STDC__ || defined __cplusplus
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+extern char *gettext PARAMS ((const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
+ int __category));
+
+
+/* Similar to `gettext' but select the plural form corresponding to the
+ number N. */
+extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+
+/* Similar to `dgettext' but select the plural form corresponding to the
+ number N. */
+extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n));
+
+/* Similar to `dcgettext' but select the plural form corresponding to the
+ number N. */
+extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n,
+ int __category));
+
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+extern char *textdomain PARAMS ((const char *__domainname));
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+extern char *bindtextdomain PARAMS ((const char *__domainname,
+ const char *__dirname));
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
+ const char *__codeset));
+
+
+/* Optimized version of the functions above. */
+#if defined __OPTIMIZED
+/* These are macros, but could also be inline functions. */
+
+# define gettext(msgid) \
+ dgettext (NULL, msgid)
+
+# define dgettext(domainname, msgid) \
+ dcgettext (domainname, msgid, LC_MESSAGES)
+
+# define ngettext(msgid1, msgid2, n) \
+ dngettext (NULL, msgid1, msgid2, n)
+
+# define dngettext(domainname, msgid1, msgid2, n) \
+ dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
+
+#endif /* Optimizing. */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libintl.h */
diff --git a/intl/loadinfo.h b/intl/loadinfo.h
new file mode 100644
index 0000000..b861260
--- /dev/null
+++ b/intl/loadinfo.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _LOADINFO_H
+#define _LOADINFO_H 1
+
+#ifndef PARAMS
+# if __STDC__
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+/* Tell the compiler when a conditional or integer expression is
+ almost always true or almost always false. */
+#ifndef HAVE_BUILTIN_EXPECT
+# define __builtin_expect(expr, val) (expr)
+#endif
+
+/* Separator in PATH like lists of pathnames. */
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define PATH_SEPARATOR ';'
+#else
+ /* Unix */
+# define PATH_SEPARATOR ':'
+#endif
+
+/* Encoding of locale name parts. */
+#define CEN_REVISION 1
+#define CEN_SPONSOR 2
+#define CEN_SPECIAL 4
+#define XPG_NORM_CODESET 8
+#define XPG_CODESET 16
+#define TERRITORY 32
+#define CEN_AUDIENCE 64
+#define XPG_MODIFIER 128
+
+#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
+#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
+
+
+struct loaded_l10nfile
+{
+ const char *filename;
+ int decided;
+
+ const void *data;
+
+ struct loaded_l10nfile *next;
+ struct loaded_l10nfile *successor[1];
+};
+
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. The return value is dynamically allocated and has to be
+ freed by the caller. */
+extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
+ size_t name_len));
+
+extern struct loaded_l10nfile *
+_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
+ const char *dirlist, size_t dirlist_len, int mask,
+ const char *language, const char *territory,
+ const char *codeset,
+ const char *normalized_codeset,
+ const char *modifier, const char *special,
+ const char *sponsor, const char *revision,
+ const char *filename, int do_allocate));
+
+
+extern const char *_nl_expand_alias PARAMS ((const char *name));
+
+/* normalized_codeset is dynamically allocated and has to be freed by
+ the caller. */
+extern int _nl_explode_name PARAMS ((char *name, const char **language,
+ const char **modifier,
+ const char **territory,
+ const char **codeset,
+ const char **normalized_codeset,
+ const char **special,
+ const char **sponsor,
+ const char **revision));
+
+extern char *_nl_find_language PARAMS ((const char *name));
+
+#endif /* loadinfo.h */
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
new file mode 100644
index 0000000..f99ebee
--- /dev/null
+++ b/intl/loadmsgcat.c
@@ -0,0 +1,567 @@
+/* Load needed message catalogs.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#ifdef _LIBC
+# include <langinfo.h>
+# include <locale.h>
+#endif
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || (defined _LIBC && defined _POSIX_MAPPED_FILES)
+# include <sys/mman.h>
+# undef HAVE_MMAP
+# define HAVE_MMAP 1
+#else
+# undef HAVE_MMAP
+#endif
+
+#include "gettext.h"
+#include "gettextP.h"
+
+#ifdef _LIBC
+# include "../locale/localeinfo.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ISO C functions. This is required by the standard
+ because some ISO C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define open __open
+# define close __close
+# define read __read
+# define mmap __mmap
+# define munmap __munmap
+#endif
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define PLURAL_PARSE __gettextparse
+#else
+# define PLURAL_PARSE gettextparse__
+#endif
+
+/* For those losing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+# define freea(p) /* nothing */
+#else
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
+
+/* For systems that distinguish between text and binary I/O.
+ O_BINARY is usually declared in <fcntl.h>. */
+#if !defined O_BINARY && defined _O_BINARY
+ /* For MSC-compatible compilers. */
+# define O_BINARY _O_BINARY
+# define O_TEXT _O_TEXT
+#endif
+#ifdef __BEOS__
+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
+# undef O_BINARY
+# undef O_TEXT
+#endif
+/* On reasonable systems, binary I/O is the default. */
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
+/* We need a sign, whether a new catalog was loaded, which can be associated
+ with all translations. This is important if the translations are
+ cached by one of GCC's features. */
+int _nl_msg_cat_cntr;
+
+#if (defined __GNUC__ && !defined __APPLE_CC__) \
+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+
+/* These structs are the constant expression for the germanic plural
+ form determination. It represents the expression "n != 1". */
+static const struct expression plvar =
+{
+ .nargs = 0,
+ .operation = var,
+};
+static const struct expression plone =
+{
+ .nargs = 0,
+ .operation = num,
+ .val =
+ {
+ .num = 1
+ }
+};
+static struct expression germanic_plural =
+{
+ .nargs = 2,
+ .operation = not_equal,
+ .val =
+ {
+ .args =
+ {
+ [0] = (struct expression *) &plvar,
+ [1] = (struct expression *) &plone
+ }
+ }
+};
+
+# define INIT_GERMANIC_PLURAL()
+
+#else
+
+/* For compilers without support for ISO C 99 struct/union initializers:
+ Initialization at run-time. */
+
+static struct expression plvar;
+static struct expression plone;
+static struct expression germanic_plural;
+
+static void
+init_germanic_plural ()
+{
+ if (plone.val.num == 0)
+ {
+ plvar.nargs = 0;
+ plvar.operation = var;
+
+ plone.nargs = 0;
+ plone.operation = num;
+ plone.val.num = 1;
+
+ germanic_plural.nargs = 2;
+ germanic_plural.operation = not_equal;
+ germanic_plural.val.args[0] = &plvar;
+ germanic_plural.val.args[1] = &plone;
+ }
+}
+
+# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
+
+#endif
+
+
+/* Initialize the codeset dependent parts of an opened message catalog.
+ Return the header entry. */
+const char *
+internal_function
+_nl_init_domain_conv (domain_file, domain, domainbinding)
+ struct loaded_l10nfile *domain_file;
+ struct loaded_domain *domain;
+ struct binding *domainbinding;
+{
+ /* Find out about the character set the file is encoded with.
+ This can be found (in textual form) in the entry "". If this
+ entry does not exist or if this does not contain the `charset='
+ information, we will assume the charset matches the one the
+ current locale and we don't have to perform any conversion. */
+ char *nullentry;
+ size_t nullentrylen;
+
+ /* Preinitialize fields, to avoid recursion during _nl_find_msg. */
+ domain->codeset_cntr =
+ (domainbinding != NULL ? domainbinding->codeset_cntr : 0);
+#ifdef _LIBC
+ domain->conv = (__gconv_t) -1;
+#else
+# if HAVE_ICONV
+ domain->conv = (iconv_t) -1;
+# endif
+#endif
+ domain->conv_tab = NULL;
+
+ /* Get the header entry. */
+ nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
+
+ if (nullentry != NULL)
+ {
+#if defined _LIBC || HAVE_ICONV
+ const char *charsetstr;
+
+ charsetstr = strstr (nullentry, "charset=");
+ if (charsetstr != NULL)
+ {
+ size_t len;
+ char *charset;
+ const char *outcharset;
+
+ charsetstr += strlen ("charset=");
+ len = strcspn (charsetstr, " \t\n");
+
+ charset = (char *) alloca (len + 1);
+# if defined _LIBC || HAVE_MEMPCPY
+ *((char *) mempcpy (charset, charsetstr, len)) = '\0';
+# else
+ memcpy (charset, charsetstr, len);
+ charset[len] = '\0';
+# endif
+
+ /* The output charset should normally be determined by the
+ locale. But sometimes the locale is not used or not correctly
+ set up, so we provide a possibility for the user to override
+ this. Moreover, the value specified through
+ bind_textdomain_codeset overrides both. */
+ if (domainbinding != NULL && domainbinding->codeset != NULL)
+ outcharset = domainbinding->codeset;
+ else
+ {
+ outcharset = getenv ("OUTPUT_CHARSET");
+ if (outcharset == NULL || outcharset[0] == '\0')
+ {
+# ifdef _LIBC
+ outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
+# else
+# if HAVE_ICONV
+ extern const char *locale_charset (void);
+ outcharset = locale_charset ();
+# endif
+# endif
+ }
+ }
+
+# ifdef _LIBC
+ /* We always want to use transliteration. */
+ outcharset = norm_add_slashes (outcharset, "TRANSLIT");
+ charset = norm_add_slashes (charset, NULL);
+ if (__gconv_open (outcharset, charset, &domain->conv,
+ GCONV_AVOID_NOCONV)
+ != __GCONV_OK)
+ domain->conv = (__gconv_t) -1;
+# else
+# if HAVE_ICONV
+ /* When using GNU libiconv, we want to use transliteration. */
+# if _LIBICONV_VERSION >= 0x0105
+ len = strlen (outcharset);
+ {
+ char *tmp = (char *) alloca (len + 10 + 1);
+ memcpy (tmp, outcharset, len);
+ memcpy (tmp + len, "//TRANSLIT", 10 + 1);
+ outcharset = tmp;
+ }
+# endif
+ domain->conv = iconv_open (outcharset, charset);
+# if _LIBICONV_VERSION >= 0x0105
+ freea (outcharset);
+# endif
+# endif
+# endif
+
+ freea (charset);
+ }
+#endif /* _LIBC || HAVE_ICONV */
+ }
+
+ return nullentry;
+}
+
+/* Frees the codeset dependent parts of an opened message catalog. */
+void
+internal_function
+_nl_free_domain_conv (domain)
+ struct loaded_domain *domain;
+{
+ if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
+ free (domain->conv_tab);
+
+#ifdef _LIBC
+ if (domain->conv != (__gconv_t) -1)
+ __gconv_close (domain->conv);
+#else
+# if HAVE_ICONV
+ if (domain->conv != (iconv_t) -1)
+ iconv_close (domain->conv);
+# endif
+#endif
+}
+
+/* Load the message catalogs specified by FILENAME. If it is no valid
+ message catalog do nothing. */
+void
+internal_function
+_nl_load_domain (domain_file, domainbinding)
+ struct loaded_l10nfile *domain_file;
+ struct binding *domainbinding;
+{
+ int fd;
+ size_t size;
+#ifdef _LIBC
+ struct stat64 st;
+#else
+ struct stat st;
+#endif
+ struct mo_file_header *data = (struct mo_file_header *) -1;
+ int use_mmap = 0;
+ struct loaded_domain *domain;
+ const char *nullentry;
+
+ domain_file->decided = 1;
+ domain_file->data = NULL;
+
+ /* Note that it would be useless to store domainbinding in domain_file
+ because domainbinding might be == NULL now but != NULL later (after
+ a call to bind_textdomain_codeset). */
+
+ /* If the record does not represent a valid locale the FILENAME
+ might be NULL. This can happen when according to the given
+ specification the locale file name is different for XPG and CEN
+ syntax. */
+ if (domain_file->filename == NULL)
+ return;
+
+ /* Try to open the addressed file. */
+ fd = open (domain_file->filename, O_RDONLY | O_BINARY);
+ if (fd == -1)
+ return;
+
+ /* We must know about the size of the file. */
+ if (
+#ifdef _LIBC
+ __builtin_expect (fstat64 (fd, &st) != 0, 0)
+#else
+ __builtin_expect (fstat (fd, &st) != 0, 0)
+#endif
+ || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
+ || __builtin_expect (size < sizeof (struct mo_file_header), 0))
+ {
+ /* Something went wrong. */
+ close (fd);
+ return;
+ }
+
+#ifdef HAVE_MMAP
+ /* Now we are ready to load the file. If mmap() is available we try
+ this first. If not available or it failed we try to load it. */
+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
+ MAP_PRIVATE, fd, 0);
+
+ if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
+ {
+ /* mmap() call was successful. */
+ close (fd);
+ use_mmap = 1;
+ }
+#endif
+
+ /* If the data is not yet available (i.e. mmap'ed) we try to load
+ it manually. */
+ if (data == (struct mo_file_header *) -1)
+ {
+ size_t to_read;
+ char *read_ptr;
+
+ data = (struct mo_file_header *) malloc (size);
+ if (data == NULL)
+ return;
+
+ to_read = size;
+ read_ptr = (char *) data;
+ do
+ {
+ long int nb = (long int) read (fd, read_ptr, to_read);
+ if (nb <= 0)
+ {
+#ifdef EINTR
+ if (nb == -1 && errno == EINTR)
+ continue;
+#endif
+ close (fd);
+ return;
+ }
+ read_ptr += nb;
+ to_read -= nb;
+ }
+ while (to_read > 0);
+
+ close (fd);
+ }
+
+ /* Using the magic number we can test whether it really is a message
+ catalog file. */
+ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
+ 0))
+ {
+ /* The magic number is wrong: not a message catalog file. */
+#ifdef HAVE_MMAP
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ return;
+ }
+
+ domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain == NULL)
+ return;
+ domain_file->data = domain;
+
+ domain->data = (char *) data;
+ domain->use_mmap = use_mmap;
+ domain->mmap_size = size;
+ domain->must_swap = data->magic != _MAGIC;
+
+ /* Fill in the information about the available tables. */
+ switch (W (domain->must_swap, data->revision))
+ {
+ case 0:
+ domain->nstrings = W (domain->must_swap, data->nstrings);
+ domain->orig_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+ domain->trans_tab = (struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+ domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+ domain->hash_tab = (nls_uint32 *)
+ ((char *) data + W (domain->must_swap, data->hash_tab_offset));
+ break;
+ default:
+ /* This is an invalid revision. */
+#ifdef HAVE_MMAP
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ free (domain);
+ domain_file->data = NULL;
+ return;
+ }
+
+ /* Now initialize the character set converter from the character set
+ the file is encoded with (found in the header entry) to the domain's
+ specified character set or the locale's character set. */
+ nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
+
+ /* Also look for a plural specification. */
+ if (nullentry != NULL)
+ {
+ const char *plural;
+ const char *nplurals;
+
+ plural = strstr (nullentry, "plural=");
+ nplurals = strstr (nullentry, "nplurals=");
+ if (plural == NULL || nplurals == NULL)
+ goto no_plural;
+ else
+ {
+ /* First get the number. */
+ char *endp;
+ unsigned long int n;
+ struct parse_args args;
+
+ nplurals += 9;
+ while (*nplurals != '\0' && isspace (*nplurals))
+ ++nplurals;
+#if defined HAVE_STRTOUL || defined _LIBC
+ n = strtoul (nplurals, &endp, 10);
+#else
+ for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
+ n = n * 10 + (*endp - '0');
+#endif
+ domain->nplurals = n;
+ if (nplurals == endp)
+ goto no_plural;
+
+ /* Due to the restrictions bison imposes onto the interface of the
+ scanner function we have to put the input string and the result
+ passed up from the parser into the same structure which address
+ is passed down to the parser. */
+ plural += 7;
+ args.cp = plural;
+ if (PLURAL_PARSE (&args) != 0)
+ goto no_plural;
+ domain->plural = args.res;
+ }
+ }
+ else
+ {
+ /* By default we are using the Germanic form: singular form only
+ for `one', the plural form otherwise. Yes, this is also what
+ English is using since English is a Germanic language. */
+ no_plural:
+ INIT_GERMANIC_PLURAL ();
+ domain->plural = &germanic_plural;
+ domain->nplurals = 2;
+ }
+}
+
+
+#ifdef _LIBC
+void
+internal_function
+_nl_unload_domain (domain)
+ struct loaded_domain *domain;
+{
+ if (domain->plural != &germanic_plural)
+ __gettext_free_exp (domain->plural);
+
+ _nl_free_domain_conv (domain);
+
+# ifdef _POSIX_MAPPED_FILES
+ if (domain->use_mmap)
+ munmap ((caddr_t) domain->data, domain->mmap_size);
+ else
+# endif /* _POSIX_MAPPED_FILES */
+ free ((void *) domain->data);
+
+ free (domain);
+}
+#endif
diff --git a/intl/localcharset.c b/intl/localcharset.c
new file mode 100644
index 0000000..61f8f3e
--- /dev/null
+++ b/intl/localcharset.c
@@ -0,0 +1,271 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+ Copyright (C) 2000-2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+
+#include <stdio.h>
+#if HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# undef WIN32 /* avoid warning on mingw32 */
+# define WIN32
+#endif
+
+#ifndef WIN32
+# if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+# else
+# if HAVE_SETLOCALE
+# include <locale.h>
+# endif
+# endif
+#else /* WIN32 */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+ possible multithread problem in the function get_charset_aliases. If we
+ are running in a threaded environment, and if two threads initialize
+ 'charset_aliases' simultaneously, both will produce the same value,
+ and everything will be ok if the two assignments to 'charset_aliases'
+ are atomic. But I don't know what will happen if the two assignments mix. */
+#if __STDC__ != 1
+# define volatile /* empty */
+#endif
+/* Pointer to the contents of the charset.alias file, if it has already been
+ read, else NULL. Its format is:
+ ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
+static const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file. */
+static const char *
+get_charset_aliases ()
+{
+ const char *cp;
+
+ cp = charset_aliases;
+ if (cp == NULL)
+ {
+#ifndef WIN32
+ FILE *fp;
+ const char *dir = LIBDIR;
+ const char *base = "charset.alias";
+ char *file_name;
+
+ /* Concatenate dir and base into freshly allocated file_name. */
+ {
+ size_t dir_len = strlen (dir);
+ size_t base_len = strlen (base);
+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+ if (file_name != NULL)
+ {
+ memcpy (file_name, dir, dir_len);
+ if (add_slash)
+ file_name[dir_len] = DIRECTORY_SEPARATOR;
+ memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+ }
+ }
+
+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+ /* Out of memory or file not found, treat it as empty. */
+ cp = "";
+ else
+ {
+ /* Parse the file's contents. */
+ int c;
+ char buf1[50+1];
+ char buf2[50+1];
+ char *res_ptr = NULL;
+ size_t res_size = 0;
+ size_t l1, l2;
+
+ for (;;)
+ {
+ c = getc (fp);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#')
+ {
+ /* Skip comment, to end of line. */
+ do
+ c = getc (fp);
+ while (!(c == EOF || c == '\n'));
+ if (c == EOF)
+ break;
+ continue;
+ }
+ ungetc (c, fp);
+ if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
+ break;
+ l1 = strlen (buf1);
+ l2 = strlen (buf2);
+ if (res_size == 0)
+ {
+ res_size = l1 + 1 + l2 + 1;
+ res_ptr = malloc (res_size + 1);
+ }
+ else
+ {
+ res_size += l1 + 1 + l2 + 1;
+ res_ptr = realloc (res_ptr, res_size + 1);
+ }
+ if (res_ptr == NULL)
+ {
+ /* Out of memory. */
+ res_size = 0;
+ break;
+ }
+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+ strcpy (res_ptr + res_size - (l2 + 1), buf2);
+ }
+ fclose (fp);
+ if (res_size == 0)
+ cp = "";
+ else
+ {
+ *(res_ptr + res_size) = '\0';
+ cp = res_ptr;
+ }
+ }
+
+ if (file_name != NULL)
+ free (file_name);
+
+#else /* WIN32 */
+
+ /* To avoid the troubles of installing a separate file in the same
+ directory as the DLL and of retrieving the DLL's directory at
+ runtime, simply inline the aliases here. */
+
+ cp = "CP936" "\0" "GBK" "\0"
+ "CP1361" "\0" "JOHAB" "\0";
+#endif
+
+ charset_aliases = cp;
+ }
+
+ return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset ()
+{
+ const char *codeset;
+ const char *aliases;
+
+#ifndef WIN32
+
+# if HAVE_LANGINFO_CODESET
+
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+# else
+
+ /* On old systems which lack it, use setlocale or getenv. */
+ const char *locale = NULL;
+
+ /* But most old systems don't have a complete set of locales. Some
+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
+ use setlocale here; it would return "C" when it doesn't support the
+ locale name the user has set. */
+# if HAVE_SETLOCALE && 0
+ locale = setlocale (LC_CTYPE, NULL);
+# endif
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ }
+
+ /* On some old systems, one used to set locale = "iso8859_1". On others,
+ you set it to "language_COUNTRY.charset". In any case, we resolve it
+ through the charset.alias file. */
+ codeset = locale;
+
+# endif
+
+#else /* WIN32 */
+
+ static char buf[2 + 10 + 1];
+
+ /* Win32 has a function returning the locale's codepage as a number. */
+ sprintf (buf, "CP%u", GetACP ());
+ codeset = buf;
+
+#endif
+
+ if (codeset == NULL)
+ /* The canonical name cannot be determined. */
+ codeset = "";
+
+ /* Resolve alias. */
+ for (aliases = get_charset_aliases ();
+ *aliases != '\0';
+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+ if (strcmp (codeset, aliases) == 0
+ || (aliases[0] == '*' && aliases[1] == '\0'))
+ {
+ codeset = aliases + strlen (aliases) + 1;
+ break;
+ }
+
+ return codeset;
+}
diff --git a/intl/locale.alias b/intl/locale.alias
new file mode 100644
index 0000000..bd7b9b3
--- /dev/null
+++ b/intl/locale.alias
@@ -0,0 +1,78 @@
+# Locale name alias data base.
+# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+# The format of this file is the same as for the corresponding file of
+# the X Window System, which normally can be found in
+# /usr/lib/X11/locale/locale.alias
+# A single line contains two fields: an alias and a substitution value.
+# All entries are case independent.
+
+# Note: This file is far from being complete. If you have a value for
+# your own site which you think might be useful for others too, share
+# it with the rest of us. Send it using the `glibcbug' script to
+# bugs@gnu.org.
+
+# Packages using this file:
+
+bokmal no_NO.ISO-8859-1
+bokmål no_NO.ISO-8859-1
+catalan ca_ES.ISO-8859-1
+croatian hr_HR.ISO-8859-2
+czech cs_CZ.ISO-8859-2
+danish da_DK.ISO-8859-1
+dansk da_DK.ISO-8859-1
+deutsch de_DE.ISO-8859-1
+dutch nl_NL.ISO-8859-1
+eesti et_EE.ISO-8859-1
+estonian et_EE.ISO-8859-1
+finnish fi_FI.ISO-8859-1
+français fr_FR.ISO-8859-1
+french fr_FR.ISO-8859-1
+galego gl_ES.ISO-8859-1
+galician gl_ES.ISO-8859-1
+german de_DE.ISO-8859-1
+greek el_GR.ISO-8859-7
+hebrew he_IL.ISO-8859-8
+hrvatski hr_HR.ISO-8859-2
+hungarian hu_HU.ISO-8859-2
+icelandic is_IS.ISO-8859-1
+italian it_IT.ISO-8859-1
+japanese ja_JP.eucJP
+japanese.euc ja_JP.eucJP
+ja_JP ja_JP.eucJP
+ja_JP.ujis ja_JP.eucJP
+japanese.sjis ja_JP.SJIS
+korean ko_KR.eucKR
+korean.euc ko_KR.eucKR
+ko_KR ko_KR.eucKR
+lithuanian lt_LT.ISO-8859-13
+nb_NO no_NO.ISO-8859-1
+nb_NO.ISO-8859-1 no_NO.ISO-8859-1
+norwegian no_NO.ISO-8859-1
+nynorsk nn_NO.ISO-8859-1
+polish pl_PL.ISO-8859-2
+portuguese pt_PT.ISO-8859-1
+romanian ro_RO.ISO-8859-2
+russian ru_RU.ISO-8859-5
+slovak sk_SK.ISO-8859-2
+slovene sl_SI.ISO-8859-2
+slovenian sl_SI.ISO-8859-2
+spanish es_ES.ISO-8859-1
+swedish sv_SE.ISO-8859-1
+thai th_TH.TIS-620
+turkish tr_TR.ISO-8859-9
diff --git a/intl/localealias.c b/intl/localealias.c
new file mode 100644
index 0000000..91e7acc
--- /dev/null
+++ b/intl/localealias.c
@@ -0,0 +1,404 @@
+/* Handle aliases for locale names.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <stdlib.h>
+
+#include <string.h>
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define strcasecmp __strcasecmp
+
+# ifndef mempcpy
+# define mempcpy __mempcpy
+# endif
+# define HAVE_MEMPCPY 1
+
+/* We need locking here since we can be called from different places. */
+# include <bits/libc-lock.h>
+
+__libc_lock_define_initialized (static, lock);
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+/* For those losing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+# define freea(p) /* nothing */
+#else
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
+
+#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
+# undef fgets
+# define fgets(buf, len, s) fgets_unlocked (buf, len, s)
+#endif
+#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED
+# undef feof
+# define feof(s) feof_unlocked (s)
+#endif
+
+
+struct alias_map
+{
+ const char *alias;
+ const char *value;
+};
+
+
+static char *string_space;
+static size_t string_space_act;
+static size_t string_space_max;
+static struct alias_map *map;
+static size_t nmap;
+static size_t maxmap;
+
+
+/* Prototypes for local functions. */
+static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
+ internal_function;
+static int extend_alias_table PARAMS ((void));
+static int alias_compare PARAMS ((const struct alias_map *map1,
+ const struct alias_map *map2));
+
+
+const char *
+_nl_expand_alias (name)
+ const char *name;
+{
+ static const char *locale_alias_path = LOCALE_ALIAS_PATH;
+ struct alias_map *retval;
+ const char *result = NULL;
+ size_t added;
+
+#ifdef _LIBC
+ __libc_lock_lock (lock);
+#endif
+
+ do
+ {
+ struct alias_map item;
+
+ item.alias = name;
+
+ if (nmap > 0)
+ retval = (struct alias_map *) bsearch (&item, map, nmap,
+ sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *,
+ const void *))
+ ) alias_compare);
+ else
+ retval = NULL;
+
+ /* We really found an alias. Return the value. */
+ if (retval != NULL)
+ {
+ result = retval->value;
+ break;
+ }
+
+ /* Perhaps we can find another alias file. */
+ added = 0;
+ while (added == 0 && locale_alias_path[0] != '\0')
+ {
+ const char *start;
+
+ while (locale_alias_path[0] == PATH_SEPARATOR)
+ ++locale_alias_path;
+ start = locale_alias_path;
+
+ while (locale_alias_path[0] != '\0'
+ && locale_alias_path[0] != PATH_SEPARATOR)
+ ++locale_alias_path;
+
+ if (start < locale_alias_path)
+ added = read_alias_file (start, locale_alias_path - start);
+ }
+ }
+ while (added != 0);
+
+#ifdef _LIBC
+ __libc_lock_unlock (lock);
+#endif
+
+ return result;
+}
+
+
+static size_t
+internal_function
+read_alias_file (fname, fname_len)
+ const char *fname;
+ int fname_len;
+{
+ FILE *fp;
+ char *full_fname;
+ size_t added;
+ static const char aliasfile[] = "/locale.alias";
+
+ full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+#ifdef HAVE_MEMPCPY
+ mempcpy (mempcpy (full_fname, fname, fname_len),
+ aliasfile, sizeof aliasfile);
+#else
+ memcpy (full_fname, fname, fname_len);
+ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+#endif
+
+ fp = fopen (full_fname, "r");
+ freea (full_fname);
+ if (fp == NULL)
+ return 0;
+
+ added = 0;
+ while (!feof (fp))
+ {
+ /* It is a reasonable approach to use a fix buffer here because
+ a) we are only interested in the first two fields
+ b) these fields must be usable as file names and so must not
+ be that long
+ */
+ char buf[BUFSIZ];
+ char *alias;
+ char *value;
+ char *cp;
+
+ if (fgets (buf, sizeof buf, fp) == NULL)
+ /* EOF reached. */
+ break;
+
+ /* Possibly not the whole line fits into the buffer. Ignore
+ the rest of the line. */
+ if (strchr (buf, '\n') == NULL)
+ {
+ char altbuf[BUFSIZ];
+ do
+ if (fgets (altbuf, sizeof altbuf, fp) == NULL)
+ /* Make sure the inner loop will be left. The outer loop
+ will exit at the `feof' test. */
+ break;
+ while (strchr (altbuf, '\n') == NULL);
+ }
+
+ cp = buf;
+ /* Ignore leading white space. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ /* A leading '#' signals a comment line. */
+ if (cp[0] != '\0' && cp[0] != '#')
+ {
+ alias = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate alias name. */
+ if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ /* Now look for the beginning of the value. */
+ while (isspace (cp[0]))
+ ++cp;
+
+ if (cp[0] != '\0')
+ {
+ size_t alias_len;
+ size_t value_len;
+
+ value = cp++;
+ while (cp[0] != '\0' && !isspace (cp[0]))
+ ++cp;
+ /* Terminate value. */
+ if (cp[0] == '\n')
+ {
+ /* This has to be done to make the following test
+ for the end of line possible. We are looking for
+ the terminating '\n' which do not overwrite here. */
+ *cp++ = '\0';
+ *cp = '\n';
+ }
+ else if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ if (nmap >= maxmap)
+ if (__builtin_expect (extend_alias_table (), 0))
+ return added;
+
+ alias_len = strlen (alias) + 1;
+ value_len = strlen (value) + 1;
+
+ if (string_space_act + alias_len + value_len > string_space_max)
+ {
+ /* Increase size of memory pool. */
+ size_t new_size = (string_space_max
+ + (alias_len + value_len > 1024
+ ? alias_len + value_len : 1024));
+ char *new_pool = (char *) realloc (string_space, new_size);
+ if (new_pool == NULL)
+ return added;
+
+ if (__builtin_expect (string_space != new_pool, 0))
+ {
+ size_t i;
+
+ for (i = 0; i < nmap; i++)
+ {
+ map[i].alias += new_pool - string_space;
+ map[i].value += new_pool - string_space;
+ }
+ }
+
+ string_space = new_pool;
+ string_space_max = new_size;
+ }
+
+ map[nmap].alias = memcpy (&string_space[string_space_act],
+ alias, alias_len);
+ string_space_act += alias_len;
+
+ map[nmap].value = memcpy (&string_space[string_space_act],
+ value, value_len);
+ string_space_act += value_len;
+
+ ++nmap;
+ ++added;
+ }
+ }
+ }
+
+ /* Should we test for ferror()? I think we have to silently ignore
+ errors. --drepper */
+ fclose (fp);
+
+ if (added > 0)
+ qsort (map, nmap, sizeof (struct alias_map),
+ (int (*) PARAMS ((const void *, const void *))) alias_compare);
+
+ return added;
+}
+
+
+static int
+extend_alias_table ()
+{
+ size_t new_size;
+ struct alias_map *new_map;
+
+ new_size = maxmap == 0 ? 100 : 2 * maxmap;
+ new_map = (struct alias_map *) realloc (map, (new_size
+ * sizeof (struct alias_map)));
+ if (new_map == NULL)
+ /* Simply don't extend: we don't have any more core. */
+ return -1;
+
+ map = new_map;
+ maxmap = new_size;
+ return 0;
+}
+
+
+#ifdef _LIBC
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ if (string_space != NULL)
+ free (string_space);
+ if (map != NULL)
+ free (map);
+}
+text_set_element (__libc_subfreeres, free_mem);
+#endif
+
+
+static int
+alias_compare (map1, map2)
+ const struct alias_map *map1;
+ const struct alias_map *map2;
+{
+#if defined _LIBC || defined HAVE_STRCASECMP
+ return strcasecmp (map1->alias, map2->alias);
+#else
+ const unsigned char *p1 = (const unsigned char *) map1->alias;
+ const unsigned char *p2 = (const unsigned char *) map2->alias;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ /* I know this seems to be odd but the tolower() function in
+ some systems libc cannot handle nonalpha characters. */
+ c1 = isupper (*p1) ? tolower (*p1) : *p1;
+ c2 = isupper (*p2) ? tolower (*p2) : *p2;
+ if (c1 == '\0')
+ break;
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ return c1 - c2;
+#endif
+}
diff --git a/intl/ngettext.c b/intl/ngettext.c
new file mode 100644
index 0000000..fb3ec5a
--- /dev/null
+++ b/intl/ngettext.c
@@ -0,0 +1,68 @@
+/* Implementation of ngettext(3) function.
+ Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# include <stdlib.h> /* Just for NULL. */
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+#include <locale.h>
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define NGETTEXT __ngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define NGETTEXT ngettext__
+# define DCNGETTEXT dcngettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+NGETTEXT (msgid1, msgid2, n)
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__ngettext, ngettext);
+#endif
diff --git a/intl/plural.c b/intl/plural.c
new file mode 100644
index 0000000..640d43c
--- /dev/null
+++ b/intl/plural.c
@@ -0,0 +1,1326 @@
+
+/* A Bison parser, made from plural.y
+ by GNU Bison version 1.28 */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define yyparse __gettextparse
+#define yylex __gettextlex
+#define yyerror __gettexterror
+#define yylval __gettextlval
+#define yychar __gettextchar
+#define yydebug __gettextdebug
+#define yynerrs __gettextnerrs
+#define EQUOP2 257
+#define CMPOP2 258
+#define ADDOP2 259
+#define MULOP2 260
+#define NUMBER 261
+
+#line 1 "plural.y"
+
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* The bison generated parser uses alloca. AIX 3 forces us to put this
+ declaration at the beginning of the file. The declaration in bison's
+ skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include "gettextP.h"
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define FREE_EXPRESSION __gettext_free_exp
+#else
+# define FREE_EXPRESSION gettext_free_exp__
+# define __gettextparse gettextparse__
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+
+#line 53 "plural.y"
+typedef union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+} YYSTYPE;
+#line 59 "plural.y"
+
+/* Prototypes for local functions. */
+static struct expression *new_exp PARAMS ((int nargs, enum operator op,
+ struct expression * const *args));
+static inline struct expression *new_exp_0 PARAMS ((enum operator op));
+static inline struct expression *new_exp_1 PARAMS ((enum operator op,
+ struct expression *right));
+static struct expression *new_exp_2 PARAMS ((enum operator op,
+ struct expression *left,
+ struct expression *right));
+static inline struct expression *new_exp_3 PARAMS ((enum operator op,
+ struct expression *bexp,
+ struct expression *tbranch,
+ struct expression *fbranch));
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+static void yyerror PARAMS ((const char *str));
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (nargs, op, args)
+ int nargs;
+ enum operator op;
+ struct expression * const *args;
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (op)
+ enum operator op;
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (op, right)
+ enum operator op;
+ struct expression *right;
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (op, left, right)
+ enum operator op;
+ struct expression *left;
+ struct expression *right;
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (op, bexp, tbranch, fbranch)
+ enum operator op;
+ struct expression *bexp;
+ struct expression *tbranch;
+ struct expression *fbranch;
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 27
+#define YYFLAG -32768
+#define YYNTBASE 16
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 10, 2, 2, 2, 2, 5, 2, 14,
+ 15, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 12, 2, 2,
+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 13,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 6, 7, 8, 9,
+ 11
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 8, 12, 16, 20, 24, 28, 32, 35,
+ 37, 39
+};
+
+static const short yyrhs[] = { 17,
+ 0, 17, 3, 17, 12, 17, 0, 17, 4, 17,
+ 0, 17, 5, 17, 0, 17, 6, 17, 0, 17,
+ 7, 17, 0, 17, 8, 17, 0, 17, 9, 17,
+ 0, 10, 17, 0, 13, 0, 11, 0, 14, 17,
+ 15, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 178, 186, 190, 194, 198, 202, 206, 210, 214, 218,
+ 222, 227
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","'?'","'|'",
+"'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'",
+"start","exp", NULL
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17
+};
+
+static const short yyr2[] = { 0,
+ 1, 5, 3, 3, 3, 3, 3, 3, 2, 1,
+ 1, 3
+};
+
+static const short yydefact[] = { 0,
+ 0, 11, 10, 0, 1, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12, 0, 3, 4, 5, 6,
+ 7, 8, 0, 2, 0, 0, 0
+};
+
+static const short yydefgoto[] = { 25,
+ 5
+};
+
+static const short yypact[] = { -9,
+ -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, -9,
+ -9, -9, -9, -9,-32768, 24, 39, 43, 16, 26,
+ -3,-32768, -9, 34, 21, 53,-32768
+};
+
+static const short yypgoto[] = {-32768,
+ -1
+};
+
+
+#define YYLAST 53
+
+
+static const short yytable[] = { 6,
+ 1, 2, 7, 3, 4, 14, 16, 17, 18, 19,
+ 20, 21, 22, 8, 9, 10, 11, 12, 13, 14,
+ 26, 24, 12, 13, 14, 15, 8, 9, 10, 11,
+ 12, 13, 14, 13, 14, 23, 8, 9, 10, 11,
+ 12, 13, 14, 10, 11, 12, 13, 14, 11, 12,
+ 13, 14, 27
+};
+
+static const short yycheck[] = { 1,
+ 10, 11, 4, 13, 14, 9, 8, 9, 10, 11,
+ 12, 13, 14, 3, 4, 5, 6, 7, 8, 9,
+ 0, 23, 7, 8, 9, 15, 3, 4, 5, 6,
+ 7, 8, 9, 8, 9, 12, 3, 4, 5, 6,
+ 7, 8, 9, 5, 6, 7, 8, 9, 6, 7,
+ 8, 9, 0
+};
+#define YYPURE 1
+
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
+/* This file comes from bison-1.28. */
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C. */
+/* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+/* #include <malloc.h> */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+#endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 1:
+#line 179 "plural.y"
+{
+ if (yyvsp[0].exp == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = yyvsp[0].exp;
+ ;
+ break;}
+case 2:
+#line 187 "plural.y"
+{
+ yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 3:
+#line 191 "plural.y"
+{
+ yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 4:
+#line 195 "plural.y"
+{
+ yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 5:
+#line 199 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 6:
+#line 203 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 7:
+#line 207 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 8:
+#line 211 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 9:
+#line 215 "plural.y"
+{
+ yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
+ ;
+ break;}
+case 10:
+#line 219 "plural.y"
+{
+ yyval.exp = new_exp_0 (var);
+ ;
+ break;}
+case 11:
+#line 223 "plural.y"
+{
+ if ((yyval.exp = new_exp_0 (num)) != NULL)
+ yyval.exp->val.num = yyvsp[0].num;
+ ;
+ break;}
+case 12:
+#line 228 "plural.y"
+{
+ yyval.exp = yyvsp[-1].exp;
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 0;
+
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 1;
+}
+#line 233 "plural.y"
+
+
+void
+internal_function
+FREE_EXPRESSION (exp)
+ struct expression *exp;
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (lval, pexp)
+ YYSTYPE *lval;
+ const char **pexp;
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (str)
+ const char *str;
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/intl/plural.y b/intl/plural.y
new file mode 100644
index 0000000..be049a6
--- /dev/null
+++ b/intl/plural.y
@@ -0,0 +1,413 @@
+%{
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* The bison generated parser uses alloca. AIX 3 forces us to put this
+ declaration at the beginning of the file. The declaration in bison's
+ skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include "gettextP.h"
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define FREE_EXPRESSION __gettext_free_exp
+#else
+# define FREE_EXPRESSION gettext_free_exp__
+# define __gettextparse gettextparse__
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+%}
+%pure_parser
+%expect 10
+
+%union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+}
+
+%{
+/* Prototypes for local functions. */
+static struct expression *new_exp PARAMS ((int nargs, enum operator op,
+ struct expression * const *args));
+static inline struct expression *new_exp_0 PARAMS ((enum operator op));
+static inline struct expression *new_exp_1 PARAMS ((enum operator op,
+ struct expression *right));
+static struct expression *new_exp_2 PARAMS ((enum operator op,
+ struct expression *left,
+ struct expression *right));
+static inline struct expression *new_exp_3 PARAMS ((enum operator op,
+ struct expression *bexp,
+ struct expression *tbranch,
+ struct expression *fbranch));
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+static void yyerror PARAMS ((const char *str));
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (nargs, op, args)
+ int nargs;
+ enum operator op;
+ struct expression * const *args;
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (op)
+ enum operator op;
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (op, right)
+ enum operator op;
+ struct expression *right;
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (op, left, right)
+ enum operator op;
+ struct expression *left;
+ struct expression *right;
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (op, bexp, tbranch, fbranch)
+ enum operator op;
+ struct expression *bexp;
+ struct expression *tbranch;
+ struct expression *fbranch;
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+%}
+
+/* This declares that all operators have the same associativity and the
+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
+ There is no unary minus and no bitwise operators.
+ Operators with the same syntactic behaviour have been merged into a single
+ token, to save space in the array generated by bison. */
+%right '?' /* ? */
+%left '|' /* || */
+%left '&' /* && */
+%left EQUOP2 /* == != */
+%left CMPOP2 /* < > <= >= */
+%left ADDOP2 /* + - */
+%left MULOP2 /* * / % */
+%right '!' /* ! */
+
+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
+%token <num> NUMBER
+%type <exp> exp
+
+%%
+
+start: exp
+ {
+ if ($1 == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = $1;
+ }
+ ;
+
+exp: exp '?' exp ':' exp
+ {
+ $$ = new_exp_3 (qmop, $1, $3, $5);
+ }
+ | exp '|' exp
+ {
+ $$ = new_exp_2 (lor, $1, $3);
+ }
+ | exp '&' exp
+ {
+ $$ = new_exp_2 (land, $1, $3);
+ }
+ | exp EQUOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp CMPOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp ADDOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp MULOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | '!' exp
+ {
+ $$ = new_exp_1 (lnot, $2);
+ }
+ | 'n'
+ {
+ $$ = new_exp_0 (var);
+ }
+ | NUMBER
+ {
+ if (($$ = new_exp_0 (num)) != NULL)
+ $$->val.num = $1;
+ }
+ | '(' exp ')'
+ {
+ $$ = $2;
+ }
+ ;
+
+%%
+
+void
+internal_function
+FREE_EXPRESSION (exp)
+ struct expression *exp;
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (lval, pexp)
+ YYSTYPE *lval;
+ const char **pexp;
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (str)
+ const char *str;
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/intl/ref-add.sin b/intl/ref-add.sin
new file mode 100644
index 0000000..167374e
--- /dev/null
+++ b/intl/ref-add.sin
@@ -0,0 +1,31 @@
+# Add this package to a list of references stored in a text file.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ ta
+ :a
+ s/ @PACKAGE@ / @PACKAGE@ /
+ tb
+ s/ $/ @PACKAGE@ /
+ :b
+ s/^/# Packages using this file:/
+}
diff --git a/intl/ref-del.sin b/intl/ref-del.sin
new file mode 100644
index 0000000..613cf37
--- /dev/null
+++ b/intl/ref-del.sin
@@ -0,0 +1,26 @@
+# Remove this package from a list of references stored in a text file.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ s/ @PACKAGE@ / /
+ s/^/# Packages using this file:/
+}
diff --git a/intl/textdomain.c b/intl/textdomain.c
new file mode 100644
index 0000000..2e420ad
--- /dev/null
+++ b/intl/textdomain.c
@@ -0,0 +1,142 @@
+/* Implementation of the textdomain(3) function.
+ Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+#include "gettextP.h"
+
+#ifdef _LIBC
+/* We have to handle multi-threaded applications. */
+# include <bits/libc-lock.h>
+#else
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_rwlock_define(CLASS, NAME)
+# define __libc_rwlock_wrlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_default_domain _nl_default_default_domain__
+# define _nl_current_default_domain _nl_current_default_domain__
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Name of the default text domain. */
+extern const char _nl_default_default_domain[];
+
+/* Default text domain in which entries for gettext(3) are to be found. */
+extern const char *_nl_current_default_domain;
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define TEXTDOMAIN __textdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define TEXTDOMAIN textdomain__
+#endif
+
+/* Lock variable to protect the global data in the gettext implementation. */
+__libc_rwlock_define (extern, _nl_state_lock)
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+char *
+TEXTDOMAIN (domainname)
+ const char *domainname;
+{
+ char *new_domain;
+ char *old_domain;
+
+ /* A NULL pointer requests the current setting. */
+ if (domainname == NULL)
+ return (char *) _nl_current_default_domain;
+
+ __libc_rwlock_wrlock (_nl_state_lock);
+
+ old_domain = (char *) _nl_current_default_domain;
+
+ /* If domain name is the null string set to default domain "messages". */
+ if (domainname[0] == '\0'
+ || strcmp (domainname, _nl_default_default_domain) == 0)
+ {
+ _nl_current_default_domain = _nl_default_default_domain;
+ new_domain = (char *) _nl_current_default_domain;
+ }
+ else if (strcmp (domainname, old_domain) == 0)
+ /* This can happen and people will use it to signal that some
+ environment variable changed. */
+ new_domain = old_domain;
+ else
+ {
+ /* If the following malloc fails `_nl_current_default_domain'
+ will be NULL. This value will be returned and so signals we
+ are out of core. */
+#if defined _LIBC || defined HAVE_STRDUP
+ new_domain = strdup (domainname);
+#else
+ size_t len = strlen (domainname) + 1;
+ new_domain = (char *) malloc (len);
+ if (new_domain != NULL)
+ memcpy (new_domain, domainname, len);
+#endif
+
+ if (new_domain != NULL)
+ _nl_current_default_domain = new_domain;
+ }
+
+ /* We use this possibility to signal a change of the loaded catalogs
+ since this is most likely the case and there is no other easy we
+ to do it. Do it only when the call was successful. */
+ if (new_domain != NULL)
+ {
+ ++_nl_msg_cat_cntr;
+
+ if (old_domain != new_domain && old_domain != _nl_default_default_domain)
+ free (old_domain);
+ }
+
+ __libc_rwlock_unlock (_nl_state_lock);
+
+ return new_domain;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__textdomain, textdomain);
+#endif
diff --git a/jmv/README b/jmv/README
deleted file mode 100644
index 739a50e..0000000
--- a/jmv/README
+++ /dev/null
@@ -1,17 +0,0 @@
-This has been cvs removed. It's still in the repository. Jean-Marc's
-latest is in the top level on the jmv branch.
-
-1.3
-Merge with Thomas Tonino's work. New problems have appeared, but it's
-a start.
-1.2
-This is against gimp-print 3.1.4 and gives good results
-1.1
-Here is a set of experimental replacement files for gimp-print's print-dither.c
-and print-escp2.c based on gimp-print 3.1.4.
-This is a try at less grainy rendering and better grays.
-
-It's also the first time I ever use CVS. Hope this works and I didn't mess
-something...
-
-jmv
diff --git a/lib/.cvsignore b/lib/.cvsignore
deleted file mode 100644
index e4b878b..0000000
--- a/lib/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-alloca.lo
-strcspn.lo
-getopt1.lo
-getopt.lo
-libprintut.la
-vasprintf.lo
-xgetcwd.lo
-xmalloc.lo
diff --git a/lib/Makefile.in b/lib/Makefile.in
new file mode 100644
index 0000000..38e5f10
--- /dev/null
+++ b/lib/Makefile.in
@@ -0,0 +1,428 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+noinst_LTLIBRARIES = libprintut.la
+
+libprintut_la_SOURCES =
+
+libprintut_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@
+
+noinst_HEADERS = getopt.h libprintut.h pathmax.h xmalloc.h
+
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = alloca.c getopt.c getopt1.c strcspn.c vasprintf.c xgetcwd.c xmalloc.c
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libprintut_la_LDFLAGS =
+libprintut_la_DEPENDENCIES = @LTALLOCA@ @LTLIBOBJS@
+libprintut_la_OBJECTS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+HEADERS = $(noinst_HEADERS)
+
+DIST_COMMON = Makefile.am Makefile.in alloca.c xgetcwd.c xmalloc.c
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libprintut_la_SOURCES)
+OBJECTS = $(libprintut_la_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps lib/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLTLIBRARIES:
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+
+distclean-noinstLTLIBRARIES:
+
+maintainer-clean-noinstLTLIBRARIES:
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+libprintut.la: $(libprintut_la_OBJECTS) $(libprintut_la_DEPENDENCIES)
+ $(LINK) $(libprintut_la_LDFLAGS) $(libprintut_la_OBJECTS) $(libprintut_la_LIBADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = lib
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+xgetcwd.lo xgetcwd.o : xgetcwd.c ../config.h pathmax.h getopt.h
+xmalloc.lo xmalloc.o : xmalloc.c ../config.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
+ clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
+clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/vasprintf.c b/lib/vasprintf.c
index 91dafa9..191fc53 100644
--- a/lib/vasprintf.c
+++ b/lib/vasprintf.c
@@ -127,7 +127,7 @@ vasprintf (result, format, args)
int
asprintf
-#if __STDC__
+#ifdef __STDC__
(char **result, const char *format, ...)
#else
(result, va_alist)
@@ -138,7 +138,7 @@ asprintf
va_list args;
int done;
-#if __STDC__
+#ifdef __STDC__
va_start (args, format);
#else
char *format;
@@ -154,7 +154,7 @@ asprintf
#ifdef TEST
void
checkit
-#if __STDC__
+#ifdef __STDC__
(const char* format, ...)
#else
(va_alist)
@@ -164,7 +164,7 @@ checkit
va_list args;
char *result;
-#if __STDC__
+#ifdef __STDC__
va_start (args, format);
#else
char *format;
diff --git a/man/.cvsignore b/man/.cvsignore
deleted file mode 100644
index 136ce0e..0000000
--- a/man/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-Makefile
-Makefile.in
-gimpprint.3
-cups-calibrate.8
-escputil.1
-gimpprint-config.1
diff --git a/man/Makefile.am b/man/Makefile.am
index e2ce90c..73d933a 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.6 2001/06/02 23:01:54 rleigh Exp $
+## $Id: Makefile.am,v 1.6.6.2 2002/11/11 21:20:10 rleigh Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -26,14 +26,28 @@ MAINT_CHARSET = latin1
## Data
-# Conditional installation of manpages is currently broken in automake...
-
-man_MANS = cups-calibrate.8 escputil.1 gimpprint.3 gimpprint-config.1
+# Conditional installation of manpages is currently broken in automake 1.4
+
+man_MANS = \
+ cups-calibrate.8 \
+ escputil.1 \
+ gimpprint.3 \
+ gimpprint-config.1 \
+ gimpprint-color.7 \
+ gimpprint-dithers.7 \
+ gimpprint-imagetypes.7 \
+ gimpprint-inktypes.7 \
+ gimpprint-mediasizes.7 \
+ gimpprint-mediasources.7 \
+ gimpprint-mediatypes.7 \
+ gimpprint-models.7 \
+ gimpprint-resolutions.7 \
+ ijsgimpprint.1
## Clean
-DISTCLEANFILES = cups-calibrate.8 escputil.1 gimpprint-config.1
+DISTCLEANFILES = $(man_MANS)
MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = $(man_MANS)
+# EXTRA_DIST = $(man_MANS)
diff --git a/man/Makefile.in b/man/Makefile.in
new file mode 100644
index 0000000..60e97ad
--- /dev/null
+++ b/man/Makefile.in
@@ -0,0 +1,498 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+# Conditional installation of manpages is currently broken in automake 1.4
+
+man_MANS = cups-calibrate.8 escputil.1 gimpprint.3 gimpprint-config.1 gimpprint-color.7 gimpprint-dithers.7 gimpprint-imagetypes.7 gimpprint-inktypes.7 gimpprint-mediasizes.7 gimpprint-mediasources.7 gimpprint-mediatypes.7 gimpprint-models.7 gimpprint-resolutions.7 ijsgimpprint.1
+
+
+DISTCLEANFILES = $(man_MANS)
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = escputil.1 gimpprint.3 gimpprint-config.1 \
+gimpprint-color.7 gimpprint-dithers.7 gimpprint-imagetypes.7 \
+gimpprint-inktypes.7 gimpprint-mediasizes.7 gimpprint-mediasources.7 \
+gimpprint-mediatypes.7 gimpprint-models.7 gimpprint-resolutions.7 \
+ijsgimpprint.1 cups-calibrate.8
+man1dir = $(mandir)/man1
+man3dir = $(mandir)/man3
+man7dir = $(mandir)/man7
+man8dir = $(mandir)/man8
+MANS = $(man_MANS)
+
+NROFF = nroff
+DIST_COMMON = Makefile.am Makefile.in cups-calibrate.8.in escputil.1.in \
+gimpprint-color.7.in gimpprint-config.1.in gimpprint-dithers.7.in \
+gimpprint-imagetypes.7.in gimpprint-inktypes.7.in \
+gimpprint-mediasizes.7.in gimpprint-mediasources.7.in \
+gimpprint-mediatypes.7.in gimpprint-models.7.in \
+gimpprint-resolutions.7.in gimpprint.3.in ijsgimpprint.1.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps man/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+escputil.1: $(top_builddir)/config.status escputil.1.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint.3: $(top_builddir)/config.status gimpprint.3.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-config.1: $(top_builddir)/config.status gimpprint-config.1.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-color.7: $(top_builddir)/config.status gimpprint-color.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-dithers.7: $(top_builddir)/config.status gimpprint-dithers.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-imagetypes.7: $(top_builddir)/config.status gimpprint-imagetypes.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-inktypes.7: $(top_builddir)/config.status gimpprint-inktypes.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-mediasizes.7: $(top_builddir)/config.status gimpprint-mediasizes.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-mediasources.7: $(top_builddir)/config.status gimpprint-mediasources.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-mediatypes.7: $(top_builddir)/config.status gimpprint-mediatypes.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-models.7: $(top_builddir)/config.status gimpprint-models.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+gimpprint-resolutions.7: $(top_builddir)/config.status gimpprint-resolutions.7.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+ijsgimpprint.1: $(top_builddir)/config.status ijsgimpprint.1.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+cups-calibrate.8: $(top_builddir)/config.status cups-calibrate.8.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+install-man1:
+ $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ @list='$(man1_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
+uninstall-man1:
+ @list='$(man1_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
+install-man3:
+ $(mkinstalldirs) $(DESTDIR)$(man3dir)
+ @list='$(man3_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.3*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst; \
+ done
+
+uninstall-man3:
+ @list='$(man3_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.3*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man3dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man3dir)/$$inst; \
+ done
+
+install-man7:
+ $(mkinstalldirs) $(DESTDIR)$(man7dir)
+ @list='$(man7_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.7*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man7dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man7dir)/$$inst; \
+ done
+
+uninstall-man7:
+ @list='$(man7_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.7*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man7dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man7dir)/$$inst; \
+ done
+
+install-man8:
+ $(mkinstalldirs) $(DESTDIR)$(man8dir)
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
+ done
+
+uninstall-man8:
+ @list='$(man8_MANS)'; \
+ l2='$(man_MANS)'; for i in $$l2; do \
+ case "$$i" in \
+ *.8*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man8dir)/$$inst; \
+ done
+install-man: $(MANS)
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-man1 install-man3 install-man7 \
+ install-man8
+uninstall-man:
+ @$(NORMAL_UNINSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-man1 uninstall-man3 uninstall-man7 \
+ uninstall-man8
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = man
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-man
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-man
+uninstall: uninstall-am
+all-am: Makefile $(MANS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man3 \
+ $(DESTDIR)$(mandir)/man7 $(DESTDIR)$(mandir)/man8
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: install-man1 uninstall-man1 install-man3 uninstall-man3 \
+install-man7 uninstall-man7 install-man8 uninstall-man8 install-man \
+uninstall-man tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# EXTRA_DIST = $(man_MANS)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/man/cups-calibrate.8.in b/man/cups-calibrate.8.in
index edbec1b..093d673 100644
--- a/man/cups-calibrate.8.in
+++ b/man/cups-calibrate.8.in
@@ -1,6 +1,5 @@
-'\" t
-.\" $Id: cups-calibrate.8.in,v 1.2 2001/05/06 22:08:52 rleigh Exp $
-.\" Copyright (C) 2000 Roger Leigh <rl117@york.ac.uk>
+.\" $Id: cups-calibrate.8.in,v 1.2.8.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
@@ -15,42 +14,37 @@
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-.hy 0
-.TH CUPS-CALIBRATE "8" "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "GIMP Manual Pages"
+.TH CUPS\-CALIBRATE "8" "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
.SH NAME
-cups-calibrate \- ESP Printer Calibration Tool
+cups\-calibrate \- ESP CUPS Printer Calibration Tool
.SH SYNOPSIS
-.B cups-calibrate
+.B cups\-calibrate
.SH DESCRIPTION
-
-This program allows you to calibrate the color output of printers
-using the \fIGIMP-PRINT\fP \fICUPS\fP or \fIESP Print Pro\fP drivers.
-
-Please note that this program \fBonly\fP works with the \fIGIMP-PRINT\fP \fICUPS\fP or
-\fIESP Print Pro\fP drivers. If you are using the GIMP-Print stp driver of
-GhostScript or the drivers of the GIMP-Print plug-in of GIMP, this
-calibration will not work.
-
-These drivers by the text "CUPS+GIMP-print" or "ESP Print Pro" in
-the model description displayed by the CUPS web interface, KUPS,
-the ESP Print Pro Printer Manager, or printerdrake.
-
+This program allows you to calibrate the color output of printers using the
+\fBGimp-Print\fR \fICUPS\fR or \fIESP Print Pro\fR drivers.
+.PP
+Please note that this program \fBonly\fP works with the \fBGimp-Print\fR
+\fICUPS\fR or \fIESP Print Pro\fR drivers. If you are using the Gimp-Print
+\fIstp\fR or \fIijsgimmprint\fR driver for GhostScript or the drivers for the
+Gimp-Print plug-in for \fIThe GIMP\fR, the calibration will not work.
+.PP
+These drivers are identified by the text \fICUPS+GIMP\-print\fR or \fIESP Print
+Pro\fR in the model description displayed by the CUPS web interface, KUPS, the
+ESP Print Pro Printer Manager, or printerdrake.
+.PP
To make a calibration profile for all users, run this program as
-the "root" user.
-
+the \fBroot\fR user. The program displays a series of prompts which should
+simply be followed.
+.SH SEE ALSO
+CUPS Software Administrators Manual, http://localhost:631/documentation.html
.SH COPYRIGHT
Copyright \(co 2001 Michael Sweet (mike@easysw.com)
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your option)
-any later version.
-
-This manual page was written by Roger Leigh (rl117@york.ac.uk)
-
-.SH SEE ALSO
-.BR gimp (1)
-
+.PP
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License, version 2, as
+published by the Free Software Foundation.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
diff --git a/man/escputil.1.in b/man/escputil.1.in
index f7d9d61..a25cc31 100644
--- a/man/escputil.1.in
+++ b/man/escputil.1.in
@@ -1,6 +1,5 @@
-'\" t
-.\" $Id: escputil.1.in,v 1.4 2001/08/13 23:59:12 rlk Exp $
-.\" Copyright (C) 2000 Robert Krawitz <rlk@alum.mit.edu>
+.\" $Id: escputil.1.in,v 1.4.4.5 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000-2002 Robert Krawitz <rlk@alum.mit.edu>
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
@@ -15,112 +14,112 @@
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-.hy 0
-.TH ESCPUTIL 1 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "GIMP Manual Pages"
+.TH ESCPUTIL 1 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
.SH NAME
-escputil - maintain Epson Stylus inkjet printers
+escputil \- maintain Epson Stylus inkjet printers
.SH SYNOPSIS
-.B escputil [\-P printer \| \-r device] [\-m model] [\-u]
-[\-c \| \-n | \-a \| \-i] [\-q]
-
+.B escputil
+[ \fI\-P\fP \fIprinter\fP | \fI\-r\fP \fIdevice\fP ] [ \fI\-m\fP \fImodel\fP ] [
+\fI\-u\fP ] [ \fI\-c\fP | \fI\-n\fP | \fI\-a\fP | \fI\-i\fP | \fI\-d\fP |
+\fI\-o\fP | \fI\-s\fP | \fI\-l\fP | \fI\-M\fP | \fI\-h\fP ] [ \fI\-q\fP ]
.SH DESCRIPTION
-.PP
-\fIescputil\fP is a command line utility to perform various
-maintenance tasks on Epson Stylus inkjet printers. These tasks
-include head alignment, head cleaning, nozzle check, printer
-identification, and retrieval of ink level from the printer.
-
+\fBescputil\fP is a command line utility to perform various maintenance tasks
+on Epson Stylus inkjet printers. These tasks include head alignment, head
+cleaning, nozzle check, printer identification, and retrieval of ink level from
+the printer.
.SH OPTIONS
-.l
-\fIescputil\fP accepts the following options:
-.TP 8
-.B \-P, \-\-printer-name \fI<printer>\fP
-Specify the name of the printer to operate on.
-Default is the default system printer.
-.TP 8
-.B \-r, \-\-raw-device \fI<device>\fP
-Specify the name of the device to write to directly
-rather than going through a printer queue. You must use this (rather
-than specifying a printer) when retrieving ink levels or identifying
-the printer, or if you wish to perform head alignment without
-specifying the printer model.
-.TP 8
-.B \-c, \-\-clean-head
+\fBescputil\fP accepts the following options:
+.TP
+.B \-P, \-\-printer\-name=\fIprinter\fP
+Specify the name of the printer to operate on. The default is the default
+system printer.
+.TP
+.B \-r, \-\-raw\-device=\fIdevice\fP
+Specify the name of the device to write to directly rather than going through a
+printer queue. You must use this (rather than specifying a printer) when
+retrieving ink levels or identifying the printer, or if you wish to perform
+head alignment without specifying the printer model.
+.TP
+.B \-m, \-\-model=\fImodel\fP
+Specify the precise printer model for head alignment.
+.TP
+.B \-u, \-\-new
+The printer is a new printer (Stylus Color 740 or newer).
+.TP
+.B \-c, \-\-clean\-head
Clean the print head. This can also be performed from the printer
front panel.
-.TP 8
-.B \-n, \-\-nozzle-check
-Print a nozzle test pattern. Dirty or clogged nozzles will show as
-gaps in the pattern. If you see any gaps, you should run a
-head cleaning pass or two.
-.TP 8
-.B \-a, \-\-align-head
-Align the print head. CAUTION: Misuse of this utility may result in
-poor print quality and/or damage to the printer. You must either
-specify the printer model with the \-m option, or use the raw printer
-device to allow escputil to detect the printer model.
-.TP 8
-.B \-i, \-\-ink-level
+.TP
+.B \-n, \-\-nozzle\-check
+Print a nozzle test pattern. Dirty or clogged nozzles will show as gaps in the
+pattern. If you see any gaps, you should run a head cleaning pass or two.
+.TP
+.B \-a, \-\-align\-head
+Align the print head. CAUTION: Misuse of this option may result in poor print
+quality and/or damage to the printer. You must either specify the printer
+model with the \-m option, or use the raw printer device to allow escputil to
+detect the printer model.
+.TP
+.B \-i, \-\-ink\-level
Obtain the ink level from the printer. This requires
read/write access to the raw printer device.
-.TP 8
+.TP
.B \-d, \-\-identify
Query the printer for make and model information.
This requires read/write access to the raw printer
device.
-.TP 8
-.B \-u
-The printer is connected via USB.
-.TP 8
+.TP
+.B \-o, \-\-align\-color
+Align the color print head (used by Stylus Color 480 and 580 only). CAUTION:
+Misuse of this option may result in poor print quality and/or damage to the
+printer.
+.TP
+.B \-s, \-\-status
+Retrieve printer status.
+.TP
+.B \-l, \-\-license
+Display the license/warranty terms of this program.
+.TP
+.B \-M, \-\-list\-models
+List the supported printer models.
+.TP
.B \-h, \-\-help
-Display a list of all commandline options.
-.TP 8
+Display a list of all command line options.
+.TP
.B \-q, \-\-quiet
Suppress the banner.
-.TP 8
-.B \-m <model>
-Specify the precise printer model for head alignment.
-
+.SH BUGS
+USB-connected printers sometimes fail to identify or return ink levels. You
+may have to repeat the command. This is probably a timing issue in escputil,
+not a flaw in the printer.
+.PP
+Anything requiring bidirectional communication with the printer (identify, ink
+levels, or head alignment without specifying the printer model) requires
+read/write access to the printer port (for example /dev/lp0). This may require
+these operations to be performed as root. In addition, kernel support is
+required for bidirectional communication. For Linux version 2.2,
+\fICONFIG_PRINTER_READBACK\fP should be enabled; this is called
+\fICONFIG_PARPORT_1284\fP on 2.4 and later kernels.
+.PP
+If the printer is performing self-test or head cleaning on power up, the
+identify and ink level commands will time out, although the printer
+successfully receives the command. The command will need to be reissued when
+the printer is quiescent.
+.SH AUTHORS
+Robert Krawitz.
.SH COPYRIGHT
Copyright \(co 2000 Robert Krawitz (rlk@alum.mit.edu)
-
+.PP
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
-
-.SH OTHER INFO
-
-The canonical place to find GIMP info is at http://www.gimp.org/.
-The homepage of the gimp-print project from which this utility was
-contributed is located at http://gimp-print.sourceforge.net/.
-
-.SH AUTHORS
-Robert Krawitz.
-
-.SH BUGS
-
-.PP
-USB-connected printers sometimes fail to identify or return ink
-levels. You may have to repeat the command. This is probably a
-timing issue in escputil, not a flaw in the printer.
-
-.PP
-Anything requiring bidirectional communication with the printer
-(identify, ink levels, or head alignment without specifying the
-printer model) requires read/write access to the printer port (for
-example /dev/lp0). This may require these operations to be performed
-as root.
-
-.PP
-If the printer is performing self-test or head cleaning on power
-up, the identify and ink level commands will time out, although the
-printer successfully receives the command. The command will need to
-be reissued when the printer is quiescent.
-
+.SH OTHER INFORMATION
+The homepage of the Gimp-Print project from which this utility was
+contributed is located at http://gimp\-print.sourceforge.net/.
.SH "SEE ALSO"
-.BR gimp (1)
-
+.BR lp (4),
+.BR tunelp (8).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
diff --git a/man/gimpprint-color.7.in b/man/gimpprint-color.7.in
new file mode 100644
index 0000000..722bc21
--- /dev/null
+++ b/man/gimpprint-color.7.in
@@ -0,0 +1,106 @@
+.\" t
+.\" $Id: gimpprint-color.7.in,v 1.1.6.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-COLOR 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-color \- Gimp-Print color balancing
+.SH DESCRIPTION
+Gimp-Print includes several color balancing controls. These may be
+used to adjust the original image's brightness and contrast and gamma,
+and the density and saturation of the output, as well as the
+individual cyan, magenta and yellow levels.
+.SH COLOR BALANCING
+.TP
+.B Cyan
+.TP
+.B Magenta
+.TP
+.B Yellow
+The range of values is 0.0 \- 4.0, and defaults to 1.0. These three
+options allow specification of the cyan, magenta, and yellow levels
+independently, for rebalancing the levels. Normally, these should be
+adjusted to yield neutral gray, but they can be used for other
+effects.
+.TP
+.B Brightness
+The range of values is 0.0 \- 2.0, and defaults to 1.0. This adjusts
+the brightness of the image. 0.0 gives a fully black image; 2.0 gives
+a fully white image. Values greater than 1 will result in black not
+being solid and highlights turning white; values less than 1 will
+result in white not being perfectly clear and shadows turning black.
+.TP
+.B Contrast
+The range of values is 0.0 \- 4.0, and defaults to 1.0. Adjust the
+contrast of the image. 0.0 gives a solid gray for the entire image,
+the exact gray depending upon the brightness chosen.
+.TP
+.B Gamma
+The range of values is 0.1 \- 4.0, and defaults to 1.0. Adjust the
+gamma of the image, over and above the printer-specific correction.
+Gamma less than 1.0 will result in a darker image; gamma greater than
+1.0 will result in a lighter image. Unlike brightness, gamma
+adjustment does not change the endpoints; it merely changes the shape
+of the input\(->output curve.
+.TP
+.B Density
+The range of values is 0.1 \- 2.0, and defaults to 1.0. Adjust the
+amount of ink deposited on the paper. If you've chosen the correct
+paper type and you're getting ink bleeding through the paper or
+puddling, try reducing the density to the lowest value you can while
+still achieving solid black. If you're not getting solid black, even
+with the contrast and brightness at 1.0, try increasing the density.
+.IP
+All of the printers supported here actually need less than 100% ink density in
+most cases, so the actual density is something other than the nominal density
+setting. The effective density setting cannot go above 100%, so if a value
+specified will result in an excessively high density level, it will be silently
+limited to 1.0.
+.TP
+.B Saturation
+The range of values is 0.0 \- 9.0, and defaults to 1.0. Adjust the
+brilliance of colors. 0.0 results in pure grayscale; using this with
+Color=1 is one way of getting grayscale (see below under "Color" for a
+full discussion). Saturation of less than 1.0 results in more muted
+colors; saturation of greater than 1.0 results in more vibrant colors.
+Very high saturation often results in very strange effects, including
+posterization and banding that might not be expected. For normal
+purposes, the saturation should generally be less than 1.5.
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-config.1.in b/man/gimpprint-config.1.in
index abf084c..6fcd6ae 100644
--- a/man/gimpprint-config.1.in
+++ b/man/gimpprint-config.1.in
@@ -1,5 +1,5 @@
'\" t
-.\" $Id: gimpprint-config.1.in,v 1.2 2001/05/06 22:08:52 rleigh Exp $
+.\" $Id: gimpprint-config.1.in,v 1.2.8.2 2003/08/22 23:31:56 rleigh Exp $
.\" Copyright (C) 2000 Roger Leigh <rl117@york.ac.uk>
.\"
.\" This program is free software; you can redistribute it and/or modify
@@ -16,37 +16,36 @@
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
.hy 0
-.TH GIMP-PRINT 1 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "GIMP Manual Pages"
+.TH GIMP\-PRINT 1 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "GIMP Manual Pages"
.SH NAME
-gimpprint-config - script to get information about the installed version of gimpprint
+gimpprint\-config \- script to get information about the installed version of gimpprint
.SH SYNOPSIS
-.B gimpprint-config
+.B gimpprint\-config
[\-\-prefix\fI[=DIR]\fP] [\-\-exec\-prefix\fI[=DIR]\fP] [\-\-version] [\-\-libs] [\-\-cflags]
.SH DESCRIPTION
.PP
-\fIgimpprint-config\fP is a tool that is used to determine the compiler and
+\fIgimpprint\-config\fP is a tool that is used to determine the compiler and
linker flags that should be used to compile and link programs that use
-\fIGIMP-PRINT\fP. It is also used internally to the .m4 macros for GNU autoconf
-that are included with \fIGIMP-PRINT\fP.
+\fIGimp-Print\fP. It is also used internally to the .m4 macros for GNU autoconf
+that are included with \fIGimp-Print\fP.
.SH OPTIONS
-.l
-\fIgimpprint-config\fP accepts the following options:
+\fIgimpprint\-config\fP accepts the following options:
.TP 8
.B \-\-version
-Print the currently installed version of \fIGIMP-PRINT\fP on the standard output.
+Print the currently installed version of \fIGimp-Print\fP on the standard output.
.TP 8
.B \-\-libs
-Print the linker flags that are necessary to link a \fIGIMP-PRINT\fP program.
+Print the linker flags that are necessary to link a \fIGimp-Print\fP program.
.TP 8
.B \-\-cflags
-Print the compiler flags that are necessary to compile a \fIGIMP-PRINT\fP program.
+Print the compiler flags that are necessary to compile a \fIGimp-Print\fP program.
.TP 8
.B \-\-prefix=PREFIX
-If specified, use PREFIX instead of the installation prefix that \fIGIMP-PRINT\fP
+If specified, use PREFIX instead of the installation prefix that \fIGimp-Print\fP
was built with when computing the output for the \-\-cflags and
\-\-libs options. This option is also used for the exec prefix
if \-\-exec\-prefix was not specified. This option must be specified
@@ -54,14 +53,14 @@ before any \-\-libs or \-\-cflags options.
.TP 8
.B \-\-exec\-prefix=PREFIX
If specified, use PREFIX instead of the installation exec prefix that
-\fIGIMP-PRINT\fP was built with when computing the output for the \-\-cflags
+\fIGimp-Print\fP was built with when computing the output for the \-\-cflags
and \-\-libs options. This option must be specified before any
\-\-libs or \-\-cflags options.
.SH COPYRIGHT
Copyright \(co 2001 Roger Leigh
-This manual page is based on the gtk-config(1) manual page by Owen Taylor.
+This manual page is based on the gtk\-config(1) manual page by Owen Taylor.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
@@ -70,7 +69,7 @@ any later version.
.SH SEE ALSO
.BR autoconf (1),
-.BR gtk-config (1),
+.BR gtk\-config (1),
.\"#
.\"# The following sets edit modes for GNU EMACS
diff --git a/man/gimpprint-dithers.7.in b/man/gimpprint-dithers.7.in
new file mode 100644
index 0000000..d6307c2
--- /dev/null
+++ b/man/gimpprint-dithers.7.in
@@ -0,0 +1,103 @@
+.\" t
+.\" $Id: gimpprint-dithers.7.in,v 1.1.6.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-DITHERS 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-dithers \- Gimp-Print dither algorithms
+.SH DESCRIPTION
+Gimp-Print includes several dither algorithms. Dithering attempts to reproduce
+various shades of gray (or all colors) from only a few different inks (black,
+cyan, magenta, yellow, and sometimes light cyan and light magenta). The dots
+can't vary in darkness or size (except for certain special printers), and so we
+need to lay down a certain fraction of dots to represent each distinct level.
+Different dither algorithms are suited to different purposes, and some are
+significantly faster than others.
+.SH DITHER ALGORITHMS
+.TS
+li li
+lb l.
+Dither Algorithm Description
+_
+Adaptive Adaptive Hybrid
+EvenTone EvenTone screening (experimental)
+Ordered Ordered
+Fast Fast
+VeryFast Very Fast
+Floyd Hybrid Floyd-Steinberg
+.TE
+.PP
+For the highest quality, we recommend use of \fIAdaptive Hybrid\fP dithering.
+For continuous tone images, \fIOrdered\fP works just as well and is somewhat
+faster. Ordered dithering yields noticeably inferior results with text and
+intricate line art, particularly at high resolutions.
+.PP
+\fIEvenTone\fP dithering is a relatively new screening technology developed by
+Raph Levien. It offers superior smoothness in highlights and midtones, and
+increased accuracy in shadows, resulting in significantly improved results
+overall. The version of EvenTone dithering that we are using is enhanced with
+some additional improvements we have made. It currently only operates with
+CMYK (4, 6, or 7 color output) with RGB input, and should be considered
+experimental. Note that it is patented (see US patent 5917614), but it is
+licensed for use with GPL software. See http://www.levien.com/patents.html for
+more information.
+.PP
+\fIFast\fP dithering, which is a simplified version of ordered dither, is
+significantly faster, but color accuracy is worse, particularly on six color
+printers and printer using variable dot sizes. On simple four color printers,
+the quality is quite reasonable, although color printing will show more
+speckling in dark tones than Ordered dither. For single dot size printers,
+printing grayscale, this algorithm yields almost identical results to Ordered
+with some performance improvement. On three color printers, the results should
+be very similar to Ordered.
+.PP
+\fIVery Fast\fP is even faster than Fast, with even more loss of quality. It
+shows even more speckling, and the output is heavily patterned. On laser
+printers, and possibly on certain kinds of text and line art, Very Fast
+dithering may actually yield the best quality.
+.PP
+\fIError diffusion\fP algorithms (\fIHybrid Floyd-Steinberg\fP is such an
+algorithm) perform very well at high densities, and are capable of rendering
+very fine detail well, but they tend to exhibit artifacts in the form of
+"waves" or "worms" of dots which results in noticeable texturing in pale areas.
+Furthermore, pale areas immediately adjacent to white take a while to "build
+up" sufficient error to print at all. This is sometimes called "tearing". Its
+use is not recommended.
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-imagetypes.7.in b/man/gimpprint-imagetypes.7.in
new file mode 100644
index 0000000..2a93cb6
--- /dev/null
+++ b/man/gimpprint-imagetypes.7.in
@@ -0,0 +1,82 @@
+.\" t
+.\" $Id: gimpprint-imagetypes.7.in,v 1.2.4.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-IMAGETYPES 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-imagetypes \- Gimp-Print image types
+.SH DESCRIPTION
+Gimp-Print includes several image types which can be used to optimise
+the dither, depending on the type of image you wish to print.
+.SH IMAGE TYPE
+Possible values are:
+.PP
+.TS
+li li
+lb lw(4i).
+Value Description
+_
+1 T{
+.na
+Line art (color or gray scale)
+T}
+2 T{
+Primarily solid colors or smooth gradients (color or gray scale)
+T}
+3 T{
+Continuous-tone photographs (color or gray scale)
+T}
+.TE
+.PP
+Option \fI0\fP is the fastest. It generates strong, but not particularly
+accurate, colors. There may be some fairly sharp color transitions in this
+mode.
+.PP
+Option \fI1\fP generates more accurate colors, but is slower.
+.PP
+Option \fI2\fP generates the most accurate colors, but is considerably slower.
+.PP
+Note that any of the modes may be used with either color or black & white
+output. If black and white output is requested, but a color mode used,
+composite color will be printed. This generally offers smoother tone, but less
+purity of gray or black, than pure black ink. Furthermore, it is possible to
+tune the color of the gray (to achieve warmer or cooler effects) using the
+color controls in this fashion.
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-inktypes.7.in b/man/gimpprint-inktypes.7.in
new file mode 100644
index 0000000..426319b
--- /dev/null
+++ b/man/gimpprint-inktypes.7.in
@@ -0,0 +1,111 @@
+.\" t
+.\" $Id: gimpprint-inktypes.7.in,v 1.1.6.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-INKTYPES 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-inktypes \- Gimp-Print inkset types
+.SH DESCRIPTION
+Gimp-Print supports many different inksets, which are printer type specific.
+The option names are case sensitive. Two names are listed for each resolution;
+the first (short) name is the \fIinktype\fP, and the second (long) name is
+descriptive. Not all ink types are supported on all printers.
+.SH INK TYPES
+.SS Epson and Lexmark (other than the 4076) printers
+Six color printers can print using four color inks or all six colors. Six
+color mode is recommended for photographs. Four color mode may be useful when
+printing text with embedded graphics to reduce ink consumption, or to print
+higher quality with Ordered, Fast, or Very Fast dithering (see below).
+.PP
+The "Composite" modes use only color inks (no black) to produce all colors and
+black. These ink types are rarely useful, but on certain types of paper they
+may produce a smoother image than that produced by mixing black ink in. The
+Epson Stylus Color 1500 cannot mix black ink with colored inks; on this
+printer, Three Color Composite must be used.
+.PP
+.TS
+li li
+lb lw(4i).
+Ink Type Description
+_
+Photo7 T{
+.na
+Seven Color Photo (CcMmYKk, for the Epson Stylus Photo 2100 and 2200, and
+Stylus Pro 7600 and 9600)
+T}
+PhotoCMYK Six Color Photo
+PhotoCMY Five Color Photo Composite
+CMYK Four Color Standard
+RGB Three Color Composite
+Quadtone T{
+Quadtone grayscale inks (special third party inksets designed to produce
+superior results for grayscale images)
+T}
+Gray2 T{
+Two Level Grayscale (Kk, for the Epson stylus Photo 2100 and 2200, and Stylus
+Pro 7600 and 9600)
+.ad
+T}
+.TE
+.SS Canon printers
+.TS
+li li
+lb l.
+Ink Type Description
+_
+Gray Black
+RGB Color
+CMYK Black/Color
+PhotoCMY Photo/Color
+PhotoCMYK Photo
+.TE
+.SS PCL (Hewlett-Packard and Lexmark 4076) color printers
+.TS
+li li
+lb l.
+Ink Type Description
+_
+CMYK Color + Black Cartridges
+Photo Color + Photo Cartridges (For Deskjet 69x only)
+.TE
+.PP
+Black and white PCL printers (laser printers, in particular) do not
+allow any value to be specified for the ink type.
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-mediasizes.7.in b/man/gimpprint-mediasizes.7.in
new file mode 100644
index 0000000..92b5cf5
--- /dev/null
+++ b/man/gimpprint-mediasizes.7.in
@@ -0,0 +1,258 @@
+.\" t
+.\" $Id: gimpprint-mediasizes.7.in,v 1.1.6.3 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-MEDIASIZES 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-mediasizes \- Gimp-Print media sizes
+.SH DESCRIPTION
+Gimp-Print supports many different media (paper) sizes. All of the currently
+supported media sizes are listed below. The default media size is "Letter".
+.SH MEDIA SIZES
+.SS Common English paper sizes
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+Letter Letter 8.5in x 11in 612 792
+Legal Legal 8.5in x 14in 612 1008
+Tabloid Tabloid 11in x 17in 792 1224
+Executive Executive 7.25in x 10.5in 522 756
+Postcard Postcard 100mm x 147mm 283 416
+w216h360 3x5 216 360
+w288h432 4x6 288 432
+w324h495 Epson 4x6 Photo Paper 324 495
+w360h504 5x7 360 504
+w360h576 5x8 360 576
+8x10 8x10 576 720
+Statement Manual 5.5in x 8.5in 396 612
+TabloidExtra 12x18 864 1296
+SuperB 13x19 936 1368
+.TE
+.SS Common photographic paper sizes
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w576h864 8x12 Sometimes used for 35 mm 576 864
+w792h1008 11x14 792 1008
+w1152h1440 16x20 1152 1440
+w1152h1728 16x24 20x24 for 35 mm 1152 1728
+w1440h1728 20x24 1440 1728
+w1440h2160 20x30 24x30 for 35 mm 1440 2160
+w1728h2160 24x30 1728 2160
+w1728h2592 24x36 Sometimes used for 35 mm 1728 2592
+w2160h2880 30x40 2160 2880
+.TE
+.SS International Paper Sizes (mostly taken from BS4000:1968)
+"A" series: Paper and boards, trimmed sizes.
+.PP
+"A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+of 1 square metre. Everything is rounded to the nearest
+millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+size is obtained by doubling or halving another A size.
+.PP
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w4768h6749 4A 1682mm x 2378mm 4768 6749
+w3370h4768 2A 1189mm x 1682mm 3370 4768
+A0 A0 841mm x 1189mm 2384 3370
+A1 A1 594mm x 841mm 1684 2384
+A2 A2 420mm x 594mm 1191 1684
+A3 A3 297mm x 420mm 842 1191
+A4 A4 210mm x 297mm 595 842
+A5 A5 148mm x 210mm 420 595
+A6 A6 105mm x 148mm 297 420
+A7 A7 74mm x 105mm 210 297
+A8 A8 52mm x 74mm 148 210
+A9 A9 37mm x 52mm 105 148
+A10 A10 26mm x 37mm 73 105
+.T&
+li s s s s.
+Stock sizes for normal trims. Allowance for trim is 3 millimetres.
+.T&
+lb l l n n.
+w2437h3458 RA0 860mm x 1220mm 2437 3458
+w1729h2437 RA1 610mm x 860mm 1729 2437
+w1218h1729 RA2 430mm x 610mm 1218 1729
+w864h1218 RA3 305mm x 430mm 864 1218
+w609h864 RA4 215mm x 305mm 609 864
+.T&
+li s s s s.
+Stock sizes for bled work or extra trims.
+.T&
+lb l l n n.
+w2551h3628 SRA0 900mm x 1280mm 2551 3628
+w1814h2551 SRA1 640mm x 900mm 1814 2551
+w1275h1814 SRA2 450mm x 640mm 1275 1814
+w907h1275 SRA3 320mm x 450mm 907 1275
+w637h907 SRA4 225mm x 320mm 637 907
+.TE
+.PP
+"B" series: Posters, wall charts and similar items.
+.PP
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w5669h8016 4B ISO 2000mm x 2828mm 5669 8016
+w4008h5669 2B ISO 1414mm x 2000mm 4008 5669
+ISOB0 B0 ISO 1000mm x 1414mm 2834 4008
+ISOB1 B1 ISO 707mm x 1000mm 2004 2834
+ISOB2 B2 ISO 500mm x 707mm 1417 2004
+ISOB3 B3 ISO 353mm x 500mm 1000 1417
+ISOB4 B4 ISO 250mm x 353mm 708 1000
+ISOB5 B5 ISO 176mm x 250mm 498 708
+ISOB6 B6 ISO 125mm x 176mm 354 498
+ISOB7 B7 ISO 88mm x 125mm 249 354
+ISOB8 B8 ISO 62mm x 88mm 175 249
+ISOB9 B9 ISO 44mm x 62mm 124 175
+ISOB10 B10 ISO 31mm x 44mm 87 124
+B0 B0 JIS 2919 4127
+B1 B1 JIS 2063 2919
+B2 B2 JIS 1459 2063
+B3 B3 JIS 1029 1459
+B4 B4 JIS 727 1029
+B5 B5 JIS 518 727
+B6 B6 JIS 362 518
+B7 B7 JIS 257 362
+B8 B8 JIS 180 257
+B9 B9 JIS 127 180
+B10 B10 JIS 90 127
+.TE
+.PP
+"C" series: Envelopes or folders suitable for A size stationery.
+.PP
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+C0 C0 917mm x 1297mm 2599 3676
+C1 C1 648mm x 917mm 1836 2599
+C2 C2 458mm x 648mm 1298 1836
+C3 C3 324mm x 458mm 918 1298
+C4 C4 229mm x 324mm 649 918
+C5 C5 162mm x 229mm 459 649
+w354h918 B6\-C4 125mm x 324mm 354 918
+C6 C6 114mm x 162mm 323 459
+DL DL 110mm x 220mm 311 623
+w229h459 C7\-6 81mm x 162mm 229 459
+C7 C7 81mm x 114mm 229 323
+C8 C8 57mm x 81mm 161 229
+C9 C9 40mm x 57mm 113 161
+C10 C10 28mm x 40mm 79 113
+.TE
+.SS US CAD standard paper sizes
+.PP
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+ARCHA ArchA 9x12in 648 864
+ARCHA_transverse ArchA transverse 12x9in 864 648
+ARCHB ArchB 12x18in 864 1296
+ARCHB_transverse ArchB transverse 18x12in 1296 864
+ARCHC ArchC 18x24in 1296 1728
+ARCHC_transverse ArchC transverse 24x18in 1728 1296
+ARCHD ArchD 24x36in 1728 2592
+ARCHD_transverse ArchD transverse 36x24in 2592 1728
+ARCHE ArchE 36x48in 2592 3456
+ARCHE_transverse ArchE transverse 48x36in 3456 2592
+.TE
+.SS Foolscap
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w612h936 American foolscap 612 936
+w648h936 European foolscap 648 936
+.TE
+.SS Sizes for book production
+The BPIF and the Publishers Association jointly recommend ten standard metric
+sizes for case-bound titles as follows:
+.PP
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w535h697 Crown Quarto 189mm x 246mm 535 697
+w569h731 Large Crown Quarto 201mm x 258mm 569 731
+w620h782 Demy Quarto 219mm x 276mm 620 782
+w671h884 Royal Quarto 237mm x 312mm 671 884
+w348h527 Crown Octavo 123mm x 186mm 348 527
+w365h561 Large Crown Octavo 129mm x 198mm 365 561
+w391h612 Demy Octavo 138mm x 216mm 391 612
+w442h663 Royal Octavo 156mm x 234mm 442 663
+.TE
+.SS Paperback sizes in common usage
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w314h504 Small paperback 111mm x 178mm 314 504
+w314h513 Penguin small paperback 111mm x 181mm 314 513
+w365h561 Penguin large paperback 129mm x 198mm 365 561
+.TE
+.SS Miscellaneous sizes
+.TS
+li li li li li
+lb l l n n.
+Media Size Description Comment x\fR(pt)\fP y\fR(pt)\fP
+_
+w283h420 Hagaki Card 100 x 148 mm 283 420
+w420h567 Oufuku Card 148 x 200 mm 420 567
+w340h666 Long 3 Japanese long envelope #3 340 666
+w255h581 Long 4 Japanese long envelope #4 255 581
+w680h941 Kaku Japanese Kaku envelope #4 680 941
+COM10 Commercial 10 US Commercial 10 env 297 684
+w315h414 A2 Invitation US A2 invitation 315 414
+.TE
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-mediasources.7.in b/man/gimpprint-mediasources.7.in
new file mode 100644
index 0000000..0f01273
--- /dev/null
+++ b/man/gimpprint-mediasources.7.in
@@ -0,0 +1,104 @@
+.\" t
+.\" $Id: gimpprint-mediasources.7.in,v 1.1.6.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-MEDIASOURCES 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-mediasources \- Gimp-Print media sources
+.SH DESCRIPTION
+Gimp-Print supports many different media sources, which vary according to the
+specific capabilities of each printer model. The available media sources are
+listed below.
+.SH MEDIA SOURCES
+.SS Epson printers
+.TS
+li li
+lb lw(4i).
+Media Source Description
+_
+Standard Standard
+Roll T{
+.na
+Roll Feed (for certain Stylus Photo and Stylus Pro models only)
+.ad
+T}
+.TE
+.SS Canon printers
+.TS
+li li
+lb l.
+Media Source Description
+_
+Auto Auto Sheet Feeder
+Manual Manual with Pause
+ManualNP Manual without Pause
+.TE
+.SS PCL (Hewlett-Packard and Lexmark 4076) printers
+Different printers allow different choices out of this set.
+.PP
+.TS
+li li
+lb l.
+Media Source Description
+_
+Standard Standard (Feed from printer defined source)
+Manual Manual
+MultiPurpose Tray 1
+Upper Tray 2
+Lower Tray 3
+LargeCapacity Tray 4
+Portable Portable Sheet Feeder
+Desktop Desktop Sheet Feeder
+Tray Tray
+Tray2 Tray 2
+Optional Optional Source
+Auto Autoselect
+.TE
+.SS Lexmark printers (other than the 4076)
+.TS
+li li
+lb l.
+Media Source Description
+_
+Auto Auto Sheet Feeder
+Manual Manual with Pause
+ManualNP Manual without Pause
+.TE
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-mediatypes.7.in b/man/gimpprint-mediatypes.7.in
new file mode 100644
index 0000000..2971908
--- /dev/null
+++ b/man/gimpprint-mediatypes.7.in
@@ -0,0 +1,115 @@
+.\" t
+.\" $Id: gimpprint-mediatypes.7.in,v 1.1.6.2 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-MEDIATYPES 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-mediatypes \- Gimp-Print media types
+.SH DESCRIPTION
+Gimp-Print supports many different media types, which are printer type
+specific. The option names are case sensitive. Two names are listed for each
+resolution; the first (short) name is the \fImediatype\fP, and the second
+(long) name is descriptive. Not all media types are supported on all printers.
+.SH MEDIA TYPES
+.SS Epson and Lexmark (other than the 4076) inkjet printers
+.TS
+li li
+lb l.
+Media Type Description
+_
+Plain Plain Paper
+PlainFast Plain Paper Fast Load
+Postcard Postcard
+GlossyFilm Glossy Film
+Transparency Transparencies
+Envelope Envelopes
+BackFilm Back Light Film
+Matte Matte Paper
+Inkjet Inkjet Paper
+Coated Photo Quality Inkjet Paper
+GlossyPhoto Premium Glossy Photo Paper
+Luster Premium Luster Photo Paper
+Photo Photo Paper
+Glossy Photo Quality Glossy Paper
+Ilford Ilford Heavy Paper
+Other Other
+.TE
+.PP
+We have found that glossy photo papers not specifically designed for Epson
+printers generally perform poorly in Epson printers. The ink tends to pool on
+the paper, causing muddy shadows and possibly leaving ink on the printer
+rollers. Use of the highest quality printing modes (1440x720 highest quality
+and 2880x720 unidirectional) produces the best result on such papers, probably
+because printing is slower and there is more time for the ink to dry.
+.SS Canon printers
+.TS
+li li
+lb l.
+Media Type Description
+_
+Plain Plain Paper
+Transparency Transparencies
+BackFilm Back Print Film
+Fabric Fabric Sheets
+Envelope Envelope
+Coated High Resolution Paper
+TShirt T-Shirt Transfers
+GlossyFilm High Gloss Film
+GlossyPaper Glossy Photo Paper
+GlossyCards Glossy Photo Cards
+GlossyPro Photo Paper Pro
+.TE
+.SS PCL (Hewlett-Packard and Lexmark 4076) inkjet printers
+.TS
+li li
+lb l.
+Media Type Description
+_
+Plain Plain
+Bond Bond
+Premium Premium
+Glossy Glossy/Photo
+Transparency Transparency
+GlossyQD Quick-dry Photo
+TransparencyQD Quick-dry Transparency
+.TE
+.PP
+PCL laser printers do not allow specification of any media type.
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-models.7.in b/man/gimpprint-models.7.in
new file mode 100644
index 0000000..41f5195
--- /dev/null
+++ b/man/gimpprint-models.7.in
@@ -0,0 +1,248 @@
+.\" t
+.\" $Id: gimpprint-models.7.in,v 1.1.6.4 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-MODELS 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-models \- Gimp-Print printer drivers
+.SH DESCRIPTION
+Gimp-Print supports many different printer models specific. The option names
+are case sensitive.
+.SH PRINTER MODELS
+.TS
+li li
+lb l.
+Model name Description
+_
+bjc\-30 CANON BJC 30
+bjc\-50 CANON BJC 50
+bjc\-55 CANON BJC 55
+bjc\-80 CANON BJC 80
+bjc\-85 CANON BJC 85
+bjc\-210 CANON BJC 210
+bjc\-240 CANON BJC 240
+bjc\-250 CANON BJC 250
+bjc\-1000 CANON BJC 1000
+bjc\-2000 CANON BJC 2000
+bjc\-3000 CANON BJC 3000
+bjc\-4300 CANON BJC 4300
+bjc\-4400 CANON BJC 4400 photo
+bjc\-6000 CANON BJC 6000
+bjc\-6100 CANON BJC 6100
+bjc\-7000 CANON BJC 7000
+bjc\-7100 CANON BJC 7100
+bjc\-8200 CANON BJC 8200
+bjc\-s400 CANON S400
+bjc\-s450 CANON S450
+bjc\-s800 CANON S800
+bjc\-s4500 CANON S4500
+escp2\-c20sx EPSON Stylus C20SX
+escp2\-c20ux EPSON Stylus C20UX
+escp2\-c40sx EPSON Stylus C40SX
+escp2\-c40ux EPSON Stylus C40UX
+escp2\-c41sx EPSON Stylus C41SX
+escp2\-c41ux EPSON Stylus C41UX
+escp2\-c42sx EPSON Stylus C42SX
+escp2\-c42ux EPSON Stylus C42UX
+escp2\-c60 EPSON Stylus C60
+escp2\-c61 EPSON Stylus C61
+escp2\-c62 EPSON Stylus C62
+escp2\-c70 EPSON Stylus C70
+escp2\-c80 EPSON Stylus C80
+escp2\-c82 EPSON Stylus C82
+escp2 EPSON Stylus Color
+escp2\-pro EPSON Stylus Color Pro
+escp2\-pro\-xl EPSON Stylus Color Pro XL
+escp2\-400 EPSON Stylus Color 400
+escp2\-440 EPSON Stylus Color 440
+escp2\-460 EPSON Stylus Color 460
+escp2\-480 EPSON Stylus Color 480
+escp2\-500 EPSON Stylus Color 500
+escp2\-580 EPSON Stylus Color 580
+escp2\-600 EPSON Stylus Color 600
+escp2\-640 EPSON Stylus Color 640
+escp2\-660 EPSON Stylus Color 660
+escp2\-670 EPSON Stylus Color 670
+escp2\-680 EPSON Stylus Color 680
+escp2\-740 EPSON Stylus Color 740
+escp2\-760 EPSON Stylus Color 760
+escp2\-777 EPSON Stylus Color 777
+escp2\-800 EPSON Stylus Color 800
+escp2\-850 EPSON Stylus Color 850
+escp2\-860 EPSON Stylus Color 860
+escp2\-880 EPSON Stylus Color 880
+escp2\-83 EPSON Stylus Color 83
+escp2\-900 EPSON Stylus Color 900
+escp2\-980 EPSON Stylus Color 980
+escp2\-1160 EPSON Stylus Color 1160
+escp2\-1500 EPSON Stylus Color 1500
+escp2\-1520 EPSON Stylus Color 1520
+escp2\-3000 EPSON Stylus Color 3000
+escp2\-photo EPSON Stylus Photo
+escp2\-700 EPSON Stylus Photo 700
+escp2\-ex EPSON Stylus Photo EX
+escp2\-ex3 EPSON Stylus Photo EX3
+escp2\-720 EPSON Stylus Photo 720
+escp2\-750 EPSON Stylus Photo 750
+escp2\-780 EPSON Stylus Photo 780
+escp2\-785 EPSON Stylus Photo 785EPX
+escp2\-790 EPSON Stylus Photo 790
+escp2\-810 EPSON Stylus Photo 810
+escp2\-820 EPSON Stylus Photo 820
+escp2\-830 EPSON Stylus Photo 830
+escp2\-870 EPSON Stylus Photo 870
+escp2\-875 EPSON Stylus Photo 875
+escp2\-890 EPSON Stylus Photo 890
+escp2\-895 EPSON Stylus Photo 895
+escp2\-915 EPSON Stylus Photo 915
+escp2\-925 EPSON Stylus Photo 925
+escp2\-950 EPSON Stylus Photo 950
+escp2\-960 EPSON Stylus Photo 960
+escp2\-1200 EPSON Stylus Photo 1200
+escp2\-1270 EPSON Stylus Photo 1270
+escp2\-1280 EPSON Stylus Photo 1280
+escp2\-1290 EPSON Stylus Photo 1290
+escp2\-2000 EPSON Stylus Photo 2000P
+escp2\-2100 EPSON Stylus Photo 2100
+escp2\-2200 EPSON Stylus Photo 2200
+escp2\-5000 EPSON Stylus Pro 5000
+escp2\-5500 EPSON Stylus Pro 5500
+escp2\-7000 EPSON Stylus Pro 7000
+escp2\-7500 EPSON Stylus Pro 7500
+escp2\-7600 EPSON Stylus Pro 7600
+escp2\-9000 EPSON Stylus Pro 9000
+escp2\-9500 EPSON Stylus Pro 9500
+escp2\-9600 EPSON Stylus Pro 9600
+escp2\-10000 EPSON Stylus Pro 10000
+escp2\-scan2000 EPSON Stylus Scan 2000
+escp2\-scan2500 EPSON Stylus Scan 2500
+escp2\-cx3200 EPSON Stylus CX-3200
+escp2\-cx5200 EPSON Stylus CX-5200
+escp2\-cl700 EPSON CL-700
+escp2\-cl750 EPSON CL-750
+escp2\-em900c EPSON EM-900C
+escp2\-em930c EPSON EM-930C
+escp2\-mc10000 EPSON MC-10000
+escp2\-mc2000 EPSON MC-2000
+escp2\-mc5000 EPSON MC-5000
+escp2\-mc7000 EPSON MC-7000
+escp2\-mc9000 EPSON MC-9000
+escp2\-mj930c EPSON MJ-930C
+escp2\-mj5100c EPSON MJ-5100C
+escp2\-mj6000c EPSON MJ-6000C
+escp2\-mj8000c EPSON MJ-8000C
+escp2\-pm10000 EPSON PM-10000
+escp2\-pm2000c EPSON PM-2000C
+escp2\-pm2200c EPSON PM-2200C
+escp2\-pm3000c EPSON PM-3000C
+escp2\-pm3300c EPSON PM-3300C
+escp2\-pm3500c EPSON PM-3500C
+escp2\-pm4000px EPSON PM-4000PX
+escp2\-pm5000c EPSON PM-5000C
+escp2\-pm7000c EPSON PM-7000C
+escp2\-pm700c EPSON PM-700C
+escp2\-pm730c EPSON PM-730C
+escp2\-pm750c EPSON PM-750C
+escp2\-pm760c EPSON PM-760C
+escp2\-pm770c EPSON PM-770C
+escp2\-pm780c EPSON PM-780C
+escp2\-pm790pt EPSON PM-790PT
+escp2\-pm800c EPSON PM-800C
+escp2\-pm850pt EPSON PM-850PT
+escp2\-pm880c EPSON PM-880C
+escp2\-pm9000c EPSON PM-9000C
+escp2\-pm950c EPSON PM-950C
+escp2\-px7000 EPSON PX-7000
+escp2\-px9000 EPSON PX-9000
+pcl\-desnj\-230 HP DesignJet 230
+pcl\-desnj\-250 HP DesignJet 250
+pcl\-desnj\-430 HP DesignJet 430
+pcl\-desnj\-450 HP DesignJet 450
+pcl\-desnj\-455 HP DesignJet 455
+pcl\-desnj\-488 HP DesignJet 488
+pcl\-desnj\-700 HP DesignJet 700
+pcl\-750 HP DesignJet 750C
+pcl\-desnj\-250 HP DesignJet 2500
+pcl\-desnj\-350 HP DesignJet 3500
+pcl\-340 HP DeskJet 340
+pcl\-400 HP DeskJet 400
+pcl\-500 HP DeskJet 500
+pcl\-501 HP DeskJet 500C
+pcl\-520 HP DeskJet 520
+pcl\-540 HP DeskJet 540C
+pcl\-550 HP DeskJet 550C
+pcl\-560 HP DeskJet 560C
+pcl\-600 HP DeskJet 600/600C (Single Cartridge)
+pcl\-601 HP DeskJet 600 series (2 Cartridge)
+pcl\-690 HP DeskJet 690 series (Photo-Ink capable)
+pcl\-810 HP DeskJet 810C
+pcl\-812 HP DeskJet 812C
+pcl\-840 HP DeskJet 840C
+pcl\-842 HP DeskJet 842C
+pcl\-845 HP DeskJet 845C
+pcl\-850 HP DeskJet 850C
+pcl\-855 HP DeskJet 855C
+pcl\-870 HP DeskJet 870C
+pcl\-890 HP DeskJet 890C
+pcl\-895 HP DeskJet 895C
+pcl\-900 HP DeskJet 900 series
+pcl\-P1000 HP PhotoSmart P1000
+pcl\-1100 HP DeskJet 1100C
+pcl\-P1100 HP PhotoSmart P1100
+pcl\-1120 HP DeskJet 1120C
+pcl\-1200 HP DeskJet 1200C
+pcl\-1220 HP DeskJet 1220C
+pcl\-1600 HP DeskJet 1600C
+pcl\-2000 HP DeskJet 2000 series
+pcl\-2500 HP DeskJet 2500 series
+pcl\-2 HP LaserJet II series
+pcl\-3 HP LaserJet III series
+pcl\-4 HP LaserJet 4 series
+pcl\-4v HP LaserJet 4V, 4Si
+pcl\-5 HP LaserJet 5 series
+pcl\-5si HP LaserJet 5Si
+pcl\-6 HP LaserJet 6 series
+lexmark\-4076 Lexmark 4076 (PCL printer)
+lexmark\-z42 Lexmark Z42
+lexmark\-z43 Lexmark Z43
+lexmark\-z52 Lexmark Z52
+lexmark\-z53 Lexmark Z53
+.TE
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint-resolutions.7.in b/man/gimpprint-resolutions.7.in
new file mode 100644
index 0000000..42f0a92
--- /dev/null
+++ b/man/gimpprint-resolutions.7.in
@@ -0,0 +1,431 @@
+.\" t
+.\" $Id: gimpprint-resolutions.7.in,v 1.1.6.5 2003/12/13 12:09:58 rleigh Exp $
+.\" Copyright (C) 2000 Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH GIMPPRINT\-RESOLUTIONS 7 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+gimpprint\-resolutions \- Gimp-Print print resolutions
+.SH DESCRIPTION
+Gimp-Print supports many different resolutions, which are printer type
+specific. The option names are case sensitive. Not all resolutions are
+supported on all printers.
+.SH PRINT RESOLUTONS
+.SS Epson Stylus printers
+Within each specified resolution, the quality is generally listed from worst to
+best (and generally higher quality means lower speed). For example, \fI360 DPI
+Unidirectional\fP is usually better than \fI360 DPI\fP. Characteristics of
+specific models and individual printers may affect the orderings to some
+degree; on many printers, with certain papers, unidirectional printing will
+improve quality substantially more than using an otherwise better quality
+printing mode.
+.PP
+The difference between different quality settings lies in the number
+of passes made over each line. "High" and "Highest" quality settings
+perform more passes, printing fewer dots with each pass over the same
+line and using different nozzles for each pass. This reduces banding
+effects, but requires more time.
+.PP
+\fIInterleave\fP modes use algorithms within the printer to generate the
+sequence of rows printed. These algorithms generally only work well at low
+printing resolutions. Many printers do not support this kind of printing at
+resolutions of 720 DPI and above, and some printers that do actually print just
+one row (using just one nozzle per color) at a time. While this particular use
+will produce extremely high quality (no banding whatsoever, normally), it is
+extremely slow and may eventually damage the print head due to ink pooling.
+All printers that we are aware of have no such trouble at 360 DPI.
+.PP
+We generally recommend the following resolutions for the following
+purposes:
+.PP
+.IP
+.TS
+li li.
+Resolution Recommended use
+_
+.T&
+lb lw(4i)
+lb ^.
+360x90 T{
+.na
+Fast economy draft output on plain paper (output will be very banded and not
+very dark).
+T}
+360x120
+.T&
+lb l.
+180 T{
+Economy draft output on plain paper (output will not be very dark).
+T}
+.T&
+lb l
+lb ^.
+360x180 T{
+Draft output on plain paper (output will not be solidly black); economy draft
+output on good quality inkjet paper.
+T}
+360x240
+.T&
+lb l.
+360 T{
+Standard quality output on plain paper (output will be solidly black); draft
+output on good quality inkjet paper.
+T}
+720x360 T{
+High quality output on plain paper; standard output on good
+quality inkjet paper.
+T}
+720 T{
+Maximum quality on plain paper; high quality on good inkjet paper; proofs on
+photo-quality paper. On many printers, there will be little difference between
+this and 720x360 on plain paper.
+T}
+1440x720 T{
+High quality on photo paper; use 1440x720 Highest Quality to reduce
+microbanding if needed. While this will work on plain paper, it usually offers
+little improvement over 720 DPI.
+T}
+2880x720 T{
+Highest quality on photo paper. While this may yield slightly improved
+quality, it will generally not be markedly superior to 1440x720 Highest
+Quality, except on the Stylus Color 980 and Stylus C70 and C80, where it may
+yield a noticeable improvement. It takes as long to print as 1440x720 highest
+quality, but twice as long to generate the output.
+T}
+1440x1440 T{
+An unsupported mode that offers higher quality than 2880x720 for certain types
+of images on very high quality paper. It does not appear to offer any
+advantage on smooth tones, but fine detail (particularly vertical, and to a
+lesser extent near-horizontal) it shows noticeable improvement. It takes as
+long to print as 2880x720. 1440x1440 highest quality takes twice as long to
+print.
+T}
+2880x1440 T{
+An unsupported mode that may offer higher quality than 2880x720 for certain
+types of images on very high quality paper. Experiments conducted thus far
+demonstrate little if any improvement over 1440x1440. It takes twice as long
+to print as 2880x720 or 1440x1440, and as long to print as 1440x1440 highest
+quality.
+.ad
+T}
+.TE
+.PP
+The following resolutions are supported on printers other than the
+Stylus Pro (5000, 5500, 7000, 7500, 9000, 9500, and 10000) printers.
+Resolutions for those printers are listed in a later section. Please
+see the notes at the end of this section.
+.PP
+.TS
+li li li
+lb l l.
+Quality Description Note
+_
+360x90dpi 360 x 90 DPI Fast Economy Draft (1)
+180dpi 180 DPI Economy Draft (2)
+360x180dpi 360 x 180 DPI Draft (2)
+360x180sw 360 x 180 DPI Draft (3)
+360x120dpi 360 x 120 DPI Economy Draft (4)
+360x120sw 360 x 120 DPI Economy Draft (5)
+360x240dpi 360 x 240 DPI Draft (4)
+360x240sw 360 x 240 DPI Draft (5)
+360dpi 360 DPI (6)
+360uni 360 DPI Unidirectional (6)
+360mw 360 DPI Interleave (6, *)
+360mwuni 360 DPI Interleave Unidirectional (6)
+360sw 360 DPI (7, 17, *)
+360swuni 360 DPI Unidirectional (7, 17)
+360hq 360 DPI High Quality (7, 8, 17)
+360hquni 360 DPI High Quality Unidirectional (7, 8, 17)
+720x360sw 720 x 360 DPI (9, 10)
+720x360swuni 720 x 360 DPI Unidirectional (9, 10)
+720mw 720 DPI Interleave (11)
+720mwuni 720 DPI Interleave Unidirectional (11)
+720sw 720 DPI (9)
+720swuni 720 DPI Unidirectional (9)
+720hq 720 DPI High Quality (9)
+720hquni 720 DPI High Quality Unidirectional (9)
+720hq2 720 DPI Highest Quality (9)
+1440x720mw 1440 x 720 DPI Interleave (12)
+1440x720mwuni 1440 x 720 DPI Interleave Unidirectional (12)
+1440x720sw 1440 x 720 DPI (13)
+1440x720swuni 1440 x 720 DPI Unidirectional (13, 14)
+1440x720hq 1440 x 720 DPI Highest Quality (13)
+2880x720sw 2880 x 720 DPI (15)
+2880x720swuni 2880 x 720 DPI Unidirectional (15)
+1440x1440sw 1440 x 1440 DPI (16)
+1440x1440hq2 1440 x 1440 DPI Highest Quality (16)
+2880x1440sw 2880 x 1440 DPI (16)
+.TE
+.IP *
+This resolution is the default on all printers supporting this setting.
+.IP 1
+Works on printers that have a basic vertical spacing of 1/90". This includes
+the Stylus Color, Stylus Color 440, 460, 600, 640, 660, 670, and 1500, and
+Stylus Photo, Stylus Photo 700, 720, and EX.
+.IP 2
+Works on most printers that have a basic vertical spacing of 1/90, 1/180, or
+1/360 inch. This includes Stylus Color, Stylus Color 440, 460, 600, 640, 660,
+670, 800, 850, 900, 980, 1500, 1520, 3000, and Stylus Photo, Stylus Photo 700,
+720 and EX.
+.IP 3
+Works on Stylus C70, C80, and C82; and Stylus Photo 950, 960, 2100, and 2200.
+.IP 4
+Works on older printers with dot spacing of 1/120 inch. This includes the
+Stylus Color Pro, Pro XL, 400, and 500.
+.IP 5
+Works on newer printers with dot spacing of 1/120 inch. This includes the
+Stylus C20, C40, C41, C42, C60, C61, and C62; the Stylus Color 480, 580, 680,
+740, 760, 777, 860, 880, 83, and 1160, and the Stylus Photo 750, 780, 785, 790,
+810, 820, 825, 830, 870, 875, 890, 895, 915, 925, 1270, 1280, 1290, and 2000P,
+and the Stylus Scan 2000 and 2500.
+.IP 6
+Works on all printers that do not support variable drop sizes. This includes
+the Stylus Color, Stylus Color 400, 440, 460, 500, 600, 640, 660, 800, 850,
+1500, 1520, and 3000, Stylus Color Pro, Stylus Color Pro XL, and Stylus Photo,
+Stylus Photo 700, and EX.
+.IP 7
+Works on all printers that do support variable drop sizes. This includes all
+supported Epson Stylus printers except for those listed in note (6).
+.IP 8
+Recommended only on processors slower than 200 MHz, the system is heavily
+loaded with a faster processor, or if problems are experienced at 720x360.
+.IP 9
+Works on all supported printers except for Stylus Color, Stylus Color Pro,
+Stylus Color Pro XL, Stylus Color 1500, 1520, and 3000.
+.IP 10
+On printers that do not support variable drop size (see note (4)), this will
+print as fast as 360 DPI, and faster than 360 DPI High Quality. It will take
+twice as long to generate output, which may be important on a heavily loaded
+system or a processor slower than 200 MHz.
+.IP 11
+Works on some older printers, including the Stylus Color, Stylus Color 400,
+500, 600, 800, 850, 1500, 1520, and 3000, Stylus Color Pro, and Stylus Color
+Pro XL. Not recommended except for the Stylus Color, Stylus Color 1500, 1520,
+and 3000.
+.IP 12
+Works on Stylus Color 600, 800, 850, 1520, and 3000. Not recommended unless
+other 1440x720 modes do not work.
+.IP 13
+Works on all printers that support 1440x720 DPI. This includes all supported
+printers except for the Stylus Color, Stylus Color Pro, Pro XL, 400, 440, 460,
+480, 500, and 1500, and Stylus Photo. In addition, this may not work correctly
+on Stylus Color 1520 and Stylus Color 3000.
+.IP 14
+This is identical to 1440 x 720 Highest Quality (1440x720hq) on the Stylus
+Color 900.
+.IP 15
+Works on all printers that support 2880x720 DPI. This includes the Stylus C60,
+C61, C62, C70, C80, and C82, the Stylus Color 680, 777, 880, 83, and 980, and
+Stylus Photo 780, 790, 810, 820, 825, 830, 890, 915, 925, 950, 960, 1280, and 1290.
+This resolution is offered on the Stylus Photo 2100 and 2200, but may not work
+correctly.
+.IP 16
+Works on Epson Stylus Photo 825, 830, 925, 950, 960, 2100, 2200; Stylus C61,
+C62, C70, C80, C82 ; Stylus Pro 7600 and 9600. This resolution is not
+supported by Epson on the C70 and C80, but it works correctly on at least some
+such printers.
+.IP 17
+These resolutions print at particularly high speed on the Epson Stylus Photo
+950, 960, 2100, and 2200 when printing in Four Color Standard or Three Color
+Composite modes, or when printing in monochrome or grayscale with any ink type
+other than Two Level Grayscale, Seven Color Photo, or Quadtone.
+.PP
+The Stylus Pro printers (Stylus Pro 5000, 5500, 7000, 7500, 7600,
+9000, 9500, 9600, and 10000) support additional interleave modes known
+as Full Overlap (FOL), Four Pass, and FOL2. The Stylus Pro 5500,
+7500, 7600, 9500, 9600, and 10000 additionally have a mode called MW2.
+These modes can only be used at certain resolutions. Stylus Pro
+printers support the following resolutions:
+.PP
+.TS
+li li
+lb l.
+Quality Description
+_
+180dpi 180 DPI
+360dpi 360 DPI
+360uni 360 DPI Unidirectional
+360mw 360 DPI Interleave
+360mwuni 360 DPI Interleave Unidirectional
+360fol 360 DPI Full Overlap
+360foluni 360 DPI Full Overlap Unidirectional
+360fol2 360 DPI FOL2
+360fol2uni 360 DPI FOL2 Unidirectional
+360mw2 360 DPI MW2
+360mw2uni 360 DPI MW2 Unidirectional
+720x360dpi 720 x 360 DPI
+720x360uni 720 x 360 DPI Unidirectional
+720x360fol 720 x 360 DPI FOL
+720x360foluni 720 x 360 DPI FOL Unidirectional
+720x360fol2 720 x 360 DPI FOL2
+720x360fol2uni 720 x 360 DPI FOL2 Unidirectional
+720x360mw2 720 x 360 DPI MW2
+720x360mw2uni 720 x 360 DPI MW2 Unidirectional
+720dpi 720 DPI
+720uni 720 DPI Unidirectional
+720mw 720 DPI Interleave
+720mwuni 720 DPI Interleave Unidirectional
+720fol 720 DPI Full Overlap
+720foluni 720 DPI Full Overlap Unidirectional
+720fourp 720 DPI Four Pass
+720fourpuni 720 DPI Four Pass Unidirectional
+1440x720dpi 1440 x 720 DPI
+1440x720uni 1440 x 720 DPI Unidirectional
+1440x720mw 1440 x 720 DPI Interleave
+1440x720mwuni 1440 x 720 DPI Interleave Unidirectional
+1440x720fol 1440 x 720 DPI FOL
+1440x720foluni 1440 x 720 DPI FOL Unidirectional
+1440x720fourp 1440 x 720 DPI Four Pass
+1440x720fourpuni 1440 x 720 DPI Four Pass Unidirectional
+.TE
+.PP
+In addition, the Stylus Pro 7600 and 9600 printers support the
+following resolutions:
+.PP
+.TS
+li li
+lb l.
+Quality Description
+_
+2880x720dpi 2880 x 720 DPI
+2880x720uni 2880 x 720 DPI Unidirectional
+2880x720mw 2880 x 720 DPI Interleave
+2880x720mwuni 2880 x 720 DPI Interleave Unidirectional
+2880x720fol 2880 x 720 DPI FOL
+2880x720foluni 2880 x 720 DPI FOL Unidirectional
+2880x720fourp 2880 x 720 DPI Four Pass
+2880x720fourpuni 2880 x 720 DPI Four Pass Unidirectional
+1440x1440dpi 1440 x 1440 DPI
+1440x1440uni 1440 x 1440 DPI Unidirectional
+1440x1440mw 1440 x 1440 DPI Interleave
+1440x1440mwuni 1440 x 1440 DPI Interleave Unidirectional
+1440x1440fol 1440 x 1440 DPI FOL
+1440x1440foluni 1440 x 1440 DPI FOL Unidirectional
+1440x1440fourp 1440 x 1440 DPI Four Pass
+1440x1440fourpuni 1440 x 1440 DPI Four Pass Unidirectional
+2880x1440dpi 2880 x 1440 DPI
+2880x1440uni 2880 x 1440 DPI Unidirectional
+2880x1440mw 2880 x 1440 DPI Interleave
+2880x1440mwuni 2880 x 1440 DPI Interleave Unidirectional
+2880x1440fol 2880 x 1440 DPI FOL
+2880x1440foluni 2880 x 1440 DPI FOL Unidirectional
+2880x1440fourp 2880 x 1440 DPI Four Pass
+2880x1440fourpuni 2880 x 1440 DPI Four Pass Unidirectional
+.TE
+.SS PCL printers (including Hewlett-Packard and Lexmark 4076)
+.PP
+In addition, the Stylus Pro 7600 and 9600 printers support the
+following resolutions:
+.PP
+.TS
+li li
+lb lw(3i).
+Quality Description
+_
+150dpi 150x150 DPI (should work on all printers)
+300dpi T{
+.na
+300x300 DPI
+(should work on all printers, C-RET on DJ 850/855/870/890)
+T}
+600x300dpi 600x300 DPI (DJ 6xx/810/812/840/842/895)
+600mono T{
+600x600 DPI monochrome (DJ 6xx (except 69x) /8xx/1100/1120)
+T}
+600dpi T{
+600x600 DPI (DJ 69x/840/9xx/1220/2000/2500,
+PhotoSmart P1000/P1100, LJ5/5Si/6)
+.ad
+T}
+.TE
+.PP
+Note: the higher resolutions of newer PCL printers using "Photo-Ret" are
+not yet supported.
+.SS Lexmark printers (other than the 4076)
+.TS
+li li
+lb l.
+Quality Description
+_
+300x600dpi 300 DPI x 600 DPI
+600dpi 600 DPI
+600hq 600 DPI high quality
+600uni 600 DPI Unidirectional
+1200dpi 1200 DPI
+1200hq 1200 DPI high quality
+1200hq2 1200 DPI highest quality
+1200uni 1200 DPI Unidirectional
+2400x1200dpi 2400 DPI x 1200 DPI (Z52)
+2400x1200hq 2400 DPI x 1200 DPI high quality (Z52)
+2400x1200hq2 2400 DPI x 1200 DPI highest quality (Z52)
+.TE
+.SS Canon printers
+1200 DPI printers (BJC 7000, BJC 7100, BJC 8500):
+.PP
+.TS
+li li
+lb l.
+Quality Description
+_
+300x300dpi 300x300 DPI
+300x300dmt 300x300 DPI DMT
+600x600dpi 600x600 DPI
+600x600dmt 600x600 DPI DMT
+1200x600dpi 1200x600 DPI
+1200x1200dpi 1200x1200 DPI
+.TE
+.PP
+1440 DPI printers (BJC 30, BJC 50, BJC 55, BJC 80, BJC 85, BJC 210,
+ BJC 240, BJC 250, BJC 1000, BJC 2000, BJC 3000, BJC 4300, BJC
+ 4400, BJC 6000, BJC 6100, BJC 6200, BJC 6500, BJC 8200, S400,
+ S450, S800, S4500):
+.PP
+.TS
+li li
+lb l.
+Quality Description
+_
+360x360dpi 360x360 DPI
+360x360dmt 360x360 DPI DMT
+720x360dpi 720x360 DPI
+720x720dpi 720x720 DPI
+1440x720dpi 1440x720 DPI
+1440x1440dpi 1440x1440 DPI
+.TE
+.SH COPYRIGHT
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
+.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/man/gimpprint.3.in b/man/gimpprint.3.in
index 5ac61b7..c351203 100644
--- a/man/gimpprint.3.in
+++ b/man/gimpprint.3.in
@@ -1,6 +1,5 @@
-'\" t
-.\" $Id: gimpprint.3.in,v 1.1 2001/05/06 22:08:52 rleigh Exp $
-.\" Copyright (C) 2000 Roger Leigh <rl117@york.ac.uk>
+.\" $Id: gimpprint.3.in,v 1.1.10.3 2003/08/22 23:31:56 rleigh Exp $
+.\" Copyright (C) 2000-2002 Roger Leigh <roger@whinlatter.uklinux.net>
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
@@ -15,46 +14,49 @@
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-.hy 0
-.TH GIMPPRINT 3 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "GIMP Manual Pages"
-
+.TH GIMPPRINT 3 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
.SH NAME
-\fBgimpprint\fR - High quality bitmap printing library
-
+\fBgimpprint\fR \- High quality raster image printing library
.SH SYNOPSIS
-\fB#include <gimp-print/gimp-print.h>\fR
-.br
-
+\fB#include <gimp\-print/gimp\-print.h>\fR
.SH DESCRIPTION
The \fBgimpprint\fR library routines give programmers an interface to print
high quality bitmap images on most modern printers. It includes drivers which
provide printing quality for UNIX/Linux on a par with proprietary
vendor-supplied drivers in many cases, and can be used for many of the most
demanding printing tasks.
-
.SH COPYRIGHT
-Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz (rlk@alum.mit.edu)
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your option)
-any later version.
-
-This manual page was written by Roger Leigh (rl117@york.ac.uk)
-
+Copyright \(co 2001 Michael Sweet (mike@easysw.com) and Robert Krawitz
+(rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This manual page was written by Roger Leigh (roger@whinlatter.uklinux.net)
.SH SEE ALSO
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-imagetypes (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.PP
The full documentation for
-.B GIMP-Print
+.B Gimp-Print
is maintained as a Texinfo manual. If the
.B info
and
-.B GIMP-Print
+.B Gimp-Print
programs are properly installed at your site, the command
.IP
-.B info gimp-print
+.B info gimp\-print
.PP
should give you access to the complete manual.
-
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
diff --git a/man/ijsgimpprint.1.in b/man/ijsgimpprint.1.in
new file mode 100644
index 0000000..6759f4c
--- /dev/null
+++ b/man/ijsgimpprint.1.in
@@ -0,0 +1,319 @@
+.\" t
+.\" $Id: ijsgimpprint.1.in,v 1.1.2.5 2003/08/24 19:21:48 rleigh Exp $
+.\" Copyright (C) 2000-2002 Robert Krawitz <rlk@alum.mit.edu>
+.\" Roger Leigh <roger@whinlatter.uklinux.net>
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2, or (at your option)
+.\" any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+.TH IJSGIMPPRINT 1 "@RELEASE_DATE@" "Version @GIMPPRINT_VERSION@" "Gimp-Print Manual Pages"
+.SH NAME
+ijsgimpprint \- Ghostscript driver for Gimp-Print
+.SH SYNOPSIS
+.B gs
+\-sDEVICE=ijs
+\-sIjsServer=@prefix@/bin/ijsgimpprint
+\-sDeviceManufacturer=\fIvendor\fP
+\-sDeviceModel=\fIname\fP
+[ \fI\-dIjsUseOutputFD\fP ]
+\-sIjsParams=[ \fIkey1\fP=\fIvalue1\fP,\fIkeyn\fP=\fIvaluen\fP... ]
+[ \fIoptions\fP ]
+[ \fIfiles\fP ]
+.SH DESCRIPTION
+.PP
+.B ijsgimpprint
+provides Ghostscript with a Gimp-Print driver, supporting all printers
+supported by libgimpprint.
+.PP
+IJS is an initiative to improve the quality and ease of use of printing with
+Ghostscript. It permits adding or upgrading drivers without recompiling
+Ghostscript. An IJS driver runs in a separate process that communicates with
+Ghostscript via an IPC channel. The Gimp-Print IJS driver may be used with
+AFPL Ghostscript, as it runs in a separate process.
+.PP
+The options for this driver are very complex. We strongly recommend
+use of a printer management system such as Foomatic rather than
+configuring a spooler manually with this driver. The driver name used
+by Foomatic is \fIgimp\-print\-ijs\fP.
+.SH OPTIONS
+\fIijsgimpprint\fP accepts the following options:
+.SS Ghostscript IJS options
+.TP
+.B \-dIjsUseOutputFD
+This option should be specified whenever output from Ghostscript will go to
+stdout or into a pipe. It may be specified in all other cases, with only a
+slight performance degradation.
+.TP
+\fB\-sIjsParams\fP=\fIOption1\fP=\fIValue1\fP,\fIOption2\fP=\fIValue2\fP
+This parameter contains a single string containing a comma-separated list of
+sub-options.
+.TP
+\fB\-sDeviceManufacturer\fP=\fIvendor\fP \fB\-sDeviceModel\fP=\fIname\fP
+This option must be supplied. There is no default. The IJS driver requires
+the \fIvendor\fP (it's part of the protocol), but the ijsgimpprint driver
+ignores it. It should be CANON, EPSON, LEXMARK, or HEWLETT\-PACKARD. The value
+of the \-sDeviceModel parameter is the same as the value of the \-sModel
+parameter in the old stp driver.
+.IP
+A complete list of supported printers may be found in
+.BR gimpprint\-models (7).
+.IP
+Most or all of the Epson Stylus printers are fully functional. The others
+vary. In particular, all of the listed Epson Stylus Photo printers print in
+full 6-color photo mode; most of the others do not. The color output has also
+been better tuned for Epson Stylus printers than for others.
+.SS Gimp-Print IJS options
+These options are all used in the \-sIjsParams options, except where mentioned
+otherwise. Due to their complicated nature, the options are explained in
+detail in their own sections.
+.SH PRINT RESOLUTION
+.TP
+\fBQuality\fP=\fIquality\fP
+The meaning of this is model-specific. Two names are listed for each
+resolution; the first (short) name is the \fIquality\fP that must be passed to
+Quality, and the second (long) name is descriptive. Each printer has its own
+default value; for most printers, this is a reasonable 300 or 360 DPI
+resolution. A full list of available resolutions for each printer may be found
+in
+.BR gimpprint\-resolutions (7).
+.SH INK TYPES
+.TP
+\fBInkType\fP=\fIinktype\fP
+.PP
+This is printer type specific. The option names are case sensitive. A full
+list of available media types may be found in
+.BR gimmprint\-inktypes (7).
+.SH MEDIA TYPES
+.TP
+\fBMediaType\fP=\fImediatype\fP
+.PP
+This is printer type specific. The option names are case sensitive. A full
+list of available media types may be found in
+.BR gimpprint\-mediatypes (7).
+.SH MEDIA SOURCES
+.TP
+\fBMediaSource\fP=\fImediasource\fP
+.PP
+This is printer type specific. The option names are case sensitive. A full
+list of available media sources may be found in
+.BR gimpprint\-mediasources (7).
+.PP
+.SH MEDIA SIZES
+.TP
+\fB\-sPAPERSIZE\fP=\fIpapersize\fP
+for known Ghostscript paper sizes.
+.TP
+\fB\-dDEVICEWIDTHPOINTS\fP=\fIx\fP \fB\-dDEVICEHEIGHTPOINTS\fP=\fIy\fP
+where \fIx\fP and \fIy\fP are the width and height of the paper respectively,
+in points (1/72"). Note this is a normal gs option, \fInot\fP an IJS option.
+.PP
+This is printer-specific; we cannot list the correct values for each printer
+here. The option names are case-sensitive. Two names are listed for each
+resolution; the first (short) name is the value that must be passed to
+\-sPAPERSIZE, and the second (long) name is descriptive. This option does not
+set GhostScript up to use a paper size other than the default; it only tells
+the driver to set up the printer for a different paper size. The default paper
+size is "Letter".
+.PP
+A complete list of available paper sizes may be found in
+.BR gimpprint\-mediasizes (7).
+.SH COLOR BALANCING
+.TP
+\fBCyan\fP=\fIval\fP
+.TP
+\fBMagenta\fP=\fIval\fP
+.TP
+\fBYellow\fP=\fIval\fP
+.TP
+\fBBrightness\fP=\fIval\fP
+.TP
+\fBContrast\fP=\fIval\fP
+.TP
+\fBGamma\fP=\fIval\fP
+.TP
+\fBDensity\fP=\fIval\fP
+.TP
+\fBSaturation\fP=\fIval\fP
+.PP
+A full description of the color balancing options, including the allowed ranges
+of values, may be found in
+.BR gimpprint\-color (7).
+.SH DITHERING ALGORITHMS
+.TP
+\fBDitherAlgorithm\fP=\fIalgorithm\fP
+Possible values for \fIalgorithm\fP may be found in
+.BR gimpprint\-dithers (7).
+.SH OUTPUT TYPE
+.TP
+\fB\-sProcessColorModel\fP=\fIDeviceGray\fP \fB\-dBitsPerSample\fP=1
+Black and white
+.TP
+\fB\-sProcessColorModel\fP=\fIDeviceGray\fP
+Greyscale
+.TP
+\fB\-sProcessColorModel\fP=\fIDeviceRGB\fP
+Color (RGB)
+.TP
+\fB\-sProcessColorModel\fP=\fIDeviceCMYK\fP
+Color (CMYK)
+.PP
+Note these are gs options, \fInot\fP IJS options. Choose color vs. grayscale
+output. Color output is the default. Choosing \fIDeviceGrey\fP and
+\-dBitsPerSample=1 results in only black ink (no color ink) being used, which is
+faster and usually results in the most accurate grayscale, but at the expense
+of smoothness. This prints only black and white (thresholding). This option
+always uses Fast dithering unless you specify Very Fast. If you want composite
+color (using a mixture of color and black inks to produce gray), use
+\fIDeviceGrey\fP.
+.PP
+In addition, using \fIDeviceGrey\fP uses luminance (perceived brightness) of
+red, green, and blue to choose output levels. Blue of a given intensity is
+perceived to be much darker than red, which in turn appears darker than green.
+\fIDeviceRGB\fP, \fIDeviceCYMK\fP and Saturation=0.0 (see "Saturation" above)
+do not use luminance.
+.PP
+CMYK output may be used with the IJS driver only. It is useful if
+you're printing a CMYK graphic and want explicit control over the
+inks. Generally it yields inferior quality, as Gimp-Print has good
+algorithms for converting RGB (screen) into CMYK (inks) that take
+into account paper type, ink type, and other variables. In CMYK
+mode, the brightness, contrast, and saturation controls do not
+function.
+.SH IMAGE TYPE
+This option can be used to optimize the dither.
+.TP
+\fBImageType\fP=\fIval\fP
+Possible values are:
+.IP
+.TS
+li li
+lb lw(4i).
+Value Description
+_
+1 T{
+.na
+Line art (color or gray scale)
+T}
+2 T{
+Primarily solid colors or smooth gradients (color or gray scale)
+T}
+3 T{
+Continuous-tone photographs (color or gray scale)
+T}
+.TE
+.IP
+Option \fI0\fP is the fastest. It generates strong, but not particularly
+accurate, colors. There may be some fairly sharp color transitions in this
+mode.
+.IP
+Option \fI1\fP generates more accurate colors, but is slower.
+.IP
+Option \fI2\fP generates the most accurate colors, but is considerably slower.
+.PP
+Note that any of the modes may be used with either color or black & white
+output. If black and white output is requested, but a color mode used,
+composite color will be printed. This generally offers smoother tone, but less
+purity of gray or black, than pure black ink. Furthermore, it is possible to
+tune the color of the gray (to achieve warmer or cooler effects) using the
+color controls in this fashion.
+.PP
+Specifying a lower GhostScript resolution (with \-r) results in faster color
+conversion. For example, if you print at 1440x720 DPI, but specify a
+Ghostscript resolution of 360 DPI (with \-r360), output will be significantly
+faster and there will be much less difference in performance between the three
+image type options.
+.SH EXAMPLES
+Note that a lot of these options are used for demonstration; generally
+adjusting the density is a bad idea!
+.SS Example 1
+Print charts to file, using A4 paper, color, 360 dpi:
+.IP
+.B gs \-sDEVICE=ijs \-sIjsServer=@prefix@/bin/ijsgimpprint
+.br
+.B \-sDeviceManufacturer=EPSON \-sDeviceModel=escp2\-ex
+.br
+.B \-sPAPERSIZE=a4 \-sOutputFile=itsyourchoice.prn
+.br
+.B \-sIjsParams=Density=1.6,Gamma=1.5,Saturation=0.9,\(rs
+.br
+.B Brightness=0.4,ImageType=1 foo.ps
+.SS Example 2
+Print color photograph to /dev/lp0 at maximum quality:
+.IP
+.B gs \-sDEVICE=ijs \-sIjsServer=@prefix@/bin/ijsgimpprint
+.br
+.B \-sDeviceManufacturer=EPSON \-sDeviceModel=escp2\-870
+.br
+.B \-sOutputFile=/dev/lp0
+.br
+.B \-sIjsParams='Quality=1440x720hq,MediaType=GlossyPhoto,\(rs
+.br
+.B Density=0.8,ImageType=2' foo.ps
+.SS Example 3
+Print pure black text to stdout:
+.IP
+.B gs \-sDEVICE=ijs \-sIjsServer=@prefix@/bin/ijsgimpprint
+.br
+.B \-sDeviceManufacturer=EPSON \-sDeviceModel=escp2\-660
+.br
+.B \-dIjsUseOutputFD \-sProcessColorModel=DeviceGray
+.br
+.B \-dBitsPerSample=1 \-sOutputFile=\-
+.br
+.B \-sIjsParams='Quality=720sw,Density=0.8' foo.ps
+.SH HISTORY
+The Ghostscript stp driver was originally written by Henryk Richter
+(buggs@comlab.uni\-rostock.de), and was integrated into Gimp-Print during the
+3.1 development series. Gimp-Print itself was originally written by Michael
+Sweet <mike@easysw.com>, who released up to version 2.0; Robert Krawitz
+released version 3.0. The Gimp-Print development team
+(http://gimp\-print.sourceforge.net) now maintains the entire package.
+.PP
+The IJS driver was originally written by Russell Lang, and incorporated into
+Gimp-Print in early 2002. This driver corresponds with the IJS protocol 0.32.
+.SH COPYRIGHT
+Copyright \(co 2001\-2002 Robert Krawitz (rlk@alum.mit.edu)
+.PP
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+.PP
+This program is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU General Public License for more details.
+.PP
+You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+Place - Suite 330, Boston, MA 02111-1307, USA.
+.SH AUTHORS
+Robert Krawitz. Originally written by Russell Lang.
+.PP
+This manual page was written by Robert Krawitz (rlk@alum.mit.edu) and Roger
+Leigh (roger@whinlatter.uklinux.net).
+.SH SEE ALSO
+.BR gs (1),
+.BR gimpprint\-color (7),
+.BR gimpprint\-dithers (7),
+.BR gimpprint\-inktypes (7),
+.BR gimpprint\-mediasizes (7),
+.BR gimpprint\-mediasources (7),
+.BR gimpprint\-mediatypes (7),
+.BR gimpprint\-models (7),
+.BR gimpprint\-resolutions (7).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff --git a/po/.cvsignore b/po/.cvsignore
deleted file mode 100644
index a10a180..0000000
--- a/po/.cvsignore
+++ /dev/null
@@ -1,10 +0,0 @@
-Makefile
-Makefile.in
-Makefile.in.in
-POTFILES
-cat-id-tbl.c
-*.gmo
-gimp-print.pot
-stamp-cat-id
-ChangeLog
-messages
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644
index 0000000..85472cf
--- /dev/null
+++ b/po/ChangeLog
@@ -0,0 +1,7 @@
+2004-07-15 gettextize <bug-gnu-utils@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.10.40.
+
+This ChangeLog is redundant. Please see the main ChangeLog for i18n changes.
+
+This file is present only to keep po/Makefile.in.in happy.
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..32b7376
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,196 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
+
+CC = @CC@
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+MSGMERGE = msgmerge
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+$(POFILES) $(GMOFILES)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+ $(MSGFMT) -o $@ $<
+
+.po.gmo:
+ file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ && rm -f $$file && $(GMSGFMT) --statistics -o $$file $<
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --add-comments --keyword=_ --keyword=N_ \
+ --files-from=$(srcdir)/POTFILES.in \
+ && test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
+ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ if test -r $$cat; then \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
+ else \
+ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$(DESTDIR)$$dir/$(PACKAGE).mo"; \
+ fi; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\.gmo$$//'`; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
+ done
+ if test "$(PACKAGE)" = "gettext"; then \
+ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
+ else \
+ : ; \
+ fi
+
+check: all
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ cp -p $$dir/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
+ cd $(srcdir); \
+ catalogs='$(GMOFILES)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\.gmo$$//'`; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \
+ mv -f $$lang.new.po $$lang.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.new.po; \
+ fi; \
+ done
+ $(MAKE) update-gmo
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 82932d6..d6bf69d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -16,6 +16,7 @@ src/main/print-color.c
src/main/print-dither.c
src/main/print-dither-matrices.c
src/main/print-escp2.c
+src/main/print-escp2-data.c
src/main/print-lexmark.c
src/main/print-pcl.c
src/main/print-ps.c
@@ -23,10 +24,8 @@ src/main/print-util.c
src/main/print-weave.c
#src/main/print-version.c
-## @-@-@-@-@ NO-GIMP @-@-@-@-@
# CUPS sources
src/cups/genppd.c
-## @-@-@-@-@ YES-GIMP @-@-@-@-@
# escputil sources
src/escputil/escputil.c
@@ -37,8 +36,9 @@ src/gimp/gimp_main_window.c
src/gimp/print-image-gimp.c
src/gimp/print.c
-## @-@-@-@-@ NO-GIMP @-@-@-@-@
# Foomatic-related sources
src/foomatic/printer_options.c
-## @-@-@-@-@ YES-GIMP @-@-@-@-@
+
+# Ghostscript IJS driver
+src/ghost/ijsgimpprint.c
diff --git a/po/cs.gmo b/po/cs.gmo
new file mode 100644
index 0000000..cb8edc7
--- /dev/null
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..874db37
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,3491 @@
+# Czech translation of gimp-print
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 2004 gimp-print's COPYRIGHT HOLDER
+# Copyright (C) 2004 Miloslav Trmac <mitr@volny.cz>
+# This file can be distributed under the same license as the gimp-print package.
+# Miloslav Trmac <mitr@volny.cz>, 2003, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 4.2.7-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2004-04-20 13:58+0200\n"
+"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: pÅ™epínaÄ `%s' není jednoznaÄný\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ `--%s' musí být zadán bez argumentu\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ `%c%s' musí být zadán bez argumentu\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: pÅ™epínaÄ `%s' vyžaduje argument\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznámý pÅ™epínaÄ `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznámý pÅ™epínaÄ `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neznámý pÅ™epínaÄ -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neznámý pÅ™epínaÄ -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: pÅ™epínaÄ vyžaduje argument -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: pÅ™epínaÄ `-W %s' není jednoznaÄný\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ `-W %s' musí být zadán bez argumentu\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Normální papír"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Fólie"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr ""
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Listy tkaniny"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Obálka"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Papír pro vysoká rozlišení"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "Obtisk na triÄko"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "Potah s vysokým leskem"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Lesklý fotopapír"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Lesklé foto karty"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Profesionální fotopapír"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Jiný"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Automatický podavaÄ listů"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "RuÄní s pÅ™estávkou"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "RuÄní bez pÅ™estávky"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Černá"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "Barvy CMY"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "Barvy CMYK"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Fotografické barvy CcMmY"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Fotografické barvy CcMmYK"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Adaptivní hybridní"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr ""
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Rychlé"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Velmi rychlé"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Hybridní Floid-Steinbergovo"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Tři barvy kompozitní"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Čtyři barvy standardní"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Å est barev foto"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Pět barev foto kompozitní"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Sedm barev rozšířené"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Šet barev rozšířené kompozitní"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Sedm barev foto"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Dva úrovně stupňů šedi"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quadtone"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "Rychlé podávání normálního papíru"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Pohlednice"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Lesklý potah"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Obálky"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Matný papír"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Papír pro inkoustové tiskárny"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Papír pro inkoustové tiskárny ve foto kvalitě"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Fotopapír"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Extra lesklý fotopapír"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Lesklý papír ve foto kvalitě"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "Papír ColorLife"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 × 90 DPI Rychlý úsporný náhled"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 × 120 DPI Úsporný náhled"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI Úsporný náhled"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 × 240 DPI Náhled"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 × 180 DPI Náhled"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI Jednosměrně"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr "360 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 × 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 × 360 DPI Jednosměrně"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr "720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Jednosměrně"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI Vysoká kvalita"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI Vysoká kvalita jednosměrně"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Nejvyšší kvalita"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 × 720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 × 720 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 × 720 DPI Jednosměrně"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 × 720 DPI Nejvyšší kvalita"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 × 720 DPI Jednosměrně"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 × 1440 DPI Nejvyšší kvalita"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI Plné překrytí"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI Plné překrytí jednosměrně"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 jednosměrně"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 Jednosměrně"
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr "720 × 360 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 × 360 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 × 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 × 360 DPI FOL jednosměrně"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 × 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 × 360 DPI FOL2 jednosměrně"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 × 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 × 360 DPI MW2 jednosměrně"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI plné překrytí"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI Plné překrytí jednosměrně"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI Čtyři průchody"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI Čtyři průchody jednosměrně"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 × 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 × 720 DPI FOL Jednosměrně"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 × 720 DPI Čtyři průchody"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 × 720 DPI Čtyři průchody jednosměrně"
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 × 720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 × 720 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 × 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 × 720 DPI FOL Jednosměrně"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 × 720 DPI Čtyři průchody"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 × 720 DPI Čtyři průchody jednosměrně"
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 × 1440 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 × 1440 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 × 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 × 1440 DPI FOL jednosměrně"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 × 1440 DPI Čtyři průchody"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 × 1440 DPI Čtyři průchody jednosměrně"
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 × 1440 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 × 1440 DPI Interleave jednosměrně"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 × 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 × 1440 DPI FOL jednosměrně"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 × 1440 DPI Čtyři průchody"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 × 1440 DPI Čtyři průchody jednosměrně"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standardní"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Podávací válec"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr "Podávací válec (odříznout každou stranu)"
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr "Podávací válec (neodřezávat)"
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr "Přihrádka řezaných listů 1"
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr "Přihrádka řezaných listů 2"
+
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr "Automatický výběr řezaných listů"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "RuÄní výbÄ›r"
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI × 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI vysoká kvalita"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI Jednosměrně"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI vysoká kvalita"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI nejvyšší kvalita"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI Jednosměrně"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI × 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI × 1200 DPI vysoká kvalita"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI × 1200 DPI nejvyšší kvalita"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "testovací tisk"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Normální"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr ""
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Prémiový"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Lesklý foto"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Fólie"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Rychleschnoucí foto"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Rychleschnoucí fólie"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "RuÄní"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "PodavaÄ 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "PodavaÄ 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "PodavaÄ 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "PodavaÄ 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "PÅ™enosný podavaÄ papíru"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "PodavaÄ papíru na stole"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "PodavaÄ"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Nepovinný zdroj"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Automaticky vybrat"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150×150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300×300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600×300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600×600 DPI Äernobíle"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600×600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200×600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400×600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Barevná a Äerná cartridge"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Barevná a foto cartridge"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3×5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4×6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Epson fotopapír 4×6"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5×7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5×8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6×8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8×10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12×18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13×19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr "Engineering C 17×22"
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8×12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11×14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16×20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16×24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20×24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20×30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22×30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24×30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24×36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30×40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr "Super A0"
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+msgid "Super B0 JIS"
+msgstr "Super B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr "ArchA příÄnÄ›"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr "ArchB příÄnÄ›"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr "ArchC příÄnÄ›"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr "ArchD příÄnÄ›"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr "ArchE příÄnÄ›"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "Americký foolscap"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "Evropský foolscap"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Large Crown Quarto"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Large Crown Octavo"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Malá brožura"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Malá brožura Penguin"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Velká brožura Penguin"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr "10cm × 15cm"
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Karta Hagaki"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Karta Oufuku"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Japonská dlouhá obálka #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Japonská dlouhá obálka #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Japonská obálka Kaku #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "Pozvánka A2"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Obálka Monarch"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Vlastní"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "Rolovaný papír 89 mm"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "Rolovaný papír 4 palce"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "Rolovaný papír 5 palců"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "Rolovaný papír 210 mm"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "Rolovaný papír 13 palců"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "Rolovaný papír 22 palce"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "Rolovaný papír 24 palce"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "Rolovaný papír 36 palců"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "Rolovaný papír 44 palce"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s není platný parametr typu %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s mimo rozsah (hodnota %f, min %f, max %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s mimo rozsah (hodnota %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Tiskárna nepodporuje barevný výstup\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Velikost obrázku není platná\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Horní okraj nesmí být méně než nula\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Levý okraj nesmí být méně než nula\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s není platný algoritmus rozkladu barev\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Czech"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "UTF-8"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Typ média"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Zdroj média"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Rozlišení"
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-print"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Typ obrázku"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Čárová grafika"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Jednolité barvy"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Fotografie"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Algoritmus rozkladu barev"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Typ inkoustu"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Verze escputil "
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil je dodáván ABSOLUTNÄš BEZ ZÃRUKY; pro detaily napiÅ¡te 'escputil -l'\n"
+"Toto je svobodný software, a můžete jej dále šířit za urÄitých podmínek;\n"
+"pro detaily napište 'escputil -l'.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Tento program je free software; můžete jej dále šířit a/nebo modifikovat\n"
+"za podmínek GNU General Public License publikované Free Software\n"
+"Foundation; a to buÄ verze 2 licence, nebo (podle vaÅ¡eho uvážení)\n"
+"libovolné pozdější verze.\n"
+"\n"
+"Tento program je rozÅ¡iÅ™ován v nadÄ›ji, že bude, užiteÄný, ale BEZ JAKÉKOLI\n"
+"ZÃRUKY; ani bez pÅ™edpokládané záruky PRODEJNOSTI nebo VHODNOSTI PRO NÄšJAKÃ\n"
+"KONKRÉTNà ÚČEL. Pro další podrobnosti si pÅ™eÄtÄ›te GNU General Public\n"
+"License.\n"
+"\n"
+"Kopii GNU General Public License jste měli dostat s tímto programem;\n"
+"pokud se tak nestalo, napište Free Software Foundation, Inc., 59 Temple\n"
+"Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"Použití: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P tiskárna | -r zařízení] [-u] [-q] [-m model]\n"
+"Provádět údržbu tiskáren EPSON Stylus (R).\n"
+"Příklady: escputil --clean-head --printer stpex-na-třetím-poschodí\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Příkazy:\n"
+" -c|--clean-head VyÄistit tiskovou hlavu.\n"
+" -n|--nozzle-check Vytisknout vzorek testu trysek.\n"
+" Špinavé nebo ucpané trysky se projeví jako mezery\n"
+" ve vzorku. Pokud uvidíte mezery, mÄ›li byste vyÄistit\n"
+" tiskovou hlavu.\n"
+" -a|--align-head Zarovnat tiskovou hlavu. POZOR: Zneužití tohoto\n"
+" nástroje může vést ke špatné kvalitě tisku a/nebo\n"
+" poškození tiskárny.\n"
+" -o|--align-color Zarovnat barevnou tiskovou halvu (jen Stylus Color "
+"480\n"
+" a 580). POZOR: Zneužití tohoto nástroje může vést\n"
+" ke špatné kvalitě tisku a/nebo poškození tiskárny.\n"
+" -s|--status Získat stav tiskárny.\n"
+" -i|--ink-level Získat od tiskárny hladinu inkoustu. Toto vyžaduje\n"
+" přímý přístup k zařízení tiskárny pro Ätení i zápis.\n"
+" -d|--identify Zeptat se tiskárny na informace o znaÄte a modelu.\n"
+" Toto vyžaduje přímý přístup k zařízení tiskárny pro\n"
+" Ätení i zápis.\n"
+" -l|--license Zobrazit podmínky licence/záruky tohoto programu.\n"
+" -M|--list-models Vypsat dostupné modely tiskáren.\n"
+" -h|--help Vypsat tuto zprávu nápovědy.\n"
+" PÅ™epínaÄe:\n"
+" -P|--printer-name UrÄuje název tiskové fronty, na které pracovat.\n"
+" Implicitní je implicitní tiskárna systému.\n"
+" -r|--raw-device UrÄení zařízení, na které zapisovat přímo místo\n"
+" prostřednictvím tiskové fronty.\n"
+" -u|--new Tiskárna je nová tiskárna (Stylus Color 740 nebo\n"
+" novější).\n"
+" -q|--quiet PotlaÄit hlaviÄku.\n"
+" -m|--model UrÄení pÅ™esného modelu pro zarovnání hlav.\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"Použití: escputil [PŘEPÃNAÄŒE] [PŘÃKAZ]\n"
+"Použití: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P tiskárna | -r zařízení] [-u] [-q] [-m model]\n"
+"Provádět údržbu tiskáren EPSON Stylus (R).\n"
+"Příklady: escputil -c -P stpex-na-třetím-poschodí\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Příkazy:\n"
+" -c VyÄistit tiskovou hlavu.\n"
+" -n Vytisknout vzorek testu trysek.\n"
+" Špinavé nebo ucpané trysky se projeví jako mezery\n"
+" ve vzorku. Pokud uvidíte mezery, mÄ›li byste vyÄistit\n"
+" tiskovou hlavu.\n"
+" -a Zarovnat tiskovou hlavu. POZOR: Zneužití tohoto\n"
+" nástroje může vést ke špatné kvalitě tisku a/nebo\n"
+" poškození tiskárny.\n"
+" -o Zarovnat barevnou tiskovou halvu (jen Stylus Color 480\n"
+" a 580). POZOR: Zneužití tohoto nástroje může vést\n"
+" ke špatné kvalitě tisku a/nebo poškození tiskárny.\n"
+" -s Získat stav tiskárny.\n"
+" -i Získat od tiskárny hladinu inkoustu. Toto vyžaduje\n"
+" přímý přístup k zařízení tiskárny pro Ätení i zápis.\n"
+" -d Zeptat se tiskárny na informace o znaÄte a modelu.\n"
+" Toto vyžaduje přímý přístup k zařízení tiskárny pro\n"
+" Ätení i zápis.\n"
+" -l Zobrazit podmínky licence/záruky tohoto programu.\n"
+" -M Vypsat dostupné modely tiskáren.\n"
+" -h Vypsat tuto zprávu nápovědy.\n"
+" PÅ™epínaÄe:\n"
+" -P UrÄuje název tiskové fronty, na které pracovat.\n"
+" Implicitní je implicitní tiskárna systému.\n"
+" -r UrÄení zařízení, na které zapisovat přímo místo\n"
+" prostřednictvím tiskové fronty.\n"
+" -u Tiskárna je nová tiskárna (Stylus Color 740 nebo novější).\n"
+" -q PotlaÄit hlaviÄku.\n"
+" -m UrÄení pÅ™esného modelu pro zarovnání hlav.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr "Stylus C43sx"
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr "Stylus C43ux"
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr "Stylus C44sx"
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr "Stylus C44ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr "Stylus C63"
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr "Stylus C64"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr "Stylus C83"
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr "Stylus C84"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 935"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr "Stylus CX-3100"
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr "Stylus CX-3200"
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr "Stylus CX-5100"
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr "Stylus CX-5200"
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr "Stylus CX-6300"
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr "Stylus CX-6400"
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr "Stylus CX-8300"
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr "Stylus CX-8400"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Můžete zadat jen jednu tiskárnu nebo přímé zařízení."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Můžete zadat jen jeden model tiskárny."
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Neznámý pÅ™epínaÄ %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Nemohu otevřít zařízení %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Nemohu tisknout na tiskárnu %s pomocí %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Nemohu odeslat příkaz tiskárně\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr "PÅ™i Ätení z tiskárny vyprÅ¡el Äas\n"
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Nemohu Äíst z %s: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Modrozelená"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Fialová"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Žlutá"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Světle modrozelená"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Světle fialová"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr "Černá/tmavá žlutá"
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Získání hladiny inkoustu vyžaduje použití přímého zařízení.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Nemohu otevřít %s pro Ätení i zápis: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Nemohu zapisovat do %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Nemohu zpracovat výstup z tiskárny\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Barva inkoustu"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Zbývá procent"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Identifikace tiskárny vyžaduje použití přímého zařízení.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Stav tiskárny vyžaduje použití přímého zařízení.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Čistím hlavy...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr "SpouÅ¡tím test trysek, pÅ™esvÄ›dÄte se prosím, že v tiskárnÄ› je papír.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"PÅ™ed pokraÄováním si prosím velice pozornÄ› pÅ™eÄtÄ›te si tyto instrukce.\n"
+"\n"
+"Tento nástroj vám umožňuje zarovnat tiskovou hlavu vaší inkoustové\n"
+"tiskárny Epson Stylus. Zneužití tohoto nástroje může způsobit zhoršení\n"
+"kvality tisku a možná poškodit vaši tiskárnu. Správnost tohoto nástroje\n"
+"nebyla zkontrolována v Seiko Epson a tento nástroj je nabízen úplně bez\n"
+"záruky. Celé riziko používání tohoto nástroje je na vás.\n"
+"\n"
+"Tento nástroj vytiskne %d testovacích vzorků. Všechny vzorky vypadají "
+"velice\n"
+"podobnÄ›. Vzorky sestávají ze sérií dvojic vertikálních Äar, které se\n"
+"pÅ™ekrývají. Pod každou dvojicí Äar je Äíslo mezi %d a %d.\n"
+"\n"
+"Když budete zkoumat dvojice Äar, mÄ›li byste najít dvojici, která je nejlépe\n"
+"zarovnaná, to je nejlépe tvoří jedinou vertikální Äáru. Zkoumejte\n"
+"dvojice velice peÄlivÄ›, abyste nalezli nejlepší odpovÄ›Ä. Pro kritické\n"
+"zkoumání se doporuÄuje použití lupy nebo zvÄ›tÅ¡ovacího skla. Také\n"
+"se doporuÄuje použít pro test kvalitní papír, aby byly Äáry zÅ™etelné\n"
+"a neroztékaly se po papíru. Po vybrání Äísla odpovídajícího nejlepšímu\n"
+"páru vlože papír zpÄ›t do podavaÄe, než Äíslo zadáte.\n"
+"\n"
+"Všechny vzorky jsou podobné, ale pozdější vzorky používají menší body\n"
+"pro kritiÄtÄ›jší zarovnání. Pro správné zarovnání vaší tiskárny musíte\n"
+"projít všemi průchody. Po zpracování všech průchodů zarovnání budou\n"
+"vzorky zarovnání vytištěny ještě jednou. Měli byste zjistit, že\n"
+"nejprostřednější dvojice (#%d z %d) je nejlepší ze všech vzorků.\n"
+"\n"
+"Až budou vzorky vytištěny ještě jednou, bude vám nabídnuto uložit\n"
+"výsledky v tiskárnÄ› (s), opakování procesu (r) nebo ukonÄení bez\n"
+"uložení (q). UkonÄení neobnoví pÅ™edchozí nastavení, ale vypnutí\n"
+"a opÄ›tovné zapnutí tiskárny ano. Pokud skonÄíte, musíte zopakovat\n"
+"celý proces, pokud byste chtěli později výsledky uložit. Je důležité,\n"
+"abyste v průběhu této procedury nevypínali svou tiskárnu.\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"PÅ™ed pokraÄováním si prosím velice pozornÄ› pÅ™eÄtÄ›te si tyto instrukce.\n"
+"\n"
+"Tento nástroj vám umožňuje zarovnat tiskovou hlavu vaší inkoustové\n"
+"tiskárny Epson Stylus. Zneužití tohoto nástroje může způsobit zhoršení\n"
+"kvality tisku a možná poškodit vaši tiskárnu. Správnost tohoto nástroje\n"
+"nebyla zkontrolována v Seiko Epson a tento nástroj je nabízen úplně bez\n"
+"záruky. Celé riziko používání tohoto nástroje je na vás.\n"
+"\n"
+"Tento nástroj vytiskne testovací vzorek, který sestávají ze sérií dvojic\n"
+"vertikálních Äar, které se pÅ™ekrývají. Pod každou dvojicí Äar je Äíslo\n"
+"mezi %d a %d.\n"
+"\n"
+"Když budete zkoumat dvojice Äar, mÄ›li byste najít dvojici, která je nejlépe\n"
+"zarovnaná, to je nejlépe tvoří jedinou vertikální Äáru. Zkoumejte\n"
+"dvojice velice peÄlivÄ›, abyste nalezli nejlepší odpovÄ›Ä. Pro kritické\n"
+"zkoumání se doporuÄuje použití lupy nebo zvÄ›tÅ¡ovacího skla. Také\n"
+"se doporuÄuje použít pro test kvalitní papír, aby byly Äáry zÅ™etelné\n"
+"a neroztékaly se po papíru. Po vybrání Äísla odpovídajícího nejlepšímu\n"
+"páru vlože papír zpÄ›t do podavaÄe, než Äíslo zadáte.\n"
+"\n"
+"Po zpracování vzorku zarovnání budou vzorky vytištěny ještě jednou.\n"
+"Měli byste zjistit, že nejprostřednější dvojice (#%d z %d) je nejlepší.\n"
+"Pak vám bude nabídnuto bude uložení výsledků v tiskárně (s), opakování\n"
+"procesu (r) nebo ukonÄení bez uložení (q). UkonÄení neobnoví pÅ™edchozí \n"
+"nastavení, ale vypnutí a opÄ›tovné zapnutí tiskárny ano. Pokud skonÄíte,\n"
+"musíte zopakovat celý proces, pokud byste chtěli později výsledky uložit.\n"
+"Je důležité, abyste v průběhu této procedury nevypínali svou tiskárnu.\n"
+"\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Nemohu odeslat příkaz tiskárnÄ›, konÄím.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"Zarovnání tiskárny musí být provedeno s přímým zařízením\n"
+"nebo musí být použit pÅ™epínaÄ -m pro urÄení tiskárny.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Pokouším se detekovat model tiskárny..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"Nemohu otevřít %s pro Ätení i zápis: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Nemohu zapisovat do %s: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Nemohu detekovat typ tiskárny.\n"
+"Použijte prosím -m pro urÄení modelu své tiskárny.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "Model tiskárny %s není znám.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Zkontrolujte prosím koneÄný výstup velice pozornÄ›, abyste se ujistili,\n"
+"že vaše tiskárna je správně zarovnána. Nyní můžete:\n"
+" (s) uložit výsledky do tiskárny,\n"
+" (q) skonÄit bez ukládání výsledků, nebo\n"
+" (r) zopakovat celý proces od zaÄátku.\n"
+"Pak budete požádáni o potvrzení svého výběru.\n"
+"Co chcete udělat (s, q, r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"PotvrÄte prosím, že chcete skonÄit bez ukládání, opÄ›tovným\n"
+"napsáním 'q':\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"Dobře, vaše tiskárna je zarovnaná, ale zarovnání nebylo uloženo.\n"
+"Pokud chcete zarovnání uložit, musíte tento proces zopakovat.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"PotvrÄte prosím, že chcete zopakovat proces zarovnávání, opÄ›tovným\n"
+"napsáním 'r':\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Opakuji proces zarovnávání.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Toto trvale změní konfiguraci vaší tiskárny.\n"
+"VAROVÃNÃ: tato procedura nebyla schválena Seiko Epson a může\n"
+"poÅ¡kodit vaÅ¡i tiskárnu. PokraÄovat?\n"
+"PotvrÄte prosím, že chcete uložit nastavení do své tiskárny, opÄ›tovným\n"
+"napsáním 's':\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Připravuji se uložit nastavení..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "selhalo!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"Vaše nastavení nebylo uloženo úspěšně. Musíte zopakovat proceduru\n"
+"zarovnávání.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "uspělo!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Vaše nastavení zarovnání bylo uloženo do tiskárny.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Nerozpoznaný příkaz.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "Poslední příkaz nebyl potvrzen.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Tato procedura předpokládá, že vaše tiskárna je Epson %s.\n"
+"Pokud to není model vaší tiskárny, stiskněte nyní prosím control-C\n"
+"a zvolte váš skuteÄný model tiskárny.\n"
+"\n"
+"Pro spuštění procedury zarovnání hlav prosím vložte do své tiskárny\n"
+"list papíru.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "PokraÄujte stisknutím enter > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Zkontrolujte prosím výtisk a zvolte nejlepší dvojici Äar v každém vzorku.\n"
+"NapiÅ¡te Äíslo dvojice, '?' pro nápovÄ›du nebo 'r' pro zopakování procedury.\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Průchod #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Vložte prosím nový list papíru.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Číslo mimo rozsah!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Nemohu pochopit, co jste napsali!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "Nejlepší dvojice Äar by mÄ›la mít Äíslo mezi 1 a %d.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Pokouším se nastavit zarovnání..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "uspělo.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Zkontrolujte prosím, že zarovnání je správné. Až bude vzorek zarovnání\n"
+"znovu vytiÅ¡tÄ›n, pÅ™esvÄ›dÄte se prosím, že nejlepší vzorek v každém řádku je\n"
+"vzorek %d. Pokud není, měli byste pro získání nejlepší kvality tisku proces\n"
+"zopakovat.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"PÅ™ed pokraÄováním si prosím velice pozornÄ› pÅ™eÄtÄ›te si tyto instrukce.\n"
+"\n"
+"Tento nástroj vám umožňuje zarovnat barevnou tiskovou hlavu vaší inkoustové\n"
+"tiskárny Epson Stylus. Zneužití tohoto nástroje může způsobit zhoršení\n"
+"kvality tisku a možná poškodit vaši tiskárnu. Správnost tohoto nástroje\n"
+"nebyla zkontrolována v Seiko Epson a tento nástroj je nabízen úplně bez\n"
+"záruky. Celé riziko používání tohoto nástroje je na vás.\n"
+"\n"
+"Tento nástroj vytiskne %d testovacích vzorků tisknoucích před sebe na\n"
+"jeden kus papíru. To znamená, že vytiskne jeden vzorek a vysune stránku. "
+"Pak\n"
+"musíte tutéž stánku znovu vložit, a vytiskne další vzorek. Každý vzorek\n"
+"sestává ze série možností oÄíslovaných mezi %d a %d.\n"
+"\n"
+"Když budete zkoumat vzorky, měli byste najít oblast, která má nejhladší\n"
+"texturu (nejménÄ› ``zrní''). MÄ›li byste oblasti zkoumat velice peÄlivÄ›,\n"
+"abyste nalezli nejlepší odpovÄ›Ä. DoporuÄujeme pro tento test použít papír\n"
+"pro inkoustové tiskárny ve foto kvalitě nebo podobný kvalitní papír.\n"
+"Pokud nenajdete hladký vzorek, měli byste test zopakovat.\n"
+"\n"
+"Až prozkomáte možnosti a vyberete oblast, bude vám nabídnuto uložení\n"
+"výsledky v tiskárnÄ› (s), opakování procesu (r) nebo ukonÄení bez uložení\n"
+"(q). UkonÄení neobnoví pÅ™edchozí nastavení, ale vypnutí a opÄ›tovné zapnutí\n"
+"tiskárny ano. Pokud skonÄíte, musíte zopakovat celý proces, pokud byste\n"
+"chtěli později výsledky uložit. Je důležité, abyste v průběhu této "
+"procedury\n"
+"nevypínali svou tiskárnu.\n"
+"\n"
+"VAROVÃNÃ: TATO FUNKCE JEÅ TÄš NENà OTESTOVANÃ! Možná nebude fungovat\n"
+"a může poškodit vaši tiskárnu!\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "Tiskárna %s nevyžaduje zarovnání barevné hlavy.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr "Až se list dotiskne, vložte jej prosím znovu do tiskárny.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Prozkoumejte list zarovnání a urÄete, který vzorek je nejhladší. Takový\n"
+"vzorek bude mít nejméně ``zrní''.\n"
+"Pokud nemůžete najít hladký vzorek, zvolte prosím Äíslo nejlepšího\n"
+"vzorku a zopakujte proceduru.\n"
+"NapiÅ¡te Äíslo vzorku nebo '?' pro nápovÄ›du.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "Nejlepší vzorek by mÄ›l mít Äíslo mezi 1 a %d.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Chyba ve vstupu\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "Úprava barvy tisku"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Nastavit implicitní"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Zavřít"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Náhled obrázku"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Jas:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"Jas tisku.\n"
+"0 je úplnÄ› Äerná, 2 je úplnÄ› bílá"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Nastavit kontrast tisku"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Modrozelená:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "Upravit vyrovnání modrozelené tisku"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Fialová:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "Upravit vyrovnání fialové tisku"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Žlutá"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "Upravit vyrovnání žluté tisku"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Sytost:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"Upravit sytost (vyrovnání barev) tisku\n"
+"Použijte nulovou sytost pro vytvoření výstupu ve stupních šedi pomocí "
+"barevných a Äerných inkoustů"
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Hustota:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Upravit hustotu (objem inkoustu) tisku. Snižte hustotu, pokud se inkoust "
+"rozpíjí po papíře nebo se rozmazává; zvyÅ¡te hustotu, pokud Äerné oblasti "
+"nejsou jednolité."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gama:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"Upravit gama tisku. Větší hodnoty způsobí obecně jasnější tisk a menší "
+"hodnoty způsobí obecně tmavší tisk. Černá a bílá zůstanou stejné, narozdíl "
+"od úpravy jasu."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Algoritmus rozkladu barev:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Tisk v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "O aplikaci"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Vytisknout a\n"
+"uložit nastavení"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Uložit\n"
+"nastavení"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Vytisknout"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Zrušit"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Náhled"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"Umístěte obrázek na obrazovce.\n"
+"KliknÄ›te a táhnÄ›te primárním tlaÄítkem pro umístÄ›ní obrázku.\n"
+"KliknÄ›te a táhnÄ›te druhým tlaÄítkem pro posun obrázku s vÄ›tší pÅ™esností; "
+"každá jednotka pohybu posune obrázek o jeden bod (1/72\")\n"
+"KliknÄ›te a táhnÄ›te tÅ™etím (prostÅ™edním) tlaÄítkem pro posun obrázku v "
+"jednotkách velikosti obrázku.\n"
+"Stisknutí klávesy shift při tažení omezuje obrázek na jen horizontální nebo "
+"vertikální pohyb.\n"
+"Pokud pÅ™i tažení myší kliknÄ›te jiným tlaÄítkem, obrázek se vrátí na svou "
+"původní pozici."
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Pozice"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Automaticky"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Na výšku"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Na šířku"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Vzhůru nohama"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Na stranu"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Vyberte orientaci: na výšku, na šířku, vzhůru nohama nebo na stranu (na "
+"šířku vzhůru nohama)"
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Orientace:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Levý:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Vzdálenost od levého okraje papíru k obrázku"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Horní:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Vzdálenost od horního okraje papíru k obrázku"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Pravý:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "Vzdálenost od levého okraje papíru k pravému okraji obrázku"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Pravý okraj:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Vzdálenost od pravého okraje papíru k obrázku"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Spodní:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "Vzdálenost od horního okraje papíru k spodnímu okraji obrázku"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Spodní okraj:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Vzdálenost od spodního okraje papíru k obrázku"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Vycentrovat:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Vertikálně"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Vycentrovat obrázek na papíře vertikálně"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Obojí"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Vycentrovat obrázek na papíře"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Horizontálně"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Vycentrovat obrázek na papíře horizontálně"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Nastavit tiskárnu"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "Budiž"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Model tiskárny:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Vyberte model své tiskárny"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "Soubor PPD:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Zadejte správný název souboru PPD pro svou tiskárnu"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Procházet"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Zvolte správný název souboru PPD pro svou tiskárnu"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Příkaz:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Zadejte správný příkaz pro tisk na svou tiskárnu. Poznámka: Neodstraňujte "
+"prosím z řetězce příkazu `-l' nebo `-oraw', jinak tisk pravděpodobně selže!"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "Tisknout do souboru?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "Soubor PPD?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Definovat novou tiskárnu"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Název tiskárny:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Zadejte název, který chcete dát této logické tiskárně"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "O Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Verze Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz\n"
+"a zbytek vývojového týmu Gimp-Print.\n"
+"\n"
+"Navštivte prosím naši WWW stránku na http://gimp-print.sourceforge.net.\n"
+"\n"
+"Tento program je free software; můžete jej dále šířit a/nebo modifikovat\n"
+"za podmínek GNU General Public License publikované Free Software\n"
+"Foundation; a to buÄ verze 2 licence, nebo (podle vaÅ¡eho uvážení)\n"
+"libovolné pozdější verze.\n"
+"\n"
+"Tento program je rozÅ¡iÅ™ován v nadÄ›ji, že bude, užiteÄný, ale BEZ JAKÉKOLI\n"
+"ZÃRUKY; ani bez pÅ™edpokládané záruky PRODEJNOSTI nebo VHODNOSTI PRO NÄšJAKÃ\n"
+"KONKRÉTNà ÚČEL. Pro další podrobnosti si pÅ™eÄtÄ›te GNU General Public\n"
+"License.\n"
+"\n"
+"Kopii GNU General Public License jste měli dostat s tímto programem;\n"
+"pokud se tak nestalo, napište Free Software Foundation, Inc., 59 Temple\n"
+"Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Nastavení tiskárny"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+"Vyberte název tiskárny (ne typ nebo model tiskárny), na kterou chcete "
+"tisknout"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Nastavit tiskárnu..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Zvolte model tiskárny, soubor PPD a příkaz, který se používá pro tisk na "
+"tuto tiskárnu"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Nová tiskárna..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Definovat novou logickou tiskárnu. Toto může být použito pro pojmenování "
+"sady nastavení, které si chcete zapamatovat pro budoucí použití."
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "Velikost papíru, na který chcete tisknout"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Velikost média:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Rozměry:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Šířka:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Šířka papíru, na který chcete tisknout"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Výška:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Výška papíru, na který chcete tisknout"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Typ média, na který tisknete"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Typ média:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Zdroj (vstupní otvor) média, na které tisknete"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Zdroj média:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Typ inkoustu v tiskárně"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Typ inkoustu:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Rozlišení a kvalita tisku"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Rozlišení:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Velikost"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Měřítko:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Nastavte měřítko (velikost) obrázku"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Vyberte, jestli je měřítko měřeno jako procenta dostupné velikosti stránky "
+"nebo poÄet výstupních bodů na palec"
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Procenta"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "Upravit tisk na velikost stránky"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "Upravit tisk na poÄet bodů na palec"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Nastavit šířku tisku"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Nastavit výšku tisku"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Jednotky:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "Vyberte základní jednotku měření pro tisk"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Palec"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Nastavit základní jednotku měření na palce"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Nastavit základní jednotku měření na centimetry"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Použít původní\n"
+"velikost obrázku"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "Nastavit velikost tisku na velikost obrázku"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Nastavení obrázku / výstupu"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Typ obrázku:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "Optimalizovat výstup pro typ tištěného obrázku"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "Nejrychlejší a nejjasnÄ›jší barvy pro text a Äárovou grafiku"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr "Nejlepší pro obrázky dominované regiony jednolitých barev"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Nejpomalejší, ale nejpřesnější a nejhladší barvy pro obrázky se spojitými "
+"tóny a fotografie"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Typ výstupu:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Zvolte požadovaný typ výstupu"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Barva"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Barevný výstup"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Odstíny šedi"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "Tisknout v odstínech Å¡edi pomocí Äerného inkoustu"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Černobíle"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Tisknout Äernobíle (žádná barva a žádné odstíny Å¡edi)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Upravit výstup..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr "Upravit vyrovnání barev, jask, kontrast, sytost a algoritmus rozkladu"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Tisknu..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Obrázek>/Soubor/Tisk..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Soubor"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Špatný prostor barev: bps %d kanálů %d prostor %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Žádná vyrovnávací paměť řádků\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parametr %s mimo rozsah (hodnota %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Nemohu zpracovat parametr %s=%s (oÄekávám Äíslo)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parametr %s mimo rozsah (hodnota %d, min %d, max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Tiskárna musí být urÄena pomocí -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Tiskárna %s není známý model\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Neznámý pÅ™epínaÄ %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f z %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header selhalo %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init selhalo %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Nemohu otevřít deskriptor souboru: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Nemohu otevřít %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Neznámá tiskárna %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Å patné parametry; nemohu pokraÄovat!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Získání dalšího řádku selhalo na %.0f\n"
diff --git a/po/da.gmo b/po/da.gmo
new file mode 100644
index 0000000..b391a3b
--- /dev/null
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 12f3276..e1c8164 100644
--- a/po/da.po
+++ b/po/da.po
@@ -2,22 +2,23 @@
# Copyright (C) 2001 Free Software Foundation, Inc.
# Keld Simonsen <keld@dkuug.dk>, 2001.
# Kjartan Maraas <kmaraas@gnome.org>, 2001.
-#
+#
msgid ""
msgstr ""
"Project-Id-Version: gimp-print 0.3\n"
-"POT-Creation-Date: 2001-11-24 10:41-0500\n"
-"PO-Revision-Date: 2001-10-19 20:53+0200\n"
-"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
-"Language-Team: Danish <dansk@klid.dk>\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2003-01-06 21:22+0100\n"
+"Last-Translator: Mogens Jæger <mogensjaeger@get2net.dk>\n"
+"Language-Team: Dansk <da@li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.6\n"
#: lib/getopt.c:681
#, c-format
msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: flaget `%s' er flertydig\n"
+msgstr "%s: flaget `%s' er flertydigt\n"
#: lib/getopt.c:706
#, c-format
@@ -27,7 +28,7 @@ msgstr "%s: flaget `--%s' tillader ikke argumenter\n"
#: lib/getopt.c:711
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: flaget `%c%s' tillader ikke argumenter\n"
+msgstr "%s: flaget `%c%s' tillader ikke et argument\n"
#: lib/getopt.c:729 lib/getopt.c:902
#, c-format
@@ -38,13 +39,13 @@ msgstr "%s: flaget `%s' kræver et argument\n"
#: lib/getopt.c:758
#, c-format
msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: ukendt flag `--%s'\n"
+msgstr "%s: ikke genkendt flag `--%s'\n"
#. +option or -option
#: lib/getopt.c:762
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: ukendt flag `%c%s'\n"
+msgstr "%s: ikke genkendt flag `%c%s'\n"
#. 1003.2 specifies the format of this message.
#: lib/getopt.c:788
@@ -73,798 +74,882 @@ msgstr "%s: flaget `-W %s' er flertydigt\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: flaget `-W %s' tillader ikke argumenter\n"
-#: src/main/print-canon.c:1310 src/main/print-escp2.c:1652
-#: src/main/print-escp2.c:1711 src/main/print-lexmark.c:882
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
msgid "Plain Paper"
-msgstr ""
+msgstr "Almindeligt papir"
-#: src/main/print-canon.c:1311 src/main/print-escp2.c:1664
-#: src/main/print-escp2.c:1723 src/main/print-lexmark.c:888
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
msgid "Transparencies"
-msgstr ""
+msgstr "Transparenter"
-#: src/main/print-canon.c:1312
+#: src/main/print-canon.c:1174
msgid "Back Print Film"
-msgstr ""
+msgstr "Bagside print film"
-#: src/main/print-canon.c:1313
+#: src/main/print-canon.c:1175
msgid "Fabric Sheets"
-msgstr ""
+msgstr "Stof ark"
-#: src/main/print-canon.c:1314
+#: src/main/print-canon.c:1176
msgid "Envelope"
-msgstr ""
+msgstr "Kuvert"
-#: src/main/print-canon.c:1315
+#: src/main/print-canon.c:1177
msgid "High Resolution Paper"
-msgstr ""
+msgstr "Høj opløsnings papir"
-#: src/main/print-canon.c:1316
+#: src/main/print-canon.c:1178
msgid "T-Shirt Transfers"
-msgstr ""
+msgstr "T-shirts overføring"
-#: src/main/print-canon.c:1317
+#: src/main/print-canon.c:1179
msgid "High Gloss Film"
-msgstr ""
+msgstr "Højglans Film"
-#: src/main/print-canon.c:1318
+#: src/main/print-canon.c:1180
msgid "Glossy Photo Paper"
-msgstr ""
+msgstr "Blankt foto papir"
-#: src/main/print-canon.c:1319
+#: src/main/print-canon.c:1181
msgid "Glossy Photo Cards"
-msgstr ""
+msgstr "Blanke foto kort"
-#: src/main/print-canon.c:1320
+#: src/main/print-canon.c:1182
msgid "Photo Paper Pro"
-msgstr ""
+msgstr "Foto papir pro"
-#: src/main/print-canon.c:1321 src/main/print-escp2.c:1698
-#: src/main/print-escp2.c:1757 src/main/print-lexmark.c:918
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
msgid "Other"
msgstr "Andet"
-#: src/main/print-canon.c:1594 src/main/print-lexmark.c:1133
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
msgid "Auto Sheet Feeder"
-msgstr ""
+msgstr "Auto ark føder"
-#: src/main/print-canon.c:1595 src/main/print-lexmark.c:1134
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
msgid "Manual with Pause"
-msgstr ""
+msgstr "Manuel med pause"
-#: src/main/print-canon.c:1596 src/main/print-lexmark.c:1135
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
msgid "Manual without Pause"
-msgstr ""
+msgstr "Manuel uden pause"
-#: src/escputil/escputil.c:577 src/main/print-canon.c:1689
-#: src/main/print-lexmark.c:639
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
msgid "Black"
msgstr "Sort"
-#: src/main/print-canon.c:1694
+#: src/main/print-canon.c:1563
msgid "CMY Color"
-msgstr ""
+msgstr "CMY farver"
-#: src/main/print-canon.c:1699
+#: src/main/print-canon.c:1568
msgid "CMYK Color"
-msgstr ""
+msgstr "CMYK farver"
-#: src/main/print-canon.c:1704
+#: src/main/print-canon.c:1573
msgid "Photo CcMmY Color"
-msgstr ""
+msgstr "Foto CcMmY farver"
-#: src/main/print-canon.c:1709
+#: src/main/print-canon.c:1578
msgid "Photo CcMmYK Color"
-msgstr ""
+msgstr "Foto CcMmYK farver"
-#: src/main/print-dither.c:62
+#: src/main/print-dither.c:64
msgid "Adaptive Hybrid"
-msgstr ""
+msgstr "Adaptiv hybrid"
-#: src/main/print-dither.c:63
+#: src/main/print-dither.c:65
msgid "Ordered"
-msgstr ""
+msgstr "Ordnet"
-#: src/main/print-dither.c:64
+#: src/main/print-dither.c:66
msgid "Fast"
-msgstr "Rask"
+msgstr "Hurtig"
-#: src/main/print-dither.c:65
+#: src/main/print-dither.c:67
msgid "Very Fast"
-msgstr ""
+msgstr "Meget hurtig"
-#: src/main/print-dither.c:66
+#: src/main/print-dither.c:68
msgid "Hybrid Floyd-Steinberg"
-msgstr ""
+msgstr "Hybrid Floyd-Steinberg"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
-#: src/main/print-escp2.c:1655 src/main/print-escp2.c:1714
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Tre-farvet sammensat"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Fire-farvet standard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Seks-farvet foto"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Fem-farvet foto sammensat"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Syv-farvet forbedret"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Seks-farvet forbedret sammensat"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Syv-farvet foto"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "To niveau gråtoner"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quadtone"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
msgid "Plain Paper Fast Load"
-msgstr ""
+msgstr "Almindeligt papir hurtig indføring"
#. 7.25 * 10.5in
-#: src/main/print-escp2.c:1658 src/main/print-escp2.c:1717
-#: src/main/print-util.c:532
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
msgid "Postcard"
-msgstr ""
+msgstr "Postkort"
-#: src/main/print-escp2.c:1661 src/main/print-escp2.c:1720
-#: src/main/print-lexmark.c:885
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
msgid "Glossy Film"
-msgstr ""
+msgstr "Blank film"
-#: src/main/print-escp2.c:1667 src/main/print-escp2.c:1726
-#: src/main/print-lexmark.c:891
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
msgid "Envelopes"
-msgstr ""
+msgstr "Kuverter"
-#: src/main/print-escp2.c:1670 src/main/print-escp2.c:1729
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
msgid "Back Light Film"
-msgstr ""
+msgstr "Baglys film"
-#: src/main/print-escp2.c:1673 src/main/print-escp2.c:1732
-#: src/main/print-lexmark.c:894
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
msgid "Matte Paper"
-msgstr ""
+msgstr "Mat papir"
-#: src/main/print-escp2.c:1676 src/main/print-escp2.c:1735
-#: src/main/print-lexmark.c:897
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
msgid "Inkjet Paper"
-msgstr ""
+msgstr "Inkjet papir"
-#: src/main/print-escp2.c:1679 src/main/print-escp2.c:1738
-#: src/main/print-lexmark.c:900
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
msgid "Photo Quality Inkjet Paper"
-msgstr ""
+msgstr "Foto kvalitets inkjet papir"
-#: src/main/print-escp2.c:1682 src/main/print-escp2.c:1741
-#: src/main/print-lexmark.c:903
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
msgid "Photo Paper"
-msgstr ""
+msgstr "Foto papir"
-#: src/main/print-escp2.c:1685 src/main/print-escp2.c:1744
-#: src/main/print-lexmark.c:906
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
msgid "Premium Glossy Photo Paper"
-msgstr ""
+msgstr "Premium blankt foto papir"
-#: src/main/print-escp2.c:1689 src/main/print-escp2.c:1748
-#: src/main/print-lexmark.c:909
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
msgid "Premium Luster Photo Paper"
-msgstr ""
+msgstr "Premium glittet foto papir"
-#: src/main/print-escp2.c:1692 src/main/print-escp2.c:1751
-#: src/main/print-lexmark.c:912
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
msgid "Photo Quality Glossy Paper"
-msgstr ""
+msgstr "Foto kvalitet blankt papir"
-#: src/main/print-escp2.c:1695 src/main/print-escp2.c:1754
-#: src/main/print-lexmark.c:915
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
msgid "Ilford Heavy Paper"
-msgstr ""
+msgstr "Ilford Heavy Papir"
-#: src/main/print-escp2.c:2825 src/main/print-escp2.c:2827
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife Papir"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
msgid "360 x 90 DPI Fast Economy Draft"
-msgstr ""
+msgstr "360 x 90 DPI hurtig sparsom kladde"
-#: src/main/print-escp2.c:2830 src/main/print-escp2.c:2832
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
msgid "360 x 120 DPI Economy Draft"
-msgstr ""
+msgstr "360 x 120 DPI sparsom kladde"
-#: src/main/print-escp2.c:2835 src/main/print-escp2.c:2837
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
msgid "180 DPI Economy Draft"
-msgstr ""
+msgstr "180 DPI sparsom kladde"
-#: src/main/print-escp2.c:2840 src/main/print-escp2.c:2842
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
msgid "360 x 240 DPI Draft"
-msgstr ""
+msgstr "360 x 240 DPI kladde"
-#: src/main/print-escp2.c:2845 src/main/print-escp2.c:2847
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
msgid "360 x 180 DPI Draft"
-msgstr ""
+msgstr "360 x 180 DPI kladde"
-#: src/main/print-escp2.c:2850 src/main/print-escp2.c:2858
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
msgid "360 DPI"
-msgstr ""
+msgstr "360 DPI"
-#: src/main/print-escp2.c:2852 src/main/print-escp2.c:2860
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
msgid "360 DPI Unidirectional"
-msgstr ""
+msgstr "360 DPI envejs"
-#: src/main/print-escp2.c:2854
-msgid "360 DPI Microweave"
-msgstr ""
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+#, fuzzy
+msgid "360 DPI Interleave"
+msgstr "360 DPI Microweave"
-#: src/main/print-escp2.c:2856
-msgid "360 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+#, fuzzy
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI Microweave envejs"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 DPI envejs"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+#, fuzzy
+msgid "720 DPI Interleave"
+msgstr "720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+#, fuzzy
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI Microweave envejs"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI envejs"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI høj kvalitet"
-#: src/main/print-escp2.c:2862
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI høj kvalitet envejs"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI højeste kvalitet"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+#, fuzzy
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 DPI Microweave envejs"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 DPI envejs"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI højeste kvalitet"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 DPI envejs"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI højeste kvalitet"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
msgid "360 DPI Full Overlap"
-msgstr ""
+msgstr "360 DPI Fuld overlapning"
-#: src/main/print-escp2.c:2864
+#: src/main/print-escp2-data.c:4100
msgid "360 DPI Full Overlap Unidirectional"
-msgstr ""
+msgstr "360 DPI Fuld overlapning envejs"
-#: src/main/print-escp2.c:2866
+#: src/main/print-escp2-data.c:4102
msgid "360 DPI FOL2"
-msgstr ""
+msgstr "360 DPI FOL2"
-#: src/main/print-escp2.c:2868
+#: src/main/print-escp2-data.c:4104
msgid "360 DPI FOL2 Unidirectional"
-msgstr ""
+msgstr "360 DPI FOL2 envejs"
-#: src/main/print-escp2.c:2870
+#: src/main/print-escp2-data.c:4106
msgid "360 DPI MW2"
-msgstr ""
+msgstr "360 DPI MW2"
-#: src/main/print-escp2.c:2872
+#: src/main/print-escp2-data.c:4108
msgid "360 DPI MW2 Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2875 src/main/print-escp2.c:2879
-msgid "720 x 360 DPI"
-msgstr ""
+msgstr "360 DPI MW2 envejs"
-#: src/main/print-escp2.c:2877 src/main/print-escp2.c:2881
-msgid "720 x 360 DPI Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2883
-msgid "720 x 360 DPI Microweave"
-msgstr ""
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI Microweave"
-#: src/main/print-escp2.c:2885
-msgid "720 x 360 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4117
+#, fuzzy
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 DPI Microweave envejs"
-#: src/main/print-escp2.c:2887
+#: src/main/print-escp2-data.c:4119
msgid "720 x 360 DPI FOL"
-msgstr ""
+msgstr "720 x 360 DPI FOL"
-#: src/main/print-escp2.c:2889
+#: src/main/print-escp2-data.c:4121
msgid "720 x 360 DPI FOL Unidirectional"
-msgstr ""
+msgstr "720 x 360 DPI FOL envejs"
-#: src/main/print-escp2.c:2891
+#: src/main/print-escp2-data.c:4123
msgid "720 x 360 DPI FOL2"
-msgstr ""
+msgstr "720 x 360 DPI FOL2"
-#: src/main/print-escp2.c:2893
+#: src/main/print-escp2-data.c:4125
msgid "720 x 360 DPI FOL2 Unidirectional"
-msgstr ""
+msgstr "720 x 360 DPI FOL2 envejs"
-#: src/main/print-escp2.c:2895
+#: src/main/print-escp2-data.c:4127
msgid "720 x 360 DPI MW2"
-msgstr ""
+msgstr "720 x 360 DPI MW2"
-#: src/main/print-escp2.c:2897
+#: src/main/print-escp2-data.c:4129
msgid "720 x 360 DPI MW2 Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2900 src/main/print-escp2.c:2916
-msgid "720 DPI"
-msgstr ""
-
-#: src/main/print-escp2.c:2902 src/main/print-escp2.c:2918
-msgid "720 DPI Unidirectional"
-msgstr ""
+msgstr "720 x 360 DPI MW2 envejs"
-#: src/main/print-escp2.c:2904
-msgid "720 DPI Microweave"
-msgstr ""
-
-#: src/main/print-escp2.c:2906
-msgid "720 DPI Microweave Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2908
+#: src/main/print-escp2-data.c:4136
msgid "720 DPI Full Overlap"
-msgstr ""
+msgstr "720 DPI Fuld overlapning"
-#: src/main/print-escp2.c:2910
+#: src/main/print-escp2-data.c:4138
msgid "720 DPI Full Overlap Unidirectional"
-msgstr ""
+msgstr "720 DPI Fuld overlapning envejs"
-#: src/main/print-escp2.c:2912
+#: src/main/print-escp2-data.c:4140
msgid "720 DPI Four Pass"
-msgstr ""
+msgstr "720 DPI Firedobbelt printning"
-#: src/main/print-escp2.c:2914
+#: src/main/print-escp2-data.c:4142
msgid "720 DPI Four Pass Unidirectional"
-msgstr ""
+msgstr "720 DPI Firedobbelt printning envejs"
-#: src/main/print-escp2.c:2920
-msgid "720 DPI High Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
-#: src/main/print-escp2.c:2922
-msgid "720 DPI High Quality Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL envejs"
-#: src/main/print-escp2.c:2924
-msgid "720 DPI Highest Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 DPI Firedobbelt printning"
-#: src/main/print-escp2.c:2927 src/main/print-escp2.c:2943
-msgid "1440 x 720 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 DPI Firedobbelt printning envejs"
-#: src/main/print-escp2.c:2929 src/main/print-escp2.c:2945
-msgid "1440 x 720 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI Microweave"
-#: src/main/print-escp2.c:2931
-msgid "1440 x 720 DPI Microweave"
-msgstr ""
+#: src/main/print-escp2-data.c:4160
+#, fuzzy
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 DPI Microweave envejs"
-#: src/main/print-escp2.c:2933
-msgid "1440 x 720 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
-#: src/main/print-escp2.c:2935
-msgid "1440 x 720 DPI FOL"
-msgstr ""
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 DPI FOL envejs"
-#: src/main/print-escp2.c:2937
-msgid "1440 x 720 DPI FOL Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI Firedobbelt printning"
-#: src/main/print-escp2.c:2939
-msgid "1440 x 720 DPI Four Pass"
-msgstr ""
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 DPI Firedobbelt printning envejs"
-#: src/main/print-escp2.c:2941
-msgid "1440 x 720 DPI Four Pass Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI Microweave"
-#: src/main/print-escp2.c:2947
-msgid "1440 x 720 DPI Highest Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4173
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 DPI Microweave envejs"
-#: src/main/print-escp2.c:2950
-msgid "2880 x 720 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
-#: src/main/print-escp2.c:2952
-msgid "2880 x 720 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI FOL envejs"
-#.
-#. * Nothing thus far supports 1440 DPI vertical resolution
-#.
-#: src/main/print-escp2.c:2958
-msgid "1440 x 1440 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI Firedobbelt printning"
-#: src/main/print-escp2.c:2960
-msgid "1440 x 1440 DPI Highest Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 DPI Firedobbelt printning envejs"
-#: src/main/print-escp2.c:2963
-msgid "2880 x 1440 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI Microweave"
-#.
-#. * These resolutions have no practical use; they're neither as good as
-#. * nor any faster than 720x720 DPI. They exist to permit testing
-#. * 2880x720 (4:1 aspect) on 1440x720 printers.
-#.
-#: src/main/print-escp2.c:2971
-msgid "1440 x 360 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4186
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 DPI Microweave envejs"
-#: src/main/print-escp2.c:2973
-msgid "1440 x 360 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
-#: src/main/print-escp2.c:2975
-msgid "1440 x 360 DPI High Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI FOL envejs"
-#: src/main/print-escp2.c:2977
-msgid "1440 x 360 DPI High Quality Uni"
-msgstr ""
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI Firedobbelt printning"
-#: src/main/print-escp2.c:2979
-msgid "1440 x 360 DPI Highest Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 DPI Firedobbelt printning envejs"
-#: src/main/print-escp2.c:2995
-msgid "Seven Color Enhanced"
-msgstr ""
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
-#: src/main/print-escp2.c:2996
-msgid "Six Color Enhanced Composite"
-msgstr ""
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Rulle fødning"
-#: src/main/print-escp2.c:2997 src/main/print-lexmark.c:629
-#: src/main/print-lexmark.c:709
-msgid "Six Color Photo"
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
msgstr ""
-#: src/main/print-escp2.c:2998 src/main/print-lexmark.c:634
-#: src/main/print-lexmark.c:714
-msgid "Five Color Photo Composite"
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
msgstr ""
-#. output_type ncolors used_colors pass_length v_top_head_offset
-#. * h_catridge_offset
-#. * h_direction_offset
-#. * head_offset
-#: src/main/print-escp2.c:2999 src/main/print-lexmark.c:619
-#: src/main/print-lexmark.c:699
-msgid "Four Color Standard"
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
msgstr ""
-#: src/main/print-escp2.c:3000 src/main/print-lexmark.c:624
-#: src/main/print-lexmark.c:704
-msgid "Three Color Composite"
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
msgstr ""
-#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2.c:3323
-#: src/main/print-pcl.c:198
-msgid "Standard"
-msgstr "Standard"
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Automatisk udvælgelse"
-#: src/main/print-escp2.c:3325
-msgid "Roll Feed"
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
msgstr ""
#. name hres vres softw v_pass overs unidir resid
-#: src/main/print-lexmark.c:595 src/main/print-lexmark.c:681
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
msgid "300 DPI x 600 DPI"
-msgstr ""
+msgstr "300 DPI x 600 DPI"
-#: src/main/print-lexmark.c:596 src/main/print-lexmark.c:682
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
msgid "600 DPI"
-msgstr ""
+msgstr "600 DPI"
-#: src/main/print-lexmark.c:597 src/main/print-lexmark.c:683
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
msgid "600 DPI high quality"
-msgstr ""
+msgstr "600 DPI høj kvalitet"
-#: src/main/print-lexmark.c:598 src/main/print-lexmark.c:684
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
msgid "600 DPI Unidirectional"
-msgstr ""
+msgstr "600 DPI envejs"
-#: src/main/print-lexmark.c:599 src/main/print-lexmark.c:685
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
msgid "1200 DPI"
-msgstr ""
+msgstr "1200 DPI"
-#: src/main/print-lexmark.c:600 src/main/print-lexmark.c:686
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
msgid "1200 DPI high quality"
-msgstr ""
+msgstr "1200 DPI høj kvalitet"
-#: src/main/print-lexmark.c:601 src/main/print-lexmark.c:687
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
msgid "1200 DPI highest quality"
-msgstr ""
+msgstr "1200 DPI højeste kvalitet"
-#: src/main/print-lexmark.c:602 src/main/print-lexmark.c:688
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
msgid "1200 DPI Unidirectional"
-msgstr ""
+msgstr "1200 DPI envejs"
-#: src/main/print-lexmark.c:603
+#: src/main/print-lexmark.c:630
msgid "2400 DPI x 1200 DPI"
-msgstr ""
+msgstr "2400 DPI x 1200 DPI"
-#: src/main/print-lexmark.c:604
+#: src/main/print-lexmark.c:631
msgid "2400 DPI x 1200 DPI high quality"
-msgstr ""
+msgstr "2400 DPI x 1200 DPI høj kvalitet"
-#: src/main/print-lexmark.c:605
+#: src/main/print-lexmark.c:632
msgid "2400 DPI x 1200 DPI highest quality"
-msgstr ""
+msgstr "2400 DPI x 1200 DPI højeste kvalitet"
-#: src/main/print-lexmark.c:607
+#: src/main/print-lexmark.c:634
msgid "test print"
-msgstr ""
+msgstr "test udskrift"
-#. 11in x 17in
-#: src/main/print-pcl.c:108 src/main/print-util.c:530
-msgid "Executive"
-msgstr ""
-
-#. US Exec (7.25 x 10.5 in)
-#: src/main/print-pcl.c:109 src/main/print-util.c:524
-msgid "Letter"
-msgstr "Letter"
-
-#. US Letter (8.5 x 11 in)
-#: src/main/print-pcl.c:110 src/main/print-util.c:526
-msgid "Legal"
-msgstr "Legal"
-
-#. US Legal (8.5 x 14 in)
-#: src/main/print-pcl.c:111 src/main/print-util.c:528
-msgid "Tabloid"
-msgstr ""
-
-#. US Tabloid (11 x 17 in)
-#: src/main/print-pcl.c:112 src/main/print-pcl.c:199 src/main/print-util.c:548
-msgid "Manual"
-msgstr "Manuelt"
-
-#. US Manual/Statement (5.5 x 8.5 in)
-#: src/main/print-pcl.c:113
-msgid "13x19"
-msgstr ""
-
-#. US 13x19/Super B (13 x 19 in)
-#: src/main/print-pcl.c:114 src/main/print-util.c:599
-msgid "A5"
-msgstr ""
-
-#. ISO/JIS A5 (148 x 210 mm)
-#: src/main/print-pcl.c:115 src/main/print-util.c:597
-msgid "A4"
-msgstr "A4"
-
-#. ISO/JIS A4 (210 x 297 mm)
-#: src/main/print-pcl.c:116 src/main/print-util.c:595
-msgid "A3"
-msgstr "A3"
-
-#. ISO/JIS A3 (297 x 420 mm)
-#: src/main/print-pcl.c:117 src/main/print-util.c:681
-msgid "B5 JIS"
-msgstr ""
-
-#. JIS B5 (182 x 257 mm).
-#: src/main/print-pcl.c:118 src/main/print-util.c:679
-msgid "B4 JIS"
-msgstr ""
-
-#. JIS B4 (257 x 364 mm).
-#: src/main/print-pcl.c:119 src/main/print-util.c:783
-msgid "Hagaki Card"
-msgstr ""
-
-#. Japanese Hagaki Card (100 x 148 mm)
-#: src/main/print-pcl.c:120 src/main/print-util.c:785
-msgid "Oufuku Card"
-msgstr ""
-
-#. Japanese Oufuku Card (148 x 200 mm)
-#: src/main/print-pcl.c:121 src/main/print-util.c:601
-msgid "A6"
-msgstr ""
-
-#. ISO/JIS A6 card
-#: src/main/print-pcl.c:122 src/main/print-util.c:536
-msgid "4x6"
-msgstr ""
-
-#. US Index card (4 x 6 in)
-#: src/main/print-pcl.c:123 src/main/print-util.c:542
-msgid "5x8"
-msgstr ""
-
-#. US Index card (5 x 8 in)
-#: src/main/print-pcl.c:124 src/main/print-util.c:534
-msgid "3x5"
-msgstr ""
-
-#. US Index card (3 x 5 in)
-#: src/main/print-pcl.c:125
-msgid "Monarch"
-msgstr ""
-
-#. Monarch Envelope (3 7/8 x 7 1/2 in)
-#: src/main/print-pcl.c:126 src/main/print-util.c:793
-msgid "Commercial 10"
-msgstr ""
-
-#. US Commercial 10 Envelope (4.125 x 9.5 in) Portrait
-#: src/main/print-pcl.c:127 src/main/print-util.c:713
-msgid "DL"
-msgstr ""
-
-#. DL envelope (110 x 220 mm) Portrait
-#: src/main/print-pcl.c:128 src/main/print-util.c:707
-msgid "C5"
-msgstr ""
-
-#. C5 envelope (162 x 229 mm)
-#: src/main/print-pcl.c:129 src/main/print-util.c:711
-msgid "C6"
-msgstr ""
-
-#. C6 envelope (114 x 162 mm)
-#: src/main/print-pcl.c:130 src/main/print-util.c:795
-msgid "A2 Invitation"
-msgstr ""
-
-#. US A2 Invitation envelope (4 3/8 x 5 3/4 in)
-#: src/main/print-pcl.c:131
-msgid "Long 3"
-msgstr ""
-
-#. Japanese Long Envelope #3 (120 x 235 mm)
-#: src/main/print-pcl.c:132
-msgid "Long 4"
-msgstr ""
-
-#. Japanese Long Envelope #4 (90 x 205 mm)
-#: src/main/print-pcl.c:133
-msgid "Kaku"
-msgstr ""
-
-#. Japanese Kaku Envelope (240 x 332.1 mm)
-#. *** MRS: this size not supported by print-util funcs! ***
-#: src/main/print-pcl.c:135
-msgid "HP Greeting Card"
-msgstr ""
-
-#: src/main/print-pcl.c:153
+#: src/main/print-pcl.c:157
msgid "Plain"
-msgstr "Udskriv"
+msgstr "Almindelig"
-#: src/main/print-pcl.c:154
+#: src/main/print-pcl.c:158
+#, fuzzy
msgid "Bond"
-msgstr ""
+msgstr "Fed"
-#: src/main/print-pcl.c:155
+#: src/main/print-pcl.c:159
msgid "Premium"
-msgstr ""
+msgstr "Premium"
-#: src/main/print-pcl.c:156
+#: src/main/print-pcl.c:160
msgid "Glossy Photo"
-msgstr ""
+msgstr "Blankt foto"
-#: src/main/print-pcl.c:157
+#: src/main/print-pcl.c:161
msgid "Transparency"
-msgstr "Gennemsigtighed"
+msgstr "Transparent"
-#: src/main/print-pcl.c:158
+#: src/main/print-pcl.c:162
msgid "Quick-dry Photo"
-msgstr ""
+msgstr "Hurtig tørrende foto"
-#: src/main/print-pcl.c:159
+#: src/main/print-pcl.c:163
msgid "Quick-dry Transparency"
-msgstr ""
+msgstr "Hurtig tørrende transparent"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuelt"
#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
-#: src/main/print-pcl.c:201
+#: src/main/print-pcl.c:205
msgid "Tray 1"
-msgstr ""
+msgstr "Bakke 1"
-#: src/main/print-pcl.c:202 src/main/print-pcl.c:208
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
msgid "Tray 2"
-msgstr ""
+msgstr "Bakke 2"
-#: src/main/print-pcl.c:203
+#: src/main/print-pcl.c:207
msgid "Tray 3"
-msgstr ""
+msgstr "Bakke3"
-#: src/main/print-pcl.c:204
+#: src/main/print-pcl.c:208
msgid "Tray 4"
-msgstr ""
+msgstr "Bakke 4"
-#: src/main/print-pcl.c:205
+#: src/main/print-pcl.c:209
+#, fuzzy
msgid "Portable Sheet Feeder"
-msgstr ""
+msgstr "Valgfri ark føder"
-#: src/main/print-pcl.c:206
+#: src/main/print-pcl.c:210
msgid "Desktop Sheet Feeder"
-msgstr ""
+msgstr "Indbygget ark føder"
-#: src/main/print-pcl.c:207
+#: src/main/print-pcl.c:211
msgid "Tray"
-msgstr ""
+msgstr "Bakke"
-#: src/main/print-pcl.c:209
+#: src/main/print-pcl.c:213
msgid "Optional Source"
-msgstr ""
+msgstr "Anden kilde"
-#: src/main/print-pcl.c:210
+#: src/main/print-pcl.c:214
msgid "Autoselect"
-msgstr ""
+msgstr "Automatisk udvælgelse"
-#: src/main/print-pcl.c:224
+#: src/main/print-pcl.c:228
msgid "150x150 DPI"
-msgstr ""
+msgstr "150x150 DPI"
-#: src/main/print-pcl.c:225
+#: src/main/print-pcl.c:229
msgid "300x300 DPI"
-msgstr ""
+msgstr "300x300 DPI"
-#: src/main/print-pcl.c:226
+#: src/main/print-pcl.c:230
msgid "600x300 DPI"
-msgstr ""
+msgstr "600x300 DPI"
-#: src/main/print-pcl.c:227
+#: src/main/print-pcl.c:231
msgid "600x600 DPI monochrome"
-msgstr ""
+msgstr "600x600 DPI monokrom"
-#: src/main/print-pcl.c:228
+#: src/main/print-pcl.c:232
msgid "600x600 DPI"
-msgstr ""
+msgstr "600x600 DPI"
-#: src/main/print-pcl.c:229
+#: src/main/print-pcl.c:233
msgid "1200x600 DPI"
-msgstr ""
+msgstr "1200x600 DPI"
-#: src/main/print-pcl.c:230
+#: src/main/print-pcl.c:234
msgid "2400x600 DPI"
-msgstr ""
+msgstr "2400x600 DPI"
-#: src/main/print-pcl.c:1563
+#: src/main/print-pcl.c:1763
msgid "Color + Black Cartridges"
-msgstr ""
+msgstr "Farve + sort patroner"
-#: src/main/print-pcl.c:1564
+#: src/main/print-pcl.c:1764
msgid "Color + Photo Cartridges"
-msgstr ""
+msgstr "Farve + foto patroner"
#. Name of file or command to print to
-#: src/main/print-util.c:125 src/main/print-util.c:159
-#: src/main/print-util.c:193
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
msgid "ps2"
-msgstr ""
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
-#: src/main/print-util.c:538
+#: src/main/print-util.c:547
msgid "Epson 4x6 Photo Paper"
-msgstr ""
+msgstr "Epson 4x6 foto papir"
-#: src/main/print-util.c:540
+#: src/main/print-util.c:549
msgid "5x7"
-msgstr ""
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
-#: src/main/print-util.c:544
+#: src/main/print-util.c:553
msgid "6x8"
-msgstr ""
+msgstr "6x8"
-#: src/main/print-util.c:546
+#: src/main/print-util.c:555
msgid "8x10"
-msgstr ""
+msgstr "8x10"
#. 5.5in x 8.5in
-#: src/main/print-util.c:550
+#: src/main/print-util.c:559
msgid "12x18"
-msgstr ""
+msgstr "12x18"
-#: src/main/print-util.c:552
+#: src/main/print-util.c:561
msgid "Super B 13x19"
+msgstr "Super B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
msgstr ""
#. Other common photographic paper sizes
-#: src/main/print-util.c:556
+#: src/main/print-util.c:567
msgid "8x12"
-msgstr ""
+msgstr "8x12"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:558
+#: src/main/print-util.c:569
msgid "11x14"
-msgstr ""
+msgstr "11x14"
-#: src/main/print-util.c:560
+#: src/main/print-util.c:571
msgid "16x20"
-msgstr ""
+msgstr "16x20"
-#: src/main/print-util.c:562
+#: src/main/print-util.c:573
msgid "16x24"
-msgstr ""
+msgstr "16x24"
#. 20x24 for 35 mm
-#: src/main/print-util.c:564
+#: src/main/print-util.c:575
msgid "20x24"
-msgstr ""
+msgstr "20x24"
-#: src/main/print-util.c:566
+#: src/main/print-util.c:577
msgid "20x30"
-msgstr ""
+msgstr "20x30"
#. 24x30 for 35 mm
-#: src/main/print-util.c:568
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
msgid "24x30"
-msgstr ""
+msgstr "24x30"
-#: src/main/print-util.c:570
+#: src/main/print-util.c:583
msgid "24x36"
-msgstr ""
+msgstr "24x36"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:572
+#: src/main/print-util.c:585
msgid "30x40"
msgstr "30x40"
@@ -877,47 +962,72 @@ msgstr "30x40"
#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
#. * size is obtained by doubling or halving another A size.
#.
-#: src/main/print-util.c:585
+#: src/main/print-util.c:598
msgid "4A"
msgstr "4A"
#. 1682mm x 2378mm
-#: src/main/print-util.c:587
+#: src/main/print-util.c:600
msgid "2A"
msgstr "2A"
#. 1189mm x 1682mm
-#: src/main/print-util.c:589
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
msgid "A0"
msgstr "A0"
#. 841mm x 1189mm
-#: src/main/print-util.c:591
+#: src/main/print-util.c:606
msgid "A1"
msgstr "A1"
#. 594mm x 841mm
-#: src/main/print-util.c:593
+#: src/main/print-util.c:608
msgid "A2"
msgstr "A2"
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
#. 105mm x 148mm
-#: src/main/print-util.c:603
+#: src/main/print-util.c:618
msgid "A7"
msgstr "A7"
#. 74mm x 105mm
-#: src/main/print-util.c:605
+#: src/main/print-util.c:620
msgid "A8"
msgstr "A8"
#. 52mm x 74mm
-#: src/main/print-util.c:607
+#: src/main/print-util.c:622
msgid "A9"
msgstr "A9"
#. 37mm x 52mm
-#: src/main/print-util.c:609
+#: src/main/print-util.c:624
msgid "A10"
msgstr "A10"
@@ -926,27 +1036,27 @@ msgstr "A10"
#. * Stock sizes for normal trims.
#. * Allowance for trim is 3 millimetres.
#.
-#: src/main/print-util.c:616
+#: src/main/print-util.c:631
msgid "RA0"
msgstr "RA0"
#. 860mm x 1220mm
-#: src/main/print-util.c:618
+#: src/main/print-util.c:633
msgid "RA1"
msgstr "RA1"
#. 610mm x 860mm
-#: src/main/print-util.c:620
+#: src/main/print-util.c:635
msgid "RA2"
msgstr "RA2"
#. 430mm x 610mm
-#: src/main/print-util.c:622
+#: src/main/print-util.c:637
msgid "RA3"
msgstr "RA3"
#. 305mm x 430mm
-#: src/main/print-util.c:624
+#: src/main/print-util.c:639
msgid "RA4"
msgstr "RA4"
@@ -954,27 +1064,27 @@ msgstr "RA4"
#.
#. * Stock sizes for bled work or extra trims.
#.
-#: src/main/print-util.c:630
+#: src/main/print-util.c:645
msgid "SRA0"
msgstr "SRA0"
#. 900mm x 1280mm
-#: src/main/print-util.c:632
+#: src/main/print-util.c:647
msgid "SRA1"
msgstr "SRA1"
#. 640mm x 900mm
-#: src/main/print-util.c:634
+#: src/main/print-util.c:649
msgid "SRA2"
msgstr "SRA2"
#. 450mm x 640mm
-#: src/main/print-util.c:636
+#: src/main/print-util.c:651
msgid "SRA3"
msgstr "SRA3"
#. 320mm x 450mm
-#: src/main/print-util.c:638
+#: src/main/print-util.c:653
msgid "SRA4"
msgstr "SRA4"
@@ -982,161 +1092,189 @@ msgstr "SRA4"
#.
#. * "B" series: Posters, wall charts and similar items.
#.
-#: src/main/print-util.c:644
+#: src/main/print-util.c:659
msgid "4B ISO"
msgstr "4B ISO"
#. 2000mm x 2828mm
-#: src/main/print-util.c:646
+#: src/main/print-util.c:661
msgid "2B ISO"
msgstr "2B ISO"
#. 1414mm x 2000mm
-#: src/main/print-util.c:648
+#: src/main/print-util.c:663
msgid "B0 ISO"
msgstr "B0 ISO"
#. 1000mm x 1414mm
-#: src/main/print-util.c:650
+#: src/main/print-util.c:665
msgid "B1 ISO"
msgstr "B1 ISO"
#. 707mm x 1000mm
-#: src/main/print-util.c:652
+#: src/main/print-util.c:667
msgid "B2 ISO"
msgstr "B2 ISO"
#. 500mm x 707mm
-#: src/main/print-util.c:654
+#: src/main/print-util.c:669
msgid "B3 ISO"
msgstr "B3 ISO"
#. 353mm x 500mm
-#: src/main/print-util.c:656
+#: src/main/print-util.c:671
msgid "B4 ISO"
msgstr "B4 ISO"
#. 250mm x 353mm
-#: src/main/print-util.c:658
+#: src/main/print-util.c:673
msgid "B5 ISO"
msgstr "B5 ISO"
#. 176mm x 250mm
-#: src/main/print-util.c:660
+#: src/main/print-util.c:675
msgid "B6 ISO"
msgstr "B6 ISO"
#. 125mm x 176mm
-#: src/main/print-util.c:662
+#: src/main/print-util.c:677
msgid "B7 ISO"
msgstr "B7 ISO"
#. 88mm x 125mm
-#: src/main/print-util.c:664
+#: src/main/print-util.c:679
msgid "B8 ISO"
msgstr "B8 ISO"
#. 62mm x 88mm
-#: src/main/print-util.c:666
+#: src/main/print-util.c:681
msgid "B9 ISO"
msgstr "B9 ISO"
#. 44mm x 62mm
-#: src/main/print-util.c:668
+#: src/main/print-util.c:683
msgid "B10 ISO"
msgstr "B10 ISO"
#. 31mm x 44mm
-#: src/main/print-util.c:671
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
msgid "B0 JIS"
msgstr "B0 JIS"
-#: src/main/print-util.c:673
+#: src/main/print-util.c:690
msgid "B1 JIS"
msgstr "B1 JIS"
-#: src/main/print-util.c:675
+#: src/main/print-util.c:692
msgid "B2 JIS"
msgstr "B2 JIS"
-#: src/main/print-util.c:677
+#: src/main/print-util.c:694
msgid "B3 JIS"
msgstr "B3 JIS"
-#: src/main/print-util.c:683
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
msgid "B6 JIS"
msgstr "B6 JIS"
-#: src/main/print-util.c:685
+#: src/main/print-util.c:702
msgid "B7 JIS"
msgstr "B7 JIS"
-#: src/main/print-util.c:687
+#: src/main/print-util.c:704
msgid "B8 JIS"
msgstr "B8 JIS"
-#: src/main/print-util.c:689
+#: src/main/print-util.c:706
msgid "B9 JIS"
msgstr "B9 JIS"
-#: src/main/print-util.c:691
+#: src/main/print-util.c:708
msgid "B10 JIS"
msgstr "B10 JIS"
#.
#. * "C" series: Envelopes or folders suitable for A size stationery.
#.
-#: src/main/print-util.c:697
+#: src/main/print-util.c:714
msgid "C0"
msgstr "C0"
#. 917mm x 1297mm
-#: src/main/print-util.c:699
+#: src/main/print-util.c:716
msgid "C1"
msgstr "C1"
#. 648mm x 917mm
-#: src/main/print-util.c:701
+#: src/main/print-util.c:718
msgid "C2"
msgstr "C2"
#. 458mm x 648mm
-#: src/main/print-util.c:703
+#: src/main/print-util.c:720
msgid "C3"
msgstr "C3"
#. 324mm x 458mm
-#: src/main/print-util.c:705
+#: src/main/print-util.c:722
msgid "C4"
msgstr "C4"
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
#. 162mm x 229mm
-#: src/main/print-util.c:709
+#: src/main/print-util.c:726
msgid "B6-C4"
msgstr "B6-C4"
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
#. 110mm x 220mm
-#: src/main/print-util.c:715
+#: src/main/print-util.c:732
msgid "C7-6"
msgstr "C7-6"
#. 81mm x 162mm
-#: src/main/print-util.c:717
+#: src/main/print-util.c:734
msgid "C7"
msgstr "C7"
#. 81mm x 114mm
-#: src/main/print-util.c:719
+#: src/main/print-util.c:736
msgid "C8"
msgstr "C8"
#. 57mm x 81mm
-#: src/main/print-util.c:721
+#: src/main/print-util.c:738
msgid "C9"
msgstr "C9"
#. 40mm x 57mm
-#: src/main/print-util.c:723
+#: src/main/print-util.c:740
msgid "C10"
msgstr "C10"
@@ -1144,37 +1282,57 @@ msgstr "C10"
#.
#. * US CAD standard paper sizes
#.
-#: src/main/print-util.c:729
+#: src/main/print-util.c:746
msgid "ArchA"
-msgstr ""
+msgstr "ArchA"
-#: src/main/print-util.c:731
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr "ArchA Tværformat"
+
+#: src/main/print-util.c:750
msgid "ArchB"
-msgstr ""
+msgstr "ArchB"
-#: src/main/print-util.c:733
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr "ArchB Tværformat"
+
+#: src/main/print-util.c:754
msgid "ArchC"
-msgstr ""
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr "ArchC Tværformat"
-#: src/main/print-util.c:735
+#: src/main/print-util.c:758
msgid "ArchD"
-msgstr ""
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr "ArchD Tværformat"
-#: src/main/print-util.c:737
+#: src/main/print-util.c:762
msgid "ArchE"
-msgstr ""
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr "ArchE Tværformat"
#.
#. * Foolscap
#.
-#: src/main/print-util.c:743
+#: src/main/print-util.c:770
msgid "American foolscap"
-msgstr ""
+msgstr "Amerikansk folio"
#. American foolscap
-#: src/main/print-util.c:745
+#: src/main/print-util.c:772
msgid "European foolscap"
-msgstr ""
+msgstr "Europæisk folio"
#. European foolscap
#.
@@ -1182,190 +1340,267 @@ msgstr ""
#. * The BPIF and the Publishers Association jointly recommend ten
#. * standard metric sizes for case-bound titles as follows:
#.
-#: src/main/print-util.c:753
+#: src/main/print-util.c:780
msgid "Crown Quarto"
-msgstr ""
+msgstr "Krone kvartformat"
#. 189mm x 246mm
-#: src/main/print-util.c:755
+#: src/main/print-util.c:782
msgid "Large Crown Quarto"
-msgstr ""
+msgstr "Stort krone kvartformat"
#. 201mm x 258mm
-#: src/main/print-util.c:757
+#: src/main/print-util.c:784
msgid "Demy Quarto"
-msgstr ""
+msgstr "Demy kvartformat"
#. 219mm x 276mm
-#: src/main/print-util.c:759
+#: src/main/print-util.c:786
msgid "Royal Quarto"
-msgstr ""
+msgstr "Royal kvartformat"
#. 237mm x 312mm
#. { "ISO A4", 595,
#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
-#: src/main/print-util.c:763
+#: src/main/print-util.c:790
msgid "Crown Octavo"
-msgstr ""
+msgstr "Krone oktavformat"
#. 123mm x 186mm
-#: src/main/print-util.c:765
+#: src/main/print-util.c:792
msgid "Large Crown Octavo"
-msgstr ""
+msgstr "Stort krone oktavformat"
#. 129mm x 198mm
-#: src/main/print-util.c:767
+#: src/main/print-util.c:794
msgid "Demy Octavo"
-msgstr ""
+msgstr "Demy oktavformat"
#. 138mm x 216mm
-#: src/main/print-util.c:769
+#: src/main/print-util.c:796
msgid "Royal Octavo"
-msgstr ""
+msgstr "Royal oktavformat"
#. 156mm x 234mm
#. { N_ ("ISO A5"), 419,
#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
#. Paperback sizes in common usage
-#: src/main/print-util.c:775
+#: src/main/print-util.c:802
msgid "Small paperback"
-msgstr ""
+msgstr "Lille paperback"
#. 111mm x 178mm
-#: src/main/print-util.c:777
+#: src/main/print-util.c:804
msgid "Penguin small paperback"
-msgstr ""
+msgstr "Penguin lille paperback"
#. 111mm x 181mm
-#: src/main/print-util.c:779
+#: src/main/print-util.c:806
msgid "Penguin large paperback"
+msgstr "Penguin stor paperback"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
msgstr ""
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki kort"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku kort"
+
#. 148 x 200 mm
-#: src/main/print-util.c:787
+#: src/main/print-util.c:816
msgid "Japanese long envelope #3"
-msgstr ""
+msgstr "Japansk lang kuvert #3"
#. Japanese long envelope #3
-#: src/main/print-util.c:789
+#: src/main/print-util.c:818
msgid "Japanese long envelope #4"
-msgstr ""
+msgstr "Japansk lang kuvert #4"
#. Japanese long envelope #4
-#: src/main/print-util.c:791
+#: src/main/print-util.c:820
msgid "Japanese Kaku envelope #4"
-msgstr ""
+msgstr "Japansk Kaku kuvert #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitation"
#. US A2 invitation
-#: src/main/print-util.c:797
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Monarch kuvert"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
msgid "Custom"
-msgstr "Egendefinert"
+msgstr "Egendefineret"
-#: src/main/print-util.c:800
+#: src/main/print-util.c:831
msgid "89 mm Roll Paper"
-msgstr ""
+msgstr "89 mm papirrulle"
-#: src/main/print-util.c:802
+#: src/main/print-util.c:833
msgid "4 Inch Roll Paper"
-msgstr ""
+msgstr "4 tommer papirrulle"
-#: src/main/print-util.c:804
+#: src/main/print-util.c:835
msgid "5 Inch Roll Paper"
-msgstr ""
+msgstr "5 tommer papirrulle"
-#: src/main/print-util.c:806
+#: src/main/print-util.c:837
msgid "210 mm Roll Paper"
-msgstr ""
+msgstr "210 mm papirrulle"
-#: src/main/print-util.c:808
+#: src/main/print-util.c:839
msgid "13 Inch Roll Paper"
-msgstr ""
+msgstr "13 tommer papirrulle"
-#: src/main/print-util.c:810
+#: src/main/print-util.c:841
msgid "22 Inch Roll Paper"
-msgstr ""
+msgstr "22 tommer papirrulle"
-#: src/main/print-util.c:812
+#: src/main/print-util.c:843
msgid "24 Inch Roll Paper"
-msgstr ""
+msgstr "24 tommer papirrulle"
-#: src/main/print-util.c:814
+#: src/main/print-util.c:845
msgid "36 Inch Roll Paper"
-msgstr ""
+msgstr "36 tommer papirrulle"
-#: src/main/print-util.c:816
+#: src/main/print-util.c:847
msgid "44 Inch Roll Paper"
-msgstr ""
+msgstr "44 tommer papirrulle"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s er ikke en gyldig parameter af typen %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s uden for område (værdi %f, min %f, max %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s uden for område (værdi %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Printer understøtter ikke farveudskrift\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Billedstørrelse er ikke gyldig\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Top margin må ikke være mindre end nul\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Venstre margin må ikke være mindre end nul\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s er ikke en gyldig dither algoritm\n"
#. Specify language of PPD translation
#. Translators: Specify the language of the PPD translation.
#. * Use the English name of your language here, e.g. "Swedish" instead of
#. * "Svenska".
#.
-#: src/cups/genppd.c:455
+#: src/cups/genppd.c:519
msgid "English"
msgstr "Danish"
#. Specify PPD translation encoding e.g. ISOLatin1
-#: src/cups/genppd.c:457
+#: src/cups/genppd.c:521
msgid "ISOLatin1"
-msgstr ""
+msgstr "ISOLatin1"
-#: src/cups/genppd.c:633
+#: src/cups/genppd.c:777
msgid "Media Type"
-msgstr ""
+msgstr "Medium type"
-#: src/cups/genppd.c:659
+#: src/cups/genppd.c:803
msgid "Media Source"
-msgstr ""
+msgstr "Medium kilde"
-#: src/cups/genppd.c:683
+#: src/cups/genppd.c:827
msgid "Resolution"
msgstr "Opløsning"
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Udskriv"
+
#.
#. * Image types...
#.
-#: src/cups/genppd.c:723
+#: src/cups/genppd.c:869
msgid "Image Type"
-msgstr "Bildetype"
+msgstr "Billede type"
-#: src/cups/genppd.c:728 src/gimp/gimp_main_window.c:1314
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
msgid "Line Art"
msgstr "Linje-kunst"
-#: src/cups/genppd.c:730 src/gimp/gimp_main_window.c:1328
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
msgid "Solid Colors"
-msgstr "Farve"
+msgstr "Rene farver"
-#: src/cups/genppd.c:732 src/gimp/gimp_main_window.c:1343
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
msgid "Photograph"
-msgstr ""
+msgstr "Fotografi"
#.
#. * Dithering algorithms...
#.
-#: src/cups/genppd.c:740
+#: src/cups/genppd.c:886
msgid "Dither Algorithm"
-msgstr "Dither-algoritme"
+msgstr "Dither Algorithm"
-#: src/cups/genppd.c:759
+#: src/cups/genppd.c:905
msgid "Ink Type"
-msgstr "Blæktype"
+msgstr "Blæk type"
-#: src/escputil/escputil.c:64
+#: src/escputil/escputil.c:66
msgid "Escputil version "
-msgstr ""
+msgstr "Escputil version "
-#: src/escputil/escputil.c:65
+#: src/escputil/escputil.c:67
msgid ""
", Copyright (C) 2000-2001 Robert Krawitz\n"
"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
"This is free software, and you are welcome to redistribute it\n"
"under certain conditions; type 'escputil -l' for details.\n"
msgstr ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil kommer uden NOGEN FORMER FOR GARANTI; for detaljer skriv 'escputil -"
+"l'\n"
+"Dette er fri software, og du er velkommen til at redistribuere det\n"
+"under bestemte betingelser, skriv 'escputil -l' for detaljer.\n"
-#: src/escputil/escputil.c:70
+#: src/escputil/escputil.c:72
msgid ""
"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
"\n"
@@ -1383,8 +1618,24 @@ msgid ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Dette program er fri software, du er velkommen til at redistribuere det\n"
+"og/eller ændre det, under betingelserne for GNU General Public License\n"
+"som publiceret af the Free Software Foundation; enten version 2 af "
+"licensen,\n"
+"eller (efter eget valg) enhver senere version.\n"
+"\n"
+"Dette program er distribueret i det håb, at det vil være nyttigt, men\n"
+"UDEN ENHVER FOR FOR GARANTI, endda uden den underforståede\n"
+"garanti for SALGBARHED, eller EGNETHED FOR ET BESTEMT FORMÅL\n"
+"Se GNU General Public License for yderligere detaljer.\n"
+"\n"
+"Du skulle have modtaget en kopi af GNU General Public License sammen\n"
+"med dette program. Hvis ikke, skriv da til Free Software Foundation, Inc .,\n"
+"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#: src/escputil/escputil.c:110
+#: src/escputil/escputil.c:112
msgid ""
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P printer | -r device] [-u] [-q] [-m model]\n"
@@ -1426,8 +1677,49 @@ msgid ""
" -m|--model Specify the precise printer model for head "
"alignment.\n"
msgstr ""
-
-#: src/escputil/escputil.c:148
+"Brug: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r enhed] [-u] [-q] [-m model]\n"
+"Udfør vedligeholdelse på EPSON Stylus (R) printere.\n"
+"Eksempler: escputil --clean-head --printer stpex-på-tredie-etage\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Kommandoer:\n"
+" -c|--clean-head Renser print hoved.\n"
+" -n|--nozzle-check Printer en dyse test.\n"
+" Beskidte eller stoppede dyser viser sig som huller i\n"
+" mønsteret. Hvis der er huller, bør du rense\n"
+" print hovedet.\n"
+" -a|--align-head Retter printhovedet ind. FORSIGTIG unødig "
+"brug\n"
+" af denne funktion kan resultere i dårlig "
+"printkvalitet, eller\n"
+" forårsage direkte skade på printeren.\n"
+" -o|--align-color Retter farve printhovedet ind (Kun for Stylus Color "
+"480\n"
+" og 580). FORSIGTIG unødig brug af denne funktion\n"
+" kan resultere i dårlig printkvalitet, eller "
+"forårsage\n"
+" direkte skade på printeren.\n"
+" -s|--status Viser printer status.\n"
+" -i|--ink-level Henter blæk niveau fra printeren. Dette kræver\n"
+" direkte læse/skrive adgang til printeren.\n"
+" -d|--identify Forespørger printer om fremstiller og model.Dette\n"
+" kræver direkte læse/skrive adgang til printeren.\n"
+" -l|--license Viser licens/garanti bestemmelser for dette program.\n"
+" -M|--list-models Lister de tilgængelige printer modeller.\n"
+" -h|--help Printer denne hjælpe meddelelse.\n"
+" Flag:\n"
+" -P|--printer-name Specificer den valgte printer kø.\n"
+" Uden angivelse = system printeren lp.\n"
+" -r|--raw-device Specificer navnet på den enhed der skrives til "
+"direkte\n"
+" i stedet for at gå gennem en printer kø.\n"
+" -u|--new Printeren er ny (Stylus Color 740 eller nyere).\n"
+" -q|--quiet Undertrykker banneret.\n"
+" -m|--model Specificer den præcise printer model til brug for\n"
+" indretning af printhoved (alignment).\n"
+
+#: src/escputil/escputil.c:150
msgid ""
"Usage: escputil [OPTIONS] [COMMAND]\n"
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
@@ -1465,362 +1757,554 @@ msgid ""
" -q Suppress the banner.\n"
" -m Specify the precise printer model for head alignment.\n"
msgstr ""
+"Anvendelse: escputil [flag] [kommando]\n"
+"Anvendelse: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r enhed] [-u] [-q] [-m model]\n"
+"Udfør vedligeholdelse på EPSON Stylus (R) printere.\n"
+"Eksempler: escputil -c -P stpex-på tredie etage\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+"Kommandoer:\n"
+" -c Rens print hovedet.\n"
+" -n Print et dyse test mønster.\n"
+" Beskidte eller stoppede dyser vil vise sig som huller i\n"
+" mønsteret. Hvis der er huller,bør du rense print hovedet\n"
+" -a Ret printhovedet ind. FORSIGTIG: Forkert brug af denne\n"
+" funktion kan resultere i dårlige print kvalitet og/eller\n"
+" beskadigelse af printeren (alignement).\n"
+" -o Retter farve printhovedet ind (Kun for Stylus Color 480\n"
+" og 580). FORSIGTIG unødig brug af denne funktion\n"
+" kan resultere i dårlig printkvalitet, eller forårsage\n"
+" direkte skade på printeren.\n"
+" -s Viser printer status.\n"
+" -i Henter blæk niveau fra printeren. Dette kræver\n"
+" direkte læse/skrive adgang til printeren.\n"
+" -d Forespørger printer om fremstiller og model.Dette\n"
+" kræver direkte læse/skrive adgang til printeren.\n"
+" -l Viser licens/garanti bestemmelser for dette program.\n"
+" -M Lister de tilgængelige printer modeller.\n"
+" -h Printer denne hjælpe meddelelse.\n"
+" Flag:\n"
+" -P Specificer den valgte printer kø.\n"
+" Standard = system printeren.\n"
+" -r Specificer navnet på den enhed der skrives til direkte\n"
+" i stedet for at gå gennem en printer kø.\n"
+" -u Printeren er en ny printer (Stylus Color 740 eller nyere).\n"
+" -q Undertrykker banneret.\n"
+" -m Specificer den præcise printer model til brug for\n"
+" indretning af printhoved (alignment).\n"
-#: src/escputil/escputil.c:199
+#: src/escputil/escputil.c:201
msgid "Stylus C20sx"
-msgstr ""
+msgstr "Stylus C20sx"
-#: src/escputil/escputil.c:200
+#: src/escputil/escputil.c:202
msgid "Stylus C20ux"
-msgstr ""
+msgstr "Stylus C20ux"
-#: src/escputil/escputil.c:201
+#: src/escputil/escputil.c:203
msgid "Stylus C40sx"
-msgstr ""
+msgstr "Stylus C40sx"
-#: src/escputil/escputil.c:202
+#: src/escputil/escputil.c:204
msgid "Stylus C40ux"
-msgstr ""
+msgstr "Stylus C40ux"
-#: src/escputil/escputil.c:203
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
msgid "Stylus C60"
-msgstr ""
+msgstr "Stylus C60"
-#: src/escputil/escputil.c:204
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
msgid "Stylus C70"
-msgstr ""
+msgstr "Stylus C70"
-#: src/escputil/escputil.c:205
+#: src/escputil/escputil.c:220
msgid "Stylus C80"
-msgstr ""
+msgstr "Stylus C80"
-#: src/escputil/escputil.c:206
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
msgid "Stylus Color"
-msgstr "Farve"
+msgstr "Stylus Color"
-#: src/escputil/escputil.c:207
+#: src/escputil/escputil.c:225
msgid "Stylus Color Pro"
-msgstr ""
+msgstr "Stylus Color Pro"
-#: src/escputil/escputil.c:208
+#: src/escputil/escputil.c:226
msgid "Stylus Color Pro XL"
-msgstr ""
+msgstr "Stylus Color Pro XL"
-#: src/escputil/escputil.c:209
+#: src/escputil/escputil.c:227
msgid "Stylus Color 400"
-msgstr ""
+msgstr "Stylus Color 400"
-#: src/escputil/escputil.c:210
+#: src/escputil/escputil.c:228
msgid "Stylus Color 440"
-msgstr ""
+msgstr "Stylus Color 440"
-#: src/escputil/escputil.c:211
+#: src/escputil/escputil.c:229
msgid "Stylus Color 460"
-msgstr ""
+msgstr "Stylus Color 460"
-#: src/escputil/escputil.c:212
+#: src/escputil/escputil.c:230
msgid "Stylus Color 480"
-msgstr ""
+msgstr "Stylus Color 480"
-#: src/escputil/escputil.c:213
+#: src/escputil/escputil.c:231
msgid "Stylus Color 500"
-msgstr ""
+msgstr "Stylus Color 500"
-#: src/escputil/escputil.c:214
+#: src/escputil/escputil.c:232
msgid "Stylus Color 580"
-msgstr ""
+msgstr "Stylus Color 580"
-#: src/escputil/escputil.c:215
+#: src/escputil/escputil.c:233
msgid "Stylus Color 600"
-msgstr ""
+msgstr "Stylus Color 600"
-#: src/escputil/escputil.c:216
+#: src/escputil/escputil.c:234
msgid "Stylus Color 640"
-msgstr ""
+msgstr "Stylus Color 640"
-#: src/escputil/escputil.c:217
+#: src/escputil/escputil.c:235
msgid "Stylus Color 660"
-msgstr ""
+msgstr "Stylus Color 660"
-#: src/escputil/escputil.c:218
+#: src/escputil/escputil.c:236
msgid "Stylus Color 670"
-msgstr ""
+msgstr "Stylus Color 670"
-#: src/escputil/escputil.c:219
+#: src/escputil/escputil.c:237
msgid "Stylus Color 680"
-msgstr ""
+msgstr "Stylus Color 680"
-#: src/escputil/escputil.c:220
+#: src/escputil/escputil.c:238
msgid "Stylus Color 740"
-msgstr ""
+msgstr "Stylus Color 740"
-#: src/escputil/escputil.c:221
+#: src/escputil/escputil.c:239
msgid "Stylus Color 760"
-msgstr ""
+msgstr "Stylus Color 760"
-#: src/escputil/escputil.c:222
+#: src/escputil/escputil.c:240
msgid "Stylus Color 777"
-msgstr ""
+msgstr "Stylus Color 777"
-#: src/escputil/escputil.c:223
+#: src/escputil/escputil.c:241
msgid "Stylus Color 800"
-msgstr ""
+msgstr "Stylus Color 800"
-#: src/escputil/escputil.c:224
+#: src/escputil/escputil.c:242
msgid "Stylus Color 850"
-msgstr ""
+msgstr "Stylus Color 850"
-#: src/escputil/escputil.c:225
+#: src/escputil/escputil.c:243
msgid "Stylus Color 860"
-msgstr ""
+msgstr "Stylus Color 860"
-#: src/escputil/escputil.c:226
+#: src/escputil/escputil.c:244
msgid "Stylus Color 880"
-msgstr ""
+msgstr "Stylus Color 880"
-#: src/escputil/escputil.c:227
+#: src/escputil/escputil.c:245
msgid "Stylus Color 83"
-msgstr ""
+msgstr "Stylus Color 83"
-#: src/escputil/escputil.c:228
+#: src/escputil/escputil.c:246
msgid "Stylus Color 900"
-msgstr ""
+msgstr "Stylus Color 900"
-#: src/escputil/escputil.c:229
+#: src/escputil/escputil.c:247
msgid "Stylus Color 980"
-msgstr ""
+msgstr "Stylus Color 980"
-#: src/escputil/escputil.c:230
+#: src/escputil/escputil.c:248
msgid "Stylus Color 1160"
-msgstr ""
+msgstr "Stylus Color 1160"
-#: src/escputil/escputil.c:231
+#: src/escputil/escputil.c:249
msgid "Stylus Color 1500"
-msgstr ""
+msgstr "Stylus Color 1500"
-#: src/escputil/escputil.c:232
+#: src/escputil/escputil.c:250
msgid "Stylus Color 1520"
-msgstr ""
+msgstr "Stylus Color 1520"
-#: src/escputil/escputil.c:233
+#: src/escputil/escputil.c:251
msgid "Stylus Color 3000"
-msgstr ""
+msgstr "Stylus Color 3000"
-#: src/escputil/escputil.c:234
+#: src/escputil/escputil.c:252
msgid "Stylus Photo"
-msgstr ""
+msgstr "Stylus Photo"
-#: src/escputil/escputil.c:235
+#: src/escputil/escputil.c:253
msgid "Stylus Photo 700"
-msgstr ""
+msgstr "Stylus Photo 700"
-#: src/escputil/escputil.c:236
+#: src/escputil/escputil.c:254
msgid "Stylus Photo EX"
-msgstr ""
+msgstr "Stylus Photo EX"
-#: src/escputil/escputil.c:237
+#: src/escputil/escputil.c:255
msgid "Stylus Photo 720"
-msgstr ""
+msgstr "Stylus Photo 720"
-#: src/escputil/escputil.c:238
+#: src/escputil/escputil.c:256
msgid "Stylus Photo 750"
-msgstr ""
+msgstr "Stylus Photo 750"
-#: src/escputil/escputil.c:239
+#: src/escputil/escputil.c:257
msgid "Stylus Photo 780"
-msgstr ""
+msgstr "Stylus Photo 780"
-#: src/escputil/escputil.c:240
+#: src/escputil/escputil.c:258
msgid "Stylus Photo 785"
-msgstr ""
+msgstr "Stylus Photo 785"
-#: src/escputil/escputil.c:241
+#: src/escputil/escputil.c:259
msgid "Stylus Photo 790"
-msgstr ""
+msgstr "Stylus Photo 790"
-#: src/escputil/escputil.c:242
+#: src/escputil/escputil.c:260
msgid "Stylus Photo 810"
-msgstr ""
+msgstr "Stylus Photo 810"
-#: src/escputil/escputil.c:243
+#: src/escputil/escputil.c:261
msgid "Stylus Photo 820"
-msgstr ""
+msgstr "Stylus Photo 820"
-#: src/escputil/escputil.c:244
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
msgid "Stylus Photo 870"
-msgstr ""
+msgstr "Stylus Photo 870"
-#: src/escputil/escputil.c:245
+#: src/escputil/escputil.c:264
msgid "Stylus Photo 875"
-msgstr ""
+msgstr "Stylus Photo 875"
-#: src/escputil/escputil.c:246
+#: src/escputil/escputil.c:265
msgid "Stylus Photo 890"
-msgstr ""
+msgstr "Stylus Photo 890"
-#: src/escputil/escputil.c:247
+#: src/escputil/escputil.c:266
msgid "Stylus Photo 895"
-msgstr ""
+msgstr "Stylus Photo 895"
-#: src/escputil/escputil.c:248
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
msgid "Stylus Photo 1200"
-msgstr ""
+msgstr "Stylus Photo 1200"
-#: src/escputil/escputil.c:249
+#: src/escputil/escputil.c:273
msgid "Stylus Photo 1270"
-msgstr ""
+msgstr "Stylus Photo 1270"
-#: src/escputil/escputil.c:250
+#: src/escputil/escputil.c:274
msgid "Stylus Photo 1280"
-msgstr ""
+msgstr "Stylus Photo 1280"
-#: src/escputil/escputil.c:251
+#: src/escputil/escputil.c:275
msgid "Stylus Photo 1290"
-msgstr ""
+msgstr "Stylus Photo 1290"
-#: src/escputil/escputil.c:252
+#: src/escputil/escputil.c:276
msgid "Stylus Photo 2000P"
-msgstr ""
+msgstr "Stylus Photo 2000P"
-#: src/escputil/escputil.c:253
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
msgid "Stylus Pro 5000"
-msgstr ""
+msgstr "Stylus Pro 5000"
-#: src/escputil/escputil.c:254
+#: src/escputil/escputil.c:280
msgid "Stylus Pro 5500"
-msgstr ""
+msgstr "Stylus Pro 5500"
-#: src/escputil/escputil.c:255
+#: src/escputil/escputil.c:281
msgid "Stylus Pro 7000"
-msgstr ""
+msgstr "Stylus Pro 7000"
-#: src/escputil/escputil.c:256
+#: src/escputil/escputil.c:282
msgid "Stylus Pro 7500"
-msgstr ""
+msgstr "Stylus Pro 7500"
-#: src/escputil/escputil.c:257
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
msgid "Stylus Pro 9000"
-msgstr ""
+msgstr "Stylus Pro 9000"
-#: src/escputil/escputil.c:258
+#: src/escputil/escputil.c:285
msgid "Stylus Pro 9500"
-msgstr ""
+msgstr "Stylus Pro 9500"
-#: src/escputil/escputil.c:259
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
msgid "Stylus Pro 10000"
-msgstr ""
+msgstr "Stylus Pro 10000"
-#: src/escputil/escputil.c:260
+#: src/escputil/escputil.c:288
msgid "Stylus Scan 2000"
-msgstr ""
+msgstr "Stylus Scan 2000"
-#: src/escputil/escputil.c:261
+#: src/escputil/escputil.c:289
msgid "Stylus Scan 2500"
-msgstr ""
+msgstr "Stylus Scan 2500"
-#: src/escputil/escputil.c:341 src/escputil/escputil.c:350
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
msgid "You may only specify one printer or raw device."
-msgstr ""
+msgstr "Du kan kun specificere en printer eller en ufiltreret enhed."
-#: src/escputil/escputil.c:359
+#: src/escputil/escputil.c:402
msgid "You may only specify one printer model."
-msgstr ""
+msgstr "Du kan kun specificere en printer model."
-#: src/escputil/escputil.c:379
+#: src/escputil/escputil.c:422
#, c-format
msgid "Unknown option %c\n"
-msgstr ""
+msgstr "Ukendt flag %c\n"
-#: src/escputil/escputil.c:439
+#: src/escputil/escputil.c:482
#, c-format
msgid "Cannot open device %s: %s\n"
-msgstr ""
+msgstr "Kan ikke åbne enhed %s: %s\n"
-#: src/escputil/escputil.c:462
+#: src/escputil/escputil.c:505
#, c-format
msgid "Cannot print to printer %s with %s\n"
-msgstr ""
+msgstr "Kan ikke udskrive til printer %s med %s\n"
-#: src/escputil/escputil.c:475 src/escputil/escputil.c:485
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
msgid "Unable to send command to printer\n"
+msgstr "Ikke i stand til at sende kommando til printer\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
msgstr ""
-#: src/escputil/escputil.c:578
-#, fuzzy
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Kan ikke læse fra %s: %s\n"
+
+#: src/escputil/escputil.c:638
msgid "Cyan"
-msgstr "Cyan:"
+msgstr "Cyan"
-#: src/escputil/escputil.c:579
-#, fuzzy
+#: src/escputil/escputil.c:639
msgid "Magenta"
-msgstr "Magenta:"
+msgstr "Magenta"
-#: src/escputil/escputil.c:580
-#, fuzzy
+#: src/escputil/escputil.c:640
msgid "Yellow"
-msgstr "Gul:"
+msgstr "Gul"
-#: src/escputil/escputil.c:581
+#: src/escputil/escputil.c:641
msgid "Light Cyan"
-msgstr ""
+msgstr "Lys Cyan"
-#: src/escputil/escputil.c:582
-#, fuzzy
+#: src/escputil/escputil.c:642
msgid "Light Magenta"
-msgstr "Magenta:"
+msgstr "Lys Magenta"
-#: src/escputil/escputil.c:596
-msgid "Obtaining ink levels requires using a raw device.\n"
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
msgstr ""
-#: src/escputil/escputil.c:602 src/escputil/escputil.c:677
-#: src/escputil/escputil.c:720
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Hentning af blæk mængder, kræver brug af en ufiltreret enhed.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
#, c-format
msgid "Cannot open %s read/write: %s\n"
-msgstr ""
+msgstr "Kan ikke åbne %s læse/skrive: %s\n"
-#: src/escputil/escputil.c:611 src/escputil/escputil.c:688
-#: src/escputil/escputil.c:729
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
#, c-format
msgid "Cannot write to %s: %s\n"
-msgstr ""
-
-#: src/escputil/escputil.c:618 src/escputil/escputil.c:695
-#: src/escputil/escputil.c:736
-#, c-format
-msgid "Cannot read from %s: %s\n"
-msgstr ""
+msgstr "Kan ikke skrive til %s: %s\n"
-#: src/escputil/escputil.c:628
+#: src/escputil/escputil.c:700
msgid "Cannot parse output from printer\n"
-msgstr ""
+msgstr "Kan ikke fortolke uddata fra printer.\n"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Ink color"
-msgstr ""
+msgstr "Blæk farve"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Percent remaining"
-msgstr ""
+msgstr "Procent tilbage"
-#: src/escputil/escputil.c:671
+#: src/escputil/escputil.c:737
msgid "Printer identification requires using a raw device.\n"
-msgstr ""
+msgstr "Printer identifikation skal bruge en ufiltreret enhed.\n"
-#: src/escputil/escputil.c:714
+#: src/escputil/escputil.c:776
msgid "Printer status requires using a raw device.\n"
-msgstr ""
+msgstr "Printer status skal bruge en ufiltreret enhed.\n"
-#: src/escputil/escputil.c:757
+#: src/escputil/escputil.c:815
msgid "Cleaning heads...\n"
-msgstr ""
+msgstr "Renser hoveder...\n"
-#: src/escputil/escputil.c:766
+#: src/escputil/escputil.c:824
msgid "Running nozzle check, please ensure paper is in the printer.\n"
-msgstr ""
+msgstr "Tester dyser, check om der er papir i printeren.\n"
-#: src/escputil/escputil.c:770
+#: src/escputil/escputil.c:828
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1858,8 +2342,49 @@ msgid ""
"It is essential that you not turn your printer off during this procedure.\n"
"\n"
msgstr ""
+"Læs venligst disse instruktioner omhyggeligt før du fortsætter.\n"
+"\n"
+"Denne funktion lader dig rette print hovedet ind, på din Epson Stylus\n"
+"inkjet printer. Forkert anvendelse af funktionen kan forårsage reduktion\n"
+"i print kvalitet, og sandsynligvis skade din printer. Denne funktion er "
+"ikke\n"
+"blevet testet af Seiko Epson for korrekt funktion, og tilbydes uden nogen\n"
+"former for garanti i det hele taget. Brug af funktionen er derfor på egen\n"
+"regning og risiko.\n"
+"\n"
+"Denne funktion printer %d test mønstre. Hvert mønster ser ens ud.\n"
+"Mønstrene består af en serie af lodrette liniepar der overlapper.\n"
+"Under hvert liniepar er der et nummer mellem %d og %d.\n"
+"\n"
+"Når du undersøger linieparrene, skal du finde det liniepar, der er bedst\n"
+"rettet ind, d.v.s. det par der bedst danner en ret linie.\n"
+"Undersøg parrene meget omhyggeligt for at finde det bedste match. Det\n"
+"anbefales at bruge en lup eller et forstørrelsesglas for at finde det bedste "
+"par.\n"
+"Det kan også anbefales at bruge et kvalitetspapir til testen, så linierne "
+"er\n"
+"præcist formede og ikke 'løber ud' i papiret.\n"
+"Når du har valgt det flotteste par, og har noteret tallet under, lægges "
+"papiret\n"
+"i printeren igen, inden tallet indtastes.\n"
+"\n"
+"Hvert mønster er identisk, men senere mønstre anvender en finere dot\n"
+"for en mere kritisk retten ind. Du skal køre alle gennemløbene for at opnå\n"
+"en perfekt retten ind af din printer. Når du har kørt alle gennemløbene, "
+"bliver\n"
+"mønsteret printet igen. Nu skal det midterste af parrene (#%d ud af de %d)\n"
+"være det bedste.\n"
+"\n"
+"Når dette er sket, har du mulighed for at gemme(s) resultatet i printeren,\n"
+"gentage(r) processen, eller afbryde(q) uden at gemme. Når du afbryder,\n"
+"bliver den hidtidige indstilling ikke genskabt, før der har været slukket "
+"for\n"
+"printeren. Det er derfor vigtigt at der ikke bliver slukket for printeren "
+"mens\n"
+"processen løber.\n"
+"\n"
-#: src/escputil/escputil.c:805
+#: src/escputil/escputil.c:863
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1894,55 +2419,94 @@ msgid ""
"this procedure.\n"
"\n"
msgstr ""
+"Læs venligst disse instruktioner omhyggeligt før du fortsætter.\n"
+"\n"
+"Denne funktion lader dig rette print hovedet ind, på din Epson Stylus\n"
+"inkjet printer. Forkert anvendelse af funktionen kan forårsage reduktion\n"
+"i print kvalitet, og sandsynligvis skade din printer. Denne funktion er "
+"ikke\n"
+"blevet testet af Seiko Epson for korrekt funktion, og tilbydes uden nogen\n"
+"former for garanti i det hele taget. Brug af funktionen er derfor på egen\n"
+"regning og risiko.\n"
+"\n"
+"Denne funktion printer et test mønster der består af en serie af\n"
+"lodrette liniepar der overlapper.\n"
+"Under hvert liniepar er der et nummer mellem %d og %d.\n"
+"\n"
+"Når du undersøger linieparrene, skal du finde det liniepar, der er bedst\n"
+"rettet ind, d.v.s. det par der bedst danner en ret linie.\n"
+"Undersøg parrene meget omhyggeligt for at finde det bedste match. Det\n"
+"anbefales at bruge en lup eller et forstørrelsesglas for at finde det bedste "
+"par.\n"
+"Det kan også anbefales at bruge et kvalitetspapir til testen, så linierne "
+"er\n"
+"præcist formede og ikke 'løber ud' i papiret.\n"
+"Når du har valgt det flotteste par, og har noteret tallet under, lægges "
+"papiret\n"
+"i printeren igen, inden tallet indtastes.\n"
+"\n"
+"Når du har kørt rette ind mønsteret, bliver det printet igen. Nu skal det\n"
+"midterste af parrene (#%d ud af de %d) være det bedste.\n"
+"\n"
+"Når dette er sket, har du mulighed for at gemme(s) resultatet i printeren,\n"
+"gentage(r) processen, eller afbryde(q) uden at gemme. Når du afbryder,\n"
+"bliver den hidtidige indstilling ikke genskabt, før der har været slukket "
+"for\n"
+"printeren. Det er derfor vigtigt at der ikke bliver slukket for printeren "
+"mens\n"
+"processen løber.\n"
+"\n"
-#: src/escputil/escputil.c:849
+#: src/escputil/escputil.c:907
msgid "Unable to send command to the printer, exiting.\n"
-msgstr ""
+msgstr "Ikke i stand til at sende kommando til printeren, afbryder.\n"
-#: src/escputil/escputil.c:867
+#: src/escputil/escputil.c:925
msgid ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
msgstr ""
+"Retten printer hoved ind, skal udføres med en ufiltreret enhed, ellers\n"
+"skal flaget -m sættes til at specificere en printer.\n"
-#: src/escputil/escputil.c:871
+#: src/escputil/escputil.c:929
msgid "Attempting to detect printer model..."
-msgstr ""
+msgstr "Fersøger at detektere printer model..."
-#: src/escputil/escputil.c:876
+#: src/escputil/escputil.c:934
#, c-format
msgid ""
"\n"
"Cannot open %s read/write: %s\n"
msgstr ""
+"\n"
+"Kan ikke åbne %s læse/skrive: %s\n"
-#: src/escputil/escputil.c:884
+#: src/escputil/escputil.c:942
#, c-format
msgid ""
"\n"
"Cannot write to %s: %s\n"
msgstr ""
-
-#: src/escputil/escputil.c:890
-#, c-format
-msgid ""
"\n"
-"Cannot read from %s: %s\n"
-msgstr ""
+"Kan ikke skrive til %s: %s\n"
-#: src/escputil/escputil.c:903
+#: src/escputil/escputil.c:958
msgid ""
"\n"
"Cannot detect printer type.\n"
"Please use -m to specify your printer model.\n"
msgstr ""
+"\n"
+"Kan ikke detektere printer type.\n"
+"Brug -m for at specificere din printer model.\n"
-#: src/escputil/escputil.c:920
+#: src/escputil/escputil.c:975
#, c-format
msgid "Printer model %s is not known.\n"
-msgstr ""
+msgstr "Printer model %s er ukendt.\n"
-#: src/escputil/escputil.c:931
+#: src/escputil/escputil.c:986
msgid ""
"Please inspect the final output very carefully to ensure that your\n"
"printer is in proper alignment. You may now:\n"
@@ -1952,35 +2516,44 @@ msgid ""
"You will then be asked to confirm your choice.\n"
"What do you want to do (s, q, r)?\n"
msgstr ""
-
-#: src/escputil/escputil.c:939 src/escputil/escputil.c:946
-#: src/escputil/escputil.c:959 src/escputil/escputil.c:975
-#: src/escputil/escputil.c:1046 src/escputil/escputil.c:1187
+"Kontroller det endelige udskrift meget omhyggeligt, for at sikre dig,\n"
+"at din printer er korrekt rettet ind. Du kan nu:\n"
+" (s) gemme resultatet i printeren,\n"
+" (q) afbryde uden at gemme noget, eller\n"
+" (r) gentage hele processen forfra.\n"
+"Du vil så blive bedt om at bekræfte dit valg.\n"
+"Hvad vil du gøre nu (s, q, r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
msgid "> "
-msgstr ""
+msgstr "> "
-#: src/escputil/escputil.c:944
+#: src/escputil/escputil.c:999
msgid ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
-msgstr ""
+msgstr "Bekræft ved at taste 'q' igen, at du vil afbryde uden at gemme:\n"
-#: src/escputil/escputil.c:949
+#: src/escputil/escputil.c:1004
msgid ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
msgstr ""
+"OK, din printer er rettet ind, men resultatet er ikke blevet gemt.\n"
+"Hvis du ønsker at gemme, er du nødt til at gentage hele processen.\n"
-#: src/escputil/escputil.c:956
+#: src/escputil/escputil.c:1011
msgid ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
-msgstr ""
+msgstr "Bekræft ved at taste 'r' igen, at du vil gentage processen:\n"
-#: src/escputil/escputil.c:962
+#: src/escputil/escputil.c:1017
msgid "Repeating the alignment process.\n"
-msgstr ""
+msgstr "Gentager processen med rette ind.\n"
-#: src/escputil/escputil.c:968
+#: src/escputil/escputil.c:1023
msgid ""
"This will permanently alter the configuration of your printer.\n"
"WARNING: this procedure has not been approved by Seiko Epson, and\n"
@@ -1988,23 +2561,45 @@ msgid ""
"Please confirm by typing 's' again that you wish to save the settings\n"
"to your printer:\n"
msgstr ""
+"Dette vil blivende ændre konfigurationen af din printer.\n"
+"ADVARSEL denne procedure er ikke blevet godkendt af Seiko Epson,\n"
+"og det kan skade din printer. Fortsæt?\n"
+"Bekræft ved at taste 's' igen, at du vil gemme indstillingerne i din "
+"printer:\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Begynder at gemme indstillingerne..."
-#: src/escputil/escputil.c:978
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "mislykkedes!\n"
+
+#: src/escputil/escputil.c:1040
msgid ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
msgstr ""
+"Dine indstillinger blev ikke gemt rigtigt. Du skal gentage rette ind\n"
+"processen.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "lykkedes!\n"
-#: src/escputil/escputil.c:992
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Dine retten ind indstillinger er blevet gemt i printeren.\n"
+
+#: src/escputil/escputil.c:1050
msgid "Unrecognized command.\n"
-msgstr ""
+msgstr "Kommandoen blev ikke genkendt.\n"
-#: src/escputil/escputil.c:995
+#: src/escputil/escputil.c:1053
msgid "Final command was not confirmed.\n"
-msgstr ""
+msgstr "Afsluttende kommando blev ikke bekræftet.\n"
-#: src/escputil/escputil.c:1000
+#: src/escputil/escputil.c:1058
#, c-format
msgid ""
"This procedure assumes that your printer is an Epson %s.\n"
@@ -2014,59 +2609,72 @@ msgid ""
"Please place a sheet of paper in your printer to begin the head\n"
"alignment procedure.\n"
msgstr ""
+"Denne procedure går ud fra, at din printer er en Epson %s.\n"
+"Hvis dette ikke er din printermodel, tast contrl-C nu, og vælg\n"
+"din aktuelle printer model.\n"
+"\n"
+"Placer et stykke papir i printeren, og begynd rette ind\n"
+"processen af print hovedet.\n"
-#: src/escputil/escputil.c:1025 src/escputil/escputil.c:1054
-#: src/escputil/escputil.c:1090 src/escputil/escputil.c:1166
-#: src/escputil/escputil.c:1177
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
msgid "Press enter to continue > "
-msgstr ""
+msgstr "tast enter for at fortsætte > "
-#: src/escputil/escputil.c:1036
-#, c-format
+#: src/escputil/escputil.c:1090
msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
msgstr ""
+"Undersøg printet, og vælg det bedste liniepar i hvert mønster.\n"
+"Tast et par nummer, '?' for hjælp eller 'r' for at gentage processen.\n"
-#: src/escputil/escputil.c:1041
+#: src/escputil/escputil.c:1096
#, c-format
-msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
-msgstr ""
+msgid "Pass #%d"
+msgstr "Gennemløb #%d"
-#: src/escputil/escputil.c:1051
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
msgid "Please insert a fresh sheet of paper.\n"
-msgstr ""
+msgstr "Indsæt et nyt ark papir.\n"
-#: src/escputil/escputil.c:1070 src/escputil/escputil.c:1206
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
msgid "Number out of range!\n"
-msgstr ""
+msgstr "Tal uden for givet område!\n"
-#: src/escputil/escputil.c:1075 src/escputil/escputil.c:1211
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
msgid "I cannot understand what you typed!\n"
-msgstr ""
+msgstr "Jeg kan ikke forstå hvad du tastede!\n"
-#: src/escputil/escputil.c:1081
+#: src/escputil/escputil.c:1132
#, c-format
msgid "The best pair of lines should be numbered between 1 and %d.\n"
-msgstr ""
+msgstr "Det bedste liniepar skal være mellem numrene 1 og %d.\n"
-#: src/escputil/escputil.c:1088
-#, c-format
-msgid ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
-msgstr ""
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Prøver at sætte retten ind..."
-#: src/escputil/escputil.c:1093
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "lykkedes.\n"
+
+#: src/escputil/escputil.c:1143
#, c-format
-msgid "Aligning phase %d, and starting phase %d.\n"
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
msgstr ""
+"Kontroller at der er rettet ind korrekt. Efter rettet ind mønsteret\n"
+"er printet igen, skal du sikre dig at det bedste mønster for hver linie\n"
+"er mønster %d. Hvis dette ikke er tilfældet, skal du gentage processen\n"
+"for at opnå den bedste print kvalitet.\n"
-#: src/escputil/escputil.c:1107
+#: src/escputil/escputil.c:1158
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2099,19 +2707,56 @@ msgid ""
"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
"damage your printer!\n"
msgstr ""
+"Læs venligst disse instruktioner omhyggeligt før du fortsætter.\n"
+"\n"
+"Denne funktion lader dig rette farve print hovedet ind, på din Epson Stylus\n"
+"inkjet printer. Forkert anvendelse af funktionen kan forårsage reduktion\n"
+"i print kvalitet, og sandsynligvis skade din printer. Denne funktion er "
+"ikke\n"
+"blevet testet af Seiko Epson for korrekt funktion, og tilbydes uden nogen\n"
+"former for garanti i det hele taget. Brug af funktionen er derfor for egen\n"
+"regning og risiko.\n"
+"\n"
+"Denne funktion printer %d overprintninger af test mønstre på et stykke "
+"papir.\n"
+"Det vil sige, der printes et mønster og papiret føres ud af printeren. "
+"Derefter\n"
+"indsættes papiret igen, og et nyt mønster bliver printet. Hvert mønster "
+"består\n"
+"af sæt af valgmuligheder, nummereret mellem %d og %d.\n"
+"\n"
+"Når du undersøger mønstrene, skal du finde det område der har den glatteste\n"
+"overflade (mindst \"korn\"). Undersøg områderne meget omhyggeligt for at\n"
+"finde det bedste. Det anbefales at bruge fotokvalitets papir til testen. "
+"Hvis du\n"
+"ikke finder et glat område, skal du gentage testen.\n"
+"\n"
+"Når du har gransket valgmulighederne og valgt et område, har du følgende\n"
+"muligheder: (s) gemmer resultatet i printeren, (r) gentager processen, "
+"eller\n"
+"(q) afbryder uden at gemme. Afbrydning vil ikke genskabe de tidligere "
+"indstillinger\n"
+"men sluk/tænd for printeren gør. Hvis du afbryder, skal du gentage "
+"processen,\n"
+"hvis du senere ønsker at gemme resultatet.\n"
+"Det er vigtigt at printeren ikke bliver slukket under processen.\n"
+"\n"
+"FORSIGTIG. DENNE FUNKTION ER IKKE TESTET! Det er ikke sikkert\n"
+"at det virker, og kan endda ødelægge din printer!\n"
-#: src/escputil/escputil.c:1157
+#: src/escputil/escputil.c:1208
#, c-format
msgid "Printer %s does not require color head alignment.\n"
-msgstr ""
+msgstr "Printer %s behøver ikke farve hoved retten ind.\n"
-#: src/escputil/escputil.c:1175
+#: src/escputil/escputil.c:1226
msgid ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
msgstr ""
+"Genindsæt det samme stykke papir i printeren, når det er printet færdig.\n"
-#: src/escputil/escputil.c:1181
+#: src/escputil/escputil.c:1232
msgid ""
"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
"This pattern will appear to have the least ``grain''.\n"
@@ -2119,19 +2764,24 @@ msgid ""
"best pattern, and repeat the procedure.\n"
"Type a pattern number, or '?' for help.\n"
msgstr ""
+"Kontroller retten ind arket, og afgør hvilket mønster der er det glatteste.\n"
+"Dette mønster har det fineste \"korn\".\n"
+"Hvis du ikke kan finde et glat mønster, vælg nummeret for det bedste\n"
+"mønster, og gentag processen.\n"
+"Tast et mønster nummer, eller '?' for hjælp.\n"
-#: src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1268
#, c-format
msgid "The best pattern should be numbered between 1 and %d.\n"
-msgstr ""
+msgstr "Det bedste mønster nummer skal være mellem 1 og %d.\n"
-#: src/escputil/escputil.c:1261
+#: src/escputil/escputil.c:1312
msgid "Error in input\n"
-msgstr ""
+msgstr "Fejl i inddata\n"
#: src/gimp/gimp_color_window.c:193
msgid "Print Color Adjust"
-msgstr ""
+msgstr "Print farve justering"
#: src/gimp/gimp_color_window.c:197
msgid "Set Defaults"
@@ -2143,17 +2793,19 @@ msgstr "Luk"
#: src/gimp/gimp_color_window.c:230
msgid "Image preview"
-msgstr ""
+msgstr "Billede forhåndsvisning"
#: src/gimp/gimp_color_window.c:240
msgid "Brightness:"
-msgstr "Lysstyrke:"
+msgstr "Lyshed:"
#: src/gimp/gimp_color_window.c:248
msgid ""
"Set the brightness of the print.\n"
"0 is solid black, 2 is solid white"
msgstr ""
+"Angiv lyshed for printet,\n"
+"0 er ren sort, 2 er ren hvid"
#: src/gimp/gimp_color_window.c:260
msgid "Contrast:"
@@ -2169,7 +2821,7 @@ msgstr "Cyan:"
#: src/gimp/gimp_color_window.c:287
msgid "Adjust the cyan balance of the print"
-msgstr ""
+msgstr "Juster printets cyan balance"
#: src/gimp/gimp_color_window.c:298
msgid "Magenta:"
@@ -2177,7 +2829,7 @@ msgstr "Magenta:"
#: src/gimp/gimp_color_window.c:306
msgid "Adjust the magenta balance of the print"
-msgstr ""
+msgstr "Juster printets magenta balance"
#: src/gimp/gimp_color_window.c:317
msgid "Yellow:"
@@ -2185,7 +2837,7 @@ msgstr "Gul:"
#: src/gimp/gimp_color_window.c:325
msgid "Adjust the yellow balance of the print"
-msgstr ""
+msgstr "Juster printets gul balance"
#: src/gimp/gimp_color_window.c:336
msgid "Saturation:"
@@ -2196,6 +2848,9 @@ msgid ""
"Adjust the saturation (color balance) of the print\n"
"Use zero saturation to produce grayscale output using color and black inks"
msgstr ""
+"Juster printets mætning (farve balance)\n"
+"Brug nul mætning for at lave gråskala billede, med brug af farve og sort "
+"blæk."
#: src/gimp/gimp_color_window.c:357
msgid "Density:"
@@ -2207,6 +2862,9 @@ msgid ""
"ink bleeds through the paper or smears; increase the density if black "
"regions are not solid."
msgstr ""
+"Juster printets tæthed (mængde af blæk). Formindsk tætheden hvis blækket "
+"trækker gennem papiret eller flyder ud, øg tætheden hvis sorte områder ikke "
+"er rent sorte."
#: src/gimp/gimp_color_window.c:379
msgid "Gamma:"
@@ -2218,10 +2876,14 @@ msgid ""
"brighter print, while smaller values will produce a generally darker print. "
"Black and white will remain the same, unlike with the brightness adjustment."
msgstr ""
+"Juster printets gamma. Større værdier giver et generelt lysere print, mens "
+"mindre værdier giver et generelt mørkere print. Sort og hvid forbliver "
+"uændrede, i modsætning til justering af lyshed."
#: src/gimp/gimp_color_window.c:403
+#, fuzzy
msgid "Dither Algorithm:"
-msgstr "Dither-størrelse:"
+msgstr "Dither Algorithm:"
#: src/gimp/gimp_color_window.c:411
msgid ""
@@ -2232,6 +2894,12 @@ msgid ""
"art.\n"
"Hybrid Floyd-Steinberg generally produces inferior output."
msgstr ""
+"Vælg den dither algoritm der skal bruges.\n"
+"Adaptiv Hybrig giver normalt den bedste all-round kvalitet.\n"
+"Ordnet er hurtigere, og giver en næsten lige så god kvalitet i fotografier.\n"
+"Hurtig og Meget Hurtig er betydeligt hurtigere, og giver gode resultater for "
+"tekst og linie kunst.\n"
+"Hybrid Floyd-Steinberg giver generelt dårligere resultater."
#.
#. * Create the main dialog
@@ -2250,12 +2918,16 @@ msgid ""
"Print and\n"
"Save Settings"
msgstr ""
+"Udskriv og\n"
+"gem indstillinger"
#: src/gimp/gimp_main_window.c:340
msgid ""
"Save\n"
"Settings"
msgstr ""
+"Gem\n"
+"indstillinger"
#: src/gimp/gimp_main_window.c:342
msgid "Print"
@@ -2283,6 +2955,16 @@ msgid ""
"If you click another button while dragging the mouse, the image will return "
"to its original position."
msgstr ""
+"Placer billedet på siden.\n"
+"Klik og træk med venstre musetaste for at placere billedet.\n"
+"Klik og træk med højre musetaste for at flytte billedet med større\n"
+"præcision, hver enhed af bevægelse flytter billedet et punkt (1/72\")\n"
+"Klik og træk med midterste musetaste for at flytte billedet i enheder\n"
+"af billedets størrelse.\n"
+"Tryk på skift tasten når du klikker og trækker bevirker, at billedet kun\n"
+"flyttes i enten lodret eller vandret retning.\n"
+"Hvis du trykker på en anden tast mens du trækker med muse, vil billedet\n"
+"returnere til oprindelig position."
#: src/gimp/gimp_main_window.c:434
msgid "Position"
@@ -2302,17 +2984,19 @@ msgstr "Landskab"
#: src/gimp/gimp_main_window.c:458
msgid "Upside down"
-msgstr ""
+msgstr "Vend op/ned"
#: src/gimp/gimp_main_window.c:460
msgid "Seascape"
-msgstr "Panorama"
+msgstr "'Seascape'"
#: src/gimp/gimp_main_window.c:464
msgid ""
"Select the orientation: portrait, landscape, upside down, or seascape "
"(upside down landscape)"
msgstr ""
+"Vælg papirretning: portræt, landskab, vendt op/ned eller 'seascape' (vendt "
+"op/ned landskab)"
#: src/gimp/gimp_main_window.c:469
msgid "Orientation:"
@@ -2324,7 +3008,7 @@ msgstr "Venstre:"
#: src/gimp/gimp_main_window.c:487
msgid "Distance from the left of the paper to the image"
-msgstr ""
+msgstr "Afstand fra venstre side af arket til billedet"
#: src/gimp/gimp_main_window.c:496
msgid "Top:"
@@ -2332,7 +3016,7 @@ msgstr "Øverst:"
#: src/gimp/gimp_main_window.c:500
msgid "Distance from the top of the paper to the image"
-msgstr ""
+msgstr "Afstand fra toppen af arket til billedet"
#: src/gimp/gimp_main_window.c:509
msgid "Right:"
@@ -2340,7 +3024,7 @@ msgstr "Højre:"
#: src/gimp/gimp_main_window.c:513
msgid "Distance from the left of the paper to the right of the image"
-msgstr ""
+msgstr "Afstand fra venstre side af arket til højre kant af billedet"
#: src/gimp/gimp_main_window.c:523
msgid "Right Border:"
@@ -2348,7 +3032,7 @@ msgstr "Højre kant:"
#: src/gimp/gimp_main_window.c:527
msgid "Distance from the right of the paper to the image"
-msgstr ""
+msgstr "Afstand fra højre side af arket til billedet"
#: src/gimp/gimp_main_window.c:537
msgid "Bottom:"
@@ -2356,7 +3040,7 @@ msgstr "Nederst:"
#: src/gimp/gimp_main_window.c:541
msgid "Distance from the top of the paper to the bottom of the image"
-msgstr ""
+msgstr "Afstand fra toppen af arket til bunden af billedet"
#: src/gimp/gimp_main_window.c:551
msgid "Bottom Border:"
@@ -2364,11 +3048,11 @@ msgstr "Nedre kant:"
#: src/gimp/gimp_main_window.c:555
msgid "Distance from the bottom of the paper to the image"
-msgstr ""
+msgstr "Afstand fra bunden af arket til billedet"
#: src/gimp/gimp_main_window.c:572
msgid "Center:"
-msgstr ""
+msgstr "Centrer:"
#: src/gimp/gimp_main_window.c:576
msgid "Vertically"
@@ -2376,7 +3060,7 @@ msgstr "Lodret"
#: src/gimp/gimp_main_window.c:581
msgid "Center the image vertically on the paper"
-msgstr ""
+msgstr "Centrer billedet i lodret på papiret"
#: src/gimp/gimp_main_window.c:587
msgid "Both"
@@ -2384,7 +3068,7 @@ msgstr "Begge"
#: src/gimp/gimp_main_window.c:592
msgid "Center the image on the paper"
-msgstr ""
+msgstr "Centrer billedet på papiret"
#: src/gimp/gimp_main_window.c:599
msgid "Horizontally"
@@ -2392,11 +3076,11 @@ msgstr "Vandret"
#: src/gimp/gimp_main_window.c:604
msgid "Center the image horizontally on the paper"
-msgstr ""
+msgstr "Centrer billedet i vandret på papiret"
#: src/gimp/gimp_main_window.c:620
msgid "Setup Printer"
-msgstr "Indstil skriver"
+msgstr "Indstil printer"
#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
#: src/gimp/gimp_main_window.c:830
@@ -2408,11 +3092,11 @@ msgstr "O.k."
#.
#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
msgid "Printer Model:"
-msgstr ""
+msgstr "Printer Model:"
#: src/gimp/gimp_main_window.c:660
msgid "Select your printer model"
-msgstr ""
+msgstr "Vælg din printer model"
#.
#. * PPD file.
@@ -2423,7 +3107,7 @@ msgstr "PPD-fil:"
#: src/gimp/gimp_main_window.c:714
msgid "Enter the correct PPD filename for your printer"
-msgstr ""
+msgstr "Angiv det korrekte PPD-filnavn for din printer"
#: src/gimp/gimp_main_window.c:717
msgid "Browse"
@@ -2431,7 +3115,7 @@ msgstr "Bladr igennem"
#: src/gimp/gimp_main_window.c:723
msgid "Choose the correct PPD filename for your printer"
-msgstr ""
+msgstr "Vælg det korrekte PPD-filnavn for din printer"
#.
#. * Print command.
@@ -2446,6 +3130,9 @@ msgid ""
"remove the `-l' or `-oraw' from the command string, or printing will "
"probably fail!"
msgstr ""
+"Angiv den korrekte kommando til printning på din printer. Noter: Du må ikke "
+"fjerne '-l eller '-oraw' fra kommando strengen, da printning i givet fald "
+"sikkert vil fejle!"
#.
#. * Output file selection dialog.
@@ -2459,27 +3146,27 @@ msgstr "Udskriv til fil?"
#.
#: src/gimp/gimp_main_window.c:770
msgid "PPD File?"
-msgstr "PPD/Fil?"
+msgstr "PPD fil?"
#: src/gimp/gimp_main_window.c:789
msgid "Define New Printer"
-msgstr ""
+msgstr "Definer Ny printer"
#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
msgid "Printer Name:"
-msgstr ""
+msgstr "Printer navn:"
#: src/gimp/gimp_main_window.c:814
msgid "Enter the name you wish to give this logical printer"
-msgstr ""
+msgstr "Angiv det navn du ønsker at kende denne logiske printer under"
#: src/gimp/gimp_main_window.c:826
msgid "About Gimp-Print "
-msgstr ""
+msgstr "Om Gimp Print"
#: src/gimp/gimp_main_window.c:836
msgid "Gimp-Print Version "
-msgstr ""
+msgstr "Gimp Print version"
#: src/gimp/gimp_main_window.c:836
msgid ""
@@ -2504,54 +3191,79 @@ msgid ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"og resten af Gimp Print udviklings teamet.\n"
+"\n"
+"Besøg vores web site på: http://gimp-print.sourceforge.net.\n"
+"\n"
+"Dette program er fri software, du må redistribuere det og/eller ændre\n"
+"det, under betingelserne i GNU General Public License som publiceret af\n"
+"the Free Software Foundation; enten version 2 af licensen, eller\n"
+"(efter eget ønske) enhver senere version.\n"
+"Dette program er distribueret i det håb at det kan være nyttigt, men\n"
+"UDEN ENHVER FORM FOR GARANTI, endda uden den underforståede\n"
+"garanti for SALGBARHED, eller EGNETHED FOR ET BESTEMT FORMÅL\n"
+"Se GNU General Public License for yderligere detaljer.\n"
+"\n"
+"Du skulle have modtaget en kopi af GNU General Public License sammen\n"
+"med dette program. Hvis ikke, skriv da til Free Software Foundation, Inc .,\n"
+"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
#: src/gimp/gimp_main_window.c:884
msgid "Printer Settings"
-msgstr "Indstillinger for parametre"
+msgstr "Printer indstillinger"
#: src/gimp/gimp_main_window.c:897
msgid ""
"Select the name of the printer (not the type, or model, of printer) that you "
"wish to print to"
msgstr ""
+"Vælg navnet på den printer (hverken type eller model af printer) som du "
+"ønsker at printe til"
#.
#. * Setup printer button
#.
#: src/gimp/gimp_main_window.c:917
msgid "Setup Printer..."
-msgstr ""
+msgstr "Opsætning printer..."
#: src/gimp/gimp_main_window.c:919
msgid ""
"Choose the printer model, PPD file, and command that is used to print to "
"this printer"
msgstr ""
+"Vælg den printermodel,PPD fil, og kommando der skal bruges for at printe til "
+"denne printer"
#.
#. * New printer button
#.
#: src/gimp/gimp_main_window.c:934
msgid "New Printer..."
-msgstr ""
+msgstr "Ny printer..."
#: src/gimp/gimp_main_window.c:936
msgid ""
"Define a new logical printer. This can be used to name a collection of "
"settings that you wish to remember for future use."
msgstr ""
+"Definer en ny logisk printer. Dette kan bruges til at navngive en samling af "
+"indstillinger, som du ønsker at huske til senere brug."
#: src/gimp/gimp_main_window.c:957
msgid "Size of paper that you wish to print to"
-msgstr ""
+msgstr "Papir størrelse du ønsker at printe på"
#: src/gimp/gimp_main_window.c:960
msgid "Media Size:"
-msgstr ""
+msgstr "Media størrelse:"
#: src/gimp/gimp_main_window.c:969
msgid "Dimensions:"
-msgstr "Størrelse:"
+msgstr "Dimensioner:"
#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
msgid "Width:"
@@ -2559,7 +3271,7 @@ msgstr "Bredde:"
#: src/gimp/gimp_main_window.c:983
msgid "Width of the paper that you wish to print to"
-msgstr ""
+msgstr "Bredden af det papir du vil printe på"
#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
msgid "Height:"
@@ -2567,35 +3279,35 @@ msgstr "Højde:"
#: src/gimp/gimp_main_window.c:1000
msgid "Height of the paper that you wish to print to"
-msgstr ""
+msgstr "Højden på det papir du vil printe på"
#: src/gimp/gimp_main_window.c:1016
msgid "Type of media you're printing to"
-msgstr ""
+msgstr "Medie type du vil printe på"
#: src/gimp/gimp_main_window.c:1019
msgid "Media Type:"
-msgstr ""
+msgstr "Midie type:"
#: src/gimp/gimp_main_window.c:1032
msgid "Source (input slot) of media you're printing to"
-msgstr ""
+msgstr "Kilde (papir bakke) til det medie du vil printe på"
#: src/gimp/gimp_main_window.c:1035
msgid "Media Source:"
-msgstr ""
+msgstr "Medie kilde:"
#: src/gimp/gimp_main_window.c:1048
msgid "Type of ink in the printer"
-msgstr ""
+msgstr "Blæk type i printeren"
#: src/gimp/gimp_main_window.c:1051
msgid "Ink Type:"
-msgstr "Type:"
+msgstr "Blæk type:"
#: src/gimp/gimp_main_window.c:1064
msgid "Resolution and quality of the print"
-msgstr ""
+msgstr "Opløsning og kvalitet af printet"
#: src/gimp/gimp_main_window.c:1067
msgid "Resolution:"
@@ -2611,13 +3323,15 @@ msgstr "Skalering:"
#: src/gimp/gimp_main_window.c:1109
msgid "Set the scale (size) of the image"
-msgstr ""
+msgstr "Angiv skalering (størrelse) af billedet"
#: src/gimp/gimp_main_window.c:1142
msgid ""
"Select whether scaling is measured as percent of available page size or "
"number of output dots per inch"
msgstr ""
+"Vælg om skalering måles i procent af valgt papirstørrelse, eller antal af "
+"udskrifts dots pr. tomme"
#: src/gimp/gimp_main_window.c:1147
msgid "Percent"
@@ -2625,7 +3339,7 @@ msgstr "Procent"
#: src/gimp/gimp_main_window.c:1154
msgid "Scale the print to the size of the page"
-msgstr ""
+msgstr "Skaler printet til papirstørrelsen"
#: src/gimp/gimp_main_window.c:1160
msgid "PPI"
@@ -2633,15 +3347,15 @@ msgstr "PPI"
#: src/gimp/gimp_main_window.c:1166
msgid "Scale the print to the number of dots per inch"
-msgstr ""
+msgstr "Skaler printet til antal dots pr. tomme"
#: src/gimp/gimp_main_window.c:1192
msgid "Set the width of the print"
-msgstr ""
+msgstr "Angiv bredden af printet"
#: src/gimp/gimp_main_window.c:1205
msgid "Set the height of the print"
-msgstr ""
+msgstr "Angiv højden på printet"
#: src/gimp/gimp_main_window.c:1225
msgid "Units:"
@@ -2649,7 +3363,7 @@ msgstr "Enheder:"
#: src/gimp/gimp_main_window.c:1230
msgid "Select the base unit of measurement for printing"
-msgstr ""
+msgstr "Vælg en baseenhed til målangivelse ved printning"
#: src/gimp/gimp_main_window.c:1233
msgid "Inch"
@@ -2657,7 +3371,7 @@ msgstr "Tommer"
#: src/gimp/gimp_main_window.c:1240
msgid "Set the base unit of measurement to inches"
-msgstr ""
+msgstr "Sætter baseenheden til målangivelse til tommer"
#: src/gimp/gimp_main_window.c:1246
msgid "cm"
@@ -2665,7 +3379,7 @@ msgstr "cm"
#: src/gimp/gimp_main_window.c:1252
msgid "Set the base unit of measurement to centimetres"
-msgstr ""
+msgstr "Sætter baseenheden til målangivelse til centimeter"
#.
#. * The "image size" button
@@ -2675,44 +3389,48 @@ msgid ""
"Use Original\n"
"Image Size"
msgstr ""
+"Brug original\n"
+"billedstørrelse"
#: src/gimp/gimp_main_window.c:1268
msgid "Set the print size to the size of the image"
-msgstr ""
+msgstr "Sætter printstørrelse til størrelsen på billedet"
#: src/gimp/gimp_main_window.c:1292
msgid "Image / Output Settings"
-msgstr ""
+msgstr "Billede/udskrifts indstillinger"
#: src/gimp/gimp_main_window.c:1305
msgid "Image Type:"
-msgstr "Billedtype:"
+msgstr "Billed type:"
#: src/gimp/gimp_main_window.c:1310
msgid "Optimize the output for the type of image being printed"
-msgstr ""
+msgstr "Optimer udskriften efter type af billede der skal printes."
#: src/gimp/gimp_main_window.c:1321
msgid "Fastest and brightest color for text and line art"
-msgstr ""
+msgstr "Hurtigst og klareste farver for tekst og linie kunst."
#: src/gimp/gimp_main_window.c:1335
msgid "Best for images dominated by regions of solid color"
-msgstr ""
+msgstr "Bedst for billeder der er domineret af områder med rene farver."
#: src/gimp/gimp_main_window.c:1351
msgid ""
"Slowest, but most accurate and smoothest color for continuous tone images "
"and photographs"
msgstr ""
+"Langsomst, men mest præcise og glatteste farver for fortløbende tone "
+"billeder og fotografier"
#: src/gimp/gimp_main_window.c:1377
msgid "Output Type:"
-msgstr "Udskriftstype:"
+msgstr "Udskrifts type:"
#: src/gimp/gimp_main_window.c:1382
msgid "Select the desired output type"
-msgstr ""
+msgstr "Vælg den ønskede udskrifts type."
#: src/gimp/gimp_main_window.c:1385
msgid "Color"
@@ -2720,35 +3438,36 @@ msgstr "Farver"
#: src/gimp/gimp_main_window.c:1391
msgid "Color output"
-msgstr ""
+msgstr "Farve udskrift"
#: src/gimp/gimp_main_window.c:1396
msgid "Grayscale"
-msgstr "Gråtoner"
+msgstr "Gråskala"
#: src/gimp/gimp_main_window.c:1403
msgid "Print in shades of gray using black ink"
-msgstr ""
+msgstr "Print i gråtoner med brug af sort blæk."
#: src/gimp/gimp_main_window.c:1410
msgid "Black and White"
-msgstr ""
+msgstr "Sort og hvid"
#: src/gimp/gimp_main_window.c:1417
msgid "Print in black and white (no color, and no shades of gray)"
-msgstr ""
+msgstr "Print i sort og hvid (ingen farver, og ingen gråtoner)"
#.
#. * Color adjust button
#.
#: src/gimp/gimp_main_window.c:1428
msgid "Adjust Output..."
-msgstr ""
+msgstr "Juster udskrift..."
#: src/gimp/gimp_main_window.c:1435
+#, fuzzy
msgid ""
"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
-msgstr ""
+msgstr "Juster farve ballance, lyshed, kontrast, mætning og dither algoritm."
#: src/gimp/print-image-gimp.c:318
msgid "Printing..."
@@ -2756,9 +3475,94 @@ msgstr "Skriver ud..."
#: src/gimp/print.c:166
msgid "<Image>/File/Print..."
-msgstr "<Image>/Filter/Udskriv..."
+msgstr "<Image>/Fil/Udskriv..."
-#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:833
-#: src/gimp/print.c:1184
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
msgid "File"
msgstr "Fil"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Fejlagtig farveområde: bps %d kanaler %d område %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+#, fuzzy
+msgid "No row buffer\n"
+msgstr "Ingen række buffer\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parameter %s uden for område (værdi %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Kan ikke fortolke parameter %s=%s (forvent et nummer)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parameter %s uden for område (værdi %d, min %d, max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Printer skal specificeres med -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Printer %s er ikke en kendt model\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Ukendt flag %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f af %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header fejlede %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init fejlede %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Ikke i stand til at åbne fil-beskriver: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Kan ikke åbne %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Ukendt printer %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Forkerte parametre, kan ikke fortsætte!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, fuzzy, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Hentning af næste række fejlede ved %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Kan ikke læse fra %s: %s\n"
diff --git a/po/de.gmo b/po/de.gmo
new file mode 100644
index 0000000..420f780
--- /dev/null
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..23a2814
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,3600 @@
+# German translation for gimp-print.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Roland Stigge <stigge@antcom.de>, 2003
+# Olaf Klemke <olke@users.sourceforge.net>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 4.2.7-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2004-04-18 10:15+0200\n"
+"Last-Translator: Roland Stigge <stigge@antcom.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.6\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: Option `%s' ist nicht definiert\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: Option `--%s' erlaubt keine Argumente\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: Option `%c%s' erlaubt keine Argumente\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: Option `%s' benötigt ein Argument\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: unbekannte Option `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: unbekannte Option `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nicht erlaubte Option -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ungültige Option -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: Option benötigt ein Argument -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: Option `-W %s' ist nicht definiert\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: Option `-W %s' erlaubt keine Argumente\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Normalpapier"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Folie"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr "Rückseitenfolie"
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Textilblatt"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Briefumschlag"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Spezialpapier"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "T-Shirt-Transferpapier"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "Hochglanzfilm"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Glänzendes Fotopapier"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Glänzende Fotokarten"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Fotopapier Pro"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Anderes"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Auto-Einzug"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Handeinzug mit Pause"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Handeinzug ohne Pause"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Schwarz"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY Farbe"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK Farbe"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Foto CcMmY Farbe"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Foto CcMmYK Farbe"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Adaptive Hybrid"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Sortiert"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Schnell"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Sehr schnell"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Hybrid Floyd-Steinberg"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Dreifarbmischung"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Vier Farben Standard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Sechs Farben Foto"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Foto aus fünf Farben gemischt"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Aus sieben Farben gemischt"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Aus sechs Farben gemischt"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Sieben Farben Foto"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Zweistufig Grau"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Vierton"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "Normalpapier Schnelleinzug"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Postkarte"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Glanzfilm"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Umschlag"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr "Durchlichtfolie"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Mattes Papier"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Tintenstrahlpapier"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Foto-Tintenstrahlpapier"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Fotopapier"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Glattes Fotopapier Premium"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "Glänzendes Fotopapier Premium"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Glänzendes Papier (Fotoqualität)"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Ilford schweres Papier"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife Papier"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 x 90 DPI Schnellentwurfsqualität"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 x 120 DPI Entwurfsqualität"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI Entwurfsqualität"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 x 240 DPI Entwurfsqualität"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 x 180 DPI Entwurfsqualität"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI Gleichlaufend"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr "360 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 DPI Gleichlaufend"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr "720 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Gleichlaufend"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI Hohe Qualität"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI Hohe Qualität, gleichlaufend"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Höchste Qualität"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 DPI Gleichlaufend"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI Höchste Qualität"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 DPI Gleichlaufend"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI Höchste Qualität"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI voll überlappt"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI voll überlappt, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 x 360 DPI FOL Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 x 360 DPI FOL2 Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 x 360 DPI MW2 Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI voll überlappt"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI voll überlappt, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI Vierfachdruck"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI Vierfachdruck, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 DPI Vierfachdruck"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 DPI Vierfachdruck, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 DPI FOL Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI Vierfachdruck"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 DPI Vierfachdruck, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI FOL Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI Vierfachdruck"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 DPI Vierfachdruck, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI, überlappend"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 DPI, überlappend, gleichlaufend"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI FOL Gleichlaufend"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI Vierfachdruck"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 DPI Vierfachdruck, gleichlaufend"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Walzeneinzug"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr "Walzeneinzug (mit Zuschnitt)"
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr "Walzeneinzug (ohne Zuschnitt)"
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr "Schneideablage 1"
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr "Schneideablage 2"
+
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr "autom. Auswahl der Schneideablage"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "manuelle Auswahl der Schneideablage"
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI × 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI hohe Qualität"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI Gleichlaufend"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI hohe Qualität"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI höchste Qualität"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI Gleichlaufend"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI × 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI × 1200 DPI hohe Qualität"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI × 1200 DPI höchste Qualität"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "Probeausdruck"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Einfach"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr "Fett"
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Premium"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Hochglanzfoto"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Folie"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Schnelltrocknendes Foto"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Schnelltrocknende Folie"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuell"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Schacht 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Schacht 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Schacht 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Schacht 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "optionale Papierzuführung"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "eingebaute Papierzuführung"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Schacht"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "sonstige Zuführung"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "autom. Auswahl"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150×150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300×300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600×300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600×600 DPI monochrom"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600×600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200×600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400×600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Farb + Schwarz Patronen"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Farb + Foto Patronen"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3×5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4×6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Epson 4×6 Photopapier"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5×7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5×8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6×8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8×10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12×18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13×19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr "Technisch C 17x22"
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8×12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11×14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16×20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16×24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20×24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20×30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22×30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24×30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24×36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30×40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr "Super A0"
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+msgid "Super B0 JIS"
+msgstr "Super B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr "ArchA quer"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr "ArchB quer"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr "ArchC quer"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr "ArchD quer"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr "ArchE quer"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "Amerikan. Narrenmütze"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "Europäische Narrenmütze"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Crown Quarto, groß"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Crown Octavo, groß"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Kleines Taschenbuch"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Kleines Pinguin-Taschenbuch"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Großes Pinguin-Taschenbuch"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki-Karte"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku-Karte"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Langer japan. Umschlag #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Langer japan. Umschlag #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Japan. Kaku-Umschlag #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Einladung"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Briefumschlag (Monarch)"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Kundenspezifisch"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "89 mm Endlospapier"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "4 Inch Endlospapier"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "5 Inch Endlospapier"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "210 mm Endlospapier"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "13 Zoll Endlospapier"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "22 Zoll Endlospapier"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "24 Zoll Endlospapier"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "36 Zoll Endlospapier"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "44 Zoll Endlospapier"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s ist kein erlaubter Parameter von %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s Bereichsüberschreitung (Wert %f, min %f, max %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s Bereichsüberschreitung (Wert %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Drucker unterstützt keine Farbausgabe\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Die Bildgröße ist ungültig\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Der obere Rand darf nicht kleiner Null sein\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Der linke Rand darf nicht kleiner Null sein\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s ist kein gültiger Rasteralgorithmus\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "German-DE"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin1"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Medientyp"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Medienquelle"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Auflösung"
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-Druck"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Bildtyp"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Strichzeichnung"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "einfache Farben"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Foto"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Raster Algorithmus"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Tintentyp"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Escputil Version "
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+", Copyright © 2000-2001 Robert Krawitz\n"
+"Escputil erhalten Sie OHNE JEGLICHE GARANTIE; für Einzelheiten geben Sie "
+"'escputil -l' ein\n"
+"Dies ist freie Software, und Sie dürfen sie gern, unter den genannten "
+"Bedingungen, \n"
+"weitergeben; für Einzelheiten geben Sie 'escputil -l' ein.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Dieses Programm ist freie Software. Sie können es unter\n"
+"den Bedingungen der GNU General Public License, wie von der\n"
+"Free Software Foundation herausgegeben, weitergeben und/oder\n"
+"modifizieren, entweder unter Version 2 der Lizenz oder (wenn\n"
+"Sie es wünschen) jeder späteren Version.\n"
+"\n"
+"Die Veröffentlichung dieses Programms erfolgt in der\n"
+"Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE JEDE\n"
+"GEWÄHRLEISTUNG - sogar ohne die implizite Gewährleistung\n"
+"der MARKTREIFE oder der EIGNUNG FÃœR EINEN BESTIMMTEN ZWECK\n"
+"Details finden Sie in der GNU General Public License.\n"
+"\n"
+"Sie sollten eine Kopie der GNU General Public License zusammen\n"
+"mit diesem Programm erhalten haben. Falls nicht, schreiben Sie\n"
+"an die Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"Aufruf: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P Drucker| -r Gerät] [-u] [-q] [-m Modell]\n"
+"Wartung für EPSON Stylus ® Drucker durchführen\n"
+"Beispiele: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Kommandos:\n"
+" -c|--clean-head Druckkopf reinigen.\n"
+" -n|--nozzle-check Düsen-Testdruck.\n"
+" Schmutzige oder verklebte Düsen sind\n"
+" als Aussetzer erkennbar. Wenn diese auftreten, \n"
+" sollten Sie den Druckkopf reinigen.\n"
+" -a|--align-head Druckkopf ausrichten. VORSICHT: Die unnötige\n"
+" Benutzung dieser Option kann eine schlechte Druck-\n"
+" qualität oder Druckerschäden verursachen.\n"
+" -o|--align-color Farb-Kopf ausrichten (nur Stylus Color 480 und\n"
+" 580). VORSICHT: Die unnötige Benutzung dieser\n"
+" Option kann eine schlechte Druckqualität oder\n"
+" Druckerschäden verursachen.\n"
+" -s|--status Druckerstatus ermitteln\n"
+" -i|--ink-level Tintenstand abfragen. Benötigt Schreib- und\n"
+" Leserechte auf die Drucker-Schnittstelle.\n"
+" -d|--identify Hersteller- und Modellinformationen abfragen.\n"
+" Benötigt Schreib- und Leserechte auf die\n"
+" Drucker-Schnittstelle.\n"
+" -l|--license Lizenz- und Garantiebedingungen dieses Programmes\n"
+" anzeigen\n"
+" -M|--list-models Unterstützte Drucker auflisten\n"
+" -h|--help Diese Hilfeinformation anzeigen\n"
+" Optionen:\n"
+" -P|--printer-name Namen der Druckerwarteschlange anzeigen.\n"
+" Standard: Systemdrucker lp\n"
+" -r|--raw-device Druckerschnittstelle angeben.\n"
+" Vorsicht: Geht nicht durch die Druckerwarteschlange\n"
+" -u|--new Der Drucker ist neu (Stylus Color 740 oder neuer).\n"
+" -q|--quiet Programmausgaben unterdrücken\n"
+" -m|--model Das präzise Druckermodell zur Kopfausrichtung "
+"angeben.\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"Aufruf: escputil [OPTIONS] [COMMAND]\n"
+"Aufruf: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P Drucker| -r Gerät] [-u] [-q] [-m Modell]\n"
+"Wartung für EPSON Stylus ® Drucker durchführen\n"
+"Beispiele: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Kommandos:\n"
+" -c Druckkopf reinigen.\n"
+" -n Düsen-Testdruck.\n"
+" Schmutzige oder verklebte Düsen sind als Aussetzer erkennbar.\n"
+" Wenn diese auftreten, sollten Sie den Druckkopf reinigen.\n"
+" -a Druckkopf ausrichten. VORSICHT: Die unnötige Benutzung dieser "
+"Option\n"
+" kann eine schlechte Druckqualität oder Druckerschäden verursachen.\n"
+" -o Farb-Kopf ausrichten (nur Stylus Color 480 und 580).\n"
+" VORSICHT: Die unnötige Benutzung dieser Option kann eine schlechte\n"
+" Druckqualität oder Druckerschäden verursachen.\n"
+" -s Druckerstatus ermitteln\n"
+" -i Tintenstand abfragen. Benötigt Schreib- und\n"
+" Leserechte auf die Drucker-Schnittstelle.\n"
+" -d Hersteller- und Modellinformationen abfragen. Benötigt Schreib- "
+"und\n"
+" Leserechte auf die Drucker-Schnittstelle.\n"
+" -l Lizenz- und Garantiebedingungen dieses Programmes anzeigen\n"
+" -M Unterstützte Drucker auflisten\n"
+" -h Diese Hilfeinformation anzeigen\n"
+" Optionen:\n"
+" -P Namen der Druckerwarteschlange anzeigen.\n"
+" Standard: Systemdrucker lp\n"
+" -r Druckerschnittstelle angeben.\n"
+" Vorsicht: Geht nicht durch die Druckerwarteschlange\n"
+" -u Der Drucker ist neu (Stylus Color 740 oder neuer).\n"
+" -q Programmausgaben unterdrücken\n"
+" -m Das präzise Druckermodell zur Kopfausrichtung angeben.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr "Stylus C43sx"
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr "Stylus C43ux"
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr "Stylus C44sx"
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr "Stylus C44ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr "Stylus C63"
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr "Stylus C64"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr "Stylus C83"
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr "Stylus C84"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 935"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr "Stylus CX-3100"
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr "Stylus CX-3200"
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr "Stylus CX-5100"
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr "Stylus CX-5200"
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr "Stylus CX-6300"
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr "Stylus CX-6400"
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr "Stylus CX-8300"
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr "Stylus CX-8400"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Sie sollten nur einen Drucker oder eine Schnittstelle angeben."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Sie sollten nur ein Druckermodell angeben."
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Unbekannte Option %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Kann die Schnittstelle nicht öffnen %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Kann auf den Drucker nicht drucken: %s mit %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Kann keine Befehle an den Drucker senden\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr "Zeitlimit beim Lesen vom Drucker überschritten\n"
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Kann nicht von %s: %s lesen.\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Zyan"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Magenta"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Gelb"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Helles Zyan"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Helles Magenta"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr "Schwarz/dunkles Gelb"
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Kann den Tintenstatus nur direkt von der Schnittstelle beziehen.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Kann %s nicht lesen/beschreiben: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Kann nicht auf %s: %s schreiben.\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Kann die Meldungen vom Drucker nicht deuten.\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Tintenfarbe"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Prozent verbleibend"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr ""
+"Zur Druckererkennung bedarf es des Zugriffs auf die direkte Schnittstelle.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr ""
+"Zur Druckerabfrage bedarf es des Zugriffs auf die direkte Schnittstelle.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Reinige die Köpfe...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+"Reinige die Düsen, stellen Sie bitte sicher, dass Papier im Drucker ist\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"Bitte lesen Sie diese Anweisungen sorgfältig, bevor Sie fortfahren.\n"
+"\n"
+"Mit diesem Programm können Sie den Druckkopf Ihres Epson-Stylus\n"
+"Druckers ausrichten. Der falsche Gebrauch dieses Programmes kann\n"
+"die Druckqualtät beeinträchtigen und möglicherweise den Drucker\n"
+"beschädigen. Dieses Programm wurde von Seiko Epson nicht getestet\n"
+"oder zugelassen, es besteht keine Garantie, dass es funktioniert. Das\n"
+"volle Risiko seines Einsatzes liegt bei Ihnen.\n"
+"\n"
+"Es werden %d Testmuster gedruckt. Alle Muster ähneln sich.\n"
+"Sie bestehen aus Paaren von senkrechten Linien, welche sich überlappen.\n"
+"Unter jedem Linienpaar steht eine Zahl von %d bis %d.\n"
+"\n"
+"Wenn Sie die Linienpaare untersuchen, sollten Sie eines finden, welches am\n"
+"besten zusammen passt, optimal ist eine durchgehende Linie. Benutzen Sie\n"
+"ruhig hochwertiges Papier und eine Lupe, um ganz sicher zu gehen, das\n"
+"beste Paar zu erkennen. Nachdem Sie nun das schönste Paar ausgewählt\n"
+"und sich die Zahl gemerkt haben, legen Sie das Blatt wieder in den Drucker\n"
+"ein, bevor sie die Zahl eingeben.\n"
+"\n"
+"Jedes Muster ist gleich, aber die späteren werden feiner gedruckt um die\n"
+"Unterschiede noch mehr hervorzuheben. Sie müssen zur richtigen Ausrichtung\n"
+"der Druckköpfe alle Durchgänge ausführen. Nach erfolgreicher Ausrichtung\n"
+"wird noch ein Musterausdruck erzeugt. Sie sollten erkennen, dass das\n"
+"mittlere (#%d von %d) das beste Paar für alle Muster ist.\n"
+"\n"
+"Nach der letzten Ausgabe werden Sie gefragt, ob Sie die Ausrichtung im\n"
+"Drucker sichern (s), den Vorgang wiederholen (r) oder ohne Sicherung\n"
+"abbrechen möchten (q). Beim Abbruch bleiben die Einstellungen bis zum\n"
+"Ausschalten des Druckers erhalten, aber nicht länger. Es ist wichtigt, den\n"
+"Drucker während der Ausrichtung nicht Auszuschalten.\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"Bitte lesen sie diese Anweisungen sorgfältig, bevor Sie fortfahren.\n"
+"\n"
+"Mit diesem Programm können Sie den Druckkopf Ihres Epson-Stylus\n"
+"Druckers ausrichten. Der falsche Gebrauch dieses Programmes kann\n"
+"die Druckqualtät beeinträchtigen und möglicherweise den Drucker\n"
+"beschädigen. Dieses Programm wurde von Seiko Epson nicht getestet\n"
+"oder zugelassen, es besteht keine Garantie, dass es funktioniert. Das\n"
+"volle Risiko seines Einsatzes liegt bei Ihnen.\n"
+"\n"
+"Dieses Programm druckt Testmuster. Sie bestehen aus Paaren senkrechter\n"
+"Linien, welche sich überlappen. Unter jedem Linienpaar steht eine Zahl\n"
+"von %d bis %d.\n"
+"\n"
+"Wenn Sie die Linienpaare untersuchen, sollten Sie eines finden, welches am\n"
+"besten zusammen passt, optimal ist eine durchgehende Linie. Benutzen Sie\n"
+"ruhig hochwertiges Papier und eine Lupe um ganz sicher zu gehen, das\n"
+"beste Paar zu erkennen. Nachdem Sie nun das schönste Paar ausgewählt\n"
+"und sich die Zahl gemerkt haben, legen Sie das Blatt wieder in den Drucker\n"
+"ein, bevor Sie die Zahl eingeben.\n"
+"\n"
+"Nach erfolgreicher Ausrichtung wird noch ein Musterausdruck\n"
+"erzeugt. Sie sollten erkennen, dass das beste Paar (#%d von %d) ist.\n"
+"Dann werden Sie gefragt, ob Sie die Ausrichtung im Drucker sichern (s),\n"
+"den Vorgang wiederholen (r) oder ohne Sicherung abbrechen möchten (q).\n"
+"Beim Abbruch bleiben die Einstellungen bis zum Ausschalten des Druckers\n"
+"erhalten, aber nicht länger.\n"
+"\n"
+"Wenn Sie das Programm abbrechen, müssen Sie den gesamten Vorgang "
+"wiederholen,\n"
+"um die Ergebnisse zu sichern. Es ist wichtig, den Drucker während des\n"
+"Verfahrens nicht auszuschalten.\n"
+"\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Kann keinen Befehl an den Drucken senden, Abbruch.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"Zur Druckerausrichtung muss die Schnittstelle bzw.\n"
+"mit der \"-m\"- Option das Druckermodell angegeben werden.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Versuche, das Druckermodell zu erkennen..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"Kann %s nicht lesen/beschreiben: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Kann auf %s: %s nicht schreiben\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Kann den Druckertyp nicht feststellen.\n"
+"Bitte nutzen sie die -m Option um das Modell mitzuteilen.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "Das Druckermodell %s ist unbekannt.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Bitte kontrollieren Sie den letzten Ausdruck sehr genau, ob Ihr\n"
+"Drucker perfekt ausgerichtet ist. Sie können nun:\n"
+" (s) die Einstellungen im Drucker sichern,\n"
+" (q) das Programm ohne Sicherung verlassen, oder\n"
+" (r) Den Vorgang von Anfang an wiederholen.\n"
+"Sie werden um eine Bestätigung gebeten.\n"
+"Was möchten sie tun (s, q, r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"Bitte bestätigen sie mit der Taste 'q', dass Sie die Einstellungen nicht "
+"sichern möchten:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"Gut, der Drucker ist ausgerichtet, aber die Einstellung noch nicht "
+"gesichert.\n"
+"Wenn Sie die Sicherung wünschen, müssen Sie den Prozess wiederholen.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Bitte bestätigen Sie mit der Taste 'r', dass Sie die Kopf-Ausrichtung\n"
+"wiederholen möchten:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Wiederhole die Kopf-Ausrichtung.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Dies wird die Einstellungen Ihres Druckers dauerhaft verändern.\n"
+"WARNUNG: dieser Vorgang wurde von Seiko Epson nicht geprüft\n"
+"und könnte den Drucker beschädigen. Weiter?\n"
+"Bitte bestätigen Sie wieder mit der Taste 's', wenn Sie die Einstellungen "
+"im\n"
+"Drucker sichern möchten.\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Wie man die Einstellungen sichert..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "gescheitert!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"Die Sicherung Ihrer Einstellungen scheiterte. Sie sollten\n"
+"die Kopf-Ausrichtung wiederholen.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "erledigt!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Die Kopfausrichtung wurde im Drucker gespeichert.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Unbekannter Befehl.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "Der letzte Befehl wurde nicht bestätigt.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Diese Routine geht davon aus, dass Ihr Drucker ein Epson %s ist.\n"
+"Wenn nicht, drücken Sie jetzt bitte control-C und\n"
+"wählen Ihr tatsächliches Modell.\n"
+"\n"
+"Bitte legen Sie ein Blatt Papier ein, um die Kopf-Ausrichtung zu beginnen.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Drücken sie Eingabe um fortzufahren > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Bitte betrachten Sie den Ausdruck und entscheiden Sie sich für\n"
+"die besten Ãœbereinstimmungen der Muster-Paare.\n"
+"Geben sie die Nummer ein, '?' für Hilfe, oder 'r' um den Druck zu "
+"wiederholen\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Durchgang #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Bitte legen Sie ein neues Blatt ein.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Die Zahl ist ungültig!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Ich verstehe Ihre Eingabe nicht!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "Die Nummer des besten Paares sollte zwischen 1 und %d liegen.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Beginne, die Köpfe auszurichten..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "erledigt.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Bitte kontrollieren Sie die Ausrichtung. Nachdem die Ausrichtungs-\n"
+"muster nochmal gedruckt wurden, sollten die besten Ãœbereinstim-\n"
+"mungen jeder Zeile im Muster %d sein. Wenn nicht, sollten Sie diesen\n"
+"Vorgang wiederholen.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"Bitte lesen Sie diese Anweisungen sorgfältig, bevor sie fortfahren.\n"
+"\n"
+"Mit diesem Programm können Sie den Druckkopf Ihres Epson-Stylus\n"
+"Druckers ausrichten. Der falsche Gebrauch dieses Programmes kann\n"
+"die Druckqualtät beeinträchtigen und möglicherweise den Drucker\n"
+"beschädigen. Dieses Programm wurde von Seiko Epson nicht getestet\n"
+"oder zugelassen, es besteht keine Garantie, dass es funktioniert. Das volle\n"
+"Risiko seines Einsatzes liegt bei Ihnen.\n"
+" \n"
+"Es werden %d übereinander gedruckte Testmuster auf einem Blatt Papier\n"
+"ausgegeben. Das Blatt muss vor jedem Durchgang wieder eingelegt werden.\n"
+"An jedem Muster steht eine Zahl von %d bis %d.\n"
+"\n"
+"Wenn Sie die Muster untersuchen, sollten Sie eines finden, welches das\n"
+"glatteste Muster aufweist (die geringste ``Maserung''). Wir empfehlen Foto-\n"
+"Papier für Tintenstrahldrucker oder ein ähnlich hochqualitatives Papier für\n"
+"diesen Test. Wenn Sie kein glattes Muster finden, wiederholen Sie diesen\n"
+"Test.\n"
+"\n"
+"Nachdem Sie nun das schönste Muster ausgewählt haben, werden Sie gefragt,\n"
+"ob Sie die Ausrichtung im Drucker sichern (s), den Vorgang wiederholen (r)\n"
+"oder ohne Sicherung abbrechen möchten (q). Beim Abbruch bleiben die\n"
+"Einstellungen bis zum Ausschalten des Druckers erhalten, aber nicht länger.\n"
+"Wenn Sie den Vorgang abbrechen, müssen Sie den gesamten Prozess "
+"wiederholen,\n"
+"wenn Sie die Ergebnisse dauerhaft sichern wollen. Es ist wichtig, den "
+"Drucker\n"
+"während der Ausrichtung nicht Auszuschalten.\n"
+"\n"
+"WARNUNG: DIESE FUNKTION WURDE NOCH NICHT GETESTET! Sie könnte nicht\n"
+"funktionieren oder Ihren Drucker schädigen.\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "Drucker %s benötigt keine Kopfausrichtung.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+"Bitte legen sie dasselbe Blatt noch einmal ein, nachdem der Druck beendet\n"
+"ist.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Betrachten sie den Musterausdruck und finden sie heraus, welches Muster\n"
+"am glattesten aussieht (am wenigsten ``Maserung'' aufweist).\n"
+"Wenn Sie keine gute Übereinstimmung finden, wählen Sie die annehm-\n"
+"barste und wiederholen den Vorgang.\n"
+"Geben Sie die Musternummer ein oder \"?\" für Hilfe.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "Die Nummer des besten Musters sollte zwischen 1 und %d liegen.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Eingabefehler\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "Druckfarben-Abstimmung"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Zurücksetzen"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Schließen"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Vorschau"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Helligkeit:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"Stellen Sie die Helligkeit ein.\n"
+"0 ist völlig schwarz, 2 ist völlig weiß"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Stellen Sie den Kontrast für den Druck ein"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Zyan:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "Stellen Sie die Zyan-Balance für den Druck ein"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Magenta:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "Stellen Sie die Magenta-Balance für den Druck ein"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Gelb:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "Stellen Sie die Gelb-Balance für den Druck ein"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Sättigung:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"Stellen Sie die Sättigung (Farbbalance) des Druckes ein.\n"
+"Stellen Sie den Wert auf Null um einen Graustufenausdruck mit farbiger und\n"
+"schwarzer Tinte zu erzeugen."
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Dichte:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Stellen sie die Dichte (Tintenmenge) des Druckes ein. Verringern Sie sie, "
+"falls Tinte durch das Papier dringt oder verschmiert, erhöhen Sie "
+"entsprechend, wenn Bereiche zu schlecht gedeckt sind."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"Stellen sie den Gamma-Parameter des Bildes ein. Größere Werte ergeben "
+"hellere Ausdrucke, kleinere dunkelere. Schwarz-Weiß bleibt gleich, nicht wie "
+"bei der Helligkeitseinstellung."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Raster-Algorithmus:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"Wählen Sie den Raster-Algorithmus aus.\n"
+"Adaptive Hybrid ist normalerweise für alles geeignet.\n"
+"Ordered ist schneller und erzeugt auf Fotos annähernd so gute Qualität.\n"
+"Schnell und Sehr Schnell sind am schnellsten und gut für Zeichnungen und "
+"Texte.\n"
+"Hybrid Floyd-Steinberg bringt im allgemeinen weniger gute Resultate."
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Drucke v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Ãœber"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Drucke und\n"
+"Sichere die Einstellungen"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Sichere\n"
+"die Einstellungen"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Drucken"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Abbruch"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Vorschau"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"Positionieren Sie das Bild auf der Seite.\n"
+"Mit der linken Maustaste verschieben Sie das Bild.\n"
+"Mit der zweiten geht es feiner; jede Bewegung verschiebt das Bild um einen "
+"Punkt (1/72\")\n"
+"Die mittlere verschiebt das Bild in Einheiten seiner Größe\n"
+"Wenn Sie dabei die Umschalttaste (Shift) gedrückt halten, verschieben Sie "
+"entweder nur waagerecht oder nur senkrecht\n"
+"Das Drücken einer anderen Taste während des Verschiebens, bringt das Bild in "
+"seine Ausgangsposition zurück."
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Position"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Auto"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Aufrecht"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Querformat"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "umgekehrt Aufrecht"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "umgekehrtes Querformat"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Wählen Sie die Ausrichtung: Aufrecht, Querformat, umgekehrt Aufrecht, "
+"umgekehrt Querformat"
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Ausrichtung:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Links:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Entfernung vom linken Blattrand zum Bild"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Oben:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Entfernung vom oberen Blattrand zum Bild"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Rechts:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "Entfernung vom linken Blattrand zum rechten Bildrand"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Rechter Rand:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Entfernung vom rechten Blattrand zum Bildrand"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Unten:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "Entfernung vom oberen Blattrand zum unteren Bildrand"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Unterer Rand:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Entfernung vom unteren Blattrand zum Bild"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Mittelpunkt:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Senkrecht"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Bild senkrecht auf dem Blatt zentrieren"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Beides"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Bild auf dem Blatt zentrieren"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Waagerecht"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Bild waagerecht auf dem Blatt zentrieren"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Drucker einrichten"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Druckermodell:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Wählen Sie ihr Druckermodell"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD-Datei:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Wählen Sie die für Ihren Drucker passende PPD-Datei."
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Blättern"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Wählen Sie die für ihren Drucker passende PPD-Datei."
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Befehl:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Geben Sie den richtigen Druckbefehl für Ihren Drucker ein. (Bitte löschen "
+"Sie nicht die Optionen -l bzw. -oraw von der Befehlszeile, sonst kann der "
+"Druck scheitern!)"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "In Datei drucken?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD-Datei?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Neuen Drucker einrichten"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Druckername:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Bitte geben Sie einen logischen Namen für diesen Drucker an."
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Ãœber Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Gimp-Print Version "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright © 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"und dem Rest der Gimp-Print-Entwicklergruppe.\n"
+"\n"
+"Bitte besuchen Sie unsere Webseite: http://gimp-print.sourceforge.net.\n"
+"\n"
+"Dieses Programm ist freie Software. Sie können es unter\n"
+"den Bedingungen der GNU General Public License, wie von der\n"
+"Free Software Foundation herausgegeben, weitergeben und/oder\n"
+"modifizieren, entweder unter Version 2 der Lizenz oder (wenn\n"
+"Sie es wünschen) jeder späteren Version.\n"
+"\n"
+"Die Veröffentlichung dieses Programms erfolgt in der\n"
+"Hoffnung, dass es von Nutzen sein wird, aber OHNE JEDE\n"
+"GEWÄHRLEISTUNG - sogar ohne die implizite Gewährleistung\n"
+"der MARKTREIFE oder der EIGNUNG FÃœR EINEN BESTIMMTEN ZWECK.\n"
+"Details finden Sie in der GNU General Public License.\n"
+"\n"
+"Sie sollten eine Kopie der GNU General Public License zusammen\n"
+"mit diesem Programm erhalten haben. Falls nicht, schreiben Sie\n"
+"an die Free Software Foundation, Inc., 59 Temple Place, Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Druckereinstellungen"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+"Bitte geben Sie den Namen des Druckers, auf den Sie drucken möchten, an "
+"(nicht den Typ oder das Modell)"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Drucker einrichten..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Wählen Sie ein Druckermodell, eine PPD-Datei und einen Befehl zum Drucken "
+"mit diesem Drucker"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Neuer Drucker..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Neuen logischen Drucker definieren. Hier können Sie einer besonderen "
+"Druckereinstellung einen Namen geben und sie später unter diesem einfach "
+"aufrufen."
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "Größe des Papiers, worauf gedruckt werden soll"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Papiergröße:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Maße:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Breite:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Breite des Papiers"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Höhe:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Höhe des Papiers"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Art des Druckmediums"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Druckmedium:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Schacht des Druckmediums"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Schacht/Quelle:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Tintenart im Drucker"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Tintenart:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Auflösung und Druckqualität"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Auflösung:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Größe"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Zoom:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Einstellung der Bildgröße"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Wählen Sie, ob die Einstellungen in Prozent der Seitengröße oder in "
+"Ausgabepunkten je Zoll erfolgen sollen"
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Prozent"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "Bild in die Seite einpassen"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "Druck auf die Druckauflösung (Punkte je Zoll) skalieren"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Einstellen der Breite des Ausdrucks"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Einstellen der Höhe des Ausdrucks"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Einheiten:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "Wählen Sie die Basismaßeinheit für das Drucken"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Zoll"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Die Basismaßeinheit auf Zoll einstellen"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Die Basismaßeinheit auf Zentimeter einstellen"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Benutze originale\n"
+"Bildgröße"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "Ausdruckgröße auf Bildgröße setzen"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Bild- / Ausgabeeinstellungen"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Bildtyp:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "Den Ausdruck auf die Art des Bildes optimieren"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "Schnellste und hellste Farbe für Text und Strichzeichnung"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr "Beste Qualität für Bilder mit einfarbigen Flächen"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr "Langsamste aber beste Qualität für Farbverläufe und Fotografien"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Ausgabetyp:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Wählen Sie den gewünschten Ausgabetyp:"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Farbe"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Farbausgabe"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Graustufen"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "Drucke Graustufen nur mit schwarzer Tinte"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Schwarz-Weiß"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Drucke in Schwarz-Weiß (keine Farbe oder Graustufen)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Ausgabeeinstellungen.."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+"Einstellungen für Farbbalance, Helligkeit, Kontrast, Sättigung und Rasterung"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Drucken..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Datei/Drucken..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Datei"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "ungünstiger Farbraum: bps %d Kanäle %d Abstand %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Kein Zeilen-Speicher\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parameter %s ist nicht zulässig (wert %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Kann den Parameter %s=%s nicht auswerten (erwarte eine Zahl)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parameter %s ist nicht zulässig (wert %d, min %d, max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Der Drucker muss mit -sModel angegeben werden\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Druckermodel %s ist unbekannt.\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Unbekannte Option: %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f von %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header gescheitert: %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init gescheitert: %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Kann File-Deskriptor %s nicht öffnen\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Kann %s: %s nicht öffnen\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Unbekannter Drucker: %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Unzulässige Parameter, breche ab!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Zeilensprung gescheitert bei %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Kann von %s: %s nicht lesen.\n"
+
+#~ msgid "Model %d out of range.\n"
+#~ msgstr "Model %d ist ungültig!\n"
+
+#~ msgid "Print options not verified; cannot print.\n"
+#~ msgstr "Ungeprüfte Druckoptionen; drucken nicht möglich.\n"
+
+#~ msgid "This printer does not support raw printer output at depth %d\n"
+#~ msgstr "Drucker unterstützt keine Rohdatenausgabe in der Tiefe %d\n"
+
+#~ msgid "One Color Raw"
+#~ msgstr "einfarbige Rohausgabe"
+
+#~ msgid "Two Color Raw"
+#~ msgstr "zweifarbige Rohausgabe"
+
+#~ msgid "Three Color Raw"
+#~ msgstr "Dreifarbige Rohausgabe"
+
+#~ msgid "Four Color Raw"
+#~ msgstr "vierfarbige Rohausgabe"
+
+#~ msgid "Five Color Raw"
+#~ msgstr "fünffarbige Rohausgabe"
+
+#~ msgid "Six Color Raw"
+#~ msgstr "Sechsfarbige Rohausgabe"
+
+#~ msgid "Seven Color Raw"
+#~ msgstr "Siebenfarbige Rohausgabe"
+
+#~ msgid ""
+#~ "Please inspect the print, and choose the pattern in each set.\n"
+#~ "Type a pattern number, '?' for help, or 'r' to repeat the procedure.\n"
+#~ msgstr ""
+#~ "Bitte betrachten sie den Ausdruck und entscheiden sie sich für \n"
+#~ "die beßsten Übereinstimmungen der Muster-Paare .\n"
+#~ "Geben sie die Muster-Nummer ein, '?' für Hilfe, oder 'r' um den Druck zu "
+#~ "wiederholen\n"
+
+#~ msgid "Curve:"
+#~ msgstr "Kennlinie:"
+
+#~ msgid "Points"
+#~ msgstr "Punkte"
+
+#~ msgid "Set the base unit of measurement to points (1/72\")"
+#~ msgstr "Stelle die Basismaßeinheit auf Punkte (1/72\")"
+
+#~ msgid "mm"
+#~ msgstr "mm"
+
+#~ msgid "Set the base unit of measurement to millimetres"
+#~ msgstr "Die Basiseinheit auf Millimeter einstellen"
+
+#~ msgid "Pica"
+#~ msgstr "Pica"
+
+#~ msgid "Set the base unit of measurement to picas (1/12\")"
+#~ msgstr "Stelle die Basismaßeinheit auf picas (1/12\")"
+
+#~ msgid "13x19"
+#~ msgstr "13×19"
+
+#~ msgid "Monarch"
+#~ msgstr "Monarch"
+
+#~ msgid "Long 3"
+#~ msgstr "Long 3"
+
+#~ msgid "Long 4"
+#~ msgstr "Long 4"
+
+#~ msgid "Kaku"
+#~ msgstr "Kaku"
+
+#~ msgid "HP Greeting Card"
+#~ msgstr "HP Greeting Card"
diff --git a/po/el.gmo b/po/el.gmo
new file mode 100644
index 0000000..e1c1682
--- /dev/null
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 0000000..4d9edd9
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,3493 @@
+# Greek translation for gimp-print.
+# Copyright (C) 2001 Free Software Foundation.
+# Simos Xenitellis <simos@hellug.gr>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 1.0\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2001-12-29 20:10+0000\n"
+"Last-Translator: Simos Xenitellis <simos@hellug.gr>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-7\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ç åðéëïãÞ `%s' åßíáé áóáöÞò\n"
+
+#
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ç åðéëïãÞ `--%s' äå äÝ÷åôáé üñéóìá\n"
+
+#
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ç åðéëïãÞ `%c%s' äå äÝ÷åôáé üñéóìá\n"
+
+#
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ç åðéëïãÞ `%s' áðáéôåß üñéóìá\n"
+
+#
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: Üãíùóôç åðéëïãÞ `--%s'\n"
+
+#
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: Üãíùóôç åðéëïãÞ `%c%s'\n"
+
+#
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ìç åðéôñåðüìåíç åðéëïãÞ -- %c\n"
+
+#
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: Üêõñç åðéëïãÞ -- %c'\n"
+
+#
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ç åðéëïãÞ áðáéôåß üñéóìá -- %c\n"
+
+#
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ç åðéëïãÞ `-W %s' åßíáé áóáöÞò\n"
+
+#
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ç åðéëïãÞ `-W %s' äåí åðéôñÝðåé üñéóìá\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+#, fuzzy
+msgid "Plain Paper"
+msgstr "Êýñéá Óåëßäá"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+#, fuzzy
+msgid "Transparencies"
+msgstr "ÄéáöáíÝò"
+
+#: src/main/print-canon.c:1174
+#, fuzzy
+msgid "Back Print Film"
+msgstr "Åêôýðùóç óå Áñ÷åßï"
+
+#: src/main/print-canon.c:1175
+#, fuzzy
+msgid "Fabric Sheets"
+msgstr "Åêôýðùóç Öýëëùí"
+
+#: src/main/print-canon.c:1176
+#, fuzzy
+msgid "Envelope"
+msgstr "Åêôýðùóç ÖáêÝëïõ"
+
+#
+#: src/main/print-canon.c:1177
+#, fuzzy
+msgid "High Resolution Paper"
+msgstr "AíÜëõóç ×:"
+
+#: src/main/print-canon.c:1178
+#, fuzzy
+msgid "T-Shirt Transfers"
+msgstr "ÌåôáöïñÜ Áñ÷åßùí"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr ""
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr ""
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr ""
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr ""
+
+#
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "¶ëëá"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+#, fuzzy
+msgid "Auto Sheet Feeder"
+msgstr "Áõôüìáôç áðüêñõøç"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+#, fuzzy
+msgid "Manual with Pause"
+msgstr "Óåëßäá åã÷åéñéäßïõ"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr ""
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Ìáýñï"
+
+#: src/main/print-canon.c:1563
+#, fuzzy
+msgid "CMY Color"
+msgstr "+ ×ñþìá"
+
+#: src/main/print-canon.c:1568
+#, fuzzy
+msgid "CMYK Color"
+msgstr "+ ×ñþìá"
+
+#: src/main/print-canon.c:1573
+#, fuzzy
+msgid "Photo CcMmY Color"
+msgstr "ÅðéëïãÞ Åéäéêïý ×ñþìáôïò"
+
+#: src/main/print-canon.c:1578
+#, fuzzy
+msgid "Photo CcMmYK Color"
+msgstr "ÅðéëïãÞ Åéäéêïý ×ñþìáôïò"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr ""
+
+#: src/main/print-dither.c:65
+#, fuzzy
+msgid "Ordered"
+msgstr "ÄéÜôáîç"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Ôá÷åßá"
+
+#: src/main/print-dither.c:67
+#, fuzzy
+msgid "Very Fast"
+msgstr "Ôá÷åßá"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr ""
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+#, fuzzy
+msgid "EvenTone"
+msgstr "Åêôýðùóç ÖáêÝëïõ"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr ""
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+#, fuzzy
+msgid "Seven Color Photo"
+msgstr "Stylus Color Pro"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+#, fuzzy
+msgid "Two Level Grayscale"
+msgstr "Êëßìáêá ôïõ ãêñé"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr ""
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+#, fuzzy
+msgid "Postcard"
+msgstr "Ôåëåõôáßá êáñôÝëá"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+#, fuzzy
+msgid "Envelopes"
+msgstr "ÐñïãñáììáôéóôÝò"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+#, fuzzy
+msgid "Back Light Film"
+msgstr "Åëáöñý ÷áëÜæé"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+#, fuzzy
+msgid "Matte Paper"
+msgstr "×áñôß Ìáíßëá"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+#, fuzzy
+msgid "Photo Paper"
+msgstr "Êåßìåíá"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Êýñéá Óåëßäá"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4162
+#, fuzzy
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4166
+#, fuzzy
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4175
+#, fuzzy
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4177
+#, fuzzy
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4179
+#, fuzzy
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4188
+#, fuzzy
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4190
+#, fuzzy
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4192
+#, fuzzy
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Êáíïíéêü"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+#, fuzzy
+msgid "Roll Feed"
+msgstr "Ñüëïò"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "ÁðåðéëïãÞ"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:634
+#, fuzzy
+msgid "test print"
+msgstr "Ôßôëïé ðñïò åêôýðùóç"
+
+#: src/main/print-pcl.c:157
+#, fuzzy
+msgid "Plain"
+msgstr "Óå áíáðáñáãùãÞ"
+
+#
+#: src/main/print-pcl.c:158
+#, fuzzy
+msgid "Bond"
+msgstr "¸íôïíç ÃñáöÞ"
+
+#: src/main/print-pcl.c:159
+#, fuzzy
+msgid "Premium"
+msgstr "Ðñùô"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:161
+#, fuzzy
+msgid "Transparency"
+msgstr "ÄéáöáíÝò"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:163
+#, fuzzy
+msgid "Quick-dry Transparency"
+msgstr "ÄéáöÜíåéá ×ñïéÜò"
+
+# Revise translation of "manual" (as in opposite of "automatic", not synonym of "documentation")
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Åã÷åéñßäéï"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+#, fuzzy
+msgid "Tray 1"
+msgstr "ÄïêéìÞ"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+#, fuzzy
+msgid "Tray 2"
+msgstr "ÄïêéìÞ"
+
+#: src/main/print-pcl.c:207
+#, fuzzy
+msgid "Tray 3"
+msgstr "ÄïêéìÞ"
+
+#: src/main/print-pcl.c:208
+#, fuzzy
+msgid "Tray 4"
+msgstr "ÄïêéìÞ"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr ""
+
+#: src/main/print-pcl.c:210
+#, fuzzy
+msgid "Desktop Sheet Feeder"
+msgstr "Ñõèìßóåéò åðéöÜíåéáò åñãáóßáò"
+
+#: src/main/print-pcl.c:211
+#, fuzzy
+msgid "Tray"
+msgstr "ÄïêéìÞ"
+
+#: src/main/print-pcl.c:213
+#, fuzzy
+msgid "Optional Source"
+msgstr "Áíïéêôü Ëïãéóìéêü"
+
+#: src/main/print-pcl.c:214
+#, fuzzy
+msgid "Autoselect"
+msgstr "ÁðåðéëïãÞ"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+#, fuzzy
+msgid "600x600 DPI monochrome"
+msgstr "ìïíü÷ñùìï"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr ""
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr ""
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+#, fuzzy
+msgid "ps2"
+msgstr "óôéã."
+
+#
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "ÄéáóôÜóåéò Letter"
+
+#
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "ÄéáóôÜóåéò Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+#, fuzzy
+msgid "Tabloid"
+msgstr "Ðßíáêáò"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+#, fuzzy
+msgid "Executive"
+msgstr "ÅêôÝëåóç"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr ""
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "ÄéáóôÜóåéò Á4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+#, fuzzy
+msgid "RA0"
+msgstr "RAD"
+
+#
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+#, fuzzy
+msgid "RA1"
+msgstr "RAD"
+
+#
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+#, fuzzy
+msgid "RA2"
+msgstr "RAD"
+
+#
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+#, fuzzy
+msgid "RA3"
+msgstr "RAD"
+
+#
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+#, fuzzy
+msgid "RA4"
+msgstr "ÄéáóôÜóåéò Á4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+#, fuzzy
+msgid "SRA4"
+msgstr "ÄéáóôÜóåéò Á4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+#, fuzzy
+msgid "DL"
+msgstr "Ôåêìçñßùóç"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+#, fuzzy
+msgid "ArchA"
+msgstr "Ôüîï"
+
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "ÌåôáöïñÜ Áñ÷åßùí"
+
+#: src/main/print-util.c:750
+#, fuzzy
+msgid "ArchB"
+msgstr "Ôüîï"
+
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "ÌåôáöïñÜ Áñ÷åßùí"
+
+#: src/main/print-util.c:754
+#, fuzzy
+msgid "ArchC"
+msgstr "Ôüîï"
+
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "ÌåôáöïñÜ Áñ÷åßùí"
+
+#: src/main/print-util.c:758
+#, fuzzy
+msgid "ArchD"
+msgstr "Ôüîï"
+
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "ÌåôáöïñÜ Áñ÷åßùí"
+
+#: src/main/print-util.c:762
+#, fuzzy
+msgid "ArchE"
+msgstr "Ôüîï"
+
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "ÌåôáöïñÜ Áñ÷åßùí"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+#, fuzzy
+msgid "American foolscap"
+msgstr "ÁìåñéêáíéêÞ Óáìüá"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr ""
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr ""
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr ""
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+#, fuzzy
+msgid "Demy Quarto"
+msgstr "ðñïóïìïßùóç"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr ""
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr ""
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr ""
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr ""
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr ""
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+#, fuzzy
+msgid "Small paperback"
+msgstr "ÅðÝíäõóç"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr ""
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr ""
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+#, fuzzy
+msgid "Hagaki Card"
+msgstr "ÁíáæÞôçóç êáñôÝëáò"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr ""
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr ""
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr ""
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr ""
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr ""
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+#, fuzzy
+msgid "A2 Invitation"
+msgstr "Êéíïýìåíá ó÷Ýäéá"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+#, fuzzy
+msgid "Monarch Envelope"
+msgstr "Åêôýðùóç ÖáêÝëïõ"
+
+# Translation of "custom" sucks! ("kata paraggelia"??? nah!)
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "ÏñéóìÝíï áðü ôï ÷ñÞóôç"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr ""
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr ""
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr ""
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "ÁããëéêÜ"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+#, fuzzy
+msgid "ISOLatin1"
+msgstr "ËÜôéí"
+
+#: src/cups/genppd.c:777
+#, fuzzy
+msgid "Media Type"
+msgstr "Åßäïò MIME"
+
+#: src/cups/genppd.c:803
+#, fuzzy
+msgid "Media Source"
+msgstr "Áíïéêôü Ëïãéóìéêü"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "ÁíÜëõóç"
+
+#
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Åêôýðùóç"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+#, fuzzy
+msgid "Image Type"
+msgstr "Åßäïò MIME"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+#, fuzzy
+msgid "Line Art"
+msgstr "ÃñáììÞ"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr ""
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+#, fuzzy
+msgid "Photograph"
+msgstr "Êñõðôïãñáößá"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr ""
+
+#: src/cups/genppd.c:905
+#, fuzzy
+msgid "Ink Type"
+msgstr "Ôýðïò MIME"
+
+#: src/escputil/escputil.c:66
+#, fuzzy
+msgid "Escputil version "
+msgstr "%s Ýêäïóç %s"
+
+#: src/escputil/escputil.c:67
+#, fuzzy
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+"Áõôü ôï ðñüãñáììá åßíáé ìÝñïò ôïõ GNOME.\n"
+"Ôï Gnome-Chess äåí ðáñÝ÷åé ÁÐÏËÕÔÙÓ ÊÁÌÉÁ ÅÃÃÕÇÓÇ. Ðñüêåéôáé ãéá åëåýèåñï "
+"ëïãéóìéêï, êáé ìðïñåßôå íá ôï áíáäéáíåßìåôå âÜóåé ôùí óõíèçêþí ôçò ÃåíéêÞò "
+"Äçìüóéáò ¶äåéáò GNU (GNU General Public Licence)."
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+#, fuzzy
+msgid "Stylus Photo"
+msgstr "Slashdot"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+#, fuzzy
+msgid "You may only specify one printer or raw device."
+msgstr "Ìðïñåßôå íá áðïèçêåýóåôå ìéá ìüíï äéåýèõíóç ôç öïñÜ.\n"
+
+#: src/escputil/escputil.c:402
+#, fuzzy
+msgid "You may only specify one printer model."
+msgstr "Ìðïñåßôå íá áðïèçêåýóåôå ìéá ìüíï äéåýèõíóç ôç öïñÜ.\n"
+
+#: src/escputil/escputil.c:422
+#, fuzzy, c-format
+msgid "Unknown option %c\n"
+msgstr "¶ãíùóôïò êùäéêüò op %u"
+
+#: src/escputil/escputil.c:482
+#, fuzzy, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "¶íïéãìá áñ÷åßïõ %s áäýíáôïí\n"
+
+#: src/escputil/escputil.c:505
+#, fuzzy, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Äåí åßíáé äõíáôü íá ãßíåé êáôá÷þñçóç áðïèÞêåõóçò ìå êÝëõöïò"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+#, fuzzy
+msgid "Unable to send command to printer\n"
+msgstr "Áíåðéôõ÷Þò óýíäåóç óôï ðéëüôï"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, fuzzy, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Äåí åßíáé äõíáôü íá åëåã÷èåß ï öÜêåëïò: %s: %s"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Êõáíü"
+
+#: src/escputil/escputil.c:639
+#, fuzzy
+msgid "Magenta"
+msgstr "ìþâ"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Êßôñéíï"
+
+#: src/escputil/escputil.c:641
+#, fuzzy
+msgid "Light Cyan"
+msgstr "ØéëÞ Âñï÷Þ"
+
+#: src/escputil/escputil.c:642
+#, fuzzy
+msgid "Light Magenta"
+msgstr "ØéëÞ Âñï÷Þ"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, fuzzy, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "¶íïéãìá áñ÷åßïõ %s áäýíáôïí\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, fuzzy, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "ÅããñáöÞ áäýíáôç: %s"
+
+#: src/escputil/escputil.c:700
+#, fuzzy
+msgid "Cannot parse output from printer\n"
+msgstr "Áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ: %s\n"
+
+#: src/escputil/escputil.c:704
+#, fuzzy
+msgid "Ink color"
+msgstr " ÷ñþìá"
+
+#: src/escputil/escputil.c:704
+#, fuzzy
+msgid "Percent remaining"
+msgstr "Åðß ôïéò åêáôü åëåýèåñï"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:815
+#, fuzzy
+msgid "Cleaning heads...\n"
+msgstr "ÁíÜãíùóç åðéêåöáëßäùí..."
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr ""
+
+#: src/escputil/escputil.c:934
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr "¶íïéãìá áñ÷åßïõ %s áäýíáôïí\n"
+
+#: src/escputil/escputil.c:942
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr "ÅããñáöÞ áäýíáôç: %s"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1017
+#, fuzzy
+msgid "Repeating the alignment process.\n"
+msgstr "Åêêßíçóç ôùí ¸îõðíùí ÅéóáãùãÝùí"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr ""
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1050
+#, fuzzy
+msgid "Unrecognized command.\n"
+msgstr "Üãíùóôï ÷ñþìá: %s"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+#, fuzzy
+msgid "Press enter to continue > "
+msgstr "Ðáñáêáëþ åéóáãÜãåôå ìéá ãñáììÞ åíôïëþí ðáñáêÜôù."
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr ""
+
+#
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+#, fuzzy
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Ðáñáêáëþ åéóÜãåôå 200 äñá÷ìÝò ãéá íá óõíå÷ßóåôå."
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+#, fuzzy
+msgid "Number out of range!\n"
+msgstr "Áñéèìüò Óåëßäùí"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+#, fuzzy
+msgid "I cannot understand what you typed!\n"
+msgstr "Äåí êáôáëáâáßíù ôçí åíôïëÞ óïõ. "
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1139
+#, fuzzy
+msgid "Attempting to set alignment..."
+msgstr "Åêêßíçóç ôùí ¸îõðíùí ÅéóáãùãÝùí"
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1312
+#, fuzzy
+msgid "Error in input\n"
+msgstr "ÓöÜëìá ðñïóèÞêçò ëßóôáò"
+
+#: src/gimp/gimp_color_window.c:193
+#, fuzzy
+msgid "Print Color Adjust"
+msgstr "Ðñùôåýùíôá ×ñþìáôá"
+
+#: src/gimp/gimp_color_window.c:197
+#, fuzzy
+msgid "Set Defaults"
+msgstr "Ïñéóìüò ÐñïêáèïñéóìÝíùí Ôéìþí"
+
+#
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Êëåßóéìï"
+
+#: src/gimp/gimp_color_window.c:230
+#, fuzzy
+msgid "Image preview"
+msgstr "ÐáñáôçñçôÞò Åéêüíùí"
+
+#: src/gimp/gimp_color_window.c:240
+#, fuzzy
+msgid "Brightness:"
+msgstr "Åñãáóßá"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:260
+#, fuzzy
+msgid "Contrast:"
+msgstr "Áíôßèåóç"
+
+#: src/gimp/gimp_color_window.c:268
+#, fuzzy
+msgid "Set the contrast of the print"
+msgstr "Óôï êÝíôñï ôçò ïèüíçò"
+
+#: src/gimp/gimp_color_window.c:279
+#, fuzzy
+msgid "Cyan:"
+msgstr "Êõáíü"
+
+#: src/gimp/gimp_color_window.c:287
+#, fuzzy
+msgid "Adjust the cyan balance of the print"
+msgstr "Óôï êÝíôñï ôçò ïèüíçò"
+
+#: src/gimp/gimp_color_window.c:298
+#, fuzzy
+msgid "Magenta:"
+msgstr "ìþâ"
+
+#: src/gimp/gimp_color_window.c:306
+#, fuzzy
+msgid "Adjust the magenta balance of the print"
+msgstr "Óôï êÝíôñï ôçò ïèüíçò"
+
+#: src/gimp/gimp_color_window.c:317
+#, fuzzy
+msgid "Yellow:"
+msgstr "Êßôñéíï"
+
+#: src/gimp/gimp_color_window.c:325
+#, fuzzy
+msgid "Adjust the yellow balance of the print"
+msgstr "Óôï êÝíôñï ôçò ïèüíçò"
+
+#
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Êïñåóìüò:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:357
+#, fuzzy
+msgid "Density:"
+msgstr "Ðõêíüôçôá"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+
+#
+#: src/gimp/gimp_color_window.c:379
+#, fuzzy
+msgid "Gamma:"
+msgstr "ÃÜììá"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, fuzzy, c-format
+msgid "%s -- Print v%s"
+msgstr "%s Ýêäïóç %s"
+
+#
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Ðåñß"
+
+#: src/gimp/gimp_main_window.c:338
+#, fuzzy
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr "ÁðïèÞêåõóç Ñõèìßóåùí"
+
+#: src/gimp/gimp_main_window.c:340
+#, fuzzy
+msgid ""
+"Save\n"
+"Settings"
+msgstr "ÁðïèÞêåõóç Ñõèìßóåùí"
+
+#
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Åêôýðùóç"
+
+#
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Áêýñùóç"
+
+#
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Ðñïåðéóêüðçóç"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "ÈÝóç"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Áõôüìáôï"
+
+# Not sure how the terms "portrait" and "landscape" are usually
+# translated; if anyone knows what the term in the Greek version
+# of MSWindoze is and if it is better (or equally good), maybe we
+# would want to use that for consistency and for the sake of newbies?
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Ðïñôñáßôï"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Ïñéæüíôéïò"
+
+#: src/gimp/gimp_main_window.c:458
+#, fuzzy
+msgid "Upside down"
+msgstr "ÁíÜðïäá"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Tïðßï"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:469
+#, fuzzy
+msgid "Orientation:"
+msgstr "Ðñïóáíáôïëéóìüò"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "ÁñéóôåñÜ:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "ÐÜíù:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "ÄåîéÜ:"
+
+#: src/gimp/gimp_main_window.c:513
+#, fuzzy
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "Åóôßáóç ãéá ðñïóáñìïãÞ ôïõ ýøïõò ôçò óåëßäáò"
+
+#: src/gimp/gimp_main_window.c:523
+#, fuzzy
+msgid "Right Border:"
+msgstr "Äåîéü÷åéñáò"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "ÊÜôù:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:551
+#, fuzzy
+msgid "Bottom Border:"
+msgstr "Ðëáßóéï Åéêïíéäßïõ:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:572
+#, fuzzy
+msgid "Center:"
+msgstr "ÊÝíôñï"
+
+#: src/gimp/gimp_main_window.c:576
+#, fuzzy
+msgid "Vertically"
+msgstr "Êáôáêüñõ_öá"
+
+#: src/gimp/gimp_main_window.c:581
+#, fuzzy
+msgid "Center the image vertically on the paper"
+msgstr "ÐåñéóôñïöÞ åéêüíáò ãéá êÜèåôá ôáìðëþ"
+
+#
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Êáé ôá äýï"
+
+#: src/gimp/gimp_main_window.c:592
+#, fuzzy
+msgid "Center the image on the paper"
+msgstr "ÁëëáãÞ ôïõ ìåãÝèïõò óåëßäáò"
+
+#: src/gimp/gimp_main_window.c:599
+#, fuzzy
+msgid "Horizontally"
+msgstr "_Ïñéæüíôéá"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Ñýèìéóç ÅêôõðùôÞ"
+
+#
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "ÅíôÜîåé"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+#, fuzzy
+msgid "Printer Model:"
+msgstr "¼íïìá åêôõðùôÞ:"
+
+#
+#: src/gimp/gimp_main_window.c:660
+#, fuzzy
+msgid "Select your printer model"
+msgstr "ÅðéëïãÞ åêôõðùôÞ"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+#, fuzzy
+msgid "PPD File:"
+msgstr "Áñ÷åßï Ôáõôüôçôáò Äéåñãáóßáò: "
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr ""
+
+#
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Åîåñåýíçóç"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr ""
+
+#
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "ÅíôïëÞ:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+#, fuzzy
+msgid "Print To File?"
+msgstr "Åêôýðùóç óå Áñ÷åßï"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+#, fuzzy
+msgid "PPD File?"
+msgstr " Áñ÷åßï "
+
+#
+#: src/gimp/gimp_main_window.c:789
+#, fuzzy
+msgid "Define New Printer"
+msgstr "ÅðéëïãÞ åêôõðùôÞ"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+#, fuzzy
+msgid "Printer Name:"
+msgstr "¼íïìá åêôõðùôÞ:"
+
+#: src/gimp/gimp_main_window.c:814
+#, fuzzy
+msgid "Enter the name you wish to give this logical printer"
+msgstr "ÅéóÜãåôå ôïí áñéèìü ãñáììÞò óôïí ïðïßï èÝëåôå íá ðÜôå."
+
+#: src/gimp/gimp_main_window.c:826
+#, fuzzy
+msgid "About Gimp-Print "
+msgstr "Óçìåßï ÐñïóÜñôçóçò: "
+
+#: src/gimp/gimp_main_window.c:836
+#, fuzzy
+msgid "Gimp-Print Version "
+msgstr "Åêôýðùóç óå: "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:884
+#, fuzzy
+msgid "Printer Settings"
+msgstr "Ñõèìßóåéò ÅðéëïãÝá"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+#, fuzzy
+msgid "Setup Printer..."
+msgstr "Ñýèìéóç ÅêôõðùôÞ"
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+
+#
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+#, fuzzy
+msgid "New Printer..."
+msgstr "Åêôýðùóç..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:960
+#, fuzzy
+msgid "Media Size:"
+msgstr "ÌÝãåèïò ×:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "ÄéáóôÜóåéò:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "ÐëÜôïò:"
+
+#: src/gimp/gimp_main_window.c:983
+#, fuzzy
+msgid "Width of the paper that you wish to print to"
+msgstr "ÅðéëÝîôå ôïí öÜêåëï ðïõ èÝëåôå íá áíïßîåôå"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "¾øïò:"
+
+#: src/gimp/gimp_main_window.c:1000
+#, fuzzy
+msgid "Height of the paper that you wish to print to"
+msgstr "ÅðéëÝîôå ôïí öÜêåëï ðïõ èÝëåôå íá áíïßîåôå"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1019
+#, fuzzy
+msgid "Media Type:"
+msgstr "Ôýðïò MIME:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1035
+#, fuzzy
+msgid "Media Source:"
+msgstr "Áíïéêôü Ëïãéóìéêü"
+
+#: src/gimp/gimp_main_window.c:1048
+#, fuzzy
+msgid "Type of ink in the printer"
+msgstr "Áñ÷åßï êåéìÝíïõ ðñïò óõìðåñßëçøç óôçí áíáöïñÜ"
+
+#: src/gimp/gimp_main_window.c:1051
+#, fuzzy
+msgid "Ink Type:"
+msgstr "Ôýðïò Óôïé÷åßïõ:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1067
+#, fuzzy
+msgid "Resolution:"
+msgstr "ÁíÜëõóç"
+
+#
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "ÌÝãåèïò"
+
+#: src/gimp/gimp_main_window.c:1103
+#, fuzzy
+msgid "Scaling:"
+msgstr "ÁðïèÞêåõóç:"
+
+#: src/gimp/gimp_main_window.c:1109
+#, fuzzy
+msgid "Set the scale (size) of the image"
+msgstr "ÅëÜôôùóç ôïõ ìåãÝèïõò ôçò åéêüíáò óôï ìéóü"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Ðïóïóôü"
+
+#: src/gimp/gimp_main_window.c:1154
+#, fuzzy
+msgid "Scale the print to the size of the page"
+msgstr "ÅëÜôôùóç ôïõ ìåãÝèïõò ôçò åéêüíáò óôï ìéóü"
+
+#
+#: src/gimp/gimp_main_window.c:1160
+#, fuzzy
+msgid "PPI"
+msgstr "ÁÑÉÈÌ.ÄÉÅÑÃÁÓÉÁÓ"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1192
+#, fuzzy
+msgid "Set the width of the print"
+msgstr "Ôï ðëÜôïò ôïõ ìáñáöåôéïý"
+
+#: src/gimp/gimp_main_window.c:1205
+#, fuzzy
+msgid "Set the height of the print"
+msgstr "Åóôßáóç ãéá ðñïóáñìïãÞ ôïõ ýøïõò ôçò óåëßäáò"
+
+#: src/gimp/gimp_main_window.c:1225
+#, fuzzy
+msgid "Units:"
+msgstr "&ÌïíÜäåò:"
+
+#: src/gimp/gimp_main_window.c:1230
+#, fuzzy
+msgid "Select the base unit of measurement for printing"
+msgstr "ÅðéëÝãåé ãñáììáôïóåéñÝò ãéá åðéêüëëçóç"
+
+#: src/gimp/gimp_main_window.c:1233
+#, fuzzy
+msgid "Inch"
+msgstr "ßíôóá"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr ""
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+#, fuzzy
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr "Áñ÷éêü _ÌÝãåèïò"
+
+#: src/gimp/gimp_main_window.c:1268
+#, fuzzy
+msgid "Set the print size to the size of the image"
+msgstr "Ïñéóìüò ðáñáìåôñïðïéçìÝíïõ ìåãÝèïõò ãéá ôçí åéêüíá"
+
+#: src/gimp/gimp_main_window.c:1292
+#, fuzzy
+msgid "Image / Output Settings"
+msgstr "Ñõèìßóåéò Åéóüäïõ/Åîüäïõ IRC"
+
+#: src/gimp/gimp_main_window.c:1305
+#, fuzzy
+msgid "Image Type:"
+msgstr "Ôýðïò Óôïé÷åßïõ:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1377
+#, fuzzy
+msgid "Output Type:"
+msgstr "Byte Åîüäïõ"
+
+#: src/gimp/gimp_main_window.c:1382
+#, fuzzy
+msgid "Select the desired output type"
+msgstr "ÅðéëïãÞ áñ÷åßïõ ðñïò áðïèÞêåõóç"
+
+#
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "×ñþìá"
+
+#: src/gimp/gimp_main_window.c:1391
+#, fuzzy
+msgid "Color output"
+msgstr "Êýëéóç üôáí õðÜñ÷åé íÝá Ýîïäïò"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Êëßìáêá ôïõ ãêñé"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1410
+#, fuzzy
+msgid "Black and White"
+msgstr "Ìáõ_ñüáóðñï"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr ""
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+
+#: src/gimp/print-image-gimp.c:318
+#, fuzzy
+msgid "Printing..."
+msgstr "Åêôõðþíåôáé .."
+
+#: src/gimp/print.c:166
+#, fuzzy
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Ößëôñá/Êåßìåíï/FreeType..."
+
+#
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Áñ÷åßï"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:635
+#, fuzzy, c-format
+msgid "Unknown option %s\n"
+msgstr "¶ãíùóôïò êùäéêüò op %u"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:949
+#, fuzzy, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "¶íïéãìá áñ÷åßïõ %s áäýíáôïí\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, fuzzy, c-format
+msgid "Unknown printer %s\n"
+msgstr "¶ãíùóôïò êùäéêüò op %u"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr ""
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 x 360 DPI"
+
+#~ msgid "13x19"
+#~ msgstr "13x19"
+
+#, fuzzy
+#~ msgid "Monarch"
+#~ msgstr "ÌÜñôéïò"
+
+#, fuzzy
+#~ msgid "Long 3"
+#~ msgstr "ÌåãÜëç"
+
+#, fuzzy
+#~ msgid "Long 4"
+#~ msgstr "ÌåãÜëç"
+
+#, fuzzy
+#~ msgid "Kaku"
+#~ msgstr "Áíôßãñáöï áóöáëåßáò"
+
+#, fuzzy
+#~ msgid "HP Greeting Card"
+#~ msgstr "×áéñåôéóìüò SMTP"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr "Äåí åßíáé äõíáôü íá åëåã÷èåß ï öÜêåëïò: %s: %s"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
new file mode 100644
index 0000000..0e8f89b
--- /dev/null
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index 86f731f..9420be6 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -3,12 +3,12 @@
# Roger Leigh <roger@whinlatter.uklinux.net>, 2001.
# Christian Rose <menthos@menthos.com>, 2001.
#
-# $Id: en_GB.po,v 1.80 2001/11/24 15:50:55 rlk Exp $
+# $Id: en_GB.po,v 1.80.2.51 2004/04/19 00:04:57 rlk Exp $
#
msgid ""
msgstr ""
"Project-Id-Version: gimp-print\n"
-"POT-Creation-Date: 2001-11-24 10:41-0500\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
"PO-Revision-Date: 2001-11-05 21:42+0100\n"
"Last-Translator: Roger Leigh <roger@whinlatter.uklinux.net>\n"
"Language-Team: British English\n"
@@ -75,798 +75,897 @@ msgstr "%s: option `-W %s' is ambiguous\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: option `-W %s' doesn't allow an argument\n"
-#: src/main/print-canon.c:1310 src/main/print-escp2.c:1652
-#: src/main/print-escp2.c:1711 src/main/print-lexmark.c:882
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
msgid "Plain Paper"
msgstr "Plain Paper"
-#: src/main/print-canon.c:1311 src/main/print-escp2.c:1664
-#: src/main/print-escp2.c:1723 src/main/print-lexmark.c:888
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
msgid "Transparencies"
msgstr "Transparencies"
-#: src/main/print-canon.c:1312
+#: src/main/print-canon.c:1174
msgid "Back Print Film"
msgstr "Back Print Film"
-#: src/main/print-canon.c:1313
+#: src/main/print-canon.c:1175
msgid "Fabric Sheets"
msgstr "Fabric Sheets"
-#: src/main/print-canon.c:1314
+#: src/main/print-canon.c:1176
msgid "Envelope"
msgstr "Envelope"
-#: src/main/print-canon.c:1315
+#: src/main/print-canon.c:1177
msgid "High Resolution Paper"
msgstr "High Resolution Paper"
-#: src/main/print-canon.c:1316
+#: src/main/print-canon.c:1178
msgid "T-Shirt Transfers"
msgstr "T-Shirt Transfers"
-#: src/main/print-canon.c:1317
+#: src/main/print-canon.c:1179
msgid "High Gloss Film"
msgstr "High Gloss Film"
-#: src/main/print-canon.c:1318
+#: src/main/print-canon.c:1180
msgid "Glossy Photo Paper"
msgstr "Glossy Photo Paper"
-#: src/main/print-canon.c:1319
+#: src/main/print-canon.c:1181
msgid "Glossy Photo Cards"
msgstr "Glossy Photo Cards"
-#: src/main/print-canon.c:1320
+#: src/main/print-canon.c:1182
msgid "Photo Paper Pro"
msgstr "Photo Paper Pro"
-#: src/main/print-canon.c:1321 src/main/print-escp2.c:1698
-#: src/main/print-escp2.c:1757 src/main/print-lexmark.c:918
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
msgid "Other"
msgstr "Other"
-#: src/main/print-canon.c:1594 src/main/print-lexmark.c:1133
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
msgid "Auto Sheet Feeder"
msgstr "Auto Sheet Feeder"
-#: src/main/print-canon.c:1595 src/main/print-lexmark.c:1134
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
msgid "Manual with Pause"
msgstr "Manual with Pause"
-#: src/main/print-canon.c:1596 src/main/print-lexmark.c:1135
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
msgid "Manual without Pause"
msgstr "Manual without Pause"
-#: src/escputil/escputil.c:577 src/main/print-canon.c:1689
-#: src/main/print-lexmark.c:639
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
msgid "Black"
msgstr "Black"
-#: src/main/print-canon.c:1694
+#: src/main/print-canon.c:1563
msgid "CMY Color"
msgstr "CMY Colour"
-#: src/main/print-canon.c:1699
+#: src/main/print-canon.c:1568
msgid "CMYK Color"
msgstr "CMYK Colour"
-#: src/main/print-canon.c:1704
+#: src/main/print-canon.c:1573
msgid "Photo CcMmY Color"
msgstr "Photo CcMmY Colour"
-#: src/main/print-canon.c:1709
+#: src/main/print-canon.c:1578
msgid "Photo CcMmYK Color"
msgstr "Photo CcMmYK Colour"
-#: src/main/print-dither.c:62
+#: src/main/print-dither.c:64
msgid "Adaptive Hybrid"
msgstr "Adaptive Hybrid"
-#: src/main/print-dither.c:63
+#: src/main/print-dither.c:65
msgid "Ordered"
msgstr "Ordered"
-#: src/main/print-dither.c:64
+#: src/main/print-dither.c:66
msgid "Fast"
msgstr "Fast"
-#: src/main/print-dither.c:65
+#: src/main/print-dither.c:67
msgid "Very Fast"
msgstr "Very Fast"
-#: src/main/print-dither.c:66
+#: src/main/print-dither.c:68
msgid "Hybrid Floyd-Steinberg"
msgstr "Hybrid Floyd-Steinberg"
-#: src/main/print-escp2.c:1655 src/main/print-escp2.c:1714
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+#, fuzzy
+msgid "EvenTone"
+msgstr "Envelope"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Three Colour Composite"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Four Colour Standard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Six Colour Photo"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Five Colour Photo Composite"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Seven Colour Enhanced"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Six Colour Enhanced Composite"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+#, fuzzy
+msgid "Seven Color Photo"
+msgstr "Six Colour Photo"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+#, fuzzy
+msgid "Two Level Grayscale"
+msgstr "Grayscale"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
msgid "Plain Paper Fast Load"
msgstr "Plain Paper Fast Load"
#. 7.25 * 10.5in
-#: src/main/print-escp2.c:1658 src/main/print-escp2.c:1717
-#: src/main/print-util.c:532
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
msgid "Postcard"
msgstr "Postcard"
-#: src/main/print-escp2.c:1661 src/main/print-escp2.c:1720
-#: src/main/print-lexmark.c:885
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
msgid "Glossy Film"
msgstr "Glossy Film"
-#: src/main/print-escp2.c:1667 src/main/print-escp2.c:1726
-#: src/main/print-lexmark.c:891
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
msgid "Envelopes"
msgstr "Envelopes"
-#: src/main/print-escp2.c:1670 src/main/print-escp2.c:1729
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
msgid "Back Light Film"
msgstr "Back Light Film"
-#: src/main/print-escp2.c:1673 src/main/print-escp2.c:1732
-#: src/main/print-lexmark.c:894
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
msgid "Matte Paper"
msgstr "Matte Paper"
-#: src/main/print-escp2.c:1676 src/main/print-escp2.c:1735
-#: src/main/print-lexmark.c:897
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
msgid "Inkjet Paper"
msgstr "Inkjet Paper"
-#: src/main/print-escp2.c:1679 src/main/print-escp2.c:1738
-#: src/main/print-lexmark.c:900
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
msgid "Photo Quality Inkjet Paper"
msgstr "Photo Quality Inkjet Paper"
-#: src/main/print-escp2.c:1682 src/main/print-escp2.c:1741
-#: src/main/print-lexmark.c:903
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
msgid "Photo Paper"
msgstr "Photo Paper"
-#: src/main/print-escp2.c:1685 src/main/print-escp2.c:1744
-#: src/main/print-lexmark.c:906
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
msgid "Premium Glossy Photo Paper"
msgstr "Premium Glossy Photo Paper"
-#: src/main/print-escp2.c:1689 src/main/print-escp2.c:1748
-#: src/main/print-lexmark.c:909
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
msgid "Premium Luster Photo Paper"
msgstr "Premium Lustre Photo Paper"
-#: src/main/print-escp2.c:1692 src/main/print-escp2.c:1751
-#: src/main/print-lexmark.c:912
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
msgid "Photo Quality Glossy Paper"
msgstr "Photo Quality Glossy Paper"
-#: src/main/print-escp2.c:1695 src/main/print-escp2.c:1754
-#: src/main/print-lexmark.c:915
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
msgid "Ilford Heavy Paper"
msgstr "Ilford Heavy Paper"
-#: src/main/print-escp2.c:2825 src/main/print-escp2.c:2827
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Plain Paper"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
msgid "360 x 90 DPI Fast Economy Draft"
msgstr "360 × 90 DPI Fast Economy Draft"
-#: src/main/print-escp2.c:2830 src/main/print-escp2.c:2832
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
msgid "360 x 120 DPI Economy Draft"
msgstr "360 × 120 DPI Economy Draft"
-#: src/main/print-escp2.c:2835 src/main/print-escp2.c:2837
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
msgid "180 DPI Economy Draft"
msgstr "180 DPI Economy Draft"
-#: src/main/print-escp2.c:2840 src/main/print-escp2.c:2842
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
msgid "360 x 240 DPI Draft"
msgstr "360 × 240 DPI Draft"
-#: src/main/print-escp2.c:2845 src/main/print-escp2.c:2847
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
msgid "360 x 180 DPI Draft"
msgstr "360 × 180 DPI Draft"
-#: src/main/print-escp2.c:2850 src/main/print-escp2.c:2858
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
msgid "360 DPI"
msgstr "360 DPI"
-#: src/main/print-escp2.c:2852 src/main/print-escp2.c:2860
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
msgid "360 DPI Unidirectional"
msgstr "360 DPI Unidirectional"
-#: src/main/print-escp2.c:2854
-msgid "360 DPI Microweave"
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+#, fuzzy
+msgid "360 DPI Interleave"
msgstr "360 DPI Microweave"
-#: src/main/print-escp2.c:2856
-msgid "360 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+#, fuzzy
+msgid "360 DPI Interleave Unidirectional"
msgstr "360 DPI Microweave Unidirectional"
-#: src/main/print-escp2.c:2862
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 × 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 × 360 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+#, fuzzy
+msgid "720 DPI Interleave"
+msgstr "720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+#, fuzzy
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI High Quality"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI High Quality Unidirectional"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Highest Quality"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 × 720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+#, fuzzy
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 × 720 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 × 720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 × 720 DPI Highest Quality"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 × 720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 × 1440 DPI Highest Quality"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
msgid "360 DPI Full Overlap"
msgstr "360 DPI Full Overlap"
-#: src/main/print-escp2.c:2864
+#: src/main/print-escp2-data.c:4100
msgid "360 DPI Full Overlap Unidirectional"
msgstr "360 DPI Full Overlap Unidirectional"
-#: src/main/print-escp2.c:2866
+#: src/main/print-escp2-data.c:4102
msgid "360 DPI FOL2"
msgstr "360 DPI FOL2"
-#: src/main/print-escp2.c:2868
+#: src/main/print-escp2-data.c:4104
msgid "360 DPI FOL2 Unidirectional"
msgstr "360 DPI FOL2 Unidirectional"
-#: src/main/print-escp2.c:2870
+#: src/main/print-escp2-data.c:4106
msgid "360 DPI MW2"
msgstr "360 DPI MW2"
-#: src/main/print-escp2.c:2872
+#: src/main/print-escp2-data.c:4108
msgid "360 DPI MW2 Unidirectional"
msgstr "360 DPI MW2 Unidirectional"
-#: src/main/print-escp2.c:2875 src/main/print-escp2.c:2879
-msgid "720 x 360 DPI"
-msgstr "720 × 360 DPI"
-
-#: src/main/print-escp2.c:2877 src/main/print-escp2.c:2881
-msgid "720 x 360 DPI Unidirectional"
-msgstr "720 × 360 DPI Unidirectional"
-
-#: src/main/print-escp2.c:2883
-msgid "720 x 360 DPI Microweave"
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
msgstr "720 × 360 DPI Microweave"
-#: src/main/print-escp2.c:2885
-msgid "720 x 360 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:4117
+#, fuzzy
+msgid "720 x 360 DPI Interleave Unidirectional"
msgstr "720 × 360 DPI Microweave Unidirectional"
-#: src/main/print-escp2.c:2887
+#: src/main/print-escp2-data.c:4119
msgid "720 x 360 DPI FOL"
msgstr "720 × 360 DPI FOL"
-#: src/main/print-escp2.c:2889
+#: src/main/print-escp2-data.c:4121
msgid "720 x 360 DPI FOL Unidirectional"
msgstr "720 × 360 DPI FOL Unidirectional"
-#: src/main/print-escp2.c:2891
+#: src/main/print-escp2-data.c:4123
msgid "720 x 360 DPI FOL2"
msgstr "720 × 360 DPI FOL2"
-#: src/main/print-escp2.c:2893
+#: src/main/print-escp2-data.c:4125
msgid "720 x 360 DPI FOL2 Unidirectional"
msgstr "720 × 360 DPI FOL2 Unidirectional"
-#: src/main/print-escp2.c:2895
+#: src/main/print-escp2-data.c:4127
msgid "720 x 360 DPI MW2"
msgstr "720 × 360 DPI MW2"
-#: src/main/print-escp2.c:2897
+#: src/main/print-escp2-data.c:4129
msgid "720 x 360 DPI MW2 Unidirectional"
msgstr "720 × 360 DPI MW2 Unidirectional"
-#: src/main/print-escp2.c:2900 src/main/print-escp2.c:2916
-msgid "720 DPI"
-msgstr "720 DPI"
-
-#: src/main/print-escp2.c:2902 src/main/print-escp2.c:2918
-msgid "720 DPI Unidirectional"
-msgstr "720 DPI Unidirectional"
-
-#: src/main/print-escp2.c:2904
-msgid "720 DPI Microweave"
-msgstr "720 DPI Microweave"
-
-#: src/main/print-escp2.c:2906
-msgid "720 DPI Microweave Unidirectional"
-msgstr "720 DPI Microweave Unidirectional"
-
-#: src/main/print-escp2.c:2908
+#: src/main/print-escp2-data.c:4136
msgid "720 DPI Full Overlap"
msgstr "720 DPI Full Overlap"
-#: src/main/print-escp2.c:2910
+#: src/main/print-escp2-data.c:4138
msgid "720 DPI Full Overlap Unidirectional"
msgstr "720 DPI Full Overlap Unidirectional"
-#: src/main/print-escp2.c:2912
+#: src/main/print-escp2-data.c:4140
msgid "720 DPI Four Pass"
msgstr "720 DPI Four Pass"
-#: src/main/print-escp2.c:2914
+#: src/main/print-escp2-data.c:4142
msgid "720 DPI Four Pass Unidirectional"
msgstr "720 DPI Four Pass Unidirectional"
-#: src/main/print-escp2.c:2920
-msgid "720 DPI High Quality"
-msgstr "720 DPI High Quality"
-
-#: src/main/print-escp2.c:2922
-msgid "720 DPI High Quality Unidirectional"
-msgstr "720 DPI High Quality Unidirectional"
-
-#: src/main/print-escp2.c:2924
-msgid "720 DPI Highest Quality"
-msgstr "720 DPI Highest Quality"
-
-#: src/main/print-escp2.c:2927 src/main/print-escp2.c:2943
-msgid "1440 x 720 DPI"
-msgstr "1440 × 720 DPI"
-
-#: src/main/print-escp2.c:2929 src/main/print-escp2.c:2945
-msgid "1440 x 720 DPI Unidirectional"
-msgstr "1440 × 720 DPI Unidirectional"
-
-#: src/main/print-escp2.c:2931
-msgid "1440 x 720 DPI Microweave"
-msgstr "1440 × 720 DPI Microweave"
-
-#: src/main/print-escp2.c:2933
-msgid "1440 x 720 DPI Microweave Unidirectional"
-msgstr "1440 × 720 DPI Microweave Unidirectional"
-
-#: src/main/print-escp2.c:2935
+#: src/main/print-escp2-data.c:4149
msgid "1440 x 720 DPI FOL"
msgstr "1440 × 720 DPI FOL"
-#: src/main/print-escp2.c:2937
+#: src/main/print-escp2-data.c:4151
msgid "1440 x 720 DPI FOL Unidirectional"
msgstr "1440 × 720 DPI FOL Unidirectional"
-#: src/main/print-escp2.c:2939
+#: src/main/print-escp2-data.c:4153
msgid "1440 x 720 DPI Four Pass"
msgstr "1440 × 720 DPI Four Pass"
-#: src/main/print-escp2.c:2941
+#: src/main/print-escp2-data.c:4155
msgid "1440 x 720 DPI Four Pass Unidirectional"
msgstr "1440 × 720 DPI Four Pass Unidirectional"
-#: src/main/print-escp2.c:2947
-msgid "1440 x 720 DPI Highest Quality"
-msgstr "1440 × 720 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 × 720 DPI"
-#: src/main/print-escp2.c:2950
-msgid "2880 x 720 DPI"
+#: src/main/print-escp2-data.c:4160
+#, fuzzy
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 × 720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:4162
+#, fuzzy
+msgid "2880 x 720 DPI FOL"
msgstr "2880 × 720 DPI"
-#: src/main/print-escp2.c:2952
-msgid "2880 x 720 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4164
+#, fuzzy
+msgid "2880 x 720 DPI FOL Unidirectional"
msgstr "2880 × 720 DPI Unidirectional"
-#.
-#. * Nothing thus far supports 1440 DPI vertical resolution
-#.
-#: src/main/print-escp2.c:2958
-msgid "1440 x 1440 DPI"
-msgstr "1440 × 1440 DPI"
+#: src/main/print-escp2-data.c:4166
+#, fuzzy
+msgid "2880 x 720 DPI Four Pass"
+msgstr "1440 × 720 DPI Four Pass"
-#: src/main/print-escp2.c:2960
-msgid "1440 x 1440 DPI Highest Quality"
-msgstr "1440 × 1440 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4168
+#, fuzzy
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 × 720 DPI Four Pass Unidirectional"
-#: src/main/print-escp2.c:2963
-msgid "2880 x 1440 DPI"
-msgstr "2880 × 1440 DPI"
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 × 1440 DPI"
-#.
-#. * These resolutions have no practical use; they're neither as good as
-#. * nor any faster than 720x720 DPI. They exist to permit testing
-#. * 2880x720 (4:1 aspect) on 1440x720 printers.
-#.
-#: src/main/print-escp2.c:2971
-msgid "1440 x 360 DPI"
-msgstr "1440 × 360 DPI"
+#: src/main/print-escp2-data.c:4173
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 × 720 DPI Microweave Unidirectional"
-#: src/main/print-escp2.c:2973
-msgid "1440 x 360 DPI Unidirectional"
-msgstr "1440 × 360 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4175
+#, fuzzy
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 × 1440 DPI"
-#: src/main/print-escp2.c:2975
-msgid "1440 x 360 DPI High Quality"
-msgstr "1440 × 360 DPI High Quality"
+#: src/main/print-escp2-data.c:4177
+#, fuzzy
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 × 720 DPI FOL Unidirectional"
-#: src/main/print-escp2.c:2977
-msgid "1440 x 360 DPI High Quality Uni"
-msgstr "1440 × 360 DPI High Quality Uni"
+#: src/main/print-escp2-data.c:4179
+#, fuzzy
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 × 720 DPI Four Pass"
-#: src/main/print-escp2.c:2979
-msgid "1440 x 360 DPI Highest Quality"
-msgstr "1440 × 360 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4181
+#, fuzzy
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 × 720 DPI Four Pass Unidirectional"
-#: src/main/print-escp2.c:2995
-msgid "Seven Color Enhanced"
-msgstr "Seven Colour Enhanced"
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 × 1440 DPI"
-#: src/main/print-escp2.c:2996
-msgid "Six Color Enhanced Composite"
-msgstr "Six Colour Enhanced Composite"
+#: src/main/print-escp2-data.c:4186
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "720 × 360 DPI Microweave Unidirectional"
-#: src/main/print-escp2.c:2997 src/main/print-lexmark.c:629
-#: src/main/print-lexmark.c:709
-msgid "Six Color Photo"
-msgstr "Six Colour Photo"
+#: src/main/print-escp2-data.c:4188
+#, fuzzy
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 × 1440 DPI"
-#: src/main/print-escp2.c:2998 src/main/print-lexmark.c:634
-#: src/main/print-lexmark.c:714
-msgid "Five Color Photo Composite"
-msgstr "Five Colour Photo Composite"
+#: src/main/print-escp2-data.c:4190
+#, fuzzy
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "720 × 360 DPI FOL Unidirectional"
-#. output_type ncolors used_colors pass_length v_top_head_offset
-#. * h_catridge_offset
-#. * h_direction_offset
-#. * head_offset
-#: src/main/print-escp2.c:2999 src/main/print-lexmark.c:619
-#: src/main/print-lexmark.c:699
-msgid "Four Color Standard"
-msgstr "Four Colour Standard"
+#: src/main/print-escp2-data.c:4192
+#, fuzzy
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "1440 × 720 DPI Four Pass"
-#: src/main/print-escp2.c:3000 src/main/print-lexmark.c:624
-#: src/main/print-lexmark.c:704
-msgid "Three Color Composite"
-msgstr "Three Colour Composite"
+#: src/main/print-escp2-data.c:4194
+#, fuzzy
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "720 DPI Four Pass Unidirectional"
-#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2.c:3323
-#: src/main/print-pcl.c:198
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
msgid "Standard"
msgstr "Standard"
-#: src/main/print-escp2.c:3325
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
msgid "Roll Feed"
msgstr "Roll Feed"
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Autoselect"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
#. name hres vres softw v_pass overs unidir resid
-#: src/main/print-lexmark.c:595 src/main/print-lexmark.c:681
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
msgid "300 DPI x 600 DPI"
msgstr "300 DPI × 600 DPI"
-#: src/main/print-lexmark.c:596 src/main/print-lexmark.c:682
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
msgid "600 DPI"
msgstr "600 DPI"
-#: src/main/print-lexmark.c:597 src/main/print-lexmark.c:683
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
msgid "600 DPI high quality"
msgstr "600 DPI high quality"
-#: src/main/print-lexmark.c:598 src/main/print-lexmark.c:684
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
msgid "600 DPI Unidirectional"
msgstr "600 DPI Unidirectional"
-#: src/main/print-lexmark.c:599 src/main/print-lexmark.c:685
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
msgid "1200 DPI"
msgstr "1200 DPI"
-#: src/main/print-lexmark.c:600 src/main/print-lexmark.c:686
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
msgid "1200 DPI high quality"
msgstr "1200 DPI high quality"
-#: src/main/print-lexmark.c:601 src/main/print-lexmark.c:687
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
msgid "1200 DPI highest quality"
msgstr "1200 DPI highest quality"
-#: src/main/print-lexmark.c:602 src/main/print-lexmark.c:688
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
msgid "1200 DPI Unidirectional"
msgstr "1200 DPI Unidirectional"
-#: src/main/print-lexmark.c:603
+#: src/main/print-lexmark.c:630
msgid "2400 DPI x 1200 DPI"
msgstr "2400 DPI × 1200 DPI"
-#: src/main/print-lexmark.c:604
+#: src/main/print-lexmark.c:631
msgid "2400 DPI x 1200 DPI high quality"
msgstr "2400 DPI × 1200 DPI high quality"
-#: src/main/print-lexmark.c:605
+#: src/main/print-lexmark.c:632
msgid "2400 DPI x 1200 DPI highest quality"
msgstr "2400 DPI × 1200 DPI highest quality"
-#: src/main/print-lexmark.c:607
+#: src/main/print-lexmark.c:634
msgid "test print"
msgstr "test print"
-#. 11in x 17in
-#: src/main/print-pcl.c:108 src/main/print-util.c:530
-msgid "Executive"
-msgstr "Executive"
-
-#. US Exec (7.25 x 10.5 in)
-#: src/main/print-pcl.c:109 src/main/print-util.c:524
-msgid "Letter"
-msgstr "Letter"
-
-#. US Letter (8.5 x 11 in)
-#: src/main/print-pcl.c:110 src/main/print-util.c:526
-msgid "Legal"
-msgstr "Legal"
-
-#. US Legal (8.5 x 14 in)
-#: src/main/print-pcl.c:111 src/main/print-util.c:528
-msgid "Tabloid"
-msgstr "Tabloid"
-
-#. US Tabloid (11 x 17 in)
-#: src/main/print-pcl.c:112 src/main/print-pcl.c:199 src/main/print-util.c:548
-msgid "Manual"
-msgstr "Manual"
-
-#. US Manual/Statement (5.5 x 8.5 in)
-#: src/main/print-pcl.c:113
-msgid "13x19"
-msgstr "13×19"
-
-#. US 13x19/Super B (13 x 19 in)
-#: src/main/print-pcl.c:114 src/main/print-util.c:599
-msgid "A5"
-msgstr "A5"
-
-#. ISO/JIS A5 (148 x 210 mm)
-#: src/main/print-pcl.c:115 src/main/print-util.c:597
-msgid "A4"
-msgstr "A4"
-
-#. ISO/JIS A4 (210 x 297 mm)
-#: src/main/print-pcl.c:116 src/main/print-util.c:595
-msgid "A3"
-msgstr "A3"
-
-#. ISO/JIS A3 (297 x 420 mm)
-#: src/main/print-pcl.c:117 src/main/print-util.c:681
-msgid "B5 JIS"
-msgstr "B5 JIS"
-
-#. JIS B5 (182 x 257 mm).
-#: src/main/print-pcl.c:118 src/main/print-util.c:679
-msgid "B4 JIS"
-msgstr "B4 JIS"
-
-#. JIS B4 (257 x 364 mm).
-#: src/main/print-pcl.c:119 src/main/print-util.c:783
-msgid "Hagaki Card"
-msgstr "Hagaki Card"
-
-#. Japanese Hagaki Card (100 x 148 mm)
-#: src/main/print-pcl.c:120 src/main/print-util.c:785
-msgid "Oufuku Card"
-msgstr "Oufuku Card"
-
-#. Japanese Oufuku Card (148 x 200 mm)
-#: src/main/print-pcl.c:121 src/main/print-util.c:601
-msgid "A6"
-msgstr "A6"
-
-#. ISO/JIS A6 card
-#: src/main/print-pcl.c:122 src/main/print-util.c:536
-msgid "4x6"
-msgstr "4×6"
-
-#. US Index card (4 x 6 in)
-#: src/main/print-pcl.c:123 src/main/print-util.c:542
-msgid "5x8"
-msgstr "5×8"
-
-#. US Index card (5 x 8 in)
-#: src/main/print-pcl.c:124 src/main/print-util.c:534
-msgid "3x5"
-msgstr "3×5"
-
-#. US Index card (3 x 5 in)
-#: src/main/print-pcl.c:125
-msgid "Monarch"
-msgstr "Monarch"
-
-#. Monarch Envelope (3 7/8 x 7 1/2 in)
-#: src/main/print-pcl.c:126 src/main/print-util.c:793
-msgid "Commercial 10"
-msgstr "Commercial 10"
-
-#. US Commercial 10 Envelope (4.125 x 9.5 in) Portrait
-#: src/main/print-pcl.c:127 src/main/print-util.c:713
-msgid "DL"
-msgstr "DL"
-
-#. DL envelope (110 x 220 mm) Portrait
-#: src/main/print-pcl.c:128 src/main/print-util.c:707
-msgid "C5"
-msgstr "C5"
-
-#. C5 envelope (162 x 229 mm)
-#: src/main/print-pcl.c:129 src/main/print-util.c:711
-msgid "C6"
-msgstr "C6"
-
-#. C6 envelope (114 x 162 mm)
-#: src/main/print-pcl.c:130 src/main/print-util.c:795
-msgid "A2 Invitation"
-msgstr "A2 Invitation"
-
-#. US A2 Invitation envelope (4 3/8 x 5 3/4 in)
-#: src/main/print-pcl.c:131
-msgid "Long 3"
-msgstr "Long 3"
-
-#. Japanese Long Envelope #3 (120 x 235 mm)
-#: src/main/print-pcl.c:132
-msgid "Long 4"
-msgstr "Long 4"
-
-#. Japanese Long Envelope #4 (90 x 205 mm)
-#: src/main/print-pcl.c:133
-msgid "Kaku"
-msgstr "Kaku"
-
-#. Japanese Kaku Envelope (240 x 332.1 mm)
-#. *** MRS: this size not supported by print-util funcs! ***
-#: src/main/print-pcl.c:135
-msgid "HP Greeting Card"
-msgstr "HP Greeting Card"
-
-#: src/main/print-pcl.c:153
+#: src/main/print-pcl.c:157
msgid "Plain"
msgstr "Plain"
-#: src/main/print-pcl.c:154
+#: src/main/print-pcl.c:158
msgid "Bond"
msgstr "Bond"
-#: src/main/print-pcl.c:155
+#: src/main/print-pcl.c:159
msgid "Premium"
msgstr "Premium"
-#: src/main/print-pcl.c:156
+#: src/main/print-pcl.c:160
msgid "Glossy Photo"
msgstr "Glossy Photo"
-#: src/main/print-pcl.c:157
+#: src/main/print-pcl.c:161
msgid "Transparency"
msgstr "Transparency"
-#: src/main/print-pcl.c:158
+#: src/main/print-pcl.c:162
msgid "Quick-dry Photo"
msgstr "Quick-dry Photo"
-#: src/main/print-pcl.c:159
+#: src/main/print-pcl.c:163
msgid "Quick-dry Transparency"
msgstr "Quick-dry Transparency"
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manual"
+
#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
-#: src/main/print-pcl.c:201
+#: src/main/print-pcl.c:205
msgid "Tray 1"
msgstr "Tray 1"
-#: src/main/print-pcl.c:202 src/main/print-pcl.c:208
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
msgid "Tray 2"
msgstr "Tray 2"
-#: src/main/print-pcl.c:203
+#: src/main/print-pcl.c:207
msgid "Tray 3"
msgstr "Tray 3"
-#: src/main/print-pcl.c:204
+#: src/main/print-pcl.c:208
msgid "Tray 4"
msgstr "Tray 4"
-#: src/main/print-pcl.c:205
+#: src/main/print-pcl.c:209
msgid "Portable Sheet Feeder"
msgstr "Portable Sheet Feeder"
-#: src/main/print-pcl.c:206
+#: src/main/print-pcl.c:210
msgid "Desktop Sheet Feeder"
msgstr "Desktop Sheet Feeder"
-#: src/main/print-pcl.c:207
+#: src/main/print-pcl.c:211
msgid "Tray"
msgstr "Tray"
-#: src/main/print-pcl.c:209
+#: src/main/print-pcl.c:213
msgid "Optional Source"
msgstr "Optional Source"
-#: src/main/print-pcl.c:210
+#: src/main/print-pcl.c:214
msgid "Autoselect"
msgstr "Autoselect"
-#: src/main/print-pcl.c:224
+#: src/main/print-pcl.c:228
msgid "150x150 DPI"
msgstr "150×150 DPI"
-#: src/main/print-pcl.c:225
+#: src/main/print-pcl.c:229
msgid "300x300 DPI"
msgstr "300×300 DPI"
-#: src/main/print-pcl.c:226
+#: src/main/print-pcl.c:230
msgid "600x300 DPI"
msgstr "600×300 DPI"
-#: src/main/print-pcl.c:227
+#: src/main/print-pcl.c:231
msgid "600x600 DPI monochrome"
msgstr "600×600 DPI monochrome"
-#: src/main/print-pcl.c:228
+#: src/main/print-pcl.c:232
msgid "600x600 DPI"
msgstr "600×600 DPI"
-#: src/main/print-pcl.c:229
+#: src/main/print-pcl.c:233
msgid "1200x600 DPI"
msgstr "1200×600 DPI"
-#: src/main/print-pcl.c:230
+#: src/main/print-pcl.c:234
msgid "2400x600 DPI"
msgstr "2400×600 DPI"
-#: src/main/print-pcl.c:1563
+#: src/main/print-pcl.c:1763
msgid "Color + Black Cartridges"
msgstr "Colour + Black Cartridges"
-#: src/main/print-pcl.c:1564
+#: src/main/print-pcl.c:1764
msgid "Color + Photo Cartridges"
msgstr "Colour + Photo Cartridges"
#. Name of file or command to print to
-#: src/main/print-util.c:125 src/main/print-util.c:159
-#: src/main/print-util.c:193
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
msgid "ps2"
msgstr "ps2"
-#: src/main/print-util.c:538
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3×5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4×6"
+
+#: src/main/print-util.c:547
msgid "Epson 4x6 Photo Paper"
msgstr "Epson 4×6 Photo Paper"
-#: src/main/print-util.c:540
+#: src/main/print-util.c:549
msgid "5x7"
msgstr "5×7"
-#: src/main/print-util.c:544
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5×8"
+
+#: src/main/print-util.c:553
msgid "6x8"
msgstr "6×8"
-#: src/main/print-util.c:546
+#: src/main/print-util.c:555
msgid "8x10"
msgstr "8×10"
#. 5.5in x 8.5in
-#: src/main/print-util.c:550
+#: src/main/print-util.c:559
msgid "12x18"
msgstr "12×18"
-#: src/main/print-util.c:552
+#: src/main/print-util.c:561
msgid "Super B 13x19"
msgstr "Super B 13×19"
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
#. Other common photographic paper sizes
-#: src/main/print-util.c:556
+#: src/main/print-util.c:567
msgid "8x12"
msgstr "8×12"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:558
+#: src/main/print-util.c:569
msgid "11x14"
msgstr "11×14"
-#: src/main/print-util.c:560
+#: src/main/print-util.c:571
msgid "16x20"
msgstr "16×20"
-#: src/main/print-util.c:562
+#: src/main/print-util.c:573
msgid "16x24"
msgstr "16×24"
#. 20x24 for 35 mm
-#: src/main/print-util.c:564
+#: src/main/print-util.c:575
msgid "20x24"
msgstr "20×24"
-#: src/main/print-util.c:566
+#: src/main/print-util.c:577
msgid "20x30"
msgstr "20×30"
#. 24x30 for 35 mm
-#: src/main/print-util.c:568
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20×30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
msgid "24x30"
msgstr "24×30"
-#: src/main/print-util.c:570
+#: src/main/print-util.c:583
msgid "24x36"
msgstr "24×36"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:572
+#: src/main/print-util.c:585
msgid "30x40"
msgstr "30×40"
@@ -879,47 +978,72 @@ msgstr "30×40"
#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
#. * size is obtained by doubling or halving another A size.
#.
-#: src/main/print-util.c:585
+#: src/main/print-util.c:598
msgid "4A"
msgstr "4A"
#. 1682mm x 2378mm
-#: src/main/print-util.c:587
+#: src/main/print-util.c:600
msgid "2A"
msgstr "2A"
#. 1189mm x 1682mm
-#: src/main/print-util.c:589
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
msgid "A0"
msgstr "A0"
#. 841mm x 1189mm
-#: src/main/print-util.c:591
+#: src/main/print-util.c:606
msgid "A1"
msgstr "A1"
#. 594mm x 841mm
-#: src/main/print-util.c:593
+#: src/main/print-util.c:608
msgid "A2"
msgstr "A2"
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
#. 105mm x 148mm
-#: src/main/print-util.c:603
+#: src/main/print-util.c:618
msgid "A7"
msgstr "A7"
#. 74mm x 105mm
-#: src/main/print-util.c:605
+#: src/main/print-util.c:620
msgid "A8"
msgstr "A8"
#. 52mm x 74mm
-#: src/main/print-util.c:607
+#: src/main/print-util.c:622
msgid "A9"
msgstr "A9"
#. 37mm x 52mm
-#: src/main/print-util.c:609
+#: src/main/print-util.c:624
msgid "A10"
msgstr "A10"
@@ -928,27 +1052,27 @@ msgstr "A10"
#. * Stock sizes for normal trims.
#. * Allowance for trim is 3 millimetres.
#.
-#: src/main/print-util.c:616
+#: src/main/print-util.c:631
msgid "RA0"
msgstr "RA0"
#. 860mm x 1220mm
-#: src/main/print-util.c:618
+#: src/main/print-util.c:633
msgid "RA1"
msgstr "RA1"
#. 610mm x 860mm
-#: src/main/print-util.c:620
+#: src/main/print-util.c:635
msgid "RA2"
msgstr "RA2"
#. 430mm x 610mm
-#: src/main/print-util.c:622
+#: src/main/print-util.c:637
msgid "RA3"
msgstr "RA3"
#. 305mm x 430mm
-#: src/main/print-util.c:624
+#: src/main/print-util.c:639
msgid "RA4"
msgstr "RA4"
@@ -956,27 +1080,27 @@ msgstr "RA4"
#.
#. * Stock sizes for bled work or extra trims.
#.
-#: src/main/print-util.c:630
+#: src/main/print-util.c:645
msgid "SRA0"
msgstr "SRA0"
#. 900mm x 1280mm
-#: src/main/print-util.c:632
+#: src/main/print-util.c:647
msgid "SRA1"
msgstr "SRA1"
#. 640mm x 900mm
-#: src/main/print-util.c:634
+#: src/main/print-util.c:649
msgid "SRA2"
msgstr "SRA2"
#. 450mm x 640mm
-#: src/main/print-util.c:636
+#: src/main/print-util.c:651
msgid "SRA3"
msgstr "SRA3"
#. 320mm x 450mm
-#: src/main/print-util.c:638
+#: src/main/print-util.c:653
msgid "SRA4"
msgstr "SRA4"
@@ -984,161 +1108,189 @@ msgstr "SRA4"
#.
#. * "B" series: Posters, wall charts and similar items.
#.
-#: src/main/print-util.c:644
+#: src/main/print-util.c:659
msgid "4B ISO"
msgstr "4B ISO"
#. 2000mm x 2828mm
-#: src/main/print-util.c:646
+#: src/main/print-util.c:661
msgid "2B ISO"
msgstr "2B ISO"
#. 1414mm x 2000mm
-#: src/main/print-util.c:648
+#: src/main/print-util.c:663
msgid "B0 ISO"
msgstr "B0 ISO"
#. 1000mm x 1414mm
-#: src/main/print-util.c:650
+#: src/main/print-util.c:665
msgid "B1 ISO"
msgstr "B1 ISO"
#. 707mm x 1000mm
-#: src/main/print-util.c:652
+#: src/main/print-util.c:667
msgid "B2 ISO"
msgstr "B2 ISO"
#. 500mm x 707mm
-#: src/main/print-util.c:654
+#: src/main/print-util.c:669
msgid "B3 ISO"
msgstr "B3 ISO"
#. 353mm x 500mm
-#: src/main/print-util.c:656
+#: src/main/print-util.c:671
msgid "B4 ISO"
msgstr "B4 ISO"
#. 250mm x 353mm
-#: src/main/print-util.c:658
+#: src/main/print-util.c:673
msgid "B5 ISO"
msgstr "B5 ISO"
#. 176mm x 250mm
-#: src/main/print-util.c:660
+#: src/main/print-util.c:675
msgid "B6 ISO"
msgstr "B6 ISO"
#. 125mm x 176mm
-#: src/main/print-util.c:662
+#: src/main/print-util.c:677
msgid "B7 ISO"
msgstr "B7 ISO"
#. 88mm x 125mm
-#: src/main/print-util.c:664
+#: src/main/print-util.c:679
msgid "B8 ISO"
msgstr "B8 ISO"
#. 62mm x 88mm
-#: src/main/print-util.c:666
+#: src/main/print-util.c:681
msgid "B9 ISO"
msgstr "B9 ISO"
#. 44mm x 62mm
-#: src/main/print-util.c:668
+#: src/main/print-util.c:683
msgid "B10 ISO"
msgstr "B10 ISO"
#. 31mm x 44mm
-#: src/main/print-util.c:671
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
msgid "B0 JIS"
msgstr "B0 JIS"
-#: src/main/print-util.c:673
+#: src/main/print-util.c:690
msgid "B1 JIS"
msgstr "B1 JIS"
-#: src/main/print-util.c:675
+#: src/main/print-util.c:692
msgid "B2 JIS"
msgstr "B2 JIS"
-#: src/main/print-util.c:677
+#: src/main/print-util.c:694
msgid "B3 JIS"
msgstr "B3 JIS"
-#: src/main/print-util.c:683
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
msgid "B6 JIS"
msgstr "B6 JIS"
-#: src/main/print-util.c:685
+#: src/main/print-util.c:702
msgid "B7 JIS"
msgstr "B7 JIS"
-#: src/main/print-util.c:687
+#: src/main/print-util.c:704
msgid "B8 JIS"
msgstr "B8 JIS"
-#: src/main/print-util.c:689
+#: src/main/print-util.c:706
msgid "B9 JIS"
msgstr "B9 JIS"
-#: src/main/print-util.c:691
+#: src/main/print-util.c:708
msgid "B10 JIS"
msgstr "B10 JIS"
#.
#. * "C" series: Envelopes or folders suitable for A size stationery.
#.
-#: src/main/print-util.c:697
+#: src/main/print-util.c:714
msgid "C0"
msgstr "C0"
#. 917mm x 1297mm
-#: src/main/print-util.c:699
+#: src/main/print-util.c:716
msgid "C1"
msgstr "C1"
#. 648mm x 917mm
-#: src/main/print-util.c:701
+#: src/main/print-util.c:718
msgid "C2"
msgstr "C2"
#. 458mm x 648mm
-#: src/main/print-util.c:703
+#: src/main/print-util.c:720
msgid "C3"
msgstr "C3"
#. 324mm x 458mm
-#: src/main/print-util.c:705
+#: src/main/print-util.c:722
msgid "C4"
msgstr "C4"
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
#. 162mm x 229mm
-#: src/main/print-util.c:709
+#: src/main/print-util.c:726
msgid "B6-C4"
msgstr "B6-C4"
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
#. 110mm x 220mm
-#: src/main/print-util.c:715
+#: src/main/print-util.c:732
msgid "C7-6"
msgstr "C7-6"
#. 81mm x 162mm
-#: src/main/print-util.c:717
+#: src/main/print-util.c:734
msgid "C7"
msgstr "C7"
#. 81mm x 114mm
-#: src/main/print-util.c:719
+#: src/main/print-util.c:736
msgid "C8"
msgstr "C8"
#. 57mm x 81mm
-#: src/main/print-util.c:721
+#: src/main/print-util.c:738
msgid "C9"
msgstr "C9"
#. 40mm x 57mm
-#: src/main/print-util.c:723
+#: src/main/print-util.c:740
msgid "C10"
msgstr "C10"
@@ -1146,35 +1298,60 @@ msgstr "C10"
#.
#. * US CAD standard paper sizes
#.
-#: src/main/print-util.c:729
+#: src/main/print-util.c:746
msgid "ArchA"
msgstr "ArchA"
-#: src/main/print-util.c:731
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "T-Shirt Transfers"
+
+#: src/main/print-util.c:750
msgid "ArchB"
msgstr "ArchB"
-#: src/main/print-util.c:733
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "T-Shirt Transfers"
+
+#: src/main/print-util.c:754
msgid "ArchC"
msgstr "ArchC"
-#: src/main/print-util.c:735
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "T-Shirt Transfers"
+
+#: src/main/print-util.c:758
msgid "ArchD"
msgstr "ArchD"
-#: src/main/print-util.c:737
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "T-Shirt Transfers"
+
+#: src/main/print-util.c:762
msgid "ArchE"
msgstr "ArchE"
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "T-Shirt Transfers"
+
#.
#. * Foolscap
#.
-#: src/main/print-util.c:743
+#: src/main/print-util.c:770
msgid "American foolscap"
msgstr "American foolscap"
#. American foolscap
-#: src/main/print-util.c:745
+#: src/main/print-util.c:772
msgid "European foolscap"
msgstr "European foolscap"
@@ -1184,44 +1361,44 @@ msgstr "European foolscap"
#. * The BPIF and the Publishers Association jointly recommend ten
#. * standard metric sizes for case-bound titles as follows:
#.
-#: src/main/print-util.c:753
+#: src/main/print-util.c:780
msgid "Crown Quarto"
msgstr "Crown Quarto"
#. 189mm x 246mm
-#: src/main/print-util.c:755
+#: src/main/print-util.c:782
msgid "Large Crown Quarto"
msgstr "Large Crown Quarto"
#. 201mm x 258mm
-#: src/main/print-util.c:757
+#: src/main/print-util.c:784
msgid "Demy Quarto"
msgstr "Demy Quarto"
#. 219mm x 276mm
-#: src/main/print-util.c:759
+#: src/main/print-util.c:786
msgid "Royal Quarto"
msgstr "Royal Quarto"
#. 237mm x 312mm
#. { "ISO A4", 595,
#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
-#: src/main/print-util.c:763
+#: src/main/print-util.c:790
msgid "Crown Octavo"
msgstr "Crown Octavo"
#. 123mm x 186mm
-#: src/main/print-util.c:765
+#: src/main/print-util.c:792
msgid "Large Crown Octavo"
msgstr "Large Crown Octavo"
#. 129mm x 198mm
-#: src/main/print-util.c:767
+#: src/main/print-util.c:794
msgid "Demy Octavo"
msgstr "Demy Octavo"
#. 138mm x 216mm
-#: src/main/print-util.c:769
+#: src/main/print-util.c:796
msgid "Royal Octavo"
msgstr "Royal Octavo"
@@ -1229,137 +1406,211 @@ msgstr "Royal Octavo"
#. { N_ ("ISO A5"), 419,
#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
#. Paperback sizes in common usage
-#: src/main/print-util.c:775
+#: src/main/print-util.c:802
msgid "Small paperback"
msgstr "Small paperback"
#. 111mm x 178mm
-#: src/main/print-util.c:777
+#: src/main/print-util.c:804
msgid "Penguin small paperback"
msgstr "Penguin small paperback"
#. 111mm x 181mm
-#: src/main/print-util.c:779
+#: src/main/print-util.c:806
msgid "Penguin large paperback"
msgstr "Penguin large paperback"
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki Card"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku Card"
+
#. 148 x 200 mm
-#: src/main/print-util.c:787
+#: src/main/print-util.c:816
msgid "Japanese long envelope #3"
msgstr "Japanese long envelope #3"
#. Japanese long envelope #3
-#: src/main/print-util.c:789
+#: src/main/print-util.c:818
msgid "Japanese long envelope #4"
msgstr "Japanese long envelope #4"
#. Japanese long envelope #4
-#: src/main/print-util.c:791
+#: src/main/print-util.c:820
msgid "Japanese Kaku envelope #4"
msgstr "Japanese Kaku envelope #4"
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitation"
+
#. US A2 invitation
-#: src/main/print-util.c:797
+#: src/main/print-util.c:826
+#, fuzzy
+msgid "Monarch Envelope"
+msgstr "Envelope"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
msgid "Custom"
msgstr "Custom"
-#: src/main/print-util.c:800
+#: src/main/print-util.c:831
msgid "89 mm Roll Paper"
msgstr "89 mm Roll Paper"
-#: src/main/print-util.c:802
+#: src/main/print-util.c:833
msgid "4 Inch Roll Paper"
msgstr "4 Inch Roll Paper"
-#: src/main/print-util.c:804
+#: src/main/print-util.c:835
msgid "5 Inch Roll Paper"
msgstr "5 Inch Roll Paper"
-#: src/main/print-util.c:806
+#: src/main/print-util.c:837
msgid "210 mm Roll Paper"
msgstr "210 mm Roll Paper"
-#: src/main/print-util.c:808
+#: src/main/print-util.c:839
msgid "13 Inch Roll Paper"
msgstr "13 Inch Roll Paper"
-#: src/main/print-util.c:810
+#: src/main/print-util.c:841
msgid "22 Inch Roll Paper"
msgstr "22 Inch Roll Paper"
-#: src/main/print-util.c:812
+#: src/main/print-util.c:843
msgid "24 Inch Roll Paper"
msgstr "24 Inch Roll Paper"
-#: src/main/print-util.c:814
+#: src/main/print-util.c:845
msgid "36 Inch Roll Paper"
msgstr "36 Inch Roll Paper"
-#: src/main/print-util.c:816
+#: src/main/print-util.c:847
msgid "44 Inch Roll Paper"
msgstr "44 Inch Roll Paper"
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/main/print-util.c:1394
+#, fuzzy
+msgid "Printer does not support color output\n"
+msgstr "Printer %s does not require colour head alignment.\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr ""
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr ""
+
#. Specify language of PPD translation
#. Translators: Specify the language of the PPD translation.
#. * Use the English name of your language here, e.g. "Swedish" instead of
#. * "Svenska".
#.
-#: src/cups/genppd.c:455
+#: src/cups/genppd.c:519
msgid "English"
msgstr "English-GB"
#. Specify PPD translation encoding e.g. ISOLatin1
-#: src/cups/genppd.c:457
+#: src/cups/genppd.c:521
msgid "ISOLatin1"
msgstr "ISOLatin1"
-#: src/cups/genppd.c:633
+#: src/cups/genppd.c:777
msgid "Media Type"
msgstr "Media Type"
-#: src/cups/genppd.c:659
+#: src/cups/genppd.c:803
msgid "Media Source"
msgstr "Media Source"
-#: src/cups/genppd.c:683
+#: src/cups/genppd.c:827
msgid "Resolution"
msgstr "Resolution"
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Print"
+
#.
#. * Image types...
#.
-#: src/cups/genppd.c:723
+#: src/cups/genppd.c:869
msgid "Image Type"
msgstr "Image Type"
-#: src/cups/genppd.c:728 src/gimp/gimp_main_window.c:1314
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
msgid "Line Art"
msgstr "Line Art"
-#: src/cups/genppd.c:730 src/gimp/gimp_main_window.c:1328
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
msgid "Solid Colors"
msgstr "Solid Colours"
-#: src/cups/genppd.c:732 src/gimp/gimp_main_window.c:1343
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
msgid "Photograph"
msgstr "Photograph"
#.
#. * Dithering algorithms...
#.
-#: src/cups/genppd.c:740
+#: src/cups/genppd.c:886
msgid "Dither Algorithm"
msgstr "Dither Algorithm"
-#: src/cups/genppd.c:759
+#: src/cups/genppd.c:905
msgid "Ink Type"
msgstr "Ink Type"
-#: src/escputil/escputil.c:64
+#: src/escputil/escputil.c:66
msgid "Escputil version "
msgstr "Escputil version "
-#: src/escputil/escputil.c:65
+#: src/escputil/escputil.c:67
msgid ""
", Copyright (C) 2000-2001 Robert Krawitz\n"
"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
@@ -1371,7 +1622,7 @@ msgstr ""
"This is free software, and you are welcome to redistribute it\n"
"under certain conditions; type 'escputil -l' for details.\n"
-#: src/escputil/escputil.c:70
+#: src/escputil/escputil.c:72
msgid ""
"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
"\n"
@@ -1405,7 +1656,7 @@ msgstr ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#: src/escputil/escputil.c:110
+#: src/escputil/escputil.c:112
msgid ""
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P printer | -r device] [-u] [-q] [-m model]\n"
@@ -1487,7 +1738,7 @@ msgstr ""
" -m|--model Specify the precise printer model for head "
"alignment.\n"
-#: src/escputil/escputil.c:148
+#: src/escputil/escputil.c:150
msgid ""
"Usage: escputil [OPTIONS] [COMMAND]\n"
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
@@ -1561,356 +1812,533 @@ msgstr ""
" -q Suppress the banner.\n"
" -m Specify the precise printer model for head alignment.\n"
-#: src/escputil/escputil.c:199
+#: src/escputil/escputil.c:201
msgid "Stylus C20sx"
msgstr "Stylus C20sx"
-#: src/escputil/escputil.c:200
+#: src/escputil/escputil.c:202
msgid "Stylus C20ux"
msgstr "Stylus C20ux"
-#: src/escputil/escputil.c:201
+#: src/escputil/escputil.c:203
msgid "Stylus C40sx"
msgstr "Stylus C40sx"
-#: src/escputil/escputil.c:202
+#: src/escputil/escputil.c:204
msgid "Stylus C40ux"
msgstr "Stylus C40ux"
-#: src/escputil/escputil.c:203
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
msgid "Stylus C60"
msgstr "Stylus C60"
-#: src/escputil/escputil.c:204
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
msgid "Stylus C70"
msgstr "Stylus C70"
-#: src/escputil/escputil.c:205
+#: src/escputil/escputil.c:220
msgid "Stylus C80"
msgstr "Stylus C80"
-#: src/escputil/escputil.c:206
+#: src/escputil/escputil.c:221
+#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
msgid "Stylus Color"
msgstr "Stylus Colour"
-#: src/escputil/escputil.c:207
+#: src/escputil/escputil.c:225
msgid "Stylus Color Pro"
msgstr "Stylus Colour Pro"
-#: src/escputil/escputil.c:208
+#: src/escputil/escputil.c:226
msgid "Stylus Color Pro XL"
msgstr "Stylus Colour Pro XL"
-#: src/escputil/escputil.c:209
+#: src/escputil/escputil.c:227
msgid "Stylus Color 400"
msgstr "Stylus Colour 400"
-#: src/escputil/escputil.c:210
+#: src/escputil/escputil.c:228
msgid "Stylus Color 440"
msgstr "Stylus Colour 440"
-#: src/escputil/escputil.c:211
+#: src/escputil/escputil.c:229
msgid "Stylus Color 460"
msgstr "Stylus Colour 460"
-#: src/escputil/escputil.c:212
+#: src/escputil/escputil.c:230
msgid "Stylus Color 480"
msgstr "Stylus Colour 480"
-#: src/escputil/escputil.c:213
+#: src/escputil/escputil.c:231
msgid "Stylus Color 500"
msgstr "Stylus Colour 500"
-#: src/escputil/escputil.c:214
+#: src/escputil/escputil.c:232
msgid "Stylus Color 580"
msgstr "Stylus Colour 580"
-#: src/escputil/escputil.c:215
+#: src/escputil/escputil.c:233
msgid "Stylus Color 600"
msgstr "Stylus Colour 600"
-#: src/escputil/escputil.c:216
+#: src/escputil/escputil.c:234
msgid "Stylus Color 640"
msgstr "Stylus Colour 640"
-#: src/escputil/escputil.c:217
+#: src/escputil/escputil.c:235
msgid "Stylus Color 660"
msgstr "Stylus Colour 660"
-#: src/escputil/escputil.c:218
+#: src/escputil/escputil.c:236
msgid "Stylus Color 670"
msgstr "Stylus Colour 670"
-#: src/escputil/escputil.c:219
+#: src/escputil/escputil.c:237
msgid "Stylus Color 680"
msgstr "Stylus Colour 680"
-#: src/escputil/escputil.c:220
+#: src/escputil/escputil.c:238
msgid "Stylus Color 740"
msgstr "Stylus Colour 740"
-#: src/escputil/escputil.c:221
+#: src/escputil/escputil.c:239
msgid "Stylus Color 760"
msgstr "Stylus Colour 760"
-#: src/escputil/escputil.c:222
+#: src/escputil/escputil.c:240
msgid "Stylus Color 777"
msgstr "Stylus Colour 777"
-#: src/escputil/escputil.c:223
+#: src/escputil/escputil.c:241
msgid "Stylus Color 800"
msgstr "Stylus Colour 800"
-#: src/escputil/escputil.c:224
+#: src/escputil/escputil.c:242
msgid "Stylus Color 850"
msgstr "Stylus Colour 850"
-#: src/escputil/escputil.c:225
+#: src/escputil/escputil.c:243
msgid "Stylus Color 860"
msgstr "Stylus Colour 860"
-#: src/escputil/escputil.c:226
+#: src/escputil/escputil.c:244
msgid "Stylus Color 880"
msgstr "Stylus Colour 880"
-#: src/escputil/escputil.c:227
+#: src/escputil/escputil.c:245
msgid "Stylus Color 83"
msgstr "Stylus Colour 83"
-#: src/escputil/escputil.c:228
+#: src/escputil/escputil.c:246
msgid "Stylus Color 900"
msgstr "Stylus Colour 900"
-#: src/escputil/escputil.c:229
+#: src/escputil/escputil.c:247
msgid "Stylus Color 980"
msgstr "Stylus Colour 980"
-#: src/escputil/escputil.c:230
+#: src/escputil/escputil.c:248
msgid "Stylus Color 1160"
msgstr "Stylus Colour 1160"
-#: src/escputil/escputil.c:231
+#: src/escputil/escputil.c:249
msgid "Stylus Color 1500"
msgstr "Stylus Colour 1500"
-#: src/escputil/escputil.c:232
+#: src/escputil/escputil.c:250
msgid "Stylus Color 1520"
msgstr "Stylus Colour 1520"
-#: src/escputil/escputil.c:233
+#: src/escputil/escputil.c:251
msgid "Stylus Color 3000"
msgstr "Stylus Colour 3000"
-#: src/escputil/escputil.c:234
+#: src/escputil/escputil.c:252
msgid "Stylus Photo"
msgstr "Stylus Photo"
-#: src/escputil/escputil.c:235
+#: src/escputil/escputil.c:253
msgid "Stylus Photo 700"
msgstr "Stylus Photo 700"
-#: src/escputil/escputil.c:236
+#: src/escputil/escputil.c:254
msgid "Stylus Photo EX"
msgstr "Stylus Photo EX"
-#: src/escputil/escputil.c:237
+#: src/escputil/escputil.c:255
msgid "Stylus Photo 720"
msgstr "Stylus Photo 720"
-#: src/escputil/escputil.c:238
+#: src/escputil/escputil.c:256
msgid "Stylus Photo 750"
msgstr "Stylus Photo 750"
-#: src/escputil/escputil.c:239
+#: src/escputil/escputil.c:257
msgid "Stylus Photo 780"
msgstr "Stylus Photo 780"
-#: src/escputil/escputil.c:240
+#: src/escputil/escputil.c:258
msgid "Stylus Photo 785"
msgstr "Stylus Photo 785"
-#: src/escputil/escputil.c:241
+#: src/escputil/escputil.c:259
msgid "Stylus Photo 790"
msgstr "Stylus Photo 790"
-#: src/escputil/escputil.c:242
+#: src/escputil/escputil.c:260
msgid "Stylus Photo 810"
msgstr "Stylus Photo 810"
-#: src/escputil/escputil.c:243
+#: src/escputil/escputil.c:261
msgid "Stylus Photo 820"
msgstr "Stylus Photo 820"
-#: src/escputil/escputil.c:244
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
msgid "Stylus Photo 870"
msgstr "Stylus Photo 870"
-#: src/escputil/escputil.c:245
+#: src/escputil/escputil.c:264
msgid "Stylus Photo 875"
msgstr "Stylus Photo 875"
-#: src/escputil/escputil.c:246
+#: src/escputil/escputil.c:265
msgid "Stylus Photo 890"
msgstr "Stylus Photo 890"
-#: src/escputil/escputil.c:247
+#: src/escputil/escputil.c:266
msgid "Stylus Photo 895"
msgstr "Stylus Photo 895"
-#: src/escputil/escputil.c:248
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
msgid "Stylus Photo 1200"
msgstr "Stylus Photo 1200"
-#: src/escputil/escputil.c:249
+#: src/escputil/escputil.c:273
msgid "Stylus Photo 1270"
msgstr "Stylus Photo 1270"
-#: src/escputil/escputil.c:250
+#: src/escputil/escputil.c:274
msgid "Stylus Photo 1280"
msgstr "Stylus Photo 1280"
-#: src/escputil/escputil.c:251
+#: src/escputil/escputil.c:275
msgid "Stylus Photo 1290"
msgstr "Stylus Photo 1290"
-#: src/escputil/escputil.c:252
+#: src/escputil/escputil.c:276
msgid "Stylus Photo 2000P"
msgstr "Stylus Photo 2000P"
-#: src/escputil/escputil.c:253
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
msgid "Stylus Pro 5000"
msgstr "Stylus Pro 5000"
-#: src/escputil/escputil.c:254
+#: src/escputil/escputil.c:280
msgid "Stylus Pro 5500"
msgstr "Stylus Pro 5500"
-#: src/escputil/escputil.c:255
+#: src/escputil/escputil.c:281
msgid "Stylus Pro 7000"
msgstr "Stylus Pro 7000"
-#: src/escputil/escputil.c:256
+#: src/escputil/escputil.c:282
msgid "Stylus Pro 7500"
msgstr "Stylus Pro 7500"
-#: src/escputil/escputil.c:257
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
msgid "Stylus Pro 9000"
msgstr "Stylus Pro 9000"
-#: src/escputil/escputil.c:258
+#: src/escputil/escputil.c:285
msgid "Stylus Pro 9500"
msgstr "Stylus Pro 9500"
-#: src/escputil/escputil.c:259
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
msgid "Stylus Pro 10000"
msgstr "Stylus Pro 10000"
-#: src/escputil/escputil.c:260
+#: src/escputil/escputil.c:288
msgid "Stylus Scan 2000"
msgstr "Stylus Scan 2000"
-#: src/escputil/escputil.c:261
+#: src/escputil/escputil.c:289
msgid "Stylus Scan 2500"
msgstr "Stylus Scan 2500"
-#: src/escputil/escputil.c:341 src/escputil/escputil.c:350
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
msgid "You may only specify one printer or raw device."
msgstr "You may only specify one printer or raw device."
-#: src/escputil/escputil.c:359
+#: src/escputil/escputil.c:402
msgid "You may only specify one printer model."
msgstr "You may only specify one printer model."
-#: src/escputil/escputil.c:379
+#: src/escputil/escputil.c:422
#, c-format
msgid "Unknown option %c\n"
msgstr "Unknown option %c\n"
-#: src/escputil/escputil.c:439
+#: src/escputil/escputil.c:482
#, c-format
msgid "Cannot open device %s: %s\n"
msgstr "Cannot open device %s: %s\n"
-#: src/escputil/escputil.c:462
+#: src/escputil/escputil.c:505
#, c-format
msgid "Cannot print to printer %s with %s\n"
msgstr "Cannot print to printer %s with %s\n"
-#: src/escputil/escputil.c:475 src/escputil/escputil.c:485
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
msgid "Unable to send command to printer\n"
msgstr "Unable to send command to printer\n"
-#: src/escputil/escputil.c:578
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Cannot read from %s: %s\n"
+
+#: src/escputil/escputil.c:638
msgid "Cyan"
msgstr "Cyan"
-#: src/escputil/escputil.c:579
+#: src/escputil/escputil.c:639
msgid "Magenta"
msgstr "Magenta"
-#: src/escputil/escputil.c:580
+#: src/escputil/escputil.c:640
msgid "Yellow"
msgstr "Yellow"
-#: src/escputil/escputil.c:581
+#: src/escputil/escputil.c:641
msgid "Light Cyan"
msgstr "Light Cyan"
-#: src/escputil/escputil.c:582
+#: src/escputil/escputil.c:642
msgid "Light Magenta"
msgstr "Light Magenta"
-#: src/escputil/escputil.c:596
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
msgid "Obtaining ink levels requires using a raw device.\n"
msgstr "Obtaining ink levels requires using a raw device.\n"
-#: src/escputil/escputil.c:602 src/escputil/escputil.c:677
-#: src/escputil/escputil.c:720
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
#, c-format
msgid "Cannot open %s read/write: %s\n"
msgstr "Cannot open %s read/write: %s\n"
-#: src/escputil/escputil.c:611 src/escputil/escputil.c:688
-#: src/escputil/escputil.c:729
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
#, c-format
msgid "Cannot write to %s: %s\n"
msgstr "Cannot write to %s: %s\n"
-#: src/escputil/escputil.c:618 src/escputil/escputil.c:695
-#: src/escputil/escputil.c:736
-#, c-format
-msgid "Cannot read from %s: %s\n"
-msgstr "Cannot read from %s: %s\n"
-
-#: src/escputil/escputil.c:628
+#: src/escputil/escputil.c:700
msgid "Cannot parse output from printer\n"
msgstr "Cannot parse output from printer\n"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Ink color"
msgstr "Ink colour"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Percent remaining"
msgstr "Percent remaining"
-#: src/escputil/escputil.c:671
+#: src/escputil/escputil.c:737
msgid "Printer identification requires using a raw device.\n"
msgstr "Printer identification requires using a raw device.\n"
-#: src/escputil/escputil.c:714
+#: src/escputil/escputil.c:776
msgid "Printer status requires using a raw device.\n"
msgstr "Printer status requires using a raw device.\n"
-#: src/escputil/escputil.c:757
+#: src/escputil/escputil.c:815
msgid "Cleaning heads...\n"
msgstr "Cleaning heads...\n"
-#: src/escputil/escputil.c:766
+#: src/escputil/escputil.c:824
msgid "Running nozzle check, please ensure paper is in the printer.\n"
msgstr "Running nozzle check, please ensure paper is in the printer.\n"
-#: src/escputil/escputil.c:770
+#: src/escputil/escputil.c:828
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1983,7 +2411,7 @@ msgstr ""
"It is essential that you not turn your printer off during this procedure.\n"
"\n"
-#: src/escputil/escputil.c:805
+#: src/escputil/escputil.c:863
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2050,11 +2478,11 @@ msgstr ""
"this procedure.\n"
"\n"
-#: src/escputil/escputil.c:849
+#: src/escputil/escputil.c:907
msgid "Unable to send command to the printer, exiting.\n"
msgstr "Unable to send command to the printer, exiting.\n"
-#: src/escputil/escputil.c:867
+#: src/escputil/escputil.c:925
msgid ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
@@ -2062,11 +2490,11 @@ msgstr ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
-#: src/escputil/escputil.c:871
+#: src/escputil/escputil.c:929
msgid "Attempting to detect printer model..."
msgstr "Attempting to detect printer model..."
-#: src/escputil/escputil.c:876
+#: src/escputil/escputil.c:934
#, c-format
msgid ""
"\n"
@@ -2075,7 +2503,7 @@ msgstr ""
"\n"
"Cannot open %s read/write: %s\n"
-#: src/escputil/escputil.c:884
+#: src/escputil/escputil.c:942
#, c-format
msgid ""
"\n"
@@ -2084,16 +2512,7 @@ msgstr ""
"\n"
"Cannot write to %s: %s\n"
-#: src/escputil/escputil.c:890
-#, c-format
-msgid ""
-"\n"
-"Cannot read from %s: %s\n"
-msgstr ""
-"\n"
-"Cannot read from %s: %s\n"
-
-#: src/escputil/escputil.c:903
+#: src/escputil/escputil.c:958
msgid ""
"\n"
"Cannot detect printer type.\n"
@@ -2103,12 +2522,12 @@ msgstr ""
"Cannot detect printer type.\n"
"Please use -m to specify your printer model.\n"
-#: src/escputil/escputil.c:920
+#: src/escputil/escputil.c:975
#, c-format
msgid "Printer model %s is not known.\n"
msgstr "Printer model %s is not known.\n"
-#: src/escputil/escputil.c:931
+#: src/escputil/escputil.c:986
msgid ""
"Please inspect the final output very carefully to ensure that your\n"
"printer is in proper alignment. You may now:\n"
@@ -2126,19 +2545,19 @@ msgstr ""
"You will then be asked to confirm your choice.\n"
"What do you want to do (s, q, r)?\n"
-#: src/escputil/escputil.c:939 src/escputil/escputil.c:946
-#: src/escputil/escputil.c:959 src/escputil/escputil.c:975
-#: src/escputil/escputil.c:1046 src/escputil/escputil.c:1187
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
msgid "> "
msgstr "> "
-#: src/escputil/escputil.c:944
+#: src/escputil/escputil.c:999
msgid ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
msgstr ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
-#: src/escputil/escputil.c:949
+#: src/escputil/escputil.c:1004
msgid ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
@@ -2146,7 +2565,7 @@ msgstr ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
-#: src/escputil/escputil.c:956
+#: src/escputil/escputil.c:1011
msgid ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
@@ -2154,11 +2573,11 @@ msgstr ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
-#: src/escputil/escputil.c:962
+#: src/escputil/escputil.c:1017
msgid "Repeating the alignment process.\n"
msgstr "Repeating the alignment process.\n"
-#: src/escputil/escputil.c:968
+#: src/escputil/escputil.c:1023
msgid ""
"This will permanently alter the configuration of your printer.\n"
"WARNING: this procedure has not been approved by Seiko Epson, and\n"
@@ -2172,25 +2591,37 @@ msgstr ""
"Please confirm by typing 's' again that you wish to save the settings\n"
"to your printer:\n"
-#: src/escputil/escputil.c:978
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr ""
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1040
msgid ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
msgstr ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
-#: src/escputil/escputil.c:992
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1050
msgid "Unrecognized command.\n"
msgstr "Unrecognised command.\n"
-#: src/escputil/escputil.c:995
+#: src/escputil/escputil.c:1053
msgid "Final command was not confirmed.\n"
msgstr "Final command was not confirmed.\n"
-#: src/escputil/escputil.c:1000
+#: src/escputil/escputil.c:1058
#, c-format
msgid ""
"This procedure assumes that your printer is an Epson %s.\n"
@@ -2207,67 +2638,65 @@ msgstr ""
"Please place a sheet of paper in your printer to begin the head\n"
"alignment procedure.\n"
-#: src/escputil/escputil.c:1025 src/escputil/escputil.c:1054
-#: src/escputil/escputil.c:1090 src/escputil/escputil.c:1166
-#: src/escputil/escputil.c:1177
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
msgid "Press enter to continue > "
msgstr "Press enter to continue > "
-#: src/escputil/escputil.c:1036
-#, c-format
+#: src/escputil/escputil.c:1090
+#, fuzzy
msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
msgstr ""
"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
+"in pattern #%d, and then reinsert the page in the input tray.\n"
"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
-#: src/escputil/escputil.c:1041
+#: src/escputil/escputil.c:1096
#, c-format
-msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+msgid "Pass #%d"
msgstr ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
-#: src/escputil/escputil.c:1051
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
msgid "Please insert a fresh sheet of paper.\n"
msgstr "Please insert a fresh sheet of paper.\n"
-#: src/escputil/escputil.c:1070 src/escputil/escputil.c:1206
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
msgid "Number out of range!\n"
msgstr "Number out of range!\n"
-#: src/escputil/escputil.c:1075 src/escputil/escputil.c:1211
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
msgid "I cannot understand what you typed!\n"
msgstr "I cannot understand what you typed!\n"
-#: src/escputil/escputil.c:1081
+#: src/escputil/escputil.c:1132
#, c-format
msgid "The best pair of lines should be numbered between 1 and %d.\n"
msgstr "The best pair of lines should be numbered between 1 and %d.\n"
-#: src/escputil/escputil.c:1088
-#, c-format
-msgid ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
+#: src/escputil/escputil.c:1139
+#, fuzzy
+msgid "Attempting to set alignment..."
+msgstr "Attempting to detect printer model..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
msgstr ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
-#: src/escputil/escputil.c:1093
+#: src/escputil/escputil.c:1143
#, c-format
-msgid "Aligning phase %d, and starting phase %d.\n"
-msgstr "Aligning phase %d, and starting phase %d.\n"
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
-#: src/escputil/escputil.c:1107
-#, c-format
+#: src/escputil/escputil.c:1158
+#, fuzzy, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
"\n"
@@ -2329,12 +2758,12 @@ msgstr ""
"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
"damage your printer!\n"
-#: src/escputil/escputil.c:1157
+#: src/escputil/escputil.c:1208
#, c-format
msgid "Printer %s does not require color head alignment.\n"
msgstr "Printer %s does not require colour head alignment.\n"
-#: src/escputil/escputil.c:1175
+#: src/escputil/escputil.c:1226
msgid ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
@@ -2342,7 +2771,7 @@ msgstr ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
-#: src/escputil/escputil.c:1181
+#: src/escputil/escputil.c:1232
msgid ""
"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
"This pattern will appear to have the least ``grain''.\n"
@@ -2356,12 +2785,12 @@ msgstr ""
"best pattern, and repeat the procedure.\n"
"Type a pattern number, or '?' for help.\n"
-#: src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1268
#, c-format
msgid "The best pattern should be numbered between 1 and %d.\n"
msgstr "The best pattern should be numbered between 1 and %d.\n"
-#: src/escputil/escputil.c:1261
+#: src/escputil/escputil.c:1312
msgid "Error in input\n"
msgstr "Error in input\n"
@@ -3062,11 +3491,156 @@ msgstr "Printing..."
msgid "<Image>/File/Print..."
msgstr "<Image>/File/Print..."
-#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:833
-#: src/gimp/print.c:1184
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
msgid "File"
msgstr "File"
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, fuzzy, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Printer model %s is not known.\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, fuzzy, c-format
+msgid "Unknown option %s\n"
+msgstr "Unknown option %c\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:949
+#, fuzzy, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Cannot open device %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, fuzzy, c-format
+msgid "Unknown printer %s\n"
+msgstr "Unknown option %c\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr ""
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 × 360 DPI"
+
+#~ msgid "1440 x 360 DPI Unidirectional"
+#~ msgstr "1440 × 360 DPI Unidirectional"
+
+#~ msgid "1440 x 360 DPI High Quality"
+#~ msgstr "1440 × 360 DPI High Quality"
+
+#~ msgid "1440 x 360 DPI High Quality Uni"
+#~ msgstr "1440 × 360 DPI High Quality Uni"
+
+#~ msgid "1440 x 360 DPI Highest Quality"
+#~ msgstr "1440 × 360 DPI Highest Quality"
+
+#~ msgid "13x19"
+#~ msgstr "13×19"
+
+#~ msgid "Monarch"
+#~ msgstr "Monarch"
+
+#~ msgid "Long 3"
+#~ msgstr "Long 3"
+
+#~ msgid "Long 4"
+#~ msgstr "Long 4"
+
+#~ msgid "Kaku"
+#~ msgstr "Kaku"
+
+#~ msgid "HP Greeting Card"
+#~ msgstr "HP Greeting Card"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+
+#~ msgid ""
+#~ "Please insert your alignment test page in the printer once more\n"
+#~ "for the final save of your alignment settings. When the printer\n"
+#~ "feeds the page through, your settings have been saved.\n"
+#~ msgstr ""
+#~ "Please insert your alignment test page in the printer once more\n"
+#~ "for the final save of your alignment settings. When the printer\n"
+#~ "feeds the page through, your settings have been saved.\n"
+
+#~ msgid ""
+#~ "Please inspect the print, and choose the best pair of lines\n"
+#~ "in pattern #%d, and then insert a fresh page in the input tray.\n"
+#~ "Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+#~ msgstr ""
+#~ "Please inspect the print, and choose the best pair of lines\n"
+#~ "in pattern #%d, and then insert a fresh page in the input tray.\n"
+#~ "Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+
+#~ msgid ""
+#~ "Aligning phase %d, and performing final test.\n"
+#~ "Please insert a fresh sheet of paper.\n"
+#~ msgstr ""
+#~ "Aligning phase %d, and performing final test.\n"
+#~ "Please insert a fresh sheet of paper.\n"
+
+#~ msgid "Aligning phase %d, and starting phase %d.\n"
+#~ msgstr "Aligning phase %d, and starting phase %d.\n"
+
#~ msgid "Center the image vertically on the paper!"
#~ msgstr "Centre the image vertically on the paper!"
diff --git a/po/es.gmo b/po/es.gmo
new file mode 100644
index 0000000..7224881
--- /dev/null
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..e0d5fac
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,3685 @@
+# translation of es.po to Castellano
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Gustavo D. Vranjes <gvranjes@abaconet.com.ar>, 2002
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: es\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2002-04-29 00:38GMT\n"
+"Last-Translator: Gustavo D. Vranjes <gvranjes@abaconet.com.ar>\n"
+"Language-Team: Castellano <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0beta1\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: la opción `%s' es ambigua\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: la opción `--%s' no permite un argumento\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: la opción `%c%s' no permite un argumento\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: la opción `%s' requiere un argumento\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opción `--%s' desconocida\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opción `%c%s' desconocida\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opción no permitida -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opción no válida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: la opción requiere un argumento -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: la opción `-W %s' es ambigua\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: la opción `-W %s' no permite un argumento\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Papel Común"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Transparencias"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr "Película para Imprimir por Atrás"
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Hojas de Tela"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Sobre"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Papel de Alta Resolución"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "Transferencias a Remeras"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "Película de Alto Brillo"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Papel Brillante de Fotografía"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Tarjetas Brillantes de Fotografía"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Papel de Fotografía Profesional"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Otro"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Autoalimentador de Hojas"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Manual con Pausa"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Manual sin Pausa"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Negro"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "Color CMY (Cian/Mag/Amar)"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "Color CMYK (Cian/Mag/Amar/Negro)"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Color CcMmY para Fotografía"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Color CcMmYK para Fotografía"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Híbrido Adaptativo"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Ordenado"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Rápido"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Muy Rápido"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Floyd-Steinberg Híbrido"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+#, fuzzy
+msgid "EvenTone"
+msgstr "Sobre"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Tres Colores Compuestos"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Cuatro Colores Estándard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Fotografía de Seis Colores"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Fotografía Compuesta de Cinco Colores"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Siete Colores Mejorados"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Seis Colores Compuestos Mejorados"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+#, fuzzy
+msgid "Seven Color Photo"
+msgstr "Fotografía de Seis Colores"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+#, fuzzy
+msgid "Two Level Grayscale"
+msgstr "Tonos de gris"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "Papel Común Carga Rápida"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Postal"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Película Brillante"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Sobres"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+#, fuzzy
+msgid "Back Light Film"
+msgstr "Back Light Film"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Papel Opaco"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Papel para Chorro de Tinta"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Papel de Calidad Fotográfica para Chorro de Tinta"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Papel para Fotografía"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Papel Brillante de Altísima Calidad Fotográfica"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "Papel de Fotografía Premium Luster"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Papel Brillante de Calidad Fotográfica"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Papel Pesado Ilford"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Papel Común"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "Borrador Rápido y Económico a 360 x 90 PPP"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "Borrador Económico a 360 x 120 PPP"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "Borrador Económico a 180 PPP"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "Borrador a 360 x 240 PPP"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "Borrador 360 x 180 PPP"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 PPP"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+#, fuzzy
+msgid "360 DPI Interleave"
+msgstr "360 PPP Microweave"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+#, fuzzy
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 PPP Microweave Unidireccional"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 PPP"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+#, fuzzy
+msgid "720 DPI Interleave"
+msgstr "720 PPP Microweave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+#, fuzzy
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 PPP Microweave Unidireccional"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 PPP"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 PPP Alta Calidad"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 PPP Alta Calidad Unidireccional"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 PPP Altísima Calidad"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 PPP Microweave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+#, fuzzy
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 PPP Microweave Unidireccional"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 PPP"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI Altísima Calidad"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 PPP"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 PPP"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI Altísima Calidad"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 PPP"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 PPP Full Overlap"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 PPP Full Overlap Unidireccional"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 PPP FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 PPP FOL2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 PPP MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 PPP MW2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 PPP Microweave"
+
+#: src/main/print-escp2-data.c:4117
+#, fuzzy
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 PPP Microweave Unidireccional"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 PPP FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 x 360 PPP FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 PPP FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 x 360 PPP FOL2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 PPP MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 x 360 PPP MW2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 PPP Full Overlap"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 PPP Full Overlap Unidireccional"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 PPP Cuatro Pasadas"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 PPP Cuatro Pasadas Unidireccional"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 PPP FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 PPP FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 PPP Cuatro Pasadas"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 PPP Cuatro Pasadas Unidireccional"
+
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 PPP"
+
+#: src/main/print-escp2-data.c:4160
+#, fuzzy
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:4162
+#, fuzzy
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 PPP"
+
+#: src/main/print-escp2-data.c:4164
+#, fuzzy
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 PPP Unidireccional"
+
+#: src/main/print-escp2-data.c:4166
+#, fuzzy
+msgid "2880 x 720 DPI Four Pass"
+msgstr "1440 x 720 PPP Cuatro Pasadas"
+
+#: src/main/print-escp2-data.c:4168
+#, fuzzy
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 PPP Cuatro Pasadas Unidireccional"
+
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 PPP"
+
+#: src/main/print-escp2-data.c:4173
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 720 PPP Microweave Unidireccional"
+
+#: src/main/print-escp2-data.c:4175
+#, fuzzy
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 PPP"
+
+#: src/main/print-escp2-data.c:4177
+#, fuzzy
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 720 PPP FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4179
+#, fuzzy
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 720 PPP Cuatro Pasadas"
+
+#: src/main/print-escp2-data.c:4181
+#, fuzzy
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 PPP Cuatro Pasadas Unidireccional"
+
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 PPP"
+
+#: src/main/print-escp2-data.c:4186
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "720 x 360 PPP Microweave Unidireccional"
+
+#: src/main/print-escp2-data.c:4188
+#, fuzzy
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 PPP"
+
+#: src/main/print-escp2-data.c:4190
+#, fuzzy
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "720 x 360 PPP FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4192
+#, fuzzy
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "1440 x 720 PPP Cuatro Pasadas"
+
+#: src/main/print-escp2-data.c:4194
+#, fuzzy
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "720 PPP Cuatro Pasadas Unidireccional"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Estándar"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Alimentación por Rollo"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Autoseleccionar"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 PPP x 600 PPP"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 PPP"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 PPP alta calidad"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 PPP Unidireccional"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 PPP"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 PPP alta calidad"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 PPP altísima calidad"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 PPP Unidireccional"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 PPP x 1200 PPP"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 PPP x 1200 PPP alta calidad"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 PPP x 1200 PPP altísima calidad"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "prueba de impresión"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Común"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr "Bond"
+
+#: src/main/print-pcl.c:159
+#, fuzzy
+msgid "Premium"
+msgstr "Premium"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Fotografía Brillante"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Transparencia"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Fotografía de Secado Rápido"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Transparencia de Secado Rápido"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manual"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Bandeja 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Bandeja 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Bandeja 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Bandeja 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Alimentador Portable de Hojas"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "Alimentador de Hojas de Escritorio"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Bandeja"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Fuente Opcional"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Autoseleccionar"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 PPP"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 PPP"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 PPP"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 PPP monocromo"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 PPP"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 PPP"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 PPP"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Cartuchos Negro + Color"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Cartuchos Color + Fotografía"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Carta"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloide"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Ejecutivo"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Papel Epson 4x6 de Fotografía"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+#, fuzzy
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "Transferencias a Remeras"
+
+#: src/main/print-util.c:750
+#, fuzzy
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "Transferencias a Remeras"
+
+#: src/main/print-util.c:754
+#, fuzzy
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "Transferencias a Remeras"
+
+#: src/main/print-util.c:758
+#, fuzzy
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "Transferencias a Remeras"
+
+#: src/main/print-util.c:762
+#, fuzzy
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "Transferencias a Remeras"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+#, fuzzy
+msgid "American foolscap"
+msgstr "Foolscap Americano"
+
+#. American foolscap
+#: src/main/print-util.c:772
+#, fuzzy
+msgid "European foolscap"
+msgstr "Foolscap Europeo"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+#, fuzzy
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+#, fuzzy
+msgid "Large Crown Quarto"
+msgstr "Crown Quarto Grande"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+#, fuzzy
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+#, fuzzy
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+#, fuzzy
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+#, fuzzy
+msgid "Large Crown Octavo"
+msgstr "Crown Octavo Grande"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+#, fuzzy
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+#, fuzzy
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+#, fuzzy
+msgid "Small paperback"
+msgstr "Paperback pequeño"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+#, fuzzy
+msgid "Penguin small paperback"
+msgstr "Penguin paperback pequeño"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+#, fuzzy
+msgid "Penguin large paperback"
+msgstr "Penguin paperback grande"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Tarjeta Hagaki"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Tarjeta Oufuku"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Sobre Japonés grande #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Sobre Japonés grande #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Sobre Japonés Kaku #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Comercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitación"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+#, fuzzy
+msgid "Monarch Envelope"
+msgstr "Sobre"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Personalizado"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "Rollo de Papel de 89 mm"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "Rollo de Papel de 4 Pulgadas"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "Rollo de Papel de 5 Pulgadas"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "Rollo de Papel de 210 mm"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "Rollo de Papel de 13 Pulgadas"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "Rollo de Papel de 22 Pulgadas"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "Rollo de Papel de 24 Pulgadas"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "Rollo de Papel de 36 Pulgadas"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "Rollo de Papel de 44 Pulgadas"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s no es un parámetreo válido del tipo %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s fuera de rango (valor %f, mín %f, máx %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s fuera de rango (valor %d, mín %d, máx %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "La impresora no soporta salida de color\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "La medida de la imagen no es válida\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "El margen superior no debe ser menos que cero\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "El margen izquierdo no debe ser menos que cero\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s no es un algoritmo de entramado válido\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Inglés"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin1"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Tipo de Medio"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Fuente de Medio"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Resolución"
+
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Imprimir"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Tipo de imagen"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Arte lineal"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Colores sólidos"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Fotografía"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Algoritmo de Entramado"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Tipo de Tinta"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr ""
+
+#: src/escputil/escputil.c:67
+#, fuzzy
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+"Escputil se entrega sin NINGUNA GARANTÍA; para detalles tipee 'escputil -l'\n"
+"Éste es software libre, y usted es bienvenido a redistribuirlo bajo\n"
+"ciertas condiciones; tipee 'escputil -l' para más detalles.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"Éste programa es software libre, usted puede redistribuirlo y/o modificarlo\n"
+"bajo los términos de la Licencia General Pública GNU tal como se la publica\n"
+"por la Fundación de Software Libre; o la versión 2 de la Licencia, o (a su\n"
+"opción) cualquier versión posterior.\n"
+"\n"
+"Éste programa se distribuye con el deseo de que sea útil, pero SIN NINGUNA\n"
+"GARANTÍA; aún sin la garantía implícita de MERCANTIBILIDAD o AJUSTE PARA UN\n"
+"PROPÓSITO PARTICULAR. Vea la Licencia General Pública GNU para más "
+"detalles.\n"
+"\n"
+"Usted debe haber recibido una copia de la Licencia General Pública GNU\n"
+"junto con éste programa; si no, escriba a la Fundación de Software\n"
+"Libre, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"Uso: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P impresora | -r dispositivo] [-u] [-q] [-m modelo]\n"
+"Realiza mantenimiento en impresoras EPSON Stylus (R).\n"
+"Ejemplos: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Comandos:\n"
+" -c|--clean-head Limpia el cabezal de impresión\n"
+" -n|--nozzle-check Imprime un patrón de prueba de toberas.\n"
+" Toberas sucias o tapadas se mostrarán como vacíos "
+"en\n"
+" el patrón. Si usted ve algún vacío, deberá limpiar\n"
+" el cabezal de impresión.\n"
+" -a|--align-head Alinear el cabezal de impresión. CUIDADO: El mal uso\n"
+" de ésta utilidad puede resultar en una calidad "
+"pobre\n"
+" de impresión y/o daño a la impresora.\n"
+" -o|--align-color Alinear el cabezal de impresión color (Stylus Color\n"
+" 480 y 580 solamente). CUIDADO:El mal uso de ésta\n"
+" \t\tutilidad puede resultar en una calidad pobre de\n"
+"\t \timpresión y/o daño a la impresora.\n"
+" -s|--status Recoger el status de la impresora.\n"
+" -i|--ink-level Obtener el nivel de tinta de la impresora. Ésto\n"
+" requiere acceso de lectura/escritura al dispositivo\n"
+"\t\t crudo de impresión.\n"
+" -d|--identify Consultar la impresora por información de marca y\n"
+" modelo. Ésto requiere acceso de lectura/escritura "
+"al\n"
+"\t\t\tdispositivo crudo de impresión.\n"
+" -l|--license Mostrar los términos de la licencia/garantía de éste\n"
+" \t\tprograma\n"
+" -M|--list-models Listar los modelos de impresora disponibles.\n"
+" -h|--help Imprimir éste mensaje de ayuda.\n"
+" Opciones:\n"
+" -P|--printer-name Especifica el nombre de la cola de impresión en la\n"
+"\t\t\tque se opera. Por defecto es la impresora del\n"
+"\t\t\tsistema.\n"
+" -r|--raw-device Especifica el nombre del dispositivo a escribir\n"
+"\t\t\tdirectamente en vez de mandarlo a través de la cola\n"
+" de impresión.\n"
+" -u|--new La impresora es de nuevo modelo (Stylus Color 740 o\n"
+" más nueva).\n"
+" -q|--quiet Suprimir carteles.\n"
+" -m|--model Especificar el modelo preciso de impresora para\n"
+"\t\t\talineación de cabezal.\n"
+
+#: src/escputil/escputil.c:150
+#, fuzzy
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"Uso: escputil [OPCIONES] [COMANDO]\n"
+"Uso: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P impresora | -r dispositivo] [-u] [-q] [-m modelo]\n"
+"Realiza mantenimiento en impresoras EPSON Stylus (R).\n"
+"Ejemplos: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Comandos:\n"
+" -c Limpia el cabezal de impresión.\n"
+" -n Imprime un patrón de prueba de toberas.\n"
+" Toberas sucias o tapadas se mostrarán como vacíos en\n"
+" el patrón. Si usted ve algún vacío, deberá limpiar\n"
+" el cabezal de impresión.\n"
+" -a Alinear el cabezal de impresión. CUIDADO: El mal uso\n"
+" de ésta utilidad puede resultar en una calidad pobre\n"
+" de impresión y/o daño a la impresora.\n"
+" -o Alinear el cabezal de impresión color (Stylus Color\n"
+" 480 y 580 solamente). CUIDADO:El mal uso de ésta\n"
+" utilidad puede resultar en una calidad pobre de\n"
+"\t impresión y/o daño a la impresora.\n"
+" -s Recoger el status de la impresora.\n"
+" -i Obtener el nivel de tinta de la impresora. Ésto\n"
+" requiere acceso de lectura/escritura al dispositivo\n"
+"\t crudo de impresión.\n"
+" -d Consultar la impresora por información de marca y\n"
+" modelo. Ésto requiere acceso de lectura/escritura al\n"
+"\t dispositivo crudo de impresión.\n"
+" -l Mostrar los términos de la licencia/garantía de éste\n"
+" programa\n"
+" -M Listar los modelos de impresora disponibles.\n"
+" -h Imprimir éste mensaje de ayuda.\n"
+" Opciones:\n"
+" -P Especifica el nombre de la cola de impresión en la\n"
+"\t que se opera. Por defecto es la impresora del\n"
+"\t sistema.\n"
+" -r Especifica el nombre del dispositivo a escribir\n"
+"\t directamente en vez de mandarlo a través de la cola\n"
+" de impresión.\n"
+" -u La impresora es de nuevo modelo (Stylus Color 740 o\n"
+" más nueva).\n"
+" -q Suprimir carteles.\n"
+" -m Especificar el modelo preciso de impresora para\n"
+"\t alineación de cabezal.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Usted sólo puede especificar una impresora ó dispositivo crudo."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Usted sólo puede especificar un modelo de impresora"
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Opción desconocida %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "No puedo abrir dispositivo %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "No puedo imprimir a impresora %s con %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "No puedo enviar comando a impresora\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "No puedo leer %s de: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Cian"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Magenta"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Amarillo"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Cian Claro"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Magenta Claro"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr ""
+"La obtención de los niveles de tinta requiere usar un dispositivo crudo.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "No puedo abrir %s para lectura/escritura: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "No puedo escribir a %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "No puedo analizar salida de la impresora\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Color de tinta"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Porcentaje restante"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr ""
+"La identificación de la impresora requiere el uso de un dispositivo crudo.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "El estado de la impresora requiere el uso de un dispositivo crudo.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Limpiando inyectores...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+"Ejecutando la prueba de los inyectores de tinta, favor de asegurarse que "
+"haya papel en la impresora.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"Favor de leer éstas instrucciones muy cuidadosamente antes de proceder.\n"
+"\n"
+"Ésta utilidad le permite alinear el cabezal de impresión de su impresora\n"
+"de chorro de tinta Epson Stylus. El mal uso de ésta utilidad puede causar\n"
+"una degradación de la calidad de impresión y posiblemente daño a su "
+"impresora.\n"
+"Ésta utilidad no fue probada por Seiko Epson en cuanto a correcto\n"
+"funcionamiento y se ofrece sin ninguna garantía. El riesgo del uso de ésta\n"
+"utilidad corre por la exclusiva cuenta del usuario.\n"
+"\n"
+"Ésta utilidad imprime %d patrones de prueba. Cada patrón tiene aspecto muy\n"
+"similar. Los patrones consisten en una serie de pares de líneas verticales\n"
+"que se solapan. Debajo de cada par de líneas hay un número entre %d y %d.\n"
+"\n"
+"Cuando inspeccione los pares de líneas, deberá encontrar el par de líneas\n"
+"que este mejor alineado, es decir, que forma mejor una sola línea vertical.\n"
+"Inspeccione los pares muy cuidadosamente para encontrar el mejor ajuste.\n"
+"Se recomienda el uso de una lupa o cristal de aumento para una inspección\n"
+"más crítica.\n"
+"También se sugiere que use un papel de buena calidad para las pruebas,\n"
+"como para que las líneas queden bien formadas y no se dispersen sobre el\n"
+"papel.\n"
+"Después de anotar el número correspondiente al par de mejor ajuste, ponga\n"
+"de nuevo el papel en la impresora antes de volver a usarla.\n"
+"\n"
+"Cada patrón es similar, pero los últimos patrones usan puntos más finos\n"
+"para una alineación más crítica. Usted debe hacer todas las pasadas para\n"
+"alinear correctamente su impresora. Después de ejecutar todas las pasadas\n"
+"de alineación, los patrones de alineación se imprimirán una vez más. Debe\n"
+"observarse que el par medio entre todos (#%d de %d) es el mejor de todos\n"
+"los patrones.\n"
+"\n"
+"Después que los patrones sean impresos una vez más, le será ofrecida la\n"
+"elección de guardar (s) el resultado en la impresora, repetir el proceso\n"
+"(r), o salir sin guardar (q). Salir sin guardar no restaurará la\n"
+"configuración previa, pero apagar y volver a encender la impresora lo hará.\n"
+"Si sale sin guardar, deberá repetir el proceso por completo si quiere\n"
+"guardar más tarde los resultados. Es esencial que no apague la impresora\n"
+"durante éste proceso.\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"Favor de leer éstas instrucciones muy cuidadosamente antes de proceder.\n"
+"\n"
+"Ésta utilidad le permite alinear el cabezal de impresión de su impresora\n"
+"de chorro de tinta Epson Stylus. El mal uso de ésta utilidad puede causar\n"
+"una degradación de la calidad de impresión y posiblemente daño a su "
+"impresora.\n"
+"Ésta utilidad no fue probada por Seiko Epson en cuanto a correcto\n"
+"funcionamiento y se ofrece sin ninguna garantía. El riesgo del uso de ésta\n"
+"utilidad corre por la exclusiva cuenta del usuario.\n"
+"\n"
+"Ésta utilidad imprime un patrón de prueba que consiste en una serie de "
+"pares\n"
+"de líneas verticales que se solapan. Debajo de cada par de líneas hay un\n"
+"número entre %d y %d.\n"
+"\n"
+"Cuando inspeccione los pares de líneas, deberá encontrar el par de líneas\n"
+"que este mejor alineado, es decir, que forma mejor una sola línea vertical.\n"
+"Inspeccione los pares muy cuidadosamente para encontrar el mejor ajuste.\n"
+"Se recomienda el uso de una lupa o cristal de aumento para una inspección\n"
+"más crítica.\n"
+"También se sugiere que use un papel de buena calidad para la prueba,\n"
+"como para que las líneas queden bien formadas y no se dispersen sobre el\n"
+"papel.\n"
+"Después de anotar el número correspondiente al par de mejor ajuste, ponga\n"
+"de nuevo el papel en la impresora antes de volver a usarla.\n"
+"\n"
+"Después de ejecutar el patrón de alineación, éste se imprimirá una vez más.\n"
+"Debe observarse que el par medio entre todos (#%d de %d) es el mejor.\n"
+"Entonces le será ofrecida la elección de guardar (s) el resultado en la\n"
+"impresora, repetir el proceso (r), o salir sin guardar (q). Salir sin\n"
+"guardar no restaurará la configuración previa, pero apagar y volver a\n"
+"encender la impresora lo hará.\n"
+"Si sale sin guardar, deberá repetir el proceso por completo si quiere\n"
+"guardar más tarde los resultados. Es esencial que no apague la impresora\n"
+"durante éste proceso.\n"
+"\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "No puedo enviar comando a la impresora, saliendo.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"La alineación de la impresora debe ser hecha con un dispositivo crudo ó "
+"sino\n"
+"la opción -m debe ser usada para especificar una impresora.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Intentando detectar el modelo de impresora..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"No puedo abrir %s como lectura/escritura: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"No puedo escribir a %s: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"No puedo detectar el tipo de impresora.\n"
+"Favor de usar -m para especificar su modelo de impresora.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "El modelo de impresora %s es desconocido.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Favor de inspeccionar la salida final muy cuidadosamente para asegurar que\n"
+"su impresora se encuentre alineada. Usted puede ahora:\n"
+" (s) Guardar los resultados en la impresora,\n"
+" (q) Salir sin guardar los resultados, o\n"
+" (r) Repetir el proceso completamente desde el principio.\n"
+"Luego le será requerido confirmar su elección.\n"
+"¿Qué opción elige? (s), (q), (r).\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"Favor de confirmar tipeando 'q' de nuevo que usted quiere salir sin "
+"guardar:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"Bien, su impresora está alineada, pero la alineación no fue guardada.\n"
+"Si quiere guardar la alineación, deberá repetir éste proceso.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Favor de confirmar tipeando 'r' de nuevo que usted quiere repetir el\n"
+"proceso de alineado:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Repitiendo el proceso de alineación.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Ésto alterará permanentemente la configuración de su impresora.\n"
+"ADVERTENCIA: éste procedimiento no está aprobado por Seiko Epson, y\n"
+"puede dañar su impresora. ¿Proceder?\n"
+"Favor de confirmar que desea guardar la configuración de su impresora\n"
+"tipeando 's' de nuevo.\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Acerca de guardar configuración..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "¡falló!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"Su configuración no fue guardada exitosamente. Debe repetir el\n"
+"proceso de alineación.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "¡éxito!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Su configuración de alineación fue guardada a la impresora.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Comando no reconocido.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "El comando final no fue confirmado.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Éste procedimiento asume que su impresora is una Epson %s.\n"
+"Si éste no es el modelo de su impresora, favor de tipear ctrl-c ahora y\n"
+"elijir el correcto modelo de impresora.\n"
+"\n"
+"Favor de poner una hoja de papel en la impresora para comenzar el\n"
+"procedimiento de alineación del cabezal.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Presione enter para continuar > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Favor de inspeccionar la impresión y elegir el mejor par de líneas en cada "
+"patrón.\n"
+"Tipee un número par, '?' para ayuda, ó 'r' para repetir el procedimiento.\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Pasar #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Favor de insertar una hoja de papel sin imprimir.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "¡Número fuera de rango!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "¡No puedo entender lo que usted ha tipeado!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "El mejor par de líneas debe ser numerado entre 1 y %d.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Intentando definir alineación..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "éxito.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Favor de verificar que la alineación es correcta. Después que el patrón de\n"
+"alineación sea impreso nuevamente, favor de asegurarse que el mejor patrón\n"
+"para cada línea es patrón %d. Si no lo es, debe repetir el proceso para\n"
+"obtener la mejor calidad de impresión.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"Favor de leer éstas instrucciones muy cuidadosamente antes de proceder.\n"
+"\n"
+"Ésta utilidad le permite alinear el cabezal de impresión de su impresora\n"
+"de chorro de tinta Epson Stylus. El mal uso de ésta utilidad puede causar\n"
+"una degradación de la calidad de impresión y posiblemente daño a su "
+"impresora.\n"
+"Ésta utilidad no fue probada por Seiko Epson en cuanto a correcto\n"
+"funcionamiento y se ofrece sin ninguna garantía. El riesgo del uso de ésta\n"
+"utilidad corre por la exclusiva cuenta del usuario.\n"
+"Ésta utilidad imprime %d patrones de prueba sobreimpresos sobre una hoja de\n"
+"papel.\n"
+"Ésto es, imprime un patrón y expulsa la página. Luego debe reinsertarse la\n"
+"misma página, e imprime otro patrón. Cada patrón consiste en una serie de\n"
+"elecciones numeradas entre %d y %d.\n"
+"\n"
+"Cuando inspeccione los patrones, deberá encontrar una impresión con la\n"
+"textura más suave (menor ``grano''). Deberá inspeccionar las impresiones\n"
+"muy cuidadosamente para elegir la mejor. Sugerimos que use Papel de Chorro\n"
+"de Tinta de Calidad Fotográfica o similar de alta calidad para ésta prueba\n"
+"Si no encuentra un patrón suave, deberá repetir la prueba.\n"
+"\n"
+"Después de inspeccionar y elegir una impresión, le será ofrecido guardar "
+"(s)\n"
+"el resultado en la impresora, repetir el proceso (r), o salir sin guardar\n"
+"(q). Salir sin guardar no restaurará la configuración previa, pero apagar y\n"
+"volver encender la impresora lo hará.\n"
+"Si sale sin guardar, deberá repetir el proceso por completo si quiere\n"
+"guardar más tarde los resultados. Es esencial que no apague la impresora\n"
+"durante éste proceso.\n"
+"\n"
+"ADVERTENCIA: ÉSTA FUNCIÓN AÚN NO HA SIDO PROBADA! Puede no funcionar, y aún\n"
+"dañar su impresora!\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "La impresora %s no requiere alineación de los inyectores de color.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+"Favor de re-insertar la misma hoja de alineación en la impresora cuando\n"
+"termine de imprimirse.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Inspeccione la hoja de alineación, y determine cuál de los patrones es el\n"
+"más suave. Éste patrón debe verse como el de menor ``grano''.\n"
+"Si no puede encontrar un patrón suave, favor de seleccionar el número del\n"
+"mejor patrón, y repita el procedimiento.\n"
+"Tipee un número de patrón, o '?' para ayuda.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "El mejor patrón debe ser numerado entre 1 y %d.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Error en entrada\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "Ajuste de Impresión en Color"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Establecer por Omisión"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Cerrar"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Vista previa de imagen"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Brillo:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"Establecer el brillo de la impresión.\n"
+"0 es negro sólido, 2 es blanco sólido"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Establecer el contraste de la impresión"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Cian:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "Ajustar el balance de cian de la impresión"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Magenta:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "Ajusta el balance magenta de la impresión"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Amarillo:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "Ajusta el balance amarillo de la impresión"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Saturación:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"Ajusta la saturación (balance de color) de la impresión\n"
+"Usar saturación cero para producir salida de tonos de grises usando tintas "
+"color y negro."
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Densidad:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Ajusta la densidad (cantidad de tinta de la impresión.Reducir la densidad si "
+"la tinta se difumina sobre el papel; aumentar la densidad si las regiones "
+"negras no son sólidas."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"Ajusta el gamma de la impresión. Valores más grandes producirán generalmente "
+"una impresión más clara, mientras que valores más pequeñosproducirán "
+"generalmente una impresión más oscura. Negro y blanco permanecerán iguales, "
+"distinto a lo que sucede con el ajuste de brillo.."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Algoritmo de entramado:"
+
+#: src/gimp/gimp_color_window.c:411
+#, fuzzy
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"Elija el algoritmo de entramado a usar.\n"
+"El Híbrido Adaptivo normalmente produce la mejor calidad en general.\n"
+"El Ordenado es más rápido y produce una calidad casi tan buena como\n"
+"el anterior para fotografías.\n"
+"El Rápido y Muy Rápido son considerablemente más rápidos, y funcionan\n"
+"bien para texto y arte lineal.\n"
+"El Floyd-Steinberg Híbrido en general produce una salida inferior.\n"
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Imprimir v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Acerca de"
+
+#: src/gimp/gimp_main_window.c:338
+#, fuzzy
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr "Configuración de la Impresora"
+
+#: src/gimp/gimp_main_window.c:340
+#, fuzzy
+msgid ""
+"Save\n"
+"Settings"
+msgstr "Guardar Conf."
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Imprimir"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Previsualizar"
+
+#: src/gimp/gimp_main_window.c:407
+#, fuzzy
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"Posicione la imagen en la hoja.\n"
+"Seleccione y arrastre con el primer botón para posicionar la imagen.\n"
+"Seleccione y arrastre con el segundo botón para mover la imagen con\n"
+"mayor precisión; cada unidad de movimiento mueve la imagen un punto\n"
+"(1/72\")\n"
+"Seleccione y arrastre con el tercer botón (el medio) para mover la\n"
+"imagen en unidades del tamaño de la imagen.\n"
+"Sosteniendo la tecla 'shift' mientras se hace click y arrastra restringe\n"
+"el movimiento de la imagen a los ejes vertical y horizontal solamente.\n"
+"Si presiona otro botón mientras arrastra el ratón, la imagen volverá a\n"
+"posición original\n"
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Posición"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Automático"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Vertical"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Apaisado"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Invertido"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Horizontal invertido"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Seleccionar la orientación: vertical, horizontal, invertido, ú horizontal "
+"invertido "
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Orientación:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Izquierda:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Distancia desde el borde izquierdo del papel al borde de la imagen"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Arriba:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Distancia desde el borde superior del papel al borde de la imagen"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Derecha:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr ""
+"Distancia desde el borde izquierdo del papel al borde derecho de la imagen"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Borde derecho:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Distancia desde el borde derecho del papel al borde de la imagen"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Abajo:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr ""
+"Distancia desde el borde superior del papel al borde inferior de la imagen"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Borde inferior:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Distancia desde el borde inferior del papel al borde de la imagen"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Centrado: "
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Vertical"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Centrar la imagen verticalmente en el papel"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Ambos"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Centrar la imagen en el papel"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Horizontal"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Centrar la imagen horizontalmente en el papel"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Configuración de la Impresora"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "Aceptar"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Modelo de Impresora:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Seleccionar su madelo de impresora"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "Archivo PPD:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Ingrese el nombre de archivo PPD correcto para su impresora"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Explorar"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Elija el nombre de archivo PPD correcto para su impresora"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Comando:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Ingrese el comando correcto para imprimir en su impresora. Nota: ¡Favor de "
+"no remover el '-l' ú '-oraw' de la línea de comando o la impresión puede "
+"fallar!"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "¿Imprimir a un archivo?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "¿Archivo PPD?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Definir Nueva Impresora"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Nombre de la Impresora:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Ingrese el nombre que desea dar a ésta impresora lógica"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Acerca de Gimp-Print..."
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Versión de Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"y el resto del Equipo de Desarrollo del Gimp-Print.\n"
+"\n"
+"Favor de visitar nuetro web site en http://gimp-print.sourceforge.net.\n"
+"\n"
+"Éste programa es software libre, usted puede redistribuirlo y/o modificarlo\n"
+"bajo los términos de la Licencia General Pública GNU tal como se la publica\n"
+"por la Fundación de Software Libre; o la versión 2 de la Licencia, o (a su\n"
+"opción) cualquier versión posterior.\n"
+"\n"
+"Éste programa se distribuye con el deseo de que sea útil, pero SIN NINGUNA\n"
+"GARANTÍA; aún sin la garantía implícita de MERCANTIBILIDAD o AJUSTE PARA UN\n"
+"PROPÓSITO PARTICULAR. Vea la Licencia General Pública GNU para más "
+"detalles.\n"
+"\n"
+"Usted debe haber recibido una copia de la Licencia General Pública GNU\n"
+"junto con éste programa; si no, escriba a la Fundación de Software\n"
+"Libre, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Configuración de la Impresora"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+"Seleccionar el nombre de la impresora (no el tipo, o modelo de impresora) al "
+"que desea imprimir"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Conf. Impresora..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Elegir el modelo de impresora, archivo PPD, y comando que se usa para "
+"imprimir a ésta impresora"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Impresora Nueva..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Definir una nueva impresora lógica. Ésta puede ser usada para nombrar una "
+"colección de configuraciones que usted desea recordar para uso futuro."
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "Tamaño del papel al que desea imprimir"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Tamaño del medio:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Dimensiones:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Ancho:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Ancho del papel al que desea imprimir"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Altura:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Altura del papel al que desea imprimir"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Tipo de medio al que usted está imprimiendo"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Tipo de medio:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Origen del medio (ranura de entrada) al que está imprimiendo"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Fuente del medio:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Tipo de tinta de la impresora"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Tipo de Tinta:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Resolución y calidad de la impresión"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Resolución:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Tamaño"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Escala:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Establecer la escala (el tamaño) de la imagen"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Seleccionar si la escala se mide como porcentaje de la medida del papel "
+"disponible o número de puntos por pulgada en la salida."
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Porcentaje"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "Redimensionar la impresión al tamaño de la página"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPP"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "Redimensionar la impresión al tamaño de los puntos por pulgada"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Establecer el ancho de la impresión"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Establecer el alto de la impresión"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Unidades:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "Seleccionar la unidad base de medida para imprimir"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Pulgada"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Seleccionar la unidad base de medida a pulgadas"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Seleccionar la unidad base de medida a pulgadas a centímetros"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Usar Medida Orig.\n"
+"de la Imagen"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "Establecer la medida de impresión a la medida de la imagen"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Imagen / Configuración de Salida"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Tipo de Imagen :"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "Optimizar la salida para el tipo de imagen a imprimir"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "Color más rápido y brillante para texto y arte lineal"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr "Mejor para imágenes dominadas por regiones de colores sólidos"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Más lento, pero con el color más preciso y suave para imágenes de tono "
+"continuo y fotografías"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Tipo de salida:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Seleccionar el tipo de salida deseado"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Color"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Salida de color"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Tonos de gris"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "Imprimir en sombras de gris usando tinta negra"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Blanco y Negro"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Imprimir en blanco y negro (no color y no sombras de gris)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Ajustar Salida..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+"Ajustar balance de color, brillo, contraste, saturacion, y algoritmo de "
+"entramado"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Imprimiendo..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Archivo/Imprimir..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Archivo"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Mal espacio de color: bps %d canales %d espacio %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Sin buffer de filas\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parámetro %s fuera de rango (valor %f, mín %f, máx %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "No puedo analizar el parámetro %s=%s (se espera un número)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parámetro %s fuera de rango (valor %d, mín %d, máx %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "La impresora debe ser especificada con -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "La impresora %s no es un modelo conocido\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Opción desconocida %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f of %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "falló image_init %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "No puedo abrir el descriptor de archivo: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "No puedo abrir %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Impresora desconocida %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "¡Parámetros malos, no puedo continuar!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, fuzzy, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Traer próxima fila falló en %d\n"
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 x 360 PPP"
+
+#~ msgid "1440 x 360 DPI Unidirectional"
+#~ msgstr "1440 x 360 PPP Unidireccional"
+
+#~ msgid "1440 x 360 DPI High Quality"
+#~ msgstr "1440 x 360 PPP Alta Calidad"
+
+#~ msgid "1440 x 360 DPI High Quality Uni"
+#~ msgstr "1440 x 360 PPP Alta Calidad Unidireccional"
+
+#~ msgid "1440 x 360 DPI Highest Quality"
+#~ msgstr "1440 x 360 PPP Altísima Calidad "
+
+#~ msgid "13x19"
+#~ msgstr "13x19"
+
+#~ msgid "Monarch"
+#~ msgstr "Monarca"
+
+#~ msgid "Long 3"
+#~ msgstr "Largo 3"
+
+#~ msgid "Long 4"
+#~ msgstr "Largo 4"
+
+#~ msgid "Kaku"
+#~ msgstr "Kaku"
+
+#~ msgid "HP Greeting Card"
+#~ msgstr "Tarjeta HP de Salutación"
+
+#~ msgid "Escputil version 4.2.1, Copyright (C) 2000-2001 Robert Krawitz.\n"
+#~ msgstr "Escputil versión 4.2.1, Copyright (C) 2000-2001 Robert Krawitz.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "No puedo leer desde %s: %s\n"
+
+#~ msgid "Print/Save Setts."
+#~ msgstr "Imp./Guard. Conf."
+
+#~ msgid "Scale by:"
+#~ msgstr "Escalar por:"
diff --git a/po/fr.gmo b/po/fr.gmo
new file mode 100644
index 0000000..9980539
--- /dev/null
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index f9ce86c..02fd5e8 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,14 +1,15 @@
-# gimp-print fr.po
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Christophe Merlet (RedFox) <redfox@eikonex.org>, 2000-2001.
+# French translation of gimp-print.
+# Copyright (C) 2000-2002 Free Software Foundation, Inc.
+# Christophe Merlet (RedFox) <christophe@merlet.net>, 2000-2002.
# Christophe Fergeau <teuf@users.sourceforge.net>, 2001.
+# Raymond Ostertag <r.ostertag@caramail.com>, 2002.
#
msgid ""
msgstr ""
-"Project-Id-Version: gimp-print 4.1.99-b2\n"
-"POT-Creation-Date: 2001-11-24 10:41-0500\n"
-"PO-Revision-Date: 2001-11-09 13:17+0100\n"
-"Last-Translator: Christophe Fergeau <teuf@users.sourceforge.net>\n"
+"Project-Id-Version: gimp-print 4.2.1-pre4\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2002-09-15 16:07+0200\n"
+"Last-Translator: Raymond Ostertag <r.ostertag@caramail.com>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
@@ -17,869 +18,938 @@ msgstr ""
#: lib/getopt.c:681
#, c-format
msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s : l'option « %s » est ambigüe\n"
+msgstr "%s : l'option « %s » est ambigüe\n"
#: lib/getopt.c:706
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s : l'option « --%s » n'accepte pas de paramètre\n"
+msgstr "%s : l'option « --%s » n'accepte pas de paramètre\n"
#: lib/getopt.c:711
#, c-format
msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s : l'option « %c%s » n'accepte pas de paramètre\n"
+msgstr "%s : l'option « %c%s » n'accepte pas de paramètre\n"
#: lib/getopt.c:729 lib/getopt.c:902
#, c-format
msgid "%s: option `%s' requires an argument\n"
-msgstr "%s : l'option « %s » nécessite un paramètre\n"
+msgstr "%s : l'option « %s » nécessite un paramètre\n"
#. --option
#: lib/getopt.c:758
#, c-format
msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s : option inconnue « --%s »\n"
+msgstr "%s : option inconnue « --%s »\n"
#. +option or -option
#: lib/getopt.c:762
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s : option inconnue « %c%s »\n"
+msgstr "%s : option inconnue « %c%s »\n"
#. 1003.2 specifies the format of this message.
#: lib/getopt.c:788
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s : option illégale -- %c\n"
+msgstr "%s : option illégale -- %c\n"
#: lib/getopt.c:791
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s : option invalide -- %c\n"
+msgstr "%s : option invalide -- %c\n"
#. 1003.2 specifies the format of this message.
#: lib/getopt.c:821 lib/getopt.c:951
#, c-format
msgid "%s: option requires an argument -- %c\n"
-msgstr "%s : cette option nécessite un paramètre -- %c\n"
+msgstr "%s : cette option nécessite un paramètre -- %c\n"
#: lib/getopt.c:868
#, c-format
msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s : l'option « -W %s » est ambigüe\n"
+msgstr "%s : l'option « -W %s » est ambigüe\n"
#: lib/getopt.c:886
#, c-format
msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s : l'option « -W %s » n'accepte pas de paramètre\n"
+msgstr "%s : l'option « -W %s » n'accepte pas de paramètre\n"
-#: src/main/print-canon.c:1310 src/main/print-escp2.c:1652
-#: src/main/print-escp2.c:1711 src/main/print-lexmark.c:882
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
msgid "Plain Paper"
msgstr "Papier normal"
-#: src/main/print-canon.c:1311 src/main/print-escp2.c:1664
-#: src/main/print-escp2.c:1723 src/main/print-lexmark.c:888
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
msgid "Transparencies"
msgstr "Transparents"
-#: src/main/print-canon.c:1312
-#, fuzzy
+#: src/main/print-canon.c:1174
msgid "Back Print Film"
-msgstr "Imprimer dans un fichier ?"
+msgstr "Film back print"
-#: src/main/print-canon.c:1313
+#: src/main/print-canon.c:1175
msgid "Fabric Sheets"
-msgstr ""
+msgstr "Feuilles de fabrique"
-#: src/main/print-canon.c:1314
+#: src/main/print-canon.c:1176
msgid "Envelope"
msgstr "Enveloppe"
-#: src/main/print-canon.c:1315
+#: src/main/print-canon.c:1177
msgid "High Resolution Paper"
msgstr "Papier haute résolution"
-#: src/main/print-canon.c:1316
+#: src/main/print-canon.c:1178
msgid "T-Shirt Transfers"
msgstr "Transferts T-Shirt"
-#: src/main/print-canon.c:1317
+#: src/main/print-canon.c:1179
msgid "High Gloss Film"
-msgstr ""
+msgstr "Film glacé"
-#: src/main/print-canon.c:1318
+#: src/main/print-canon.c:1180
msgid "Glossy Photo Paper"
-msgstr "Papier photo brillant"
+msgstr "Papier glacé qualité photo"
-#: src/main/print-canon.c:1319
+#: src/main/print-canon.c:1181
msgid "Glossy Photo Cards"
-msgstr ""
+msgstr "Cartes glacées qualité photo"
-#: src/main/print-canon.c:1320
+#: src/main/print-canon.c:1182
msgid "Photo Paper Pro"
-msgstr ""
+msgstr "Papier photo pro"
-#: src/main/print-canon.c:1321 src/main/print-escp2.c:1698
-#: src/main/print-escp2.c:1757 src/main/print-lexmark.c:918
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
msgid "Other"
msgstr "Autre"
-#: src/main/print-canon.c:1594 src/main/print-lexmark.c:1133
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
msgid "Auto Sheet Feeder"
msgstr "Insertion automatique"
-#: src/main/print-canon.c:1595 src/main/print-lexmark.c:1134
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
msgid "Manual with Pause"
msgstr "Manuel avec pause"
-#: src/main/print-canon.c:1596 src/main/print-lexmark.c:1135
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
msgid "Manual without Pause"
msgstr "Manuel sans pause"
-#: src/escputil/escputil.c:577 src/main/print-canon.c:1689
-#: src/main/print-lexmark.c:639
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
msgid "Black"
msgstr "Noir"
-#: src/main/print-canon.c:1694
+#: src/main/print-canon.c:1563
msgid "CMY Color"
msgstr "Couleur CMJ"
-#: src/main/print-canon.c:1699
+#: src/main/print-canon.c:1568
msgid "CMYK Color"
msgstr "Couleur CMJN"
-#: src/main/print-canon.c:1704
+#: src/main/print-canon.c:1573
msgid "Photo CcMmY Color"
-msgstr "Photo Couleur CcMmJ"
+msgstr "Photo couleur CcMmJ"
-#: src/main/print-canon.c:1709
+#: src/main/print-canon.c:1578
msgid "Photo CcMmYK Color"
-msgstr "Photo Couleur CcMmJN"
+msgstr "Photo couleur CcMmJN"
-#: src/main/print-dither.c:62
+#: src/main/print-dither.c:64
msgid "Adaptive Hybrid"
msgstr "Adaptatif hybride"
-#: src/main/print-dither.c:63
+#: src/main/print-dither.c:65
msgid "Ordered"
msgstr "Ordonné"
-#: src/main/print-dither.c:64
+#: src/main/print-dither.c:66
msgid "Fast"
msgstr "Rapide"
-#: src/main/print-dither.c:65
+#: src/main/print-dither.c:67
msgid "Very Fast"
msgstr "Très rapide"
-#: src/main/print-dither.c:66
+#: src/main/print-dither.c:68
msgid "Hybrid Floyd-Steinberg"
msgstr "Floyd-Steinberg hybride"
-#: src/main/print-escp2.c:1655 src/main/print-escp2.c:1714
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "Tons lisses"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Trois couleurs composite"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Quatre couleurs standard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Six couleurs photo"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Cinq couleurs photo composite"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Sept couleurs amélioré"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Six couleurs amélioré composite"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Photo sept couleurs"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Niveaux de gris deux niveaux"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quadichromie"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
msgid "Plain Paper Fast Load"
-msgstr ""
+msgstr "Papier normal chargement rapide"
#. 7.25 * 10.5in
-#: src/main/print-escp2.c:1658 src/main/print-escp2.c:1717
-#: src/main/print-util.c:532
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
msgid "Postcard"
msgstr "Carte postale"
-#: src/main/print-escp2.c:1661 src/main/print-escp2.c:1720
-#: src/main/print-lexmark.c:885
-#, fuzzy
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
msgid "Glossy Film"
-msgstr "Pavage en verre"
+msgstr "Film glacé"
-#: src/main/print-escp2.c:1667 src/main/print-escp2.c:1726
-#: src/main/print-lexmark.c:891
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
msgid "Envelopes"
msgstr "Enveloppes"
-#: src/main/print-escp2.c:1670 src/main/print-escp2.c:1729
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
msgid "Back Light Film"
-msgstr ""
+msgstr "Film back light"
-#: src/main/print-escp2.c:1673 src/main/print-escp2.c:1732
-#: src/main/print-lexmark.c:894
-#, fuzzy
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
msgid "Matte Paper"
-msgstr "Coller aprés"
+msgstr "Papier Mat"
-#: src/main/print-escp2.c:1676 src/main/print-escp2.c:1735
-#: src/main/print-lexmark.c:897
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
msgid "Inkjet Paper"
msgstr "Papier jet d'encre"
-#: src/main/print-escp2.c:1679 src/main/print-escp2.c:1738
-#: src/main/print-lexmark.c:900
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
msgid "Photo Quality Inkjet Paper"
msgstr "Papier jet d'encre qualité photo"
-#: src/main/print-escp2.c:1682 src/main/print-escp2.c:1741
-#: src/main/print-lexmark.c:903
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
msgid "Photo Paper"
msgstr "Papier photo"
-#: src/main/print-escp2.c:1685 src/main/print-escp2.c:1744
-#: src/main/print-lexmark.c:906
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
msgid "Premium Glossy Photo Paper"
-msgstr "Papier photo brillant Premium"
+msgstr "Papier glacé photo Premium"
-#: src/main/print-escp2.c:1689 src/main/print-escp2.c:1748
-#: src/main/print-lexmark.c:909
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
msgid "Premium Luster Photo Paper"
-msgstr ""
+msgstr "Papier photo Premium Luster"
-#: src/main/print-escp2.c:1692 src/main/print-escp2.c:1751
-#: src/main/print-lexmark.c:912
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
msgid "Photo Quality Glossy Paper"
-msgstr "Papier photo brillant"
+msgstr "Papier glacé qualité photo"
-#: src/main/print-escp2.c:1695 src/main/print-escp2.c:1754
-#: src/main/print-lexmark.c:915
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
msgid "Ilford Heavy Paper"
msgstr "Papier épais Ilford"
-#: src/main/print-escp2.c:2825 src/main/print-escp2.c:2827
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Papier normal"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
msgid "360 x 90 DPI Fast Economy Draft"
-msgstr "Brouillon rapide 360x90 ppp"
+msgstr "360 x 90 ppp Brouillon économie rapide"
-#: src/main/print-escp2.c:2830 src/main/print-escp2.c:2832
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
msgid "360 x 120 DPI Economy Draft"
-msgstr "Brouillon 360x120 ppp"
+msgstr "360 x 120 ppp Brouillon économie"
-#: src/main/print-escp2.c:2835 src/main/print-escp2.c:2837
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
msgid "180 DPI Economy Draft"
-msgstr "Économique 180 ppp"
+msgstr "180 ppp Brouillon économie"
-#: src/main/print-escp2.c:2840 src/main/print-escp2.c:2842
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
msgid "360 x 240 DPI Draft"
-msgstr "Brouillon 360 x 240 ppp"
+msgstr "360 x 240 ppp Brouillon"
-#: src/main/print-escp2.c:2845 src/main/print-escp2.c:2847
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
msgid "360 x 180 DPI Draft"
-msgstr "Brouillon 360 x 180 ppp"
+msgstr "360 x 180 ppp Brouillon"
-#: src/main/print-escp2.c:2850 src/main/print-escp2.c:2858
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
msgid "360 DPI"
msgstr "360 ppp"
-#: src/main/print-escp2.c:2852 src/main/print-escp2.c:2860
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
msgid "360 DPI Unidirectional"
msgstr "360 ppp unidirectionnel"
-#: src/main/print-escp2.c:2854
-msgid "360 DPI Microweave"
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+#, fuzzy
+msgid "360 DPI Interleave"
msgstr "360 ppp Microweave"
-#: src/main/print-escp2.c:2856
-msgid "360 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+#, fuzzy
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 ppp Microweave unidirectionnel"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 ppp"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 ppp unidirectionnel"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+#, fuzzy
+msgid "720 DPI Interleave"
+msgstr "720 ppp Microweave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+#, fuzzy
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 ppp Microweave unidirectionnel"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 ppp"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 ppp unidirectionnel"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 ppp Haute qualité"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 ppp Haute qualité unidirectionnel"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 ppp Trés haute qualité"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 ppp Microweave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+#, fuzzy
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 ppp Microweave unidirectionnel"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 ppp"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 ppp unidirectionnel"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 ppp Trés haute qualité"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 ppp"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 ppp unidirectionnel"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 ppp"
-#: src/main/print-escp2.c:2862
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 ppp Très haute qualité"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 ppp"
+
+#: src/main/print-escp2-data.c:4098
msgid "360 DPI Full Overlap"
-msgstr ""
+msgstr "360 ppp Recouvrement complet"
-#: src/main/print-escp2.c:2864
+#: src/main/print-escp2-data.c:4100
msgid "360 DPI Full Overlap Unidirectional"
-msgstr ""
+msgstr "360 ppp Recouvrement complet unidirectionnel"
-#: src/main/print-escp2.c:2866
+#: src/main/print-escp2-data.c:4102
msgid "360 DPI FOL2"
-msgstr ""
+msgstr "360 ppp FOL2"
-#: src/main/print-escp2.c:2868
+#: src/main/print-escp2-data.c:4104
msgid "360 DPI FOL2 Unidirectional"
-msgstr ""
+msgstr "360 ppp FOL2 unidirectionnel"
-#: src/main/print-escp2.c:2870
+#: src/main/print-escp2-data.c:4106
msgid "360 DPI MW2"
-msgstr ""
+msgstr "360 ppp MW2"
-#: src/main/print-escp2.c:2872
+#: src/main/print-escp2-data.c:4108
msgid "360 DPI MW2 Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2875 src/main/print-escp2.c:2879
-msgid "720 x 360 DPI"
-msgstr "720 x 360 ppp"
-
-#: src/main/print-escp2.c:2877 src/main/print-escp2.c:2881
-msgid "720 x 360 DPI Unidirectional"
-msgstr ""
+msgstr "360 ppp MW2 unidirectionnel"
-#: src/main/print-escp2.c:2883
-msgid "720 x 360 DPI Microweave"
-msgstr "720x360 ppp Microweave"
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 ppp Microweave"
-#: src/main/print-escp2.c:2885
-msgid "720 x 360 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4117
+#, fuzzy
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 ppp Microweave unidirectionnel"
-#: src/main/print-escp2.c:2887
+#: src/main/print-escp2-data.c:4119
msgid "720 x 360 DPI FOL"
-msgstr ""
+msgstr "720 x 360 ppp FOL"
-#: src/main/print-escp2.c:2889
+#: src/main/print-escp2-data.c:4121
msgid "720 x 360 DPI FOL Unidirectional"
-msgstr ""
+msgstr "720 x 360 ppp FOL unidirectionnel"
-#: src/main/print-escp2.c:2891
+#: src/main/print-escp2-data.c:4123
msgid "720 x 360 DPI FOL2"
-msgstr ""
+msgstr "720 x 360 ppp FOL2"
-#: src/main/print-escp2.c:2893
+#: src/main/print-escp2-data.c:4125
msgid "720 x 360 DPI FOL2 Unidirectional"
-msgstr ""
+msgstr "720 x 360 ppp FOL2 unidirectionnel"
-#: src/main/print-escp2.c:2895
+#: src/main/print-escp2-data.c:4127
msgid "720 x 360 DPI MW2"
-msgstr ""
+msgstr "720 x 360 ppp MW2"
-#: src/main/print-escp2.c:2897
+#: src/main/print-escp2-data.c:4129
msgid "720 x 360 DPI MW2 Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2900 src/main/print-escp2.c:2916
-msgid "720 DPI"
-msgstr "720 ppp"
-
-#: src/main/print-escp2.c:2902 src/main/print-escp2.c:2918
-msgid "720 DPI Unidirectional"
-msgstr "720 ppp unidirectionnel"
+msgstr "720 x 360 ppp MW2 unidirectionnel"
-#: src/main/print-escp2.c:2904
-msgid "720 DPI Microweave"
-msgstr ""
-
-#: src/main/print-escp2.c:2906
-msgid "720 DPI Microweave Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2908
+#: src/main/print-escp2-data.c:4136
msgid "720 DPI Full Overlap"
-msgstr ""
+msgstr "720 ppp Recouvrement complet"
-#: src/main/print-escp2.c:2910
+#: src/main/print-escp2-data.c:4138
msgid "720 DPI Full Overlap Unidirectional"
-msgstr ""
+msgstr "720 ppp Recouvrement complet unidirectionnel"
-#: src/main/print-escp2.c:2912
+#: src/main/print-escp2-data.c:4140
msgid "720 DPI Four Pass"
-msgstr ""
+msgstr "720 ppp Quatre passes"
-#: src/main/print-escp2.c:2914
+#: src/main/print-escp2-data.c:4142
msgid "720 DPI Four Pass Unidirectional"
-msgstr ""
+msgstr "720 ppp Quatre passes unidirectionnelles"
-#: src/main/print-escp2.c:2920
-msgid "720 DPI High Quality"
-msgstr "Haute qualité 720 ppp"
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 ppp FOL"
-#: src/main/print-escp2.c:2922
-msgid "720 DPI High Quality Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 ppp FOL unidirectionnel"
-#: src/main/print-escp2.c:2924
-msgid "720 DPI Highest Quality"
-msgstr "Trés haute qualité 720 ppp"
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 ppp Quatre passes"
-#: src/main/print-escp2.c:2927 src/main/print-escp2.c:2943
-msgid "1440 x 720 DPI"
-msgstr "1440 x 720 ppp"
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 ppp Quatre passes unidirectionnelles"
-#: src/main/print-escp2.c:2929 src/main/print-escp2.c:2945
-msgid "1440 x 720 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 ppp Microweave"
-#: src/main/print-escp2.c:2931
-msgid "1440 x 720 DPI Microweave"
-msgstr ""
+#: src/main/print-escp2-data.c:4160
+#, fuzzy
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 ppp Microweave unidirectionnel"
-#: src/main/print-escp2.c:2933
-msgid "1440 x 720 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 ppp FOL"
-#: src/main/print-escp2.c:2935
-msgid "1440 x 720 DPI FOL"
-msgstr ""
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 ppp FOL unidirectionnel"
-#: src/main/print-escp2.c:2937
-msgid "1440 x 720 DPI FOL Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 ppp Quatre passes"
-#: src/main/print-escp2.c:2939
-msgid "1440 x 720 DPI Four Pass"
-msgstr "Quatre passes 1440x720 ppp"
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 ppp Quatre passes unidirectionnelles"
-#: src/main/print-escp2.c:2941
-msgid "1440 x 720 DPI Four Pass Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 ppp Microweave"
-#: src/main/print-escp2.c:2947
-msgid "1440 x 720 DPI Highest Quality"
-msgstr "Trés haute qualité 1440x720 ppp"
+#: src/main/print-escp2-data.c:4173
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 ppp Microweave unidirectionnel"
-#: src/main/print-escp2.c:2950
-msgid "2880 x 720 DPI"
-msgstr "2880x720 ppp"
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 ppp FOL"
-#: src/main/print-escp2.c:2952
-msgid "2880 x 720 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 ppp FOL unidirectionnel"
-#.
-#. * Nothing thus far supports 1440 DPI vertical resolution
-#.
-#: src/main/print-escp2.c:2958
-msgid "1440 x 1440 DPI"
-msgstr "1440x1440 ppp"
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 ppp Quatre passes"
-#: src/main/print-escp2.c:2960
-msgid "1440 x 1440 DPI Highest Quality"
-msgstr "Très haute qualité 1440x1440 ppp"
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 ppp Quatre passes unidirectionnelles"
-#: src/main/print-escp2.c:2963
-msgid "2880 x 1440 DPI"
-msgstr "2880x1440 ppp"
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 ppp Microweave"
-#.
-#. * These resolutions have no practical use; they're neither as good as
-#. * nor any faster than 720x720 DPI. They exist to permit testing
-#. * 2880x720 (4:1 aspect) on 1440x720 printers.
-#.
-#: src/main/print-escp2.c:2971
-msgid "1440 x 360 DPI"
-msgstr "1440x360 ppp"
+#: src/main/print-escp2-data.c:4186
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 ppp Microweave unidirectionnel"
-#: src/main/print-escp2.c:2973
-msgid "1440 x 360 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 ppp FOL"
-#: src/main/print-escp2.c:2975
-msgid "1440 x 360 DPI High Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 ppp FOL unidirectionnel"
-#: src/main/print-escp2.c:2977
-msgid "1440 x 360 DPI High Quality Uni"
-msgstr ""
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 ppp Quatre passes"
-#: src/main/print-escp2.c:2979
-msgid "1440 x 360 DPI Highest Quality"
-msgstr ""
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 ppp Quatre passes unidirectionnelles"
-#: src/main/print-escp2.c:2995
-#, fuzzy
-msgid "Seven Color Enhanced"
-msgstr "Extension de couleurs..."
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
-#: src/main/print-escp2.c:2996
-msgid "Six Color Enhanced Composite"
-msgstr ""
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Alimentation rouleau"
-#: src/main/print-escp2.c:2997 src/main/print-lexmark.c:629
-#: src/main/print-lexmark.c:709
-msgid "Six Color Photo"
-msgstr "Photo six couleurs"
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
-#: src/main/print-escp2.c:2998 src/main/print-lexmark.c:634
-#: src/main/print-lexmark.c:714
-msgid "Five Color Photo Composite"
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
msgstr ""
-#. output_type ncolors used_colors pass_length v_top_head_offset
-#. * h_catridge_offset
-#. * h_direction_offset
-#. * head_offset
-#: src/main/print-escp2.c:2999 src/main/print-lexmark.c:619
-#: src/main/print-lexmark.c:699
-msgid "Four Color Standard"
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
msgstr ""
-#: src/main/print-escp2.c:3000 src/main/print-lexmark.c:624
-#: src/main/print-lexmark.c:704
-msgid "Three Color Composite"
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
msgstr ""
-#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2.c:3323
-#: src/main/print-pcl.c:198
-msgid "Standard"
-msgstr "Standard"
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Sélection auto"
-#: src/main/print-escp2.c:3325
-msgid "Roll Feed"
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
msgstr ""
#. name hres vres softw v_pass overs unidir resid
-#: src/main/print-lexmark.c:595 src/main/print-lexmark.c:681
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
msgid "300 DPI x 600 DPI"
-msgstr "300x600 ppp"
+msgstr "300 x 600 ppp"
-#: src/main/print-lexmark.c:596 src/main/print-lexmark.c:682
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
msgid "600 DPI"
msgstr "600 ppp"
-#: src/main/print-lexmark.c:597 src/main/print-lexmark.c:683
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
msgid "600 DPI high quality"
-msgstr "Haute qualité 600 ppp"
+msgstr "600 ppp Haute qualité"
-#: src/main/print-lexmark.c:598 src/main/print-lexmark.c:684
-#, fuzzy
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
msgid "600 DPI Unidirectional"
-msgstr "Directionnel"
+msgstr "600 ppp Unirectionnel"
-#: src/main/print-lexmark.c:599 src/main/print-lexmark.c:685
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
msgid "1200 DPI"
msgstr "1200 ppp"
-#: src/main/print-lexmark.c:600 src/main/print-lexmark.c:686
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
msgid "1200 DPI high quality"
-msgstr "Haute qualité 1200 ppp"
+msgstr "1200 ppp Haute qualité"
-#: src/main/print-lexmark.c:601 src/main/print-lexmark.c:687
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
msgid "1200 DPI highest quality"
-msgstr "Très haute qualité 1200 ppp"
+msgstr "1200 ppp Très haute qualité"
-#: src/main/print-lexmark.c:602 src/main/print-lexmark.c:688
-#, fuzzy
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
msgid "1200 DPI Unidirectional"
-msgstr "Directionnel"
+msgstr "1200 ppp Unidirectionnel"
-#: src/main/print-lexmark.c:603
+#: src/main/print-lexmark.c:630
msgid "2400 DPI x 1200 DPI"
-msgstr "2400x1200 ppp"
+msgstr "2400 x 1200 ppp"
-#: src/main/print-lexmark.c:604
+#: src/main/print-lexmark.c:631
msgid "2400 DPI x 1200 DPI high quality"
-msgstr "Haute qualité 2400x1200 ppp"
+msgstr "2400 x 1200 ppp Haute qualité"
-#: src/main/print-lexmark.c:605
+#: src/main/print-lexmark.c:632
msgid "2400 DPI x 1200 DPI highest quality"
-msgstr "Très haute qualité 2400x1200 ppp"
+msgstr "2400 x 1200 ppp Très haute qualité"
-#: src/main/print-lexmark.c:607
+#: src/main/print-lexmark.c:634
msgid "test print"
msgstr "test d'impression"
-#. 11in x 17in
-#: src/main/print-pcl.c:108 src/main/print-util.c:530
-msgid "Executive"
-msgstr "Executive"
-
-#. US Exec (7.25 x 10.5 in)
-#: src/main/print-pcl.c:109 src/main/print-util.c:524
-msgid "Letter"
-msgstr "Letter"
-
-#. US Letter (8.5 x 11 in)
-#: src/main/print-pcl.c:110 src/main/print-util.c:526
-msgid "Legal"
-msgstr "Legal"
-
-#. US Legal (8.5 x 14 in)
-#: src/main/print-pcl.c:111 src/main/print-util.c:528
-msgid "Tabloid"
-msgstr "Tabloid"
-
-#. US Tabloid (11 x 17 in)
-#: src/main/print-pcl.c:112 src/main/print-pcl.c:199 src/main/print-util.c:548
-msgid "Manual"
-msgstr "Manuel"
-
-#. US Manual/Statement (5.5 x 8.5 in)
-#: src/main/print-pcl.c:113
-msgid "13x19"
-msgstr "13x19"
-
-#. US 13x19/Super B (13 x 19 in)
-#: src/main/print-pcl.c:114 src/main/print-util.c:599
-msgid "A5"
-msgstr "A5"
-
-#. ISO/JIS A5 (148 x 210 mm)
-#: src/main/print-pcl.c:115 src/main/print-util.c:597
-msgid "A4"
-msgstr "A4"
-
-#. ISO/JIS A4 (210 x 297 mm)
-#: src/main/print-pcl.c:116 src/main/print-util.c:595
-msgid "A3"
-msgstr "A3"
-
-#. ISO/JIS A3 (297 x 420 mm)
-#: src/main/print-pcl.c:117 src/main/print-util.c:681
-msgid "B5 JIS"
-msgstr "B5 JIS"
-
-#. JIS B5 (182 x 257 mm).
-#: src/main/print-pcl.c:118 src/main/print-util.c:679
-msgid "B4 JIS"
-msgstr "B4 JIS"
-
-#. JIS B4 (257 x 364 mm).
-#: src/main/print-pcl.c:119 src/main/print-util.c:783
-msgid "Hagaki Card"
-msgstr "Carte Hagaki"
-
-#. Japanese Hagaki Card (100 x 148 mm)
-#: src/main/print-pcl.c:120 src/main/print-util.c:785
-msgid "Oufuku Card"
-msgstr "Carte Oufuku"
-
-#. Japanese Oufuku Card (148 x 200 mm)
-#: src/main/print-pcl.c:121 src/main/print-util.c:601
-msgid "A6"
-msgstr "A6"
-
-#. ISO/JIS A6 card
-#: src/main/print-pcl.c:122 src/main/print-util.c:536
-msgid "4x6"
-msgstr "4x6"
-
-#. US Index card (4 x 6 in)
-#: src/main/print-pcl.c:123 src/main/print-util.c:542
-msgid "5x8"
-msgstr "5x8"
-
-#. US Index card (5 x 8 in)
-#: src/main/print-pcl.c:124 src/main/print-util.c:534
-msgid "3x5"
-msgstr "3x5"
-
-#. US Index card (3 x 5 in)
-#: src/main/print-pcl.c:125
-#, fuzzy
-msgid "Monarch"
-msgstr "Mosaïque"
-
-#. Monarch Envelope (3 7/8 x 7 1/2 in)
-#: src/main/print-pcl.c:126 src/main/print-util.c:793
-msgid "Commercial 10"
-msgstr "Commercial 10"
-
-#. US Commercial 10 Envelope (4.125 x 9.5 in) Portrait
-#: src/main/print-pcl.c:127 src/main/print-util.c:713
-msgid "DL"
-msgstr "DL"
-
-#. DL envelope (110 x 220 mm) Portrait
-#: src/main/print-pcl.c:128 src/main/print-util.c:707
-msgid "C5"
-msgstr "C5"
-
-#. C5 envelope (162 x 229 mm)
-#: src/main/print-pcl.c:129 src/main/print-util.c:711
-msgid "C6"
-msgstr "C6"
-
-#. C6 envelope (114 x 162 mm)
-#: src/main/print-pcl.c:130 src/main/print-util.c:795
-msgid "A2 Invitation"
-msgstr "A2 Invitation"
-
-#. US A2 Invitation envelope (4 3/8 x 5 3/4 in)
-#: src/main/print-pcl.c:131
-msgid "Long 3"
-msgstr "Long 3"
-
-#. Japanese Long Envelope #3 (120 x 235 mm)
-#: src/main/print-pcl.c:132
-msgid "Long 4"
-msgstr "Long 4"
-
-#. Japanese Long Envelope #4 (90 x 205 mm)
-#: src/main/print-pcl.c:133
-msgid "Kaku"
-msgstr "Kaku"
-
-#. Japanese Kaku Envelope (240 x 332.1 mm)
-#. *** MRS: this size not supported by print-util funcs! ***
-#: src/main/print-pcl.c:135
-msgid "HP Greeting Card"
-msgstr "Carte de remerciement HP"
-
-#: src/main/print-pcl.c:153
-#, fuzzy
+#: src/main/print-pcl.c:157
msgid "Plain"
-msgstr "Plan"
+msgstr "Normal"
-#: src/main/print-pcl.c:154
-#, fuzzy
+#: src/main/print-pcl.c:158
msgid "Bond"
-msgstr "rond"
+msgstr "Bond"
-#: src/main/print-pcl.c:155
+#: src/main/print-pcl.c:159
msgid "Premium"
msgstr "Premium"
-#: src/main/print-pcl.c:156
-#, fuzzy
+#: src/main/print-pcl.c:160
msgid "Glossy Photo"
-msgstr "Pavage en verre"
+msgstr "Glacé photo"
-#: src/main/print-pcl.c:157
-#, fuzzy
+#: src/main/print-pcl.c:161
msgid "Transparency"
msgstr "Transparent"
-#: src/main/print-pcl.c:158
+#: src/main/print-pcl.c:162
msgid "Quick-dry Photo"
-msgstr ""
+msgstr "Photo séchage rapide"
-#: src/main/print-pcl.c:159
-#, fuzzy
+#: src/main/print-pcl.c:163
msgid "Quick-dry Transparency"
-msgstr "je ne peux gérer la transparence"
+msgstr "Transparent séchage rapide"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuel"
#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
-#: src/main/print-pcl.c:201
+#: src/main/print-pcl.c:205
msgid "Tray 1"
msgstr "Bac 1"
-#: src/main/print-pcl.c:202 src/main/print-pcl.c:208
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
msgid "Tray 2"
msgstr "Bac 2"
-#: src/main/print-pcl.c:203
+#: src/main/print-pcl.c:207
msgid "Tray 3"
msgstr "Bac 3"
-#: src/main/print-pcl.c:204
+#: src/main/print-pcl.c:208
msgid "Tray 4"
msgstr "Bac 4"
-#: src/main/print-pcl.c:205
+#: src/main/print-pcl.c:209
msgid "Portable Sheet Feeder"
-msgstr ""
+msgstr "Chargeur de feuille portable"
-#: src/main/print-pcl.c:206
+#: src/main/print-pcl.c:210
msgid "Desktop Sheet Feeder"
-msgstr ""
+msgstr "Chargeur de feuille de bureau"
-#: src/main/print-pcl.c:207
-#, fuzzy
+#: src/main/print-pcl.c:211
msgid "Tray"
-msgstr "Gris"
+msgstr "Bac"
-#: src/main/print-pcl.c:209
-#, fuzzy
+#: src/main/print-pcl.c:213
msgid "Optional Source"
-msgstr "Source du support :"
+msgstr "Source optionnelle"
-#: src/main/print-pcl.c:210
-#, fuzzy
+#: src/main/print-pcl.c:214
msgid "Autoselect"
-msgstr "Désélectionner"
+msgstr "Sélection auto"
-#: src/main/print-pcl.c:224
+#: src/main/print-pcl.c:228
msgid "150x150 DPI"
-msgstr "150x150 ppp"
+msgstr "150 x 150 ppp"
-#: src/main/print-pcl.c:225
+#: src/main/print-pcl.c:229
msgid "300x300 DPI"
-msgstr "300x300 ppp"
+msgstr "300 x 300 ppp"
-#: src/main/print-pcl.c:226
+#: src/main/print-pcl.c:230
msgid "600x300 DPI"
-msgstr "600x300 ppp"
+msgstr "600 x 300 ppp"
-#: src/main/print-pcl.c:227
+#: src/main/print-pcl.c:231
msgid "600x600 DPI monochrome"
-msgstr "Monochrome 600x600 ppp"
+msgstr "600 x 600 ppp Monochrome"
-#: src/main/print-pcl.c:228
+#: src/main/print-pcl.c:232
msgid "600x600 DPI"
-msgstr "600x600 ppp"
+msgstr "600 x 600 ppp"
-#: src/main/print-pcl.c:229
+#: src/main/print-pcl.c:233
msgid "1200x600 DPI"
-msgstr "1200x600 ppp"
+msgstr "1200 x 600 ppp"
-#: src/main/print-pcl.c:230
+#: src/main/print-pcl.c:234
msgid "2400x600 DPI"
-msgstr "2400x600 ppp"
+msgstr "2400 x 600 ppp"
-#: src/main/print-pcl.c:1563
+#: src/main/print-pcl.c:1763
msgid "Color + Black Cartridges"
msgstr "Cartouches couleur et noir"
-#: src/main/print-pcl.c:1564
+#: src/main/print-pcl.c:1764
msgid "Color + Photo Cartridges"
msgstr "Cartouches couleur et photo"
#. Name of file or command to print to
-#: src/main/print-util.c:125 src/main/print-util.c:159
-#: src/main/print-util.c:193
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
msgid "ps2"
msgstr "ps2"
-#: src/main/print-util.c:538
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
msgid "Epson 4x6 Photo Paper"
msgstr "Papier photo Epson 4x6"
-#: src/main/print-util.c:540
+#: src/main/print-util.c:549
msgid "5x7"
msgstr "5x7"
-#: src/main/print-util.c:544
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
msgid "6x8"
msgstr "6x8"
-#: src/main/print-util.c:546
+#: src/main/print-util.c:555
msgid "8x10"
msgstr "8x10"
#. 5.5in x 8.5in
-#: src/main/print-util.c:550
+#: src/main/print-util.c:559
msgid "12x18"
msgstr "12x18"
-#: src/main/print-util.c:552
+#: src/main/print-util.c:561
msgid "Super B 13x19"
msgstr "Super B 13x19"
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
#. Other common photographic paper sizes
-#: src/main/print-util.c:556
+#: src/main/print-util.c:567
msgid "8x12"
msgstr "8x12"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:558
+#: src/main/print-util.c:569
msgid "11x14"
msgstr "11x14"
-#: src/main/print-util.c:560
+#: src/main/print-util.c:571
msgid "16x20"
msgstr "16x20"
-#: src/main/print-util.c:562
+#: src/main/print-util.c:573
msgid "16x24"
msgstr "16x24"
#. 20x24 for 35 mm
-#: src/main/print-util.c:564
+#: src/main/print-util.c:575
msgid "20x24"
msgstr "20x24"
-#: src/main/print-util.c:566
+#: src/main/print-util.c:577
msgid "20x30"
msgstr "20x30"
#. 24x30 for 35 mm
-#: src/main/print-util.c:568
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
msgid "24x30"
msgstr "24x30"
-#: src/main/print-util.c:570
+#: src/main/print-util.c:583
msgid "24x36"
msgstr "24x36"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:572
+#: src/main/print-util.c:585
msgid "30x40"
msgstr "30x40"
@@ -892,47 +962,72 @@ msgstr "30x40"
#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
#. * size is obtained by doubling or halving another A size.
#.
-#: src/main/print-util.c:585
+#: src/main/print-util.c:598
msgid "4A"
msgstr "4A"
#. 1682mm x 2378mm
-#: src/main/print-util.c:587
+#: src/main/print-util.c:600
msgid "2A"
msgstr "2A"
#. 1189mm x 1682mm
-#: src/main/print-util.c:589
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
msgid "A0"
msgstr "A0"
#. 841mm x 1189mm
-#: src/main/print-util.c:591
+#: src/main/print-util.c:606
msgid "A1"
msgstr "A1"
#. 594mm x 841mm
-#: src/main/print-util.c:593
+#: src/main/print-util.c:608
msgid "A2"
msgstr "A2"
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
#. 105mm x 148mm
-#: src/main/print-util.c:603
+#: src/main/print-util.c:618
msgid "A7"
msgstr "A7"
#. 74mm x 105mm
-#: src/main/print-util.c:605
+#: src/main/print-util.c:620
msgid "A8"
msgstr "A8"
#. 52mm x 74mm
-#: src/main/print-util.c:607
+#: src/main/print-util.c:622
msgid "A9"
msgstr "A9"
#. 37mm x 52mm
-#: src/main/print-util.c:609
+#: src/main/print-util.c:624
msgid "A10"
msgstr "A10"
@@ -941,27 +1036,27 @@ msgstr "A10"
#. * Stock sizes for normal trims.
#. * Allowance for trim is 3 millimetres.
#.
-#: src/main/print-util.c:616
+#: src/main/print-util.c:631
msgid "RA0"
msgstr "RA0"
#. 860mm x 1220mm
-#: src/main/print-util.c:618
+#: src/main/print-util.c:633
msgid "RA1"
msgstr "RA1"
#. 610mm x 860mm
-#: src/main/print-util.c:620
+#: src/main/print-util.c:635
msgid "RA2"
msgstr "RA2"
#. 430mm x 610mm
-#: src/main/print-util.c:622
+#: src/main/print-util.c:637
msgid "RA3"
msgstr "RA3"
#. 305mm x 430mm
-#: src/main/print-util.c:624
+#: src/main/print-util.c:639
msgid "RA4"
msgstr "RA4"
@@ -969,27 +1064,27 @@ msgstr "RA4"
#.
#. * Stock sizes for bled work or extra trims.
#.
-#: src/main/print-util.c:630
+#: src/main/print-util.c:645
msgid "SRA0"
msgstr "SRA0"
#. 900mm x 1280mm
-#: src/main/print-util.c:632
+#: src/main/print-util.c:647
msgid "SRA1"
msgstr "SRA1"
#. 640mm x 900mm
-#: src/main/print-util.c:634
+#: src/main/print-util.c:649
msgid "SRA2"
msgstr "SRA2"
#. 450mm x 640mm
-#: src/main/print-util.c:636
+#: src/main/print-util.c:651
msgid "SRA3"
msgstr "SRA3"
#. 320mm x 450mm
-#: src/main/print-util.c:638
+#: src/main/print-util.c:653
msgid "SRA4"
msgstr "SRA4"
@@ -997,161 +1092,189 @@ msgstr "SRA4"
#.
#. * "B" series: Posters, wall charts and similar items.
#.
-#: src/main/print-util.c:644
+#: src/main/print-util.c:659
msgid "4B ISO"
msgstr "4B ISO"
#. 2000mm x 2828mm
-#: src/main/print-util.c:646
+#: src/main/print-util.c:661
msgid "2B ISO"
msgstr "2B ISO"
#. 1414mm x 2000mm
-#: src/main/print-util.c:648
+#: src/main/print-util.c:663
msgid "B0 ISO"
msgstr "B0 ISO"
#. 1000mm x 1414mm
-#: src/main/print-util.c:650
+#: src/main/print-util.c:665
msgid "B1 ISO"
msgstr "B1 ISO"
#. 707mm x 1000mm
-#: src/main/print-util.c:652
+#: src/main/print-util.c:667
msgid "B2 ISO"
msgstr "B2 ISO"
#. 500mm x 707mm
-#: src/main/print-util.c:654
+#: src/main/print-util.c:669
msgid "B3 ISO"
msgstr "B3 ISO"
#. 353mm x 500mm
-#: src/main/print-util.c:656
+#: src/main/print-util.c:671
msgid "B4 ISO"
msgstr "B4 ISO"
#. 250mm x 353mm
-#: src/main/print-util.c:658
+#: src/main/print-util.c:673
msgid "B5 ISO"
msgstr "B5 ISO"
#. 176mm x 250mm
-#: src/main/print-util.c:660
+#: src/main/print-util.c:675
msgid "B6 ISO"
msgstr "B6 ISO"
#. 125mm x 176mm
-#: src/main/print-util.c:662
+#: src/main/print-util.c:677
msgid "B7 ISO"
msgstr "B7 ISO"
#. 88mm x 125mm
-#: src/main/print-util.c:664
+#: src/main/print-util.c:679
msgid "B8 ISO"
msgstr "B8 ISO"
#. 62mm x 88mm
-#: src/main/print-util.c:666
+#: src/main/print-util.c:681
msgid "B9 ISO"
msgstr "B9 ISO"
#. 44mm x 62mm
-#: src/main/print-util.c:668
+#: src/main/print-util.c:683
msgid "B10 ISO"
msgstr "B10 ISO"
#. 31mm x 44mm
-#: src/main/print-util.c:671
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
msgid "B0 JIS"
msgstr "B0 JIS"
-#: src/main/print-util.c:673
+#: src/main/print-util.c:690
msgid "B1 JIS"
msgstr "B1 JIS"
-#: src/main/print-util.c:675
+#: src/main/print-util.c:692
msgid "B2 JIS"
msgstr "B2 JIS"
-#: src/main/print-util.c:677
+#: src/main/print-util.c:694
msgid "B3 JIS"
msgstr "B3 JIS"
-#: src/main/print-util.c:683
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
msgid "B6 JIS"
msgstr "B6 JIS"
-#: src/main/print-util.c:685
+#: src/main/print-util.c:702
msgid "B7 JIS"
msgstr "B7 JIS"
-#: src/main/print-util.c:687
+#: src/main/print-util.c:704
msgid "B8 JIS"
msgstr "B8 JIS"
-#: src/main/print-util.c:689
+#: src/main/print-util.c:706
msgid "B9 JIS"
msgstr "B9 JIS"
-#: src/main/print-util.c:691
+#: src/main/print-util.c:708
msgid "B10 JIS"
msgstr "B10 JIS"
#.
#. * "C" series: Envelopes or folders suitable for A size stationery.
#.
-#: src/main/print-util.c:697
+#: src/main/print-util.c:714
msgid "C0"
msgstr "C0"
#. 917mm x 1297mm
-#: src/main/print-util.c:699
+#: src/main/print-util.c:716
msgid "C1"
msgstr "C1"
#. 648mm x 917mm
-#: src/main/print-util.c:701
+#: src/main/print-util.c:718
msgid "C2"
msgstr "C2"
#. 458mm x 648mm
-#: src/main/print-util.c:703
+#: src/main/print-util.c:720
msgid "C3"
msgstr "C3"
#. 324mm x 458mm
-#: src/main/print-util.c:705
+#: src/main/print-util.c:722
msgid "C4"
msgstr "C4"
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
#. 162mm x 229mm
-#: src/main/print-util.c:709
+#: src/main/print-util.c:726
msgid "B6-C4"
msgstr "B6-C4"
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
#. 110mm x 220mm
-#: src/main/print-util.c:715
+#: src/main/print-util.c:732
msgid "C7-6"
msgstr "C7-6"
#. 81mm x 162mm
-#: src/main/print-util.c:717
+#: src/main/print-util.c:734
msgid "C7"
msgstr "C7"
#. 81mm x 114mm
-#: src/main/print-util.c:719
+#: src/main/print-util.c:736
msgid "C8"
msgstr "C8"
#. 57mm x 81mm
-#: src/main/print-util.c:721
+#: src/main/print-util.c:738
msgid "C9"
msgstr "C9"
#. 40mm x 57mm
-#: src/main/print-util.c:723
+#: src/main/print-util.c:740
msgid "C10"
msgstr "C10"
@@ -1159,35 +1282,60 @@ msgstr "C10"
#.
#. * US CAD standard paper sizes
#.
-#: src/main/print-util.c:729
+#: src/main/print-util.c:746
msgid "ArchA"
msgstr "ArchA"
-#: src/main/print-util.c:731
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "Transferts T-Shirt"
+
+#: src/main/print-util.c:750
msgid "ArchB"
msgstr "ArchB"
-#: src/main/print-util.c:733
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "Transferts T-Shirt"
+
+#: src/main/print-util.c:754
msgid "ArchC"
msgstr "ArchC"
-#: src/main/print-util.c:735
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "Transferts T-Shirt"
+
+#: src/main/print-util.c:758
msgid "ArchD"
msgstr "ArchD"
-#: src/main/print-util.c:737
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "Transferts T-Shirt"
+
+#: src/main/print-util.c:762
msgid "ArchE"
msgstr "ArchE"
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "Transferts T-Shirt"
+
#.
#. * Foolscap
#.
-#: src/main/print-util.c:743
+#: src/main/print-util.c:770
msgid "American foolscap"
msgstr "Foolscap américain"
#. American foolscap
-#: src/main/print-util.c:745
+#: src/main/print-util.c:772
msgid "European foolscap"
msgstr "Foolscap européen"
@@ -1197,182 +1345,254 @@ msgstr "Foolscap européen"
#. * The BPIF and the Publishers Association jointly recommend ten
#. * standard metric sizes for case-bound titles as follows:
#.
-#: src/main/print-util.c:753
+#: src/main/print-util.c:780
msgid "Crown Quarto"
msgstr "Crown Quarto"
#. 189mm x 246mm
-#: src/main/print-util.c:755
+#: src/main/print-util.c:782
msgid "Large Crown Quarto"
-msgstr ""
+msgstr "Quatro couronne large"
#. 201mm x 258mm
-#: src/main/print-util.c:757
+#: src/main/print-util.c:784
msgid "Demy Quarto"
-msgstr ""
+msgstr "Demi-quatro"
#. 219mm x 276mm
-#: src/main/print-util.c:759
+#: src/main/print-util.c:786
msgid "Royal Quarto"
-msgstr ""
+msgstr "Quatro royal"
#. 237mm x 312mm
#. { "ISO A4", 595,
#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
-#: src/main/print-util.c:763
+#: src/main/print-util.c:790
msgid "Crown Octavo"
-msgstr ""
+msgstr "Octave couronne"
#. 123mm x 186mm
-#: src/main/print-util.c:765
+#: src/main/print-util.c:792
msgid "Large Crown Octavo"
-msgstr ""
+msgstr "Octave couronne large"
#. 129mm x 198mm
-#: src/main/print-util.c:767
+#: src/main/print-util.c:794
msgid "Demy Octavo"
-msgstr ""
+msgstr "Demi-octave"
#. 138mm x 216mm
-#: src/main/print-util.c:769
+#: src/main/print-util.c:796
msgid "Royal Octavo"
-msgstr ""
+msgstr "Octave royale"
#. 156mm x 234mm
#. { N_ ("ISO A5"), 419,
#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
#. Paperback sizes in common usage
-#: src/main/print-util.c:775
+#: src/main/print-util.c:802
msgid "Small paperback"
-msgstr ""
+msgstr "Petite reliure"
#. 111mm x 178mm
-#: src/main/print-util.c:777
+#: src/main/print-util.c:804
msgid "Penguin small paperback"
-msgstr ""
+msgstr "Petite reliure Penguin"
#. 111mm x 181mm
-#: src/main/print-util.c:779
+#: src/main/print-util.c:806
msgid "Penguin large paperback"
+msgstr "Grande reliure Penguin"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
msgstr ""
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Carte Hagaki"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Carte Oufuku"
+
#. 148 x 200 mm
-#: src/main/print-util.c:787
+#: src/main/print-util.c:816
msgid "Japanese long envelope #3"
msgstr "Enveloppe longue japonaise n°3"
#. Japanese long envelope #3
-#: src/main/print-util.c:789
+#: src/main/print-util.c:818
msgid "Japanese long envelope #4"
msgstr "Enveloppe longue japonaise n°4"
#. Japanese long envelope #4
-#: src/main/print-util.c:791
+#: src/main/print-util.c:820
msgid "Japanese Kaku envelope #4"
msgstr "Enveloppe Kaku japonaise n°4"
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitation"
+
#. US A2 invitation
-#: src/main/print-util.c:797
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Enveloppe Monarch"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
msgid "Custom"
msgstr "Personnalisé"
-#: src/main/print-util.c:800
+#: src/main/print-util.c:831
msgid "89 mm Roll Paper"
msgstr "Rouleau 89mm"
-#: src/main/print-util.c:802
+#: src/main/print-util.c:833
msgid "4 Inch Roll Paper"
msgstr "Rouleau 4 pouces"
-#: src/main/print-util.c:804
+#: src/main/print-util.c:835
msgid "5 Inch Roll Paper"
msgstr "Rouleau 5 pouces"
-#: src/main/print-util.c:806
+#: src/main/print-util.c:837
msgid "210 mm Roll Paper"
msgstr "Rouleau 210mm"
-#: src/main/print-util.c:808
+#: src/main/print-util.c:839
msgid "13 Inch Roll Paper"
msgstr "Rouleau 13 pouces"
-#: src/main/print-util.c:810
+#: src/main/print-util.c:841
msgid "22 Inch Roll Paper"
msgstr "Rouleau 22 pouces"
-#: src/main/print-util.c:812
+#: src/main/print-util.c:843
msgid "24 Inch Roll Paper"
msgstr "Rouleau 24 pouces"
-#: src/main/print-util.c:814
+#: src/main/print-util.c:845
msgid "36 Inch Roll Paper"
msgstr "Rouleau 36 pouces"
-#: src/main/print-util.c:816
+#: src/main/print-util.c:847
msgid "44 Inch Roll Paper"
msgstr "Rouleau 44 pouces"
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s n'est pas un paramètre valide de type %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s hors-intervalle (valeur %f, mini %f, maxi %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s hors-intervalle (valeur %d, mini %d, maxi %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "L'imprimante ne supporte pas les sorties en couleur\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "La taille d'image n'est pas valide\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "La marge haute ne doit pas être moins que zéro\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "La marge gauche ne doit pas être moins que zéro\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s n'est pas un algorithme de tramage valide\n"
+
#. Specify language of PPD translation
#. Translators: Specify the language of the PPD translation.
#. * Use the English name of your language here, e.g. "Swedish" instead of
#. * "Svenska".
#.
-#: src/cups/genppd.c:455
+#: src/cups/genppd.c:519
msgid "English"
msgstr "French"
#. Specify PPD translation encoding e.g. ISOLatin1
-#: src/cups/genppd.c:457
+#: src/cups/genppd.c:521
msgid "ISOLatin1"
msgstr "ISOLatin1"
-#: src/cups/genppd.c:633
+#: src/cups/genppd.c:777
msgid "Media Type"
msgstr "Type de support"
-#: src/cups/genppd.c:659
+#: src/cups/genppd.c:803
msgid "Media Source"
msgstr "Source du support"
-#: src/cups/genppd.c:683
+#: src/cups/genppd.c:827
msgid "Resolution"
msgstr "Résolution"
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Imprimer"
+
#.
#. * Image types...
#.
-#: src/cups/genppd.c:723
+#: src/cups/genppd.c:869
msgid "Image Type"
msgstr "Type d'image"
-#: src/cups/genppd.c:728 src/gimp/gimp_main_window.c:1314
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
msgid "Line Art"
msgstr "Crayon"
-#: src/cups/genppd.c:730 src/gimp/gimp_main_window.c:1328
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
msgid "Solid Colors"
msgstr "Tons continus"
-#: src/cups/genppd.c:732 src/gimp/gimp_main_window.c:1343
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
msgid "Photograph"
msgstr "Photographie"
#.
#. * Dithering algorithms...
#.
-#: src/cups/genppd.c:740
+#: src/cups/genppd.c:886
msgid "Dither Algorithm"
msgstr "Algorithme de tramage"
-#: src/cups/genppd.c:759
+#: src/cups/genppd.c:905
msgid "Ink Type"
msgstr "Type d'encre"
-#: src/escputil/escputil.c:64
+#: src/escputil/escputil.c:66
msgid "Escputil version "
msgstr "Version d'escputil"
-#: src/escputil/escputil.c:65
+#: src/escputil/escputil.c:67
msgid ""
", Copyright (C) 2000-2001 Robert Krawitz\n"
"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
@@ -1380,11 +1600,11 @@ msgid ""
"under certain conditions; type 'escputil -l' for details.\n"
msgstr ""
", Copyright © 2000-2001 Robert Krawitz\n"
-"Escputil ; pour plus de détails, tapez « escputil -l »\n"
+"Escputil ; pour plus de détails, tapez « escputil -l »\n"
"Ce logiciel est un logiciel libre, vous pouvez le redistribuer\n"
-"sous certaines conditions; tapez « escputil -l » pour plus de détails.\n"
+"sous certaines conditions; tapez « escputil -l » pour plus de détails.\n"
-#: src/escputil/escputil.c:70
+#: src/escputil/escputil.c:72
msgid ""
"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
"\n"
@@ -1402,8 +1622,27 @@ msgid ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Ce programme est un logiciel libre, vous pouvez le redistribuer et/ou le "
+"modifier\n"
+"sous les termes de la licence GNU GPL General Public License telle que "
+"publiée\n"
+"par la Free Software Foundation, soit la version 2 de la licence, ou (à "
+"votre choix)\n"
+"toute version ultérieure.\n"
+"\n"
+"Ce programme est distribuée dans l'espoir qu'il sera utile, mais SANS\n"
+"GARANTIE; sans même la garantie impliquée par la COMMERCIALISATION \n"
+"ou l'ACCORD POUR UN USAGE PARTICULIER. Voyez la licence GNU General Public "
+"License\n"
+"pour plus de détails.\n"
+"\n"
+"Vous devriez avoir reçu une copie de la GNU General Public License fournie\n"
+"avec le programme; si ce n'est pas le cas, écrivez à la Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#: src/escputil/escputil.c:110
+#: src/escputil/escputil.c:112
msgid ""
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P printer | -r device] [-u] [-q] [-m model]\n"
@@ -1445,24 +1684,24 @@ msgid ""
" -m|--model Specify the precise printer model for head "
"alignment.\n"
msgstr ""
-"Utilisation : escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+"Utilisation : escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P imprimante | -r périphérique] [-u] [-q] [-m "
"modèle]\n"
"Effectue des opérations de maintenance sur les imprimantes EPSON Stylus "
"(R).\n"
-"Exemples : escputil --clean-head --printer stpex-on-third-floor\n"
+"Exemples : escputil --clean-head --printer stpex-on-third-floor\n"
" escputil --ink-level --new --raw-device /dev/lp0\n"
"\n"
-"Commandes :\n"
+"Commandes :\n"
" -c|--clean-head Nettoie la tête d'impression\n"
" -n|--nozzle-check\n"
-" -a|--align-head Aligne la tête d'impression. ATTENTION : une mauvaise\n"
+" -a|--align-head Aligne la tête d'impression. ATTENTION : une mauvaise\n"
" utilisation de cette fonction peut provoquer une "
"mauvaise\n"
" qualité d'impression ou endommager l'imprimante.\n"
" -o|--align-color Aligne la tête d'impression couleur (uniquement pour "
"les\n"
-" Stylus Color 480 et 580). ATTENTION : une mauvaise\n"
+" Stylus Color 480 et 580). ATTENTION : une mauvaise\n"
" utilisation de cette fonction peut provoquer une "
"mauvaise\n"
" qualité d'impression ou endommager l'imprimante.\n"
@@ -1479,7 +1718,7 @@ msgstr ""
" -l|--license Affiche la license de ce programme.\n"
" -M|--list-models Affiche les modèles d'imprimante disponibles.\n"
" -h|--help Affiche ce message d'aide.\n"
-"Options :\n"
+"Options :\n"
" -P|--printer-name Indique le nom de la file d'attente d'impression à \n"
" utiliser. Par défaut, utilisation de l'imprimante du \n"
" par défaut du système.\n"
@@ -1493,7 +1732,7 @@ msgstr ""
" -m|--model Indique le modèle précis pour l'alignement des têtes.\n"
"\n"
-#: src/escputil/escputil.c:148
+#: src/escputil/escputil.c:150
msgid ""
"Usage: escputil [OPTIONS] [COMMAND]\n"
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
@@ -1531,357 +1770,580 @@ msgid ""
" -q Suppress the banner.\n"
" -m Specify the precise printer model for head alignment.\n"
msgstr ""
+"Usage: escputil [OPTIONS] [COMMANDE]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Maintenance sur les imprimantes EPSON Stylus (R).\n"
+"Exemples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commandes:\n"
+" -c Nettoie la tête d'impression.\n"
+" -n Imprime une trame de test des buses.\n"
+" Des buses sales ou bouchées se verront comme des espaces dans la\n"
+" trame. Si vous voyez un quelconque espace, vous devriez nettoyer\n"
+" la tête d'impression.\n"
+" -a Alignement de la tête d'impression. ATTENTION: une mauvaise "
+"utilisation de cet\n"
+" utilitaire peut conduire à une piètre qualité d'impression et/ou\n"
+" endommager l'imprimante.\n"
+" -o Alignement des têtes d'impression couleur (Stylus Color 480 and 580\n"
+" seulement). ATTENTION: une mauvaise utilisation de cet utilitaire "
+"peut\n"
+" conduire à une piètre qualité d'impression et/ou endommager "
+"l'imprimante.\n"
+" -s Retrouver le status de l'imprimante.\n"
+" -i Obtenir le niveau d'encre de l'imprimante. Ceci nécessite\n"
+" un accès en lecture/écriture au périphérique d'entrée.\n"
+" -d Interroge l'imprimante sur la marque et le modèle de l'imprimante."
+"Ceci nécessite\n"
+" un accès en lecture/écriture au périphérique d'entrée. \n"
+" -l Affiche les termes de licence/garantie de ce programme.\n"
+" -M Liste les modèles d'imprimantes disponibles.\n"
+" -h Imprime ce message d'aide.\n"
+" Options:\n"
+" -P Spécifie le nom de la queue d'imprimante sur laquelle opérer.\n"
+" Par déaut l'imprimante système.\n"
+" -r Spécifie le nom du périphérique sur lequel écrire directement\n"
+" plutôt que de passer via une queue d'impression.\n"
+" -u L'imprimante est une nouvelle imprimante (Stylus Color 740 ou plus "
+"récente).\n"
+" -q Supprime la bannière.\n"
+" -m Spécifie le modèle précis pour l'alignement des têtes.\n"
-#: src/escputil/escputil.c:199
+#: src/escputil/escputil.c:201
msgid "Stylus C20sx"
msgstr "Stylus C20sx"
-#: src/escputil/escputil.c:200
+#: src/escputil/escputil.c:202
msgid "Stylus C20ux"
msgstr "Stylus C20ux"
-#: src/escputil/escputil.c:201
+#: src/escputil/escputil.c:203
msgid "Stylus C40sx"
msgstr "Stylus C40sx"
-#: src/escputil/escputil.c:202
+#: src/escputil/escputil.c:204
msgid "Stylus C40ux"
msgstr "Stylus C40ux"
-#: src/escputil/escputil.c:203
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
msgid "Stylus C60"
msgstr "Stylus C60"
-#: src/escputil/escputil.c:204
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
msgid "Stylus C70"
msgstr "Stylus C70"
-#: src/escputil/escputil.c:205
+#: src/escputil/escputil.c:220
msgid "Stylus C80"
msgstr "Stylus C80"
-#: src/escputil/escputil.c:206
+#: src/escputil/escputil.c:221
+#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
msgid "Stylus Color"
msgstr "Stylus Color"
-#: src/escputil/escputil.c:207
+#: src/escputil/escputil.c:225
msgid "Stylus Color Pro"
msgstr "Stylus Color Pro"
-#: src/escputil/escputil.c:208
+#: src/escputil/escputil.c:226
msgid "Stylus Color Pro XL"
msgstr "Stylus Color Pro XL"
-#: src/escputil/escputil.c:209
+#: src/escputil/escputil.c:227
msgid "Stylus Color 400"
msgstr "Stylus Color 400"
-#: src/escputil/escputil.c:210
+#: src/escputil/escputil.c:228
msgid "Stylus Color 440"
msgstr "Stylus Color 440"
-#: src/escputil/escputil.c:211
+#: src/escputil/escputil.c:229
msgid "Stylus Color 460"
msgstr "Stylus Color 460"
-#: src/escputil/escputil.c:212
+#: src/escputil/escputil.c:230
msgid "Stylus Color 480"
msgstr "Stylus Color 480"
-#: src/escputil/escputil.c:213
+#: src/escputil/escputil.c:231
msgid "Stylus Color 500"
msgstr "Stylus Color 500"
-#: src/escputil/escputil.c:214
+#: src/escputil/escputil.c:232
msgid "Stylus Color 580"
msgstr "Stylus Color 580"
-#: src/escputil/escputil.c:215
+#: src/escputil/escputil.c:233
msgid "Stylus Color 600"
msgstr "Stylus Color 600"
-#: src/escputil/escputil.c:216
+#: src/escputil/escputil.c:234
msgid "Stylus Color 640"
msgstr "Stylus Color 640"
-#: src/escputil/escputil.c:217
+#: src/escputil/escputil.c:235
msgid "Stylus Color 660"
msgstr "Stylus Color 660"
-#: src/escputil/escputil.c:218
+#: src/escputil/escputil.c:236
msgid "Stylus Color 670"
msgstr "Stylus Color 670"
-#: src/escputil/escputil.c:219
+#: src/escputil/escputil.c:237
msgid "Stylus Color 680"
msgstr "Stylus Color 680"
-#: src/escputil/escputil.c:220
+#: src/escputil/escputil.c:238
msgid "Stylus Color 740"
msgstr "Stylus Color 740"
-#: src/escputil/escputil.c:221
+#: src/escputil/escputil.c:239
msgid "Stylus Color 760"
msgstr "Stylus Color 760"
-#: src/escputil/escputil.c:222
+#: src/escputil/escputil.c:240
msgid "Stylus Color 777"
msgstr "Stylus Color 777"
-#: src/escputil/escputil.c:223
+#: src/escputil/escputil.c:241
msgid "Stylus Color 800"
msgstr "Stylus Color 800"
-#: src/escputil/escputil.c:224
+#: src/escputil/escputil.c:242
msgid "Stylus Color 850"
msgstr "Stylus Color 850"
-#: src/escputil/escputil.c:225
+#: src/escputil/escputil.c:243
msgid "Stylus Color 860"
msgstr "Stylus Color 860"
-#: src/escputil/escputil.c:226
+#: src/escputil/escputil.c:244
msgid "Stylus Color 880"
msgstr "Stylus Color 880"
-#: src/escputil/escputil.c:227
+#: src/escputil/escputil.c:245
msgid "Stylus Color 83"
msgstr "Stylus Color 83"
-#: src/escputil/escputil.c:228
+#: src/escputil/escputil.c:246
msgid "Stylus Color 900"
msgstr "Stylus Color 900"
-#: src/escputil/escputil.c:229
+#: src/escputil/escputil.c:247
msgid "Stylus Color 980"
msgstr "Stylus Color 980"
-#: src/escputil/escputil.c:230
+#: src/escputil/escputil.c:248
msgid "Stylus Color 1160"
msgstr "Stylus Color 1160"
-#: src/escputil/escputil.c:231
+#: src/escputil/escputil.c:249
msgid "Stylus Color 1500"
msgstr "Stylus Color 1500"
-#: src/escputil/escputil.c:232
+#: src/escputil/escputil.c:250
msgid "Stylus Color 1520"
msgstr "Stylus Color 1520"
-#: src/escputil/escputil.c:233
+#: src/escputil/escputil.c:251
msgid "Stylus Color 3000"
msgstr "Stylus Color 3000"
-#: src/escputil/escputil.c:234
+#: src/escputil/escputil.c:252
msgid "Stylus Photo"
msgstr "Stylus Photo"
-#: src/escputil/escputil.c:235
+#: src/escputil/escputil.c:253
msgid "Stylus Photo 700"
msgstr "Stylus Photo 700"
-#: src/escputil/escputil.c:236
+#: src/escputil/escputil.c:254
msgid "Stylus Photo EX"
msgstr "Stylus Photo EX"
-#: src/escputil/escputil.c:237
+#: src/escputil/escputil.c:255
msgid "Stylus Photo 720"
msgstr "Stylus Photo 720"
-#: src/escputil/escputil.c:238
+#: src/escputil/escputil.c:256
msgid "Stylus Photo 750"
msgstr "Stylus Photo 750"
-#: src/escputil/escputil.c:239
+#: src/escputil/escputil.c:257
msgid "Stylus Photo 780"
msgstr "Stylus Photo 780"
-#: src/escputil/escputil.c:240
+#: src/escputil/escputil.c:258
msgid "Stylus Photo 785"
msgstr "Stylus Photo 785"
-#: src/escputil/escputil.c:241
+#: src/escputil/escputil.c:259
msgid "Stylus Photo 790"
msgstr "Stylus Photo 790"
-#: src/escputil/escputil.c:242
+#: src/escputil/escputil.c:260
msgid "Stylus Photo 810"
msgstr "Stylus Photo 810"
-#: src/escputil/escputil.c:243
+#: src/escputil/escputil.c:261
msgid "Stylus Photo 820"
msgstr "Stylus Photo 820"
-#: src/escputil/escputil.c:244
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
msgid "Stylus Photo 870"
msgstr "Stylus Photo 870"
-#: src/escputil/escputil.c:245
+#: src/escputil/escputil.c:264
msgid "Stylus Photo 875"
msgstr "Stylus Photo 875"
-#: src/escputil/escputil.c:246
+#: src/escputil/escputil.c:265
msgid "Stylus Photo 890"
msgstr "Stylus Photo 890"
-#: src/escputil/escputil.c:247
+#: src/escputil/escputil.c:266
msgid "Stylus Photo 895"
msgstr "Stylus Photo 895"
-#: src/escputil/escputil.c:248
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
msgid "Stylus Photo 1200"
msgstr "Stylus Photo 1200"
-#: src/escputil/escputil.c:249
+#: src/escputil/escputil.c:273
msgid "Stylus Photo 1270"
msgstr "Stylus Photo 1270"
-#: src/escputil/escputil.c:250
+#: src/escputil/escputil.c:274
msgid "Stylus Photo 1280"
msgstr "Stylus Photo 1280"
-#: src/escputil/escputil.c:251
+#: src/escputil/escputil.c:275
msgid "Stylus Photo 1290"
msgstr "Stylus Photo 1290"
-#: src/escputil/escputil.c:252
+#: src/escputil/escputil.c:276
msgid "Stylus Photo 2000P"
msgstr "Stylus Photo 2000P"
-#: src/escputil/escputil.c:253
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
msgid "Stylus Pro 5000"
msgstr "Stylus Pro 5000"
-#: src/escputil/escputil.c:254
+#: src/escputil/escputil.c:280
msgid "Stylus Pro 5500"
msgstr "Stylus Pro 5500"
-#: src/escputil/escputil.c:255
+#: src/escputil/escputil.c:281
msgid "Stylus Pro 7000"
msgstr "Stylus Pro 7000"
-#: src/escputil/escputil.c:256
+#: src/escputil/escputil.c:282
msgid "Stylus Pro 7500"
msgstr "Stylus Pro 7500"
-#: src/escputil/escputil.c:257
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
msgid "Stylus Pro 9000"
msgstr "Stylus Pro 9000"
-#: src/escputil/escputil.c:258
+#: src/escputil/escputil.c:285
msgid "Stylus Pro 9500"
msgstr "Stylus Pro 9500"
-#: src/escputil/escputil.c:259
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
msgid "Stylus Pro 10000"
msgstr "Stylus Pro 10000"
-#: src/escputil/escputil.c:260
+#: src/escputil/escputil.c:288
msgid "Stylus Scan 2000"
msgstr "Stylus Scan 2000"
-#: src/escputil/escputil.c:261
+#: src/escputil/escputil.c:289
msgid "Stylus Scan 2500"
msgstr "Stylus Scan 2500"
-#: src/escputil/escputil.c:341 src/escputil/escputil.c:350
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
msgid "You may only specify one printer or raw device."
-msgstr ""
+msgstr "Vous ne pouvez spécifier qu'une imprimante ou périphérique"
-#: src/escputil/escputil.c:359
+#: src/escputil/escputil.c:402
msgid "You may only specify one printer model."
-msgstr ""
+msgstr "Vous ne pouvez spécifier qu'un modèle d'imprimante"
-#: src/escputil/escputil.c:379
+#: src/escputil/escputil.c:422
#, c-format
msgid "Unknown option %c\n"
msgstr "Option inconnue %c\n"
-#: src/escputil/escputil.c:439
+#: src/escputil/escputil.c:482
#, c-format
msgid "Cannot open device %s: %s\n"
-msgstr "Impossible d'ouvrir le périphérique %s : %s\n"
+msgstr "Impossible d'ouvrir le périphérique %s : %s\n"
-#: src/escputil/escputil.c:462
+#: src/escputil/escputil.c:505
#, c-format
msgid "Cannot print to printer %s with %s\n"
msgstr "Impossible d'imprimer sur l'imprimante %s avec %s\n"
-#: src/escputil/escputil.c:475 src/escputil/escputil.c:485
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
msgid "Unable to send command to printer\n"
msgstr "Impossible d'envoyer la commande à l'imprimante\n"
-#: src/escputil/escputil.c:578
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Impossible de lire à partir de %s : %s\n"
+
+#: src/escputil/escputil.c:638
msgid "Cyan"
msgstr "Cyan"
-#: src/escputil/escputil.c:579
+#: src/escputil/escputil.c:639
msgid "Magenta"
msgstr "Magenta"
-#: src/escputil/escputil.c:580
+#: src/escputil/escputil.c:640
msgid "Yellow"
msgstr "Jaune"
-#: src/escputil/escputil.c:581
+#: src/escputil/escputil.c:641
msgid "Light Cyan"
msgstr "Cyan clair"
-#: src/escputil/escputil.c:582
+#: src/escputil/escputil.c:642
msgid "Light Magenta"
msgstr "Magenta clair"
-#: src/escputil/escputil.c:596
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
msgid "Obtaining ink levels requires using a raw device.\n"
msgstr ""
+"Obtenir les niveaux d'encre demande d'utiliser un périphérique d'entrée\n"
-#: src/escputil/escputil.c:602 src/escputil/escputil.c:677
-#: src/escputil/escputil.c:720
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
#, c-format
msgid "Cannot open %s read/write: %s\n"
-msgstr "Impossible d'ouvrir %s en lecture/écriture : %s\n"
+msgstr "Impossible d'ouvrir %s en lecture/écriture : %s\n"
-#: src/escputil/escputil.c:611 src/escputil/escputil.c:688
-#: src/escputil/escputil.c:729
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
#, c-format
msgid "Cannot write to %s: %s\n"
-msgstr "Impossible d'écrire sur %s : %s\n"
+msgstr "Impossible d'écrire sur %s : %s\n"
-#: src/escputil/escputil.c:618 src/escputil/escputil.c:695
-#: src/escputil/escputil.c:736
-#, c-format
-msgid "Cannot read from %s: %s\n"
-msgstr "Impossible de lire à partir de %s : %s\n"
-
-#: src/escputil/escputil.c:628
+#: src/escputil/escputil.c:700
msgid "Cannot parse output from printer\n"
msgstr "Impossible d'interpréter le message envoyé par l'imprimante\n"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Ink color"
msgstr "Encre couleur"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Percent remaining"
msgstr "Pourcentage restant"
-#: src/escputil/escputil.c:671
+#: src/escputil/escputil.c:737
msgid "Printer identification requires using a raw device.\n"
msgstr ""
+"L'identification de l'imprimante demande d'utiliser un périphérique "
+"d'entrée\n"
-#: src/escputil/escputil.c:714
+#: src/escputil/escputil.c:776
msgid "Printer status requires using a raw device.\n"
msgstr ""
+"Le status de l'imprimante demande d'utiliser un périphérique d'entrée\n"
-#: src/escputil/escputil.c:757
+#: src/escputil/escputil.c:815
msgid "Cleaning heads...\n"
msgstr "Nettoyage des têtes...\n"
-#: src/escputil/escputil.c:766
+#: src/escputil/escputil.c:824
msgid "Running nozzle check, please ensure paper is in the printer.\n"
msgstr ""
+"Vérification des buses, s'il vous plait assurez-vous qu'il y ait du papier "
+"dans l'imprimante\n"
-#: src/escputil/escputil.c:770
+#: src/escputil/escputil.c:828
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1919,8 +2381,54 @@ msgid ""
"It is essential that you not turn your printer off during this procedure.\n"
"\n"
msgstr ""
+"S'il vous plait lisez ces instructions avec attention avant de procéder.\n"
+"\n"
+"Cet utilitaire vous permet d'aligner les têtes d'impression de votre \n"
+"imprimante jet d'encre Eson Stylus. Une mauvaise utilisation de cet "
+"utilitaire\n"
+"peut dégrader la qualité d'impression de votre imprimante et endommager "
+"votre\n"
+"imprimante. Cet utilitaire n'a pas été contrôlé par Epson Seiko et il "
+"n'offre\n"
+"aucune garantie. L'entière responsabilité de son utilisation vous incombe. \n"
+"\n"
+"Cet utilitaire imprime %d trames de test. Chaque trame apparait très "
+"similaire.\n"
+"Les trames sont constituées d'une série de paire de lignes verticales qui "
+"se\n"
+"superposent. Sous chaque paire de lignes il y a un nombre compris entre %d "
+"et %d.\n"
+"\n"
+"Quand vous inspectez les paires de lignes, vous devriez trouver la paire "
+"de \n"
+"lignes qui est la mieux alignée, c'est à dire celle qui forme le mieux une\n"
+"simple ligne verticale. Inspectez les paires avec tout votre attention pour\n"
+"trouver la meilleure. Utilisez une loupe ou un verre grossisseur et "
+"recommandé\n"
+"pour cet inspection critique. Il est aussi suggéré que vous utilisiez un \n"
+"papier de bonne qualité pour le test, de façon à ce que les lignes soient\n"
+"bien formées et ne se diffusent pas au travers du papier. Après le choix\n"
+"du nombre correspondant à la meilleure paire, placez le papier à nouveau "
+"dans\n"
+"le chargeur avant de le taper.\n"
+"\n"
+"Chaque trame est similaire, mais les dernières trames utilisent des points \n"
+"plus fins pour un alignement plus critique. Vous devez lancer toutes les\n"
+"passes pour aligner corectement votre imprimante. Après avoir lancé toutes \n"
+"les passes, la trame d'alignement va être imprimée encore une fois. Vous\n"
+"devriez trouver que la paire la plus au milieu (#%d en dehors de %d) est\n"
+"la meilleure pour toute les trames.\n"
+"\n"
+"Après que les passes seront imprimées encore une fois, vous devrez choisir\n"
+"entre (s)auvegarder le résultat dans l'imprimante, (r)épéter l'opération,\n"
+"ou (q)uitter sans enregistrer. Quitter ne va pas restaurer les réglages\n"
+"précédents mais éteindre et rallumer l'imprimante le fera. Si vous\n"
+"quittez vous devez répéter entièrement l'opération si vous voulez sauver\n"
+"les résultats. Il est essentiel de ne pas éteindre votre imprimante \n"
+"durant cette opération.\n"
+"\n"
-#: src/escputil/escputil.c:805
+#: src/escputil/escputil.c:863
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1955,49 +2463,83 @@ msgid ""
"this procedure.\n"
"\n"
msgstr ""
+"S'il vous plait lisez ces instructions avec attention avant de procéder.\n"
+"\n"
+"Cet utilitaire vous permet d'aligner les têtes d'impression de votre \n"
+"imprimante jet d'encre Eson Stylus. Une mauvaise utilisation de cet "
+"utilitaire\n"
+"peut dégrader la qualité d'impression de votre imprimante et endommager "
+"votre\n"
+"imprimante. Cet utilitaire n'a pas été contrôlé par Epson Seiko et il "
+"n'offre\n"
+"aucune garantie. L'entière responsabilité de son utilisation vous incombe. \n"
+"\n"
+"Cet utilitaire imprime une trame de test.constituée d'une série de paire "
+"de \n"
+"lignes verticales qui se superposent. Sous chaque paire de lignes il y a \n"
+"un nombre compris entre %d et %d.\n"
+"\n"
+"Quand vous inspectez les paires de lignes, vous devriez trouver la paire "
+"de \n"
+"lignes qui est la mieux alignée, c'est à dire celle qui forme le mieux une\n"
+"simple ligne verticale. Inspectez les paires avec tout votre attention pour\n"
+"trouver la meilleure. Utilisez une loupe ou un verre grossisseur et "
+"recommandé\n"
+"pour cet inspection critique. Il est aussi suggéré que vous utilisiez un \n"
+"papier de bonne qualité pour le test, de façon à ce que les lignes soient\n"
+"bien formées et ne se diffusent pas au travers du papier. Après le choix\n"
+"du nombre correspondant à la meilleure paire, placez le papier à nouveau "
+"dans\n"
+"le chargeur avant de le taper.\n"
+"\n"
+"Après avoir lancé la trame d'alignement, elle va être imprimée encore une "
+"fois.\n"
+"Vous devriez trouver que la paire la plus au milieu (#%d en dehors de %d)\n"
+"est la meilleure pour toute les trames. Ensuite vous devrez choisir\n"
+"entre (s)auvegarder le résultat dans l'imprimante, (r)épéter l'opération,\n"
+"ou (q)uitter sans enregistrer. Quitter ne va pas restaurer les réglages\n"
+"précédents mais éteindre et rallumer l'imprimante le fera. Si vous\n"
+"quittez vous devez répéter entièrement l'opération si vous voulez sauver\n"
+"les résultats. Il est essentiel de ne pas éteindre votre imprimante \n"
+"durant cette opération.\n"
+"\n"
-#: src/escputil/escputil.c:849
+#: src/escputil/escputil.c:907
msgid "Unable to send command to the printer, exiting.\n"
msgstr "Impossible d'envoyer la commande à l'imprimante, abandon.\n"
-#: src/escputil/escputil.c:867
+#: src/escputil/escputil.c:925
msgid ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
msgstr ""
+"L'alignement de l'imprimante doit être fait avec un périphérique ou "
+"autrement\n"
+"l'option -m doit être utilisée pour spécifier une imprimante.\n"
-#: src/escputil/escputil.c:871
+#: src/escputil/escputil.c:929
msgid "Attempting to detect printer model..."
-msgstr ""
+msgstr "Tentative de détection du modèle de l'imprimante..."
-#: src/escputil/escputil.c:876
+#: src/escputil/escputil.c:934
#, c-format
msgid ""
"\n"
"Cannot open %s read/write: %s\n"
msgstr ""
"\n"
-"Impossible d'ouvrir %s en lecture/écriture : %s\n"
+"Impossible d'ouvrir %s en lecture/écriture : %s\n"
-#: src/escputil/escputil.c:884
+#: src/escputil/escputil.c:942
#, c-format
msgid ""
"\n"
"Cannot write to %s: %s\n"
msgstr ""
"\n"
-"Impossible d'écrire sur %s : %s\n"
+"Impossible d'écrire sur %s : %s\n"
-#: src/escputil/escputil.c:890
-#, c-format
-msgid ""
-"\n"
-"Cannot read from %s: %s\n"
-msgstr ""
-"\n"
-"Impossible de lire depuis %s : %s\n"
-
-#: src/escputil/escputil.c:903
+#: src/escputil/escputil.c:958
msgid ""
"\n"
"Cannot detect printer type.\n"
@@ -2007,12 +2549,12 @@ msgstr ""
"Impossible de détecter le type de l'imprimante.\n"
"Veuillez utiliser -m pour spécifier le modèle de votre imprimante.\n"
-#: src/escputil/escputil.c:920
+#: src/escputil/escputil.c:975
#, c-format
msgid "Printer model %s is not known.\n"
msgstr "Le modèle d'imprimante %s est inconnu.\n"
-#: src/escputil/escputil.c:931
+#: src/escputil/escputil.c:986
msgid ""
"Please inspect the final output very carefully to ensure that your\n"
"printer is in proper alignment. You may now:\n"
@@ -2022,37 +2564,50 @@ msgid ""
"You will then be asked to confirm your choice.\n"
"What do you want to do (s, q, r)?\n"
msgstr ""
-
-#: src/escputil/escputil.c:939 src/escputil/escputil.c:946
-#: src/escputil/escputil.c:959 src/escputil/escputil.c:975
-#: src/escputil/escputil.c:1046 src/escputil/escputil.c:1187
+"S'il vous plait inspectez la sortie finale avec attention pour vous\n"
+"assurez que votre imprimante est correctement alignée. Vous\n"
+"pouvez maintenant :\n"
+" (s)auvegarder les rsulats dans votre imprimante\n"
+" (q)uitter sans enregistrer les résultats, ou\n"
+" (r)épéter entièrement l'opération depuis le début.\n"
+"Il vous sera ensuite demandé de confirmer votre choix\n"
+"Que voulez-vous faire (s, q, r) ?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
msgid "> "
msgstr "> "
-#: src/escputil/escputil.c:944
+#: src/escputil/escputil.c:999
msgid ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
msgstr ""
-"Veuillez presser la touche « q » si vous souhaitez vraiment quitter sans "
-"enregistrer : \n"
+"Veuillez presser la touche « q » si vous souhaitez vraiment quitter sans "
+"enregistrer :\n"
-#: src/escputil/escputil.c:949
+#: src/escputil/escputil.c:1004
msgid ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
msgstr ""
+"OK, votre imprimante est alignée, mais l'alignement n'a pas été enregistré.\n"
+"Si vous souhaitez enregistrer l'alignement, vous devez répéter cette "
+"opération.\n"
-#: src/escputil/escputil.c:956
+#: src/escputil/escputil.c:1011
msgid ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
msgstr ""
+"S'il vous plait confirmez en tapant à nouveau 'r' que vous voulez\n"
+"reprendre l'opération d'alignement.\n"
-#: src/escputil/escputil.c:962
+#: src/escputil/escputil.c:1017
msgid "Repeating the alignment process.\n"
-msgstr ""
+msgstr "Répétition de l'opération d'alignement.\n"
-#: src/escputil/escputil.c:968
+#: src/escputil/escputil.c:1023
msgid ""
"This will permanently alter the configuration of your printer.\n"
"WARNING: this procedure has not been approved by Seiko Epson, and\n"
@@ -2060,23 +2615,45 @@ msgid ""
"Please confirm by typing 's' again that you wish to save the settings\n"
"to your printer:\n"
msgstr ""
+"Ceci va altérer la configuration de votre imprimante.\n"
+"ATTENTION cette opération n'a pas été approuvée par EPSON Seikp\n"
+"et elle peut endommager votre imprimante; Procéder ?\n"
+"Veuillez taper « s » de nouveau pour confirmer que vous voulez\n"
+"enregistrer les réglages de votre imprimante.\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "À propos de l'enregistrement des réglages..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "Échec !\n"
-#: src/escputil/escputil.c:978
+#: src/escputil/escputil.c:1040
msgid ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
msgstr ""
+"Vos réglages n'ont pas été sauvegardés avec succès. Vous devez répéter\n"
+"l'opération d'alignement.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "Succès !\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Vos réglages d'alignement ont été enregistrés dans l'imprimante.\n"
-#: src/escputil/escputil.c:992
+#: src/escputil/escputil.c:1050
msgid "Unrecognized command.\n"
msgstr "Commande non reconnue.\n"
-#: src/escputil/escputil.c:995
+#: src/escputil/escputil.c:1053
msgid "Final command was not confirmed.\n"
msgstr "La dernière commande n'a pas été confirmée.\n"
-#: src/escputil/escputil.c:1000
+#: src/escputil/escputil.c:1058
#, c-format
msgid ""
"This procedure assumes that your printer is an Epson %s.\n"
@@ -2086,59 +2663,73 @@ msgid ""
"Please place a sheet of paper in your printer to begin the head\n"
"alignment procedure.\n"
msgstr ""
+"Cette opération prend en compte que votre imprimante est une Epson %s.\n"
+"Si ce n'est pas votre modèle d'imprimante, s'il vous plait tapez Control-C\n"
+"et choisissez votre modèle actuel d'imprimante.\n"
+"\n"
+"S'il vous plait placez une feuillle de papier dans votre imprimante\n"
+"pour commencer l'opération d'ailgnement des têtes.\n"
-#: src/escputil/escputil.c:1025 src/escputil/escputil.c:1054
-#: src/escputil/escputil.c:1090 src/escputil/escputil.c:1166
-#: src/escputil/escputil.c:1177
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
msgid "Press enter to continue > "
msgstr "Pressez Entrée pour continuer > "
-#: src/escputil/escputil.c:1036
-#, c-format
+#: src/escputil/escputil.c:1090
msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
msgstr ""
+"S'il vous plait inspectez l'impression et choisissez la meilleure paire de "
+"lignes dans chaque trame.\n"
+"Tapez un nombre de paire, '?' pourl'aide ou 'r' pour répéter l'opération.\n"
-#: src/escputil/escputil.c:1041
+#: src/escputil/escputil.c:1096
#, c-format
-msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
-msgstr ""
+msgid "Pass #%d"
+msgstr "Passe #%d"
-#: src/escputil/escputil.c:1051
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
msgid "Please insert a fresh sheet of paper.\n"
msgstr "Veuillez insérer une feuille de papier vierge.\n"
-#: src/escputil/escputil.c:1070 src/escputil/escputil.c:1206
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
msgid "Number out of range!\n"
-msgstr ""
+msgstr "Nombre hors-intervalle !\n"
-#: src/escputil/escputil.c:1075 src/escputil/escputil.c:1211
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
msgid "I cannot understand what you typed!\n"
-msgstr "Je ne comprends pas ce que vous avez tapé !\n"
+msgstr "Je ne comprends pas ce que vous avez tapé !\n"
-#: src/escputil/escputil.c:1081
+#: src/escputil/escputil.c:1132
#, c-format
msgid "The best pair of lines should be numbered between 1 and %d.\n"
-msgstr ""
+msgstr "La meilleure paire de lignes doit être comprise entre 1 et %d.\n"
-#: src/escputil/escputil.c:1088
-#, c-format
-msgid ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
-msgstr ""
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Tentative de réglage de l'alignement..."
-#: src/escputil/escputil.c:1093
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "Succès.\n"
+
+#: src/escputil/escputil.c:1143
#, c-format
-msgid "Aligning phase %d, and starting phase %d.\n"
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
msgstr ""
+"S'il vous plait vérifiez que l'alignement est correct. après que la trame\n"
+"d'alignement soit imprimée à nouveau, assurez-vous que la meilleure\n"
+"trame pour chaque ligne est la trame %d. Si ce n'est pas le cas, vous\n"
+"devriez répéter l'opération pour obtenir la meilleure qulité d'impression.\n"
-#: src/escputil/escputil.c:1107
+#: src/escputil/escputil.c:1158
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2171,19 +2762,56 @@ msgid ""
"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
"damage your printer!\n"
msgstr ""
+"S'il vous plait lisez ces instructions avec attention avant de procéder.\n"
+"\n"
+"Cet utilitaire vous permet d'aligner les têtes d'impression couleur de "
+"votre \n"
+"imprimante jet d'encre Eson Stylus. Une mauvaise utilisation de cet "
+"utilitaire\n"
+"peut dégrader la qualité d'impression de votre imprimante et endommager "
+"votre\n"
+"imprimante. Cet utilitaire n'a pas été contrôlé par Epson Seiko et il "
+"n'offre\n"
+"aucune garantie. L'entière responsabilité de son utilisation vous incombe. \n"
+"\n"
+"Cet utilitaire imprime %d trames superposées sur une feuille de papier.\n"
+"C'est à dire, il imprime une trame et éjecte la page. Vous devez réinsérer\n"
+"la même page et il imprimera une autre trame. Chaque trame consiste en\n"
+"un jeu de choix numérotés entre %d et %d.\n"
+"\n"
+"Quand vous inspectez la trame, vous devriez trouver une parcelle qui a\n"
+"la texture la plus fine (les grains les plus fins). Vous devriez inspecter\n"
+"les parcelles très attentivement pour trouver la meilleure. Nous suggérons\n"
+"d'utiliser du papier pour jet d'encre Photo Quality ou un papier de\n"
+"qualité similaire pour ce test. Si vous ne trouvez pas une trame fine,\n"
+"vous devriez répéter l'opération.\n"
+"\n"
+"Après avoir inspecté les choix et sélectionnée une parcelle vous devrez\n"
+"choisir entre (s)auvegarder le résultat dans l'imprimante, (r)épéter "
+"l'opération,\n"
+"ou (q)uitter sans enregistrer. Quitter ne va pas restaurer les réglages\n"
+"précédents mais éteindre et rallumer l'imprimante le fera. Si vous\n"
+"quittez vous devez répéter entièrement l'opération si vous voulez sauver\n"
+"les résultats. Il est essentiel de ne pas éteindre votre imprimante \n"
+"durant cette opération.\n"
+"\n"
+"ATTENTION : CETTE FONCTION N'A PAS ENCORE ÉTÉ TESTÉE. Elle peut\n"
+"ne pas fonctionner et elle peut endommager votre imprimante !\n"
-#: src/escputil/escputil.c:1157
+#: src/escputil/escputil.c:1208
#, c-format
msgid "Printer %s does not require color head alignment.\n"
msgstr "L'imprimante %s n'a pas besoin d'un alignement des têtes couleurs.\n"
-#: src/escputil/escputil.c:1175
+#: src/escputil/escputil.c:1226
msgid ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
msgstr ""
+"Veuillez réinsérer la même feuille d'alignement dans l'imprimante\n"
+"quand l'impression sera terminée.\n"
-#: src/escputil/escputil.c:1181
+#: src/escputil/escputil.c:1232
msgid ""
"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
"This pattern will appear to have the least ``grain''.\n"
@@ -2191,15 +2819,21 @@ msgid ""
"best pattern, and repeat the procedure.\n"
"Type a pattern number, or '?' for help.\n"
msgstr ""
+"Inspectez la feuille d'alignement et déterminez quelle trame est la plus "
+"fine.\n"
+"Cette trame semble avoir le grain le plus fin.\n"
+"Si vous ne pouvez pas trouver une trame fine, sélectionnez le nombre\n"
+"correspondant à la meilleure trame et répétez l'opération.\n"
+"Saisissez un nombre de trame ou « ? » pour l'aide.\n"
-#: src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1268
#, c-format
msgid "The best pattern should be numbered between 1 and %d.\n"
-msgstr ""
+msgstr "La meilleure trame doit être comprise entre 1 et %d.\n"
-#: src/escputil/escputil.c:1261
+#: src/escputil/escputil.c:1312
msgid "Error in input\n"
-msgstr ""
+msgstr "Erreur en entrée\n"
#: src/gimp/gimp_color_window.c:193
msgid "Print Color Adjust"
@@ -2219,63 +2853,64 @@ msgstr "Aperçu de l'image"
#: src/gimp/gimp_color_window.c:240
msgid "Brightness:"
-msgstr "Luminosité:"
+msgstr "Luminosité :"
#: src/gimp/gimp_color_window.c:248
msgid ""
"Set the brightness of the print.\n"
"0 is solid black, 2 is solid white"
msgstr ""
+"Règle la luminosité de l'impression.\n"
+"0 est noir plein, 2 est blanc plein"
#: src/gimp/gimp_color_window.c:260
msgid "Contrast:"
-msgstr "Contraste :"
+msgstr "Contraste :"
#: src/gimp/gimp_color_window.c:268
-#, fuzzy
msgid "Set the contrast of the print"
-msgstr "Changer l'exposant de la longueur"
+msgstr "Défini le contraste de l'impression"
#: src/gimp/gimp_color_window.c:279
msgid "Cyan:"
-msgstr "Cyan :"
+msgstr "Cyan :"
#: src/gimp/gimp_color_window.c:287
-#, fuzzy
msgid "Adjust the cyan balance of the print"
-msgstr "Réglage de l'opacité des pointes"
+msgstr "Ajuste le niveau de cyan de l'impression"
#: src/gimp/gimp_color_window.c:298
msgid "Magenta:"
-msgstr "Magenta :"
+msgstr "Magenta :"
#: src/gimp/gimp_color_window.c:306
-#, fuzzy
msgid "Adjust the magenta balance of the print"
-msgstr "Réglage de l'opacité des pointes"
+msgstr "Ajuste le niveau de majenta de l'impression"
#: src/gimp/gimp_color_window.c:317
msgid "Yellow:"
-msgstr "Jaune :"
+msgstr "Jaune :"
#: src/gimp/gimp_color_window.c:325
-#, fuzzy
msgid "Adjust the yellow balance of the print"
-msgstr "Réglage de l'opacité des pointes"
+msgstr "Ajuste le niveau de jaune de l'impression"
#: src/gimp/gimp_color_window.c:336
msgid "Saturation:"
-msgstr "Saturation :"
+msgstr "Saturation :"
#: src/gimp/gimp_color_window.c:344
msgid ""
"Adjust the saturation (color balance) of the print\n"
"Use zero saturation to produce grayscale output using color and black inks"
msgstr ""
+"Ajustement de la saturation (balance des couleurs) de l'impression\n"
+"Utilisez la saturation zéro pour produire une sortie en tons de gris avec "
+"les encres noir et couleurs."
#: src/gimp/gimp_color_window.c:357
msgid "Density:"
-msgstr "Densité :"
+msgstr "Densité :"
#: src/gimp/gimp_color_window.c:365
msgid ""
@@ -2283,10 +2918,13 @@ msgid ""
"ink bleeds through the paper or smears; increase the density if black "
"regions are not solid."
msgstr ""
+"Ajustement de la densité (quantité d'encre) de l'impression. Réduisez la "
+"densité si l'encre bave sur le papier ou fait des taches; augmentez la "
+"densité si les régions noires ne sont pas pleines."
#: src/gimp/gimp_color_window.c:379
msgid "Gamma:"
-msgstr "Gamma :"
+msgstr "Gamma :"
#: src/gimp/gimp_color_window.c:387
msgid ""
@@ -2294,10 +2932,14 @@ msgid ""
"brighter print, while smaller values will produce a generally darker print. "
"Black and white will remain the same, unlike with the brightness adjustment."
msgstr ""
+"Ajustement de la Gamma de l'impression. De grandes valeurs vont généralement "
+"produire une impression plus brillante,tandis que des petites valeurs vont "
+"généralement produire une impression plus sombre. Noir et Blanc vont rester "
+"identiques en fonction de l'ajustement du brillant."
#: src/gimp/gimp_color_window.c:403
msgid "Dither Algorithm:"
-msgstr "Algorithme de tramage :"
+msgstr "Algorithme de tramage :"
#: src/gimp/gimp_color_window.c:411
msgid ""
@@ -2308,6 +2950,13 @@ msgid ""
"art.\n"
"Hybrid Floyd-Steinberg generally produces inferior output."
msgstr ""
+"Choisissez l'algorithme de tramage à utiliser.\n"
+"Adaptative Hybride produit habituellement la meilleure qualité de tous.\n"
+"Ordonné est plus rapide et produit une qualité presque aussi bonne que les "
+"photographes.\n"
+"Rapide et Très Rapide sont considérablement rapudes et fonctionne bien pour "
+"du text ou des tracés.\n"
+"Floyd-Steinberg Hybride produit généralement des sorties inférieures."
#.
#. * Create the main dialog
@@ -2363,6 +3012,17 @@ msgid ""
"If you click another button while dragging the mouse, the image will return "
"to its original position."
msgstr ""
+"Positionnement de l'image sur la page.\n"
+"Cliquez et Glissez avec le premier bouton pour positionner l'image sur la "
+"page.\n"
+"Cliquez et Glissez avec le second bouton pour déplacer l'image avec "
+"précision, chaque unité de mouvement déplace l'image d'un point (1/72\")\n"
+"Cliquez et Glissez avec le troisième (milieu) bouton pour déplacer l'image "
+"en unités de taille d'image.\n"
+"Maintenir la touche Maj enfoncée en Cliquant et Glissant contraint l'image à "
+"se déplacer horizontalement ou verticalement.\n"
+"Si vous cliquez un autre bouton tandis que vous bougez la souris, l'image "
+"retournera à sa position originale."
#: src/gimp/gimp_main_window.c:434
msgid "Position"
@@ -2386,30 +3046,31 @@ msgstr "Retourner"
#: src/gimp/gimp_main_window.c:460
msgid "Seascape"
-msgstr ""
+msgstr "Panoramique"
#: src/gimp/gimp_main_window.c:464
msgid ""
"Select the orientation: portrait, landscape, upside down, or seascape "
"(upside down landscape)"
msgstr ""
+"Sélectionnez l'orientation : portrait, paysage, tête-bèche, ou tête-bèche "
+"paysage"
#: src/gimp/gimp_main_window.c:469
msgid "Orientation:"
-msgstr "Orientation :"
+msgstr "Orientation :"
#: src/gimp/gimp_main_window.c:483
msgid "Left:"
-msgstr "Gauche :"
+msgstr "Gauche :"
#: src/gimp/gimp_main_window.c:487
-#, fuzzy
msgid "Distance from the left of the paper to the image"
msgstr "Distance entre le bord gauche du papier et l'image"
#: src/gimp/gimp_main_window.c:496
msgid "Top:"
-msgstr "Dessus :"
+msgstr "Dessus :"
#: src/gimp/gimp_main_window.c:500
msgid "Distance from the top of the paper to the image"
@@ -2417,7 +3078,7 @@ msgstr "Distance entre le bord supérieur du papier et l'image"
#: src/gimp/gimp_main_window.c:509
msgid "Right:"
-msgstr "Droite :"
+msgstr "Droite :"
#: src/gimp/gimp_main_window.c:513
msgid "Distance from the left of the paper to the right of the image"
@@ -2425,7 +3086,7 @@ msgstr "Distance entre le bord gauche du papier et le bord droit de l'image"
#: src/gimp/gimp_main_window.c:523
msgid "Right Border:"
-msgstr "Bordure droite :"
+msgstr "Bordure droite :"
#: src/gimp/gimp_main_window.c:527
msgid "Distance from the right of the paper to the image"
@@ -2433,7 +3094,7 @@ msgstr "Distance entre le bord droit du papier et l'image"
#: src/gimp/gimp_main_window.c:537
msgid "Bottom:"
-msgstr "Bas :"
+msgstr "Bas :"
#: src/gimp/gimp_main_window.c:541
msgid "Distance from the top of the paper to the bottom of the image"
@@ -2442,7 +3103,7 @@ msgstr ""
#: src/gimp/gimp_main_window.c:551
msgid "Bottom Border:"
-msgstr "Bordure basse :"
+msgstr "Bordure basse :"
#: src/gimp/gimp_main_window.c:555
msgid "Distance from the bottom of the paper to the image"
@@ -2450,7 +3111,7 @@ msgstr "Distance entre le bord inférieur du papier et l'image"
#: src/gimp/gimp_main_window.c:572
msgid "Center:"
-msgstr "Centrer :"
+msgstr "Centrer :"
#: src/gimp/gimp_main_window.c:576
msgid "Vertically"
@@ -2490,7 +3151,7 @@ msgstr "Valider"
#.
#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
msgid "Printer Model:"
-msgstr "Modèle d'imprimante :"
+msgstr "Modèle d'imprimante :"
#: src/gimp/gimp_main_window.c:660
msgid "Select your printer model"
@@ -2501,7 +3162,7 @@ msgstr "Sélectionnez le modèle de votre imprimante"
#.
#: src/gimp/gimp_main_window.c:698
msgid "PPD File:"
-msgstr "Fichier PPD :"
+msgstr "Fichier PPD :"
#: src/gimp/gimp_main_window.c:714
msgid "Enter the correct PPD filename for your printer"
@@ -2520,7 +3181,7 @@ msgstr "Choisissez le fichier PPD correct pour votre imprimante"
#.
#: src/gimp/gimp_main_window.c:733
msgid "Command:"
-msgstr "Commande :"
+msgstr "Commande :"
#: src/gimp/gimp_main_window.c:746
msgid ""
@@ -2528,20 +3189,23 @@ msgid ""
"remove the `-l' or `-oraw' from the command string, or printing will "
"probably fail!"
msgstr ""
+"Entrez la commande correcte à votre imprimante pour imprimer. S'il vous "
+"plait n'enlevez pas le '-l' ou '-oraw' de la ligne de commande ou "
+"l'impression va probablement échouer !"
#.
#. * Output file selection dialog.
#.
#: src/gimp/gimp_main_window.c:755
msgid "Print To File?"
-msgstr "Imprimer dans un fichier ?"
+msgstr "Imprimer dans un fichier ?"
#.
#. * PPD file selection dialog.
#.
#: src/gimp/gimp_main_window.c:770
msgid "PPD File?"
-msgstr "Fichier PPD ?"
+msgstr "Fichier PPD ?"
#: src/gimp/gimp_main_window.c:789
msgid "Define New Printer"
@@ -2549,11 +3213,11 @@ msgstr "Définir une nouvelle imprimante"
#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
msgid "Printer Name:"
-msgstr "Nom de l'imprimante"
+msgstr "Nom de l'imprimante :"
#: src/gimp/gimp_main_window.c:814
msgid "Enter the name you wish to give this logical printer"
-msgstr "Entrez le nom que vous voulez donner à cette imprimante logique"
+msgstr "Saisissez le nom que vous voulez donner à cette imprimante logique"
#: src/gimp/gimp_main_window.c:826
msgid "About Gimp-Print "
@@ -2586,6 +3250,30 @@ msgid ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"et le reste de l'équipe de développement de Gimp-Print.\n"
+"\n"
+"Vistitez notre site web à http://gimp-print.sourceforge.net.\n"
+"\n"
+"Ce programme est un logiciel libre, vous pouvez le redistribuer et/ou le "
+"modifier\n"
+"sous les termes de la licence GNU GPL General Public License telle que "
+"publiée\n"
+"par la Free Software Foundation, soit la version 2 de la licence, ou (à "
+"votre choix)\n"
+"toute version ultérieure.\n"
+"\n"
+"Ce programme est distribuée dans l'espoir qu'il sera utile, mais SANS\n"
+"GARANTIE; sans même la garantie impliquée par la COMMERCIALISATION \n"
+"ou l'ACCORD POUR UN USAGE PARTICULIER. Voyez la licence GNU General Public "
+"License\n"
+"pour plus de détails.\n"
+"\n"
+"Vous devriez avoir reçu une copie de la GNU General Public License fournie\n"
+"avec le programme; si ce n'est pas le cas, écrivez à la Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
#: src/gimp/gimp_main_window.c:884
msgid "Printer Settings"
@@ -2611,7 +3299,7 @@ msgid ""
"Choose the printer model, PPD file, and command that is used to print to "
"this printer"
msgstr ""
-"Indiquez le modèle d'imprimante, le fichier PPD et la commande nécessaires "
+"Indiquez le modèle d'imprimante, le fichier PPD et la commande nécessaire "
"pour l'impression sur cette imprimante"
#.
@@ -2635,15 +3323,15 @@ msgstr "Taille du papier sur lequel vous souhaitez imprimer"
#: src/gimp/gimp_main_window.c:960
msgid "Media Size:"
-msgstr "Taille du support (papier) :"
+msgstr "Taille du support (papier) :"
#: src/gimp/gimp_main_window.c:969
msgid "Dimensions:"
-msgstr "Dimensions :"
+msgstr "Dimensions :"
#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
msgid "Width:"
-msgstr "Largeur :"
+msgstr "Largeur :"
#: src/gimp/gimp_main_window.c:983
msgid "Width of the paper that you wish to print to"
@@ -2651,7 +3339,7 @@ msgstr "Largeur du papier sur lequel vous souhaitez imprimer"
#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
msgid "Height:"
-msgstr "Hauteur :"
+msgstr "Hauteur :"
#: src/gimp/gimp_main_window.c:1000
msgid "Height of the paper that you wish to print to"
@@ -2663,15 +3351,15 @@ msgstr "Type de support sur lequel vous imprimez"
#: src/gimp/gimp_main_window.c:1019
msgid "Media Type:"
-msgstr "Type de support :"
+msgstr "Type de support :"
#: src/gimp/gimp_main_window.c:1032
msgid "Source (input slot) of media you're printing to"
-msgstr ""
+msgstr "Source (bac) du support vers lequel vous imprimez"
#: src/gimp/gimp_main_window.c:1035
msgid "Media Source:"
-msgstr "Source du support :"
+msgstr "Source du support :"
#: src/gimp/gimp_main_window.c:1048
msgid "Type of ink in the printer"
@@ -2679,7 +3367,7 @@ msgstr "Type d'encre dans l'imprimante"
#: src/gimp/gimp_main_window.c:1051
msgid "Ink Type:"
-msgstr "Type d'encre :"
+msgstr "Type d'encre :"
#: src/gimp/gimp_main_window.c:1064
msgid "Resolution and quality of the print"
@@ -2687,7 +3375,7 @@ msgstr "Résolution et qualité de l'impression"
#: src/gimp/gimp_main_window.c:1067
msgid "Resolution:"
-msgstr "Résolution :"
+msgstr "Résolution :"
#: src/gimp/gimp_main_window.c:1083
msgid "Size"
@@ -2695,7 +3383,7 @@ msgstr "Taille"
#: src/gimp/gimp_main_window.c:1103
msgid "Scaling:"
-msgstr "Échelle :"
+msgstr "Échelle :"
#: src/gimp/gimp_main_window.c:1109
msgid "Set the scale (size) of the image"
@@ -2706,15 +3394,16 @@ msgid ""
"Select whether scaling is measured as percent of available page size or "
"number of output dots per inch"
msgstr ""
+"Sélectionnez si l'échelle est mesurée en pourcentage de la taille de la page "
+"ou en nombre de points par pouces"
#: src/gimp/gimp_main_window.c:1147
msgid "Percent"
-msgstr "Pourcent"
+msgstr "Pourcentage"
#: src/gimp/gimp_main_window.c:1154
-#, fuzzy
msgid "Scale the print to the size of the page"
-msgstr "La teinte de la région détermine la longueur de la trace de pinceau"
+msgstr "Dimensionne l'impression par rapport à la taille de la page"
#: src/gimp/gimp_main_window.c:1160
msgid "PPI"
@@ -2722,23 +3411,23 @@ msgstr "points par pouce"
#: src/gimp/gimp_main_window.c:1166
msgid "Scale the print to the number of dots per inch"
-msgstr ""
+msgstr "Dimensionne l'impression en nombre de points par pouce"
#: src/gimp/gimp_main_window.c:1192
msgid "Set the width of the print"
-msgstr "Régler la largeur de l'impression"
+msgstr "Défini la largeur de l'impression"
#: src/gimp/gimp_main_window.c:1205
msgid "Set the height of the print"
-msgstr "Régler la hauteur de l'impression"
+msgstr "Défini la hauteur de l'impression"
#: src/gimp/gimp_main_window.c:1225
msgid "Units:"
-msgstr "Unités :"
+msgstr "Unités :"
#: src/gimp/gimp_main_window.c:1230
msgid "Select the base unit of measurement for printing"
-msgstr ""
+msgstr "Sélectionne l'unité de base de mesure pour l'impression"
#: src/gimp/gimp_main_window.c:1233
msgid "Inch"
@@ -2746,7 +3435,7 @@ msgstr "Pouce"
#: src/gimp/gimp_main_window.c:1240
msgid "Set the base unit of measurement to inches"
-msgstr ""
+msgstr "Défini l'unité de base de mesure en pouce"
#: src/gimp/gimp_main_window.c:1246
msgid "cm"
@@ -2754,7 +3443,7 @@ msgstr "cm"
#: src/gimp/gimp_main_window.c:1252
msgid "Set the base unit of measurement to centimetres"
-msgstr ""
+msgstr "Défini l'unité de base de mesure en centimètres"
#.
#. * The "image size" button
@@ -2777,29 +3466,31 @@ msgstr "Image / Paramètres de sortie"
#: src/gimp/gimp_main_window.c:1305
msgid "Image Type:"
-msgstr "Type d'image :"
+msgstr "Type d'image :"
#: src/gimp/gimp_main_window.c:1310
msgid "Optimize the output for the type of image being printed"
-msgstr ""
+msgstr "Optimise la sortie pour le type d'image imprimée"
#: src/gimp/gimp_main_window.c:1321
msgid "Fastest and brightest color for text and line art"
-msgstr ""
+msgstr "Couleur plus rapide et brillante pour le texte et les tracés"
#: src/gimp/gimp_main_window.c:1335
msgid "Best for images dominated by regions of solid color"
-msgstr ""
+msgstr "Meilleur pour les images dominées par des régions de couleurs pleines"
#: src/gimp/gimp_main_window.c:1351
msgid ""
"Slowest, but most accurate and smoothest color for continuous tone images "
"and photographs"
msgstr ""
+"Plus lent, mais plus précis et des couleurs plus fines pour les images à "
+"tons continus et les photographies"
#: src/gimp/gimp_main_window.c:1377
msgid "Output Type:"
-msgstr "Type de sortie :"
+msgstr "Type de sortie :"
#: src/gimp/gimp_main_window.c:1382
msgid "Select the desired output type"
@@ -2815,7 +3506,7 @@ msgstr "Sortie couleur"
#: src/gimp/gimp_main_window.c:1396
msgid "Grayscale"
-msgstr "Échelle de gris"
+msgstr "Niveaux de gris"
#: src/gimp/gimp_main_window.c:1403
msgid "Print in shades of gray using black ink"
@@ -2834,12 +3525,14 @@ msgstr "Imprimer en noir et blanc (pas de couleurs ni de niveaux de gris)"
#.
#: src/gimp/gimp_main_window.c:1428
msgid "Adjust Output..."
-msgstr ""
+msgstr "Ajuster la sortie..."
#: src/gimp/gimp_main_window.c:1435
msgid ""
"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
msgstr ""
+"Ajustement de la balance des couleurs, luminosité, contraste, saturation et "
+"algorithme de tramage"
#: src/gimp/print-image-gimp.c:318
msgid "Printing..."
@@ -2847,9 +3540,126 @@ msgstr "Impression en cours..."
#: src/gimp/print.c:166
msgid "<Image>/File/Print..."
-msgstr "<Image>/Ficher/Imprimer..."
+msgstr "<Image>/Fichier/Imprimer..."
-#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:833
-#: src/gimp/print.c:1184
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
msgid "File"
msgstr "Fichier"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Mauvais intervalle des couleurs : bps %d canaux %d intervalle %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Pas de buffer de ligne\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Le paramètre %s est hors-intervalle (valeur %f, mini %f, maxi %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Impossible d'interpréter le paramètre %s=%s (un nombre est attendu)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Le paramètre %s est hors-intervalle (valeur %d, mini %d, maxi %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "L'imprimante doit être spécifiée avec le -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "L'imprimante %s n'est pas un modèle connu\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Option inconnue %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f de %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header échec %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init échec %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Incapable d'ouvrir le descripteur de fichier : %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Incapable d'ouvrir %s : %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Imprimante inconnue %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Mauvais paramètres, ne peut pâs continuer !\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Obtenir la ligne suivante à échoué à %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Impossible de lire depuis %s : %s\n"
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 x 360 ppp"
+
+#~ msgid "1440 x 360 DPI Unidirectional"
+#~ msgstr "1440 x 360 ppp unidirectionnel"
+
+#~ msgid "1440 x 360 DPI High Quality"
+#~ msgstr "1440 x 360 ppp Haute qualité"
+
+#~ msgid "1440 x 360 DPI High Quality Uni"
+#~ msgstr "1440 x 360 ppp Haute qualité unidirectionnel"
+
+#~ msgid "1440 x 360 DPI Highest Quality"
+#~ msgstr "1440 x 360 ppp Trés haute qualité"
+
+#~ msgid "13x19"
+#~ msgstr "13x19"
+
+#~ msgid "Monarch"
+#~ msgstr "Monarch"
+
+#~ msgid "Long 3"
+#~ msgstr "Long 3"
+
+#~ msgid "Long 4"
+#~ msgstr "Long 4"
+
+#~ msgid "Kaku"
+#~ msgstr "Kaku"
+
+#~ msgid "HP Greeting Card"
+#~ msgstr "Carte de remerciement HP"
diff --git a/po/gimp-print.pot b/po/gimp-print.pot
new file mode 100644
index 0000000..bf54ca1
--- /dev/null
+++ b/po/gimp-print.pot
@@ -0,0 +1,3198 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr ""
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr ""
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr ""
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr ""
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr ""
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr ""
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr ""
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr ""
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr ""
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr ""
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr ""
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr ""
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr ""
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr ""
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr ""
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr ""
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr ""
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr ""
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr ""
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr ""
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr ""
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr ""
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr ""
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr ""
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr ""
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr ""
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr ""
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr ""
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr ""
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr ""
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr ""
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr ""
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr ""
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr ""
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr ""
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr ""
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr ""
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr ""
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr ""
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr ""
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr ""
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr ""
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr ""
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr ""
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr ""
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr ""
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr ""
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr ""
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr ""
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr ""
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr ""
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr ""
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr ""
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr ""
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr ""
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr ""
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr ""
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr ""
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr ""
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr ""
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr ""
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr ""
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr ""
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr ""
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr ""
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr ""
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr ""
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr ""
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr ""
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr ""
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr ""
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr ""
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr ""
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr ""
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr ""
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr ""
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr ""
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr ""
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr ""
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr ""
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr ""
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr ""
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr ""
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr ""
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr ""
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr ""
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr ""
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr ""
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr ""
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr ""
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr ""
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr ""
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr ""
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr ""
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr ""
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr ""
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr ""
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr ""
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr ""
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr ""
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr ""
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr ""
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr ""
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr ""
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr ""
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr ""
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr ""
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+msgid "Super B0 JIS"
+msgstr ""
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr ""
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr ""
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr ""
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr ""
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr ""
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr ""
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr ""
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr ""
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr ""
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr ""
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr ""
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr ""
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr ""
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr ""
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr ""
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr ""
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr ""
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr ""
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr ""
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr ""
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr ""
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr ""
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr ""
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr ""
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr ""
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr ""
+
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr ""
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr ""
+
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr ""
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr ""
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr ""
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr ""
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr ""
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr ""
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr ""
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr ""
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr ""
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr ""
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr ""
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr ""
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr ""
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr ""
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr ""
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr ""
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr ""
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr ""
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr ""
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr ""
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr ""
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr ""
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr ""
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr ""
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr ""
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr ""
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr ""
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr ""
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr ""
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr ""
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr ""
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr ""
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr ""
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr ""
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr ""
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr ""
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr ""
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr ""
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr ""
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr ""
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr ""
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr ""
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr ""
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr ""
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr ""
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr ""
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr ""
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr ""
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr ""
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr ""
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr ""
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr ""
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr ""
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr ""
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr ""
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr ""
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr ""
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr ""
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr ""
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr ""
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr ""
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr ""
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr ""
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr ""
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr ""
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr ""
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr ""
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr ""
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr ""
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr ""
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr ""
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr ""
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr ""
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr ""
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr ""
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr ""
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr ""
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr ""
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr ""
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr ""
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr ""
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr ""
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr ""
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr ""
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr ""
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr ""
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr ""
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr ""
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr ""
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr ""
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr ""
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr ""
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr ""
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr ""
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr ""
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr ""
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr ""
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr ""
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr ""
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr ""
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr ""
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr ""
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr ""
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr ""
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr ""
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr ""
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr ""
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr ""
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr ""
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr ""
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr ""
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr ""
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr ""
+
+#: src/escputil/escputil.c:269
+msgid "Stylus Photo 935"
+msgstr ""
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr ""
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr ""
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr ""
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr ""
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr ""
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr ""
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr ""
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr ""
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr ""
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr ""
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr ""
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr ""
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr ""
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr ""
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr ""
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr ""
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr ""
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr ""
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr ""
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr ""
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr ""
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr ""
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr ""
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr ""
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr ""
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr ""
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr ""
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr ""
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr ""
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr ""
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr ""
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr ""
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr ""
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr ""
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr ""
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr ""
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr ""
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr ""
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr ""
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr ""
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr ""
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr ""
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr ""
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr ""
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr ""
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr ""
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr ""
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr ""
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr ""
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr ""
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr ""
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr ""
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr ""
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr ""
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
new file mode 100644
index 0000000..1e0989d
--- /dev/null
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..598b7e4
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,3209 @@
+# Hungarian translation of gimp-print.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Laszlo Dvornik <dvornikl@mailbox.hu>, 2004.
+# Andras Timar <timar@fsf.hu>, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 4.2.7-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2004-04-06 13:20+0200\n"
+"Last-Translator: Andras Timar <timar@fsf.hu>\n"
+"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a(z) `%s' kapcsoló kétértelmű\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a(z) `--%s' kapcsoló nem enged meg paramétert\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a(z) `%c%s' kapcsoló nem enged meg paramétert\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a(z) `%s' kapcsolónak szüksége van egy paraméterre\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: a(z) `--%s' ismeretlen kapcsoló\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: a(z) `%c%s' ismeretlen kapcsoló\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Egyszerű lap"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Ãtlátszóságok"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr ""
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr ""
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Boríték"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Magas felbontású papír"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr ""
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr ""
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Fényes fotópapír"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr ""
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Fotópapír pro"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Egyéb"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Automatikus lapadagoló"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Kézzel szünetekkel"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Kézzel szünetek nélkül"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Fekete"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY szín"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK szín"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Fotó CcMmY szín"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Fotó CcMmYK szín"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Adaptív hibrid"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Rendezett"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Gyors"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Nagyon gyors"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Floyd-Steinberg hibrid"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr ""
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr ""
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Levelezőlap"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Fényes film"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Borítékok"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Matt papír"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Inkjet papír"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Fotó minőségű Inkjet papír"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Fotópapír"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Kiváló minőségű fényes fotópapír"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Fotó minőségű fényes papír"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife papír"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 x 90 DPI Gyors, gazdaságos piszkozat"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 x 120 DPI Gazdaságos piszkozat"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI Gazdaságos piszkozat"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 x 240 DPI Piszkozat"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 x 180 DPI Piszkozat"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI Jó minőségű"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Legjobb minőségű"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI Legjobb minőségű"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI Legjobb minőségű"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI Teljes átfedés"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI Teljes átfedés"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Szabványos"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "Kézi kijelölés"
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI x 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI jó minőségű"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI jó minőségű"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI legjobb minőségű"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI x 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI x 1200 DPI jó minőségű"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI x 1200 DPI legjobb minőségű"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "próbanyomtatás"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Egyszerű"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr ""
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Kiváló minőségű"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Fényes fotó"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Ãtlátszóság"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr ""
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Kézi"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "1. tálca"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "2. tálca"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "3. tálca"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "4. tálca"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Hordozható lapadagoló"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "Asztali lapadagoló"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Tálca"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Opcionális forrás"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr ""
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 DPI fekete-fehér"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Színes + fekete patron"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Színes + fotó patron"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Epson 4x6-os fotópapír"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr ""
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr ""
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr ""
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr ""
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr ""
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "Amerikai foolscap"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "Európai foolscap"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr ""
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr ""
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr ""
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr ""
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr ""
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr ""
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr ""
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr ""
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr ""
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr ""
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr ""
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki kártya"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku kártya"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Japán hosszú boríték #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Japán hosszú boríték #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Japán Kaku boríték #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr ""
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr ""
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr ""
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Egyéni"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "A nyomtató nem támogatja a színes kimenetet\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Érvénytelen képméret\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "A felső szegély nullánál nem lehet kevesebb\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "A bal szegély nullánál nem lehet kevesebb\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr ""
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Hungarian"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin2"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Papír típusa"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Papír forrása"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Felbontás"
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-print"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Képtípus"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Vonalrajz"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Homogén színek"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Fénykép"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Szórási algoritmus"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Tinta típusa"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Escputil verzió "
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr "Stylus C43sx"
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr "Stylus C43ux"
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr "Stylus C44sx"
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr "Stylus C44ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr "Stylus C63"
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr "Stylus C64"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr "Stylus C83"
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr "Stylus C84"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr ""
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr ""
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr ""
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr ""
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr ""
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr ""
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr ""
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr ""
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr ""
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr ""
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr ""
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr ""
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr ""
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr ""
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr ""
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr ""
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr ""
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr ""
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr ""
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr ""
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr ""
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr ""
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr ""
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr ""
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr ""
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr ""
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr ""
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr ""
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr ""
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr ""
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr ""
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr ""
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr ""
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr ""
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr ""
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr ""
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr ""
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr ""
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr ""
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr ""
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr ""
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr ""
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr ""
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr ""
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr ""
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr ""
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr ""
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr ""
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr ""
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr ""
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr ""
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr ""
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr ""
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr ""
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr ""
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr ""
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr ""
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr ""
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr ""
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr ""
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr ""
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr ""
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr ""
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr ""
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr ""
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr ""
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr ""
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr ""
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr ""
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr ""
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr ""
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr ""
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr ""
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr ""
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Csak egy nyomtatótípust adhat meg."
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Ismeretlen kapcsoló: %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Nem lehet megnyitni a(z) %s eszközt: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Nem lehet nyomtatni a(z) %s nyomtatóra ezzel: %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Nem lehet elküldeni a parancsot a nyomtatóra\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Ciánkék"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Bíborvörös"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Sárga"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Világos ciánkék"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Világos bíborvörös"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr ""
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Tinta színe"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Hátralevő százalék"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Fejek tisztítása...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Nem lehet elküldeni a parancsot a nyomtatóra, kilépés.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Próbálkozás a nyomtató típusának felismerésére..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Nem lehet felismerni a nyomtató típusát.\n"
+"Használja az -m kapcsolót a nyomtató típusának megadásához.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "A(z) %s nyomtatótípus ismertlen.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr ""
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Üssön enter-t a folytatáshoz > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr ""
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr ""
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Hiba a bemenetben\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Beállítás alapértelmezésnek"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Bezárás"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Előnézeti kép"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Fényesség:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Kontraszt:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Ciánkék:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Bíborvörös:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Sárga:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Telítettség:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Sűrűség:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Szórási algoritmus:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Névjegy"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Nyomtatás és a\n"
+"beállítások mentése"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Beállítások\n"
+"mentése"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Nyomtatás"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Mégsem"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Előnézet"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Pozíció"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Automatikus"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Ãlló"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Fekvő"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Fejjel lefelé"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Ellenkező fekvő"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Elhelyezkedés:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Baloldalt:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Fent:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Jobboldalt:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Jobb szegély:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Alul:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Alsó szegély:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Középre:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Függőlegesen"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Mindkettő"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Vízszintesen"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Nyomtató beállítása"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Nyomtató típusa:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Válassza ki a nyomtató típusát"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD fájl:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Tallózás"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr ""
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Parancs:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "Nyomtatás fájlba?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD fájl?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Új nyomtató meghatározása"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Nyomtató neve:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Gimp-Print névjegye "
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Gimp-Print verzió: "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Nyomtató beállításai"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Nyomtató beállítása..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Új nyomtató..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Papír mérete:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Méretek:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Szélesség:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Magasság:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Papír típusa:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Papír forrása:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "A nyomtatóban levő tinta típusa"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Tinta típusa:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "A nyomtatás felbontása és minősége"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Felbontás:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Méret"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Skálázás:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Százalék"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Mértékegységek:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Hüvelyk"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr ""
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Eredeti képméret\n"
+"használata"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Kép / kimenet beállításai"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Képtípus:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Kimenet típusa:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Válassza ki a kívánt kimeneti típust"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Szín"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Színes kimenet"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Szürkeárnyalatos"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Fekete-fehér"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Fekete-fehér nyomtatás (nincs se szín, se a szürke árnyalatai)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Kimenet beállítása..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Nyomtatás..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Fájl/Nyomtatás..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Fájl"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Nincs sorpuffer\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Ismeretlen kapcsoló: %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f / %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Nem lehet megnyitni a(z) %s-t: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Ismeretlen nyomtató: %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Hibás paraméterek, nem lehet folytatni!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr ""
diff --git a/po/ja.gmo b/po/ja.gmo
new file mode 100644
index 0000000..648ba1b
--- /dev/null
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..a11c694
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,3549 @@
+# gimp-print ja.po.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Takeshi AIHANA <aihana@gnome.gr.jp>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print Version 4.2.3\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2002-10-07 19:10+0900\n"
+"Last-Translator: Takeshi AIHANA <aihana@gnome.gr.jp>\n"
+"Language-Team: Japanese <translation@gnome.gr.jp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-jp\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó '%s' ñÂΤǤϻÈÍѤǤ­¤Þ¤»¤ó\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó '--%s' ¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó '%c%s' ¤Ë¤Ï°ú¿ô¤ÏÉÔÍפǤ¹\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó '%s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó '--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó '`%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ¤ª¤«¤·¤Ê¥ª¥×¥·¥ç¥ó -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó '-W %s' ñÂΤǤϻÈÍѤǤ­¤Þ¤»¤ó\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó '-W %s' ¤Ë¤Ï°ú¿ô¤¬ÉÔÍפǤ¹\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Ä̾ï¤ÎÍÑ»æ"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "¥¹¥é¥¤¥ÉÍÑ»æ"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr "ÇØ·Ê°õºþÍÑ¥Õ¥£¥ë¥à"
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Á¡°Ý¼Á¤ÎÍÑ»æ"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "ÉõÅû"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "¹â²òÁüÅÙ¤ÎÍÑ»æ"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "T-¥·¥ã¥Ä¤ÎÌÏÍÍ"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "¹â±ð¥Õ¥£¥ë¥à"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "¸÷ÂôÉÕ¤­¥Õ¥©¥ÈÍÑ»æ"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "¸÷ÂôÉÕ¤­¥Õ¥©¥È¡¦¥«¡¼¥É"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "¥Õ¥©¥ÈÍÑ»æ Pro"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "¤½¤Î¾"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "¼«Æ°µë»æ"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "¥Ý¡¼¥ºÉÕ¤­¼êÆ°µë»æ"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "¥Ý¡¼¥º¤Ê¤·¼êÆ°µë»æ"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "¹õ¿§"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY ¿§"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK ¿§"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "¥Õ¥©¥È CcMmY ¿§"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "¥Õ¥©¥È CcMmYK ¿§"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "¥¢¥À¥×¥Æ¥£¥Ö¡¦¥Ï¥¤¥Ö¥ê¥Ã¥ÉÊý¼°"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Ŭ±þ½ç½øÊý¼°"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "¹â®Êý¼°"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Ķ¹â®Êý¼°"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "¥Ï¥¤¥Ö¥ê¥Ã¥É¡¦¥Õ¥í¥¤¥É-¥¹¥¿¥¤¥ó¥Ð¡¼¥°Êý¼°"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "¥¤¥Ù¥ó¥È¥È¡¼¥óÊý¼°"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Three Color Composite"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Four Color Standard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Six Color Photo"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Five Color Photo Composite"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Seven Color Enhanced"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Six Color Enhanced Composite"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Seven Color Photo"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Two Level Grayscale"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quadtone"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "Ä̾ïÍÑ»æ¤Î¹â®Æɹþ¤ß"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "¤Ï¤¬¤­"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "¸÷ÂôÉÕ¤­¥Õ¥¤¥ë¥à"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "ÉõÅû"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr "¥Ð¥Ã¥¯¥é¥¤¥È¡¦¥Õ¥£¥ë¥à"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "¥Þ¥Ã¥ÈÍÑ»æ"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "¥¤¥ó¥¯¥¸¥§¥Ã¥ÈÍÑ»æ"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "¥¤¥ó¥¯¥¸¥§¥Ã¥ÈÍÑ»æ (¥Õ¥©¥ÈÍѹâÉʼÁ)"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "¥Õ¥©¥ÈÍÑ»æ"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "¹âµé¸÷ÂôÉÕ¤­¥Õ¥©¥ÈÍÑ»æ"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "¹âµé¤Ä¤ä½Ð¤·¥Õ¥©¥ÈÍÑ»æ"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "¸÷ÂôÉÕ¤­ÍÑ»æ (¥Õ¥©¥ÈÍѹâÉʼÁ)"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Ilford Heavy Paper"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife Paper"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 x 90 DPI Fast Economy Draft"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 x 120 DPI Economy Draft"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI Economy Draft"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 x 240 DPI ¥É¥é¥Õ¥È"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 x 180 DPI ¥É¥é¥Õ¥È"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+#, fuzzy
+msgid "360 DPI Interleave"
+msgstr "360 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+#, fuzzy
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+#, fuzzy
+msgid "720 DPI Interleave"
+msgstr "720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+#, fuzzy
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI High Quality"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI High Quality Unidirectional"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Highest Quality"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+#, fuzzy
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI Highest Quality"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 DPI Unidirectional"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI Highest Quality"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI Full Overlap"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI Full Overlap Unidirectional"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 Unidirectional"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 Unidirectional"
+
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI Microweave"
+
+#: src/main/print-escp2-data.c:4117
+#, fuzzy
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 x 360 DPI FOL Unidirectional"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 x 360 DPI FOL2 Unidirectional"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 x 360 DPI MW2 Unidirectional"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI Full Overlap"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI Full Overlap Unidirectional"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI Four Pass"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI Four Pass Unidirectional"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL Unidirectional"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 DPI Four Pass"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 DPI Four Pass Unidirectional"
+
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI Microweave"
+
+#: src/main/print-escp2-data.c:4160
+#, fuzzy
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 DPI FOL Unidirectional"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI Four Pass"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 DPI Four Pass Unidirectional"
+
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI Microweave"
+
+#: src/main/print-escp2-data.c:4173
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI FOL Unidirectional"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI Four Pass"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 DPI Four Pass Unidirectional"
+
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI Microweave"
+
+#: src/main/print-escp2-data.c:4186
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 DPI Microweave Unidirectional"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI FOL Unidirectional"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI Four Pass"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 DPI Four Pass Unidirectional"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "ɸ½à"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "¥í¡¼¥ë¼°µë»æ"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "¼«Æ°ÁªÂò"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI x 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI ¹âÉʼÁ"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI Unidirectional"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI ¹âÉʼÁ"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI ¹âÉʼÁ"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI Unidirectional"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI x 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI x 1200 DPI ¹âÉʼÁ"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI x 1200 DPI ¹âÉʼÁ"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "¥Æ¥¹¥È°õºþ"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Ä̾ï"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr "Bond"
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "¹âµé"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "¸÷ÂôÉÕ¤­¥Õ¥©¥È"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "¥¹¥é¥¤¥É"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "¨´¥¥Õ¥©¥È"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "¨´¥¥¹¥é¥¤¥É"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "¼êÆ°"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "¥È¥ì¥¤£±"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "¥È¥ì¥¤£²"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "¥È¥ì¥¤£³"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "¥È¥ì¥¤£´"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "·ÈÂÓ¼°µë»æ"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "¥Ç¥¹¥¯¥È¥Ã¥×µë»æ"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "¥È¥ì¥¤"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "¥ª¥×¥·¥ç¥ó"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "¼«Æ°ÁªÂò"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 DPI ¥â¥Î¥¯¥í"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "¥«¥é¡¼ + ¹õ¥«¡¼¥È¥ê¥Ã¥¸"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "¥«¥é¡¼ + ¥Õ¥©¥È¡¦¥«¡¼¥È¥ê¥Ã¥¸"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "¥ì¥¿¡¼"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "¥ê¡¼¥¬¥ë"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "¥¿¥Ö¥í¥¤¥É"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "¥¨¥¯¥¼¥¯¥Æ¥£¥Ö"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "EPSON 4x6 ¥Õ¥©¥ÈÍÑ»æ"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "¥¹¡¼¥Ñ¡¼ B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4AÈÇ"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2AÈÇ"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0ÈÇ"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1ÈÇ"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2ÈÇ"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3ÈÇ"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4ÈÇ"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5ÈÇ"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6ÈÇ"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7ÈÇ"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8ÈÇ"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9ÈÇ"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10ÈÇ"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B (ISO)"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B (ISO)"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 (ISO)"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 (ISO)"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 (ISO)"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 (ISO)"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 (ISO)"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 (ISO)"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 (ISO)"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 (ISO)"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 (ISO)"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 (ISO)"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 (ISO)"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 (JIS)"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 (JIS)"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 (JIS)"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 (JIS)"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 (JIS)"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 (JIS)"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 (JIS)"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 (JIS)"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 (JIS)"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 (JIS)"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 (JIS)"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 (JIS)"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "T-¥·¥ã¥Ä¤ÎÌÏÍÍ"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "T-¥·¥ã¥Ä¤ÎÌÏÍÍ"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "T-¥·¥ã¥Ä¤ÎÌÏÍÍ"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "T-¥·¥ã¥Ä¤ÎÌÏÍÍ"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "T-¥·¥ã¥Ä¤ÎÌÏÍÍ"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "American foolscap"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "European foolscap"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Large Crown Quarto"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Large Crown Octavo"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Small paperback"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Penguin small paperback"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Penguin large paperback"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki Card"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku Card"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "ÆüËܤÎŤ¤ÉõÅû #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "ÆüËܤÎŤ¤ÉõÅû #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "ÆüËܤλͳѤ¤ÉõÅû #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitation"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Monarch Envelope"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "¥«¥¹¥¿¥à"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "89mm ¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "4 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "5 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "210mm ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "13 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "22 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "24 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "36 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "44 ¥¤¥ó¥Á¥í¡¼¥ë»æ"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s ¤Ï¼ïÎà %s ¤ËÂФ¹¤ëŬÀڤʥѥé¥á¡¼¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s ¤ÎÈϰϤò±Û¤¨¤Þ¤·¤¿ (¸½ºß¤ÎÃÍ %f, ºÇ¾® %f, ºÇÂç %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s ¤ÎÈϰϤò±Û¤¨¤Þ¤·¤¿ (¸½ºß¤ÎÃÍ %d, ºÇ¾® %d, ºÇÂç %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "¥×¥ê¥ó¥¿¤Ï¥«¥é¡¼°õºþ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "²èÁü¥µ¥¤¥º¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "¾å¥Þ¡¼¥¸¥ó¤Ï 0 ¤è¤ê¾®¤µ¤¯¤·¤Ê¤¤¤Ç²¼¤µ¤¤\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "º¸¥Þ¡¼¥¸¥ó¤Ï 0 ¤è¤ê¾®¤µ¤¯¤·¤Ê¤¤¤Ç²¼¤µ¤¤\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s ¤ÏŬÀڤʥǥ£¥¶Êý¼°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "±Ñ¸ì"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISO ¥é¥Æ¥ó£±"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "ÍÑ»æ¤Î¼ïÎà"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "µë»æÊýË¡"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "²òÁüÅÙ"
+
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "°õºþ"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "²èÁü¤Î¼ïÎà"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "¥é¥¤¥ó¡¦¥¢¡¼¥È"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "̵ÃϤο§"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "¼Ì¿¿"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "¥Ç¥£¥¶Êý¼°"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "¥¤¥ó¥¯¤Î¼ïÎà"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Escputil ¥Ð¡¼¥¸¥ç¥ó "
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil ¤Ï´°Á´ÌµÊݾڤǤ¹; ¾ÜºÙ¤Ï `escputil -l` ¤Ç¤´Í÷²¼¤µ¤¤¡£\n"
+"¤³¤ì¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¤¤¯¤Ä¤«¤Î¾ò·ï¤Î²¼¤ÇºÆÇÛÉÛ¤ò\n"
+"´¿·Þ¤·¤Þ¤¹; ¾ÜºÙ¤Ï `escputil -l` ¤Ç¤´Í÷²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹; ¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢ºâÃĤ¬È¯¹Ô¤¹¤ë\n"
+"GNU ¸øÍ­»ÈÍѵöÂú·ÀÌó½ñ¤ÎÂèÆóÈǤޤ¿¤Ï¤½¤ì°Ê¹ß¤ÎÈǤβ¼¤Ç²þÊÑ¡¦½¤Àµ¡¦ºÆÇÛÉÛ¤¬\n"
+"ǧ¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£\n"
+"\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤ÏÊØÍø¤Ë»È¤Ã¤Æ¤â¤é¤¨¤ë¤è¤¦¤ËÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢\n"
+"´°Á´¤Ë̵ÊݾڤǤ¹; ¾¦ÍÑÍøÍѤޤ¿¤Ï¤¢¤ëÆÃÄê¤ÎÌÜŪ¤Ë¤ª¤±¤ëŬ¹çÀ­¤ÎÊݾڤâ\n"
+"¤¢¤ê¤Þ¤»¤ó¡£¾ÜºÙ¤Ï GNU ¸øÍ­»ÈÍѵöÂú·ÀÌó½ñ¤ò¤´Í÷²¼¤µ¤¤¡£\n"
+"\n"
+"µ®Êý¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ËŬ±þ¤·¤¿ GNU ¸øÍ­»ÈÍѵöÂú·ÀÌó½ñ¤Î¥³¥Ô¡¼¤ò\n"
+"¼õ¤±¼è¤ëɬÍפ¬¤¢¤ê¤Þ¤¹; ¤â¤·¼õ¤±¼è¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\n"
+"Free Software Foundation, Inc., 56 Temple Place - \n"
+"Suite 330, Boston, MA 02111-1307, USA ¤Þ¤ÇÏ¢Íí¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"ÍÑË¡: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P ¥×¥ê¥ó¥¿ | -r ¥Ç¥Ð¥¤¥¹Ì¾] [-u] [-q] [-m ·¿¼°]\n"
+"EPSON Stylus (R) ¥×¥ê¥ó¥¿¤Î´ÉÍý¤ò¹Ô¤¦¥Ä¡¼¥ë¤Ç¤¹¡£\n"
+"ÍÑÎã: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" ¥³¥Þ¥ó¥É:\n"
+" -c|--clean-head ¥×¥ê¥ó¥¿¤Î¥Ø¥Ã¥É¤òÀ¶Áݤ¹¤ë¡£\n"
+" -n|--nozzle-check ¥Î¥º¥ë¤Î¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤ò°õºþ¤¹¤ë¡£\n"
+" ¥Î¥º¥ë¤¬±ø¤«¤Ã¤¿¤ê¡¢µÍ¤Þ¤Ã¤Æ¤¤¤ë¤È¥Ñ¥¿¡¼¥ó¤Ë¹Â¤¬É½¼¨¤µ"
+"¤ì¤Þ¤¹¡£\n"
+" ¹Â¤¬°õºþ¤µ¤ì¤¿¤é¡¢¥×¥ê¥ó¥¿¤Î¥Ø¥Ã¥É¤òÀ¶Áݤ·¤Æ²¼¤µ¤¤¡£\n"
+" -a|--align-head ¥×¥ê¥ó¥¿¤Î¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤롣\n"
+" ¡Ú·Ù¹ð¡Û: ¤³¤Î¥³¥Þ¥ó¥É¤òÍðÍѤ¹¤ë¤È¡¢\n"
+" °õºþ¤ÎÉʼÁ¤¬Äã²¼¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥×¥ê¥ó¥¿¸Î¾ã¤Î¸¶°ø¤Ë¤Ê"
+"¤ê¤Þ¤¹¡£\n"
+" -o|--align-color ¥«¥é¡¼°õºþ¤Î¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤ë (Stylus Color 480 ¤È "
+"580 ¤Î¤ß)¡£\n"
+" ¡Ú·Ù¹ð¡Û: ¤³¤Î¥³¥Þ¥ó¥É¤òÍðÍѤ¹¤ë¤È¡¢\n"
+" °õºþ¤ÎÉʼÁ¤¬Äã²¼¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥×¥ê¥ó¥¿¸Î¾ã¤Î¸¶°ø¤Ë¤Ê"
+"¤ê¤Þ¤¹¡£\n"
+" -s|--status ¥×¥ê¥ó¥¿¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£\n"
+" -i|--ink-level ¥¤¥ó¥¯¤Î¥ì¥Ù¥ë¤ò¥×¥ê¥ó¥¿¤«¤é¼èÆÀ¤¹¤ë¡£\n"
+" ¤³¤ì¤Ï¥×¥ê¥ó¥¿¤ÎÄã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î\n"
+" ¥¢¥¯¥»¥¹¸¢ (Æɤ߽ñ¤­) ¤¬É¬ÍפǤ¹¡£\n"
+" -d|--identify ¥×¥ê¥ó¥¿¾ðÊó (·¿¼°¤Ê¤É) ¤òÌ䤤¹ç¤ï¤»¤ë¡£\n"
+" ¤³¤ì¤Ï¥×¥ê¥ó¥¿¤ÎÄã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î\n"
+" ¥¢¥¯¥»¥¹¸¢ (Æɤ߽ñ¤­) ¤¬É¬ÍפǤ¹¡£\n"
+" -l|--license ¤³¤Î¥×¥í¥°¥é¥à¤Î¥é¥¤¥»¥ó¥¹/Ãí°Õ½ñ¤­¤òɽ¼¨¤¹¤ë¡£\n"
+" -M|--list-models ÍøÍѲÄǽ¤Ê¥×¥ê¥ó¥¿¤Î·¿¼°¤ò°ìÍ÷ɽ¼¨¤¹¤ë¡£\n"
+" -h|--help ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£\n"
+" ¥ª¥×¥·¥ç¥ó:\n"
+" -P|--printer-name ¥×¥ê¥ó¥¿¤òÁàºî¤¹¤ë¤¿¤á¤Ë¡¢¥×¥ê¥ó¥¿¡¦¥­¥å¡¼¤Î̾Á°¤ò»ØÄê"
+"¤¹¤ë¡£\n"
+" ½é´üÃͤϡ¢¥Ç¥Õ¥©¥ë¥È¤Î¥·¥¹¥Æ¥à¡¦¥×¥ê¥ó¥¿Ì¾¤Ç¤¹¡£\n"
+" -r|--raw-device ¥×¥ê¥ó¥¿¡¦¥­¥å¡¼·Ðͳ¤Ç¤Ï¤Ê¤¯¡¢Ä¾Àܽñ¤­¹þ¤à¥Ç¥Ð¥¤¥¹Ì¾¤ò"
+"»ØÄꤹ¤ë¡£\n"
+" -u|--new ¿·¤·¤¤¥×¥ê¥ó¥¿¤Î¾ì¹ç¤Ë»ØÄꤹ¤ë (Stylus Color 740 ¤Þ¤¿"
+"¤Ï¤½¤ì°Ê¹ß)¡£\n"
+" -q|--quiet ¥Ð¥Ê¡¼¤òɽ¼¨¤·¤Ê¤¤¡£\n"
+" -m|--model ¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤뤿¤á¤Ë¡¢Àµ³Î¤Ê¥×¥ê¥ó¥¿¤Î·¿¼°¤ò»ØÄê"
+"¤¹¤ë¡£\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"ÍÑË¡: escputil [¥ª¥×¥·¥ç¥ó] [¥³¥Þ¥ó¥É]\n"
+"ÍÑË¡: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P ¥×¥ê¥ó¥¿ | -r ¥Ç¥Ð¥¤¥¹Ì¾] [-u] [-q] [-m ·¿¼°]\n"
+"EPSON Stylus (R) ¥×¥ê¥ó¥¿¤Î´ÉÍý¤ò¹Ô¤¦¥Ä¡¼¥ë¤Ç¤¹¡£\n"
+"ÍÑÎã: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" ¥³¥Þ¥ó¥É:\n"
+" -c ¥×¥ê¥ó¥¿¤Î¥Ø¥Ã¥É¤òÀ¶Áݤ¹¤ë¡£\n"
+" -n ¥Î¥º¥ë¤Î¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤ò°õºþ¤¹¤ë¡£\n"
+" ¥Î¥º¥ë¤¬±ø¤«¤Ã¤¿¤ê¡¢µÍ¤Þ¤Ã¤Æ¤¤¤ë¤È¥Ñ¥¿¡¼¥ó¤Ë¹Â¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£\n"
+" ¹Â¤¬°õºþ¤µ¤ì¤¿¤é¡¢¥×¥ê¥ó¥¿¤Î¥Ø¥Ã¥É¤òÀ¶Áݤ·¤Æ²¼¤µ¤¤¡£\n"
+" -a ¥×¥ê¥ó¥¿¤Î¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤롣\n"
+" ¡Ú·Ù¹ð¡Û: ¤³¤Î¥³¥Þ¥ó¥É¤òÍðÍѤ¹¤ë¤È¡¢\n"
+" °õºþ¤ÎÉʼÁ¤¬Äã²¼¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥×¥ê¥ó¥¿¸Î¾ã¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹\n"
+" -o ¥«¥é¡¼°õºþ¤Î¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤ë (Stylus Color 480 ¤È 580 ¤Î¤ß)¡£\n"
+" ¡Ú·Ù¹ð¡Û: ¤³¤Î¥³¥Þ¥ó¥É¤òÍðÍѤ¹¤ë¤È¡¢\n"
+" °õºþ¤ÎÉʼÁ¤¬Äã²¼¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥×¥ê¥ó¥¿¸Î¾ã¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
+" -s ¥×¥ê¥ó¥¿¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¡£\n"
+" -i ¥¤¥ó¥¯¤Î¥ì¥Ù¥ë¤ò¥×¥ê¥ó¥¿¤«¤é¼èÆÀ¤¹¤ë¡£\n"
+" ¤³¤ì¤Ï¥×¥ê¥ó¥¿¤ÎÄã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î¥¢¥¯¥»¥¹¸¢ (Æɤ߽ñ¤­) ¤¬É¬ÍפÇ"
+"¤¹¡£\n"
+" -d ¥×¥ê¥ó¥¿¾ðÊó (·¿¼°¤Ê¤É) ¤òÌ䤤¹ç¤ï¤»¤ë¡£\n"
+" ¤³¤ì¤Ï¥×¥ê¥ó¥¿¤ÎÄã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤Ø¤Î\n"
+" ¥¢¥¯¥»¥¹¸¢ (Æɤ߽ñ¤­) ¤¬É¬ÍפǤ¹¡£\n"
+" -l ¤³¤Î¥×¥í¥°¥é¥à¤Î¥é¥¤¥»¥ó¥¹/Ãí°Õ½ñ¤­¤òɽ¼¨¤¹¤ë¡£\n"
+" -M ÍøÍѲÄǽ¤Ê¥×¥ê¥ó¥¿¤Î·¿¼°¤ò°ìÍ÷ɽ¼¨¤¹¤ë¡£\n"
+" -h ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¡£\n"
+" ¥ª¥×¥·¥ç¥ó:\n"
+" -P ¥×¥ê¥ó¥¿¤òÁàºî¤¹¤ë¤¿¤á¤Ë¡¢¥×¥ê¥ó¥¿¡¦¥­¥å¡¼¤Î̾Á°¤ò»ØÄꤹ¤ë¡£\n"
+" ½é´üÃͤϡ¢¥Ç¥Õ¥©¥ë¥È¤Î¥·¥¹¥Æ¥à¡¦¥×¥ê¥ó¥¿Ì¾¤Ç¤¹¡£\n"
+" -r ¥×¥ê¥ó¥¿¡¦¥­¥å¡¼·Ðͳ¤Ç¤Ï¤Ê¤¯¡¢Ä¾Àܽñ¤­¹þ¤à¥Ç¥Ð¥¤¥¹Ì¾¤ò»ØÄꤹ¤ë¡£\n"
+" -u ¿·¤·¤¤¥×¥ê¥ó¥¿¤Î¾ì¹ç¤Ë»ØÄꤹ¤ë (Stylus Color 740 ¤Þ¤¿¤Ï¤½¤ì°Ê¹ß)¡£\n"
+" -q ¥Ð¥Ê¡¼¤òɽ¼¨¤·¤Ê¤¤¡£\n"
+" -m ¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤뤿¤á¤Ë¡¢Àµ³Î¤Ê¥×¥ê¥ó¥¿¤Î·¿¼°¤ò»ØÄꤹ¤ë¡£\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "¥×¥ê¥ó¥¿¤Þ¤¿¤ÏÄã¥ì¥Ù¥ë¤Î¥Ç¥Ð¥¤¥¹¤ò°ì¤Ä»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£"
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "¥×¥ê¥ó¥¿¤Î·¿¼°¤ò°ì¤Ä»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£"
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "¥Ç¥Ð¥¤¥¹ %s ¤ò³«¤±¤Þ¤»¤ó: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "¥×¥ê¥ó¥¿ %s ¤Ë %s ¤ò»È¤Ã¤Æ°õºþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "¥×¥ê¥ó¥¿¤Ë¥³¥Þ¥ó¥É¤òÁ÷¿®¤Ç¤­¤Þ¤»¤ó\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "%s ¤«¤éÆɤ߹þ¤á¤Þ¤»¤ó: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "¥·¥¢¥ó (C)"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "¥Þ¥¼¥ó¥¿ (M)"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "²«¿§ (Y)"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "ÌÀ¤ë¤¤¥·¥¢¥ó"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "ÌÀ¤ë¤¤¥Þ¥¼¥ó¥¿"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Äã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤òÍøÍѤ¹¤ë¤¿¤á¤ËɬÍפʥ¤¥ó¥¯¡¦¥ì¥Ù¥ë¤ò¼èÆÀ¤·¤Þ¤¹¡£\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "%s ¤òÆɤ߽ñ¤­¥â¡¼¥É¤Ç³«¤±¤Þ¤»¤ó: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "%s ¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó; %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "¥×¥ê¥ó¥¿¤«¤é¤Î½ÐÎϤò²òÀϤǤ­¤Þ¤»¤ó\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "¥¤¥ó¥¯¤Î¿§"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "»Ä¤ê¤Î³ä¹ç"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Äã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¥×¥ê¥ó¥¿¼±Ê̻Ҥ¬É¬ÍפǤ¹¡£\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Äã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¥×¥ê¥ó¥¿¤Î¾õÂÖ¤¬É¬ÍפǤ¹¡£\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "¥Ø¥Ã¥É¤ÎÀ¶ÁÝÃæ...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+"¥Î¥º¥ë¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£¥×¥ê¥ó¥¿¤ÎÃæ¤ËÍѻ椬³Î¼Â¤Ë¸ºß¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ"
+"²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"¤´ÍøÍÑÁ°¤Ë¼¡¤ÎÀâÌÀ¤òÃí°Õ¿¼¤¯¤ªÆɤ߲¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï EPSON À½¤Î Stylus ¥¤¥ó¥¯¥¸¥§¥Ã¥È¼°¥×¥ê¥ó¥¿¤Î\n"
+"°õºþ¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤Ƥ¯¤ì¤Þ¤¹¡£¤³¤Î¥Ä¡¼¥ë¤ò»È¤¤¤¹¤®¤ë¤È¡¢\n"
+"°õºþ¤ÎÉʼÁ¤òÄã²¼¤µ¤»¥×¥ê¥ó¥¿¤Î¸Î¾ã¤Î¸¶°ø¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï SEIKO EPSON ¼Ò¤Ç¥Æ¥¹¥È¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢Á´¤¯ÌµÊݾڤǤ¹¡£\n"
+"¤³¤Î¥Ä¡¼¥ë¤Î¤´»ÈÍѤˤϤ´¼«¿È¤ÎÀÕǤ²¼¤Ç¹Ô¤Ã¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï %d ¸Ä¤Î¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤ò°õºþ¤·¤Þ¤¹¡£³Æ¥Ñ¥¿¡¼¥ó¤Ï¤È¤Æ¤â\n"
+"¥·¥ó¥×¥ë¤Ç¤¹¡£¤³¤Î¥Ä¡¼¥ë¤Ï¿âľ¥é¥¤¥ó¤ò½Å¤Í¤Ê¤¬¤é°õºþ¤·¤¿\n"
+"¥Ú¥¢¤«¤é¹½À®¤µ¤ì¤ë¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤ò°õºþ¤·¤Þ¤¹¡£\n"
+"³Æ¥Ú¥¢¡¦¥é¥¤¥ó¤Î²¼¤Ë¤Ï %d ¤È %d ¤Î´Ö¤ò¼¨¤¹ \"¥Ú¥¢ÈÖ¹æ\" ¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"\n"
+"ÆóËܤΥ饤¥ó¤ò´Ñ»¡¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤Î¥é¥¤¥ó¤Î¥Ú¥¢¤¬Åù¤·¤¤´Ö³Ö¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò\n"
+"³Îǧ¤·¤Æ²¼¤µ¤¤¡£¤Ä¤Þ¤ê¡¢°ìËܤΥ饤¥ó¤¬ºÇŬ¤Ê·Á¾õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ²¼¤µ"
+"¤¤¡£\n"
+"¤½¤·¤Æ¡¢¤½¤ì¤È¥Ú¥¢¤Ë¤Ê¤ë¥é¥¤¥ó¤¬Ê¿¹Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤òÃí°Õ¿¼¤¯³Îǧ¤·¤Æ²¼¤µ"
+"¤¤¡£\n"
+"Ãî¥á¥¬¥Í¤ä³ÈÂç¶À¤ò»È¤Ã¤ÆºÙ¤«¤¤Éôʬ¤Î³Îǧ¤ò¤ª¾©¤á¤·¤Þ¤¹¡£\n"
+"\n"
+"¤Þ¤¿¥Æ¥¹¥ÈÍѤ˹âÉʼÁ¤ÊÍÑ»æ¤ò¤ª»È¤¤¤¹¤ë¤³¤È¤â¤ª¾©¤á¤·¤Þ¤¹¡£¹âÉʼÁ¤ÊÍÑ»æ¤ò\n"
+"ÍøÍѤ¹¤ë¤È¡¢Ê£¿ô¤Î¥é¥¤¥ó¤¬¤­¤Ã¤Á¤ê¤È°õºþ¤µ¤ì¤Æ¤Ë¤¸¤ß¤¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£\n"
+"ºÇŬ¤Ê¥é¥¤¥ó¤Î¥Ú¥¢¤ÎÈÖ¹æ¤ò¹µ¤¨¤¿¸å¤Ç¡¢¤½¤ÎÍÑ»æ¤òµë»æ¥È¥ì¥¤¤ËÌᤷ¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"³Æ¥Ñ¥¿¡¼¥ó¤Ï»÷Ä̤äƤ¤¤Þ¤¹¤¬¡¢¼ê»æ¤Î¥Ñ¥¿¡¼¥ó¤Ï¤è¤êÈùºÙ¤ÊÇÛÃÖ¤ò¹Ô¤¦¤¿¤á¤Ë\n"
+"ºÙ¤«¤¤¥É¥Ã¥È¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£\n"
+"Àµ¤·¤¤Ê¤Ӥ¬°õºþ¤µ¤ì¤ë¤è¤¦¡¢Á´¤Æ¤Î¥é¥¤¥ó¤ò¥Æ¥¹¥È¤·¤Æ²¼¤µ¤¤¡£\n"
+"Á´¤Æ¤Î¥é¥¤¥ó¤ò°õºþ¤¹¤ë¤È¡¢¥é¥¤¥ó¡¦¥Ñ¥¿¡¼¥ó¤ò¤â¤¦°ìÅÙ°õºþ¤·¤Þ¤¹¡£\n"
+"Ãæ´Ö¤Ë¤¢¤ë¥é¥¤¥ó¤Î¥Ú¥¢ (#%d / %d ÈÖÌÜ) ¤¬Á´¤Æ¤Î´Ö³Ö¤ËÂФ·¤Æ\n"
+"ºÇŬ¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"¥Ñ¥¿¡¼¥ó¤Î°õºþ¤¬´°Î»¤·¤¿¤é¡¢¤½¤Î¥×¥ê¥ó¥¿ÍѤˤ½¤ÎÀßÄê¤òÊݸ (s) ¤¹¤ë¤«¡¢\n"
+"¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤òºÆ¤Ó¼Â¹Ô¤¹¤ë (r) ¤«¡¢Êݸ¤·¤Ê¤¤¤Ç½ªÎ» (q) ¤¹¤ë¤«\n"
+"ÁªÂò¤·¤Æ²¼¤µ¤¤¡£½ªÎ»¤·¤Æ¤â°ÊÁ°¤ÎÀßÄê¤ËÌá¤ê¤Þ¤»¤ó¤¬¡¢\n"
+"¥×¥ê¥ó¥¿¤ÎÅŸ»¤ò OFF ¤Ë¤·¤Ê¤¤¸Â¤êÌ᤹¤³¤È¤Ï²Äǽ¤Ç¤¹¡£½ªÎ»¤·¤¿¾ì¹ç¤Ë¡¢\n"
+"¤¢¤È¤Ç¤½¤ÎÀßÄê¤òÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤â¤¦°ìÅÙƱ¤¸¼ê½ç¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£\n"
+"¤³¤Îºî¶È¤ò¹Ô¤Ã¤Æ¤¤¤ëºÇÃæ¤ËÅŸ»¤ò OFF ¤Ë¤·¤Ê¤¤¤Ç²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"¤´ÍøÍÑÁ°¤Ë¼¡¤ÎÀâÌÀ¤òÃí°Õ¿¼¤¯¤ªÆɤ߲¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï EPSON À½¤Î Stylus ¥¤¥ó¥¯¥¸¥§¥Ã¥È¼°¥×¥ê¥ó¥¿¤Î\n"
+"°õºþ¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤Ƥ¯¤ì¤Þ¤¹¡£¤³¤Î¥Ä¡¼¥ë¤ò»È¤¤¤¹¤®¤ë¤È¡¢\n"
+"°õºþ¤ÎÉʼÁ¤òÄã²¼¤µ¤»¥×¥ê¥ó¥¿¤Î¸Î¾ã¤Î¸¶°ø¤ò°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï SEIKO EPSON ¼Ò¤Ç¥Æ¥¹¥È¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢Á´¤¯ÌµÊݾڤǤ¹¡£\n"
+"¤³¤Î¥Ä¡¼¥ë¤Î¤´»ÈÍѤˤϤ´¼«¿È¤ÎÀÕǤ²¼¤Ç¹Ô¤Ã¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï¿âľ¥é¥¤¥ó¤ò½Å¤Í¤Ê¤¬¤é°õºþ¤·¤¿¥Ú¥¢¤«¤é¹½À®¤µ¤ì¤ë¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó"
+"¤ò\n"
+"°õºþ¤·¤Þ¤¹¡£³Æ¥Ú¥¢¡¦¥é¥¤¥ó¤Î²¼¤Ë¤Ï %d ¤È %d ¤Î´Ö¤ò¼¨¤¹ \"¥Ú¥¢ÈÖ¹æ\" ¤¬¤¢¤ê¤Þ"
+"¤¹¡£\n"
+"\n"
+"ÆóËܤΥ饤¥ó¤ò´Ñ»¡¤¹¤ë¾ì¹ç¤Ï¡¢¤½¤Î¥é¥¤¥ó¤Î¥Ú¥¢¤¬Åù¤·¤¤´Ö³Ö¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò\n"
+"³Îǧ¤·¤Æ²¼¤µ¤¤¡£¤Ä¤Þ¤ê¡¢°ìËܤΥ饤¥ó¤¬ºÇŬ¤Ê·Á¾õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ²¼¤µ"
+"¤¤¡£\n"
+"¤½¤·¤Æ¡¢¤½¤ì¤È¥Ú¥¢¤Ë¤Ê¤ë¥é¥¤¥ó¤¬Ê¿¹Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤òÃí°Õ¿¼¤¯³Îǧ¤·¤Æ²¼¤µ"
+"¤¤¡£\n"
+"Ãî¥á¥¬¥Í¤ä³ÈÂç¶À¤ò»È¤Ã¤ÆºÙ¤«¤¤Éôʬ¤Î³Îǧ¤ò¤ª¾©¤á¤·¤Þ¤¹¡£\n"
+"\n"
+"Á´¤Æ¤Î¥é¥¤¥ó¤ò°õºþ¤·¤¿¤é¡¢¥é¥¤¥ó¡¦¥Ñ¥¿¡¼¥ó¤ò¤â¤¦°ìÅÙ°õºþ¤·¤Þ¤¹¡£\n"
+"Ãæ´Ö¤Ë¤¢¤ë¥é¥¤¥ó¤Î¥Ú¥¢ (#%d / %d ÈÖÌÜ) ¤¬Á´¤Æ¤Î´Ö³Ö¤ËÂФ·¤Æ\n"
+"ºÇŬ¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£\n"
+"¤½¤ì¤«¤é¡¢¤½¤Î¥×¥ê¥ó¥¿ÍѤˤ½¤ÎÀßÄê¤òÊݸ (s) ¤¹¤ë¤«¡¢\n"
+"¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤òºÆ¤Ó¼Â¹Ô¤¹¤ë (r) ¤«¡¢Êݸ¤·¤Ê¤¤¤Ç½ªÎ» (q) ¤¹¤ë¤«\n"
+"ÁªÂò¤·¤Æ²¼¤µ¤¤¡£½ªÎ»¤·¤Æ¤â°ÊÁ°¤ÎÀßÄê¤ËÌá¤ê¤Þ¤»¤ó¤¬¡¢\n"
+"¥×¥ê¥ó¥¿¤ÎÅŸ»¤ò OFF ¤Ë¤·¤Ê¤¤¸Â¤êÌ᤹¤³¤È¤Ï²Äǽ¤Ç¤¹¡£\n"
+"½ªÎ»¤·¤¿¾ì¹ç¤Ë¡¢¤¢¤È¤Ç¤½¤ÎÀßÄê¤òÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤â¤¦°ìÅÙƱ¤¸¼ê½ç¤ò¹Ô¤Ã¤Æ²¼"
+"¤µ¤¤¡£\n"
+"¤³¤Îºî¶È¤ò¹Ô¤Ã¤Æ¤¤¤ëºÇÃæ¤ËÅŸ»¤ò OFF ¤Ë¤·¤Ê¤¤¤Ç²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "¥×¥ê¥ó¥¿¤Ë¥³¥Þ¥ó¥É¤òÁ÷¿®¤Ç¤­¤Þ¤»¤ó¡£½ªÎ»¤·¤Þ¤¹¡£\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"Åù´Ö³Ö¤Î°õºþ¤ÏÄã¥ì¥Ù¥ë¡¦¥Ç¥Ð¥¤¥¹¤ò»È¤¦¤«¡¢¤¢¤ë¤¤¤Ï\n"
+"'-m' ¥ª¥×¥·¥ç¥ó¤Ç¥×¥ê¥ó¥¿¤òÆÃÄꤷ¤Æ»ÈÍѤ¹¤ë¤è¤¦¤Ë¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "¥×¥ê¥ó¥¿¤Î·¿¼°¤ò¸¡½ÐÃæ¤Ç¤¹..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"%s ¤òÆɤ߽ñ¤­¥â¡¼¥É¤Ç³«¤±¤Þ¤»¤ó: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"%s ¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"¥×¥ê¥ó¥¿¤Î·¿¼°¤ò¸¡½Ð¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+"¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤òÆÃÄꤹ¤ë¤¿¤á¤Ë '-m' ¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "¥×¥ê¥ó¥¿¤Î·¿¼° %s ¤ÏÉÔÌÀ¤Ç¤¹¡£\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"ºÇ½ª½ÐÎϤǥץê¥ó¥¿¤¬Àµ¤·¤¤´Ö³Ö¤Ç°õºþ¤·¤Æ¤¤¤ë¤«¤òÃí°Õ¿¼¤¯³Îǧ¤·¤Æ²¼¤µ¤¤¡£\n"
+"³Îǧ¸å¡¢¼¡¤ÎÃ椫¤éÁªÂò¤·¤Æ²¼¤µ¤¤:\n"
+" (s) ¥×¥ê¥ó¥¿¤ÎÃæ¤Ë¤³¤ÎÀßÄê¤òÊݸ¤¹¤ë\n"
+" (q) ¤³¤ÎÀßÄê¤òÊݸ¤·¤Ê¤¤¤Ç½ªÎ»¤¹¤ë\n"
+" (r) ºÇ½é¤ËÌá¤Ã¤ÆºÆ¤ÓÀßÄꤹ¤ë\n"
+"ÁªÂò¸å¤ËºÇ¸å¤Î³Îǧ¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"ÁªÂò¤·¤Æ²¼¤µ¤¤ (s, q, r)¡£\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr "ËÜÅö¤ËÀßÄê¤òÇË´þ¤·¤Æ½ªÎ»¤¹¤ë¾ì¹ç¤Ï¡¢ºÆÅÙ 'q' ¤òÆþÎϤ·¤Æ²¼¤µ¤¤:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤¬ÊäÀµ¤µ¤ì¤Þ¤·¤¿¡£Ã¢¤·¤½¤Î´Ö³Ö¤Ï¤Þ¤ÀÊݸ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+"¤½¤Î´Ö³Ö¤òÊݸ¤¹¤ë¾ì¹ç¤Ï¡¢¤³¤Î¼ê½ç¤ò·«¤êÊÖ¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr "ËÜÅö¤Ë´Ö³ÖÊäÀµ¤ÎÀßÄê¤ò¤ä¤êľ¤¹¾ì¹ç¤Ï¡¢ºÆÅÙ 'r' ¤òÆþÎϤ·¤Æ²¼¤µ¤¤:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "´Ö³ÖÊäÀµ¤ÎÀßÄê¤ò·«¤êÊÖ¤·¤Þ¤¹¡£\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"¤³¤ÎÁàºî¤Ï¡¢¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
+"¡Ú·Ù¹ð¡Û: ¤³¤ÎÁàºî¤Ï SEIKO EPSON ¤Î¾µÇ§¤òÆÀ¤¿¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
+" ¤Þ¤¿¡¢¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤Ë»³²¤òÍ¿¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£\n"
+"ËÜÅö¤Ëµ¹¤·¤¤¤Ç¤¹¤«¡©\n"
+"¤³¤ÎÀßÄê¤ò¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤ËÊݸ¤¹¤ë¾ì¹ç¤Ï¡¢ºÆÅÙ 's' ¤òÆþÎϤ·¤Æ²¼¤µ¤¤:\n"
+"\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "ÀßÄê¤ÎÊݸ¤¹¤ë¤³¤È¤Ë¤Ä¤¤¤Æ..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "¼ºÇԤǤ¹¡ª\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"¤¢¤Ê¤¿¤ÎÀßÄê¤ÎÊݸ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
+"ºÆÅÙ¡¢´Ö³ÖÊäÀµ¤ÎÀßÄê¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "´°Î»¤·¤Þ¤·¤¿¡ª\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "´Ö³ÖÊäÀµ¤ÎÀßÄ꤬¥×¥ê¥ó¥¿¤ËÊݸ¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥³¥Þ¥ó¥É¤Ç¤¹¡£\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "ºÇ¸å¤Î¥³¥Þ¥ó¥É¤¬³Îǧ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"¤³¤ÎÁàºî¤Ï¡¢¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤¬ EPSON %s ¤Ç¤¢¤ë¤ÈÁÛÄꤷ¤¿¤â¤Î¤Ç¤¹¡£\n"
+"¤â¤·¥×¥ê¥ó¥¿¤Î·¿¼°¤¬°Û¤Ê¤ë¾ì¹ç¤Ï¡¢[CTRL]+C ¤òÆþÎϤ·¤ÆÃæÃǤ·¡¢\n"
+"Àµ¤·¤¤¥×¥ê¥ó¥¿¤Î·¿¼°¤òÁªÂò¤·¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"°õºþ¥Ø¥Ã¥É´Ö³ÖÊäÀµ¤ò³«»Ï¤¹¤ë¾ì¹ç¤Ï¡¢¥×¥ê¥ó¥¿¤Î¥È¥ì¥¤¤Ë\n"
+"ÍÑ»æ¤òÆþ¤ì¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "²¿¤«¥­¡¼¤òÆþÎϤ¹¤ë¤È³¹Ô¤·¤Þ¤¹ > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"°õºþ·ë²Ì¤ò³Îǧ¤·¤Æ¡¢³Æ¥Ñ¥¿¡¼¥ó¤ÇºÇŬ¤Ê¥é¥¤¥ó¤Î¥Ú¥¢¤òÁªÂò¤·¤Æ²¼¤µ¤¤¡£\n"
+"¤½¤Î¥Ú¥¢¤ÎÈÖ¹æ¤òÆþÎϤ«¡¢'r' ¤Ç¤³¤ÎÀßÄê¤ò¤¯¤ê¤«¤¨¤¹¤«¡¢'?' ¤Ç¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ"
+"¤¹¡£\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "¥Ñ¥¹ #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "¿·¤·¤¤ÍÑ»æ¤ò¥È¥ì¥¤¤ËÆþ¤ì¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Èϰϳ°¤Î¥Ú¥¢ÈÖ¹æ¤Ç¤¹¡ª\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "ÆþÎϤ·¤¿¤â¤Î¤Ï̵¸ú¤Ç¤¹¡ª\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "ºÇŬ¤Ê¥é¥¤¥ó¤Î¥Ú¥¢¤Ï 1 ¤È %d ¤Î´Ö¤ÎÈÖ¹æ¤Ë¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "´Ö³ÖÊäÀµÃæ..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "´°Î»¤·¤Þ¤·¤¿¡£\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"´Ö³ÖÊäÀµ¤¬Àµ¤·¤¤¤«³Îǧ¤·¤Æ²¼¤µ¤¤¡£ºÆÅ٥ƥ¹¥È¥Ñ¥¿¡¼¥ó¤Î°õºþ¤¬´°Î»¤·¤¿¸å¤Ë\n"
+"³Æ¥é¥¤¥ó¤ÎºÇŬ¤Ê¥Ñ¥¿¡¼¥ó¤¬¥Ñ¥¿¡¼¥ó %d ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ²¼¤µ¤¤¡£\n"
+"¤â¤·ºÇŬ¤Ê¥Ñ¥¿¡¼¥ó¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢ºÇŬ¤Ê°õºþÉʼÁ¤òÆÀ¤ë¤¿¤á¤Ë\n"
+"ƱÍͤÎÁàºî¤ò·«¤êÊÖ¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"¤´ÍøÍÑÁ°¤Ë¼¡¤ÎÀâÌÀ¤òÃí°Õ¿¼¤¯¤ªÆɤ߲¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï EPSON À½¤Î Stylus ¥¤¥ó¥¯¥¸¥§¥Ã¥È¼°¥×¥ê¥ó¥¿¤Î\n"
+"¥«¥é¡¼°õºþ¥Ø¥Ã¥É¤ò°ìÎó¤Ëʤ٤Ƥ¯¤ì¤Þ¤¹¡£\n"
+"¤³¤Î¥Ä¡¼¥ë¤ò»È¤¤¤¹¤®¤ë¤È¡¢°õºþ¤ÎÉʼÁ¤òÄã²¼¤µ¤»¥×¥ê¥ó¥¿¤Î¸Î¾ã¤Î¸¶°ø¤ò\n"
+"°ú¤­µ¯¤³¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥Ä¡¼¥ë¤Ï SEIKO EPSON ¼Ò¤Ç¥Æ¥¹¥È¤·¤¿¤ï¤±¤Ç¤Ï¤Ê"
+"¤¤¤Î¤Ç\n"
+"¡¢Á´¤¯ÌµÊݾڤǤ¹¡£¤³¤Î¥Ä¡¼¥ë¤Î¤´»ÈÍѤˤϤ´¼«¿È¤ÎÀÕǤ²¼¤Ç¹Ô¤Ã¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥Ä¡¼¥ë¤Ï°ìËç¤ÎÍÑ»æ¤Ë %d ¸Ä¤Î¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤ò½Å¤Í°õºþ¤·¤Þ¤¹¡£\n"
+"¤Ä¤Þ¤ê¡¢°ì¥Ñ¥¿¡¼¥ó°õºþ¤¹¤ë¤ÈÇӻ椹¤ë¤Î¤Ç¡¢Æ±¤¸ÍÑ»æ¤òµë»æ¤·¤ÆºÆÅÙ°õºþ¤·¤Þ"
+"¤¹¡£\n"
+"³Æ¥Ú¥¢¡¦¥é¥¤¥ó¤Î²¼¤Ë¤Ï %d ¤È %d ¤Î´Ö¤ò¼¨¤¹ \"¥Ú¥¢ÈÖ¹æ\" ¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"\n"
+"¥Ñ¥¿¡¼¥ó¤ò´Ñ»¡¤¹¤ë¾ì¹ç¤Ï¡¢°ì¤Ä¤Î¥Ñ¥Ã¥Á¤¬³ê¤é¤«¤Ê (\"γ»Ò\" ¤Ë¶á¤¤) ¥Æ¥¯¥¹"
+"¥Á¥ã\n"
+"¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£¤½¤ÎÃ椫¤éºÇŬ¤Ê¥Ñ¥Ã¥Á¤òÁªÂò¤¹¤ë¤¿¤á¤Ë\n"
+"Ãí°Õ¿¼¤¯´Ñ»¡¤·¤Æ²¼¤µ¤¤¡£¥Õ¥©¥ÈÍѤιâÉʼÁ¥¤¥ó¥¯¥¸¥§¥Ã¥ÈÍѻ桢¤¢¤ë¤¤¤Ï\n"
+"¤½¤ì¤Ë»÷¤¿¹âÉʼÁ¤ÎÍÑ»æ¤ò»È¤Ã¤Æ¥Æ¥¹¥È¤¹¤ë¤³¤È¤ò¤ª¾©¤á¤·¤Þ¤¹¡£\n"
+"¤â¤·³ê¤é¤«¤Ê¥Ñ¥¿¡¼¥ó¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤Î¥Æ¥¹¥È¤ò·«¤êÊÖ¤·¤Æ²¼¤µ¤¤¡£\n"
+"\n"
+"¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤Î´Ñ»¡¤¬´°Î»¤·¤¿¤é¥Ñ¥Ã¥Á¤òÀöÂõ¤·¡¢\n"
+"¤½¤Î¥×¥ê¥ó¥¿ÍѤˤ½¤ÎÀßÄê¤òÊݸ (s) ¤¹¤ë¤«¡¢¥Æ¥¹¥È¥Ñ¥¿¡¼¥ó¤òºÆ¤Ó¼Â¹Ô¤¹¤ë (r) "
+"¤«¡¢\n"
+"Êݸ¤·¤Ê¤¤¤Ç½ªÎ» (q) ¤¹¤ë¤«ÁªÂò¤·¤Æ²¼¤µ¤¤¡£½ªÎ»¤·¤Æ¤â°ÊÁ°¤ÎÀßÄê¤ËÌá¤ê¤Þ¤»¤ó"
+"¤¬¡¢\n"
+"¥×¥ê¥ó¥¿¤ÎÅŸ»¤ò OFF ¤Ë¤·¤Ê¤¤¸Â¤êÌ᤹¤³¤È¤Ï²Äǽ¤Ç¤¹¡£½ªÎ»¤·¤¿¾ì¹ç¤Ë¡¢\n"
+"¤¢¤È¤Ç¤½¤ÎÀßÄê¤òÊݸ¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤â¤¦°ìÅÙƱ¤¸¼ê½ç¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£\n"
+"¤³¤Îºî¶È¤ò¹Ô¤Ã¤Æ¤¤¤ëºÇÃæ¤ËÅŸ»¤ò OFF ¤Ë¤·¤Ê¤¤¤Ç²¼¤µ¤¤¡£\n"
+"\n"
+"¡Ú·Ù¹ð¡Û: ¤³¤Îµ¡Ç½¤Ï¤Þ¤À¥Æ¥¹¥È¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ Æ°ºî¤·¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡ª\n"
+" ¤Þ¤¿¡¢¥×¥ê¥ó¥¿¸Î¾ã¤Î¸¶°ø¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡ª\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "¥×¥ê¥ó¥¿ %s ¤Ï¥«¥é¡¼¡¦¥Ø¥Ã¥É´Ö³Ö¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+"°õºþ¤¬´°Î»¤·¤¿¤é¡¢\n"
+"ºÆÅÙ¡¢¥×¥ê¥ó¥¿¤ËÁ°¤Ë»ÈÍѤ·¤¿´Ö³ÖÊäÀµÍÑ»æ¤òÁÞÆþ¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"´Ö³ÖÊäÀµÍÑ»æ¤ò³Îǧ¤·¡¢¤É¤Î¥Ñ¥¿¡¼¥ó¤¬°ìÈ֤ʤá¤é¤«¤Ç¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ²¼¤µ"
+"¤¤¡£\n"
+"¤½¤Î¤è¤¦¤Ê¥Ñ¥¿¡¼¥ó¤Ë¤Ï°ìÈÖ¾®¤µ¤¤ \"grain\" ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£\n"
+"¤½¤Î¤è¤¦¤Ê¥Ñ¥¿¡¼¥ó¤ò³Îǧ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¤â¤Ã¤È¤âºÇŬ¤Ê¥Ñ¥¿¡¼¥ó¤ÎÈÖ¹æ¤òÁªÂò"
+"¤·¡¢\n"
+"¤³¤Î¼ê½ç¤ò·«¤êÊÖ¤·¤Æ²¼¤µ¤¤¡£\n"
+"¥Ñ¥¿¡¼¥ó¤ÎÈÖ¹æ¤òÆþÎϤ·¤Æ²¼¤µ¤¤ ('?' ¤Ç¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹)¡£\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "ºÇŬ¤Ê¥Ñ¥¿¡¼¥ó¤Ï 1 ¤È %d ¤Î´Ö¤ÎÈÖ¹æ¤Ë¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "ÆþÎÏ¥¨¥é¡¼\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "°õºþ¥«¥é¡¼Ä´À°"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "½é´üÃͤËÌ᤹"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "ÊĤ¸¤ë"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "²èÁü¤Î¥×¥ì¥Ó¥å¡¼"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "ÌÀ¤ë¤µ:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"°õºþ¤¹¤ëÌÀ¤ë¤µ¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£\n"
+"(0.0Êý¸þ: °Å¤¯ 2.0Êý¸þ: ÌÀ¤ë¤¯)"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "¥³¥ó¥È¥é¥¹¥È:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "°õºþ»þ¤Î¥³¥ó¥È¥é¥¹¥È¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "¥·¥¢¥ó:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "°õºþ»þ¤Î¥·¥¢¥ó¿§¤Î¥Ð¥é¥ó¥¹¤òÄ´À°¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "¥Þ¥¼¥ó¥¿:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "°õºþ»þ¤Î¥Þ¥¼¥ó¥¿¿§¤Î¥Ð¥é¥ó¥¹¤òÄ´À°¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "²«¿§:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "°õºþ»þ¤Î²«¿§¤Î¥Ð¥é¥ó¥¹¤òÄ´À°¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "ºÌÅÙ:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"°õºþ»þ¤ÎºÌÅÙ (¥«¥é¡¼¡¦¥Ð¥é¥ó¥¹) ¤òÄ´À°¤·¤Þ¤¹¡£\n"
+"¥«¥é¡¼¤È¹õ¤ÎξÊý¤Î¥¤¥ó¥¯¤ò»È¤Ã¤Æ¥°¥ì¡¼¥¹¥±¡¼¥ë½ÐÎϤ¹¤ë¾ì¹ç¤Ï 0 ¤Ë¤·¤Æ²¼¤µ¤¤¡£"
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Ç»ÅÙ:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"°õºþ»þ¤ÎÇ»ÅÙ (¥¤¥ó¥¯¤ÎÎÌ) ¤òÄ´À°¤·¤Þ¤¹¡£\n"
+"ÍÑ»æ¤ËÂçÎ̤Υ¤¥ó¥¯¤¬ÉÕ¤¤¤¿¤ê±ø¤ì¤¿¤ê¤¹¤ë¾ì¹ç¤ÏÇ»ÅÙ¤òÄ㤯¤·¤Æ²¼¤µ¤¤;\n"
+"¹õ¤ÎÉôʬ¤¬¤Þ¤Ð¤é¤Ë¤Ê¤ë¾ì¹ç¤ÏÇ»ÅÙ¤ò¹â¤¯¤·¤Æ²¼¤µ¤¤¡£"
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "¥¬¥ó¥Þ:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"°õºþ»þ¤Î¥¬¥ó¥ÞÃͤòÄ´À°¤·¤Þ¤¹¡£\n"
+"ÃͤòÂ礭¤¯¤¹¤ë¤È°ìÈÌŪ¤ËÌÀ¤ë¤¤°õºþ¤Ë¤Ê¤ê¡¢¾®¤µ¤¯¤¹¤ë¤È°Å¤¤°õºþ¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
+"ÌÀ¤ë¤µ¤ÎÄ´À°¤È¤Ï°Û¤Ê¤ê¡¢¹õ¿§¤ÈÇò¿§¤ÏƱ¤¸¤Þ¤Þ¤Ç¤¹¡£"
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "¥Ç¥£¥¶¥ê¥ó¥°Êý¼°:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"»ÈÍѤ¹¤ë¥Ç¥£¥¶¥ê¥ó¥°Êý¼°¤òÁªÂò¤·¤Þ¤¹¡£\n"
+"\"¥¢¥À¥×¥Æ¥£¥Ö¡¦¥Ï¥¤¥Ö¥ê¥Ã¥ÉÊý¼°\": °ìÈÌŪ¤ËºÇŬ¤ÊÉʼÁ¤òÄ󶡤·¤Þ¤¹¡£\n"
+"\"Ŭ±þ½ç½øÊý¼°\": ¹â®¤Ç¼Ì¿¿¤Ê¤É¤Î¹âÉʼÁ¤Ê½ÐÎϤòÄ󶡤·¤Þ¤¹¡£\n"
+"\"¹â®Êý¼°\",\"Ķ¹â®Êý¼°\": ¤«¤Ê¤ê¹â®¤Ë°õºþ¤·¡¢¥Æ¥­¥¹¥È¤ä¥é¥¤¥ó¥¢¡¼¥È¤ËŬ¤·"
+"¤Æ¤¤¤Þ¤¹¡£\n"
+"\"¥Ï¥¤¥Ö¥ê¥Ã¥É¡¦¥Õ¥í¥¤¥É-¥¹¥¿¥¤¥ó¥Ð¡¼¥°Êý¼°\": °ìÈÌŪ¤ËÄãÉʼÁ¤Ê½ÐÎϤòÄ󶡤·¤Þ"
+"¤¹¡£"
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- °õºþ v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "¾ðÊó"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"°õºþ¤È\n"
+"ÀßÄê¤ÎÊݸ"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"ÀßÄê¤Î\n"
+"Êݸ"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "°õºþ"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "¼è¤ê¾Ã¤·"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "¥×¥ì¥Ó¥å¡¼"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"°õºþ»þ¤Î²èÁü¤Î°ÌÃÖ¤òÀßÄꤷ¤Þ¤¹¡£\n"
+"¥Þ¥¦¥¹¤Îº¸¥Ü¥¿¥ó¤Ç¥É¥é¥Ã¥°¤·¤¿¾ì½ê¤Ë²èÁü¤¬ÇÛÃÖ¤µ¤ì¤Þ¤¹¡£\n"
+"¥Þ¥¦¥¹¤Î±¦¥Ü¥¿¥ó¤Ç¥É¥é¥Ã¥°¤¹¤ë¤È¡¢ºÙ¤«¤¤¥ì¥Ù¥ë¤Ç²èÁü¤ò°ÜÆ°¤·¤Þ¤¹; Ìó 1/72 ¥¤"
+"¥ó¥Áñ°Ì¤Ç°ÜÆ°¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£\n"
+"¥Þ¥¦¥¹¤ÎÃæ¥Ü¥¿¥ó¤Ç¥É¥é¥Ã¥°¤¹¤ë¤È¡¢²èÁü¤ÎÂ礭¤µ¤Îñ°Ì¤Ç°ÜÆ°¤¹¤ë¤³¤È¤¬²Äǽ¤Ç"
+"¤¹¡£\n"
+"[SHIFT] ¥­¡¼¤ò²¡¤·¤Ê¤¬¤é¥Þ¥¦¥¹¤ò¥É¥é¥Ã¥°¤¹¤ë¤È¡¢¿åÊ¿¤Þ¤¿¤Ï¿âľÊý¸þ¤Ë¤Î¤ß²èÁü"
+"¤ò°ÜÆ°¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£\n"
+"¥É¥é¥Ã¥°Ãæ¤ËÊ̤Υܥ¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢²èÁü¤Ï¸µ¤Î¾ì½ê¤ËÌá¤ê¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "°ÌÃÖ"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "¼«Æ°"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "½ÄÃÖ¤­"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "²£ÃÖ¤­"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "¾å²¼"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "²£Ä¹"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"ÍÑ»æ¤ÎÊý¸þ¤òÁªÂò¤·¤Þ¤¹: ½ÄÃÖ¤­¡¢²£ÃÖ¤­¡¢¾å²¼¡¢¤Þ¤¿¤Ï²£Ä¹ (¾å²¼¤Ä¤­¤Î²£ÃÖ¤­)"
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "ÍÑ»æ¤Î¸þ¤­:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "º¸Â¦:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "ÍÑ»æ¤Îº¸Ã¼¤«¤é²èÁü¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "¾å¦:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "ÍÑ»æ¤Î¾åü¤«¤é²èÁü¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "±¦Â¦:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "ÍÑ»æ¤Îº¸Ã¼¤«¤é²èÁü¤Î±¦Ã¼¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "±¦Â¦¤Î±ï:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "ÍÑ»æ¤Î±¦Ã¼¤«¤é²èÁü¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "²¼Â¦:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "ÍÑ»æ¤Î¾åü¤«¤é²èÁü¤Î²¼Ã¼¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "²¼Â¦¤Î±ï:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "ÍÑ»æ¤Î²¼Ã¼¤«¤é²èÁü¤Þ¤Ç¤Îµ÷Î¥¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Ãæ¿´:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "¿âľ"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "ÍÑ»æ¤Î¿âľÊý¸þ¤ÎÃæ¿´¤Ë¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "ξü"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "ÍÑ»æ¤ÎÃæ¿´¤Ë¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "¿åÊ¿"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "ÍÑ»æ¤Î¿åÊ¿Êý¸þ¤ÎÃæ¿´¤Ë¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "¥×¥ê¥ó¥¿¤ÎÁªÂò"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "¥×¥ê¥ó¥¿¤Î·¿¼°:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¤òÁªÂò¤·¤Þ¤¹¡£"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD ¥Õ¥¡¥¤¥ë:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "¤ª»È¤¤¤Î¥×¥ê¥ó¥¿ÍѤΠPPD ¥Õ¥¡¥¤¥ë̾¤òÆþÎϤ·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "»²¾È"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "¤ª»È¤¤¤Î¥×¥ê¥ó¥¿ÍѤΠPPD ¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Þ¤¹¡£"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "¥³¥Þ¥ó¥É:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"¤ª»È¤¤¤Î¥×¥ê¥ó¥¿¸þ¤±¤Î°õºþ¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Þ¤¹¡£¡ÚÃíµ­¡Û: '-l' ¤Þ¤¿¤Ï '-"
+"oraw' ¥ª¥×¥·¥ç¥ó¤òºï½ü¤·¤Ê¤¤¤Ç²¼¤µ¤¤¡£°õºþ¤Ë¼ºÇÔ¤·¤Þ¤¹¡ª"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "¥Õ¥¡¥¤¥ë¤Ë°õºþ¤·¤Þ¤¹¤«¡©"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD ¥Õ¥¡¥¤¥ë¤Ç¤¹¤«¡©"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "¿·¤·¤¤¥×¥ê¥ó¥¿¤ÎÄêµÁ"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "¥×¥ê¥ó¥¿Ì¾:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "ÍøÍѤ¹¤ëÏÀÍý¥×¥ê¥ó¥¿Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Gimp-Print"
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Gimp-Print ¥Ð¡¼¥¸¥ç¥ó "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"¤½¤·¤Æ Gimp-Print ³«È¯¥Á¡¼¥à¡£\n"
+"\n"
+"¥Û¡¼¥à¥Ú¡¼¥¸ <http://gimp-print.sourceforge.net> ¤Ë¤ª±Û¤·²¼¤µ¤¤¡£\n"
+"\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹; ¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢ºâÃĤ¬È¯¹Ô¤¹¤ë\n"
+"GNU ¸øÍ­»ÈÍѵöÂú·ÀÌó½ñ¤ÎÂèÆóÈǤޤ¿¤Ï¤½¤ì°Ê¹ß¤ÎÈǤβ¼¤Ç²þÊÑ¡¦½¤Àµ¡¦ºÆÇÛÉÛ¤¬\n"
+"ǧ¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£\n"
+"\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤ÏÊØÍø¤Ë»È¤Ã¤Æ¤â¤é¤¨¤ë¤è¤¦¤ËÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢\n"
+"´°Á´¤Ë̵ÊݾڤǤ¹; ¾¦ÍÑÍøÍѤޤ¿¤Ï¤¢¤ëÆÃÄê¤ÎÌÜŪ¤Ë¤ª¤±¤ëŬ¹çÀ­¤ÎÊݾڤâ\n"
+"¤¢¤ê¤Þ¤»¤ó¡£¾ÜºÙ¤Ï GNU ¸øÍ­»ÈÍѵöÂú·ÀÌó½ñ¤ò¤´Í÷²¼¤µ¤¤¡£\n"
+"\n"
+"µ®Êý¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ËŬ±þ¤·¤¿ GNU ¸øÍ­»ÈÍѵöÂú·ÀÌó½ñ¤Î¥³¥Ô¡¼¤ò\n"
+"¼õ¤±¼è¤ëɬÍפ¬¤¢¤ê¤Þ¤¹; ¤â¤·¼õ¤±¼è¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢\n"
+"Free Software Foundation, Inc., 56 Temple Place - \n"
+"Suite 330, Boston, MA 02111-1307, USA ¤Þ¤ÇÏ¢Íí¤·¤Æ²¼¤µ¤¤¡£\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "¥×¥ê¥ó¥¿¤ÎÀßÄê"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr "¤ª»È¤¤¤Î¥×¥ê¥ó¥¿ (¥×¥ê¥ó¥¿¤Î·¿¼°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó) ̾¤òÁªÂò¤·¤Þ¤¹¡£"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "¥×¥ê¥ó¥¿¤ÎÁªÂò..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr "¥×¥ê¥ó¥¿¤Î·¿¼°¤È PPD ¥Õ¥¡¥¤¥ë¡¢°õºþ¥³¥Þ¥ó¥É¤òÁªÂò¤·¤Þ¤¹¡£"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "¿·¤·¤¤¥×¥ê¥ó¥¿..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"¿·µ¬¤ËÏÀÍý¥×¥ê¥ó¥¿¤òÄêµÁ¤·¤Þ¤¹¡£¤³¤ì¤Ï¼¡²ó»ÈÍѤ¹¤ë¤¿¤á¤Ë³Ð¤¨¤Æ¤ª¤­¤¿¤¤ÀßÄê̾"
+"¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "°õºþ¤¹¤ëÍÑ»æ¤Î¥µ¥¤¥º¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Íѻ極¥¤¥º:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "À£Ë¡:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Éý:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "°õºþ¤¹¤ëÍÑ»æ¤ÎÉý¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "¹â¤µ:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "°õºþ¤¹¤ëÍÑ»æ¤Î¹â¤µ¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "°õºþ¤¹¤ëÍÑ»æ¤Î¼ïÎà¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "ÍÑ»æ¤Î¼ïÎà:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "°õºþ»þ¤Îµë»æÊý¼°¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "µë»æÊýË¡:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "°õºþ»þ¤Î¥¤¥ó¥¯¤Î¼ïÎà¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "¥¤¥ó¥¯¤Î¼ïÎà:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "°õºþ»þ¤Î²òÁüÅÙ¤ÈÉʼÁ¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "²òÁüÅÙ:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "²èÁü¤Î¥µ¥¤¥º"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "³ÈÂç½Ì¾®:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "²èÁü¥µ¥¤¥º¤Î³ÈÂç½Ì¾®¤ò¹Ô¤¤¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"³ÈÂç½Ì¾®¤Îñ°Ì¤È¤·¤Æ¡¢Íѻ極¥¤¥º¤ËÂФ¹¤ëɴʬΨ (ÈæΨ) ¤«¡¢¥É¥Ã¥È¿ô/¥¤¥ó¥Á¤òÁª"
+"Âò¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "ÈæΨ"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "Íѻ極¥¤¥º¤ò 100 ¤È¤·¤¿¾ì¹ç¤ÎÈæΨ¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "²èÁü¤Î¥É¥Ã¥È¿ô/¥¤¥ó¥Á¤Ç¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "°õºþ»þ¤ÎÉý¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "°õºþ»þ¤Î¹â¤µ¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "ñ°Ì:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "°õºþ»þ¤Î´ðËÜñ°Ì¤òÁªÂò¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "¥¤¥ó¥Á"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "´ðËÜñ°Ì¤ò¥¤¥ó¥Á¤Ë¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "¥»¥ó¥Á¥á¡¼¥È¥ë"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "´ðËÜñ°Ì¤ò¥»¥ó¥Á¥á¡¼¥È¥ë¤Ë¤·¤Þ¤¹¡£"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"¥ª¥ê¥¸¥Ê¥ë¤Î\n"
+"¥µ¥¤¥º¤ÎÍøÍÑ"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "²èÁü¤Î¥ª¥ê¥¸¥Ê¥ë¡¦¥µ¥¤¥º¤ò°õºþ¥µ¥¤¥º¤Ë¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "²èÁü / ½ÐÎÏÀßÄê"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "²èÁü¤Î¼ïÎà:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "°õºþ¤¹¤ë²èÁü¤Î¼ïÎफ¤é½ÐÎÏ·ë²Ì¤òºÇŬ²½¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "¥Æ¥­¥¹¥È¤ä¥é¥¤¥ó¥¢¡¼¥È¸þ¤±¤Ë°ìÈÖÌÀ¤ë¤¯¹â®°õºþ¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr "³Ê»Ò¾å¤Î¿§¤Ç¹½À®¤µ¤ì¤¿²èÁü¤òºÇŬ²½¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Ä㮤Ǥ¹¤¬¡¢Ï¢Â³¤·¤¿¥È¡¼¥ó²èÁü¤ä¼Ì¿¿¸þ¤±¤Ë¤â¤Ã¤È¤âÀºÌ©¤Ç³ê¤é¤«¤Ë¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "½ÐÎϤμïÎà:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "½ÐÎϤ¹¤ë·ÁÂÖ¤òÁªÂò¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "¥«¥é¡¼"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "¥«¥é¡¼¤Ç°õºþ¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "¥°¥ì¡¼¥¹¥±¡¼¥ë"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "¹õ¥¤¥ó¥¯¤ò»È¤Ã¤Æ¥°¥ì¡¼¤Î±Æ¤òÉÕ¤±¤Æ°õºþ¤·¤Þ¤¹¡£"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "¹õ¤ÈÇò"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "¹õ¿§¤ÈÇò¿§¤ò»È¤Ã¤Æ°õºþ¤·¤Þ¤¹ (¥«¥é¡¼¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£±Æ¤âÉÕ¤­¤Þ¤»¤ó)¡£"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "½ÐÎϤÎÄ´À°..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+"¥«¥é¡¼¥Ð¥é¥ó¥¹¡¢ÌÀ¤ë¤µ¡¢¥³¥ó¥È¥é¥¹¥È¡¢ºÌÅ٤ȥǥ£¥¶¥ê¥ó¥°Êý¼°¤òÄ´À°¤·¤Þ¤¹¡£"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "°õºþÃæ..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/File/°õºþ..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "¥Õ¥¡¥¤¥ë"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "¤ª¤«¤·¤Ê¥«¥é¡¼¶õ´Ö: bps %d ¥Á¥ã¥ó¥Í¥ë %d ¶õ´Ö %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Äã¥ì¥Ù¥ë¥Ð¥Ã¥Õ¥¡¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "¥Ñ¥é¥á¡¼¥¿ %s ¤ÏÈϰϳ°¤Ç¤¹ (ÃÍ %f, ºÇ¾®ÃÍ %f, ºÇÂçÃÍ %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "¥Ñ¥é¥á¡¼¥¿ %s=%s (¤ª¤½¤é¤¯¿ôÃÍ) ¤ò²òÀϤǤ­¤Þ¤»¤ó\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "¥Ñ¥é¥á¡¼¥¿ %s ¤ÏÈϰϳ°¤Ç¤¹ (ÃÍ %d, ºÇ¾®ÃÍ %d, ºÇÂçÃÍ %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "¥×¥ê¥ó¥¿¤ò -s·¿¼° ¤ò»È¤Ã¤Æ»ØÄꤷ¤Æ²¼¤µ¤¤\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "¥×¥ê¥ó¥¿ %s ¤ÏÉÔÌÀ¤Ê·¿¼°¤Ç¤¹\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó %s ¤Ç¤¹\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f / %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header ¤Ë¼ºÇÔ %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init ¤Ë¼ºÇÔ %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò³«¤±¤Þ¤»¤ó: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "¥×¥ê¥ó¥¿ %s ¤¬ÉÔÌÀ¤Ç¤¹\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "¤ª¤«¤·¤Ê¥Ñ¥é¥á¡¼¥¿; ³¹Ô¤Ç¤­¤Þ¤»¤ó¡ª\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "%.0f ¤Ç¼¡¤ÎÄã¥ì¥Ù¥ë¥Õ¥£¡¼¥ë¥É¤ò¼èÆÀ¤·¤Þ¤¹\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s ¤«¤éÆɤ߹þ¤á¤Þ¤»¤ó: %s\n"
diff --git a/po/nb.gmo b/po/nb.gmo
new file mode 100644
index 0000000..db1e002
--- /dev/null
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..8de5680
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,3282 @@
+# Norwegian/Bokmaal translation of gimp-print.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Kjartan Maraas <kmaraas@gnome.org>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 0.3\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2002-07-01 19:36+0200\n"
+"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
+"Language-Team: Norwegian/Bokmaal <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: flagget `%s' er flertydig\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: flagget `--%s' tillater ikke argumenter\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: flagget `%c%s' tillater ikke argumenter\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: flagget `%s' krever et argument\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ukjent flagg `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ukjent flagg `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ulovlig flagg -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ugyldig flagg -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: flagget krever et argument -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: flagget `-W %s' er flertydig\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: flagget `-W %s' tillater ikke argumenter\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Vanlig papir"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Gjennomsiktighet"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr ""
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr ""
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Konvolutt"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Høyoppløsningspapir"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr ""
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Glanset fotopapir"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Glansete fotokort"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Profesjonelt fotopapir"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Annet"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr ""
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Manuell med pause"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Manuell uten pause"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Sort"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY-farge"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK-farge"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Foto CcMmY-farge"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Foto CcMmYK-farge"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr ""
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Ordnet"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Rask"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Meget rask"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr ""
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr ""
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+#, fuzzy
+msgid "Seven Color Photo"
+msgstr "Stylus Color Pro"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+#, fuzzy
+msgid "Two Level Grayscale"
+msgstr "Gråtoner"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+#, fuzzy
+msgid "Plain Paper Fast Load"
+msgstr "Vanlig papir"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Postkort"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Glanset film"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Konvolutter"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Matt papir"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Papir for blekkskriver"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Papir med fotokvalitet for blekkskriver"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Fotopapir"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Vanlig papir"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+#, fuzzy
+msgid "360 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+#, fuzzy
+msgid "720 x 360 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+#, fuzzy
+msgid "720 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+#, fuzzy
+msgid "1440 x 720 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+#, fuzzy
+msgid "2880 x 720 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+#, fuzzy
+msgid "1440 x 1440 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+#, fuzzy
+msgid "2880 x 1440 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4102
+#, fuzzy
+msgid "360 DPI FOL2"
+msgstr "600 DPI"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4106
+#, fuzzy
+msgid "360 DPI MW2"
+msgstr "600 DPI"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4119
+#, fuzzy
+msgid "720 x 360 DPI FOL"
+msgstr "1200x600 DPI"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4123
+#, fuzzy
+msgid "720 x 360 DPI FOL2"
+msgstr "2400x600 DPI"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4127
+#, fuzzy
+msgid "720 x 360 DPI MW2"
+msgstr "1200x600 DPI"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4175
+#, fuzzy
+msgid "1440 x 1440 DPI FOL"
+msgstr "150x150 DPI"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Autovelg"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr ""
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr ""
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr ""
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "testutskrift"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Skriv ut"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr ""
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr ""
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Gjennomsiktighet"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr ""
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr ""
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuell"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Skuff 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Skuff 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Skuff 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Skuff 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Portabel arkmater"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr ""
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Skuff"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Alternativ kilde"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Autovelg"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 DPI monokrom"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr ""
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr ""
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr ""
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr ""
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr ""
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr ""
+
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr ""
+
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr ""
+
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr ""
+
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr ""
+
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "Overføring til T-skjorte"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr ""
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr ""
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr ""
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr ""
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr ""
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr ""
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr ""
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr ""
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr ""
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr ""
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr ""
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr ""
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr ""
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr ""
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr ""
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr ""
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr ""
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr ""
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr ""
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 invitasjon"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr ""
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Egendefinert"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr ""
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s utenfor området (verdi %f, min %f, maks %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s utenfor området (verdi %d, min %d, maks %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Skriver støtter ikke fargeutskrift\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Bildestørrelsen er ikke gyldig\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Toppmargen må ikke være mindre enn null\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Venstre marg må ikke være mindre enn null\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s er ikke en gyldig dither-algoritme\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Norwegian"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin1"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Medietype"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Mediekilde"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Oppløsning"
+
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Skriv ut"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Bildetype"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Lineær"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Farge"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Fotografi"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Dither-algoritme"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Blekktype"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr ""
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 770"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Du kan kun spesifisere én skriver eller rå enhet."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Du kan kun oppgi én skrivermodell."
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Ukjent flagg %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Kan ikke åpne enhet %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Kan ikke skrive til skriver %s med %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Kan ikke sende kommando til skriver\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Kan ikke lese fra %s: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Cyan"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Magenta"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Gul"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Lys cyan"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Lys magenta"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Du må bruke en rå enhet for å hente blekknivå.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Kan ikke åpne %s med lese-/skriverettigheter: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Kan ikke skrive til %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Kan ikke tolke utskrift fra skriver\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Blekkfarge"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Prosent gjenstående"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Du må bruke en rå enhet for å identifisere skriveren.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Skriverstatus krever bruk av en rå enhet.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Renser hoder...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr "Kjører «nozzle»-sjekk, sjekk at det er papir i skriveren.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Kan ikke sende kommando til skriveren, avslutter.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Prøver å finne identifisere skrivermodell..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"Kan ikke åpne %s med lese-/skriverettigheter: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Kan ikke skrive til %s: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Kan ikke finne skrivertype.\n"
+"Vennligst bruk -m for å spesifisere din skrivermodell.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "Skrivermodell %s er ukjent.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr ">"
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"Vennligst bekreft at du vil avslutte uten å lagre ved å skrive «q» igjen:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"OK, skriveren er justert, men justeringen er ikke lagret.\n"
+"Hvis du ønsker å lagre justeringen må d\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Vennligst bekreft at du vil gjenta justeringsprosessen ved å\n"
+"skrive «r»:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Gjentar justeringsprosessen.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "I ferd med å lagre innstillinger..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "feilet!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "fullført!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Innstillingene for justering er lagret til skriveren.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Kommandoen ble ikke gjenkjent.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "Siste kommando ble ikke bekreftet.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Trykk linjeskift for å fortsette > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Gjennomgang #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Vennligst sett inn et nytt ark.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Tallet er utenfor gyldig område!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Kan ikke forstå det du skrev inn!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Prøver å sette justering..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "fullført.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "Skriver %s krever ikke justering av fargehode.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Feil i inndata\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Sett til standardverdier"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Lukk"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Forhåndsvisning av bilde"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Lysstyrke:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Sett kontrast for utskriften"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Cyan:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Magenta:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Gul:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Metning:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Tetthet:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Dither-størrelse:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Skriv ut v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Om"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Skriv ut og\n"
+"lagre innstillinger"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Lagre\n"
+"innstillinger"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Skriv ut"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Forhåndsvisning"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Posisjon"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Auto"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Portrett"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Landskap"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Opp-ned"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Landskap"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Orientering:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Venstre:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Avstand fra venstre kant av arket til bildet"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Øverst:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Avstand fra toppen av arket til bildet"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Høyre:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "Avstand fra venstre kant av arket til høyre kant av bildet"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Kant:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Avstand fra høyre kant av arket til bildet"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Nederst:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "Avstand fra toppen av arket til nedre kant av bildet"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Nedre kant"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Avstand fra nedre kant av arket til bildet"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Sentrer:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Vertikalt"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Sentrer bildet vertikalt på arket"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Begge"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Sentrer bildet på arket"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Horisontalt"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Sentrer bildet horisontalt på arket"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Sett opp skriver"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Raskt heltall"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Velg din skrivermodell"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD fil:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Skriv inn korrekt PPD-filnavn for din skriver"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Bla gjennom"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Velg korrekt PPD-filnavn for din skriver"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Kommando:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "Skriv ut til fil?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD/Fil?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Definer ny skriver"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Skrivernavn:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Skriv inn navnet du ønsker å gi til denne logiske skriveren"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Om Gimp-Print"
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Gimp-Print versjon "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Innstillinger for parametere"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Sett opp skriver..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Ny skriver..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Mediestørrelse:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Størrelse:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Bredde:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Bredde på papiret du skal skrive ut på"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Høyde:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Høyde på papiret du skal skrive ut på"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Type media du skal skrive ut på"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Medietype:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Mediekilde:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Type blekk i skriveren"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Type:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Oppløsning og kvalitet på utskriften"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Oppløsning:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Størrelse"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Skalering"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Sett skalering (størrelse) på bildet"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Prosent"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "Skaler utskriften til størrelsen på papiret"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "Skaler utskriften til antall punkter per tomme"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Sett bredde på utskriften"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Sett høyde for utskriften"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Enheter:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "Velg basis måleenhet for utskrift"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Tomme"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Sett basis måleenhet til tommer"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Sett basis måleenhet til centimeter"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Bruk opprinnelig\n"
+"bildestørrelse"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "Sett størrelsen på utskriften til størrelsen på bildet"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Innstillinger for bilde / utskrift"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Bildetype:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Utskriftstype:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Velg ønsket type for utdata"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Farger"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Fargeutskrift"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Gråtoner"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr ""
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Sort-hvitt"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr ""
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Juster utskrift..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Skriver ut..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Fil/Skriv ut..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Fil"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Ingen rad for buffer\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Skriver %s er ikke en kjent modell\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Ukjent flagg %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f av %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init feilet %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Kan ikke åpne fildeskriptor: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Kan ikke åpne %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Ukjent skriver %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Ugyldige parametere; kan ikke fortsette!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Henting av neste rad feilet ved %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Kan ikke lese fra %s: %s\n"
diff --git a/po/nl.gmo b/po/nl.gmo
new file mode 100644
index 0000000..0ae5186
--- /dev/null
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..9017d27
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,3563 @@
+# Dutch translation of gimp-print.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Vincent van Adrighem <vincent@dirck.mine.nu>, 2002.
+# Hylke Witjens <hylke@wwd.nl>, 2002.
+# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 4.2.7-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2004-04-18 15:47+0200\n"
+"Last-Translator: Elros Cyriatan <cyriatan@fastmail.fm>\n"
+"Language-Team: Dutch <vertaling@nl.linux.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Report-Msgid-Bugs-To: \n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: optie `%s' is dubbelzinnig\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: optie `--%s' staat geen argument toe\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: optie `%c%s' staat geen argument toe\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: optie `%s' vereist een argument\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: onbekende optie `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: onbekende optie `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: onjuiste optie -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: ongeldige optie -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: optie vereist een argument -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: optie `-W %s' is dubbelzinnig\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: optie `-W %s' staat geen argument toe\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Gewoon papier"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Transparanten"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr ""
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr ""
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Envelop"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Hoge-resolutiepapier"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "T-Shirt opstrijkvellen"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "Hoogglans papier"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Glanzend fotopapier"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Glanzende fotokaarten"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Professioneel fotopapier"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Overige"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Automatische papierlader"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Handmatig met pauze"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Handmatig zonder pauze"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Zwart"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY kleuren"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK Kleuren"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Foto CcMmY kleuren"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Foto CcMmYK Kleuren"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Aanpassend hybride"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Geordend"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Snel"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Zeer snel"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Hybride Floyd-Steinberg"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Drie kleuren composiet"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Vier kleuren standaard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Zes kleuren foto"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Vijf kleuren foto composiet"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Zeven kleuren verbeterd"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Zes kleuren verbeterd composiet"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Zeven-kleuren foto"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Dubbelniveau grijswaarden"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Viertoons"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "Gewoon papier snellader"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Briefkaart"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Glanzende laag"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Enveloppen"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Mat papier"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Inkjet-papier"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Fotokwaliteit Inkjet-papier"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Fotopapier"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Premium glanzend fotopapier"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "Premium Luster Photo Papier"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Fotokwaliteit glanzend papier"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Ilford Heavy Paper"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife papier"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 x 90 DPI Snel besparend conceptversie"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 x 120 DPI Besparend conceptversie"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI besparend conceptversie"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 x 240 DPI Conceptversie"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 x 180 DPI Conceptversie"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr "360 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 DPI Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr "720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI Hoge kwaliteit"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI Hoge kwaliteit Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Hoogste kwaliteit"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 DPI Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI Hoogste kwaliteit"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 DPI Unidirectioneel"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI Hoogste Kwaliteit"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI Volledige overlap"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI Volledige overlap Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 x 360 DPI FOL Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 x 360 DPI FOL2 Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 x 360 DPI MW2 Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI Volledige overlap"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI Volledige overlap Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI Vierslags"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI Vierslags Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 DPI Vierslags"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 DPI Vierslags Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 DPI FOL Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI Vierslags"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 DPI Vierslags Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI FOL Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI Vierslags"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 DPI Vierslags Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 DPI Interleave Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI FOL Unidirectioneel"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI Vierslags"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 DPI Vierslags Unidirectioneel"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standaard"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Rolinvoer"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr "Papierrol (elke pagina afknippen)"
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr "Papierrol (niet afknippen)"
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Automatisch Selecteren"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "Handmatige keuze"
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI x 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI Hoge kwaliteit"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI unidirectioneel"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI hoge kwaliteit"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI Hoogste kwaliteit"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI Unidirectioneel"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI x 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI x 1200 DPI hoge kwaliteit"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI x 1200 DPI hoogste kwaliteit"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "Test afdruk"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Gewoon"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr ""
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Premium"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Glanzend foto"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Transparantie"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Sneldrogend foto"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Sneldrogend transparant"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Handmatig"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Lade 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Lade 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Lade 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Lade 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Draagbare Sheet Feeder"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "Desktop Sheet Feeder"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Lade"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Optionele Bron"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Automatisch Selecteren"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 DPI monochrome"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Kleur + Zwarte patronen"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Kleur + Foto patronen"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Epson 4x6 Fotopapier"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr "Super A0"
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+msgid "Super B0 JIS"
+msgstr "Super B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "T-Shirt doordrukken"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "T-Shirt doordrukken"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "T-Shirt doordrukken"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "T-Shirt doordrukken"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "T-Shirt doordrukken"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "American foolscap"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "European foolscap"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Large Crown Quarto"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Large Crown Octavo"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Smalle paperback"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Penguin smalle paperback"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Penguin grootte paperback"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki Kaart"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku Kaart"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Japanese long envelop #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Japanse long envelop #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Japanse Kaku envelop #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitation"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+#, fuzzy
+msgid "Monarch Envelope"
+msgstr "Envelop"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Eigen"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "89 mm Roll Paper"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "4 Inch Roll Paper"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "5 Inch Roll Paper"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "210 mm Roll Paper"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "13 Inch Roll Paper"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "22 Inch Roll Paper"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "24 Inch Roll Paper"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "36 Inch Roll Paper"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "44 Inch Roll Paper"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s is geen geldige parameter van soort %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s buiten bereik (waarde %f, min %f, max%f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s buiten bereik (waarde %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Printer ondersteund geen kleuren\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Afbeelding grootte is niet juist\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Bovenmarge mag niet minder dan nul zijn\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Linkermarge mag niet minder dan nul zijn\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s is geen geldige dither algorithme\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Engels"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin1"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Mediumsoort"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Medium bron"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Resolutie"
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-print"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Afbeeldingssoort"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Lijntekening"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Ongerasterde kleuren"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Foto"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Benaderalgoritme"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Inktsoort"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Escputil versie"
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil komt ABSOLUUT ZONDER GARANTIE; typ voor details 'escputil -l'\n"
+"Dit is vrije software, en het staat u vrij het te verspreiden onder\n"
+"bepaalde voorwaarden; typ 'escputil -l' voor details.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Dit programma is vrije software; u kunt het verspreiden en/of wijzigen "
+"onder\n"
+"de voorwaarden van de GNU General Public License zoals gepubliceerd door\n"
+"de Free Software Foundation; ofwel versie 2 van de Licentie, ofwel (als u "
+"dat\n"
+"wil) een nieuwe versie.\n"
+"\n"
+"Dit programma wordt verspreid met de hoop dat het nuttig is, maar ZONDER\n"
+"ENIGE GARANTIE; zelfs zonder de geïmpliceerde garantie voor VERKOOPBAARHEID\n"
+"of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de GNU General Public License\n"
+"voor meer details.\n"
+"\n"
+"U moet een kopie hebben ontvangen van de GNU General Public License\n"
+"samen met dit programma; als dit niet zo is, schrijf a.u.b. de Free "
+"Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"Gebruik: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r apparaat] [-u] [-q] [-m model]\n"
+"Onderhoud uitvoeren op EPSON Stylus (R) printers.\n"
+"Voorbeelden: escputil --clean-head --printer stpex-op-derde-verdieping\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Opdrachten:\n"
+" -c|--clean-head De afdrukkop schoonmaken.\n"
+" -n|--nozzle-check Een pijpjes-testpatroon afdrukken.\n"
+" Vieze of overlopende pijpjes zien er uit als gaten in "
+"het\n"
+" in het patroon. Als u gaten ziet, is het nodig om "
+"de\n"
+" afdrukkop schoon te maken.\n"
+" -a|--align-head De afdrukkop uitlijnen. PAS OP: Verkeerd gebruik\n"
+" van deze functie kan resulteren in een slechte "
+"afdrukkwaliteit\n"
+" en/of schade aan de printer.\n"
+" -o|--align-color De kleuren afdrukkop uitlijnen (alleen Stylus Color "
+"480\n"
+" en 580). PAS OP: Verkeerd gebruik van deze functie "
+"kan\n"
+" resulteren in een slechte afdrukkwaliteit en/of "
+"schade aan\n"
+" de printer.\n"
+" -s|--status De status van de printer opvragen.\n"
+" -i|--ink-level Het inktniveau van de printer opvragen. Dit vereist\n"
+" lezen/schrijven-toegang tot het ruwe printer "
+"apparaat.\n"
+" -d|--identify Merk- en modelinformatie van de printer opvragen.\n"
+" Dit vereist lezen/schrijven-toegang tot het ruwe "
+"printer\n"
+" apparaat.\n"
+" -l|--license De licentie/garantievoorwaarden van dit programma\n"
+" weergeven.\n"
+" -M|--list-models De beschikbare printermodellen opsommen.\n"
+" -h|--help Dit hulpbericht weergeven.\n"
+" Opties:\n"
+" -P|--printer-name De naam van de printerwachtrij opgeven waarop\n"
+" gewerkt moet worden. Standaard is dit de standaard\n"
+" systeemprinter.\n"
+" -r|--raw-device De naam van het apparaat opgeven waarnaar direct\n"
+" moet worden geschreven, in plaats van dit via de "
+"wachtrij\n"
+" te laten gaan.\n"
+" -u|--new De printer is een nieuwe printer (Stylus Color 740 "
+"of\n"
+" nieuwer).\n"
+" -q|--quiet Begintbericht onderdrukken.\n"
+" -m|--model Het precieze printermodel opgeven voor "
+"kopuitlijning.\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"Gebruik: escputil [OPTIES] [OPDRACHT]\n"
+"Gebruik: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r apparaat] [-u] [-q] [-m model]\n"
+"Onderhoud uitvoeren op EPSON Stylus (R) printers.\n"
+"Voorbeelden: escputil -c -P stpex-op-derde-verdieping\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Opdrachten:\n"
+" -c De afdrukkop schoonmaken.\n"
+" -n Een pijpjes-testpatroon afdrukken.\n"
+" Vieze of overlopende pijpjes zien er in het patroon\n"
+" uit als gaten. Als u gaten ziet, is het nodig om de\n"
+" afdrukkop schoon te maken.\n"
+" -a De afdrukkop uitlijnen. PAS OP: Verkeerd gebruik van\n"
+" deze functie kan resulteren in slechte afdrukkwaliteit\n"
+" en/of schade aan de printer.\n"
+" -o De kleuren afdrukkop uitlijnen (alleen Stylus Color 480\n"
+" en 580). PAS OP: Verkeerd gebruik van deze functie kan\n"
+" resulteren in slechte afdrukkwaliteit en/of schade aan\n"
+" de printer.\n"
+" -s De status van de printer opvragen.\n"
+" -i Het inktniveau van de printer opvragen. Dit vereist\n"
+" lezen/schrijven-toegang tot het ruwe printer apparaat.\n"
+" -d Merk- en modelinformatie van printer opvragen. Dit\n"
+" vereist lezen/schrijven-toegang tot het ruwe printer\n"
+" apparaat.\n"
+" -l De licentie/garantievoorwaarden van dit programma\n"
+" weergeven.\n"
+" -M De beschikbare printermodellen opsommen.\n"
+" -h Dit hulpbericht weergeven.\n"
+" Opties:\n"
+" -P De naam van de printerwachtrij opgeven waarmee moet\n"
+" worden gewerkt. Standaard is de standaard systeemprinter.\n"
+" -r De naam van het apparaat opgeven waarnaar direct moet\n"
+" worden geschrevne, in plaats van dat dit via een wachtrij\n"
+" gaat.\n"
+" -u De printer is een nieuwe printer (Stylus Color 740 of nieuwer).\n"
+" -q Het beginbericht onderdrukken.\n"
+" -m Het precieze printermodel opgeven voor kopuitlijning.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr "Stylus C43sx"
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr "Stylus C43ux"
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr "Stylus C44sx"
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr "Stylus C44ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr "Stylus C63"
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr "Stylus C64"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr "Stylus C83"
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr "Stylus C84"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 935"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr "Stylus CX-3100"
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr "Stylus CX-3200"
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr "Stylus CX-5100"
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr "Stylus CX-5200"
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr "Stylus CX-6300"
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr "Stylus CX-6400"
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr "Stylus CX-8300"
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr "Stylus CX-8400"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "U kunt slechts één printer of ruw apparaat opgeven."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "U mag maar één printermodel specificeren"
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Onbekende optie %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Kan apparaat %s:%s niet openen\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Kan niet printen op printer %s met %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Kan de opdracht niet versturen naar de printer\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr "Time-out bij lezen van printer\n"
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Kan niet lezen van %s: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Cyaan"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Magenta"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Geel"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Licht Cyaan"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Licht Magenta"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr "Zwart/Donkergeel"
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr ""
+"Het verkrijgen van inktniveaus vereist het gebruik van een ruw apparaat.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Kan %s niet openen lezen/schrijven: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Kan niet schrijven naar %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Kan de uitvoer van de printer niet verwerken\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Kleureninkt"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Overblijvend percentage"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Printer identificatie vereist het gebruik van een ruw apparaat.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Printer status heeft een raw device nodig.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Bezig met het schoonmaken van de koppen..\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+"Bezig met pijpjescontrole, let er alstublieft op dat er papier in de printer "
+"ligt.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"Leest u alstublieft deze instructies nauwkeurig door, voordat u verder "
+"gaat.\n"
+"\n"
+"U kunt met deze applicatie de koppen van uw Epson Stylus inkjet\n"
+"printer uitlijnen. Onjuist gebruik van deze applicatie kan leiden tot\n"
+"verlies in kwaliteit en het kan zelfs uw printer beschadigen. Deze "
+"applicatie\n"
+"is niet gecontroleerd op fouten door Seiko Epson, en wordt geleverd zonder\n"
+"enige vorm van garantie. het gebruik is volledig op eigen risico.\n"
+"\n"
+"Het programma zal %d patronen afdrukken. Elk patroon lijkt erg op de ander.\n"
+"Het patroon bestaat uit een serie paren van verticale lijnen die elkaar "
+"overlappen.\n"
+"Onder elk paar met lijnen staat een nummer tussen %d en %d.\n"
+"\n"
+"Wanneer u de lijnen bekijkt, moet u zoeken naar het paar die het beste is "
+"uitgelijnd,\n"
+"met andere woorden, diegen die samen de beste enkele lijn vormen.\n"
+"Het gebruik van een loep of vergrootglas wordt aangeraden voor de\n"
+"meest critische inspectie. Er wordt ook aangeraden om een goede kwaliteit\n"
+"papier te gebruiken, zodat de lijnen mooi strak zijn, en niet over het "
+"papier\n"
+"uitvloeien. Wanneer u het nummer heeft uitgekozen, plaats dan het papier "
+"weer\n"
+"terug erug in de printer voordat u het nummer intypt.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"Lees deze instructies heel goed voor, voodat je doorgaat.\n"
+"\n"
+"Dit programma laat je de printer head van je Epson Stylus inktjet printer\n"
+"uitlijnen. Als je dit programma verkeerd gebruikt kan je print kwaliteit "
+"naar\n"
+"beneden gaan, en mogelijk je printer beschadigen. Dit programma is niet\n"
+"nagekeken door Seiko Epson voor fouten, en is aan jou aangeboden zonder\n"
+"enige garantie. Het volledige risico van het gebruiken van dit programma is\n"
+"voor jou.\n"
+"\n"
+"Dit programma print een test patroon dat bestaat uit een aantal paren van\n"
+"verticale lijnen die elkaar overlappen. Onder elk paar lijnen staat een "
+"nummer\n"
+"tussen de %d en %d.\n"
+"\n"
+"Als je deze paren bekijkt, zal je een paar lijnen vinden dat het beste is\n"
+"uitgelijnt, hetgeen betekend, dat de beste verticale lijn tesamen vormt.\n"
+"Bekijk de lijnen zeer zorgvuldig om het beste paar uit te zoeken. Het "
+"gebruik\n"
+"van een loupe of vergrootglas is aanbevolen voor de meest kritische\n"
+"inspectie. Het is ook aan te raden om voor deze test goede kwaliteit papier\n"
+"te gebruiken zodat de lijnen goed gevormt zijn en niet door het papier "
+"drukken.\n"
+"Nadat je het nummer hebt gekozen, dat het beste overeenkomt, plaats het\n"
+"papier terug in de printer voordat je het nummer intikt.\n"
+"\n"
+"Nadat het uitlijningspatroon is geprint, zal het nog een keer geprint "
+"worden\n"
+"Je zou moeten vinden dat het meest middelste paar (#%d van de %d) het beste "
+"is.\n"
+"Je zal dan de mogelijkheid krijgen om het re(s)ultaar in de printer op te "
+"slaan,\n"
+"he(r)halen van het proces, of te (q)uiten zonder op te slaan. Stoppen zal "
+"niet\n"
+"de vorige instellingen terugzetten, maar de printer aan en uit zetten zal "
+"dat\n"
+"wel doen. Als je stopt, zul je het hele ciruit weer opnieuw moeten "
+"doorlopen\n"
+"om de resultaten op te slaan. Het is essentieel dat je de printer niet "
+"uitzet\n"
+"tijdens deze procedure.\n"
+"\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Kan de opdracht niet naar de printer sturen, afsluiten.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"Printer uitlijnen moet gedaan worden met een raw device of ander\n"
+"moet de optie -m gebruikt worden om een printer te specificeren.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Bezig met proberen printermodel op te sporen..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"kan %s niet openen voor lees/schrijf actie : %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Kan niet schrijven naar %s:%s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Kan printersoort niet vaststellen.\n"
+"Gebruik alstublieft -m om uw printermodel op te geven.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "Printer model %s is niet bekend.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Controleer de uiteindelijke uitvoer alstublieft heel nauwkeurig om\n"
+"u ervan te verzekeren dat de printer goed is uitgelijnd. U kunt nu:\n"
+" (s) de resultaten in de printer opslaan,\n"
+" (q) afsluiten zonder de resultaten op te slaan, of\n"
+" (r) het gehele proces vanaf het begin herhalen.\n"
+"U zult worden gevraagd uw keuze te bevestigen.\n"
+"Wat wilt u doen (s, q, r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr ">"
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"Bevestig alstublieft door opnieuw 'q' in te voeren dat u wilt afsluiten "
+"zonder op te slaan.\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"OK, uw printer is uitgelijnd, maar de uitlijning is niet opgeslagen.\n"
+"Als u de uitlijning op wilt slaan, moet u dit proces herhalen.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Bevestig alstublieft door opnieuw 'r' in te voeren dat u het "
+"uitlijningsproces wilt herhalen.\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Herhaal de uitlijn procedure.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Dit zal de configuratie van uw printer permanent wijzigen.\n"
+"WAARSCHUWING: deze procedure is niet goed gekeurd door Seiko\n"
+"Epson, en kan uw printer beschadigen. Wilt u doorgaan?\n"
+"Bevestig alstublieft door opnieuw 's' in te voeren dat u de instellingen\n"
+"naar uw printer wilt opslaan:\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Bezig met schrijven van instellingen..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "mislukt!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"Uw instellingen werden niet succesvol weggeschreven. U moet de\n"
+"uitlijningsprocedure herhalen.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "Gelukt!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Uw uitlijningsinstellingen zijn op uw printer opgeslagen.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Onbekend commando.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "Laatste commando is niet bevestigd.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Deze procedure neemt aan dat uw printer een Epson %s is.\n"
+"Druk alstublieft nu op Ctrl-C als dit niet het model is van uw printer,\n"
+"en kies het echte printermodel.\n"
+"\n"
+"Leg alstublieft een vel papier in uw printer om de kopuitlijnings-\n"
+"procedure te beginnen.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Druk enter om door te gaan >"
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Bestudeer alstublieft de afdruk en kies het beste paar lijnen in elk "
+"patroon.\n"
+"Geef een paarnummer, '?' voor hulp of 'r' om de procedure te herhalen.\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Slag #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Leg alstublieft een nieuw vel papier in de printer.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Nummer valt buiten bereik!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Uw invoer was incorrect.\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "Het beste paar lijnen zou genummerd moeten zijn tussen 1 en %d.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Probeert uitlijning in te stellen."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "gelukt.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Kijk alstublieft na of de uitlijning klopt. Nadat het uitlijningspatroon\n"
+"weer opnieuw is afgedrukt, kijk ook na of het beste patroon voor elke\n"
+"lijn patroon %d is. Als het dat niet is, zult u de procedure moeten\n"
+"herhalen om de beste kwaliteit te krijgen.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"Lees deze instructies alstublieft heel nauwkeurig voordat u verder gaat.\n"
+"\n"
+"Dit programma laat u de kleuren afdrukkop van uw Epson Stylus inkjet\n"
+"printer uitlijnen. Verkeerd gebruik kan uw afdrukkwaliteit verslechteren\n"
+"en mogelijk uw printer beschadigen. Dit programma is niet door Seiko\n"
+"Epson gecontroleerd op correctheid, en wordt aangeboden zonder enige\n"
+"garantie. Het risico van het gebruik ligt geheel bij u.\n"
+"\n"
+"Dit programma drukt %d testpatronen over elkaar af op één vel papier.\n"
+"Dat wil zeggen, het drukt één patroon af en werpt dan de pagina uit. U\n"
+"moet dan het blad opnieuw in de printer leggen, en dan wordt nog een\n"
+"patroon afgedrukt. Elk patroon bestaat uit een aantal keuzes, genummerd\n"
+"tussen %d en %d.\n"
+"\n"
+"Als u de patronen bekijkt, dient u er een te vinden met de soepelste "
+"textuur\n"
+"(minste ``korreligheid''). Het is belangrijk om de patronen heel goed te\n"
+"bestuderen om de beste te kiezen. We raden aan om voor deze test\n"
+"Fotokwaliteit Inkjet Papier te gebruiken of vergelijkbaar hoge-"
+"kwaliteitspapier.\n"
+"Als u geen soepel patroon vindt, moet u de test herhalen.\n"
+"\n"
+"Als u de keuzes bestudeerd heeft en een patroon kiest, heeft u de keuze om\n"
+"(s) het resultaat op te slaan in de printer, (r) het proces te herhalen, of "
+"(q)\n"
+"af te sluiten zonder op te slaan. Afsluiten herstelt de vorige instellingen "
+"niet,\n"
+"maar de printer uit en weer aan zetten wel.. Als u afsluit, moet u het "
+"hele\n"
+"proces opnieuw doen als u later de resultaten wilt opslaan.\n"
+"Het is van essentieel belang dat u uw printer tijdens de procedure niet uit "
+"zet..\n"
+"\n"
+"WAARSCHUWING: DEZE FUNCTIE IS NOG NIET GETEST! Misschien werkt zij,\n"
+"misschien beschadigt zij uw printer!\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "Printer %s vereist geen kleurhoofd uitlijning.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+"Leg alstublieft hetzelfde uitlijningsvel opnieuw in de printer als\n"
+"deze klaar is met afdrukken.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Bekijk het uitlijningsvel en bepaal welk patroon het soepelst is.\n"
+"Dit patroon zal er het minst ``korrelig'' uitzien.\n"
+"Kies, als u geen soepel patroon kunt vinden, het getal voor het beste "
+"patroon\n"
+"en herhaal de procedure.\n"
+"Voer het patroongetal in, of '?' voor hulp.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "Het beste patroon moet genummerd zijn tussen 1 en %d.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Fout in invoer\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "Afdrukkleur aanpassen"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Standaardinstellingen gebruiken"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Sluiten"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Afdruk voorvertoning"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Helderheid:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"De helderheid van de afdruk instellen.\n"
+"0 is effen zwart, 2 is effen wit"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Contrast"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Het contrast van de afdruk instellen"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Cyaan:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "Pas de hoeveelheid cyaan aan"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Magenta:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "Pas de hoeveelheid magenta aan"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Geel:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "Pas de hoeveelheid geel aan"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Verzadiging:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"De verzadiging (kleurbalans) van de afdruk aanpassen\n"
+"Gebruik nul-verzadiging een grijswaarden uitvoer te produceren met kleuren "
+"en zwarte inkt"
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Dichtheid:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Pas de dichtheid (hoeveelheid inkt) van de afdruk. Verminder de dichtheid "
+"als de inkt door het papier heenkomt of vlekt; verhoog de dichtheid als "
+"zwarte stukken niet goed dicht zijn."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gamma:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"De gamma van de afdruk aanpassen. Grotere waarden produceren een over het "
+"algemeen helderdere afdruk, terwijl kleinere waarden in het algemeen een "
+"donkerdere afdruk geven. Zwart en wit blijven hetzelfde, in tegenstelling "
+"tot een aanpassing van de helderheid."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Benaderalgoritme:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"Het benaderalgoritme kiezen dat moet worden gebruikt.\n"
+"Aanpassend Hybride geeft gemiddeld de beste kwaliteit.\n"
+"Geordend is sneller en geeft voor foto's bijna net zo goede kwaliteit.\n"
+"Snel en Erg snel zijn behoorlijk sneller, en werken goed voor tekst en "
+"lijnen.\n"
+"Hybride Floyd-Steinberg geeft in het algemeen slechtere uitvoer."
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Afdrukken v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Info"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Afdrukken en\n"
+"instellingen opslaan"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Instellingen\n"
+"opslaan"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Afdrukken"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Voorbeeld"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"De afbeelding op de pagina positioneren.\n"
+"Klik en sleep met de eerste muisknop om de afbeelding te positioneren.\n"
+"Klik en sleep met de tweede muisknop om de afbeelding met grotere precieze "
+"te verplaatsen; elke verplaatsingsstap geeft een verplaatsing van één punt "
+"(1/72\", ofwel 0,35mm)\n"
+"Klik en sleep met de derde (middelste) muisknop om de afbeelding te "
+"verplaatsen in eenheden van de afbeeldingsgrootte.\n"
+"De Shift-toets ingedrukt houden tijdens klikken en slepen beperkt de "
+"afbeelding tot alleen horizontale of verticale beweging.\n"
+"Als u op een andere knop drukt tijdens het slepen met de muis, keert de "
+"afbeelding terug naar haar oorspronkelijke positie."
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Positie"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Automatisch"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Portret"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Landschap"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Ondersteboven"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Zee-landschap"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Kies de oriëntatie: portret, landschap, onderste boven of zeelandschap "
+"(landschap onderste boven)"
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Oriëntatie:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Links:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Afstand vanaf de linkerkant van het papier tot de afdruk"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Boven:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Afstand vanaf de bovenkant van het papier tot de afdruk"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Rechts:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr ""
+"Afstand vanaf de linkerkant van het papier tot de rechterkant van de afdruk"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Rechter grens:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Afstand vanaf de rechterkant van het papier tot de afdruk"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Onder:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr ""
+"Afstand van de bovenkant van het papier tot de onderkant van de afbeelding"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Ondergrens:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Afstand vanaf de onderkant van het papier tot de afdruk"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Midden X:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Verticaal"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Centreer het plaatje verticaal op het papier"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Beide"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Centreer het plaatje op het papier"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Horzintaal"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Centreer het plaatje horizontaal op het papier"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Stel Printer in"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Printer model:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Selecteer jouw printer model"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD Bestand:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Geef de juiste PPD bestandsnaam voor jouw printer"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Bladeren"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Kies de juiste PPD bestandsnaam voor jouw printer"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Opdracht:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Geef de juiste opdracht om naar uw printer af te drukken. Let op: Verwijder "
+"alstublieft niet de `-l` of `-oraw` uit de opdrachttekst, of het afdrukken "
+"zal waarschijnlijk mislukken!"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "Afdrukken Naar Bestand"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD Bestand?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Nieuwe printer definiëren"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Printer Naam:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Geef de naam die u wilt gebruiken voor deze logische printer"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Info over Gimp-Print"
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Gimp-Print Versie"
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"en de rest van het Gimp-print ontwikkelingsteam.\n"
+"\n"
+"Bezoek ook onze website op http://gimp-print.sourceforge.net.\n"
+"\n"
+"Dit programma is vrije software; u kunt het verspreiden en/of\n"
+"wijzigen onder de voorwaarden van de GNU General Public License\n"
+"zoals gepubliceerd door de Free Software Foundation; ofwel versie 2,\n"
+"ofwel (als u dat wil) een nieuwere versie.\n"
+"\n"
+"Dit programma wordt verspreid met de hoop dat het nuttig zal zijn,\n"
+"maar ZONDER ENIGE GARANTIE; zelfs zonder de geïmpliceerde garantie\n"
+"voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.\n"
+"Zie de GNU General Public License voor meer details.\n"
+"\n"
+"U moet een versie van de GNU General Public License hebben ontvangen\n"
+"samen met dit programma; schrijf als dit niet zo is a.u.b. de Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Printerinstellingen"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+"Kies de naam van de printer (niet de soort of het model) waarnaar u wilt "
+"afdrukken"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Instellen Printer..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Kies het printermodel, PPD bestand, en commando die gebruikt wordt om naar "
+"deze printer af te drukken."
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Nieuwe Printer..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Een nieuwe logische printer definiëren. Dit kan worden gebruikt om een "
+"verzameling instellingen die u voor toekomstig gebruik wilt bewaren een naam "
+"te geven."
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "Grootte van het papaier waarop u wenst af te drukken"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Mediumgrootte:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Afmetingen"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Breedte: "
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Breedte van het papier waarop u wenst af te drukken"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Hoogte: "
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Hoogte van het papier waarop u wenst af te drukken"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Het soort medium waarnaar u afdrukt"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Mediumsoort:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Bron (invoervak) van media waarnaar u afdrukt"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Mediumbron:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Soort inkt in de printer"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Inktsoort:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Resolutie en kwaliteit van de afdruk"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Resolutie:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Grootte"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Schaldn"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Geef de schaal (formaat) van het plaatje"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Kies of schaling moet worden gemeten als percentage van beschikbare "
+"paginagrootte of als aantal puntjes per inch (DPI)"
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Procent"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "De afdruk schalen naar de grootte van de pagina"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "De afdruk schalen naar het aantal puntjes per inch (DPI)"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Geef de breedte van de afdruk"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Geef de hoogte van de afdruk"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Eenheden"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "De basiseenheid voor afdrukken kiezen"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Duim"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "De basiseenheid voor metingen instellen op inches"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "De basiseenheid van metingen instellen op centimeters"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Oorspronkelijke afbeeldings-\n"
+"grootte gebruiken"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "De afdrukgrootte instellen op de grootte van de afbeelding"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Afbeelding / Uitvoer instellingen"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Afbeeldingssoort:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "De uitvoer optimaliseren voor het soort afbeelding dat wordt afgedrukt"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "Snelste en helderste kleur voor tekst en lijnafbeeldingen"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr ""
+"Het best voor afbeeldingen die worden gedomineerd door grote effen vlakken"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Langzaamste, maar meest precieze en soepele kleuren voor continue "
+"toonafbeeldingen en foto's"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Soort uitvoer:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Kies de gewenste soort uitvoer"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Kleur"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Kleuren uitvoer"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Grijswaarden"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "In grijstinten afdrukken met zwarte inkt"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Zwart en Wit"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Druk af in zwart en wit (Geen kleuren, geen grijs raster)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Uitvoer aanpassen..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+"Kleurbalans, helderheid, contrast, verzadiging en benaderalgoritme aanpassen"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Bezig met afdrukken..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Afbeelding>/Bestand/Afdrukken..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Bestand"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Slechte kleurruimte: bps %d kanalen %d ruimte %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Geen rijbuffer\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parameter %s ligt buiten bereik (Waarde %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Kan parameter %s=%s niet inlezen (er wordt een getal verwacht)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parameter %s ligt buiten het bereik (waarde %d, min %d, max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Printer moet gespecificeerd worden met -sMODEL\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Printer %s is geen bekend model\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Onbekende optie %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f van %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header mislukt %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init mislukt %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Kan bestandsbeschrijver niet openen: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Lukt niet om %s:%s te openen\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Onbekende printer %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Slechte parameters; kan niet doorgaan!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Opvragen van volgende rij mislukt bij %.0f\n"
diff --git a/po/no.gmo b/po/no.gmo
new file mode 100644
index 0000000..db1e002
--- /dev/null
+++ b/po/no.gmo
Binary files differ
diff --git a/po/no.po b/po/no.po
index 665d781..f48c3c1 100644
--- a/po/no.po
+++ b/po/no.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gimp-print 0.3\n"
-"POT-Creation-Date: 2001-11-24 10:41-0500\n"
-"PO-Revision-Date: 2001-10-14 20:53+0200\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2002-07-01 19:36+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian/Bokmaal <no@li.org>\n"
"MIME-Version: 1.0\n"
@@ -72,798 +72,884 @@ msgstr "%s: flagget `-W %s' er flertydig\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: flagget `-W %s' tillater ikke argumenter\n"
-#: src/main/print-canon.c:1310 src/main/print-escp2.c:1652
-#: src/main/print-escp2.c:1711 src/main/print-lexmark.c:882
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
msgid "Plain Paper"
-msgstr ""
+msgstr "Vanlig papir"
-#: src/main/print-canon.c:1311 src/main/print-escp2.c:1664
-#: src/main/print-escp2.c:1723 src/main/print-lexmark.c:888
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
msgid "Transparencies"
-msgstr ""
+msgstr "Gjennomsiktighet"
-#: src/main/print-canon.c:1312
+#: src/main/print-canon.c:1174
msgid "Back Print Film"
msgstr ""
-#: src/main/print-canon.c:1313
+#: src/main/print-canon.c:1175
msgid "Fabric Sheets"
msgstr ""
-#: src/main/print-canon.c:1314
+#: src/main/print-canon.c:1176
msgid "Envelope"
-msgstr ""
+msgstr "Konvolutt"
-#: src/main/print-canon.c:1315
+#: src/main/print-canon.c:1177
msgid "High Resolution Paper"
-msgstr ""
+msgstr "Høyoppløsningspapir"
-#: src/main/print-canon.c:1316
+#: src/main/print-canon.c:1178
msgid "T-Shirt Transfers"
-msgstr ""
+msgstr "Overføring til T-skjorte"
-#: src/main/print-canon.c:1317
+#: src/main/print-canon.c:1179
msgid "High Gloss Film"
msgstr ""
-#: src/main/print-canon.c:1318
+#: src/main/print-canon.c:1180
msgid "Glossy Photo Paper"
-msgstr ""
+msgstr "Glanset fotopapir"
-#: src/main/print-canon.c:1319
+#: src/main/print-canon.c:1181
msgid "Glossy Photo Cards"
-msgstr ""
+msgstr "Glansete fotokort"
-#: src/main/print-canon.c:1320
+#: src/main/print-canon.c:1182
msgid "Photo Paper Pro"
-msgstr ""
+msgstr "Profesjonelt fotopapir"
-#: src/main/print-canon.c:1321 src/main/print-escp2.c:1698
-#: src/main/print-escp2.c:1757 src/main/print-lexmark.c:918
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
msgid "Other"
msgstr "Annet"
-#: src/main/print-canon.c:1594 src/main/print-lexmark.c:1133
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
msgid "Auto Sheet Feeder"
msgstr ""
-#: src/main/print-canon.c:1595 src/main/print-lexmark.c:1134
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
msgid "Manual with Pause"
-msgstr ""
+msgstr "Manuell med pause"
-#: src/main/print-canon.c:1596 src/main/print-lexmark.c:1135
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
msgid "Manual without Pause"
-msgstr ""
+msgstr "Manuell uten pause"
-#: src/escputil/escputil.c:577 src/main/print-canon.c:1689
-#: src/main/print-lexmark.c:639
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
msgid "Black"
msgstr "Sort"
-#: src/main/print-canon.c:1694
+#: src/main/print-canon.c:1563
msgid "CMY Color"
-msgstr ""
+msgstr "CMY-farge"
-#: src/main/print-canon.c:1699
+#: src/main/print-canon.c:1568
msgid "CMYK Color"
-msgstr ""
+msgstr "CMYK-farge"
-#: src/main/print-canon.c:1704
+#: src/main/print-canon.c:1573
msgid "Photo CcMmY Color"
-msgstr ""
+msgstr "Foto CcMmY-farge"
-#: src/main/print-canon.c:1709
+#: src/main/print-canon.c:1578
msgid "Photo CcMmYK Color"
-msgstr ""
+msgstr "Foto CcMmYK-farge"
-#: src/main/print-dither.c:62
+#: src/main/print-dither.c:64
msgid "Adaptive Hybrid"
msgstr ""
-#: src/main/print-dither.c:63
+#: src/main/print-dither.c:65
msgid "Ordered"
-msgstr ""
+msgstr "Ordnet"
-#: src/main/print-dither.c:64
+#: src/main/print-dither.c:66
msgid "Fast"
msgstr "Rask"
-#: src/main/print-dither.c:65
+#: src/main/print-dither.c:67
msgid "Very Fast"
-msgstr ""
+msgstr "Meget rask"
-#: src/main/print-dither.c:66
+#: src/main/print-dither.c:68
msgid "Hybrid Floyd-Steinberg"
msgstr ""
-#: src/main/print-escp2.c:1655 src/main/print-escp2.c:1714
-msgid "Plain Paper Fast Load"
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr ""
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+#, fuzzy
+msgid "Seven Color Photo"
+msgstr "Stylus Color Pro"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+#, fuzzy
+msgid "Two Level Grayscale"
+msgstr "Gråtoner"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
msgstr ""
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+#, fuzzy
+msgid "Plain Paper Fast Load"
+msgstr "Vanlig papir"
+
#. 7.25 * 10.5in
-#: src/main/print-escp2.c:1658 src/main/print-escp2.c:1717
-#: src/main/print-util.c:532
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
msgid "Postcard"
-msgstr ""
+msgstr "Postkort"
-#: src/main/print-escp2.c:1661 src/main/print-escp2.c:1720
-#: src/main/print-lexmark.c:885
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
msgid "Glossy Film"
-msgstr ""
+msgstr "Glanset film"
-#: src/main/print-escp2.c:1667 src/main/print-escp2.c:1726
-#: src/main/print-lexmark.c:891
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
msgid "Envelopes"
-msgstr ""
+msgstr "Konvolutter"
-#: src/main/print-escp2.c:1670 src/main/print-escp2.c:1729
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
msgid "Back Light Film"
msgstr ""
-#: src/main/print-escp2.c:1673 src/main/print-escp2.c:1732
-#: src/main/print-lexmark.c:894
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
msgid "Matte Paper"
-msgstr ""
+msgstr "Matt papir"
-#: src/main/print-escp2.c:1676 src/main/print-escp2.c:1735
-#: src/main/print-lexmark.c:897
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
msgid "Inkjet Paper"
-msgstr ""
+msgstr "Papir for blekkskriver"
-#: src/main/print-escp2.c:1679 src/main/print-escp2.c:1738
-#: src/main/print-lexmark.c:900
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
msgid "Photo Quality Inkjet Paper"
-msgstr ""
+msgstr "Papir med fotokvalitet for blekkskriver"
-#: src/main/print-escp2.c:1682 src/main/print-escp2.c:1741
-#: src/main/print-lexmark.c:903
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
msgid "Photo Paper"
-msgstr ""
+msgstr "Fotopapir"
-#: src/main/print-escp2.c:1685 src/main/print-escp2.c:1744
-#: src/main/print-lexmark.c:906
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
msgid "Premium Glossy Photo Paper"
msgstr ""
-#: src/main/print-escp2.c:1689 src/main/print-escp2.c:1748
-#: src/main/print-lexmark.c:909
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
msgid "Premium Luster Photo Paper"
msgstr ""
-#: src/main/print-escp2.c:1692 src/main/print-escp2.c:1751
-#: src/main/print-lexmark.c:912
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
msgid "Photo Quality Glossy Paper"
msgstr ""
-#: src/main/print-escp2.c:1695 src/main/print-escp2.c:1754
-#: src/main/print-lexmark.c:915
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
msgid "Ilford Heavy Paper"
msgstr ""
-#: src/main/print-escp2.c:2825 src/main/print-escp2.c:2827
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Vanlig papir"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
msgid "360 x 90 DPI Fast Economy Draft"
msgstr ""
-#: src/main/print-escp2.c:2830 src/main/print-escp2.c:2832
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
msgid "360 x 120 DPI Economy Draft"
msgstr ""
-#: src/main/print-escp2.c:2835 src/main/print-escp2.c:2837
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
msgid "180 DPI Economy Draft"
msgstr ""
-#: src/main/print-escp2.c:2840 src/main/print-escp2.c:2842
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
msgid "360 x 240 DPI Draft"
msgstr ""
-#: src/main/print-escp2.c:2845 src/main/print-escp2.c:2847
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
msgid "360 x 180 DPI Draft"
msgstr ""
-#: src/main/print-escp2.c:2850 src/main/print-escp2.c:2858
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+#, fuzzy
msgid "360 DPI"
-msgstr ""
+msgstr "600 DPI"
-#: src/main/print-escp2.c:2852 src/main/print-escp2.c:2860
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
msgid "360 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2854
-msgid "360 DPI Microweave"
-msgstr ""
-
-#: src/main/print-escp2.c:2856
-msgid "360 DPI Microweave Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2862
-msgid "360 DPI Full Overlap"
-msgstr ""
-
-#: src/main/print-escp2.c:2864
-msgid "360 DPI Full Overlap Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2866
-msgid "360 DPI FOL2"
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2868
-msgid "360 DPI FOL2 Unidirectional"
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2870
-msgid "360 DPI MW2"
-msgstr ""
-
-#: src/main/print-escp2.c:2872
-msgid "360 DPI MW2 Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2875 src/main/print-escp2.c:2879
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+#, fuzzy
msgid "720 x 360 DPI"
-msgstr ""
+msgstr "2400x600 DPI"
-#: src/main/print-escp2.c:2877 src/main/print-escp2.c:2881
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
msgid "720 x 360 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2883
-msgid "720 x 360 DPI Microweave"
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2885
-msgid "720 x 360 DPI Microweave Unidirectional"
-msgstr ""
-
-#: src/main/print-escp2.c:2887
-msgid "720 x 360 DPI FOL"
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2889
-msgid "720 x 360 DPI FOL Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+#, fuzzy
+msgid "720 DPI"
+msgstr "1200 DPI"
-#: src/main/print-escp2.c:2891
-msgid "720 x 360 DPI FOL2"
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2893
-msgid "720 x 360 DPI FOL2 Unidirectional"
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
msgstr ""
-#: src/main/print-escp2.c:2895
-msgid "720 x 360 DPI MW2"
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2897
-msgid "720 x 360 DPI MW2 Unidirectional"
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
msgstr ""
-#: src/main/print-escp2.c:2900 src/main/print-escp2.c:2916
-msgid "720 DPI"
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2902 src/main/print-escp2.c:2918
-msgid "720 DPI Unidirectional"
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2904
-msgid "720 DPI Microweave"
-msgstr ""
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+#, fuzzy
+msgid "1440 x 720 DPI"
+msgstr "150x150 DPI"
-#: src/main/print-escp2.c:2906
-msgid "720 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2908
-msgid "720 DPI Full Overlap"
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
msgstr ""
-#: src/main/print-escp2.c:2910
-msgid "720 DPI Full Overlap Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+#, fuzzy
+msgid "2880 x 720 DPI"
+msgstr "1200 DPI"
-#: src/main/print-escp2.c:2912
-msgid "720 DPI Four Pass"
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2914
-msgid "720 DPI Four Pass Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+#, fuzzy
+msgid "1440 x 1440 DPI"
+msgstr "150x150 DPI"
-#: src/main/print-escp2.c:2920
-msgid "720 DPI High Quality"
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
msgstr ""
-#: src/main/print-escp2.c:2922
-msgid "720 DPI High Quality Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+#, fuzzy
+msgid "2880 x 1440 DPI"
+msgstr "150x150 DPI"
-#: src/main/print-escp2.c:2924
-msgid "720 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
msgstr ""
-#: src/main/print-escp2.c:2927 src/main/print-escp2.c:2943
-msgid "1440 x 720 DPI"
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2929 src/main/print-escp2.c:2945
-msgid "1440 x 720 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4102
+#, fuzzy
+msgid "360 DPI FOL2"
+msgstr "600 DPI"
-#: src/main/print-escp2.c:2931
-msgid "1440 x 720 DPI Microweave"
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2933
-msgid "1440 x 720 DPI Microweave Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4106
+#, fuzzy
+msgid "360 DPI MW2"
+msgstr "600 DPI"
-#: src/main/print-escp2.c:2935
-msgid "1440 x 720 DPI FOL"
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2937
-msgid "1440 x 720 DPI FOL Unidirectional"
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2939
-msgid "1440 x 720 DPI Four Pass"
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2941
-msgid "1440 x 720 DPI Four Pass Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4119
+#, fuzzy
+msgid "720 x 360 DPI FOL"
+msgstr "1200x600 DPI"
-#: src/main/print-escp2.c:2947
-msgid "1440 x 720 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2950
-msgid "2880 x 720 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4123
+#, fuzzy
+msgid "720 x 360 DPI FOL2"
+msgstr "2400x600 DPI"
-#: src/main/print-escp2.c:2952
-msgid "2880 x 720 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
msgstr ""
-#.
-#. * Nothing thus far supports 1440 DPI vertical resolution
-#.
-#: src/main/print-escp2.c:2958
-msgid "1440 x 1440 DPI"
-msgstr ""
+#: src/main/print-escp2-data.c:4127
+#, fuzzy
+msgid "720 x 360 DPI MW2"
+msgstr "1200x600 DPI"
-#: src/main/print-escp2.c:2960
-msgid "1440 x 1440 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2963
-msgid "2880 x 1440 DPI"
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
msgstr ""
-#.
-#. * These resolutions have no practical use; they're neither as good as
-#. * nor any faster than 720x720 DPI. They exist to permit testing
-#. * 2880x720 (4:1 aspect) on 1440x720 printers.
-#.
-#: src/main/print-escp2.c:2971
-msgid "1440 x 360 DPI"
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2973
-msgid "1440 x 360 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
msgstr ""
-#: src/main/print-escp2.c:2975
-msgid "1440 x 360 DPI High Quality"
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2977
-msgid "1440 x 360 DPI High Quality Uni"
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
msgstr ""
-#: src/main/print-escp2.c:2979
-msgid "1440 x 360 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2995
-msgid "Seven Color Enhanced"
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
msgstr ""
-#: src/main/print-escp2.c:2996
-msgid "Six Color Enhanced Composite"
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2997 src/main/print-lexmark.c:629
-#: src/main/print-lexmark.c:709
-msgid "Six Color Photo"
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2998 src/main/print-lexmark.c:634
-#: src/main/print-lexmark.c:714
-msgid "Five Color Photo Composite"
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
msgstr ""
-#. output_type ncolors used_colors pass_length v_top_head_offset
-#. * h_catridge_offset
-#. * h_direction_offset
-#. * head_offset
-#: src/main/print-escp2.c:2999 src/main/print-lexmark.c:619
-#: src/main/print-lexmark.c:699
-msgid "Four Color Standard"
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
msgstr ""
-#: src/main/print-escp2.c:3000 src/main/print-lexmark.c:624
-#: src/main/print-lexmark.c:704
-msgid "Three Color Composite"
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
msgstr ""
-#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2.c:3323
-#: src/main/print-pcl.c:198
-msgid "Standard"
-msgstr "Standard"
-
-#: src/main/print-escp2.c:3325
-msgid "Roll Feed"
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
msgstr ""
-#. name hres vres softw v_pass overs unidir resid
-#: src/main/print-lexmark.c:595 src/main/print-lexmark.c:681
-msgid "300 DPI x 600 DPI"
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:596 src/main/print-lexmark.c:682
-msgid "600 DPI"
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
msgstr ""
-#: src/main/print-lexmark.c:597 src/main/print-lexmark.c:683
-msgid "600 DPI high quality"
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:598 src/main/print-lexmark.c:684
-msgid "600 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4175
+#, fuzzy
+msgid "1440 x 1440 DPI FOL"
+msgstr "150x150 DPI"
-#: src/main/print-lexmark.c:599 src/main/print-lexmark.c:685
-msgid "1200 DPI"
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:600 src/main/print-lexmark.c:686
-msgid "1200 DPI high quality"
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
msgstr ""
-#: src/main/print-lexmark.c:601 src/main/print-lexmark.c:687
-msgid "1200 DPI highest quality"
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:602 src/main/print-lexmark.c:688
-msgid "1200 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
msgstr ""
-#: src/main/print-lexmark.c:603
-msgid "2400 DPI x 1200 DPI"
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:604
-msgid "2400 DPI x 1200 DPI high quality"
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
msgstr ""
-#: src/main/print-lexmark.c:605
-msgid "2400 DPI x 1200 DPI highest quality"
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:607
-msgid "test print"
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
msgstr ""
-#. 11in x 17in
-#: src/main/print-pcl.c:108 src/main/print-util.c:530
-msgid "Executive"
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
msgstr ""
-#. US Exec (7.25 x 10.5 in)
-#: src/main/print-pcl.c:109 src/main/print-util.c:524
-msgid "Letter"
-msgstr "Letter"
-
-#. US Letter (8.5 x 11 in)
-#: src/main/print-pcl.c:110 src/main/print-util.c:526
-msgid "Legal"
-msgstr "Legal"
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
-#. US Legal (8.5 x 14 in)
-#: src/main/print-pcl.c:111 src/main/print-util.c:528
-msgid "Tabloid"
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
msgstr ""
-#. US Tabloid (11 x 17 in)
-#: src/main/print-pcl.c:112 src/main/print-pcl.c:199 src/main/print-util.c:548
-msgid "Manual"
-msgstr "Manuell"
-
-#. US Manual/Statement (5.5 x 8.5 in)
-#: src/main/print-pcl.c:113
-msgid "13x19"
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
msgstr ""
-#. US 13x19/Super B (13 x 19 in)
-#: src/main/print-pcl.c:114 src/main/print-util.c:599
-msgid "A5"
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
msgstr ""
-#. ISO/JIS A5 (148 x 210 mm)
-#: src/main/print-pcl.c:115 src/main/print-util.c:597
-msgid "A4"
-msgstr "A4"
-
-#. ISO/JIS A4 (210 x 297 mm)
-#: src/main/print-pcl.c:116 src/main/print-util.c:595
-msgid "A3"
-msgstr "A3"
-
-#. ISO/JIS A3 (297 x 420 mm)
-#: src/main/print-pcl.c:117 src/main/print-util.c:681
-msgid "B5 JIS"
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
msgstr ""
-#. JIS B5 (182 x 257 mm).
-#: src/main/print-pcl.c:118 src/main/print-util.c:679
-msgid "B4 JIS"
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
msgstr ""
-#. JIS B4 (257 x 364 mm).
-#: src/main/print-pcl.c:119 src/main/print-util.c:783
-msgid "Hagaki Card"
-msgstr ""
-
-#. Japanese Hagaki Card (100 x 148 mm)
-#: src/main/print-pcl.c:120 src/main/print-util.c:785
-msgid "Oufuku Card"
-msgstr ""
-
-#. Japanese Oufuku Card (148 x 200 mm)
-#: src/main/print-pcl.c:121 src/main/print-util.c:601
-msgid "A6"
-msgstr ""
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Autovelg"
-#. ISO/JIS A6 card
-#: src/main/print-pcl.c:122 src/main/print-util.c:536
-msgid "4x6"
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
msgstr ""
-#. US Index card (4 x 6 in)
-#: src/main/print-pcl.c:123 src/main/print-util.c:542
-msgid "5x8"
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
msgstr ""
-#. US Index card (5 x 8 in)
-#: src/main/print-pcl.c:124 src/main/print-util.c:534
-msgid "3x5"
-msgstr ""
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
-#. US Index card (3 x 5 in)
-#: src/main/print-pcl.c:125
-msgid "Monarch"
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
msgstr ""
-#. Monarch Envelope (3 7/8 x 7 1/2 in)
-#: src/main/print-pcl.c:126 src/main/print-util.c:793
-msgid "Commercial 10"
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
msgstr ""
-#. US Commercial 10 Envelope (4.125 x 9.5 in) Portrait
-#: src/main/print-pcl.c:127 src/main/print-util.c:713
-msgid "DL"
-msgstr ""
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
-#. DL envelope (110 x 220 mm) Portrait
-#: src/main/print-pcl.c:128 src/main/print-util.c:707
-msgid "C5"
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
msgstr ""
-#. C5 envelope (162 x 229 mm)
-#: src/main/print-pcl.c:129 src/main/print-util.c:711
-msgid "C6"
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
msgstr ""
-#. C6 envelope (114 x 162 mm)
-#: src/main/print-pcl.c:130 src/main/print-util.c:795
-msgid "A2 Invitation"
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
msgstr ""
-#. US A2 Invitation envelope (4 3/8 x 5 3/4 in)
-#: src/main/print-pcl.c:131
-msgid "Long 3"
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
msgstr ""
-#. Japanese Long Envelope #3 (120 x 235 mm)
-#: src/main/print-pcl.c:132
-msgid "Long 4"
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
msgstr ""
-#. Japanese Long Envelope #4 (90 x 205 mm)
-#: src/main/print-pcl.c:133
-msgid "Kaku"
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
msgstr ""
-#. Japanese Kaku Envelope (240 x 332.1 mm)
-#. *** MRS: this size not supported by print-util funcs! ***
-#: src/main/print-pcl.c:135
-msgid "HP Greeting Card"
-msgstr ""
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "testutskrift"
-#: src/main/print-pcl.c:153
+#: src/main/print-pcl.c:157
msgid "Plain"
msgstr "Skriv ut"
-#: src/main/print-pcl.c:154
+#: src/main/print-pcl.c:158
msgid "Bond"
msgstr ""
-#: src/main/print-pcl.c:155
+#: src/main/print-pcl.c:159
msgid "Premium"
msgstr ""
-#: src/main/print-pcl.c:156
+#: src/main/print-pcl.c:160
msgid "Glossy Photo"
msgstr ""
-#: src/main/print-pcl.c:157
+#: src/main/print-pcl.c:161
msgid "Transparency"
msgstr "Gjennomsiktighet"
-#: src/main/print-pcl.c:158
+#: src/main/print-pcl.c:162
msgid "Quick-dry Photo"
msgstr ""
-#: src/main/print-pcl.c:159
+#: src/main/print-pcl.c:163
msgid "Quick-dry Transparency"
msgstr ""
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuell"
+
#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
-#: src/main/print-pcl.c:201
+#: src/main/print-pcl.c:205
msgid "Tray 1"
-msgstr ""
+msgstr "Skuff 1"
-#: src/main/print-pcl.c:202 src/main/print-pcl.c:208
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
msgid "Tray 2"
-msgstr ""
+msgstr "Skuff 2"
-#: src/main/print-pcl.c:203
+#: src/main/print-pcl.c:207
msgid "Tray 3"
-msgstr ""
+msgstr "Skuff 3"
-#: src/main/print-pcl.c:204
+#: src/main/print-pcl.c:208
msgid "Tray 4"
-msgstr ""
+msgstr "Skuff 4"
-#: src/main/print-pcl.c:205
+#: src/main/print-pcl.c:209
msgid "Portable Sheet Feeder"
-msgstr ""
+msgstr "Portabel arkmater"
-#: src/main/print-pcl.c:206
+#: src/main/print-pcl.c:210
msgid "Desktop Sheet Feeder"
msgstr ""
-#: src/main/print-pcl.c:207
+#: src/main/print-pcl.c:211
msgid "Tray"
-msgstr ""
+msgstr "Skuff"
-#: src/main/print-pcl.c:209
+#: src/main/print-pcl.c:213
msgid "Optional Source"
-msgstr ""
+msgstr "Alternativ kilde"
-#: src/main/print-pcl.c:210
+#: src/main/print-pcl.c:214
msgid "Autoselect"
-msgstr ""
+msgstr "Autovelg"
-#: src/main/print-pcl.c:224
+#: src/main/print-pcl.c:228
msgid "150x150 DPI"
-msgstr ""
+msgstr "150x150 DPI"
-#: src/main/print-pcl.c:225
+#: src/main/print-pcl.c:229
msgid "300x300 DPI"
-msgstr ""
+msgstr "300x300 DPI"
-#: src/main/print-pcl.c:226
+#: src/main/print-pcl.c:230
msgid "600x300 DPI"
-msgstr ""
+msgstr "600x300 DPI"
-#: src/main/print-pcl.c:227
+#: src/main/print-pcl.c:231
msgid "600x600 DPI monochrome"
-msgstr ""
+msgstr "600x600 DPI monokrom"
-#: src/main/print-pcl.c:228
+#: src/main/print-pcl.c:232
msgid "600x600 DPI"
-msgstr ""
+msgstr "600x600 DPI"
-#: src/main/print-pcl.c:229
+#: src/main/print-pcl.c:233
msgid "1200x600 DPI"
-msgstr ""
+msgstr "1200x600 DPI"
-#: src/main/print-pcl.c:230
+#: src/main/print-pcl.c:234
msgid "2400x600 DPI"
-msgstr ""
+msgstr "2400x600 DPI"
-#: src/main/print-pcl.c:1563
+#: src/main/print-pcl.c:1763
msgid "Color + Black Cartridges"
msgstr ""
-#: src/main/print-pcl.c:1564
+#: src/main/print-pcl.c:1764
msgid "Color + Photo Cartridges"
msgstr ""
#. Name of file or command to print to
-#: src/main/print-util.c:125 src/main/print-util.c:159
-#: src/main/print-util.c:193
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
msgstr ""
-#: src/main/print-util.c:538
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
msgid "Epson 4x6 Photo Paper"
msgstr ""
-#: src/main/print-util.c:540
+#: src/main/print-util.c:549
msgid "5x7"
-msgstr ""
+msgstr "5x7"
-#: src/main/print-util.c:544
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
msgid "6x8"
-msgstr ""
+msgstr "6x8"
-#: src/main/print-util.c:546
+#: src/main/print-util.c:555
msgid "8x10"
-msgstr ""
+msgstr "8x10"
#. 5.5in x 8.5in
-#: src/main/print-util.c:550
+#: src/main/print-util.c:559
msgid "12x18"
-msgstr ""
+msgstr "12x18"
-#: src/main/print-util.c:552
+#: src/main/print-util.c:561
msgid "Super B 13x19"
msgstr ""
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
#. Other common photographic paper sizes
-#: src/main/print-util.c:556
+#: src/main/print-util.c:567
msgid "8x12"
-msgstr ""
+msgstr "8x12"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:558
+#: src/main/print-util.c:569
msgid "11x14"
-msgstr ""
+msgstr "11x14"
-#: src/main/print-util.c:560
+#: src/main/print-util.c:571
msgid "16x20"
-msgstr ""
+msgstr "16x20"
-#: src/main/print-util.c:562
+#: src/main/print-util.c:573
msgid "16x24"
-msgstr ""
+msgstr "16x24"
#. 20x24 for 35 mm
-#: src/main/print-util.c:564
+#: src/main/print-util.c:575
msgid "20x24"
-msgstr ""
+msgstr "20x24"
-#: src/main/print-util.c:566
+#: src/main/print-util.c:577
msgid "20x30"
-msgstr ""
+msgstr "20x30"
#. 24x30 for 35 mm
-#: src/main/print-util.c:568
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
msgid "24x30"
-msgstr ""
+msgstr "24x30"
-#: src/main/print-util.c:570
+#: src/main/print-util.c:583
msgid "24x36"
-msgstr ""
+msgstr "24x36"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:572
+#: src/main/print-util.c:585
msgid "30x40"
msgstr "30x40"
@@ -876,47 +962,72 @@ msgstr "30x40"
#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
#. * size is obtained by doubling or halving another A size.
#.
-#: src/main/print-util.c:585
+#: src/main/print-util.c:598
msgid "4A"
msgstr "4A"
#. 1682mm x 2378mm
-#: src/main/print-util.c:587
+#: src/main/print-util.c:600
msgid "2A"
msgstr "2A"
#. 1189mm x 1682mm
-#: src/main/print-util.c:589
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
msgid "A0"
msgstr "A0"
#. 841mm x 1189mm
-#: src/main/print-util.c:591
+#: src/main/print-util.c:606
msgid "A1"
msgstr "A1"
#. 594mm x 841mm
-#: src/main/print-util.c:593
+#: src/main/print-util.c:608
msgid "A2"
msgstr "A2"
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
#. 105mm x 148mm
-#: src/main/print-util.c:603
+#: src/main/print-util.c:618
msgid "A7"
msgstr "A7"
#. 74mm x 105mm
-#: src/main/print-util.c:605
+#: src/main/print-util.c:620
msgid "A8"
msgstr "A8"
#. 52mm x 74mm
-#: src/main/print-util.c:607
+#: src/main/print-util.c:622
msgid "A9"
msgstr "A9"
#. 37mm x 52mm
-#: src/main/print-util.c:609
+#: src/main/print-util.c:624
msgid "A10"
msgstr "A10"
@@ -925,27 +1036,27 @@ msgstr "A10"
#. * Stock sizes for normal trims.
#. * Allowance for trim is 3 millimetres.
#.
-#: src/main/print-util.c:616
+#: src/main/print-util.c:631
msgid "RA0"
msgstr "RA0"
#. 860mm x 1220mm
-#: src/main/print-util.c:618
+#: src/main/print-util.c:633
msgid "RA1"
msgstr "RA1"
#. 610mm x 860mm
-#: src/main/print-util.c:620
+#: src/main/print-util.c:635
msgid "RA2"
msgstr "RA2"
#. 430mm x 610mm
-#: src/main/print-util.c:622
+#: src/main/print-util.c:637
msgid "RA3"
msgstr "RA3"
#. 305mm x 430mm
-#: src/main/print-util.c:624
+#: src/main/print-util.c:639
msgid "RA4"
msgstr "RA4"
@@ -953,27 +1064,27 @@ msgstr "RA4"
#.
#. * Stock sizes for bled work or extra trims.
#.
-#: src/main/print-util.c:630
+#: src/main/print-util.c:645
msgid "SRA0"
msgstr "SRA0"
#. 900mm x 1280mm
-#: src/main/print-util.c:632
+#: src/main/print-util.c:647
msgid "SRA1"
msgstr "SRA1"
#. 640mm x 900mm
-#: src/main/print-util.c:634
+#: src/main/print-util.c:649
msgid "SRA2"
msgstr "SRA2"
#. 450mm x 640mm
-#: src/main/print-util.c:636
+#: src/main/print-util.c:651
msgid "SRA3"
msgstr "SRA3"
#. 320mm x 450mm
-#: src/main/print-util.c:638
+#: src/main/print-util.c:653
msgid "SRA4"
msgstr "SRA4"
@@ -981,161 +1092,189 @@ msgstr "SRA4"
#.
#. * "B" series: Posters, wall charts and similar items.
#.
-#: src/main/print-util.c:644
+#: src/main/print-util.c:659
msgid "4B ISO"
msgstr "4B ISO"
#. 2000mm x 2828mm
-#: src/main/print-util.c:646
+#: src/main/print-util.c:661
msgid "2B ISO"
msgstr "2B ISO"
#. 1414mm x 2000mm
-#: src/main/print-util.c:648
+#: src/main/print-util.c:663
msgid "B0 ISO"
msgstr "B0 ISO"
#. 1000mm x 1414mm
-#: src/main/print-util.c:650
+#: src/main/print-util.c:665
msgid "B1 ISO"
msgstr "B1 ISO"
#. 707mm x 1000mm
-#: src/main/print-util.c:652
+#: src/main/print-util.c:667
msgid "B2 ISO"
msgstr "B2 ISO"
#. 500mm x 707mm
-#: src/main/print-util.c:654
+#: src/main/print-util.c:669
msgid "B3 ISO"
msgstr "B3 ISO"
#. 353mm x 500mm
-#: src/main/print-util.c:656
+#: src/main/print-util.c:671
msgid "B4 ISO"
msgstr "B4 ISO"
#. 250mm x 353mm
-#: src/main/print-util.c:658
+#: src/main/print-util.c:673
msgid "B5 ISO"
msgstr "B5 ISO"
#. 176mm x 250mm
-#: src/main/print-util.c:660
+#: src/main/print-util.c:675
msgid "B6 ISO"
msgstr "B6 ISO"
#. 125mm x 176mm
-#: src/main/print-util.c:662
+#: src/main/print-util.c:677
msgid "B7 ISO"
msgstr "B7 ISO"
#. 88mm x 125mm
-#: src/main/print-util.c:664
+#: src/main/print-util.c:679
msgid "B8 ISO"
msgstr "B8 ISO"
#. 62mm x 88mm
-#: src/main/print-util.c:666
+#: src/main/print-util.c:681
msgid "B9 ISO"
msgstr "B9 ISO"
#. 44mm x 62mm
-#: src/main/print-util.c:668
+#: src/main/print-util.c:683
msgid "B10 ISO"
msgstr "B10 ISO"
#. 31mm x 44mm
-#: src/main/print-util.c:671
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
msgid "B0 JIS"
msgstr "B0 JIS"
-#: src/main/print-util.c:673
+#: src/main/print-util.c:690
msgid "B1 JIS"
msgstr "B1 JIS"
-#: src/main/print-util.c:675
+#: src/main/print-util.c:692
msgid "B2 JIS"
msgstr "B2 JIS"
-#: src/main/print-util.c:677
+#: src/main/print-util.c:694
msgid "B3 JIS"
msgstr "B3 JIS"
-#: src/main/print-util.c:683
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
msgid "B6 JIS"
msgstr "B6 JIS"
-#: src/main/print-util.c:685
+#: src/main/print-util.c:702
msgid "B7 JIS"
msgstr "B7 JIS"
-#: src/main/print-util.c:687
+#: src/main/print-util.c:704
msgid "B8 JIS"
msgstr "B8 JIS"
-#: src/main/print-util.c:689
+#: src/main/print-util.c:706
msgid "B9 JIS"
msgstr "B9 JIS"
-#: src/main/print-util.c:691
+#: src/main/print-util.c:708
msgid "B10 JIS"
msgstr "B10 JIS"
#.
#. * "C" series: Envelopes or folders suitable for A size stationery.
#.
-#: src/main/print-util.c:697
+#: src/main/print-util.c:714
msgid "C0"
msgstr "C0"
#. 917mm x 1297mm
-#: src/main/print-util.c:699
+#: src/main/print-util.c:716
msgid "C1"
msgstr "C1"
#. 648mm x 917mm
-#: src/main/print-util.c:701
+#: src/main/print-util.c:718
msgid "C2"
msgstr "C2"
#. 458mm x 648mm
-#: src/main/print-util.c:703
+#: src/main/print-util.c:720
msgid "C3"
msgstr "C3"
#. 324mm x 458mm
-#: src/main/print-util.c:705
+#: src/main/print-util.c:722
msgid "C4"
msgstr "C4"
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
#. 162mm x 229mm
-#: src/main/print-util.c:709
+#: src/main/print-util.c:726
msgid "B6-C4"
msgstr "B6-C4"
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
#. 110mm x 220mm
-#: src/main/print-util.c:715
+#: src/main/print-util.c:732
msgid "C7-6"
msgstr "C7-6"
#. 81mm x 162mm
-#: src/main/print-util.c:717
+#: src/main/print-util.c:734
msgid "C7"
msgstr "C7"
#. 81mm x 114mm
-#: src/main/print-util.c:719
+#: src/main/print-util.c:736
msgid "C8"
msgstr "C8"
#. 57mm x 81mm
-#: src/main/print-util.c:721
+#: src/main/print-util.c:738
msgid "C9"
msgstr "C9"
#. 40mm x 57mm
-#: src/main/print-util.c:723
+#: src/main/print-util.c:740
msgid "C10"
msgstr "C10"
@@ -1143,35 +1282,60 @@ msgstr "C10"
#.
#. * US CAD standard paper sizes
#.
-#: src/main/print-util.c:729
+#: src/main/print-util.c:746
msgid "ArchA"
msgstr ""
-#: src/main/print-util.c:731
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:750
msgid "ArchB"
msgstr ""
-#: src/main/print-util.c:733
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:754
msgid "ArchC"
msgstr ""
-#: src/main/print-util.c:735
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:758
msgid "ArchD"
msgstr ""
-#: src/main/print-util.c:737
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "Overføring til T-skjorte"
+
+#: src/main/print-util.c:762
msgid "ArchE"
msgstr ""
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "Overføring til T-skjorte"
+
#.
#. * Foolscap
#.
-#: src/main/print-util.c:743
+#: src/main/print-util.c:770
msgid "American foolscap"
msgstr ""
#. American foolscap
-#: src/main/print-util.c:745
+#: src/main/print-util.c:772
msgid "European foolscap"
msgstr ""
@@ -1181,44 +1345,44 @@ msgstr ""
#. * The BPIF and the Publishers Association jointly recommend ten
#. * standard metric sizes for case-bound titles as follows:
#.
-#: src/main/print-util.c:753
+#: src/main/print-util.c:780
msgid "Crown Quarto"
msgstr ""
#. 189mm x 246mm
-#: src/main/print-util.c:755
+#: src/main/print-util.c:782
msgid "Large Crown Quarto"
msgstr ""
#. 201mm x 258mm
-#: src/main/print-util.c:757
+#: src/main/print-util.c:784
msgid "Demy Quarto"
msgstr ""
#. 219mm x 276mm
-#: src/main/print-util.c:759
+#: src/main/print-util.c:786
msgid "Royal Quarto"
msgstr ""
#. 237mm x 312mm
#. { "ISO A4", 595,
#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
-#: src/main/print-util.c:763
+#: src/main/print-util.c:790
msgid "Crown Octavo"
msgstr ""
#. 123mm x 186mm
-#: src/main/print-util.c:765
+#: src/main/print-util.c:792
msgid "Large Crown Octavo"
msgstr ""
#. 129mm x 198mm
-#: src/main/print-util.c:767
+#: src/main/print-util.c:794
msgid "Demy Octavo"
msgstr ""
#. 138mm x 216mm
-#: src/main/print-util.c:769
+#: src/main/print-util.c:796
msgid "Royal Octavo"
msgstr ""
@@ -1226,137 +1390,209 @@ msgstr ""
#. { N_ ("ISO A5"), 419,
#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
#. Paperback sizes in common usage
-#: src/main/print-util.c:775
+#: src/main/print-util.c:802
msgid "Small paperback"
msgstr ""
#. 111mm x 178mm
-#: src/main/print-util.c:777
+#: src/main/print-util.c:804
msgid "Penguin small paperback"
msgstr ""
#. 111mm x 181mm
-#: src/main/print-util.c:779
+#: src/main/print-util.c:806
msgid "Penguin large paperback"
msgstr ""
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr ""
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr ""
+
#. 148 x 200 mm
-#: src/main/print-util.c:787
+#: src/main/print-util.c:816
msgid "Japanese long envelope #3"
msgstr ""
#. Japanese long envelope #3
-#: src/main/print-util.c:789
+#: src/main/print-util.c:818
msgid "Japanese long envelope #4"
msgstr ""
#. Japanese long envelope #4
-#: src/main/print-util.c:791
+#: src/main/print-util.c:820
msgid "Japanese Kaku envelope #4"
msgstr ""
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr ""
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 invitasjon"
+
#. US A2 invitation
-#: src/main/print-util.c:797
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr ""
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
msgid "Custom"
msgstr "Egendefinert"
-#: src/main/print-util.c:800
+#: src/main/print-util.c:831
msgid "89 mm Roll Paper"
msgstr ""
-#: src/main/print-util.c:802
+#: src/main/print-util.c:833
msgid "4 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:804
+#: src/main/print-util.c:835
msgid "5 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:806
+#: src/main/print-util.c:837
msgid "210 mm Roll Paper"
msgstr ""
-#: src/main/print-util.c:808
+#: src/main/print-util.c:839
msgid "13 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:810
+#: src/main/print-util.c:841
msgid "22 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:812
+#: src/main/print-util.c:843
msgid "24 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:814
+#: src/main/print-util.c:845
msgid "36 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:816
+#: src/main/print-util.c:847
msgid "44 Inch Roll Paper"
msgstr ""
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s utenfor området (verdi %f, min %f, maks %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s utenfor området (verdi %d, min %d, maks %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Skriver støtter ikke fargeutskrift\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Bildestørrelsen er ikke gyldig\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Toppmargen må ikke være mindre enn null\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Venstre marg må ikke være mindre enn null\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s er ikke en gyldig dither-algoritme\n"
+
#. Specify language of PPD translation
#. Translators: Specify the language of the PPD translation.
#. * Use the English name of your language here, e.g. "Swedish" instead of
#. * "Svenska".
#.
-#: src/cups/genppd.c:455
+#: src/cups/genppd.c:519
msgid "English"
msgstr "Norwegian"
#. Specify PPD translation encoding e.g. ISOLatin1
-#: src/cups/genppd.c:457
+#: src/cups/genppd.c:521
msgid "ISOLatin1"
-msgstr ""
+msgstr "ISOLatin1"
-#: src/cups/genppd.c:633
+#: src/cups/genppd.c:777
msgid "Media Type"
-msgstr ""
+msgstr "Medietype"
-#: src/cups/genppd.c:659
+#: src/cups/genppd.c:803
msgid "Media Source"
-msgstr ""
+msgstr "Mediekilde"
-#: src/cups/genppd.c:683
+#: src/cups/genppd.c:827
msgid "Resolution"
msgstr "Oppløsning"
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Skriv ut"
+
#.
#. * Image types...
#.
-#: src/cups/genppd.c:723
+#: src/cups/genppd.c:869
msgid "Image Type"
msgstr "Bildetype"
-#: src/cups/genppd.c:728 src/gimp/gimp_main_window.c:1314
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
msgid "Line Art"
msgstr "Lineær"
-#: src/cups/genppd.c:730 src/gimp/gimp_main_window.c:1328
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
msgid "Solid Colors"
msgstr "Farge"
-#: src/cups/genppd.c:732 src/gimp/gimp_main_window.c:1343
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
msgid "Photograph"
-msgstr ""
+msgstr "Fotografi"
#.
#. * Dithering algorithms...
#.
-#: src/cups/genppd.c:740
+#: src/cups/genppd.c:886
msgid "Dither Algorithm"
msgstr "Dither-algoritme"
-#: src/cups/genppd.c:759
+#: src/cups/genppd.c:905
msgid "Ink Type"
msgstr "Blekktype"
-#: src/escputil/escputil.c:64
+#: src/escputil/escputil.c:66
msgid "Escputil version "
msgstr ""
-#: src/escputil/escputil.c:65
+#: src/escputil/escputil.c:67
msgid ""
", Copyright (C) 2000-2001 Robert Krawitz\n"
"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
@@ -1364,7 +1600,7 @@ msgid ""
"under certain conditions; type 'escputil -l' for details.\n"
msgstr ""
-#: src/escputil/escputil.c:70
+#: src/escputil/escputil.c:72
msgid ""
"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
"\n"
@@ -1383,7 +1619,7 @@ msgid ""
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
msgstr ""
-#: src/escputil/escputil.c:110
+#: src/escputil/escputil.c:112
msgid ""
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P printer | -r device] [-u] [-q] [-m model]\n"
@@ -1426,7 +1662,7 @@ msgid ""
"alignment.\n"
msgstr ""
-#: src/escputil/escputil.c:148
+#: src/escputil/escputil.c:150
msgid ""
"Usage: escputil [OPTIONS] [COMMAND]\n"
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
@@ -1465,361 +1701,533 @@ msgid ""
" -m Specify the precise printer model for head alignment.\n"
msgstr ""
-#: src/escputil/escputil.c:199
+#: src/escputil/escputil.c:201
msgid "Stylus C20sx"
-msgstr ""
+msgstr "Stylus C20sx"
-#: src/escputil/escputil.c:200
+#: src/escputil/escputil.c:202
msgid "Stylus C20ux"
-msgstr ""
+msgstr "Stylus C20ux"
-#: src/escputil/escputil.c:201
+#: src/escputil/escputil.c:203
msgid "Stylus C40sx"
-msgstr ""
+msgstr "Stylus C40sx"
-#: src/escputil/escputil.c:202
+#: src/escputil/escputil.c:204
msgid "Stylus C40ux"
-msgstr ""
+msgstr "Stylus C40ux"
-#: src/escputil/escputil.c:203
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
msgid "Stylus C60"
-msgstr ""
+msgstr "Stylus C60"
-#: src/escputil/escputil.c:204
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
msgid "Stylus C70"
-msgstr ""
+msgstr "Stylus C70"
-#: src/escputil/escputil.c:205
+#: src/escputil/escputil.c:220
msgid "Stylus C80"
-msgstr ""
+msgstr "Stylus C80"
-#: src/escputil/escputil.c:206
+#: src/escputil/escputil.c:221
#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
msgid "Stylus Color"
-msgstr "Farge"
+msgstr "Stylus Color"
-#: src/escputil/escputil.c:207
+#: src/escputil/escputil.c:225
msgid "Stylus Color Pro"
-msgstr ""
+msgstr "Stylus Color Pro"
-#: src/escputil/escputil.c:208
+#: src/escputil/escputil.c:226
msgid "Stylus Color Pro XL"
-msgstr ""
+msgstr "Stylus Color Pro XL"
-#: src/escputil/escputil.c:209
+#: src/escputil/escputil.c:227
msgid "Stylus Color 400"
-msgstr ""
+msgstr "Stylus Color 400"
-#: src/escputil/escputil.c:210
+#: src/escputil/escputil.c:228
msgid "Stylus Color 440"
-msgstr ""
+msgstr "Stylus Color 440"
-#: src/escputil/escputil.c:211
+#: src/escputil/escputil.c:229
msgid "Stylus Color 460"
-msgstr ""
+msgstr "Stylus Color 460"
-#: src/escputil/escputil.c:212
+#: src/escputil/escputil.c:230
msgid "Stylus Color 480"
-msgstr ""
+msgstr "Stylus Color 480"
-#: src/escputil/escputil.c:213
+#: src/escputil/escputil.c:231
msgid "Stylus Color 500"
-msgstr ""
+msgstr "Stylus Color 500"
-#: src/escputil/escputil.c:214
+#: src/escputil/escputil.c:232
msgid "Stylus Color 580"
-msgstr ""
+msgstr "Stylus Color 580"
-#: src/escputil/escputil.c:215
+#: src/escputil/escputil.c:233
msgid "Stylus Color 600"
-msgstr ""
+msgstr "Stylus Color 600"
-#: src/escputil/escputil.c:216
+#: src/escputil/escputil.c:234
msgid "Stylus Color 640"
-msgstr ""
+msgstr "Stylus Color 640"
-#: src/escputil/escputil.c:217
+#: src/escputil/escputil.c:235
msgid "Stylus Color 660"
-msgstr ""
+msgstr "Stylus Color 660"
-#: src/escputil/escputil.c:218
+#: src/escputil/escputil.c:236
msgid "Stylus Color 670"
-msgstr ""
+msgstr "Stylus Color 670"
-#: src/escputil/escputil.c:219
+#: src/escputil/escputil.c:237
msgid "Stylus Color 680"
-msgstr ""
+msgstr "Stylus Color 680"
-#: src/escputil/escputil.c:220
+#: src/escputil/escputil.c:238
msgid "Stylus Color 740"
-msgstr ""
+msgstr "Stylus Color 740"
-#: src/escputil/escputil.c:221
+#: src/escputil/escputil.c:239
msgid "Stylus Color 760"
-msgstr ""
+msgstr "Stylus Color 760"
-#: src/escputil/escputil.c:222
+#: src/escputil/escputil.c:240
msgid "Stylus Color 777"
-msgstr ""
+msgstr "Stylus Color 770"
-#: src/escputil/escputil.c:223
+#: src/escputil/escputil.c:241
msgid "Stylus Color 800"
-msgstr ""
+msgstr "Stylus Color 800"
-#: src/escputil/escputil.c:224
+#: src/escputil/escputil.c:242
msgid "Stylus Color 850"
-msgstr ""
+msgstr "Stylus Color 850"
-#: src/escputil/escputil.c:225
+#: src/escputil/escputil.c:243
msgid "Stylus Color 860"
-msgstr ""
+msgstr "Stylus Color 860"
-#: src/escputil/escputil.c:226
+#: src/escputil/escputil.c:244
msgid "Stylus Color 880"
-msgstr ""
+msgstr "Stylus Color 880"
-#: src/escputil/escputil.c:227
+#: src/escputil/escputil.c:245
msgid "Stylus Color 83"
-msgstr ""
+msgstr "Stylus Color 83"
-#: src/escputil/escputil.c:228
+#: src/escputil/escputil.c:246
msgid "Stylus Color 900"
-msgstr ""
+msgstr "Stylus Color 900"
-#: src/escputil/escputil.c:229
+#: src/escputil/escputil.c:247
msgid "Stylus Color 980"
-msgstr ""
+msgstr "Stylus Color 980"
-#: src/escputil/escputil.c:230
+#: src/escputil/escputil.c:248
msgid "Stylus Color 1160"
-msgstr ""
+msgstr "Stylus Color 1160"
-#: src/escputil/escputil.c:231
+#: src/escputil/escputil.c:249
msgid "Stylus Color 1500"
-msgstr ""
+msgstr "Stylus Color 1500"
-#: src/escputil/escputil.c:232
+#: src/escputil/escputil.c:250
msgid "Stylus Color 1520"
-msgstr ""
+msgstr "Stylus Color 1520"
-#: src/escputil/escputil.c:233
+#: src/escputil/escputil.c:251
msgid "Stylus Color 3000"
-msgstr ""
+msgstr "Stylus Color 3000"
-#: src/escputil/escputil.c:234
+#: src/escputil/escputil.c:252
msgid "Stylus Photo"
-msgstr ""
+msgstr "Stylus Photo"
-#: src/escputil/escputil.c:235
+#: src/escputil/escputil.c:253
msgid "Stylus Photo 700"
-msgstr ""
+msgstr "Stylus Photo 700"
-#: src/escputil/escputil.c:236
+#: src/escputil/escputil.c:254
msgid "Stylus Photo EX"
-msgstr ""
+msgstr "Stylus Photo EX"
-#: src/escputil/escputil.c:237
+#: src/escputil/escputil.c:255
msgid "Stylus Photo 720"
-msgstr ""
+msgstr "Stylus Photo 720"
-#: src/escputil/escputil.c:238
+#: src/escputil/escputil.c:256
msgid "Stylus Photo 750"
-msgstr ""
+msgstr "Stylus Photo 750"
-#: src/escputil/escputil.c:239
+#: src/escputil/escputil.c:257
msgid "Stylus Photo 780"
-msgstr ""
+msgstr "Stylus Photo 780"
-#: src/escputil/escputil.c:240
+#: src/escputil/escputil.c:258
msgid "Stylus Photo 785"
-msgstr ""
+msgstr "Stylus Photo 785"
-#: src/escputil/escputil.c:241
+#: src/escputil/escputil.c:259
msgid "Stylus Photo 790"
-msgstr ""
+msgstr "Stylus Photo 790"
-#: src/escputil/escputil.c:242
+#: src/escputil/escputil.c:260
msgid "Stylus Photo 810"
-msgstr ""
+msgstr "Stylus Photo 810"
-#: src/escputil/escputil.c:243
+#: src/escputil/escputil.c:261
msgid "Stylus Photo 820"
-msgstr ""
+msgstr "Stylus Photo 820"
-#: src/escputil/escputil.c:244
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
msgid "Stylus Photo 870"
-msgstr ""
+msgstr "Stylus Photo 870"
-#: src/escputil/escputil.c:245
+#: src/escputil/escputil.c:264
msgid "Stylus Photo 875"
-msgstr ""
+msgstr "Stylus Photo 875"
-#: src/escputil/escputil.c:246
+#: src/escputil/escputil.c:265
msgid "Stylus Photo 890"
-msgstr ""
+msgstr "Stylus Photo 890"
-#: src/escputil/escputil.c:247
+#: src/escputil/escputil.c:266
msgid "Stylus Photo 895"
-msgstr ""
+msgstr "Stylus Photo 895"
-#: src/escputil/escputil.c:248
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
msgid "Stylus Photo 1200"
-msgstr ""
+msgstr "Stylus Photo 1200"
-#: src/escputil/escputil.c:249
+#: src/escputil/escputil.c:273
msgid "Stylus Photo 1270"
-msgstr ""
+msgstr "Stylus Photo 1270"
-#: src/escputil/escputil.c:250
+#: src/escputil/escputil.c:274
msgid "Stylus Photo 1280"
-msgstr ""
+msgstr "Stylus Photo 1280"
-#: src/escputil/escputil.c:251
+#: src/escputil/escputil.c:275
msgid "Stylus Photo 1290"
-msgstr ""
+msgstr "Stylus Photo 1290"
-#: src/escputil/escputil.c:252
+#: src/escputil/escputil.c:276
msgid "Stylus Photo 2000P"
-msgstr ""
+msgstr "Stylus Photo 2000P"
-#: src/escputil/escputil.c:253
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
msgid "Stylus Pro 5000"
-msgstr ""
+msgstr "Stylus Pro 5000"
-#: src/escputil/escputil.c:254
+#: src/escputil/escputil.c:280
msgid "Stylus Pro 5500"
-msgstr ""
+msgstr "Stylus Pro 5500"
-#: src/escputil/escputil.c:255
+#: src/escputil/escputil.c:281
msgid "Stylus Pro 7000"
-msgstr ""
+msgstr "Stylus Pro 7000"
-#: src/escputil/escputil.c:256
+#: src/escputil/escputil.c:282
msgid "Stylus Pro 7500"
-msgstr ""
+msgstr "Stylus Pro 7500"
-#: src/escputil/escputil.c:257
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
msgid "Stylus Pro 9000"
-msgstr ""
+msgstr "Stylus Pro 9000"
-#: src/escputil/escputil.c:258
+#: src/escputil/escputil.c:285
msgid "Stylus Pro 9500"
-msgstr ""
+msgstr "Stylus Pro 9500"
-#: src/escputil/escputil.c:259
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
msgid "Stylus Pro 10000"
-msgstr ""
+msgstr "Stylus Pro 10000"
-#: src/escputil/escputil.c:260
+#: src/escputil/escputil.c:288
msgid "Stylus Scan 2000"
-msgstr ""
+msgstr "Stylus Scan 2000"
-#: src/escputil/escputil.c:261
+#: src/escputil/escputil.c:289
msgid "Stylus Scan 2500"
-msgstr ""
+msgstr "Stylus Scan 2500"
-#: src/escputil/escputil.c:341 src/escputil/escputil.c:350
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
msgid "You may only specify one printer or raw device."
-msgstr ""
+msgstr "Du kan kun spesifisere én skriver eller rå enhet."
-#: src/escputil/escputil.c:359
+#: src/escputil/escputil.c:402
msgid "You may only specify one printer model."
-msgstr ""
+msgstr "Du kan kun oppgi én skrivermodell."
-#: src/escputil/escputil.c:379
+#: src/escputil/escputil.c:422
#, c-format
msgid "Unknown option %c\n"
-msgstr ""
+msgstr "Ukjent flagg %c\n"
-#: src/escputil/escputil.c:439
+#: src/escputil/escputil.c:482
#, c-format
msgid "Cannot open device %s: %s\n"
-msgstr ""
+msgstr "Kan ikke åpne enhet %s: %s\n"
-#: src/escputil/escputil.c:462
+#: src/escputil/escputil.c:505
#, c-format
msgid "Cannot print to printer %s with %s\n"
-msgstr ""
+msgstr "Kan ikke skrive til skriver %s med %s\n"
-#: src/escputil/escputil.c:475 src/escputil/escputil.c:485
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
msgid "Unable to send command to printer\n"
+msgstr "Kan ikke sende kommando til skriver\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
msgstr ""
-#: src/escputil/escputil.c:578
-#, fuzzy
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Kan ikke lese fra %s: %s\n"
+
+#: src/escputil/escputil.c:638
msgid "Cyan"
-msgstr "Cyan:"
+msgstr "Cyan"
-#: src/escputil/escputil.c:579
-#, fuzzy
+#: src/escputil/escputil.c:639
msgid "Magenta"
-msgstr "Magenta:"
+msgstr "Magenta"
-#: src/escputil/escputil.c:580
-#, fuzzy
+#: src/escputil/escputil.c:640
msgid "Yellow"
-msgstr "Gul:"
+msgstr "Gul"
-#: src/escputil/escputil.c:581
+#: src/escputil/escputil.c:641
msgid "Light Cyan"
-msgstr ""
+msgstr "Lys cyan"
-#: src/escputil/escputil.c:582
-#, fuzzy
+#: src/escputil/escputil.c:642
msgid "Light Magenta"
-msgstr "Magenta:"
+msgstr "Lys magenta"
-#: src/escputil/escputil.c:596
-msgid "Obtaining ink levels requires using a raw device.\n"
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
msgstr ""
-#: src/escputil/escputil.c:602 src/escputil/escputil.c:677
-#: src/escputil/escputil.c:720
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Du må bruke en rå enhet for å hente blekknivå.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
#, c-format
msgid "Cannot open %s read/write: %s\n"
-msgstr ""
+msgstr "Kan ikke åpne %s med lese-/skriverettigheter: %s\n"
-#: src/escputil/escputil.c:611 src/escputil/escputil.c:688
-#: src/escputil/escputil.c:729
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
#, c-format
msgid "Cannot write to %s: %s\n"
-msgstr ""
+msgstr "Kan ikke skrive til %s: %s\n"
-#: src/escputil/escputil.c:618 src/escputil/escputil.c:695
-#: src/escputil/escputil.c:736
-#, c-format
-msgid "Cannot read from %s: %s\n"
-msgstr ""
-
-#: src/escputil/escputil.c:628
+#: src/escputil/escputil.c:700
msgid "Cannot parse output from printer\n"
-msgstr ""
+msgstr "Kan ikke tolke utskrift fra skriver\n"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Ink color"
-msgstr ""
+msgstr "Blekkfarge"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Percent remaining"
-msgstr ""
+msgstr "Prosent gjenstående"
-#: src/escputil/escputil.c:671
+#: src/escputil/escputil.c:737
msgid "Printer identification requires using a raw device.\n"
-msgstr ""
+msgstr "Du må bruke en rå enhet for å identifisere skriveren.\n"
-#: src/escputil/escputil.c:714
+#: src/escputil/escputil.c:776
msgid "Printer status requires using a raw device.\n"
-msgstr ""
+msgstr "Skriverstatus krever bruk av en rå enhet.\n"
-#: src/escputil/escputil.c:757
+#: src/escputil/escputil.c:815
msgid "Cleaning heads...\n"
-msgstr ""
+msgstr "Renser hoder...\n"
-#: src/escputil/escputil.c:766
+#: src/escputil/escputil.c:824
msgid "Running nozzle check, please ensure paper is in the printer.\n"
-msgstr ""
+msgstr "Kjører «nozzle»-sjekk, sjekk at det er papir i skriveren.\n"
-#: src/escputil/escputil.c:770
+#: src/escputil/escputil.c:828
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1858,7 +2266,7 @@ msgid ""
"\n"
msgstr ""
-#: src/escputil/escputil.c:805
+#: src/escputil/escputil.c:863
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1894,54 +2302,54 @@ msgid ""
"\n"
msgstr ""
-#: src/escputil/escputil.c:849
+#: src/escputil/escputil.c:907
msgid "Unable to send command to the printer, exiting.\n"
-msgstr ""
+msgstr "Kan ikke sende kommando til skriveren, avslutter.\n"
-#: src/escputil/escputil.c:867
+#: src/escputil/escputil.c:925
msgid ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
msgstr ""
-#: src/escputil/escputil.c:871
+#: src/escputil/escputil.c:929
msgid "Attempting to detect printer model..."
-msgstr ""
+msgstr "Prøver å finne identifisere skrivermodell..."
-#: src/escputil/escputil.c:876
+#: src/escputil/escputil.c:934
#, c-format
msgid ""
"\n"
"Cannot open %s read/write: %s\n"
msgstr ""
+"\n"
+"Kan ikke åpne %s med lese-/skriverettigheter: %s\n"
-#: src/escputil/escputil.c:884
+#: src/escputil/escputil.c:942
#, c-format
msgid ""
"\n"
"Cannot write to %s: %s\n"
msgstr ""
-
-#: src/escputil/escputil.c:890
-#, c-format
-msgid ""
"\n"
-"Cannot read from %s: %s\n"
-msgstr ""
+"Kan ikke skrive til %s: %s\n"
-#: src/escputil/escputil.c:903
+#: src/escputil/escputil.c:958
msgid ""
"\n"
"Cannot detect printer type.\n"
"Please use -m to specify your printer model.\n"
msgstr ""
+"\n"
+"Kan ikke finne skrivertype.\n"
+"Vennligst bruk -m for å spesifisere din skrivermodell.\n"
-#: src/escputil/escputil.c:920
+#: src/escputil/escputil.c:975
#, c-format
msgid "Printer model %s is not known.\n"
-msgstr ""
+msgstr "Skrivermodell %s er ukjent.\n"
-#: src/escputil/escputil.c:931
+#: src/escputil/escputil.c:986
msgid ""
"Please inspect the final output very carefully to ensure that your\n"
"printer is in proper alignment. You may now:\n"
@@ -1952,34 +2360,39 @@ msgid ""
"What do you want to do (s, q, r)?\n"
msgstr ""
-#: src/escputil/escputil.c:939 src/escputil/escputil.c:946
-#: src/escputil/escputil.c:959 src/escputil/escputil.c:975
-#: src/escputil/escputil.c:1046 src/escputil/escputil.c:1187
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
msgid "> "
-msgstr ""
+msgstr ">"
-#: src/escputil/escputil.c:944
+#: src/escputil/escputil.c:999
msgid ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
msgstr ""
+"Vennligst bekreft at du vil avslutte uten å lagre ved å skrive «q» igjen:\n"
-#: src/escputil/escputil.c:949
+#: src/escputil/escputil.c:1004
msgid ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
msgstr ""
+"OK, skriveren er justert, men justeringen er ikke lagret.\n"
+"Hvis du ønsker å lagre justeringen må d\n"
-#: src/escputil/escputil.c:956
+#: src/escputil/escputil.c:1011
msgid ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
msgstr ""
+"Vennligst bekreft at du vil gjenta justeringsprosessen ved å\n"
+"skrive «r»:\n"
-#: src/escputil/escputil.c:962
+#: src/escputil/escputil.c:1017
msgid "Repeating the alignment process.\n"
-msgstr ""
+msgstr "Gjentar justeringsprosessen.\n"
-#: src/escputil/escputil.c:968
+#: src/escputil/escputil.c:1023
msgid ""
"This will permanently alter the configuration of your printer.\n"
"WARNING: this procedure has not been approved by Seiko Epson, and\n"
@@ -1988,22 +2401,37 @@ msgid ""
"to your printer:\n"
msgstr ""
-#: src/escputil/escputil.c:978
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "I ferd med å lagre innstillinger..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "feilet!\n"
+
+#: src/escputil/escputil.c:1040
msgid ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
msgstr ""
-#: src/escputil/escputil.c:992
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "fullført!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Innstillingene for justering er lagret til skriveren.\n"
+
+#: src/escputil/escputil.c:1050
msgid "Unrecognized command.\n"
-msgstr ""
+msgstr "Kommandoen ble ikke gjenkjent.\n"
-#: src/escputil/escputil.c:995
+#: src/escputil/escputil.c:1053
msgid "Final command was not confirmed.\n"
-msgstr ""
+msgstr "Siste kommando ble ikke bekreftet.\n"
-#: src/escputil/escputil.c:1000
+#: src/escputil/escputil.c:1058
#, c-format
msgid ""
"This procedure assumes that your printer is an Epson %s.\n"
@@ -2014,58 +2442,59 @@ msgid ""
"alignment procedure.\n"
msgstr ""
-#: src/escputil/escputil.c:1025 src/escputil/escputil.c:1054
-#: src/escputil/escputil.c:1090 src/escputil/escputil.c:1166
-#: src/escputil/escputil.c:1177
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
msgid "Press enter to continue > "
-msgstr ""
+msgstr "Trykk linjeskift for å fortsette > "
-#: src/escputil/escputil.c:1036
-#, c-format
+#: src/escputil/escputil.c:1090
msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
msgstr ""
-#: src/escputil/escputil.c:1041
+#: src/escputil/escputil.c:1096
#, c-format
-msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
-msgstr ""
+msgid "Pass #%d"
+msgstr "Gjennomgang #%d"
-#: src/escputil/escputil.c:1051
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
msgid "Please insert a fresh sheet of paper.\n"
-msgstr ""
+msgstr "Vennligst sett inn et nytt ark.\n"
-#: src/escputil/escputil.c:1070 src/escputil/escputil.c:1206
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
msgid "Number out of range!\n"
-msgstr ""
+msgstr "Tallet er utenfor gyldig område!\n"
-#: src/escputil/escputil.c:1075 src/escputil/escputil.c:1211
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
msgid "I cannot understand what you typed!\n"
-msgstr ""
+msgstr "Kan ikke forstå det du skrev inn!\n"
-#: src/escputil/escputil.c:1081
+#: src/escputil/escputil.c:1132
#, c-format
msgid "The best pair of lines should be numbered between 1 and %d.\n"
msgstr ""
-#: src/escputil/escputil.c:1088
-#, c-format
-msgid ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
-msgstr ""
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Prøver å sette justering..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "fullført.\n"
-#: src/escputil/escputil.c:1093
+#: src/escputil/escputil.c:1143
#, c-format
-msgid "Aligning phase %d, and starting phase %d.\n"
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
msgstr ""
-#: src/escputil/escputil.c:1107
+#: src/escputil/escputil.c:1158
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2099,18 +2528,18 @@ msgid ""
"damage your printer!\n"
msgstr ""
-#: src/escputil/escputil.c:1157
+#: src/escputil/escputil.c:1208
#, c-format
msgid "Printer %s does not require color head alignment.\n"
-msgstr ""
+msgstr "Skriver %s krever ikke justering av fargehode.\n"
-#: src/escputil/escputil.c:1175
+#: src/escputil/escputil.c:1226
msgid ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
msgstr ""
-#: src/escputil/escputil.c:1181
+#: src/escputil/escputil.c:1232
msgid ""
"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
"This pattern will appear to have the least ``grain''.\n"
@@ -2119,14 +2548,14 @@ msgid ""
"Type a pattern number, or '?' for help.\n"
msgstr ""
-#: src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1268
#, c-format
msgid "The best pattern should be numbered between 1 and %d.\n"
msgstr ""
-#: src/escputil/escputil.c:1261
+#: src/escputil/escputil.c:1312
msgid "Error in input\n"
-msgstr ""
+msgstr "Feil i inndata\n"
#: src/gimp/gimp_color_window.c:193
msgid "Print Color Adjust"
@@ -2142,7 +2571,7 @@ msgstr "Lukk"
#: src/gimp/gimp_color_window.c:230
msgid "Image preview"
-msgstr ""
+msgstr "Forhåndsvisning av bilde"
#: src/gimp/gimp_color_window.c:240
msgid "Brightness:"
@@ -2248,13 +2677,17 @@ msgstr "Om"
msgid ""
"Print and\n"
"Save Settings"
-msgstr "Instillinger for glød"
+msgstr ""
+"Skriv ut og\n"
+"lagre innstillinger"
#: src/gimp/gimp_main_window.c:340
msgid ""
"Save\n"
"Settings"
-msgstr "Instillinger for glød"
+msgstr ""
+"Lagre\n"
+"innstillinger"
#: src/gimp/gimp_main_window.c:342
msgid "Print"
@@ -2301,7 +2734,7 @@ msgstr "Landskap"
#: src/gimp/gimp_main_window.c:458
msgid "Upside down"
-msgstr ""
+msgstr "Opp-ned"
#: src/gimp/gimp_main_window.c:460
msgid "Seascape"
@@ -2323,7 +2756,7 @@ msgstr "Venstre:"
#: src/gimp/gimp_main_window.c:487
msgid "Distance from the left of the paper to the image"
-msgstr ""
+msgstr "Avstand fra venstre kant av arket til bildet"
#: src/gimp/gimp_main_window.c:496
msgid "Top:"
@@ -2331,7 +2764,7 @@ msgstr "Øverst:"
#: src/gimp/gimp_main_window.c:500
msgid "Distance from the top of the paper to the image"
-msgstr ""
+msgstr "Avstand fra toppen av arket til bildet"
#: src/gimp/gimp_main_window.c:509
msgid "Right:"
@@ -2339,7 +2772,7 @@ msgstr "Høyre:"
#: src/gimp/gimp_main_window.c:513
msgid "Distance from the left of the paper to the right of the image"
-msgstr ""
+msgstr "Avstand fra venstre kant av arket til høyre kant av bildet"
#: src/gimp/gimp_main_window.c:523
msgid "Right Border:"
@@ -2347,7 +2780,7 @@ msgstr "Kant:"
#: src/gimp/gimp_main_window.c:527
msgid "Distance from the right of the paper to the image"
-msgstr ""
+msgstr "Avstand fra høyre kant av arket til bildet"
#: src/gimp/gimp_main_window.c:537
msgid "Bottom:"
@@ -2355,7 +2788,7 @@ msgstr "Nederst:"
#: src/gimp/gimp_main_window.c:541
msgid "Distance from the top of the paper to the bottom of the image"
-msgstr ""
+msgstr "Avstand fra toppen av arket til nedre kant av bildet"
#: src/gimp/gimp_main_window.c:551
msgid "Bottom Border:"
@@ -2363,11 +2796,11 @@ msgstr "Nedre kant"
#: src/gimp/gimp_main_window.c:555
msgid "Distance from the bottom of the paper to the image"
-msgstr ""
+msgstr "Avstand fra nedre kant av arket til bildet"
#: src/gimp/gimp_main_window.c:572
msgid "Center:"
-msgstr ""
+msgstr "Sentrer:"
#: src/gimp/gimp_main_window.c:576
msgid "Vertically"
@@ -2375,7 +2808,7 @@ msgstr "Vertikalt"
#: src/gimp/gimp_main_window.c:581
msgid "Center the image vertically on the paper"
-msgstr ""
+msgstr "Sentrer bildet vertikalt på arket"
#: src/gimp/gimp_main_window.c:587
msgid "Both"
@@ -2383,7 +2816,7 @@ msgstr "Begge"
#: src/gimp/gimp_main_window.c:592
msgid "Center the image on the paper"
-msgstr ""
+msgstr "Sentrer bildet på arket"
#: src/gimp/gimp_main_window.c:599
msgid "Horizontally"
@@ -2391,7 +2824,7 @@ msgstr "Horisontalt"
#: src/gimp/gimp_main_window.c:604
msgid "Center the image horizontally on the paper"
-msgstr ""
+msgstr "Sentrer bildet horisontalt på arket"
#: src/gimp/gimp_main_window.c:620
msgid "Setup Printer"
@@ -2411,7 +2844,7 @@ msgstr "Raskt heltall"
#: src/gimp/gimp_main_window.c:660
msgid "Select your printer model"
-msgstr ""
+msgstr "Velg din skrivermodell"
#.
#. * PPD file.
@@ -2422,7 +2855,7 @@ msgstr "PPD fil:"
#: src/gimp/gimp_main_window.c:714
msgid "Enter the correct PPD filename for your printer"
-msgstr ""
+msgstr "Skriv inn korrekt PPD-filnavn for din skriver"
#: src/gimp/gimp_main_window.c:717
msgid "Browse"
@@ -2430,7 +2863,7 @@ msgstr "Bla gjennom"
#: src/gimp/gimp_main_window.c:723
msgid "Choose the correct PPD filename for your printer"
-msgstr ""
+msgstr "Velg korrekt PPD-filnavn for din skriver"
#.
#. * Print command.
@@ -2462,23 +2895,23 @@ msgstr "PPD/Fil?"
#: src/gimp/gimp_main_window.c:789
msgid "Define New Printer"
-msgstr ""
+msgstr "Definer ny skriver"
#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
msgid "Printer Name:"
-msgstr ""
+msgstr "Skrivernavn:"
#: src/gimp/gimp_main_window.c:814
msgid "Enter the name you wish to give this logical printer"
-msgstr ""
+msgstr "Skriv inn navnet du ønsker å gi til denne logiske skriveren"
#: src/gimp/gimp_main_window.c:826
msgid "About Gimp-Print "
-msgstr ""
+msgstr "Om Gimp-Print"
#: src/gimp/gimp_main_window.c:836
msgid "Gimp-Print Version "
-msgstr ""
+msgstr "Gimp-Print versjon "
#: src/gimp/gimp_main_window.c:836
msgid ""
@@ -2519,7 +2952,7 @@ msgstr ""
#.
#: src/gimp/gimp_main_window.c:917
msgid "Setup Printer..."
-msgstr ""
+msgstr "Sett opp skriver..."
#: src/gimp/gimp_main_window.c:919
msgid ""
@@ -2532,7 +2965,7 @@ msgstr ""
#.
#: src/gimp/gimp_main_window.c:934
msgid "New Printer..."
-msgstr ""
+msgstr "Ny skriver..."
#: src/gimp/gimp_main_window.c:936
msgid ""
@@ -2546,7 +2979,7 @@ msgstr ""
#: src/gimp/gimp_main_window.c:960
msgid "Media Size:"
-msgstr ""
+msgstr "Mediestørrelse:"
#: src/gimp/gimp_main_window.c:969
msgid "Dimensions:"
@@ -2558,7 +2991,7 @@ msgstr "Bredde:"
#: src/gimp/gimp_main_window.c:983
msgid "Width of the paper that you wish to print to"
-msgstr ""
+msgstr "Bredde på papiret du skal skrive ut på"
#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
msgid "Height:"
@@ -2566,15 +2999,15 @@ msgstr "Høyde:"
#: src/gimp/gimp_main_window.c:1000
msgid "Height of the paper that you wish to print to"
-msgstr ""
+msgstr "Høyde på papiret du skal skrive ut på"
#: src/gimp/gimp_main_window.c:1016
msgid "Type of media you're printing to"
-msgstr ""
+msgstr "Type media du skal skrive ut på"
#: src/gimp/gimp_main_window.c:1019
msgid "Media Type:"
-msgstr ""
+msgstr "Medietype:"
#: src/gimp/gimp_main_window.c:1032
msgid "Source (input slot) of media you're printing to"
@@ -2582,11 +3015,11 @@ msgstr ""
#: src/gimp/gimp_main_window.c:1035
msgid "Media Source:"
-msgstr ""
+msgstr "Mediekilde:"
#: src/gimp/gimp_main_window.c:1048
msgid "Type of ink in the printer"
-msgstr ""
+msgstr "Type blekk i skriveren"
#: src/gimp/gimp_main_window.c:1051
msgid "Ink Type:"
@@ -2594,7 +3027,7 @@ msgstr "Type:"
#: src/gimp/gimp_main_window.c:1064
msgid "Resolution and quality of the print"
-msgstr ""
+msgstr "Oppløsning og kvalitet på utskriften"
#: src/gimp/gimp_main_window.c:1067
msgid "Resolution:"
@@ -2610,7 +3043,7 @@ msgstr "Skalering"
#: src/gimp/gimp_main_window.c:1109
msgid "Set the scale (size) of the image"
-msgstr ""
+msgstr "Sett skalering (størrelse) på bildet"
#: src/gimp/gimp_main_window.c:1142
msgid ""
@@ -2624,7 +3057,7 @@ msgstr "Prosent"
#: src/gimp/gimp_main_window.c:1154
msgid "Scale the print to the size of the page"
-msgstr ""
+msgstr "Skaler utskriften til størrelsen på papiret"
#: src/gimp/gimp_main_window.c:1160
msgid "PPI"
@@ -2632,15 +3065,15 @@ msgstr "PPI"
#: src/gimp/gimp_main_window.c:1166
msgid "Scale the print to the number of dots per inch"
-msgstr ""
+msgstr "Skaler utskriften til antall punkter per tomme"
#: src/gimp/gimp_main_window.c:1192
msgid "Set the width of the print"
-msgstr ""
+msgstr "Sett bredde på utskriften"
#: src/gimp/gimp_main_window.c:1205
msgid "Set the height of the print"
-msgstr ""
+msgstr "Sett høyde for utskriften"
#: src/gimp/gimp_main_window.c:1225
msgid "Units:"
@@ -2648,7 +3081,7 @@ msgstr "Enheter:"
#: src/gimp/gimp_main_window.c:1230
msgid "Select the base unit of measurement for printing"
-msgstr ""
+msgstr "Velg basis måleenhet for utskrift"
#: src/gimp/gimp_main_window.c:1233
msgid "Inch"
@@ -2656,7 +3089,7 @@ msgstr "Tomme"
#: src/gimp/gimp_main_window.c:1240
msgid "Set the base unit of measurement to inches"
-msgstr ""
+msgstr "Sett basis måleenhet til tommer"
#: src/gimp/gimp_main_window.c:1246
msgid "cm"
@@ -2664,7 +3097,7 @@ msgstr "cm"
#: src/gimp/gimp_main_window.c:1252
msgid "Set the base unit of measurement to centimetres"
-msgstr ""
+msgstr "Sett basis måleenhet til centimeter"
#.
#. * The "image size" button
@@ -2674,14 +3107,16 @@ msgid ""
"Use Original\n"
"Image Size"
msgstr ""
+"Bruk opprinnelig\n"
+"bildestørrelse"
#: src/gimp/gimp_main_window.c:1268
msgid "Set the print size to the size of the image"
-msgstr ""
+msgstr "Sett størrelsen på utskriften til størrelsen på bildet"
#: src/gimp/gimp_main_window.c:1292
msgid "Image / Output Settings"
-msgstr ""
+msgstr "Innstillinger for bilde / utskrift"
#: src/gimp/gimp_main_window.c:1305
msgid "Image Type:"
@@ -2711,7 +3146,7 @@ msgstr "Utskriftstype:"
#: src/gimp/gimp_main_window.c:1382
msgid "Select the desired output type"
-msgstr ""
+msgstr "Velg ønsket type for utdata"
#: src/gimp/gimp_main_window.c:1385
msgid "Color"
@@ -2719,7 +3154,7 @@ msgstr "Farger"
#: src/gimp/gimp_main_window.c:1391
msgid "Color output"
-msgstr ""
+msgstr "Fargeutskrift"
#: src/gimp/gimp_main_window.c:1396
msgid "Grayscale"
@@ -2731,7 +3166,7 @@ msgstr ""
#: src/gimp/gimp_main_window.c:1410
msgid "Black and White"
-msgstr ""
+msgstr "Sort-hvitt"
#: src/gimp/gimp_main_window.c:1417
msgid "Print in black and white (no color, and no shades of gray)"
@@ -2742,7 +3177,7 @@ msgstr ""
#.
#: src/gimp/gimp_main_window.c:1428
msgid "Adjust Output..."
-msgstr ""
+msgstr "Juster utskrift..."
#: src/gimp/gimp_main_window.c:1435
msgid ""
@@ -2755,9 +3190,93 @@ msgstr "Skriver ut..."
#: src/gimp/print.c:166
msgid "<Image>/File/Print..."
-msgstr "<Image>/Filter/Farger/Alien Map"
+msgstr "<Image>/Fil/Skriv ut..."
-#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:833
-#: src/gimp/print.c:1184
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
msgid "File"
msgstr "Fil"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Ingen rad for buffer\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Skriver %s er ikke en kjent modell\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Ukjent flagg %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f av %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init feilet %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Kan ikke åpne fildeskriptor: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Kan ikke åpne %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Ukjent skriver %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Ugyldige parametere; kan ikke fortsette!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Henting av neste rad feilet ved %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Kan ikke lese fra %s: %s\n"
diff --git a/po/pl.gmo b/po/pl.gmo
new file mode 100644
index 0000000..66fa973
--- /dev/null
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index c565f82..5c0cc32 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gimp-print\n"
-"POT-Creation-Date: 2001-11-24 10:41-0500\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
"PO-Revision-Date: 2001-10-18 11:53+0100\n"
"Last-Translator: GNOME PL Team <translators@gnome.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -76,798 +76,882 @@ msgstr "%s: opcja \"-W %s\" jest niejednoznaczna\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: opcja \"-W %s\" nie pozwala na u¿ycie argumentu\n"
-#: src/main/print-canon.c:1310 src/main/print-escp2.c:1652
-#: src/main/print-escp2.c:1711 src/main/print-lexmark.c:882
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
msgid "Plain Paper"
msgstr "Zwyk³y papier"
-#: src/main/print-canon.c:1311 src/main/print-escp2.c:1664
-#: src/main/print-escp2.c:1723 src/main/print-lexmark.c:888
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
msgid "Transparencies"
msgstr "Przezroczyste"
-#: src/main/print-canon.c:1312
+#: src/main/print-canon.c:1174
msgid "Back Print Film"
msgstr ""
-#: src/main/print-canon.c:1313
+#: src/main/print-canon.c:1175
msgid "Fabric Sheets"
msgstr ""
-#: src/main/print-canon.c:1314
+#: src/main/print-canon.c:1176
msgid "Envelope"
msgstr "Koperta"
-#: src/main/print-canon.c:1315
+#: src/main/print-canon.c:1177
msgid "High Resolution Paper"
msgstr ""
-#: src/main/print-canon.c:1316
+#: src/main/print-canon.c:1178
msgid "T-Shirt Transfers"
msgstr ""
-#: src/main/print-canon.c:1317
+#: src/main/print-canon.c:1179
msgid "High Gloss Film"
msgstr ""
-#: src/main/print-canon.c:1318
+#: src/main/print-canon.c:1180
msgid "Glossy Photo Paper"
msgstr ""
-#: src/main/print-canon.c:1319
+#: src/main/print-canon.c:1181
msgid "Glossy Photo Cards"
msgstr ""
-#: src/main/print-canon.c:1320
+#: src/main/print-canon.c:1182
msgid "Photo Paper Pro"
msgstr ""
-#: src/main/print-canon.c:1321 src/main/print-escp2.c:1698
-#: src/main/print-escp2.c:1757 src/main/print-lexmark.c:918
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
msgid "Other"
msgstr "Inne"
-#: src/main/print-canon.c:1594 src/main/print-lexmark.c:1133
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
msgid "Auto Sheet Feeder"
msgstr ""
-#: src/main/print-canon.c:1595 src/main/print-lexmark.c:1134
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
msgid "Manual with Pause"
msgstr ""
-#: src/main/print-canon.c:1596 src/main/print-lexmark.c:1135
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
msgid "Manual without Pause"
msgstr ""
-#: src/escputil/escputil.c:577 src/main/print-canon.c:1689
-#: src/main/print-lexmark.c:639
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
msgid "Black"
msgstr "Czarny"
-#: src/main/print-canon.c:1694
+#: src/main/print-canon.c:1563
msgid "CMY Color"
msgstr ""
-#: src/main/print-canon.c:1699
+#: src/main/print-canon.c:1568
msgid "CMYK Color"
msgstr ""
-#: src/main/print-canon.c:1704
+#: src/main/print-canon.c:1573
msgid "Photo CcMmY Color"
msgstr ""
-#: src/main/print-canon.c:1709
+#: src/main/print-canon.c:1578
msgid "Photo CcMmYK Color"
msgstr ""
-#: src/main/print-dither.c:62
+#: src/main/print-dither.c:64
msgid "Adaptive Hybrid"
msgstr ""
-#: src/main/print-dither.c:63
+#: src/main/print-dither.c:65
msgid "Ordered"
msgstr ""
-#: src/main/print-dither.c:64
+#: src/main/print-dither.c:66
msgid "Fast"
msgstr ""
-#: src/main/print-dither.c:65
+#: src/main/print-dither.c:67
msgid "Very Fast"
msgstr ""
-#: src/main/print-dither.c:66
+#: src/main/print-dither.c:68
msgid "Hybrid Floyd-Steinberg"
msgstr ""
-#: src/main/print-escp2.c:1655 src/main/print-escp2.c:1714
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+#, fuzzy
+msgid "EvenTone"
+msgstr "Koperta"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr ""
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr ""
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+#, fuzzy
+msgid "Seven Color Photo"
+msgstr "Stylus Color Pro"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+#, fuzzy
+msgid "Two Level Grayscale"
+msgstr "Odcienie szaro¶ci"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr ""
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
msgid "Plain Paper Fast Load"
msgstr ""
#. 7.25 * 10.5in
-#: src/main/print-escp2.c:1658 src/main/print-escp2.c:1717
-#: src/main/print-util.c:532
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
msgid "Postcard"
msgstr ""
-#: src/main/print-escp2.c:1661 src/main/print-escp2.c:1720
-#: src/main/print-lexmark.c:885
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
msgid "Glossy Film"
msgstr ""
-#: src/main/print-escp2.c:1667 src/main/print-escp2.c:1726
-#: src/main/print-lexmark.c:891
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
msgid "Envelopes"
msgstr "Koperty"
-#: src/main/print-escp2.c:1670 src/main/print-escp2.c:1729
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
msgid "Back Light Film"
msgstr ""
-#: src/main/print-escp2.c:1673 src/main/print-escp2.c:1732
-#: src/main/print-lexmark.c:894
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
msgid "Matte Paper"
msgstr ""
-#: src/main/print-escp2.c:1676 src/main/print-escp2.c:1735
-#: src/main/print-lexmark.c:897
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
msgid "Inkjet Paper"
msgstr ""
-#: src/main/print-escp2.c:1679 src/main/print-escp2.c:1738
-#: src/main/print-lexmark.c:900
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
msgid "Photo Quality Inkjet Paper"
msgstr ""
-#: src/main/print-escp2.c:1682 src/main/print-escp2.c:1741
-#: src/main/print-lexmark.c:903
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
msgid "Photo Paper"
msgstr ""
-#: src/main/print-escp2.c:1685 src/main/print-escp2.c:1744
-#: src/main/print-lexmark.c:906
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
msgid "Premium Glossy Photo Paper"
msgstr ""
-#: src/main/print-escp2.c:1689 src/main/print-escp2.c:1748
-#: src/main/print-lexmark.c:909
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
msgid "Premium Luster Photo Paper"
msgstr ""
-#: src/main/print-escp2.c:1692 src/main/print-escp2.c:1751
-#: src/main/print-lexmark.c:912
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
msgid "Photo Quality Glossy Paper"
msgstr ""
-#: src/main/print-escp2.c:1695 src/main/print-escp2.c:1754
-#: src/main/print-lexmark.c:915
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
msgid "Ilford Heavy Paper"
msgstr ""
-#: src/main/print-escp2.c:2825 src/main/print-escp2.c:2827
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+#, fuzzy
+msgid "ColorLife Paper"
+msgstr "Zwyk³y papier"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
msgid "360 x 90 DPI Fast Economy Draft"
msgstr ""
-#: src/main/print-escp2.c:2830 src/main/print-escp2.c:2832
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
msgid "360 x 120 DPI Economy Draft"
msgstr ""
-#: src/main/print-escp2.c:2835 src/main/print-escp2.c:2837
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
msgid "180 DPI Economy Draft"
msgstr ""
-#: src/main/print-escp2.c:2840 src/main/print-escp2.c:2842
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
msgid "360 x 240 DPI Draft"
msgstr ""
-#: src/main/print-escp2.c:2845 src/main/print-escp2.c:2847
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
msgid "360 x 180 DPI Draft"
msgstr ""
-#: src/main/print-escp2.c:2850 src/main/print-escp2.c:2858
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
msgid "360 DPI"
msgstr "360 DPI"
-#: src/main/print-escp2.c:2852 src/main/print-escp2.c:2860
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
msgid "360 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2854
-msgid "360 DPI Microweave"
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2856
-msgid "360 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2862
-msgid "360 DPI Full Overlap"
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
msgstr ""
-#: src/main/print-escp2.c:2864
-msgid "360 DPI Full Overlap Unidirectional"
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2866
-msgid "360 DPI FOL2"
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2868
-msgid "360 DPI FOL2 Unidirectional"
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2870
-msgid "360 DPI MW2"
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2872
-msgid "360 DPI MW2 Unidirectional"
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
msgstr ""
-#: src/main/print-escp2.c:2875 src/main/print-escp2.c:2879
-msgid "720 x 360 DPI"
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2877 src/main/print-escp2.c:2881
-msgid "720 x 360 DPI Unidirectional"
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
msgstr ""
-#: src/main/print-escp2.c:2883
-msgid "720 x 360 DPI Microweave"
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2885
-msgid "720 x 360 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2887
-msgid "720 x 360 DPI FOL"
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
msgstr ""
-#: src/main/print-escp2.c:2889
-msgid "720 x 360 DPI FOL Unidirectional"
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2891
-msgid "720 x 360 DPI FOL2"
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
msgstr ""
-#: src/main/print-escp2.c:2893
-msgid "720 x 360 DPI FOL2 Unidirectional"
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
msgstr ""
-#: src/main/print-escp2.c:2895
-msgid "720 x 360 DPI MW2"
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2897
-msgid "720 x 360 DPI MW2 Unidirectional"
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
msgstr ""
-#: src/main/print-escp2.c:2900 src/main/print-escp2.c:2916
-msgid "720 DPI"
-msgstr "720 DPI"
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr ""
-#: src/main/print-escp2.c:2902 src/main/print-escp2.c:2918
-msgid "720 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
msgstr ""
-#: src/main/print-escp2.c:2904
-msgid "720 DPI Microweave"
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2906
-msgid "720 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
msgstr ""
-#: src/main/print-escp2.c:2908
-msgid "720 DPI Full Overlap"
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2910
-msgid "720 DPI Full Overlap Unidirectional"
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
msgstr ""
-#: src/main/print-escp2.c:2912
-msgid "720 DPI Four Pass"
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2914
-msgid "720 DPI Four Pass Unidirectional"
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
msgstr ""
-#: src/main/print-escp2.c:2920
-msgid "720 DPI High Quality"
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2922
-msgid "720 DPI High Quality Unidirectional"
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
msgstr ""
-#: src/main/print-escp2.c:2924
-msgid "720 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2927 src/main/print-escp2.c:2943
-msgid "1440 x 720 DPI"
-msgstr "1440 x 720 DPI"
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr ""
-#: src/main/print-escp2.c:2929 src/main/print-escp2.c:2945
-msgid "1440 x 720 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2931
-msgid "1440 x 720 DPI Microweave"
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
msgstr ""
-#: src/main/print-escp2.c:2933
-msgid "1440 x 720 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2935
+#: src/main/print-escp2-data.c:4149
msgid "1440 x 720 DPI FOL"
msgstr ""
-#: src/main/print-escp2.c:2937
+#: src/main/print-escp2-data.c:4151
msgid "1440 x 720 DPI FOL Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2939
+#: src/main/print-escp2-data.c:4153
msgid "1440 x 720 DPI Four Pass"
msgstr ""
-#: src/main/print-escp2.c:2941
+#: src/main/print-escp2-data.c:4155
msgid "1440 x 720 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2947
-msgid "1440 x 720 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2950
-msgid "2880 x 720 DPI"
+#: src/main/print-escp2-data.c:4162
+#, fuzzy
+msgid "2880 x 720 DPI FOL"
msgstr "2880 x 720 DPI"
-#: src/main/print-escp2.c:2952
-msgid "2880 x 720 DPI Unidirectional"
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
msgstr ""
-#.
-#. * Nothing thus far supports 1440 DPI vertical resolution
-#.
-#: src/main/print-escp2.c:2958
-msgid "1440 x 1440 DPI"
+#: src/main/print-escp2-data.c:4166
+#, fuzzy
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
msgstr "1440 x 1440 DPI"
-#: src/main/print-escp2.c:2960
-msgid "1440 x 1440 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2963
-msgid "2880 x 1440 DPI"
-msgstr "2880 x 1440 DPI"
+#: src/main/print-escp2-data.c:4175
+#, fuzzy
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI"
-#.
-#. * These resolutions have no practical use; they're neither as good as
-#. * nor any faster than 720x720 DPI. They exist to permit testing
-#. * 2880x720 (4:1 aspect) on 1440x720 printers.
-#.
-#: src/main/print-escp2.c:2971
-msgid "1440 x 360 DPI"
-msgstr "1440 x 360 DPI"
+#: src/main/print-escp2-data.c:4177
+#, fuzzy
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI"
-#: src/main/print-escp2.c:2973
-msgid "1440 x 360 DPI Unidirectional"
-msgstr ""
+#: src/main/print-escp2-data.c:4179
+#, fuzzy
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI"
-#: src/main/print-escp2.c:2975
-msgid "1440 x 360 DPI High Quality"
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2977
-msgid "1440 x 360 DPI High Quality Uni"
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2979
-msgid "1440 x 360 DPI Highest Quality"
+#: src/main/print-escp2-data.c:4188
+#, fuzzy
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4190
+#, fuzzy
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4192
+#, fuzzy
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
msgstr ""
-#: src/main/print-escp2.c:2995
-msgid "Seven Color Enhanced"
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
msgstr ""
-#: src/main/print-escp2.c:2996
-msgid "Six Color Enhanced Composite"
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
msgstr ""
-#: src/main/print-escp2.c:2997 src/main/print-lexmark.c:629
-#: src/main/print-lexmark.c:709
-msgid "Six Color Photo"
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
msgstr ""
-#: src/main/print-escp2.c:2998 src/main/print-lexmark.c:634
-#: src/main/print-lexmark.c:714
-msgid "Five Color Photo Composite"
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
msgstr ""
-#. output_type ncolors used_colors pass_length v_top_head_offset
-#. * h_catridge_offset
-#. * h_direction_offset
-#. * head_offset
-#: src/main/print-escp2.c:2999 src/main/print-lexmark.c:619
-#: src/main/print-lexmark.c:699
-msgid "Four Color Standard"
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
msgstr ""
-#: src/main/print-escp2.c:3000 src/main/print-lexmark.c:624
-#: src/main/print-lexmark.c:704
-msgid "Three Color Composite"
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
msgstr ""
-#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2.c:3323
-#: src/main/print-pcl.c:198
-msgid "Standard"
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
msgstr ""
-#: src/main/print-escp2.c:3325
-msgid "Roll Feed"
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
msgstr ""
#. name hres vres softw v_pass overs unidir resid
-#: src/main/print-lexmark.c:595 src/main/print-lexmark.c:681
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
msgid "300 DPI x 600 DPI"
msgstr "300 DPI x 600 DPI"
-#: src/main/print-lexmark.c:596 src/main/print-lexmark.c:682
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
msgid "600 DPI"
msgstr "600 DPI"
-#: src/main/print-lexmark.c:597 src/main/print-lexmark.c:683
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
msgid "600 DPI high quality"
msgstr ""
-#: src/main/print-lexmark.c:598 src/main/print-lexmark.c:684
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
msgid "600 DPI Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:599 src/main/print-lexmark.c:685
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
msgid "1200 DPI"
msgstr "1200 DPI"
-#: src/main/print-lexmark.c:600 src/main/print-lexmark.c:686
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
msgid "1200 DPI high quality"
msgstr ""
-#: src/main/print-lexmark.c:601 src/main/print-lexmark.c:687
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
msgid "1200 DPI highest quality"
msgstr ""
-#: src/main/print-lexmark.c:602 src/main/print-lexmark.c:688
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
msgid "1200 DPI Unidirectional"
msgstr ""
-#: src/main/print-lexmark.c:603
+#: src/main/print-lexmark.c:630
msgid "2400 DPI x 1200 DPI"
msgstr "2400 DPI x 1200 DPI"
-#: src/main/print-lexmark.c:604
+#: src/main/print-lexmark.c:631
msgid "2400 DPI x 1200 DPI high quality"
msgstr ""
-#: src/main/print-lexmark.c:605
+#: src/main/print-lexmark.c:632
msgid "2400 DPI x 1200 DPI highest quality"
msgstr ""
-#: src/main/print-lexmark.c:607
+#: src/main/print-lexmark.c:634
msgid "test print"
msgstr ""
-#. 11in x 17in
-#: src/main/print-pcl.c:108 src/main/print-util.c:530
-msgid "Executive"
-msgstr ""
-
-#. US Exec (7.25 x 10.5 in)
-#: src/main/print-pcl.c:109 src/main/print-util.c:524
-msgid "Letter"
-msgstr ""
-
-#. US Letter (8.5 x 11 in)
-#: src/main/print-pcl.c:110 src/main/print-util.c:526
-msgid "Legal"
-msgstr ""
-
-#. US Legal (8.5 x 14 in)
-#: src/main/print-pcl.c:111 src/main/print-util.c:528
-msgid "Tabloid"
-msgstr ""
-
-#. US Tabloid (11 x 17 in)
-#: src/main/print-pcl.c:112 src/main/print-pcl.c:199 src/main/print-util.c:548
-msgid "Manual"
-msgstr ""
-
-#. US Manual/Statement (5.5 x 8.5 in)
-#: src/main/print-pcl.c:113
-msgid "13x19"
-msgstr "13x19"
-
-#. US 13x19/Super B (13 x 19 in)
-#: src/main/print-pcl.c:114 src/main/print-util.c:599
-msgid "A5"
-msgstr "A5"
-
-#. ISO/JIS A5 (148 x 210 mm)
-#: src/main/print-pcl.c:115 src/main/print-util.c:597
-msgid "A4"
-msgstr "A4"
-
-#. ISO/JIS A4 (210 x 297 mm)
-#: src/main/print-pcl.c:116 src/main/print-util.c:595
-msgid "A3"
-msgstr "A3"
-
-#. ISO/JIS A3 (297 x 420 mm)
-#: src/main/print-pcl.c:117 src/main/print-util.c:681
-msgid "B5 JIS"
-msgstr "B5 JIS"
-
-#. JIS B5 (182 x 257 mm).
-#: src/main/print-pcl.c:118 src/main/print-util.c:679
-msgid "B4 JIS"
-msgstr "B4 JIS"
-
-#. JIS B4 (257 x 364 mm).
-#: src/main/print-pcl.c:119 src/main/print-util.c:783
-msgid "Hagaki Card"
-msgstr ""
-
-#. Japanese Hagaki Card (100 x 148 mm)
-#: src/main/print-pcl.c:120 src/main/print-util.c:785
-msgid "Oufuku Card"
-msgstr ""
-
-#. Japanese Oufuku Card (148 x 200 mm)
-#: src/main/print-pcl.c:121 src/main/print-util.c:601
-msgid "A6"
-msgstr "A6"
-
-#. ISO/JIS A6 card
-#: src/main/print-pcl.c:122 src/main/print-util.c:536
-msgid "4x6"
-msgstr "4x6"
-
-#. US Index card (4 x 6 in)
-#: src/main/print-pcl.c:123 src/main/print-util.c:542
-msgid "5x8"
-msgstr "5x8"
-
-#. US Index card (5 x 8 in)
-#: src/main/print-pcl.c:124 src/main/print-util.c:534
-msgid "3x5"
-msgstr "3x5"
-
-#. US Index card (3 x 5 in)
-#: src/main/print-pcl.c:125
-msgid "Monarch"
-msgstr ""
-
-#. Monarch Envelope (3 7/8 x 7 1/2 in)
-#: src/main/print-pcl.c:126 src/main/print-util.c:793
-msgid "Commercial 10"
-msgstr ""
-
-#. US Commercial 10 Envelope (4.125 x 9.5 in) Portrait
-#: src/main/print-pcl.c:127 src/main/print-util.c:713
-msgid "DL"
-msgstr "DL"
-
-#. DL envelope (110 x 220 mm) Portrait
-#: src/main/print-pcl.c:128 src/main/print-util.c:707
-msgid "C5"
-msgstr "C5"
-
-#. C5 envelope (162 x 229 mm)
-#: src/main/print-pcl.c:129 src/main/print-util.c:711
-msgid "C6"
-msgstr "C6"
-
-#. C6 envelope (114 x 162 mm)
-#: src/main/print-pcl.c:130 src/main/print-util.c:795
-msgid "A2 Invitation"
-msgstr ""
-
-#. US A2 Invitation envelope (4 3/8 x 5 3/4 in)
-#: src/main/print-pcl.c:131
-msgid "Long 3"
-msgstr ""
-
-#. Japanese Long Envelope #3 (120 x 235 mm)
-#: src/main/print-pcl.c:132
-msgid "Long 4"
-msgstr ""
-
-#. Japanese Long Envelope #4 (90 x 205 mm)
-#: src/main/print-pcl.c:133
-msgid "Kaku"
-msgstr ""
-
-#. Japanese Kaku Envelope (240 x 332.1 mm)
-#. *** MRS: this size not supported by print-util funcs! ***
-#: src/main/print-pcl.c:135
-msgid "HP Greeting Card"
-msgstr ""
-
-#: src/main/print-pcl.c:153
+#: src/main/print-pcl.c:157
msgid "Plain"
msgstr ""
-#: src/main/print-pcl.c:154
+#: src/main/print-pcl.c:158
msgid "Bond"
msgstr ""
-#: src/main/print-pcl.c:155
+#: src/main/print-pcl.c:159
msgid "Premium"
msgstr ""
-#: src/main/print-pcl.c:156
+#: src/main/print-pcl.c:160
msgid "Glossy Photo"
msgstr ""
-#: src/main/print-pcl.c:157
+#: src/main/print-pcl.c:161
msgid "Transparency"
msgstr "Przezroczysto¶æ"
-#: src/main/print-pcl.c:158
+#: src/main/print-pcl.c:162
msgid "Quick-dry Photo"
msgstr ""
-#: src/main/print-pcl.c:159
+#: src/main/print-pcl.c:163
msgid "Quick-dry Transparency"
msgstr ""
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr ""
+
#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
-#: src/main/print-pcl.c:201
+#: src/main/print-pcl.c:205
msgid "Tray 1"
msgstr ""
-#: src/main/print-pcl.c:202 src/main/print-pcl.c:208
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
msgid "Tray 2"
msgstr ""
-#: src/main/print-pcl.c:203
+#: src/main/print-pcl.c:207
msgid "Tray 3"
msgstr ""
-#: src/main/print-pcl.c:204
+#: src/main/print-pcl.c:208
msgid "Tray 4"
msgstr ""
-#: src/main/print-pcl.c:205
+#: src/main/print-pcl.c:209
msgid "Portable Sheet Feeder"
msgstr ""
-#: src/main/print-pcl.c:206
+#: src/main/print-pcl.c:210
msgid "Desktop Sheet Feeder"
msgstr ""
-#: src/main/print-pcl.c:207
+#: src/main/print-pcl.c:211
msgid "Tray"
msgstr ""
-#: src/main/print-pcl.c:209
+#: src/main/print-pcl.c:213
msgid "Optional Source"
msgstr ""
-#: src/main/print-pcl.c:210
+#: src/main/print-pcl.c:214
msgid "Autoselect"
msgstr ""
-#: src/main/print-pcl.c:224
+#: src/main/print-pcl.c:228
msgid "150x150 DPI"
msgstr "150x150 DPI"
-#: src/main/print-pcl.c:225
+#: src/main/print-pcl.c:229
msgid "300x300 DPI"
msgstr "300x300 DPI"
-#: src/main/print-pcl.c:226
+#: src/main/print-pcl.c:230
msgid "600x300 DPI"
msgstr "600x300 DPI"
-#: src/main/print-pcl.c:227
+#: src/main/print-pcl.c:231
msgid "600x600 DPI monochrome"
msgstr ""
-#: src/main/print-pcl.c:228
+#: src/main/print-pcl.c:232
msgid "600x600 DPI"
msgstr "600x600 DPI"
-#: src/main/print-pcl.c:229
+#: src/main/print-pcl.c:233
msgid "1200x600 DPI"
msgstr "1200x600 DPI"
-#: src/main/print-pcl.c:230
+#: src/main/print-pcl.c:234
msgid "2400x600 DPI"
msgstr "2400x600 DPI"
-#: src/main/print-pcl.c:1563
+#: src/main/print-pcl.c:1763
msgid "Color + Black Cartridges"
msgstr ""
-#: src/main/print-pcl.c:1564
+#: src/main/print-pcl.c:1764
msgid "Color + Photo Cartridges"
msgstr ""
#. Name of file or command to print to
-#: src/main/print-util.c:125 src/main/print-util.c:159
-#: src/main/print-util.c:193
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
msgid "ps2"
msgstr ""
-#: src/main/print-util.c:538
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr ""
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr ""
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr ""
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr ""
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
msgid "Epson 4x6 Photo Paper"
msgstr ""
-#: src/main/print-util.c:540
+#: src/main/print-util.c:549
msgid "5x7"
msgstr "5x7"
-#: src/main/print-util.c:544
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
msgid "6x8"
msgstr "6x8"
-#: src/main/print-util.c:546
+#: src/main/print-util.c:555
msgid "8x10"
msgstr "8x10"
#. 5.5in x 8.5in
-#: src/main/print-util.c:550
+#: src/main/print-util.c:559
msgid "12x18"
msgstr "12x18"
-#: src/main/print-util.c:552
+#: src/main/print-util.c:561
msgid "Super B 13x19"
msgstr ""
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
#. Other common photographic paper sizes
-#: src/main/print-util.c:556
+#: src/main/print-util.c:567
msgid "8x12"
msgstr "8x12"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:558
+#: src/main/print-util.c:569
msgid "11x14"
msgstr "11x14"
-#: src/main/print-util.c:560
+#: src/main/print-util.c:571
msgid "16x20"
msgstr "16x20"
-#: src/main/print-util.c:562
+#: src/main/print-util.c:573
msgid "16x24"
msgstr "16x24"
#. 20x24 for 35 mm
-#: src/main/print-util.c:564
+#: src/main/print-util.c:575
msgid "20x24"
msgstr "20x24"
-#: src/main/print-util.c:566
+#: src/main/print-util.c:577
msgid "20x30"
msgstr "20x30"
#. 24x30 for 35 mm
-#: src/main/print-util.c:568
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
msgid "24x30"
msgstr "24x30"
-#: src/main/print-util.c:570
+#: src/main/print-util.c:583
msgid "24x36"
msgstr "24x36"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:572
+#: src/main/print-util.c:585
msgid "30x40"
msgstr "30x40"
@@ -880,47 +964,72 @@ msgstr "30x40"
#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
#. * size is obtained by doubling or halving another A size.
#.
-#: src/main/print-util.c:585
+#: src/main/print-util.c:598
msgid "4A"
msgstr "4A"
#. 1682mm x 2378mm
-#: src/main/print-util.c:587
+#: src/main/print-util.c:600
msgid "2A"
msgstr "2A"
#. 1189mm x 1682mm
-#: src/main/print-util.c:589
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
msgid "A0"
msgstr "A0"
#. 841mm x 1189mm
-#: src/main/print-util.c:591
+#: src/main/print-util.c:606
msgid "A1"
msgstr "A1"
#. 594mm x 841mm
-#: src/main/print-util.c:593
+#: src/main/print-util.c:608
msgid "A2"
msgstr "A2"
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
#. 105mm x 148mm
-#: src/main/print-util.c:603
+#: src/main/print-util.c:618
msgid "A7"
msgstr "A7"
#. 74mm x 105mm
-#: src/main/print-util.c:605
+#: src/main/print-util.c:620
msgid "A8"
msgstr "A8"
#. 52mm x 74mm
-#: src/main/print-util.c:607
+#: src/main/print-util.c:622
msgid "A9"
msgstr "A9"
#. 37mm x 52mm
-#: src/main/print-util.c:609
+#: src/main/print-util.c:624
msgid "A10"
msgstr "A10"
@@ -929,27 +1038,27 @@ msgstr "A10"
#. * Stock sizes for normal trims.
#. * Allowance for trim is 3 millimetres.
#.
-#: src/main/print-util.c:616
+#: src/main/print-util.c:631
msgid "RA0"
msgstr "RA0"
#. 860mm x 1220mm
-#: src/main/print-util.c:618
+#: src/main/print-util.c:633
msgid "RA1"
msgstr "RA1"
#. 610mm x 860mm
-#: src/main/print-util.c:620
+#: src/main/print-util.c:635
msgid "RA2"
msgstr "RA2"
#. 430mm x 610mm
-#: src/main/print-util.c:622
+#: src/main/print-util.c:637
msgid "RA3"
msgstr "RA3"
#. 305mm x 430mm
-#: src/main/print-util.c:624
+#: src/main/print-util.c:639
msgid "RA4"
msgstr "RA4"
@@ -957,27 +1066,27 @@ msgstr "RA4"
#.
#. * Stock sizes for bled work or extra trims.
#.
-#: src/main/print-util.c:630
+#: src/main/print-util.c:645
msgid "SRA0"
msgstr "SRA0"
#. 900mm x 1280mm
-#: src/main/print-util.c:632
+#: src/main/print-util.c:647
msgid "SRA1"
msgstr "SRA1"
#. 640mm x 900mm
-#: src/main/print-util.c:634
+#: src/main/print-util.c:649
msgid "SRA2"
msgstr "SRA2"
#. 450mm x 640mm
-#: src/main/print-util.c:636
+#: src/main/print-util.c:651
msgid "SRA3"
msgstr "SRA3"
#. 320mm x 450mm
-#: src/main/print-util.c:638
+#: src/main/print-util.c:653
msgid "SRA4"
msgstr "SRA4"
@@ -985,161 +1094,189 @@ msgstr "SRA4"
#.
#. * "B" series: Posters, wall charts and similar items.
#.
-#: src/main/print-util.c:644
+#: src/main/print-util.c:659
msgid "4B ISO"
msgstr "4B ISO"
#. 2000mm x 2828mm
-#: src/main/print-util.c:646
+#: src/main/print-util.c:661
msgid "2B ISO"
msgstr "2B ISO"
#. 1414mm x 2000mm
-#: src/main/print-util.c:648
+#: src/main/print-util.c:663
msgid "B0 ISO"
msgstr "B0 ISO"
#. 1000mm x 1414mm
-#: src/main/print-util.c:650
+#: src/main/print-util.c:665
msgid "B1 ISO"
msgstr "B1 ISO"
#. 707mm x 1000mm
-#: src/main/print-util.c:652
+#: src/main/print-util.c:667
msgid "B2 ISO"
msgstr "B2 ISO"
#. 500mm x 707mm
-#: src/main/print-util.c:654
+#: src/main/print-util.c:669
msgid "B3 ISO"
msgstr "B3 ISO"
#. 353mm x 500mm
-#: src/main/print-util.c:656
+#: src/main/print-util.c:671
msgid "B4 ISO"
msgstr "B4 ISO"
#. 250mm x 353mm
-#: src/main/print-util.c:658
+#: src/main/print-util.c:673
msgid "B5 ISO"
msgstr "B5 ISO"
#. 176mm x 250mm
-#: src/main/print-util.c:660
+#: src/main/print-util.c:675
msgid "B6 ISO"
msgstr "B6 ISO"
#. 125mm x 176mm
-#: src/main/print-util.c:662
+#: src/main/print-util.c:677
msgid "B7 ISO"
msgstr "B7 ISO"
#. 88mm x 125mm
-#: src/main/print-util.c:664
+#: src/main/print-util.c:679
msgid "B8 ISO"
msgstr "B8 ISO"
#. 62mm x 88mm
-#: src/main/print-util.c:666
+#: src/main/print-util.c:681
msgid "B9 ISO"
msgstr "B9 ISO"
#. 44mm x 62mm
-#: src/main/print-util.c:668
+#: src/main/print-util.c:683
msgid "B10 ISO"
msgstr "B10 ISO"
#. 31mm x 44mm
-#: src/main/print-util.c:671
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
msgid "B0 JIS"
msgstr "B0 JIS"
-#: src/main/print-util.c:673
+#: src/main/print-util.c:690
msgid "B1 JIS"
msgstr "B1 JIS"
-#: src/main/print-util.c:675
+#: src/main/print-util.c:692
msgid "B2 JIS"
msgstr "B2 JIS"
-#: src/main/print-util.c:677
+#: src/main/print-util.c:694
msgid "B3 JIS"
msgstr "B3 JIS"
-#: src/main/print-util.c:683
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
msgid "B6 JIS"
msgstr "B6 JIS"
-#: src/main/print-util.c:685
+#: src/main/print-util.c:702
msgid "B7 JIS"
msgstr "B7 JIS"
-#: src/main/print-util.c:687
+#: src/main/print-util.c:704
msgid "B8 JIS"
msgstr "B8 JIS"
-#: src/main/print-util.c:689
+#: src/main/print-util.c:706
msgid "B9 JIS"
msgstr "B9 JIS"
-#: src/main/print-util.c:691
+#: src/main/print-util.c:708
msgid "B10 JIS"
msgstr "B10 JIS"
#.
#. * "C" series: Envelopes or folders suitable for A size stationery.
#.
-#: src/main/print-util.c:697
+#: src/main/print-util.c:714
msgid "C0"
msgstr "C0"
#. 917mm x 1297mm
-#: src/main/print-util.c:699
+#: src/main/print-util.c:716
msgid "C1"
msgstr "C1"
#. 648mm x 917mm
-#: src/main/print-util.c:701
+#: src/main/print-util.c:718
msgid "C2"
msgstr "C2"
#. 458mm x 648mm
-#: src/main/print-util.c:703
+#: src/main/print-util.c:720
msgid "C3"
msgstr "C3"
#. 324mm x 458mm
-#: src/main/print-util.c:705
+#: src/main/print-util.c:722
msgid "C4"
msgstr "C4"
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
#. 162mm x 229mm
-#: src/main/print-util.c:709
+#: src/main/print-util.c:726
msgid "B6-C4"
msgstr "B6-C4"
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
#. 110mm x 220mm
-#: src/main/print-util.c:715
+#: src/main/print-util.c:732
msgid "C7-6"
msgstr "C7-6"
#. 81mm x 162mm
-#: src/main/print-util.c:717
+#: src/main/print-util.c:734
msgid "C7"
msgstr "C7"
#. 81mm x 114mm
-#: src/main/print-util.c:719
+#: src/main/print-util.c:736
msgid "C8"
msgstr "C8"
#. 57mm x 81mm
-#: src/main/print-util.c:721
+#: src/main/print-util.c:738
msgid "C9"
msgstr "C9"
#. 40mm x 57mm
-#: src/main/print-util.c:723
+#: src/main/print-util.c:740
msgid "C10"
msgstr "C10"
@@ -1147,35 +1284,55 @@ msgstr "C10"
#.
#. * US CAD standard paper sizes
#.
-#: src/main/print-util.c:729
+#: src/main/print-util.c:746
msgid "ArchA"
msgstr ""
-#: src/main/print-util.c:731
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr ""
+
+#: src/main/print-util.c:750
msgid "ArchB"
msgstr ""
-#: src/main/print-util.c:733
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr ""
+
+#: src/main/print-util.c:754
msgid "ArchC"
msgstr ""
-#: src/main/print-util.c:735
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr ""
+
+#: src/main/print-util.c:758
msgid "ArchD"
msgstr ""
-#: src/main/print-util.c:737
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr ""
+
+#: src/main/print-util.c:762
msgid "ArchE"
msgstr ""
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr ""
+
#.
#. * Foolscap
#.
-#: src/main/print-util.c:743
+#: src/main/print-util.c:770
msgid "American foolscap"
msgstr ""
#. American foolscap
-#: src/main/print-util.c:745
+#: src/main/print-util.c:772
msgid "European foolscap"
msgstr ""
@@ -1185,44 +1342,44 @@ msgstr ""
#. * The BPIF and the Publishers Association jointly recommend ten
#. * standard metric sizes for case-bound titles as follows:
#.
-#: src/main/print-util.c:753
+#: src/main/print-util.c:780
msgid "Crown Quarto"
msgstr ""
#. 189mm x 246mm
-#: src/main/print-util.c:755
+#: src/main/print-util.c:782
msgid "Large Crown Quarto"
msgstr ""
#. 201mm x 258mm
-#: src/main/print-util.c:757
+#: src/main/print-util.c:784
msgid "Demy Quarto"
msgstr ""
#. 219mm x 276mm
-#: src/main/print-util.c:759
+#: src/main/print-util.c:786
msgid "Royal Quarto"
msgstr ""
#. 237mm x 312mm
#. { "ISO A4", 595,
#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
-#: src/main/print-util.c:763
+#: src/main/print-util.c:790
msgid "Crown Octavo"
msgstr ""
#. 123mm x 186mm
-#: src/main/print-util.c:765
+#: src/main/print-util.c:792
msgid "Large Crown Octavo"
msgstr ""
#. 129mm x 198mm
-#: src/main/print-util.c:767
+#: src/main/print-util.c:794
msgid "Demy Octavo"
msgstr ""
#. 138mm x 216mm
-#: src/main/print-util.c:769
+#: src/main/print-util.c:796
msgid "Royal Octavo"
msgstr ""
@@ -1230,137 +1387,210 @@ msgstr ""
#. { N_ ("ISO A5"), 419,
#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
#. Paperback sizes in common usage
-#: src/main/print-util.c:775
+#: src/main/print-util.c:802
msgid "Small paperback"
msgstr ""
#. 111mm x 178mm
-#: src/main/print-util.c:777
+#: src/main/print-util.c:804
msgid "Penguin small paperback"
msgstr ""
#. 111mm x 181mm
-#: src/main/print-util.c:779
+#: src/main/print-util.c:806
msgid "Penguin large paperback"
msgstr ""
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr ""
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr ""
+
#. 148 x 200 mm
-#: src/main/print-util.c:787
+#: src/main/print-util.c:816
msgid "Japanese long envelope #3"
msgstr ""
#. Japanese long envelope #3
-#: src/main/print-util.c:789
+#: src/main/print-util.c:818
msgid "Japanese long envelope #4"
msgstr ""
#. Japanese long envelope #4
-#: src/main/print-util.c:791
+#: src/main/print-util.c:820
msgid "Japanese Kaku envelope #4"
msgstr ""
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr ""
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr ""
+
#. US A2 invitation
-#: src/main/print-util.c:797
+#: src/main/print-util.c:826
+#, fuzzy
+msgid "Monarch Envelope"
+msgstr "Koperta"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
msgid "Custom"
msgstr ""
-#: src/main/print-util.c:800
+#: src/main/print-util.c:831
msgid "89 mm Roll Paper"
msgstr ""
-#: src/main/print-util.c:802
+#: src/main/print-util.c:833
msgid "4 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:804
+#: src/main/print-util.c:835
msgid "5 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:806
+#: src/main/print-util.c:837
msgid "210 mm Roll Paper"
msgstr ""
-#: src/main/print-util.c:808
+#: src/main/print-util.c:839
msgid "13 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:810
+#: src/main/print-util.c:841
msgid "22 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:812
+#: src/main/print-util.c:843
msgid "24 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:814
+#: src/main/print-util.c:845
msgid "36 Inch Roll Paper"
msgstr ""
-#: src/main/print-util.c:816
+#: src/main/print-util.c:847
msgid "44 Inch Roll Paper"
msgstr ""
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr ""
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr ""
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr ""
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr ""
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr ""
+
#. Specify language of PPD translation
#. Translators: Specify the language of the PPD translation.
#. * Use the English name of your language here, e.g. "Swedish" instead of
#. * "Svenska".
#.
-#: src/cups/genppd.c:455
+#: src/cups/genppd.c:519
msgid "English"
msgstr "Polish"
#. Specify PPD translation encoding e.g. ISOLatin1
-#: src/cups/genppd.c:457
+#: src/cups/genppd.c:521
msgid "ISOLatin1"
msgstr "ISOLatin2"
-#: src/cups/genppd.c:633
+#: src/cups/genppd.c:777
msgid "Media Type"
msgstr ""
-#: src/cups/genppd.c:659
+#: src/cups/genppd.c:803
msgid "Media Source"
msgstr ""
-#: src/cups/genppd.c:683
+#: src/cups/genppd.c:827
msgid "Resolution"
msgstr "Rozdzielczo¶æ"
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Wydrukuj"
+
#.
#. * Image types...
#.
-#: src/cups/genppd.c:723
+#: src/cups/genppd.c:869
msgid "Image Type"
msgstr "Typ obrazu"
-#: src/cups/genppd.c:728 src/gimp/gimp_main_window.c:1314
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
msgid "Line Art"
msgstr "Rysunek kresk±"
-#: src/cups/genppd.c:730 src/gimp/gimp_main_window.c:1328
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
msgid "Solid Colors"
msgstr "Jednolite p³aszczyzny"
-#: src/cups/genppd.c:732 src/gimp/gimp_main_window.c:1343
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
msgid "Photograph"
msgstr "Fotografia"
#.
#. * Dithering algorithms...
#.
-#: src/cups/genppd.c:740
+#: src/cups/genppd.c:886
msgid "Dither Algorithm"
msgstr "Algorytm ditherowania"
-#: src/cups/genppd.c:759
+#: src/cups/genppd.c:905
msgid "Ink Type"
msgstr ""
-#: src/escputil/escputil.c:64
+#: src/escputil/escputil.c:66
msgid "Escputil version "
msgstr ""
-#: src/escputil/escputil.c:65
+#: src/escputil/escputil.c:67
msgid ""
", Copyright (C) 2000-2001 Robert Krawitz\n"
"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
@@ -1368,7 +1598,7 @@ msgid ""
"under certain conditions; type 'escputil -l' for details.\n"
msgstr ""
-#: src/escputil/escputil.c:70
+#: src/escputil/escputil.c:72
msgid ""
"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
"\n"
@@ -1387,7 +1617,7 @@ msgid ""
"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
msgstr ""
-#: src/escputil/escputil.c:110
+#: src/escputil/escputil.c:112
msgid ""
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P printer | -r device] [-u] [-q] [-m model]\n"
@@ -1430,7 +1660,7 @@ msgid ""
"alignment.\n"
msgstr ""
-#: src/escputil/escputil.c:148
+#: src/escputil/escputil.c:150
msgid ""
"Usage: escputil [OPTIONS] [COMMAND]\n"
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
@@ -1469,356 +1699,533 @@ msgid ""
" -m Specify the precise printer model for head alignment.\n"
msgstr ""
-#: src/escputil/escputil.c:199
+#: src/escputil/escputil.c:201
msgid "Stylus C20sx"
msgstr "Stylus C20sx"
-#: src/escputil/escputil.c:200
+#: src/escputil/escputil.c:202
msgid "Stylus C20ux"
msgstr "Stylus C20ux"
-#: src/escputil/escputil.c:201
+#: src/escputil/escputil.c:203
msgid "Stylus C40sx"
msgstr "Stylus C40sx"
-#: src/escputil/escputil.c:202
+#: src/escputil/escputil.c:204
msgid "Stylus C40ux"
msgstr "Stylus C40ux"
-#: src/escputil/escputil.c:203
+#: src/escputil/escputil.c:205
+#, fuzzy
+msgid "Stylus C41sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:206
+#, fuzzy
+msgid "Stylus C41ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:207
+#, fuzzy
+msgid "Stylus C42sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:208
+#, fuzzy
+msgid "Stylus C42ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
msgid "Stylus C60"
msgstr "Stylus C60"
-#: src/escputil/escputil.c:204
+#: src/escputil/escputil.c:215
+#, fuzzy
+msgid "Stylus C61"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:216
+#, fuzzy
+msgid "Stylus C62"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
msgid "Stylus C70"
msgstr "Stylus C70"
-#: src/escputil/escputil.c:205
+#: src/escputil/escputil.c:220
msgid "Stylus C80"
msgstr "Stylus C80"
-#: src/escputil/escputil.c:206
+#: src/escputil/escputil.c:221
+#, fuzzy
+msgid "Stylus C82"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
msgid "Stylus Color"
msgstr "Stylus Color"
-#: src/escputil/escputil.c:207
+#: src/escputil/escputil.c:225
msgid "Stylus Color Pro"
msgstr "Stylus Color Pro"
-#: src/escputil/escputil.c:208
+#: src/escputil/escputil.c:226
msgid "Stylus Color Pro XL"
msgstr "Stylus Color Pro XL"
-#: src/escputil/escputil.c:209
+#: src/escputil/escputil.c:227
msgid "Stylus Color 400"
msgstr "Stylus Color 400"
-#: src/escputil/escputil.c:210
+#: src/escputil/escputil.c:228
msgid "Stylus Color 440"
msgstr "Stylus Color 440"
-#: src/escputil/escputil.c:211
+#: src/escputil/escputil.c:229
msgid "Stylus Color 460"
msgstr "Stylus Color 460"
-#: src/escputil/escputil.c:212
+#: src/escputil/escputil.c:230
msgid "Stylus Color 480"
msgstr "Stylus Color 480"
-#: src/escputil/escputil.c:213
+#: src/escputil/escputil.c:231
msgid "Stylus Color 500"
msgstr "Stylus Color 500"
-#: src/escputil/escputil.c:214
+#: src/escputil/escputil.c:232
msgid "Stylus Color 580"
msgstr "Stylus Color 580"
-#: src/escputil/escputil.c:215
+#: src/escputil/escputil.c:233
msgid "Stylus Color 600"
msgstr "Stylus Color 600"
-#: src/escputil/escputil.c:216
+#: src/escputil/escputil.c:234
msgid "Stylus Color 640"
msgstr "Stylus Color 640"
-#: src/escputil/escputil.c:217
+#: src/escputil/escputil.c:235
msgid "Stylus Color 660"
msgstr "Stylus Color 660"
-#: src/escputil/escputil.c:218
+#: src/escputil/escputil.c:236
msgid "Stylus Color 670"
msgstr "Stylus Color 670"
-#: src/escputil/escputil.c:219
+#: src/escputil/escputil.c:237
msgid "Stylus Color 680"
msgstr "Stylus Color 680"
-#: src/escputil/escputil.c:220
+#: src/escputil/escputil.c:238
msgid "Stylus Color 740"
msgstr "Stylus Color 740"
-#: src/escputil/escputil.c:221
+#: src/escputil/escputil.c:239
msgid "Stylus Color 760"
msgstr "Stylus Color 760"
-#: src/escputil/escputil.c:222
+#: src/escputil/escputil.c:240
msgid "Stylus Color 777"
msgstr "Stylus Color 777"
-#: src/escputil/escputil.c:223
+#: src/escputil/escputil.c:241
msgid "Stylus Color 800"
msgstr "Stylus Color 800"
-#: src/escputil/escputil.c:224
+#: src/escputil/escputil.c:242
msgid "Stylus Color 850"
msgstr "Stylus Color 850"
-#: src/escputil/escputil.c:225
+#: src/escputil/escputil.c:243
msgid "Stylus Color 860"
msgstr "Stylus Color 860"
-#: src/escputil/escputil.c:226
+#: src/escputil/escputil.c:244
msgid "Stylus Color 880"
msgstr "Stylus Color 880"
-#: src/escputil/escputil.c:227
+#: src/escputil/escputil.c:245
msgid "Stylus Color 83"
msgstr "Stylus Color 83"
-#: src/escputil/escputil.c:228
+#: src/escputil/escputil.c:246
msgid "Stylus Color 900"
msgstr "Stylus Color 900"
-#: src/escputil/escputil.c:229
+#: src/escputil/escputil.c:247
msgid "Stylus Color 980"
msgstr "Stylus Color 980"
-#: src/escputil/escputil.c:230
+#: src/escputil/escputil.c:248
msgid "Stylus Color 1160"
msgstr "Stylus Color 1160"
-#: src/escputil/escputil.c:231
+#: src/escputil/escputil.c:249
msgid "Stylus Color 1500"
msgstr "Stylus Color 1500"
-#: src/escputil/escputil.c:232
+#: src/escputil/escputil.c:250
msgid "Stylus Color 1520"
msgstr "Stylus Color 1520"
-#: src/escputil/escputil.c:233
+#: src/escputil/escputil.c:251
msgid "Stylus Color 3000"
msgstr "Stylus Color 3000"
-#: src/escputil/escputil.c:234
+#: src/escputil/escputil.c:252
msgid "Stylus Photo"
msgstr "Stylus Photo"
-#: src/escputil/escputil.c:235
+#: src/escputil/escputil.c:253
msgid "Stylus Photo 700"
msgstr "Stylus Photo 700"
-#: src/escputil/escputil.c:236
+#: src/escputil/escputil.c:254
msgid "Stylus Photo EX"
msgstr "Stylus Photo EX"
-#: src/escputil/escputil.c:237
+#: src/escputil/escputil.c:255
msgid "Stylus Photo 720"
msgstr "Stylus Photo 720"
-#: src/escputil/escputil.c:238
+#: src/escputil/escputil.c:256
msgid "Stylus Photo 750"
msgstr "Stylus Photo 750"
-#: src/escputil/escputil.c:239
+#: src/escputil/escputil.c:257
msgid "Stylus Photo 780"
msgstr "Stylus Photo 780"
-#: src/escputil/escputil.c:240
+#: src/escputil/escputil.c:258
msgid "Stylus Photo 785"
msgstr "Stylus Photo 785"
-#: src/escputil/escputil.c:241
+#: src/escputil/escputil.c:259
msgid "Stylus Photo 790"
msgstr "Stylus Photo 790"
-#: src/escputil/escputil.c:242
+#: src/escputil/escputil.c:260
msgid "Stylus Photo 810"
msgstr "Stylus Photo 810"
-#: src/escputil/escputil.c:243
+#: src/escputil/escputil.c:261
msgid "Stylus Photo 820"
msgstr "Stylus Photo 820"
-#: src/escputil/escputil.c:244
+#: src/escputil/escputil.c:262
+#, fuzzy
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:263
msgid "Stylus Photo 870"
msgstr "Stylus Photo 870"
-#: src/escputil/escputil.c:245
+#: src/escputil/escputil.c:264
msgid "Stylus Photo 875"
msgstr "Stylus Photo 875"
-#: src/escputil/escputil.c:246
+#: src/escputil/escputil.c:265
msgid "Stylus Photo 890"
msgstr "Stylus Photo 890"
-#: src/escputil/escputil.c:247
+#: src/escputil/escputil.c:266
msgid "Stylus Photo 895"
msgstr "Stylus Photo 895"
-#: src/escputil/escputil.c:248
+#: src/escputil/escputil.c:267
+#, fuzzy
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:268
+#, fuzzy
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+#, fuzzy
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:271
+#, fuzzy
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:272
msgid "Stylus Photo 1200"
msgstr "Stylus Photo 1200"
-#: src/escputil/escputil.c:249
+#: src/escputil/escputil.c:273
msgid "Stylus Photo 1270"
msgstr "Stylus Photo 1270"
-#: src/escputil/escputil.c:250
+#: src/escputil/escputil.c:274
msgid "Stylus Photo 1280"
msgstr "Stylus Photo 1280"
-#: src/escputil/escputil.c:251
+#: src/escputil/escputil.c:275
msgid "Stylus Photo 1290"
msgstr "Stylus Photo 1290"
-#: src/escputil/escputil.c:252
+#: src/escputil/escputil.c:276
msgid "Stylus Photo 2000P"
msgstr "Stylus Photo 2000P"
-#: src/escputil/escputil.c:253
+#: src/escputil/escputil.c:277
+#, fuzzy
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:278
+#, fuzzy
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:279
msgid "Stylus Pro 5000"
msgstr "Stylus Pro 5000"
-#: src/escputil/escputil.c:254
+#: src/escputil/escputil.c:280
msgid "Stylus Pro 5500"
msgstr "Stylus Pro 5500"
-#: src/escputil/escputil.c:255
+#: src/escputil/escputil.c:281
msgid "Stylus Pro 7000"
msgstr "Stylus Pro 7000"
-#: src/escputil/escputil.c:256
+#: src/escputil/escputil.c:282
msgid "Stylus Pro 7500"
msgstr "Stylus Pro 7500"
-#: src/escputil/escputil.c:257
+#: src/escputil/escputil.c:283
+#, fuzzy
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:284
msgid "Stylus Pro 9000"
msgstr "Stylus Pro 9000"
-#: src/escputil/escputil.c:258
+#: src/escputil/escputil.c:285
msgid "Stylus Pro 9500"
msgstr "Stylus Pro 9500"
-#: src/escputil/escputil.c:259
+#: src/escputil/escputil.c:286
+#, fuzzy
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:287
msgid "Stylus Pro 10000"
msgstr "Stylus Pro 10000"
-#: src/escputil/escputil.c:260
+#: src/escputil/escputil.c:288
msgid "Stylus Scan 2000"
msgstr "Stylus Scan 2000"
-#: src/escputil/escputil.c:261
+#: src/escputil/escputil.c:289
msgid "Stylus Scan 2500"
msgstr "Stylus Scan 2500"
-#: src/escputil/escputil.c:341 src/escputil/escputil.c:350
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
msgid "You may only specify one printer or raw device."
msgstr "Mo¿na podaæ tylko jedn± drukarkê lub surowe urz±dzenie."
-#: src/escputil/escputil.c:359
+#: src/escputil/escputil.c:402
msgid "You may only specify one printer model."
msgstr "Mo¿na podaæ tylko jeden model drukarki."
-#: src/escputil/escputil.c:379
+#: src/escputil/escputil.c:422
#, c-format
msgid "Unknown option %c\n"
msgstr "Nieznana opcja %c\n"
-#: src/escputil/escputil.c:439
+#: src/escputil/escputil.c:482
#, c-format
msgid "Cannot open device %s: %s\n"
msgstr "Nie mo¿na otworzyæ urz±dzenia %s: %s\n"
-#: src/escputil/escputil.c:462
+#: src/escputil/escputil.c:505
#, c-format
msgid "Cannot print to printer %s with %s\n"
msgstr "Nie mo¿na wydrukowaæ na drukarce %s przy u¿yciu %s\n"
-#: src/escputil/escputil.c:475 src/escputil/escputil.c:485
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
msgid "Unable to send command to printer\n"
msgstr "Nie mo¿na wys³aæ polecenia do drukarki\n"
-#: src/escputil/escputil.c:578
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Nie mo¿na odczytaæ z %s: %s\n"
+
+#: src/escputil/escputil.c:638
msgid "Cyan"
msgstr "Niebieskozielony"
-#: src/escputil/escputil.c:579
+#: src/escputil/escputil.c:639
msgid "Magenta"
msgstr "Purpurowy"
-#: src/escputil/escputil.c:580
+#: src/escputil/escputil.c:640
msgid "Yellow"
msgstr "¯ó³æ"
-#: src/escputil/escputil.c:581
+#: src/escputil/escputil.c:641
msgid "Light Cyan"
msgstr ""
-#: src/escputil/escputil.c:582
+#: src/escputil/escputil.c:642
msgid "Light Magenta"
msgstr ""
-#: src/escputil/escputil.c:596
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
msgid "Obtaining ink levels requires using a raw device.\n"
msgstr ""
-#: src/escputil/escputil.c:602 src/escputil/escputil.c:677
-#: src/escputil/escputil.c:720
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
#, c-format
msgid "Cannot open %s read/write: %s\n"
msgstr ""
-#: src/escputil/escputil.c:611 src/escputil/escputil.c:688
-#: src/escputil/escputil.c:729
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
#, c-format
msgid "Cannot write to %s: %s\n"
msgstr "Nie mo¿na zapisaæ do %s: %s\n"
-#: src/escputil/escputil.c:618 src/escputil/escputil.c:695
-#: src/escputil/escputil.c:736
-#, c-format
-msgid "Cannot read from %s: %s\n"
-msgstr "Nie mo¿na odczytaæ z %s: %s\n"
-
-#: src/escputil/escputil.c:628
+#: src/escputil/escputil.c:700
msgid "Cannot parse output from printer\n"
msgstr ""
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Ink color"
msgstr ""
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Percent remaining"
msgstr ""
-#: src/escputil/escputil.c:671
+#: src/escputil/escputil.c:737
msgid "Printer identification requires using a raw device.\n"
msgstr "Do zidentyfikowania drukarki nale¿y u¿yæ surowego urz±dzenia.\n"
-#: src/escputil/escputil.c:714
+#: src/escputil/escputil.c:776
msgid "Printer status requires using a raw device.\n"
msgstr "Do uzyskania stanu drukarki nale¿y u¿yæ surowego urz±dzenia.\n"
-#: src/escputil/escputil.c:757
+#: src/escputil/escputil.c:815
msgid "Cleaning heads...\n"
msgstr "Czyszczenie g³owic...\n"
-#: src/escputil/escputil.c:766
+#: src/escputil/escputil.c:824
msgid "Running nozzle check, please ensure paper is in the printer.\n"
msgstr ""
-#: src/escputil/escputil.c:770
+#: src/escputil/escputil.c:828
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1857,7 +2264,7 @@ msgid ""
"\n"
msgstr ""
-#: src/escputil/escputil.c:805
+#: src/escputil/escputil.c:863
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -1893,28 +2300,28 @@ msgid ""
"\n"
msgstr ""
-#: src/escputil/escputil.c:849
+#: src/escputil/escputil.c:907
msgid "Unable to send command to the printer, exiting.\n"
msgstr ""
-#: src/escputil/escputil.c:867
+#: src/escputil/escputil.c:925
msgid ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
msgstr ""
-#: src/escputil/escputil.c:871
+#: src/escputil/escputil.c:929
msgid "Attempting to detect printer model..."
msgstr ""
-#: src/escputil/escputil.c:876
+#: src/escputil/escputil.c:934
#, c-format
msgid ""
"\n"
"Cannot open %s read/write: %s\n"
msgstr ""
-#: src/escputil/escputil.c:884
+#: src/escputil/escputil.c:942
#, c-format
msgid ""
"\n"
@@ -1923,28 +2330,19 @@ msgstr ""
"\n"
"Nie mo¿na zapisaæ do %s: %s\n"
-#: src/escputil/escputil.c:890
-#, c-format
-msgid ""
-"\n"
-"Cannot read from %s: %s\n"
-msgstr ""
-"\n"
-"Nie mo¿na odczytaæ z %s: %s\n"
-
-#: src/escputil/escputil.c:903
+#: src/escputil/escputil.c:958
msgid ""
"\n"
"Cannot detect printer type.\n"
"Please use -m to specify your printer model.\n"
msgstr ""
-#: src/escputil/escputil.c:920
+#: src/escputil/escputil.c:975
#, c-format
msgid "Printer model %s is not known.\n"
msgstr ""
-#: src/escputil/escputil.c:931
+#: src/escputil/escputil.c:986
msgid ""
"Please inspect the final output very carefully to ensure that your\n"
"printer is in proper alignment. You may now:\n"
@@ -1955,34 +2353,34 @@ msgid ""
"What do you want to do (s, q, r)?\n"
msgstr ""
-#: src/escputil/escputil.c:939 src/escputil/escputil.c:946
-#: src/escputil/escputil.c:959 src/escputil/escputil.c:975
-#: src/escputil/escputil.c:1046 src/escputil/escputil.c:1187
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
msgid "> "
msgstr ""
-#: src/escputil/escputil.c:944
+#: src/escputil/escputil.c:999
msgid ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
msgstr ""
-#: src/escputil/escputil.c:949
+#: src/escputil/escputil.c:1004
msgid ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
msgstr ""
-#: src/escputil/escputil.c:956
+#: src/escputil/escputil.c:1011
msgid ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
msgstr ""
-#: src/escputil/escputil.c:962
+#: src/escputil/escputil.c:1017
msgid "Repeating the alignment process.\n"
msgstr ""
-#: src/escputil/escputil.c:968
+#: src/escputil/escputil.c:1023
msgid ""
"This will permanently alter the configuration of your printer.\n"
"WARNING: this procedure has not been approved by Seiko Epson, and\n"
@@ -1991,22 +2389,37 @@ msgid ""
"to your printer:\n"
msgstr ""
-#: src/escputil/escputil.c:978
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr ""
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1040
msgid ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
msgstr ""
-#: src/escputil/escputil.c:992
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr ""
+
+#: src/escputil/escputil.c:1050
msgid "Unrecognized command.\n"
msgstr ""
-#: src/escputil/escputil.c:995
+#: src/escputil/escputil.c:1053
msgid "Final command was not confirmed.\n"
msgstr ""
-#: src/escputil/escputil.c:1000
+#: src/escputil/escputil.c:1058
#, c-format
msgid ""
"This procedure assumes that your printer is an Epson %s.\n"
@@ -2017,58 +2430,59 @@ msgid ""
"alignment procedure.\n"
msgstr ""
-#: src/escputil/escputil.c:1025 src/escputil/escputil.c:1054
-#: src/escputil/escputil.c:1090 src/escputil/escputil.c:1166
-#: src/escputil/escputil.c:1177
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
msgid "Press enter to continue > "
msgstr ""
-#: src/escputil/escputil.c:1036
-#, c-format
+#: src/escputil/escputil.c:1090
msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
msgstr ""
-#: src/escputil/escputil.c:1041
+#: src/escputil/escputil.c:1096
#, c-format
-msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+msgid "Pass #%d"
msgstr ""
-#: src/escputil/escputil.c:1051
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
msgid "Please insert a fresh sheet of paper.\n"
msgstr ""
-#: src/escputil/escputil.c:1070 src/escputil/escputil.c:1206
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
msgid "Number out of range!\n"
msgstr ""
-#: src/escputil/escputil.c:1075 src/escputil/escputil.c:1211
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
msgid "I cannot understand what you typed!\n"
msgstr ""
-#: src/escputil/escputil.c:1081
+#: src/escputil/escputil.c:1132
#, c-format
msgid "The best pair of lines should be numbered between 1 and %d.\n"
msgstr ""
-#: src/escputil/escputil.c:1088
-#, c-format
-msgid ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr ""
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
msgstr ""
-#: src/escputil/escputil.c:1093
+#: src/escputil/escputil.c:1143
#, c-format
-msgid "Aligning phase %d, and starting phase %d.\n"
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
msgstr ""
-#: src/escputil/escputil.c:1107
+#: src/escputil/escputil.c:1158
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2102,18 +2516,18 @@ msgid ""
"damage your printer!\n"
msgstr ""
-#: src/escputil/escputil.c:1157
+#: src/escputil/escputil.c:1208
#, c-format
msgid "Printer %s does not require color head alignment.\n"
msgstr ""
-#: src/escputil/escputil.c:1175
+#: src/escputil/escputil.c:1226
msgid ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
msgstr ""
-#: src/escputil/escputil.c:1181
+#: src/escputil/escputil.c:1232
msgid ""
"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
"This pattern will appear to have the least ``grain''.\n"
@@ -2122,12 +2536,12 @@ msgid ""
"Type a pattern number, or '?' for help.\n"
msgstr ""
-#: src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1268
#, c-format
msgid "The best pattern should be numbered between 1 and %d.\n"
msgstr ""
-#: src/escputil/escputil.c:1261
+#: src/escputil/escputil.c:1312
msgid "Error in input\n"
msgstr ""
@@ -2764,7 +3178,97 @@ msgstr "Drukowanie..."
msgid "<Image>/File/Print..."
msgstr "<Image>/Plik/Wydrukuj..."
-#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:833
-#: src/gimp/print.c:1184
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
msgid "File"
msgstr "Plik"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:635
+#, fuzzy, c-format
+msgid "Unknown option %s\n"
+msgstr "Nieznana opcja %c\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:949
+#, fuzzy, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Nie mo¿na otworzyæ urz±dzenia %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, fuzzy, c-format
+msgid "Unknown printer %s\n"
+msgstr "Nieznana opcja %c\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr ""
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr ""
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 x 360 DPI"
+
+#~ msgid "13x19"
+#~ msgstr "13x19"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Nie mo¿na odczytaæ z %s: %s\n"
diff --git a/po/pt.gmo b/po/pt.gmo
new file mode 100644
index 0000000..990c414
--- /dev/null
+++ b/po/pt.gmo
Binary files differ
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..76753e0
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,3612 @@
+# Portuguese translation of PACKAGE.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Filipe Maia <fmaia@gmx.net>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimpprint 4.3.4\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2002-10-18 19:24+0100\n"
+"Last-Translator: Filipe Maia <fmaia@gmx.net>\n"
+"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a opção `%s' é ambígua\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "'%s': a opção `--%s' não admite um argumento\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a opção `%c%s' não admite um argumento\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a opção `%s' requere um argumento\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opção não reconhecida `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opcção não reconhecida `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opção ilegal -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opção inválida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opção requere um argumento -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opção `-W %s' é ambígua\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opção `-W %s' não permite um argumento\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "Papel Normal"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Transparências"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr "Filme de impressão por trás"
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Folhas de Fábrica"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Envelope"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Papel de Alta Resolução"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "Transferências para T-Shirt"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "Filme Muito Lustroso"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Papel de Fotografia Lustroso"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Cartões de Fotografia Lustrosos"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Papel de Fotografia Profissional"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Outro"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Alimentador de Folhas Automático"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Manual com Pausa"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Manual sem Pausa"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Preto"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "Cor CMY"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "Cor CMYK"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Cor CcMmY de Fotografia"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Cor CcMmYK de Fotografia<"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Híbrido Adaptativo"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Ordenado"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Rápido"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Muito Rápido"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Híbrido Floyd-Steinberg"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Três Cores Compósito"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Quatro Cores Standard"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Seis Cores Foto"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Cinco Cores Foto Compósito"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Sete Cores Realçado"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Seis Cores Compósito Realçado"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Foto de Sete Cores"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Escala de Cinzento de 2 Níveis"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quato Tons"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "Papel Normal Carregação Rápida"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Cartão"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Filme Lustroso"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Envelopes"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr "Película"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Papel Mate"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Papel para Impressora Jacto de Tinta"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Papel de Qualidade Fotografica para Impressora Jacto de Tinta"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Papel de Fotografia"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Papel de Fotografia Lustroso Premium"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "Papel de Fotografia Brilhante Premium"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Papel de Qualidade Fotografica Lustroso"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Papel Pesado Ilford"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "Papel ColorLife"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 × 90 DPI Rascunho Rápido Económico"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 × 120 DPI Rascunho Económico"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI Rascunho Económico"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 × 240 DPI Rascunho"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 × 180 DPI Rascunho"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI Unidireccional"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr "360 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 × 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 × 360 DPI Unidireccional"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr "720 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr "729 DPI Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Unidireccional"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI Alta Qualidade"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI Alta Qualidade Unidireccional"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Qualidade Máxima"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 × 720 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 × 720 DPI Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 × 720 DPI Unidireccional"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 × 720 DPO Máxima Qualidade"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 × 720 DPI Unidireccional"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 × 1440 DPI Máxima Qualidade"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI Sobreposição Total"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI Sobreposição Total Unidireccional"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr "720 × 360 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 × 360 Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 × 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 × 360 DPI FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 × 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 × 360 DPI FOL2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 × 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "/20 × #60 DPI MW2 Unidireccional"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI Sobreposição total"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI Sobreposição Total Unidireccional"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI Quatro Passagens"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI Quantro Passagens Unidireccional"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 × 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 × 720 DPI FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 × 720 DPI Quatro Passagens"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 × 720 DPI Quatro Passagens Unidireccional"
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 × 720 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 × 720 DPI Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 × 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 × 720 DPI FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 × 720 DPI Quatro Passagens"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 × 720 DPI Quatro Passagens Unidireccional"
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 × 1440 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 × 1440 DPI Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 × 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 × 1440 DPI FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 × 1440 DPI Quatro Passagens"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 × 1440 DPI Quatro Passagens Unidireccional"
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 × 1440 DPI Microtecelagem"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 × 1440 Microtecelagem Unidireccional"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 × 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 × 1440 DPI FOL Unidireccional"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 × 1440 DPI Quatro Passagens"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 × 1440 DPI Quantro Passagens Unidireccional"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Rolo de Alimentação"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr ""
+
+#: src/main/print-escp2-data.c:4306
+#, fuzzy
+msgid "Cut Sheet Autoselect"
+msgstr "Auto Seleccionar"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr ""
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI × 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI alta qualidade"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI Unidireccional"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI alta qualidade"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI qualidade máxima"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI Unidireccional"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI × 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI × 1200 DPI alta qualidade"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI × 1200 DPI qualidade máxima"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "impressão de teste"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Simples"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr "Dobrado"
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Premium"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Foto Lustrosa"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Transparência"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Foto Secagem Rápida"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Transparência Secagem Rápida"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manual"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Tabuleiro 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Tabuleiro 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Tabuleiro 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Tabuleiro 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Alimentador de Folhas Portátil"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "Alimentador de Folhas de Secretária"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Tabuleiro"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Fonte Alternativa"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Auto Seleccionar"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150×150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300×300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600×300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600×600 DPI monocromático"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600×600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200×600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400×600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Cartuchos Cor + Preto"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Cartuchos Cor + Fotografia"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Carta"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloide"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executivo"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3×5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4×6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Papel de Fotografia Epson 4×6"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5×7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5×8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6×8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8×10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12×8"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13×19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8×12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11×14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16×20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16×24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20×24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20×30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+#, fuzzy
+msgid "22x30"
+msgstr "20×30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24×30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24×36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30×40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIs"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+#, fuzzy
+msgid "ArchA Transverse"
+msgstr "Transferências para T-Shirt"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+#, fuzzy
+msgid "ArchB Transverse"
+msgstr "Transferências para T-Shirt"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+#, fuzzy
+msgid "ArchC Transverse"
+msgstr "Transferências para T-Shirt"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+#, fuzzy
+msgid "ArchD Transverse"
+msgstr "Transferências para T-Shirt"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+#, fuzzy
+msgid "ArchE Transverse"
+msgstr "Transferências para T-Shirt"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "Papel Ministro Americano"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "Papel Ministro Europeu"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Crown Quarto Grande"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Crown Octavo Grande"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Pequena Brochura"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Pequena Brochura Pinguim"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Grande Brochura Pinguim"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Cartão Hagaki"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Cartão Oufuku"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Envelope longo Japonês #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Envelope longo Japonês #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Evelope Kaku Japonês #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Comercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "Convite A2"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Envelope Monarca"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Personalizado"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "Papel Contínuo 89 mm"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "Papel Contínuo 4 Polegadas"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "Papel Contínuo 5 Polegadas"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "Papel Contínuo 210 mm"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "Papel Contínuo 13 Polegadas"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "Papel Contínuo 22 Polegadas"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "Papel Contínuo 24 Polegadas"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "Papel Contínuo 36 Polegadas"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "Papel Contínuo 44 Polegadas"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s não é um paràmetro válido do tipo %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s fora do intervalo (valor %f, min %f, max %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s fora do intervalo (valor %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "A impressora não suporta a cor de impressão\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Tamanho da imagem não é válido\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Margem de topo não pode ser menor que zero\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Mergem esquerda não pode ser menor que zero\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s não é um algoritmo de \"dither\" válido\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Portuguese"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin1"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Tipo de Média"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Fonte de Média"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Resolução"
+
+#: src/cups/genppd.c:862
+#, fuzzy
+msgid "GIMP-print"
+msgstr "Imprimir"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Tipo de Imagem"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "\"Line Art\""
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Cores Sólidas"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Fotografia"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Algoritmos de \"Dither\"\""
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Tipo de tinta"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Versão de Escputil"
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+"Copyright © 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"Utilização: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Realiza manutenção em impressoras EPSON Styles ®.\n"
+"Exemplos: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Comandos:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern. \n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This require\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Opções:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"Utilização: escputil [OPTIONS] [COMMAND]\n"
+"Utilização: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Realiza manutenção em impressoras EPSON Stylus ®.\n"
+"Exemplos: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Comandos:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus c20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:213
+#, fuzzy
+msgid "Stylus C50"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus c20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Você só pode especificar uma impresoora ou dispositivo"
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Você só pode especificar um modelo de impressora"
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Opção desconhecida %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Não foi possível abrir o dispositivo %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Não é possível imprimir para impressora %s com %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Não foi possível enviar comando para a impressora\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Não é possível ler a partir de %s: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Ciano"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Magenta"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Amarelo"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Ciano Claro"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Magenta Claro"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr ""
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Obter níveis de tinta requere a utilização de um dipositivo.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Não foi possível abrir %s escrita/leitura: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Não foi possível escrever para %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Não é possivel processar o output da impressora\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Cor da Tinta"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Percentagem restante"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Identificação da impressora requere a utilização de um dispositivo.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Status da impressora requere a utilização de um dipositivo.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Limpando as cabeças...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr ""
+"A testar a agulha, por favor assegure-se que existe papel na impressora.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"Por favor leia estas intruções muito cuidadosamente antes de prosseguir.\n"
+"\n"
+"Este programa permite alinhas a cabeça de impressão da sua impressora a "
+"jacto\n"
+"de tinta Epson Stylus. A má utilização do programa pode provocar degradação "
+"da\n"
+"qualidade de impressão, ou mesmo danificar a sua impressora. Este programa "
+"não foi revisto\n"
+"pela Seiko Epson para verificação, e não oferece qualquer tipo de garantia. "
+"O risco\n"
+"involvido na sua utilização recai totalmente sobre si.\n"
+"\n"
+"Este programa imprime %d padrões de teste. Cada parão parece muito "
+"semelhante.\n"
+"O padrão consiste num série de pares de linhas verticais que sobrepõem.\n"
+"Debaixo de cada par de linhas está um número entre %d e %d.\n"
+"\n"
+"Quando você inpeccionar o par de linhas, deve procurar o par de linhas\n"
+"qye está melhor alinhado, isto é, que melhor forma uma única linha vertcal.\n"
+"Inpeccione os pares cuidadosamente para procurar o melhor resultado. O uso\n"
+"de uma lupa é recomendado para as inspecções mais críticas.\n"
+"Tamebém é recomendado que utilize papel de boa qualidade para o teste, para\n"
+"que as linhas fiquem bem formadas e não se espalhem pelo papel.\n"
+"Após descobrir o número que corresponde ao melhor par, coloque o papel de "
+"volta\n"
+"no alimentador de papel antes de o teclar.\n"
+"\n"
+"Cada padrão é similar, mas os últimos padrões usam pontos mais finos para "
+"alinhamentos\n"
+"mais críticos. Deve correr todas as passagens para alinhar correctamente a "
+"sua\n"
+"impressora. Após correr todas as passagens de alinhamento, os padrões de "
+"alinhamento\n"
+"serão imprimidos mais uma vez. Você deve verificar que o par do meio (#%d em "
+"%d) é\n"
+"o melhor de todos os padrões.\n"
+"\n"
+"Após as passagens serem imprimidas mais ima vez, vão dar-lhe a opção\n"
+"de gravar as escolhas na impressora, repetir o processo, ou sair sem "
+"gravar.\n"
+"Sair não vai restaurar as definições anteriores, mas desligar aimpressora e\n"
+"voltar a ligar vai. Se sair deve repetir o processo inteiro se desejar "
+"gravar\n"
+"os resultados. É essencial que você não desligue a impressora durante este "
+"procedimento.\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"Por favor leia estas intrucções muito cuidadosamente antes de prosseguir.\n"
+"\n"
+"Este programa permite alinhas a cabeça de impressão da sua impressora a "
+"jacto\n"
+"de tinta Epson Stylus. A má utilização do programa pode provocar degradação "
+"da\n"
+"qualidade de impressão, ou mesmo danificar a sua impressora. Este programa "
+"não foi revisto\n"
+"pela Seiko Epson para verificação, e não oferece qualquer tipo de garantia. "
+"O risco\n"
+"involvido na sua utilização recai totalmente sobre si.\n"
+"\n"
+"Este programa imprime um padrao que consiste num série de pares de linhas "
+"verticais que sobrepõem.\n"
+"Debaixo de cada par de linhas está um número entre %d e %d.\n"
+"\n"
+"Quando você inpeccionar o par de linhas, deve procurar o par de linhas\n"
+"qye está melhor alinhado, isto é, que melhor forma uma única linha vertcal.\n"
+"Inpeccione os pares cuidadosamente para procurar o melhor resultado. O uso\n"
+"de uma lupa é recomendado para as inspecções mais críticas.\n"
+"Tamebém é recomendado que utilize papel de boa qualidade para o teste, para\n"
+"que as linhas fiquem bem formadas e não se espalhem pelo papel.\n"
+"Após descobrir o número que corresponde ao melhor par, coloque o papel de "
+"volta\n"
+"no alimentador de papel antes de o teclar.\n"
+"\n"
+"Após correr todas as passagens de alinhamento, os padrões de alinhamento\n"
+"serão imprimidos mais uma vez. Você deve verificar que o par do meio (#%d em "
+"%d) é\n"
+"o melhor de todos os padrões.\n"
+"\n"
+"Agora ser-lhe-á dada a opção de gravar as escolhas na impressora, repetir o "
+"processo,\n"
+"ou sair sem gravar. Sair não vai restaurar as definições anteriores, mas "
+"desligar a\n"
+"impressora e voltar a ligar vai. Se sair deve repetir o processo inteiro se "
+"desejar gravar\n"
+"os resultados. É essencial que você não desligue a impressora durante este "
+"procedimento.\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Não foi possível enviar o comando para a impressora, saindo.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"O alinhamento da impressora deve ser feiro com um dipositovo\n"
+"ou então a opção -m deve ser usada para especificar a impressora.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Tentado detectar o modelo da impressora..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"Não foi possível abir %s leitura/escrita %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Não foi possível escrever para %s: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Não foi possível detecar o tipo de impressora.\n"
+"Por favor use a opção -m para especificar o modelo da sua impressora.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "O modelo de impressora %s é desconhecido.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Por favor inspeccione o output final muito cuidadosamente para se assegurar\n"
+"que a sua impressora tem um alinhamento correcto. Você pode agora:\n"
+" (s) gravar os resultados na impressora,\n"
+" (q) sair sem gravar os resultados, ou\n"
+" (r) repetir o processo inteiro desde o início.\n"
+"Vai-lhe ser pedido para confirmar a sua escolha.\n"
+"O que é que pretende fazer (s, q, r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"Por favor confirme carregando em 'q' outra vez se deseja sair sem gravar:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"A sua impressora está alinhada, mas o alinhamento não foi gravado.\n"
+"Se deseja gravar o alinhamento, terá de repetir o processo.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Por favor confirme, carregando em 'r' outra vez, que deseja repetir\n"
+"o processo de alinhamento:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Repetindo o processo de alinhamento.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Isto vai alterar permanentemente a configuração da sua impressora.\n"
+"AVISO: este procedimento não foi aprovado pela Seiko Epson, e pode\n"
+"danificar a sua impressora. Prosseguir?\n"
+"Por favor confirme, carregando em 's' outra vez, que você deseja gravar\n"
+"as configurações para a sua impressora:\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Prestes a gravar as configurações..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "falhou!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"A suas configurações não foram gravados com sucesso.\n"
+"Vai ter de repetir o processo de alinhamento.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "sucesso!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr ""
+"As suas configurações do alinhamento foram gravadas para a impressora.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Comando desconhecido.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "O comando final não foi confirmado.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Este procedimento assume que a sua impressora é uma Epson %s.\n"
+"Se este não é o seu modelo de impressora, por favor carregue em control-C\n"
+"agora e escolha o seu modelo de impressora.\n"
+"\n"
+"Por favor coloque uma folha de papel na impressora para iniciar\n"
+"o processo de alinhamento da cabeça.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Pressione enter para continuar > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Por favor inspeccione a impressão, e escolha o melhor par de linhas em cada "
+"padrão.\n"
+"Insira um par, '?' para ajuda, ou 'r' para repetir o procedimento.\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Passagem #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Por favor insira uma nova folha de papel.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Número fora do intervalo|\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Eu não consigo intender o que escreveu!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "O melhor par de linhasdeve estar numerado entre 1 e %d.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Tentando definir o alinhamento..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "sucesso.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Por favor verifique que o alinhamento é correcto. Após padrão de "
+"alinhamento\n"
+"ser impresso outra vez, por favor certifique-se qye o melhor padrão para "
+"cada linha\n"
+"é o padrão %d. Se não é, você deve repetir o processo para obter a melhor\n"
+"qualidade de impressão.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"Por favor leia estas intrucções muito cuidadosamente antes de prosseguir.\n"
+"\n"
+"Este programa permite alinhas a cabeça de impressão da sua impressora a "
+"jacto\n"
+"de tinta Epson Stylus. A má utilização do programa pode provocar degradação "
+"da\n"
+"qualidade de impressão, ou mesmo danificar a sua impressora. Este programa "
+"não foi revisto\n"
+"pela Seiko Epson para verificação, e não oferece qualquer tipo de garantia. "
+"O risco\n"
+"involvido na sua utilização recai totalmente sobre si.\n"
+"\n"
+"Este programa imprime %d padrões de teste que se sobrepõem en cada folha de "
+"papel.\n"
+"Isto é, ele imprime um padrão e depois ejecta o papel. Você deve reinserir a "
+"mesma\n"
+"página, e ele vai imprimir outro padrão. Cada padrão consiste num conjunto "
+"de \n"
+"escolhas numeradas entre %d e %d.\n"
+"\n"
+"Quando você inpeccionar os padrões, deve encontrar uma mancha com a textura "
+"mais suave\n"
+"(menos granulada). Você deve inspeccionar as manchas muito cuidadosamente "
+"para escolher\n"
+"a melhor. Nós sugerimos usar papel de qualidade fotográfica ou um papel "
+"similar de alta\n"
+"qualidade para este teste. Se não encontrar um padrão suave, deve repetir o "
+"teste.\n"
+"\n"
+"Após inpeccionar as escolhas e escolher uma mancha, vai-lhe ser dada a "
+"hipótese\n"
+"de gravar os resultados na impressora, repetir o processo, ou sair sem "
+"gravar. Sair não\n"
+"vai restaurar as definições anteriores, mas desligar e voltar a ligar a "
+"impressora vai.\n"
+"Se você sair, deve repetir o processo inteiro se desejar gravar mais tarde "
+"os resultados.\n"
+"É essencial que você não desligue a impressora durante este procedimento.\n"
+"\n"
+"AVISO: ESTA FUNÇÃO AINDA NÃO FOI TESTADA! Pode não funcionar, e pode "
+"danificar a\n"
+"sua impressora!\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "A impressora %s não necessita de alinhamento das cabeças de cor.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+"Por favor reinsira a mesma folha de alinhamentos na impressora\n"
+"quando ela acabar de imprimir.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Inspeccione a folha de alinhamentos, e determine qual é o padrão mais\n"
+"suave. Este é padrão menos granulado.\n"
+"Se não conseguir encontrar uma padrão suave, por favor seleccione outro\n"
+"número para melhor padrão, e repita o procedimento.\n"
+"Insira um número de padrão, ou '?' para ajuda.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "O melhor padrão deve estar numerado entre 1 e %d.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Erro no input\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "Ajustamento da Cor de Impressão"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Definir Valores Padrão"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Fechar"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Previsualização da Imagem"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Brilho:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"Defina o brilho da impressão.\n"
+"0 é preto sólido, 2 é branco sólido"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Contraste:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Defina o contraste da impressão"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Ciano:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "Ajustar o equilíbrio de ciano na impressão"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Magenta:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "Ajustar o equilíbrio de magenta da impressão"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Amarelo:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "Ajustar o equilíbrio de amarelo na impressão"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Saturação:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"Ajustar a saturação (equilíbrio de cor) da impressão\n"
+"Use saturação zero para produzir output em escala de cinzento usando tintas "
+"de cor e pretas"
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Densidade:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Ajuste a densidade (quantidade de tinta) da impressão. Reduza a densidade "
+"se\n"
+"a tinta pinga ou borrata o papel, aumente a densidade se as zonas pretas\n"
+"não aparecem sólidas."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gama:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"Ajuste a gama da impressão. Valores altos produzem geralmente impressões "
+"mais brilhantes, enquanto que valores baixos produzem impressões mais "
+"escuras. Preto e branco mantêm-se inalterados, ou contrário do caso do "
+"ajustamento do brilho."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Algoritmo de \"Dither\""
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"Escolha o algoritmo de \"dither\" a ser usado.\n"
+"Híbrido Adaptativo normalmente produz a melhor qualidade.\n"
+"Ordenado é mais rápido e produz uma qualidade semelhante em fotografias.\n"
+"Rápido e Muito Rápido são consideravelmente mais rápidos, e funcionam para\n"
+"texto e para \"line art\".\n"
+"Híbrido Floyd-Steinber normalmente produz resultados inferiores."
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Imprimir v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Acerca"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Imprimir e\n"
+"Gravar Definições"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr "Gravar Definições"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Imprimir"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Previsualizar"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"Posição a imagem na página.\n"
+"Clique e arraste com o botão primário para a posição da imagem.\n"
+"Clique e arraste com o segundo botão para mover a imagem com maior "
+"precisão;\n"
+"cada unidade de movimento move a imagem um ponto (1/72\")\n"
+"Clique e arraste com o terceiro botão (o do meio) para mover a imagem em "
+"unidades\n"
+"de tamanho da imagem.\n"
+"Mantendo pressionado a tecla shift enquanto se clica e arrasta, restringe o "
+"movimento\n"
+"ao eixo horizontal e vertical.\n"
+"Se clicar noutro botão enquanto arrasta com o rato, a imagem vai voltar à "
+"sua\n"
+"posição original."
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Posição"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Auto"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Retrato"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Paisagem"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "De cabeça para baixo"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Paisagem de cabeça para baixo"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Seleccione a orientação: retrato, paisagem, cabeça para baixo, ou paisagem "
+"de cabeça para baixo"
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Orientação:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Esquerda:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Distância da esquerda do papel até à imagem"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Topo:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Distência do topo do papel até à imagem"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Direita:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "Distência da esquerda do papel até à direita da imagem"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Borda Direita:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Distância da direita do papel até à imagem"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Fundo:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "Distância do topo do papel até ao fundo da imagem"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Borda do Fundo:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Distância do fundo do papel até à imagem"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Centro:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Verticalmente"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Centrar a imagem verticalmente no papel"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Ambos"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Centrar a imagem no papel"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Horizontalmente"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Centrar a imagem horizontalmente no papel"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Configurar a Impressora"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Modelo da Impressora:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Seleccione o seu modelo de impressora"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "Ficheiro PPD:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Insira o ficheiro PPD correct para a sua impressora"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Navegar"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Seleccione o ficheiro PPD correcto para a sua impressora"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Comando:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Insira o comando correcto para imprimir para a sua impressora. Nota: Por "
+"favor\n"
+"não remova o `-l' ou `-oraw' da linha de comando, ou a impressão "
+"provavelmente \n"
+"vai falhar!"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "Imprimir para o Ficheiro?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "Ficheiro PPD?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Definir nova Impressora"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Nome da Impressora:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Insira o noma que deseja dar a esta impressora lógica"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Acerca do Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Versão do Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright © 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Definições da Impressora"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+"Seleccione o nome da impressora (não o tipo ou modelo da impressora) para\n"
+"a qual deseja imprimir"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Configurar Impressora..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Escolha o modelo da impressora, ficheiro PPD, e comando que é usado para "
+"imprimir\n"
+"para esta impressora"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Nova Impressora..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Definir uma nova impressora lógica. Isto pode ser usado para denominar uma "
+"colecção de definições que você deseje guardar para uso futuro"
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "Tamanho do papel para o qual deseja imprimir"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Tamanho do \"Media\":"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Dimensões:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Largura:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Largura do papel para o qual deseja imprimir"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Altura"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Altura do papel para o qual deseja imprimir"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Tipo de \"meida\" para o qual está a imprimir"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Tipo de \"Media\":"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Fonte do \"media\" para o qual está a imprimir"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Fonte do \"Media\":"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Tipo de tinta na impressora"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Tipo de Tinta:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Resolução e qualidade da impressão"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Resolução"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Tamanho"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Redimesionamento:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Definir a escala (tamanho) da imagem"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Seleccione se a escala é medida em percentagem do tamanho de página "
+"disponível ou número de pontos por polegada na impressão"
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Precentagem"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "Redimensionar a impressão para o tamanho da página"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "Redimensionar a impressão para o número de pontos por polegada"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Definir a largura da impressão"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Definir a altura da impressão"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Unidades:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "Seleccione a base das unidades de medida para impressão"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "Polegada"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Definir como base das unidades de medida a polegada"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Definir como base das unidades de medida o centímetro"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Usar Original\n"
+"Tamanho de Imagem"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "Definir como tamanho de impressão o tamanho da imagem"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Imagem / Definições de Output"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Tipo de Imagem:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "Optimizar o output para o tipo de imagem a ser imprimida"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "Mais rápido e cor mais brilhange para texto e \"line art\""
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr "Ideal para imagens onde predominam regiões com cores sólidas"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Mais lento, mas mais preciso e cores mais suaves para imagens com gradientes "
+"e fotografias"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Tipo de Output:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Seleccione o tipo de output desejado"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Cor"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Ouput de cor"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Escala de Cinzento"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "Imprimir em sombras de cinzento usando tinta preta"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Preto e Branco"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Imprimir em preto e branco (sem cores, nem sombras de cinzento)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Ajustar o Output..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+"Ajustar equilíbrio de cor, brilho, contraste, saturação e algoritmo de "
+"\"dither\""
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Imprimindo..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Imagem>/Ficheiro/Imprimir..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Ficheiro"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Espaço de cor inválido: bps %d channels %d space %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Sem buffer de linha\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parâmetro %s fora do intervalo (valor %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Não foi possível procesar parâmetro %s=%s (número esperado)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parâmetro %s foram do intervalo (valor %d, min %dm max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Impressora deve ser especificada com -sModelo\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Impressora %s não é um modelo conhecido\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Opção desconhecida %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f de %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header falhou %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init falhou %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Não foi possível abrir \"file descriptor\": %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Não foi possível abrir %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Impressora desconhecida %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Parâmetros inválidos; não é possível continuar|\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Obtenção da próxima linha falhou em %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Não foi possível ler a partir de %s: %s\n"
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 × 360 DPI"
+
+#~ msgid "1440 x 360 DPI Unidirectional"
+#~ msgstr "1440 × 360 DPI Unidireccional"
+
+#~ msgid "1440 x 360 DPI High Quality"
+#~ msgstr "1440 × 360 DPI Alta Qualidade"
+
+#~ msgid "1440 x 360 DPI High Quality Uni"
+#~ msgstr "1440 × 360 DPI Alta Qualidade Uni"
+
+#~ msgid "1440 x 360 DPI Highest Quality"
+#~ msgstr "1440 × 360 DPI Máxima Qualidade"
+
+#~ msgid "13x19"
+#~ msgstr "13×19"
+
+#~ msgid "Monarch"
+#~ msgstr "Monáquico"
+
+#~ msgid "Long 3"
+#~ msgstr "Longo 3"
+
+#~ msgid "Long 4"
+#~ msgstr "Longo 4"
+
+#~ msgid "Kaku"
+#~ msgstr "Kaku"
+
+#~ msgid "HP Greeting Card"
+#~ msgstr "Cartão Saudações HP"
diff --git a/po/sk.gmo b/po/sk.gmo
new file mode 100644
index 0000000..f40ce94
--- /dev/null
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..6fc488d
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,3530 @@
+# Slovenský preklad GIMP Print
+# Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+# Zdenko Podobný <zdpo@mailbox.sk>, 2002, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 4.2.7-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2004-04-19 21:48+0100\n"
+"Last-Translator: Zdenko Podobný <zdpo@mailbox.sk>\n"
+"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.3\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: voľba `%s' nie je jednoznaÄná\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: voľba `--%s' nepovoľuje parameter\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: voľba `%c%s' nedovoľuje použiť argument\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: voľba `%s' vyžaduje argument\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznáma voľba `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznáma voľba `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neplatná voľba -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neplatná voľba -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: voľba vyžaduje argument -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: voľba `-W %s` je viacznaÄná\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: voľba `-W %s' nedovoľuje použiť argument\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "ObyÄajný papier"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Priesvitná fólia"
+
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr "Film pre spätnú tlaÄ"
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Normálny papier"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Obálka"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Papier s vysokým rozlíšením"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "Nažehľovacia fólia"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "Vysokolesklý film"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "Lesklý foto papier"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "Lesklé foto karty"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "Foto papier pro"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Iné"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Automatický podávaÄ papiera"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Manuálne s prerušením"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Manuálne bez prerušenia"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "ÄŒierna"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY farba"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK farba"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Fotografická CcMmY farba"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Fotografická CcMmYK farba"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Adaptívne hybridný"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "Postupný"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Rýchly"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Veľmi rýchly"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Hybridný Floyd-Steinbergov"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Kompozitný trojfarebný"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Štandardný štvorfarebný"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Fotografický šesťfarebný"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Kompozitný fotografický päťfarebný"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Rozšírený sedemfarebný"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Kompozitný rozšírený šesťfarebný"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Fotografický sedemfarebný"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Dve úrovne odtieňov šedej"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quadtone"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "ObyÄajný papier rýchle nasadenie"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Pohľadnica"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "Lesklý film"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Obálky"
+
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr "Svetlý film pre spätnú tlaÄ"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Matný papier"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Papier pre atramentovú tlaÄiareň"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Papier s fotografickou kvalitou"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Fotografický papier"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "Lesklý foto papier Premium"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "Ligotavý foto papier Premium"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "Lesklý fotografický papier"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Ilford ťažký papier"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "Papier ColorLife"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 x 90 DPI Rýchly úsporný koncept"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 x 120 DPI Úsporný koncept"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI Úsporný koncept"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 x 240 DPI Koncept"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 x 180 DPI Koncept"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI Jednosmerne"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr "360 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 DPI Jednosmerne"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr "720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI Jednosmerne"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI Vysoká kvalita"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI Vysoká kvalita jednosmerne"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI Najvyššia kvalita"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 DPI Jednosmerne"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI Najvyššia kvalita"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 DPI Jednosmerne"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI Najvyššia kvalita"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI Plné krytie"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI Plné krytie jednosmerne"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 jednosmerne"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 jednosmerne"
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 x 360 DPI FOL jednosmerne"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 x 360 DPI FOL2 jednosmerne"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 x 360 DPI MW2 jednosmerne"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI Plné krytie"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI Plné krytie jednosmerne"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI Å tvorprechodová tlaÄ"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI Å tvorprechodová jednosmerná tlaÄ"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL jednosmerne"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 DPI Å tvorprechodová tlaÄ"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 DPI Å tvorprechodová jednosmerná tlaÄ"
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 DPI FOL Jednosmerne"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI Å tvorprechodová tlaÄ"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 DPI Å tvorprechodová jednosmerná tlaÄ"
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI FOL jednosmerne"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI Å tvorprechodová tlaÄ"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 DPI Å tvorprechodová jednosmerná tlaÄ"
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI Interleave"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 DPI Interleave jednosmerne"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI FOL jednosmerne"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI Å tvorprechodová tlaÄ"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 DPI Å tvorprechodová jednosmerná tlaÄ"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Štandardný"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "KotúÄový podávaÄ"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr "Podávací valec (odrezať každú stranu)"
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr "Podávací válec (neodrezávať)"
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr "Priehradka rezaných listov 1"
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr "Priehradka rezaných listov 2"
+
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr "Automatický výber rezaných listov"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "Manuálny výber"
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI x 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI Vysoká kvalita"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI Jednosmerne"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI Vysoká kvalita"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI Najvyššia kvalita"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI Jednosmerne"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI x 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI x 1200 DPI Vysoká kvalita"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI x 1200 DPI Najvyššia kvalita"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "Test tlaÄe"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "Jednoduchá"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr "Bond"
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Premium"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "Lesklé foto"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Priesvitné fólie"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Rýchloschnúce foto"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Rýchloschnúce priesvit. fólie"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuál"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Zásobník 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Zásobník 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Zásobník 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Zásobník 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Prenosný podávaÄ papiera"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "Stolový podávaÄ papiera"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Zásobník"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Voliteľný zdroj"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Automatický výber"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 DPI monochromaticky"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Farebná + Äierna kazeta"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Farebná + Foto kazeta"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Epson 4x6 Foto papier"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Super B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr "Super A0"
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+msgid "Super B0 JIS"
+msgstr "Super B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr "ArchA prieÄne"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr "ArchB prieÄne"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr "ArchC prieÄne"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr "ArchD prieÄne"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr "ArchE prieÄne"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "Americké rozmery"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "Európske rozmery"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Large Crown Quarto"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Large Crown Octavo"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Small paperback"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Penguin small paperback"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Penguin large paperback"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki karta"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku karta"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "Japonská dlhá obálka #3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "Japonská dlhá obálka #4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "Japonská Kaku obálka #4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 pozvánka"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "obálka Monarch"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "Vlastný"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "89 mm rolka papiera"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "4 palcová rolka papiera"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "5 palcová rolka papiera"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "210 mm rolka papiera"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "13 palcová rolka papiera"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "22 palcová rolka papiera"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "24 palcová rolka papiera"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "36 palcová rolka papiera"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "44 palcová rolka papiera"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s nie je platný parameter pre typ %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s mimo rozsahu (hodnota %f, min %f, max %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s mimo rozsahu (hodnota %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "TlaÄiareň nepodporuje farebný výstup\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Veľkosť obrázka nie je platná\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Horný okraj nemôže byť menší ako nula\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Ľavý okraj nemôže byť menší ako nula\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s nie je platný algoritmus rozptylu\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Slovak"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "ISOLatin1"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Typ média"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Zdroj média"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Rozlíšenie"
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-print"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Typ obrázku"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Čiarová grafika"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Jednoliate farby"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "Fotografia"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Algoritmus rozptylu"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Typ atramentu"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Verzia Escputil "
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil prichádza bez AKÃCHKOĽVEK GARANCIÃ; detaily získate po napísaní "
+"'escputil -l'\n"
+"Toto je slobodný softvér a jeho redistribúcia je za istých podmienok\n"
+"vítaná; viac informácií získate po napísaní 'escputil -l'.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Toto je iba orientaÄný preklad licencie, ktorá platí v originálnom anglickom "
+"znení.\n"
+"\n"
+"Tento program je voľne šíriteľný; môžete ho redistribuovať a meniť\n"
+"v súlade so Všeobecnou verejnou licenciou GNU publikovanou\n"
+"vo Free Software Foundation; buÄ licenciou verzie 2 alebo\n"
+"(podľa vašej voľby) akoukoľvek novšou.\n"
+"\n"
+"Tento program je šírený v nádeji, že bude užitoÄný, avÅ¡ak\n"
+"BEZ AKEJKOĽVEK ZÃRUKY; neposkytujú sa ani odvodené záruky\n"
+"PREDAJNOSTI alebo VHODNOSTI PRE URČITà ÚČEL.\n"
+"Ďalšie podrobnosti hľadajte vo Všeobecnej verejnej licencii GNU.\n"
+"\n"
+"S týmto programom by ste mali získať kópiu Všeobecnej verejnej\n"
+"licencie GNU; ak tomu tak nie je, napíšte do Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston,\n"
+"MA 02111-1307, USA.\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"Použitie: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P tlaÄiareň | -r zariadenie] [-u] [-q] [-m model]\n"
+"Vykoná údržbu tlaÄiarní EPSON Stylus (R).\n"
+"Príklad: escputil --clean-head --printer stpex-na-druhom-poschodí\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Príkazy:\n"
+" -c|--clean-head ÄŒistí tlaÄovú hlavu.\n"
+" -n|--nozzle-check VytlaÄí testovaciu vzorku na otvory.\n"
+" Špinavé alebo upchaté otvory budú zobrazené ako "
+"medzery\n"
+" vo vzorke. Ak uvidíte nejaké medzery, mali by ste\n"
+" oÄistiÅ¥ tlaÄovú hlavu.\n"
+" -a|--align-head Zarovnanie tlaÄovej hlavy. UPOZORNENIE: Nesprávne\n"
+" použitie tohoto nástroja bude mať za následok nízku\n"
+" kvalitu tlaÄe a/alebo poÅ¡kodenie tlaÄiarne.\n"
+" -o|--align-color Zarovnanie farebnej hlavy ( iba pre Stylus Color 480 "
+"a\n"
+" 580 UPOZORNENIE: Nesprávne použitie tohoto nástroja "
+"bude\n"
+" maÅ¥ za následok nízku kvalitu tlaÄe a/alebo "
+"poškodenie\n"
+" \t\t\ttlaÄiarne.\n"
+" -s|--status Informácie o stave tlaÄiarne.\n"
+" -i|--ink-level Získanie o informácie o úrovni atramentu z "
+"tlaÄiarne.\n"
+"\t\t\tToto vyžaduje prístup Äítanie/zápis na základné\n"
+" zariadenie tlaÄiarne.\n"
+" -d|--identify Požiadavka na tlaÄiareň o informácie o modely.\n"
+" Toto vyžaduje prístup Äítanie/zápis na základné\n"
+" zariadenie tlaÄiarne.\n"
+" -l|--license Zobrazenie licencie/podmienok záruky tohoto "
+"programu.\n"
+" -M|--list-models Zoznam dostupných modelov tlaÄiarní.\n"
+" -h|--help Zobrazí tieto informácie.\n"
+"\n"
+" Voľby:\n"
+" -P|--printer-name UrÄenie názvu tlaÄiarne, s ktorou sa bude pracovaÅ¥.\n"
+" Å tandardne sa použije systémová tlaÄiareň.\n"
+" -r|--raw-device UrÄenie názvu zariadenia pre priamy zápis, než by sa\n"
+" mal použiÅ¥ tlaÄový front.\n"
+" -u|--new TlaÄiareň je nová tlaÄiareň (Stylus Color 740 alebo\n"
+" novšia).\n"
+" -q|--quiet zakázanie nápisu.\n"
+" -m|--model UrÄenie presného modelu tlaÄiarne pre zarovnanie "
+"hlavy.\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"Použitie: escputil [VOĽBA] [PRÃKAZ]\n"
+"Použitie: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P tlaÄiareň | -r zariadenie] [-u] [-q] [-m model]\n"
+"Vykoná údržbu na tlaÄiarni EPSON Stylus (R).\n"
+"Príklady: escputil -c -P stpex-na-druhom-poschodí\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Príkazy:\n"
+" -c ÄŒistí tlaÄovú hlavu.\n"
+" -n VytlaÄí testovaciu vzorku na otvory.\n"
+" Špinavé alebo upchaté otvory budú zobrazené ako medzery\n"
+" vo vzorke. Ak uvidíte nejaké medzery, mali by ste oÄistiÅ¥\n"
+" tlaÄovú hlavu.\n"
+" -a Zarovnanie tlaÄovej hlavy. UPOZORNENIE: Nesprávne použitie\n"
+" tohoto nástroja bude maÅ¥ za následok nízku kvalitu tlaÄe\n"
+" a/alebo poÅ¡kodenie tlaÄiarne.\n"
+" -o Zarovnanie farebnej hlavy ( iba pre Stylus Color 480 a 580\n"
+" UPOZORNENIE: Nesprávne použitie tohoto nástroja bude mať\n"
+" za následok nízku kvalitu tlaÄe a/alebo poÅ¡kodenie tlaÄiarne.\n"
+" -s Informácie o stave tlaÄiarne.\n"
+" -i Získanie o informácie o úrovni atramentu z tlaÄiarne. Toto vyžaduje\n"
+" prístup na Äítanie/zápis na základné zariadenie tlaÄiarne.\n"
+" -d Požiadavka na tlaÄiareň o informácie o modely. Toto vyžaduje prístup\n"
+" Äítanie/zápis na základné zariadenie tlaÄiarne.\n"
+" -l Zobrazenie licencie/podmienok záruky tohoto programu.\n"
+" -M Zoznam dostupných modelov tlaÄiarní.\n"
+" -h Zobrazí tieto informácie.\n"
+"\n"
+" Voľby:\n"
+" -P UrÄenie názvu tlaÄiarne, s ktorou sa bude pracovaÅ¥.\n"
+" Å¡tandardne sa použije systémová tlaÄiareň.\n"
+" -r UrÄenie názvu zariadenia pre priamy zápis, než by sa\n"
+" mal použiÅ¥ tlaÄový front.\n"
+" -u TlaÄiareň je nová tlaÄiareň (Stylus Color 740 alebo novÅ¡ia).\n"
+" -q zakázanie nápisu.\n"
+" -m UrÄenie presného modelu tlaÄiarne pre zarovnanie hlavy.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr "Stylus C43sx"
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr "Stylus C43ux"
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr "Stylus C44sx"
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr "Stylus C44ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr "Stylus C63"
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr "Stylus C64"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr "Stylus C83"
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr "Stylus C84"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 935"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr "Stylus CX-3100"
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr "Stylus CX-3200"
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr "Stylus CX-5100"
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr "Stylus CX-5200"
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr "Stylus CX-6300"
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr "Stylus CX-6400"
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr "Stylus CX-8300"
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr "Stylus CX-8400"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Môžete Å¡pecifikovaÅ¥ len jednu tlaÄiareň alebo prvotné zariadenie."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Je možné zvoliÅ¥ len jeden model tlaÄiarne."
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Neznáme nastavenie %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Nie je možné otvoriť zariadenie %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Na tlaÄiarni %s s %s nie je možné tlaÄiÅ¥ \n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Nie je možné poslaÅ¥ príkaz na tlaÄiareň\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr "ČítaÅ¥ vyprÅ¡anie Äasového limitu z tlaÄiarne\n"
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Nie je možné ÄítaÅ¥ z %s: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Azúrová"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Purpurová"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Žltá"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Jasná azúrová"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Jasná purpurová"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr "Čierna/Tmavá žltá"
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Získanie úrovne atramentu vyžaduje použitie základného zariadenia.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Nie je možné otvoriÅ¥ %s pre Äítanie/zápis: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Nie je možné zapisovať do %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Nie je možné analyzovaÅ¥ výstup z tlaÄiarne\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Farebný atrament"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "Zostávajúce percentá"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Identifikácia tlaÄiarne vyžaduje používanie základného zariadenia.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Stav tlaÄiarne vyžaduje používanie základného zariadenia.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "Čistenie hláv...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr "Spúšťam kontrolu trysiek, uistite sa, že v tlaÄiarni je papier.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"Prosím, veľmi pozorne si preÄítajte tieto inÅ¡trukcie skôr, ako bude "
+"pokraÄovaÅ¥.\n"
+"\n"
+"Tento nástroj vám umožní zarovnaÅ¥ tlaÄovú hlavu atramentovej tlaÄiarne\n"
+"Epson Stylus. Jeho nesprávne použitie môže spôsobiÅ¥ zníženie kvality tlaÄe\n"
+"a môže poÅ¡kodiÅ¥ samotnú tlaÄiareň. Tento nástroj nebol otestovaný\n"
+"spoloÄnosÅ¥ou Seiko Epson a je ponúknutý bez akejkoľvek záruky. Celé\n"
+"riziko za použitie toho nástroja leží na vás.\n"
+"\n"
+"Bude vytlaÄených %d testovacích vzoriek. VÅ¡etky vzorky sú veľmi podobné.\n"
+"Vzorky obsahujú série zvislých Äiar, ktoré sa budú prekrývaÅ¥ Pod každým "
+"párom je Äíslo\n"
+"od %d do %d.\n"
+"\n"
+"KeÄ si prezriete páry Äiar, mali by ste vybraÅ¥ taký pár Äiar, ktorý je "
+"najlepšie\n"
+"zarovnaný. Veľmi pozorne si ich prezrite. Pre najkritickejšie rozhodovanie\n"
+"použite lupu alebo zväÄÅ¡ovacie sklíÄko. Tiež vám odporúÄame použiÅ¥ na tento\n"
+"test vysokokvalitný papier, aby sa Äiary nerozpíjali na papieri, ale mali\n"
+"správny tvar. Pred napísaním Äísla najlepÅ¡ieho páru Äiar, vložte stanu späť\n"
+"do tlaÄiarne.\n"
+"\n"
+"Každá vzorka je podobná, ale posledné vzorky používajú jemnejšie bodky\n"
+"pre kritickejšie zarovnanie. Musíte prejsť všetkými fázami zarovnávania,\n"
+"aby vaÅ¡a tlaÄiareň bola správne zarovnaná. Po absolvovaní vÅ¡etkých fáz\n"
+"bude zarovnávacia vzorka vytlaÄená eÅ¡te raz. Mali by ste zistiÅ¥, že vzorka\n"
+"v strede (#%d z %d) je najlepšia zo všetkých,\n"
+"\n"
+"Po vytlaÄení ÄalÅ¡ej vzorky vám bude ponúknutá možnosÅ¥ (s) - uložiÅ¥ výsledky\n"
+"do tlaÄiarne, (r) - zopakovaÅ¥ proces, alebo (q) - ukonÄiÅ¥ bez uloženia.\n"
+"UkonÄenie neobnoví pôvodné nastavenie, ale vypnutie a následné zapnutie\n"
+"tlaÄiarne áno. Pokiaľ ukonÄíte bez uloženia, budete musieÅ¥ zopakovaÅ¥ celý\n"
+"proces opäť, ak budete chcieť svoje výsledky uložiť. Je dôležité, aby ste "
+"poÄas\n"
+"toho procesu nevypli tlaÄiareň\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"Prosím, veľmi pozorne si preÄítajte tieto inÅ¡trukcie skôr, ako bude "
+"pokraÄovaÅ¥.\n"
+"\n"
+"Tento nástroj vám umožní zarovnaÅ¥ tlaÄovú hlavu atramentovej tlaÄiarne Epson "
+"Stylus.\n"
+"Jeho nesprávne použitie môže spôsobiÅ¥ zníženie kvality tlaÄe a môže "
+"poškodiť\n"
+"samotnú tlaÄiareň. Tento nástroj nebol otestovaný spoloÄnosÅ¥ou Seiko Epson\n"
+"a je ponúknutý bez akejkoľvek záruky. Celé riziko za použitie toho nástroja\n"
+"leží na vás.\n"
+"\n"
+"Bude vytlaÄená testovacia vzorka, ktorá bude obsahovaÅ¥ sériu párov zvislých\n"
+"Äiar, ktoré **overlap. Pod každým párom Äiar je Äíslo od %d do %d.\n"
+"\n"
+"KeÄ si prezriete vzorky, mali by ste vybraÅ¥ taký pár Äiar, ktorý je "
+"najlepšie\n"
+"zarovnaný. Veľmi pozorne si ich prezrite. Pre najkritickejšie rozhodovanie\n"
+"použite lupu alebo zväÄÅ¡ovacie sklíÄko. Tiež vám odporúÄame použiÅ¥ na tento\n"
+"test vysokokvalitný papier, aby sa Äiary nerozpíjali na papieri, ale mali\n"
+"správny tvar. Pred napísaním Äísla najlepÅ¡ieho páru Äiar, vložte stanu späť\n"
+"do tlaÄiarne.\n"
+"\n"
+"Zarovnávacia vzorka bude vytlaÄená eÅ¡te raz. V tomto prípade by najlepším\n"
+"párom (#%d z %d) mal byť ten uprostred. Potom vám bude ponúknutá možnosť\n"
+"(s) - uložiÅ¥ výsledky do tlaÄiarne, (r) - zopakovaÅ¥ proces, alebo (q) - "
+"ukonÄiÅ¥\n"
+"bez uloženia. UkonÄenie neobnoví pôvodné nastavenie, ale vypnutie a "
+"následné\n"
+"zapnutie tlaÄiarne áno.\n"
+"Pokiaľ ukonÄíte bez uloženia, budete musieÅ¥ zopakovaÅ¥ celý proces opäť, ak\n"
+"budete chcieÅ¥ svoje výsledky uložiÅ¥. Je dôležité, aby ste poÄas toho "
+"procesu \n"
+"nevypli tlaÄiareň\n"
+"\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Nie je možné odoslaÅ¥ príkaz pre tlaÄiareň, koniec.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"Zarovnanie tlaÄiarne musí byÅ¥ vykonané so základného zariadením alebo\n"
+"pomocou voľby -m musíte urÄiÅ¥ tlaÄiareň.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Pokúšam sa zistiÅ¥ model tlaÄiarne..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"Nie je možné otvoriÅ¥ %s pre Äítanie/zápis: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Nie je možné zapisovať do %s: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Nie je možné zistiÅ¥ typ tlaÄiarne.\n"
+"Použite prosím -m na urÄenie modelu vaÅ¡ej tlaÄiarne.\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "Neznámy typ tlaÄiarne %s.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Preskúmajte výsledok tlaÄe veľmi pozorne a uistite sa,\n"
+"že vaÅ¡a tlaÄiareň má správne zarovnanie. Teraz môžete:\n"
+" (s) uložiÅ¥ výsledok do tlaÄiarne,\n"
+" (q) ukonÄiÅ¥ bez uloženia výsledku, alebo\n"
+" (r) zopakovaÅ¥ celý proces od zaÄiatku.\n"
+"Potom bude požiadaný potvrdiť vašu voľbu.\n"
+"Čo chcete spraviť? (s,q,r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"PotvrÄte prosím opätovným stlaÄením 'q', že si želáte ukonÄiÅ¥ bez uloženia:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"V poriadku, vaÅ¡a tlaÄiareň je zarovnaná, ale zarovnanie nebolo uložené.\n"
+"Ak si želáte uložiť zarovnanie, musíte tento proces zopakovať.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Opätovným stlaÄení 'r' potvrÄte, že si prajete zopakovaÅ¥ proces "
+"zarovnávania:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "Opakujem proces zarovnávania.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Toto natrvalo zmení nastavenie vaÅ¡ej tlaÄiarne.\n"
+"VAROVANIE: táto procedúra nebola odsúhlasená spoloÄnosÅ¥ou Seiko Epson\n"
+"a môže poÅ¡kodiÅ¥ vaÅ¡u tlaÄiareň. PokraÄovaÅ¥?\n"
+"PotvrÄte opätovným stlaÄením 's', že si prajete uložiÅ¥ nastavenie\n"
+"vaÅ¡ej tlaÄiarne:\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "O nastaveniach ukladania..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "zlyhalo!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"Vaše nastavenie sa nepodarilo úspešne uložiť. Musíte zopakovať\n"
+"procedúru zarovnávania.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "úspešne!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "VaÅ¡e nastavenia zarovnávania boli uložené do tlaÄiarne.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Neznámy príkaz.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "ZávereÄný príkaz nebol potvrdený.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Táto procedúra prepokladá, že vaÅ¡a tlaÄiareň je Epson %s.\n"
+"Ak toto nie je model vaÅ¡ej tlaÄiarne, stlaÄte teraz prosím control-C\n"
+"a zvoľte váš súÄasný model tlaÄiarne.\n"
+"\n"
+"Vložte prosím hárok papiera do vaÅ¡ej tlaÄiarne, aby sa mohla zaÄaÅ¥\n"
+"procedúra zarovnávania hlavy.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "Pre pokraÄovanie stlaÄte enter > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Preskúmajte pozorne výtlaÄok a zvoľte najlepší pár Äiar v každej vzorke.\n"
+"StlaÄte Äíslo páru, '?' pre pomoc alebo 'r' pre zopakovanie procedúry.\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Prechod #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Vložte prosím nový hárok papiera.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "Číslo je mimo rozsahu!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Nedokážem pochopiÅ¥, Äo ste napísali!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "Najlepší pár Äiar by mal maÅ¥ Äíslo z rozpätia 1 a %d.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Pokúšam sa nastaviť zarovnávanie..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "úspešné.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Prekontrolujte prosím, Äi je zarovnávanie správne. Potom, Äo bude vzorka\n"
+"opäť vytlaÄená, uistite sa, Äi najlepÅ¡ia vzorka pre každý riadok je vzorka %"
+"d. Ak nie je, mali by ste zopakovať tento proces, aby ste dostali najlepšie "
+"výsledky pri tlaÄi.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"Prosím, veľmi pozorne si preÄítajte tieto inÅ¡trukcie pred tým, ako bude "
+"pokraÄovaÅ¥.\n"
+"\n"
+"Tento nástroj vám pomôže so zarovnávaním tlaÄovej hlavy pre farebnú tlaÄ "
+"atramentovej tlaÄiarne Epson Stylus.\n"
+"Jeho nesprávne použitie môže spôsobiÅ¥ zníženie kvality tlaÄe a môže "
+"poškodiť\n"
+"samotnú tlaÄiareň. Tento nástroj nebol odobrený spoloÄnosÅ¥ou Seiko Epson\n"
+"a je ponúknutý bez akejkoľvek záruky. Celé riziko za použitie toho nástroja\n"
+"leží na vás.\n"
+"\n"
+"Nástroj vytlaÄí %d pretlaÄ testovacích vzoriek na jeden kúsok papiera.\n"
+"Najprv sa vytlaÄí jedna vzorka a papier bude vysunutý. Potom musíte ten "
+"istý\n"
+"papier vložiÅ¥ do tlaÄiarne, aby sa naň vytlaÄila ÄalÅ¡ia vzorka. Každá "
+"vzorka\n"
+"obsahuje sadu možností oÄíslovaných od %d do %d.\n"
+"\n"
+"KeÄ si prezriete vzorky, mali by ste nájsÅ¥ tú s najhladÅ¡ou textúrou "
+"(najmenej\n"
+"''zrnitou''). Mali by ste ich veľmi pozorne prezrieť a vybrať tú "
+"najlepšiu.\n"
+"OdporúÄame vám použiÅ¥ papier pre tlaÄ vo foto kvalite alebo podobne "
+"vysokokvalitný\n"
+"typ papiera. Pokiaľ nenájdete hladkú vzorku, mali by ste test zopakovať.\n"
+"\n"
+"Po preskúmaní možností a výbere pásky, vám budú ponúknuté tieto možnosti:\n"
+"(s) - uložiÅ¥ výsledky do tlaÄiarne, (r) - zopakovaÅ¥ proces, alebo (q) - "
+"ukonÄiÅ¥\n"
+"bez uloženia. UkonÄenie neobnoví pôvodné nastavenie, ale vypnutie a "
+"následné\n"
+"zapnutie tlaÄiarne áno.. Pokiaľ ukonÄíte bez uloženia, budete musieÅ¥ "
+"zopakovať\n"
+"celý proces opäť, ak budete chcieť svoje výsledky uložiť.\n"
+"Je dôležité, aby ste poÄas toho procesu nevypli tlaÄiareň\n"
+"\n"
+"VAROVANIE: TÃTO FUNKCIA NIE JE EÅ TE OTESTOVANÃ! Možno nebude fungovaÅ¥ a "
+"možno\n"
+"vám poÅ¡kodí tlaÄiareň!\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "TlaÄiareň %s nevyžaduje zarovnanie farebnej hlavy.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr ""
+"Opätovne vložte prosím ten istý hárok papiera na zarovnanie\n"
+"do tlaÄiarne po dokonÄení tlaÄenia.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Preskúmajte zarovnanie papiera a urÄite, ktorá vzorka je najhladÅ¡ia.\n"
+"Táto vzorka má najmenej ``zrniek''.\n"
+"Ak nemôžete nájsÅ¥ hladkú vzorku, zvoľte prosím Äíslo najlepÅ¡ej vzorky\n"
+"a zopakujte túto procedúru.\n"
+"Vložte Äíslo vzorky, alebo '?' pre pomoc.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "NajlepÅ¡ia vzorka by mala maÅ¥ Äíslo od 1 po %d.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Chyba na vstupe\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "Prispôsobenie farieb pre tlaÄ"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Nastaviť štandardné"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Zatvoriť"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Náhľad obrázku"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "Jas:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"Nastavenie jasu tlaÄe.\n"
+"0 je jednoliatu Äiernu, 2 pre jednoliatu bielu"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "Kontrast:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "NastaviÅ¥ kontrast tlaÄe"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Azúrová:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "Prispôsobenie vyváženie azúrovej farby pre tlaÄ"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Purpurová:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "Prispôsobenie vyváženie purpurovej farby pre tlaÄ"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Žltá:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "Prispôsobenie vyváženie žltej farby pre tlaÄ"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "Sýtosť:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"Prispôsobenie sýtosti (farebného vyváženia) tlaÄe\n"
+"Použite nulu na vyprodukovanie výstupu v odtieňoch šedej s použitím "
+"farebného a Äierneho atramentu"
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "Hustota:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Nastavte hustotu (množstvo atramentu) pre tlaÄ. Hustotu znížte, ak atrament "
+"teÄie po papieri, alebo sa rozmazáva; zvýšte hustotu, ak Äierne oblasti sú "
+"jednoliate."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Gama:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"Nastavenie gamy pre tlaÄ. VyÅ¡Å¡ie hodnoty vyprodukujú vÅ¡eobecne jasnejÅ¡iu "
+"tlaÄ, kým nižšie hodnoty vyprodukujú tmavÅ¡iu tlaÄ. ÄŒierna a biela zostanú "
+"také isté na rozdiel od nastavovania jasu."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Algoritmus rozptylu:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"Zvoľte algoritmus rozptylu, ktorý sa použije pri tlaÄi.\n"
+"Prispôsobiteľné miešanie roztylu všobecne poskytuje najlepší výsledok.\n"
+"Postupný rozptyl je rýchlejší a výsledná kvalita je podobná ako je na "
+"fotografiách.\n"
+"Rýchly a veľmi rýchly roztyl je podstatne rýchlejší a dobré výsledky "
+"poskytuje pre text a Äiarovú grafiku.\n"
+"Miešaný Floyd-Steinbergov roztyl všeobecne poskytuje menej kvalitný výstup."
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- TlaÄ v%s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "O programe"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Uložiť nastavenia\n"
+"a vytlaÄiÅ¥"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Uložiť\n"
+"nastavenia"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "TlaÄiÅ¥"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "Storno"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Náhľad"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"Pozícia obrázku na strane.\n"
+"Kliknite a potiahnite primárne tlaÄítko na pozíciu obrázku.\n"
+"Kliknite a potiahnite sekundárne tlaÄítko pohybu obrázku s jemnejÅ¡ou "
+"presnosťou; každá jednotka pohybu posunie obrázok o jeden bod (1/72\")\n"
+"Kliknite a potiahnite so stredným tlaÄítkom na pohyb v jednotkách veľkosti "
+"obrázku.\n"
+"Ak pri klikaní a ťahaní podržíte klávesu Shift obmedzíte pohyb obrázku iba "
+"na vodorovný a zvislý pohyb.\n"
+"Ak poÄas Å¥ahania obrázku myÅ¡ou kliknete iným tlaÄítkom, obrázok sa vráti na "
+"pôvodnú pozíciu."
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "Pozícia"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Automaticky"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Na výšku"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Na šírku"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Hore nohami"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Na šírku"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Zvoľte orientáciu: na výšku, na šírku, hore nohami, na šírku hore nohami "
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "Orientácia:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Ľavý:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "Vzdialenosť od ľavého okraja papiera k obrázku"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Horný:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "Vzdialenosť od horného okraja papiera k obrázku"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Pravý:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "Vzdialenosť od ľavého okraja papiera k pravému okraju obrázku"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Pravý okraj:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "Vzdialenosť od pravého okraja papiera k obrázku"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Dolný:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "Vzdialenosť od horného okraja papiera k dolnému okraju obrázku"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "Dolný okraj:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "Vzdialenosť od dolného okraja papiera k obrázku"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Centrovanie:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Zvislo"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Vycentrovať obrázok zvisle na papieri"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr "Oboje"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Vycentrovať obrázok na papieri"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Vodorovne"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Vycentrovať vodorovne obrázok na papieri"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "NastaviÅ¥ tlaÄiareň"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "OK"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Model tlaÄiarne:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Vyberte model vaÅ¡ej tlaÄiarne"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD súbor:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Vložte správny PPD názov súboru pre vaÅ¡u tlaÄiareň"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "Prechádzať"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Zvoľte správny PPD názov súboru pre vaÅ¡u tlaÄiareň"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Príkaz:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Vložte správny príkaz pre tlaÄ na vaÅ¡ej tlaÄiarni. Poznámka: Neodstráňte "
+"prosím z reÅ¥azca pre tlaÄ prepínaÄe `-l' alebo `-oraw', lebo tlaÄ "
+"pravdepodobne nebude úspešná!"
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "TlaÄiÅ¥ do súboru?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD súbor?"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Definovanie novej tlaÄiarne"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Názov tlaÄiarne:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Vložte oznaÄenie, ktoré chcete daÅ¥ tejto logickej tlaÄiarni"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "O Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "Verzia Gimp-Print"
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"a zvyšok vývojového tímu Gimp-Print.\n"
+"\n"
+"Navštívte prosím webovskú stánku http://gimp-print.sourceforge.net.\n"
+"\n"
+"Tento program je slobodný softvér; môžete ho nedistribuovať a/alebo meniť\n"
+"v súlade so Všeobecnou verejnou licenciou GNU publikovanou\n"
+"vo Free Software Foundation; Äi už verzie 2 alebo\n"
+"(podľa vašej voľby) akoukoľvek novšou.\n"
+"\n"
+"Tento program je šírený v nádeji, že bude užitoÄný, avÅ¡ak\n"
+"BEZ AKEJKOĽVEK ZÃRUKY; neposkytujú sa ani odvodené záruky\n"
+"PREDAJNOSTI alebo VHODNOSTI PRE URČITà ÚČEL.\n"
+"Ďalšie podrobnosti hľadajte vo Všeobecnej verejnej licencii GNU.\n"
+"\n"
+"S týmto programom by ste mali získať kópiu Všeobecnej verejnej\n"
+"licencie GNU; ak tomu tak nie je, napíšte do Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston,\n"
+"MA 02111-1307, USA.\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Nastavenie tlaÄiarne"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr ""
+"Zvoľte si názov tlaÄiarne (nie typ alebo model tlaÄiarne), na ktorej chcete "
+"tlaÄiÅ¥"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Nastavenie tlaÄiarne..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Voľba model tlaÄiarne, PPD súboru a príkaz, ktorý sa používa pre tlaÄ na "
+"tejto tlaÄiarni"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Nová tlaÄiareň..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Definovanie novej logickej tlaÄiarne. Toto môže byÅ¥ použité na pomenovanie "
+"zbierky nastavení, ktoré si prajete zapamätať a v budúcnosti používať."
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "VeľkosÅ¥ papiera, na ktorý chcete tlaÄiÅ¥"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Veľkosť média:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Rozmery:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Šírka:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Šírka papiera, na ktorý chcete tlaÄiÅ¥"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "Výška:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "Výška papiera, na ktorý chcete tlaÄiÅ¥"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Typ média na ktorý bude tlaÄené"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Typ média:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Zdroj (vstupné miesto) média, na ktoré tlaÄíte"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Zdroj média:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Typ atramentu tlaÄiarne"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Typ atramentu:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Rozlíšenie a kvalita tlaÄe"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Rozlíšenie:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Veľkosť"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "Zmena:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "NastaviÅ¥ zväÄÅ¡enie (veľkosÅ¥) obrázku"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Zvoľte, Äi zmena veľkosti bude vyjadrená ako percento dostupnej veľkosti "
+"stránky, alebo ako Äíslo výstupného DPI"
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "Percentá"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "ZmeniÅ¥ veľkosÅ¥ tlaÄe podľa rozmerov strany"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "PPI"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "ZmeniÅ¥ veľkosÅ¥ tlaÄe podľa poÄtu bodov na palec"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "NastaviÅ¥ šírku tlaÄe"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "NastaviÅ¥ výšku tlaÄe"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Jednotky:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "ZvoliÅ¥ základnú mernú jednotku pre tlaÄ"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "palce"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Nastaviť palce ako základnú mernú jednotku"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "cm"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Nastaviť centimetre ako základnú mernú jednotku"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"Použiť pôvodnú\n"
+"veľkosť obrázka"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "Nastavenie veľkosti tlaÄe na veľkosÅ¥ obrázku"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "Obrázok / Výstupné nastavenia"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Typ obrázku:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "OptimalizovaÅ¥ výstup podľa typu tlaÄeného obrázku"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "NajrýchlejÅ¡ie a jasnejÅ¡ie farby pre text a Äiarovú grafiku"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr "Najlepšie pre obrázky s dominatnými oblasťami jednej farby"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Najpomalšie, ale najpresnejšie a najhladšie farby pre plynulé odtiene "
+"obrázkov a fotografií"
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Typ výstupu:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Zvoľte vytúžený typ výstupu"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Farebne"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Farebný výstup"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "V odtieňoch šedej"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "TlaÄiÅ¥ v odtieňoch Å¡edej s použitím Äiernej farby"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "ÄŒiernobielo"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "TlaÄiÅ¥ Äiernou a bielou (bez farieb a bez odtieňov Å¡edej)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "Prispôsobiť výstup..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr ""
+"Nastavenie farebného vyváženia, kontrastu, sýtosti a algoritmu rozptylu"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "TlaÄím..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Súbor/TlaÄ..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Súbor"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Zlý farebný priestor: bps %d kanály %d priestor %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Neexistuje riadkový bufer\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parameter %s je mimo rozsahu (hodnota %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Nie je možné analyzovaÅ¥ parameter %s=%s (oÄakáva sa Äíslo)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parameter %s je mimo rozsahu (hodnota %d, min %d, max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "TlaÄiareň musí byÅ¥ urÄené pomocou -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "TlaÄiareň %s nie je známy model\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Neznáme nastavenie %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f z %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header zlyhalo %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init zlyhalo %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Nepodarilo sa otvoriť popis súboru: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Nie je možné otvoriť %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Neznáma tlaÄiareň %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Zlé parametre; nie je možné pokraÄovaÅ¥!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Získanie nasledujúceho riadku zlyhalo na %.0f\n"
diff --git a/po/sv.gmo b/po/sv.gmo
new file mode 100644
index 0000000..473b2c0
--- /dev/null
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index dbfe588..862400e 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,14 +1,14 @@
# Swedish messages for gimp-print.
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Christian Rose <menthos@menthos.com>, 2001.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Christian Rose <menthos@menthos.com>, 2001, 2002, 2003.
#
-# $Id$
+# $Id: sv.po,v 1.30.2.51 2004/04/19 00:05:00 rlk Exp $
#
msgid ""
msgstr ""
-"Project-Id-Version: gimp-print\n"
-"POT-Creation-Date: 2001-11-24 10:41-0500\n"
-"PO-Revision-Date: 2001-10-21 16:32+0200\n"
+"Project-Id-Version: gimp-print-4.2.6-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2003-04-19 10:37+0200\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
@@ -74,804 +74,887 @@ msgstr "%s: flaggan \"-W %s\" är flertydig\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: flaggan \"-W %s\" tillåter inget argument\n"
-#: src/main/print-canon.c:1310 src/main/print-escp2.c:1652
-#: src/main/print-escp2.c:1711 src/main/print-lexmark.c:882
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
msgid "Plain Paper"
msgstr "Vanligt papper"
-#: src/main/print-canon.c:1311 src/main/print-escp2.c:1664
-#: src/main/print-escp2.c:1723 src/main/print-lexmark.c:888
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
msgid "Transparencies"
msgstr "Genomskinligheter"
-#: src/main/print-canon.c:1312
+#: src/main/print-canon.c:1174
msgid "Back Print Film"
msgstr "Bakutskriftsfilm"
-#: src/main/print-canon.c:1313
+#: src/main/print-canon.c:1175
msgid "Fabric Sheets"
msgstr "Tygark"
-#: src/main/print-canon.c:1314
+#: src/main/print-canon.c:1176
msgid "Envelope"
msgstr "Kuvert"
-#: src/main/print-canon.c:1315
+#: src/main/print-canon.c:1177
msgid "High Resolution Paper"
msgstr "Högupplösningspapper"
-#: src/main/print-canon.c:1316
+#: src/main/print-canon.c:1178
msgid "T-Shirt Transfers"
msgstr "T-shirttryck"
-#: src/main/print-canon.c:1317
+#: src/main/print-canon.c:1179
msgid "High Gloss Film"
msgstr "Högglansig film"
-#: src/main/print-canon.c:1318
+#: src/main/print-canon.c:1180
msgid "Glossy Photo Paper"
msgstr "Glansigt fotopapper"
-#: src/main/print-canon.c:1319
+#: src/main/print-canon.c:1181
msgid "Glossy Photo Cards"
msgstr "Glansiga fotokort"
-#: src/main/print-canon.c:1320
+#: src/main/print-canon.c:1182
msgid "Photo Paper Pro"
msgstr "Professionellt fotopapper"
-#: src/main/print-canon.c:1321 src/main/print-escp2.c:1698
-#: src/main/print-escp2.c:1757 src/main/print-lexmark.c:918
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
msgid "Other"
msgstr "Annat"
-#: src/main/print-canon.c:1594 src/main/print-lexmark.c:1133
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
msgid "Auto Sheet Feeder"
msgstr "Automatisk arkmatare"
-#: src/main/print-canon.c:1595 src/main/print-lexmark.c:1134
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
msgid "Manual with Pause"
msgstr "Manuell med paus"
-#: src/main/print-canon.c:1596 src/main/print-lexmark.c:1135
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
msgid "Manual without Pause"
msgstr "Manuell utan paus"
-#: src/escputil/escputil.c:577 src/main/print-canon.c:1689
-#: src/main/print-lexmark.c:639
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
msgid "Black"
msgstr "Svart"
-#: src/main/print-canon.c:1694
+#: src/main/print-canon.c:1563
msgid "CMY Color"
msgstr "CMY-färg"
-#: src/main/print-canon.c:1699
+#: src/main/print-canon.c:1568
msgid "CMYK Color"
msgstr "CMYK-färg"
-#: src/main/print-canon.c:1704
+#: src/main/print-canon.c:1573
msgid "Photo CcMmY Color"
msgstr "CcMmY-fotofärg"
-#: src/main/print-canon.c:1709
+#: src/main/print-canon.c:1578
msgid "Photo CcMmYK Color"
msgstr "CcMmYK-fotofärg"
-#: src/main/print-dither.c:62
+#: src/main/print-dither.c:64
msgid "Adaptive Hybrid"
msgstr "Adaptiv hybrid"
-#: src/main/print-dither.c:63
+#: src/main/print-dither.c:65
msgid "Ordered"
msgstr "Sorterad"
-#: src/main/print-dither.c:64
+#: src/main/print-dither.c:66
msgid "Fast"
msgstr "Snabb"
-#: src/main/print-dither.c:65
+#: src/main/print-dither.c:67
msgid "Very Fast"
msgstr "Mycket snabb"
-#: src/main/print-dither.c:66
+#: src/main/print-dither.c:68
msgid "Hybrid Floyd-Steinberg"
msgstr "Hybrid Floyd-Steinberg"
-#: src/main/print-escp2.c:1655 src/main/print-escp2.c:1714
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "EvenTone"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Trefärgers sammansatt"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Fyrfärgs standard"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "Sexfärgs foto"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "Femfärgsfoto sammansatt"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Sjufärgs förbättrad"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "Sexfärgs förbättrad sammansatt"
+
+# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Sjufärgs foto"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Tvånivås gråton"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Quadtone"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
msgid "Plain Paper Fast Load"
msgstr "Snabbladdning av vanligt papper"
#. 7.25 * 10.5in
-#: src/main/print-escp2.c:1658 src/main/print-escp2.c:1717
-#: src/main/print-util.c:532
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
msgid "Postcard"
msgstr "Vykort"
-#: src/main/print-escp2.c:1661 src/main/print-escp2.c:1720
-#: src/main/print-lexmark.c:885
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
msgid "Glossy Film"
msgstr "Glansig film"
-#: src/main/print-escp2.c:1667 src/main/print-escp2.c:1726
-#: src/main/print-lexmark.c:891
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
msgid "Envelopes"
msgstr "Kuvert"
-#: src/main/print-escp2.c:1670 src/main/print-escp2.c:1729
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
msgid "Back Light Film"
msgstr "Bakljusfilm"
-#: src/main/print-escp2.c:1673 src/main/print-escp2.c:1732
-#: src/main/print-lexmark.c:894
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
msgid "Matte Paper"
msgstr "Matte-papper"
-#: src/main/print-escp2.c:1676 src/main/print-escp2.c:1735
-#: src/main/print-lexmark.c:897
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
msgid "Inkjet Paper"
msgstr "Bläckstrålepapper"
-#: src/main/print-escp2.c:1679 src/main/print-escp2.c:1738
-#: src/main/print-lexmark.c:900
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
msgid "Photo Quality Inkjet Paper"
msgstr "Bläckstrålepapper med fotokvalitet"
-#: src/main/print-escp2.c:1682 src/main/print-escp2.c:1741
-#: src/main/print-lexmark.c:903
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
msgid "Photo Paper"
msgstr "Fotopapper"
-#: src/main/print-escp2.c:1685 src/main/print-escp2.c:1744
-#: src/main/print-lexmark.c:906
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
msgid "Premium Glossy Photo Paper"
msgstr "Premiumglansigt fotopapper"
-#: src/main/print-escp2.c:1689 src/main/print-escp2.c:1748
-#: src/main/print-lexmark.c:909
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
msgid "Premium Luster Photo Paper"
msgstr "Fotopapper med premiumlyster"
-#: src/main/print-escp2.c:1692 src/main/print-escp2.c:1751
-#: src/main/print-lexmark.c:912
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
msgid "Photo Quality Glossy Paper"
msgstr "Glansigt papper med fotokvalitet"
-#: src/main/print-escp2.c:1695 src/main/print-escp2.c:1754
-#: src/main/print-lexmark.c:915
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
msgid "Ilford Heavy Paper"
msgstr "Tungt Ilford-papper"
-#: src/main/print-escp2.c:2825 src/main/print-escp2.c:2827
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife-papper"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
msgid "360 x 90 DPI Fast Economy Draft"
msgstr "360 × 90 DPI snabbt och ekonomiskt utkast"
-#: src/main/print-escp2.c:2830 src/main/print-escp2.c:2832
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
msgid "360 x 120 DPI Economy Draft"
msgstr "360 × 120 DPI ekonomiskt utkast"
-#: src/main/print-escp2.c:2835 src/main/print-escp2.c:2837
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
msgid "180 DPI Economy Draft"
msgstr "180 DPI ekonomiskt utkast"
-#: src/main/print-escp2.c:2840 src/main/print-escp2.c:2842
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
msgid "360 x 240 DPI Draft"
msgstr "360 × 240 DPI utkast"
-#: src/main/print-escp2.c:2845 src/main/print-escp2.c:2847
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
msgid "360 x 180 DPI Draft"
msgstr "360 × 180 DPI utkast"
-#: src/main/print-escp2.c:2850 src/main/print-escp2.c:2858
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
msgid "360 DPI"
msgstr "360 DPI"
-#: src/main/print-escp2.c:2852 src/main/print-escp2.c:2860
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
msgid "360 DPI Unidirectional"
msgstr "360 DPI enkelriktad"
-#: src/main/print-escp2.c:2854
-msgid "360 DPI Microweave"
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+#, fuzzy
+msgid "360 DPI Interleave"
msgstr "360 DPI mikroväv"
-#: src/main/print-escp2.c:2856
-msgid "360 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+#, fuzzy
+msgid "360 DPI Interleave Unidirectional"
msgstr "360 DPI enkelriktad mikroväv"
-#: src/main/print-escp2.c:2862
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 × 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 × 360 DPI enkelriktad"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+#, fuzzy
+msgid "720 DPI Interleave"
+msgstr "720 DPI mikroväv"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+#, fuzzy
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI enkelriktad mikroväv"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI enkelriktad"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI hög kvalitet"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI enkelriktad och hög kvalitet"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI högsta kvalitet"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+#, fuzzy
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 × 720 DPI mikroväv"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+#, fuzzy
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 × 720 DPI enkelriktad mikroväv"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 × 720 DPI enkelriktad"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 × 720 DPI högsta kvalitet"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 × 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 × 720 DPI enkelriktad"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 × 1440 DPI högsta kvalitet"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 × 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
msgid "360 DPI Full Overlap"
msgstr "360 DPI helt överlappande"
-#: src/main/print-escp2.c:2864
+#: src/main/print-escp2-data.c:4100
msgid "360 DPI Full Overlap Unidirectional"
msgstr "360 DPI helt överlappande och enkelriktad"
-#: src/main/print-escp2.c:2866
+#: src/main/print-escp2-data.c:4102
msgid "360 DPI FOL2"
msgstr "360 DPI FOL2"
-#: src/main/print-escp2.c:2868
+#: src/main/print-escp2-data.c:4104
msgid "360 DPI FOL2 Unidirectional"
msgstr "360 DPI enkelriktad FOL2"
-#: src/main/print-escp2.c:2870
+#: src/main/print-escp2-data.c:4106
msgid "360 DPI MW2"
msgstr "360 DPI MW2"
-#: src/main/print-escp2.c:2872
+#: src/main/print-escp2-data.c:4108
msgid "360 DPI MW2 Unidirectional"
msgstr "360 DPI enkelriktad MW2"
-#: src/main/print-escp2.c:2875 src/main/print-escp2.c:2879
-msgid "720 x 360 DPI"
-msgstr "720 × 360 DPI"
-
-#: src/main/print-escp2.c:2877 src/main/print-escp2.c:2881
-msgid "720 x 360 DPI Unidirectional"
-msgstr "720 × 360 DPI enkelriktad"
-
-#: src/main/print-escp2.c:2883
-msgid "720 x 360 DPI Microweave"
+#: src/main/print-escp2-data.c:4115
+#, fuzzy
+msgid "720 x 360 DPI Interleave"
msgstr "720 × 360 DPI mikroväv"
-#: src/main/print-escp2.c:2885
-msgid "720 x 360 DPI Microweave Unidirectional"
+#: src/main/print-escp2-data.c:4117
+#, fuzzy
+msgid "720 x 360 DPI Interleave Unidirectional"
msgstr "720 × 360 DPI enkelriktad mikroväv"
-#: src/main/print-escp2.c:2887
+#: src/main/print-escp2-data.c:4119
msgid "720 x 360 DPI FOL"
msgstr "720 × 360 DPI FOL"
-#: src/main/print-escp2.c:2889
+#: src/main/print-escp2-data.c:4121
msgid "720 x 360 DPI FOL Unidirectional"
-msgstr "720 × 360 DPI FOL enkelriktad"
+msgstr "720 × 360 DPI enkelriktad FOL"
-#: src/main/print-escp2.c:2891
+#: src/main/print-escp2-data.c:4123
msgid "720 x 360 DPI FOL2"
msgstr "720 × 360 DPI FOL2"
-#: src/main/print-escp2.c:2893
+#: src/main/print-escp2-data.c:4125
msgid "720 x 360 DPI FOL2 Unidirectional"
-msgstr "720 × 360 DPI FOL2 enkelriktad"
+msgstr "720 × 360 DPI enkelriktad FOL2"
-#: src/main/print-escp2.c:2895
+#: src/main/print-escp2-data.c:4127
msgid "720 x 360 DPI MW2"
msgstr "720 × 360 DPI MW2"
-#: src/main/print-escp2.c:2897
+#: src/main/print-escp2-data.c:4129
msgid "720 x 360 DPI MW2 Unidirectional"
-msgstr "720 × 360 DPI MW2 enkelriktad"
-
-#: src/main/print-escp2.c:2900 src/main/print-escp2.c:2916
-msgid "720 DPI"
-msgstr "720 DPI"
+msgstr "720 × 360 DPI enkelriktad MW2"
-#: src/main/print-escp2.c:2902 src/main/print-escp2.c:2918
-msgid "720 DPI Unidirectional"
-msgstr "720 DPI enkelriktad"
-
-#: src/main/print-escp2.c:2904
-msgid "720 DPI Microweave"
-msgstr "720 DPI mikroväv"
-
-#: src/main/print-escp2.c:2906
-msgid "720 DPI Microweave Unidirectional"
-msgstr "720 DPI enkelriktad mikroväv"
-
-#: src/main/print-escp2.c:2908
+#: src/main/print-escp2-data.c:4136
msgid "720 DPI Full Overlap"
msgstr "720 DPI helt överlappande"
-#: src/main/print-escp2.c:2910
+#: src/main/print-escp2-data.c:4138
msgid "720 DPI Full Overlap Unidirectional"
msgstr "720 DPI helt överlappande och enkelriktad"
-#: src/main/print-escp2.c:2912
+#: src/main/print-escp2-data.c:4140
msgid "720 DPI Four Pass"
msgstr "720 DPI fyrpass"
-#: src/main/print-escp2.c:2914
+#: src/main/print-escp2-data.c:4142
msgid "720 DPI Four Pass Unidirectional"
msgstr "720 DPI enkelriktad fyrpass"
-#: src/main/print-escp2.c:2920
-msgid "720 DPI High Quality"
-msgstr "720 DPI hög kvalitet"
-
-#: src/main/print-escp2.c:2922
-msgid "720 DPI High Quality Unidirectional"
-msgstr "720 DPI enkelriktad och hög kvalitet"
-
-#: src/main/print-escp2.c:2924
-msgid "720 DPI Highest Quality"
-msgstr "720 DPI högsta kvalitet"
-
-#: src/main/print-escp2.c:2927 src/main/print-escp2.c:2943
-msgid "1440 x 720 DPI"
-msgstr "1440 × 720 DPI"
-
-#: src/main/print-escp2.c:2929 src/main/print-escp2.c:2945
-msgid "1440 x 720 DPI Unidirectional"
-msgstr "1440 × 720 DPI enkelriktad"
-
-#: src/main/print-escp2.c:2931
-msgid "1440 x 720 DPI Microweave"
-msgstr "1440 × 720 DPI mikroväv"
-
-#: src/main/print-escp2.c:2933
-msgid "1440 x 720 DPI Microweave Unidirectional"
-msgstr "1440 × 720 DPI enkelriktad mikroväv"
-
-#: src/main/print-escp2.c:2935
+#: src/main/print-escp2-data.c:4149
msgid "1440 x 720 DPI FOL"
msgstr "1440 × 720 DPI FOL"
-#: src/main/print-escp2.c:2937
+#: src/main/print-escp2-data.c:4151
msgid "1440 x 720 DPI FOL Unidirectional"
msgstr "1440 × 720 DPI enkelriktad FOL"
-#: src/main/print-escp2.c:2939
+#: src/main/print-escp2-data.c:4153
msgid "1440 x 720 DPI Four Pass"
msgstr "1440 × 720 DPI fyrpass"
-#: src/main/print-escp2.c:2941
+#: src/main/print-escp2-data.c:4155
msgid "1440 x 720 DPI Four Pass Unidirectional"
msgstr "1440 × 720 DPI enkelriktad fyrpass"
-#: src/main/print-escp2.c:2947
-msgid "1440 x 720 DPI Highest Quality"
-msgstr "1440 × 720 DPI högsta kvalitet"
-
-#: src/main/print-escp2.c:2950
-msgid "2880 x 720 DPI"
-msgstr "2880 × 720 DPI"
-
-#: src/main/print-escp2.c:2952
-msgid "2880 x 720 DPI Unidirectional"
-msgstr "2880 × 720 DPI enkelriktad"
-
-#.
-#. * Nothing thus far supports 1440 DPI vertical resolution
-#.
-#: src/main/print-escp2.c:2958
-msgid "1440 x 1440 DPI"
-msgstr "1440 × 1440 DPI"
-
-#: src/main/print-escp2.c:2960
-msgid "1440 x 1440 DPI Highest Quality"
-msgstr "1440 × 1440 DPI högsta kvalitet"
-
-#: src/main/print-escp2.c:2963
-msgid "2880 x 1440 DPI"
-msgstr "2880 × 1440 DPI"
-
-#.
-#. * These resolutions have no practical use; they're neither as good as
-#. * nor any faster than 720x720 DPI. They exist to permit testing
-#. * 2880x720 (4:1 aspect) on 1440x720 printers.
-#.
-#: src/main/print-escp2.c:2971
-msgid "1440 x 360 DPI"
-msgstr "1440 × 360 DPI"
-
-#: src/main/print-escp2.c:2973
-msgid "1440 x 360 DPI Unidirectional"
-msgstr "1440 × 360 DPI enkelriktad"
-
-#: src/main/print-escp2.c:2975
-msgid "1440 x 360 DPI High Quality"
-msgstr "1440 × 360 DPI hög kvalitet"
-
-#: src/main/print-escp2.c:2977
-msgid "1440 x 360 DPI High Quality Uni"
-msgstr "1440 × 360 DPI enkelriktad hög kvalitet"
-
-#: src/main/print-escp2.c:2979
-msgid "1440 x 360 DPI Highest Quality"
-msgstr "1440 × 360 DPI högsta kvalitet"
-
-# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
-#: src/main/print-escp2.c:2995
-msgid "Seven Color Enhanced"
-msgstr "Sjufärgs förbättrad"
+#: src/main/print-escp2-data.c:4158
+#, fuzzy
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 × 720 DPI mikroväv"
+
+#: src/main/print-escp2-data.c:4160
+#, fuzzy
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 × 720 DPI enkelriktad mikroväv"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 × 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 × 720 DPI enkelriktad FOL"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 × 720 DPI fyrpass"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 × 720 DPI enkelriktad fyrpass"
+
+#: src/main/print-escp2-data.c:4171
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 × 1440 DPI mikroväv"
+
+#: src/main/print-escp2-data.c:4173
+#, fuzzy
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 × 1440 DPI enkelriktad mikroväv"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 × 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 × 1440 DPI enkelriktad FOL"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 × 1440 DPI fyrpass"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 × 1440 DPI enkelriktad fyrpass"
+
+#: src/main/print-escp2-data.c:4184
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 × 1440 DPI mikroväv"
+
+#: src/main/print-escp2-data.c:4186
+#, fuzzy
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 × 1440 DPI enkelriktad mikroväv"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 × 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 × 1440 DPI enkelriktad FOL"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 × 1440 DPI fyrpass"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 × 1440 DPI enkelriktad fyrpass"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Standard"
-# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
-#: src/main/print-escp2.c:2996
-msgid "Six Color Enhanced Composite"
-msgstr "Sexfärgs förbättrad sammansatt"
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Rullmatning"
-# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
-#: src/main/print-escp2.c:2997 src/main/print-lexmark.c:629
-#: src/main/print-lexmark.c:709
-msgid "Six Color Photo"
-msgstr "Sexfärgs foto"
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr "Rullmatning (klipp varje sida)"
-# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
-#: src/main/print-escp2.c:2998 src/main/print-lexmark.c:634
-#: src/main/print-lexmark.c:714
-msgid "Five Color Photo Composite"
-msgstr "Femfärgsfoto sammansatt"
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr "Rullmatning (klipp inte)"
-# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
-#. output_type ncolors used_colors pass_length v_top_head_offset
-#. * h_catridge_offset
-#. * h_direction_offset
-#. * head_offset
-#: src/main/print-escp2.c:2999 src/main/print-lexmark.c:619
-#: src/main/print-lexmark.c:699
-msgid "Four Color Standard"
-msgstr "Fyrfärgs standard"
+# Osäker
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr "Klippark fack 1"
-# Jag tror inte detta ska skrivas samman, jfr snarlika meddelanden
-#: src/main/print-escp2.c:3000 src/main/print-lexmark.c:624
-#: src/main/print-lexmark.c:704
-msgid "Three Color Composite"
-msgstr "Trefärgers sammansatt"
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr "Klippark fack 2"
-#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2.c:3323
-#: src/main/print-pcl.c:198
-msgid "Standard"
-msgstr "Standard"
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr "Klippark automatiskt val"
-#: src/main/print-escp2.c:3325
-msgid "Roll Feed"
-msgstr "Rullmatning"
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "Manuellt val"
#. name hres vres softw v_pass overs unidir resid
-#: src/main/print-lexmark.c:595 src/main/print-lexmark.c:681
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
msgid "300 DPI x 600 DPI"
msgstr "300 DPI × 600 DPI"
-#: src/main/print-lexmark.c:596 src/main/print-lexmark.c:682
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
msgid "600 DPI"
msgstr "600 DPI"
-#: src/main/print-lexmark.c:597 src/main/print-lexmark.c:683
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
msgid "600 DPI high quality"
msgstr "600 DPI hög kvalitet"
-#: src/main/print-lexmark.c:598 src/main/print-lexmark.c:684
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
msgid "600 DPI Unidirectional"
msgstr "600 DPI enkelriktad"
-#: src/main/print-lexmark.c:599 src/main/print-lexmark.c:685
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
msgid "1200 DPI"
msgstr "1200 DPI"
-#: src/main/print-lexmark.c:600 src/main/print-lexmark.c:686
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
msgid "1200 DPI high quality"
msgstr "1200 DPI hög kvalitet"
-#: src/main/print-lexmark.c:601 src/main/print-lexmark.c:687
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
msgid "1200 DPI highest quality"
msgstr "1200 DPI högsta kvalitet"
-#: src/main/print-lexmark.c:602 src/main/print-lexmark.c:688
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
msgid "1200 DPI Unidirectional"
msgstr "1200 DPI enkelriktad"
-#: src/main/print-lexmark.c:603
+#: src/main/print-lexmark.c:630
msgid "2400 DPI x 1200 DPI"
msgstr "2400 DPI × 1200 DPI"
-#: src/main/print-lexmark.c:604
+#: src/main/print-lexmark.c:631
msgid "2400 DPI x 1200 DPI high quality"
msgstr "2400 DPI × 1200 DPI hög kvalitet"
-#: src/main/print-lexmark.c:605
+#: src/main/print-lexmark.c:632
msgid "2400 DPI x 1200 DPI highest quality"
msgstr "2400 DPI × 1200 DPI högsta kvalitet"
-#: src/main/print-lexmark.c:607
+#: src/main/print-lexmark.c:634
msgid "test print"
msgstr "testutskrift"
-#. 11in x 17in
-#: src/main/print-pcl.c:108 src/main/print-util.c:530
-msgid "Executive"
-msgstr "Executive"
-
-#. US Exec (7.25 x 10.5 in)
-#: src/main/print-pcl.c:109 src/main/print-util.c:524
-msgid "Letter"
-msgstr "Letter"
-
-#. US Letter (8.5 x 11 in)
-#: src/main/print-pcl.c:110 src/main/print-util.c:526
-msgid "Legal"
-msgstr "Legal"
-
-#. US Legal (8.5 x 14 in)
-#: src/main/print-pcl.c:111 src/main/print-util.c:528
-msgid "Tabloid"
-msgstr "Tabloid"
-
-#. US Tabloid (11 x 17 in)
-#: src/main/print-pcl.c:112 src/main/print-pcl.c:199 src/main/print-util.c:548
-msgid "Manual"
-msgstr "Manuell"
-
-#. US Manual/Statement (5.5 x 8.5 in)
-#: src/main/print-pcl.c:113
-msgid "13x19"
-msgstr "13×19"
-
-#. US 13x19/Super B (13 x 19 in)
-#: src/main/print-pcl.c:114 src/main/print-util.c:599
-msgid "A5"
-msgstr "A5"
-
-#. ISO/JIS A5 (148 x 210 mm)
-#: src/main/print-pcl.c:115 src/main/print-util.c:597
-msgid "A4"
-msgstr "A4"
-
-#. ISO/JIS A4 (210 x 297 mm)
-#: src/main/print-pcl.c:116 src/main/print-util.c:595
-msgid "A3"
-msgstr "A3"
-
-#. ISO/JIS A3 (297 x 420 mm)
-#: src/main/print-pcl.c:117 src/main/print-util.c:681
-msgid "B5 JIS"
-msgstr "B5 JIS"
-
-#. JIS B5 (182 x 257 mm).
-#: src/main/print-pcl.c:118 src/main/print-util.c:679
-msgid "B4 JIS"
-msgstr "B4 JIS"
-
-#. JIS B4 (257 x 364 mm).
-#: src/main/print-pcl.c:119 src/main/print-util.c:783
-msgid "Hagaki Card"
-msgstr "Hagaki-kort"
-
-#. Japanese Hagaki Card (100 x 148 mm)
-#: src/main/print-pcl.c:120 src/main/print-util.c:785
-msgid "Oufuku Card"
-msgstr "Oufuku-kort"
-
-#. Japanese Oufuku Card (148 x 200 mm)
-#: src/main/print-pcl.c:121 src/main/print-util.c:601
-msgid "A6"
-msgstr "A6"
-
-#. ISO/JIS A6 card
-#: src/main/print-pcl.c:122 src/main/print-util.c:536
-msgid "4x6"
-msgstr "4×6"
-
-#. US Index card (4 x 6 in)
-#: src/main/print-pcl.c:123 src/main/print-util.c:542
-msgid "5x8"
-msgstr "5×8"
-
-#. US Index card (5 x 8 in)
-#: src/main/print-pcl.c:124 src/main/print-util.c:534
-msgid "3x5"
-msgstr "3×5"
-
-#. US Index card (3 x 5 in)
-#: src/main/print-pcl.c:125
-msgid "Monarch"
-msgstr "Monarch"
-
-#. Monarch Envelope (3 7/8 x 7 1/2 in)
-#: src/main/print-pcl.c:126 src/main/print-util.c:793
-msgid "Commercial 10"
-msgstr "Commercial 10"
-
-#. US Commercial 10 Envelope (4.125 x 9.5 in) Portrait
-#: src/main/print-pcl.c:127 src/main/print-util.c:713
-msgid "DL"
-msgstr "DL"
-
-#. DL envelope (110 x 220 mm) Portrait
-#: src/main/print-pcl.c:128 src/main/print-util.c:707
-msgid "C5"
-msgstr "C5"
-
-#. C5 envelope (162 x 229 mm)
-#: src/main/print-pcl.c:129 src/main/print-util.c:711
-msgid "C6"
-msgstr "C6"
-
-#. C6 envelope (114 x 162 mm)
-#: src/main/print-pcl.c:130 src/main/print-util.c:795
-msgid "A2 Invitation"
-msgstr "A2-inbjudan"
-
-#. US A2 Invitation envelope (4 3/8 x 5 3/4 in)
-#: src/main/print-pcl.c:131
-msgid "Long 3"
-msgstr "Long 3"
-
-#. Japanese Long Envelope #3 (120 x 235 mm)
-#: src/main/print-pcl.c:132
-msgid "Long 4"
-msgstr "Long 4"
-
-#. Japanese Long Envelope #4 (90 x 205 mm)
-#: src/main/print-pcl.c:133
-msgid "Kaku"
-msgstr "Kaku"
-
-#. Japanese Kaku Envelope (240 x 332.1 mm)
-#. *** MRS: this size not supported by print-util funcs! ***
-#: src/main/print-pcl.c:135
-msgid "HP Greeting Card"
-msgstr "HP-gratulationskort"
-
-#: src/main/print-pcl.c:153
+#: src/main/print-pcl.c:157
msgid "Plain"
msgstr "Vanlig"
-#: src/main/print-pcl.c:154
+#: src/main/print-pcl.c:158
msgid "Bond"
msgstr "Band"
-#: src/main/print-pcl.c:155
+#: src/main/print-pcl.c:159
msgid "Premium"
msgstr "Premium"
-#: src/main/print-pcl.c:156
+#: src/main/print-pcl.c:160
msgid "Glossy Photo"
msgstr "Glansigt foto"
-#: src/main/print-pcl.c:157
+#: src/main/print-pcl.c:161
msgid "Transparency"
msgstr "Genomskinligt"
-#: src/main/print-pcl.c:158
+#: src/main/print-pcl.c:162
msgid "Quick-dry Photo"
msgstr "Snabbtorkande foto"
-#: src/main/print-pcl.c:159
+#: src/main/print-pcl.c:163
msgid "Quick-dry Transparency"
msgstr "Snabbtorkande genomskinligt"
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Manuell"
+
#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
-#: src/main/print-pcl.c:201
+#: src/main/print-pcl.c:205
msgid "Tray 1"
msgstr "Fack 1"
-#: src/main/print-pcl.c:202 src/main/print-pcl.c:208
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
msgid "Tray 2"
msgstr "Fack 2"
-#: src/main/print-pcl.c:203
+#: src/main/print-pcl.c:207
msgid "Tray 3"
msgstr "Fack 3"
-#: src/main/print-pcl.c:204
+#: src/main/print-pcl.c:208
msgid "Tray 4"
msgstr "Fack 4"
-#: src/main/print-pcl.c:205
+#: src/main/print-pcl.c:209
msgid "Portable Sheet Feeder"
msgstr "Portabel arkmatare"
-#: src/main/print-pcl.c:206
+#: src/main/print-pcl.c:210
msgid "Desktop Sheet Feeder"
msgstr "Skrivbordsarkmatare"
-#: src/main/print-pcl.c:207
+#: src/main/print-pcl.c:211
msgid "Tray"
msgstr "Fack"
-#: src/main/print-pcl.c:209
+#: src/main/print-pcl.c:213
msgid "Optional Source"
msgstr "Valfri källa"
-#: src/main/print-pcl.c:210
+#: src/main/print-pcl.c:214
msgid "Autoselect"
msgstr "Välj automatiskt"
-#: src/main/print-pcl.c:224
+#: src/main/print-pcl.c:228
msgid "150x150 DPI"
msgstr "150×150 DPI"
-#: src/main/print-pcl.c:225
+#: src/main/print-pcl.c:229
msgid "300x300 DPI"
msgstr "300×300 DPI"
-#: src/main/print-pcl.c:226
+#: src/main/print-pcl.c:230
msgid "600x300 DPI"
msgstr "600×300 DPI"
-#: src/main/print-pcl.c:227
+#: src/main/print-pcl.c:231
msgid "600x600 DPI monochrome"
msgstr "600×600 DPI enfärgad"
-#: src/main/print-pcl.c:228
+#: src/main/print-pcl.c:232
msgid "600x600 DPI"
msgstr "600×600 DPI"
-#: src/main/print-pcl.c:229
+#: src/main/print-pcl.c:233
msgid "1200x600 DPI"
msgstr "1200×600 DPI"
-#: src/main/print-pcl.c:230
+#: src/main/print-pcl.c:234
msgid "2400x600 DPI"
msgstr "2400×600 DPI"
-#: src/main/print-pcl.c:1563
+#: src/main/print-pcl.c:1763
msgid "Color + Black Cartridges"
msgstr "Färgpatroner + svarta patroner"
-#: src/main/print-pcl.c:1564
+#: src/main/print-pcl.c:1764
msgid "Color + Photo Cartridges"
msgstr "Färgpatroner + fotopatroner"
#. Name of file or command to print to
-#: src/main/print-util.c:125 src/main/print-util.c:159
-#: src/main/print-util.c:193
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
msgid "ps2"
msgstr "ps2"
-#: src/main/print-util.c:538
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3×5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4×6"
+
+#: src/main/print-util.c:547
msgid "Epson 4x6 Photo Paper"
msgstr "Epson 4×6 fotopapper"
-#: src/main/print-util.c:540
+#: src/main/print-util.c:549
msgid "5x7"
msgstr "5×7"
-#: src/main/print-util.c:544
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5×8"
+
+#: src/main/print-util.c:553
msgid "6x8"
msgstr "6×8"
-#: src/main/print-util.c:546
+#: src/main/print-util.c:555
msgid "8x10"
msgstr "8×10"
#. 5.5in x 8.5in
-#: src/main/print-util.c:550
+#: src/main/print-util.c:559
msgid "12x18"
msgstr "12×18"
-#: src/main/print-util.c:552
+#: src/main/print-util.c:561
msgid "Super B 13x19"
msgstr "Super B 13×19"
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr ""
+
#. Other common photographic paper sizes
-#: src/main/print-util.c:556
+#: src/main/print-util.c:567
msgid "8x12"
msgstr "8×12"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:558
+#: src/main/print-util.c:569
msgid "11x14"
msgstr "11×14"
-#: src/main/print-util.c:560
+#: src/main/print-util.c:571
msgid "16x20"
msgstr "16×20"
-#: src/main/print-util.c:562
+#: src/main/print-util.c:573
msgid "16x24"
msgstr "16×24"
#. 20x24 for 35 mm
-#: src/main/print-util.c:564
+#: src/main/print-util.c:575
msgid "20x24"
msgstr "20×24"
-#: src/main/print-util.c:566
+#: src/main/print-util.c:577
msgid "20x30"
msgstr "20×30"
#. 24x30 for 35 mm
-#: src/main/print-util.c:568
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22×30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
msgid "24x30"
msgstr "24×30"
-#: src/main/print-util.c:570
+#: src/main/print-util.c:583
msgid "24x36"
msgstr "24×36"
#. Sometimes used for 35 mm
-#: src/main/print-util.c:572
+#: src/main/print-util.c:585
msgid "30x40"
msgstr "30×40"
@@ -884,47 +967,72 @@ msgstr "30×40"
#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
#. * size is obtained by doubling or halving another A size.
#.
-#: src/main/print-util.c:585
+#: src/main/print-util.c:598
msgid "4A"
msgstr "4A"
#. 1682mm x 2378mm
-#: src/main/print-util.c:587
+#: src/main/print-util.c:600
msgid "2A"
msgstr "2A"
#. 1189mm x 1682mm
-#: src/main/print-util.c:589
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr ""
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
msgid "A0"
msgstr "A0"
#. 841mm x 1189mm
-#: src/main/print-util.c:591
+#: src/main/print-util.c:606
msgid "A1"
msgstr "A1"
#. 594mm x 841mm
-#: src/main/print-util.c:593
+#: src/main/print-util.c:608
msgid "A2"
msgstr "A2"
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
#. 105mm x 148mm
-#: src/main/print-util.c:603
+#: src/main/print-util.c:618
msgid "A7"
msgstr "A7"
#. 74mm x 105mm
-#: src/main/print-util.c:605
+#: src/main/print-util.c:620
msgid "A8"
msgstr "A8"
#. 52mm x 74mm
-#: src/main/print-util.c:607
+#: src/main/print-util.c:622
msgid "A9"
msgstr "A9"
#. 37mm x 52mm
-#: src/main/print-util.c:609
+#: src/main/print-util.c:624
msgid "A10"
msgstr "A10"
@@ -933,27 +1041,27 @@ msgstr "A10"
#. * Stock sizes for normal trims.
#. * Allowance for trim is 3 millimetres.
#.
-#: src/main/print-util.c:616
+#: src/main/print-util.c:631
msgid "RA0"
msgstr "RA0"
#. 860mm x 1220mm
-#: src/main/print-util.c:618
+#: src/main/print-util.c:633
msgid "RA1"
msgstr "RA1"
#. 610mm x 860mm
-#: src/main/print-util.c:620
+#: src/main/print-util.c:635
msgid "RA2"
msgstr "RA2"
#. 430mm x 610mm
-#: src/main/print-util.c:622
+#: src/main/print-util.c:637
msgid "RA3"
msgstr "RA3"
#. 305mm x 430mm
-#: src/main/print-util.c:624
+#: src/main/print-util.c:639
msgid "RA4"
msgstr "RA4"
@@ -961,27 +1069,27 @@ msgstr "RA4"
#.
#. * Stock sizes for bled work or extra trims.
#.
-#: src/main/print-util.c:630
+#: src/main/print-util.c:645
msgid "SRA0"
msgstr "SRA0"
#. 900mm x 1280mm
-#: src/main/print-util.c:632
+#: src/main/print-util.c:647
msgid "SRA1"
msgstr "SRA1"
#. 640mm x 900mm
-#: src/main/print-util.c:634
+#: src/main/print-util.c:649
msgid "SRA2"
msgstr "SRA2"
#. 450mm x 640mm
-#: src/main/print-util.c:636
+#: src/main/print-util.c:651
msgid "SRA3"
msgstr "SRA3"
#. 320mm x 450mm
-#: src/main/print-util.c:638
+#: src/main/print-util.c:653
msgid "SRA4"
msgstr "SRA4"
@@ -989,161 +1097,189 @@ msgstr "SRA4"
#.
#. * "B" series: Posters, wall charts and similar items.
#.
-#: src/main/print-util.c:644
+#: src/main/print-util.c:659
msgid "4B ISO"
msgstr "4B ISO"
#. 2000mm x 2828mm
-#: src/main/print-util.c:646
+#: src/main/print-util.c:661
msgid "2B ISO"
msgstr "2B ISO"
#. 1414mm x 2000mm
-#: src/main/print-util.c:648
+#: src/main/print-util.c:663
msgid "B0 ISO"
msgstr "B0 ISO"
#. 1000mm x 1414mm
-#: src/main/print-util.c:650
+#: src/main/print-util.c:665
msgid "B1 ISO"
msgstr "B1 ISO"
#. 707mm x 1000mm
-#: src/main/print-util.c:652
+#: src/main/print-util.c:667
msgid "B2 ISO"
msgstr "B2 ISO"
#. 500mm x 707mm
-#: src/main/print-util.c:654
+#: src/main/print-util.c:669
msgid "B3 ISO"
msgstr "B3 ISO"
#. 353mm x 500mm
-#: src/main/print-util.c:656
+#: src/main/print-util.c:671
msgid "B4 ISO"
msgstr "B4 ISO"
#. 250mm x 353mm
-#: src/main/print-util.c:658
+#: src/main/print-util.c:673
msgid "B5 ISO"
msgstr "B5 ISO"
#. 176mm x 250mm
-#: src/main/print-util.c:660
+#: src/main/print-util.c:675
msgid "B6 ISO"
msgstr "B6 ISO"
#. 125mm x 176mm
-#: src/main/print-util.c:662
+#: src/main/print-util.c:677
msgid "B7 ISO"
msgstr "B7 ISO"
#. 88mm x 125mm
-#: src/main/print-util.c:664
+#: src/main/print-util.c:679
msgid "B8 ISO"
msgstr "B8 ISO"
#. 62mm x 88mm
-#: src/main/print-util.c:666
+#: src/main/print-util.c:681
msgid "B9 ISO"
msgstr "B9 ISO"
#. 44mm x 62mm
-#: src/main/print-util.c:668
+#: src/main/print-util.c:683
msgid "B10 ISO"
msgstr "B10 ISO"
#. 31mm x 44mm
-#: src/main/print-util.c:671
+#: src/main/print-util.c:686
+#, fuzzy
+msgid "Super B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:688
msgid "B0 JIS"
msgstr "B0 JIS"
-#: src/main/print-util.c:673
+#: src/main/print-util.c:690
msgid "B1 JIS"
msgstr "B1 JIS"
-#: src/main/print-util.c:675
+#: src/main/print-util.c:692
msgid "B2 JIS"
msgstr "B2 JIS"
-#: src/main/print-util.c:677
+#: src/main/print-util.c:694
msgid "B3 JIS"
msgstr "B3 JIS"
-#: src/main/print-util.c:683
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
msgid "B6 JIS"
msgstr "B6 JIS"
-#: src/main/print-util.c:685
+#: src/main/print-util.c:702
msgid "B7 JIS"
msgstr "B7 JIS"
-#: src/main/print-util.c:687
+#: src/main/print-util.c:704
msgid "B8 JIS"
msgstr "B8 JIS"
-#: src/main/print-util.c:689
+#: src/main/print-util.c:706
msgid "B9 JIS"
msgstr "B9 JIS"
-#: src/main/print-util.c:691
+#: src/main/print-util.c:708
msgid "B10 JIS"
msgstr "B10 JIS"
#.
#. * "C" series: Envelopes or folders suitable for A size stationery.
#.
-#: src/main/print-util.c:697
+#: src/main/print-util.c:714
msgid "C0"
msgstr "C0"
#. 917mm x 1297mm
-#: src/main/print-util.c:699
+#: src/main/print-util.c:716
msgid "C1"
msgstr "C1"
#. 648mm x 917mm
-#: src/main/print-util.c:701
+#: src/main/print-util.c:718
msgid "C2"
msgstr "C2"
#. 458mm x 648mm
-#: src/main/print-util.c:703
+#: src/main/print-util.c:720
msgid "C3"
msgstr "C3"
#. 324mm x 458mm
-#: src/main/print-util.c:705
+#: src/main/print-util.c:722
msgid "C4"
msgstr "C4"
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
#. 162mm x 229mm
-#: src/main/print-util.c:709
+#: src/main/print-util.c:726
msgid "B6-C4"
msgstr "B6-C4"
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
#. 110mm x 220mm
-#: src/main/print-util.c:715
+#: src/main/print-util.c:732
msgid "C7-6"
msgstr "C7-6"
#. 81mm x 162mm
-#: src/main/print-util.c:717
+#: src/main/print-util.c:734
msgid "C7"
msgstr "C7"
#. 81mm x 114mm
-#: src/main/print-util.c:719
+#: src/main/print-util.c:736
msgid "C8"
msgstr "C8"
#. 57mm x 81mm
-#: src/main/print-util.c:721
+#: src/main/print-util.c:738
msgid "C9"
msgstr "C9"
#. 40mm x 57mm
-#: src/main/print-util.c:723
+#: src/main/print-util.c:740
msgid "C10"
msgstr "C10"
@@ -1151,35 +1287,55 @@ msgstr "C10"
#.
#. * US CAD standard paper sizes
#.
-#: src/main/print-util.c:729
+#: src/main/print-util.c:746
msgid "ArchA"
msgstr "ArchA"
-#: src/main/print-util.c:731
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr "ArchA transvers"
+
+#: src/main/print-util.c:750
msgid "ArchB"
msgstr "ArchB"
-#: src/main/print-util.c:733
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr "ArchB transvers"
+
+#: src/main/print-util.c:754
msgid "ArchC"
msgstr "ArchC"
-#: src/main/print-util.c:735
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr "ArchC transvers"
+
+#: src/main/print-util.c:758
msgid "ArchD"
msgstr "ArchD"
-#: src/main/print-util.c:737
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr "ArchD transvers"
+
+#: src/main/print-util.c:762
msgid "ArchE"
msgstr "ArchE"
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr "ArchE transvers"
+
#.
#. * Foolscap
#.
-#: src/main/print-util.c:743
+#: src/main/print-util.c:770
msgid "American foolscap"
msgstr "Amerikansk folio"
#. American foolscap
-#: src/main/print-util.c:745
+#: src/main/print-util.c:772
msgid "European foolscap"
msgstr "Europeisk folio"
@@ -1189,45 +1345,45 @@ msgstr "Europeisk folio"
#. * The BPIF and the Publishers Association jointly recommend ten
#. * standard metric sizes for case-bound titles as follows:
#.
-#: src/main/print-util.c:753
+#: src/main/print-util.c:780
msgid "Crown Quarto"
msgstr "Crown Quarto"
#. 189mm x 246mm
-#: src/main/print-util.c:755
+#: src/main/print-util.c:782
msgid "Large Crown Quarto"
msgstr "Large crown quarto"
# får plats
#. 201mm x 258mm
-#: src/main/print-util.c:757
+#: src/main/print-util.c:784
msgid "Demy Quarto"
msgstr "Demy quarto"
#. 219mm x 276mm
-#: src/main/print-util.c:759
+#: src/main/print-util.c:786
msgid "Royal Quarto"
msgstr "Royal quarto"
#. 237mm x 312mm
#. { "ISO A4", 595,
#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
-#: src/main/print-util.c:763
+#: src/main/print-util.c:790
msgid "Crown Octavo"
msgstr "Crown octavo"
#. 123mm x 186mm
-#: src/main/print-util.c:765
+#: src/main/print-util.c:792
msgid "Large Crown Octavo"
msgstr "Large crown octavo"
#. 129mm x 198mm
-#: src/main/print-util.c:767
+#: src/main/print-util.c:794
msgid "Demy Octavo"
msgstr "Demy octavo"
#. 138mm x 216mm
-#: src/main/print-util.c:769
+#: src/main/print-util.c:796
msgid "Royal Octavo"
msgstr "Royal octavo"
@@ -1235,76 +1391,143 @@ msgstr "Royal octavo"
#. { N_ ("ISO A5"), 419,
#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
#. Paperback sizes in common usage
-#: src/main/print-util.c:775
+#: src/main/print-util.c:802
msgid "Small paperback"
msgstr "Liten pocket"
#. 111mm x 178mm
-#: src/main/print-util.c:777
+#: src/main/print-util.c:804
msgid "Penguin small paperback"
msgstr "Liten pingvinpocket"
#. 111mm x 181mm
-#: src/main/print-util.c:779
+#: src/main/print-util.c:806
msgid "Penguin large paperback"
msgstr "Stor pingvinpocket"
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr ""
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Hagaki-kort"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Oufuku-kort"
+
#. 148 x 200 mm
-#: src/main/print-util.c:787
+#: src/main/print-util.c:816
msgid "Japanese long envelope #3"
msgstr "Japanskt långt kuvert 3"
#. Japanese long envelope #3
-#: src/main/print-util.c:789
+#: src/main/print-util.c:818
msgid "Japanese long envelope #4"
msgstr "Japanskt långt kuvert 4"
#. Japanese long envelope #4
-#: src/main/print-util.c:791
+#: src/main/print-util.c:820
msgid "Japanese Kaku envelope #4"
msgstr "Japanskt Kaku-kuvert 4"
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2-inbjudan"
+
#. US A2 invitation
-#: src/main/print-util.c:797
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "Monarkkuvert"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
msgid "Custom"
msgstr "Anpassat"
-#: src/main/print-util.c:800
+#: src/main/print-util.c:831
msgid "89 mm Roll Paper"
msgstr "89 mm rullpapper"
-#: src/main/print-util.c:802
+#: src/main/print-util.c:833
msgid "4 Inch Roll Paper"
msgstr "4 tum rullpapper"
-#: src/main/print-util.c:804
+#: src/main/print-util.c:835
msgid "5 Inch Roll Paper"
msgstr "5 tum rullpapper"
-#: src/main/print-util.c:806
+#: src/main/print-util.c:837
msgid "210 mm Roll Paper"
msgstr "210 mm rullpapper"
-#: src/main/print-util.c:808
+#: src/main/print-util.c:839
msgid "13 Inch Roll Paper"
msgstr "13 tum rullpapper"
-#: src/main/print-util.c:810
+#: src/main/print-util.c:841
msgid "22 Inch Roll Paper"
msgstr "22 tum rullpapper"
-#: src/main/print-util.c:812
+#: src/main/print-util.c:843
msgid "24 Inch Roll Paper"
msgstr "24 tum rullpapper"
-#: src/main/print-util.c:814
+#: src/main/print-util.c:845
msgid "36 Inch Roll Paper"
msgstr "36 tum rullpapper"
-#: src/main/print-util.c:816
+#: src/main/print-util.c:847
msgid "44 Inch Roll Paper"
msgstr "44 tum rullpapper"
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s är inte en giltig parameter av typen %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s är utanför intervallet (värde %f, min %f, max %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s är utanför intervallet (värde %d, min %d, max %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Skrivaren stöder inte färgutskrift\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Bildstorleken är inte giltig\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Övre marginalen får inte vara negativ\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Vänstermarginalen får inte vara negativ\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s är inte en giltig färgutjämningsalgoritm\n"
+
# gzprintf(fp, "*LanguageVersion: %s\n", _("English"));
#
#. Specify language of PPD translation
@@ -1312,62 +1535,66 @@ msgstr "44 tum rullpapper"
#. * Use the English name of your language here, e.g. "Swedish" instead of
#. * "Svenska".
#.
-#: src/cups/genppd.c:455
+#: src/cups/genppd.c:519
msgid "English"
msgstr "Swedish"
#. Specify PPD translation encoding e.g. ISOLatin1
-#: src/cups/genppd.c:457
+#: src/cups/genppd.c:521
msgid "ISOLatin1"
msgstr "ISOLatin1"
-#: src/cups/genppd.c:633
+#: src/cups/genppd.c:777
msgid "Media Type"
msgstr "Mediatyp"
-#: src/cups/genppd.c:659
+#: src/cups/genppd.c:803
msgid "Media Source"
msgstr "Mediakälla"
-#: src/cups/genppd.c:683
+#: src/cups/genppd.c:827
msgid "Resolution"
msgstr "Upplösning"
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-print"
+
#.
#. * Image types...
#.
-#: src/cups/genppd.c:723
+#: src/cups/genppd.c:869
msgid "Image Type"
msgstr "Bildtyp"
-#: src/cups/genppd.c:728 src/gimp/gimp_main_window.c:1314
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
msgid "Line Art"
msgstr "Linjegrafik"
-#: src/cups/genppd.c:730 src/gimp/gimp_main_window.c:1328
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
msgid "Solid Colors"
msgstr "Enstaka färger"
-#: src/cups/genppd.c:732 src/gimp/gimp_main_window.c:1343
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
msgid "Photograph"
msgstr "Fotografi"
#.
#. * Dithering algorithms...
#.
-#: src/cups/genppd.c:740
+#: src/cups/genppd.c:886
msgid "Dither Algorithm"
msgstr "Färgutjämningsalgoritm"
-#: src/cups/genppd.c:759
+#: src/cups/genppd.c:905
msgid "Ink Type"
msgstr "Bläcktyp"
-#: src/escputil/escputil.c:64
+#: src/escputil/escputil.c:66
msgid "Escputil version "
msgstr "Escputil version "
-#: src/escputil/escputil.c:65
+#: src/escputil/escputil.c:67
msgid ""
", Copyright (C) 2000-2001 Robert Krawitz\n"
"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
@@ -1380,7 +1607,7 @@ msgstr ""
"vidaredistribuera det under vissa villkor; skriv in \"escputil -l\" för mer\n"
"information.\n"
-#: src/escputil/escputil.c:70
+#: src/escputil/escputil.c:72
msgid ""
"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
"\n"
@@ -1432,7 +1659,7 @@ msgstr ""
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA\n"
-#: src/escputil/escputil.c:110
+#: src/escputil/escputil.c:112
msgid ""
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
" [-P printer | -r device] [-u] [-q] [-m model]\n"
@@ -1515,7 +1742,7 @@ msgstr ""
" -m|--model Ange den exakta skrivarmodellen för justering av\n"
" huvud.\n"
-#: src/escputil/escputil.c:148
+#: src/escputil/escputil.c:150
msgid ""
"Usage: escputil [OPTIONS] [COMMAND]\n"
"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
@@ -1589,358 +1816,518 @@ msgstr ""
" -q Visa inte rubriken.\n"
" -m Ange den exakta skrivarmodellen för justering av huvud.\n"
-#: src/escputil/escputil.c:199
+#: src/escputil/escputil.c:201
msgid "Stylus C20sx"
msgstr "Stylus C20sx"
-#: src/escputil/escputil.c:200
+#: src/escputil/escputil.c:202
msgid "Stylus C20ux"
msgstr "Stylus C20ux"
-#: src/escputil/escputil.c:201
+#: src/escputil/escputil.c:203
msgid "Stylus C40sx"
msgstr "Stylus C40sx"
-#: src/escputil/escputil.c:202
+#: src/escputil/escputil.c:204
msgid "Stylus C40ux"
msgstr "Stylus C40ux"
-#: src/escputil/escputil.c:203
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+#, fuzzy
+msgid "Stylus C43sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:210
+#, fuzzy
+msgid "Stylus C43ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:211
+#, fuzzy
+msgid "Stylus C44sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:212
+#, fuzzy
+msgid "Stylus C44ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
msgid "Stylus C60"
msgstr "Stylus C60"
-#: src/escputil/escputil.c:204
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+#, fuzzy
+msgid "Stylus C63"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:218
+#, fuzzy
+msgid "Stylus C64"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:219
msgid "Stylus C70"
msgstr "Stylus C70"
-#: src/escputil/escputil.c:205
+#: src/escputil/escputil.c:220
msgid "Stylus C80"
msgstr "Stylus C80"
-#: src/escputil/escputil.c:206
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+#, fuzzy
+msgid "Stylus C83"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:223
+#, fuzzy
+msgid "Stylus C84"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:224
msgid "Stylus Color"
msgstr "Stylus Color"
-#: src/escputil/escputil.c:207
+#: src/escputil/escputil.c:225
msgid "Stylus Color Pro"
msgstr "Stylus Color Pro"
-#: src/escputil/escputil.c:208
+#: src/escputil/escputil.c:226
msgid "Stylus Color Pro XL"
msgstr "Stylus Color Pro XL"
-#: src/escputil/escputil.c:209
+#: src/escputil/escputil.c:227
msgid "Stylus Color 400"
msgstr "Stylus Color 400"
-#: src/escputil/escputil.c:210
+#: src/escputil/escputil.c:228
msgid "Stylus Color 440"
msgstr "Stylus Color 440"
-#: src/escputil/escputil.c:211
+#: src/escputil/escputil.c:229
msgid "Stylus Color 460"
msgstr "Stylus Color 460"
-#: src/escputil/escputil.c:212
+#: src/escputil/escputil.c:230
msgid "Stylus Color 480"
msgstr "Stylus Color 480"
-#: src/escputil/escputil.c:213
+#: src/escputil/escputil.c:231
msgid "Stylus Color 500"
msgstr "Stylus Color 500"
-#: src/escputil/escputil.c:214
+#: src/escputil/escputil.c:232
msgid "Stylus Color 580"
msgstr "Stylus Color 580"
-#: src/escputil/escputil.c:215
+#: src/escputil/escputil.c:233
msgid "Stylus Color 600"
msgstr "Stylus Color 600"
-#: src/escputil/escputil.c:216
+#: src/escputil/escputil.c:234
msgid "Stylus Color 640"
msgstr "Stylus Color 640"
-#: src/escputil/escputil.c:217
+#: src/escputil/escputil.c:235
msgid "Stylus Color 660"
msgstr "Stylus Color 660"
-#: src/escputil/escputil.c:218
+#: src/escputil/escputil.c:236
msgid "Stylus Color 670"
msgstr "Stylus Color 670"
-#: src/escputil/escputil.c:219
+#: src/escputil/escputil.c:237
msgid "Stylus Color 680"
msgstr "Stylus Color 680"
-#: src/escputil/escputil.c:220
+#: src/escputil/escputil.c:238
msgid "Stylus Color 740"
msgstr "Stylus Color 740"
-#: src/escputil/escputil.c:221
+#: src/escputil/escputil.c:239
msgid "Stylus Color 760"
msgstr "Stylus Color 760"
-#: src/escputil/escputil.c:222
+#: src/escputil/escputil.c:240
msgid "Stylus Color 777"
msgstr "Stylus Color 777"
-#: src/escputil/escputil.c:223
+#: src/escputil/escputil.c:241
msgid "Stylus Color 800"
msgstr "Stylus Color 800"
-#: src/escputil/escputil.c:224
+#: src/escputil/escputil.c:242
msgid "Stylus Color 850"
msgstr "Stylus Color 850"
-#: src/escputil/escputil.c:225
+#: src/escputil/escputil.c:243
msgid "Stylus Color 860"
msgstr "Stylus Color 860"
-#: src/escputil/escputil.c:226
+#: src/escputil/escputil.c:244
msgid "Stylus Color 880"
msgstr "Stylus Color 880"
-#: src/escputil/escputil.c:227
+#: src/escputil/escputil.c:245
msgid "Stylus Color 83"
msgstr "Stylus Color 83"
-#: src/escputil/escputil.c:228
+#: src/escputil/escputil.c:246
msgid "Stylus Color 900"
msgstr "Stylus Color 900"
-#: src/escputil/escputil.c:229
+#: src/escputil/escputil.c:247
msgid "Stylus Color 980"
msgstr "Stylus Color 980"
-#: src/escputil/escputil.c:230
+#: src/escputil/escputil.c:248
msgid "Stylus Color 1160"
msgstr "Stylus Color 1160"
-#: src/escputil/escputil.c:231
+#: src/escputil/escputil.c:249
msgid "Stylus Color 1500"
msgstr "Stylus Color 1500"
-#: src/escputil/escputil.c:232
+#: src/escputil/escputil.c:250
msgid "Stylus Color 1520"
msgstr "Stylus Color 1520"
-#: src/escputil/escputil.c:233
+#: src/escputil/escputil.c:251
msgid "Stylus Color 3000"
msgstr "Stylus Color 3000"
-#: src/escputil/escputil.c:234
+#: src/escputil/escputil.c:252
msgid "Stylus Photo"
msgstr "Stylus Photo"
-#: src/escputil/escputil.c:235
+#: src/escputil/escputil.c:253
msgid "Stylus Photo 700"
msgstr "Stylus Photo 700"
-#: src/escputil/escputil.c:236
+#: src/escputil/escputil.c:254
msgid "Stylus Photo EX"
msgstr "Stylus Photo EX"
-#: src/escputil/escputil.c:237
+#: src/escputil/escputil.c:255
msgid "Stylus Photo 720"
msgstr "Stylus Photo 720"
-#: src/escputil/escputil.c:238
+#: src/escputil/escputil.c:256
msgid "Stylus Photo 750"
msgstr "Stylus Photo 750"
-#: src/escputil/escputil.c:239
+#: src/escputil/escputil.c:257
msgid "Stylus Photo 780"
msgstr "Stylus Photo 780"
-#: src/escputil/escputil.c:240
+#: src/escputil/escputil.c:258
msgid "Stylus Photo 785"
msgstr "Stylus Photo 785"
-#: src/escputil/escputil.c:241
+#: src/escputil/escputil.c:259
msgid "Stylus Photo 790"
msgstr "Stylus Photo 790"
-#: src/escputil/escputil.c:242
+#: src/escputil/escputil.c:260
msgid "Stylus Photo 810"
msgstr "Stylus Photo 810"
-#: src/escputil/escputil.c:243
+#: src/escputil/escputil.c:261
msgid "Stylus Photo 820"
msgstr "Stylus Photo 820"
-#: src/escputil/escputil.c:244
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
msgid "Stylus Photo 870"
msgstr "Stylus Photo 870"
-#: src/escputil/escputil.c:245
+#: src/escputil/escputil.c:264
msgid "Stylus Photo 875"
msgstr "Stylus Photo 875"
-#: src/escputil/escputil.c:246
+#: src/escputil/escputil.c:265
msgid "Stylus Photo 890"
msgstr "Stylus Photo 890"
-#: src/escputil/escputil.c:247
+#: src/escputil/escputil.c:266
msgid "Stylus Photo 895"
msgstr "Stylus Photo 895"
-#: src/escputil/escputil.c:248
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+#, fuzzy
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
msgid "Stylus Photo 1200"
msgstr "Stylus Photo 1200"
-#: src/escputil/escputil.c:249
+#: src/escputil/escputil.c:273
msgid "Stylus Photo 1270"
msgstr "Stylus Photo 1270"
-#: src/escputil/escputil.c:250
+#: src/escputil/escputil.c:274
msgid "Stylus Photo 1280"
msgstr "Stylus Photo 1280"
-#: src/escputil/escputil.c:251
+#: src/escputil/escputil.c:275
msgid "Stylus Photo 1290"
msgstr "Stylus Photo 1290"
-#: src/escputil/escputil.c:252
+#: src/escputil/escputil.c:276
msgid "Stylus Photo 2000P"
msgstr "Stylus Photo 2000P"
-#: src/escputil/escputil.c:253
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
msgid "Stylus Pro 5000"
msgstr "Stylus Pro 5000"
-#: src/escputil/escputil.c:254
+#: src/escputil/escputil.c:280
msgid "Stylus Pro 5500"
msgstr "Stylus Pro 5500"
-#: src/escputil/escputil.c:255
+#: src/escputil/escputil.c:281
msgid "Stylus Pro 7000"
msgstr "Stylus Pro 7000"
-#: src/escputil/escputil.c:256
+#: src/escputil/escputil.c:282
msgid "Stylus Pro 7500"
msgstr "Stylus Pro 7500"
-#: src/escputil/escputil.c:257
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
msgid "Stylus Pro 9000"
msgstr "Stylus Pro 9000"
-#: src/escputil/escputil.c:258
+#: src/escputil/escputil.c:285
msgid "Stylus Pro 9500"
msgstr "Stylus Pro 9500"
-#: src/escputil/escputil.c:259
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
msgid "Stylus Pro 10000"
msgstr "Stylus Pro 10000"
-#: src/escputil/escputil.c:260
+#: src/escputil/escputil.c:288
msgid "Stylus Scan 2000"
msgstr "Stylus Scan 2000"
-#: src/escputil/escputil.c:261
+#: src/escputil/escputil.c:289
msgid "Stylus Scan 2500"
msgstr "Stylus Scan 2500"
-#: src/escputil/escputil.c:341 src/escputil/escputil.c:350
+#: src/escputil/escputil.c:290
+#, fuzzy
+msgid "Stylus CX-3100"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:291
+#, fuzzy
+msgid "Stylus CX-3200"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:292
+#, fuzzy
+msgid "Stylus CX-5100"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:293
+#, fuzzy
+msgid "Stylus CX-5200"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:294
+#, fuzzy
+msgid "Stylus CX-6300"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:295
+#, fuzzy
+msgid "Stylus CX-6400"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:296
+#, fuzzy
+msgid "Stylus CX-8300"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:297
+#, fuzzy
+msgid "Stylus CX-8400"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
msgid "You may only specify one printer or raw device."
msgstr "Du kan endast ange en skrivare eller rå enhet."
-#: src/escputil/escputil.c:359
+#: src/escputil/escputil.c:402
msgid "You may only specify one printer model."
msgstr "Du kan endast ange en skrivarmodell."
-#: src/escputil/escputil.c:379
+#: src/escputil/escputil.c:422
#, c-format
msgid "Unknown option %c\n"
msgstr "Okänd flagga %c\n"
-#: src/escputil/escputil.c:439
+#: src/escputil/escputil.c:482
#, c-format
msgid "Cannot open device %s: %s\n"
msgstr "Kan inte öppna enheten %s: %s\n"
-#: src/escputil/escputil.c:462
+#: src/escputil/escputil.c:505
#, c-format
msgid "Cannot print to printer %s with %s\n"
msgstr "Kan inte skriva ut till skrivaren %s med %s\n"
-#: src/escputil/escputil.c:475 src/escputil/escputil.c:485
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
msgid "Unable to send command to printer\n"
msgstr "Kan inte skicka kommando till skrivare\n"
-#: src/escputil/escputil.c:578
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr ""
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Kan inte läsa från %s: %s\n"
+
+#: src/escputil/escputil.c:638
msgid "Cyan"
msgstr "Cyan"
-#: src/escputil/escputil.c:579
+#: src/escputil/escputil.c:639
msgid "Magenta"
msgstr "Magenta"
-#: src/escputil/escputil.c:580
+#: src/escputil/escputil.c:640
msgid "Yellow"
msgstr "Gult"
-#: src/escputil/escputil.c:581
+#: src/escputil/escputil.c:641
msgid "Light Cyan"
msgstr "Ljus cyan"
-#: src/escputil/escputil.c:582
+#: src/escputil/escputil.c:642
msgid "Light Magenta"
msgstr "Ljus magenta"
-#: src/escputil/escputil.c:596
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr "Svart/Mörkgul"
+
+#: src/escputil/escputil.c:658
msgid "Obtaining ink levels requires using a raw device.\n"
msgstr "Att få tag i bläcknivåerna kräver att en rå enhet används.\n"
-#: src/escputil/escputil.c:602 src/escputil/escputil.c:677
-#: src/escputil/escputil.c:720
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
#, c-format
msgid "Cannot open %s read/write: %s\n"
msgstr "Kan inte öppna %s för läsning och skrivning: %s\n"
-#: src/escputil/escputil.c:611 src/escputil/escputil.c:688
-#: src/escputil/escputil.c:729
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
#, c-format
msgid "Cannot write to %s: %s\n"
msgstr "Kan inte skriva till %s: %s\n"
-#: src/escputil/escputil.c:618 src/escputil/escputil.c:695
-#: src/escputil/escputil.c:736
-#, c-format
-msgid "Cannot read from %s: %s\n"
-msgstr "Kan inte läsa från %s: %s\n"
-
-#: src/escputil/escputil.c:628
+#: src/escputil/escputil.c:700
msgid "Cannot parse output from printer\n"
msgstr "Kan inte tolka utdata från skrivare\n"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Ink color"
msgstr "Bläckfärg"
-#: src/escputil/escputil.c:632
+#: src/escputil/escputil.c:704
msgid "Percent remaining"
msgstr "Återstående procent"
-#: src/escputil/escputil.c:671
+#: src/escputil/escputil.c:737
msgid "Printer identification requires using a raw device.\n"
msgstr "Skrivaridentifiering kräver att en rå enhet används.\n"
-#: src/escputil/escputil.c:714
+#: src/escputil/escputil.c:776
msgid "Printer status requires using a raw device.\n"
msgstr "Skrivarstatus kräver att en rå enhet används.\n"
-#: src/escputil/escputil.c:757
+#: src/escputil/escputil.c:815
msgid "Cleaning heads...\n"
msgstr "Rensar huvuden...\n"
-#: src/escputil/escputil.c:766
+#: src/escputil/escputil.c:824
msgid "Running nozzle check, please ensure paper is in the printer.\n"
msgstr ""
"Kör kontroll av munstycken, försäkra dig om att det finns papper i\n"
"skrivaren.\n"
-#: src/escputil/escputil.c:770
+#: src/escputil/escputil.c:828
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2014,7 +2401,7 @@ msgstr ""
"Det är viktigt att du inte stänger av din skrivare under denna process.\n"
"\n"
-#: src/escputil/escputil.c:805
+#: src/escputil/escputil.c:863
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2082,11 +2469,11 @@ msgstr ""
"process.\n"
"\n"
-#: src/escputil/escputil.c:849
+#: src/escputil/escputil.c:907
msgid "Unable to send command to the printer, exiting.\n"
msgstr "Kan inte skicka kommando till skrivaren, avslutar.\n"
-#: src/escputil/escputil.c:867
+#: src/escputil/escputil.c:925
msgid ""
"Printer alignment must be done with a raw device or else\n"
"the -m option must be used to specify a printer.\n"
@@ -2094,11 +2481,11 @@ msgstr ""
"Skrivarjustering måste göras med en rå enhet. I annat fall\n"
"måste flaggan -m användas för att ange en skrivare.\n"
-#: src/escputil/escputil.c:871
+#: src/escputil/escputil.c:929
msgid "Attempting to detect printer model..."
msgstr "Försöker detektera skrivarmodell..."
-#: src/escputil/escputil.c:876
+#: src/escputil/escputil.c:934
#, c-format
msgid ""
"\n"
@@ -2107,7 +2494,7 @@ msgstr ""
"\n"
"Kan inte öppna %s för läsning/skrivning: %s\n"
-#: src/escputil/escputil.c:884
+#: src/escputil/escputil.c:942
#, c-format
msgid ""
"\n"
@@ -2116,16 +2503,7 @@ msgstr ""
"\n"
"Kan inte skriva till %s: %s\n"
-#: src/escputil/escputil.c:890
-#, c-format
-msgid ""
-"\n"
-"Cannot read from %s: %s\n"
-msgstr ""
-"\n"
-"Kan inte läsa från %s: %s\n"
-
-#: src/escputil/escputil.c:903
+#: src/escputil/escputil.c:958
msgid ""
"\n"
"Cannot detect printer type.\n"
@@ -2135,12 +2513,12 @@ msgstr ""
"Kan inte detektera skrivartyp.\n"
"Använd flaggan -m för att ange din skrivarmodell.\n"
-#: src/escputil/escputil.c:920
+#: src/escputil/escputil.c:975
#, c-format
msgid "Printer model %s is not known.\n"
msgstr "Skrivarmodellen %s är okänd.\n"
-#: src/escputil/escputil.c:931
+#: src/escputil/escputil.c:986
msgid ""
"Please inspect the final output very carefully to ensure that your\n"
"printer is in proper alignment. You may now:\n"
@@ -2158,19 +2536,19 @@ msgstr ""
"Du kommer att få bekräfta ditt val.\n"
"Vad vill du göra (s, q, r)?\n"
-#: src/escputil/escputil.c:939 src/escputil/escputil.c:946
-#: src/escputil/escputil.c:959 src/escputil/escputil.c:975
-#: src/escputil/escputil.c:1046 src/escputil/escputil.c:1187
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
msgid "> "
msgstr "> "
-#: src/escputil/escputil.c:944
+#: src/escputil/escputil.c:999
msgid ""
"Please confirm by typing 'q' again that you wish to quit without saving:\n"
msgstr ""
"Bekräfta att du vill avsluta utan att spara genom att trycka \"q\" igen:\n"
-#: src/escputil/escputil.c:949
+#: src/escputil/escputil.c:1004
msgid ""
"OK, your printer is aligned, but the alignment has not been saved.\n"
"If you wish to save the alignment, you must repeat this process.\n"
@@ -2178,7 +2556,7 @@ msgstr ""
"OK, din skrivare är justerad, men justeringen har inte sparats.\n"
"Om du vill spara justeringen måste du upprepa detta förlopp.\n"
-#: src/escputil/escputil.c:956
+#: src/escputil/escputil.c:1011
msgid ""
"Please confirm by typing 'r' again that you wish to repeat the\n"
"alignment process:\n"
@@ -2186,11 +2564,11 @@ msgstr ""
"Bekräfta att du vill upprepa justeringsprocessen genom att\n"
"ange \"r\" igen:\n"
-#: src/escputil/escputil.c:962
+#: src/escputil/escputil.c:1017
msgid "Repeating the alignment process.\n"
msgstr "Upprepar justeringsprocessen.\n"
-#: src/escputil/escputil.c:968
+#: src/escputil/escputil.c:1023
msgid ""
"This will permanently alter the configuration of your printer.\n"
"WARNING: this procedure has not been approved by Seiko Epson, and\n"
@@ -2204,25 +2582,39 @@ msgstr ""
"Bekräfta att du vill spara ändringarna i skrivaren genom att ange\n"
"\"s\" igen:\n"
-#: src/escputil/escputil.c:978
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Kommer att spara inställningar..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "misslyckades!\n"
+
+#: src/escputil/escputil.c:1040
msgid ""
-"Please insert your alignment test page in the printer once more\n"
-"for the final save of your alignment settings. When the printer\n"
-"feeds the page through, your settings have been saved.\n"
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
msgstr ""
-"Mata in din justeringstestsida en gång till i skrivaren för det\n"
-"slutgiltiga sparandet av justeringsinställningarna. När skrivaren\n"
-"matar igenom pappret är dina inställningar sparade.\n"
+"Dina inställningar sparades inte utan problem. Du måste upprepa\n"
+"justeringsproceduren.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "lyckades!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Dina justeringsinställningar har sparats till skrivaren.\n"
-#: src/escputil/escputil.c:992
+#: src/escputil/escputil.c:1050
msgid "Unrecognized command.\n"
msgstr "Okänt kommando.\n"
-#: src/escputil/escputil.c:995
+#: src/escputil/escputil.c:1053
msgid "Final command was not confirmed.\n"
msgstr "Sista kommandot bekräftades inte.\n"
-#: src/escputil/escputil.c:1000
+#: src/escputil/escputil.c:1058
#, c-format
msgid ""
"This procedure assumes that your printer is an Epson %s.\n"
@@ -2239,66 +2631,66 @@ msgstr ""
"Placera ett pappersark i skrivaren för att påbörja justeringen\n"
"av huvudena.\n"
-#: src/escputil/escputil.c:1025 src/escputil/escputil.c:1054
-#: src/escputil/escputil.c:1090 src/escputil/escputil.c:1166
-#: src/escputil/escputil.c:1177
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
msgid "Press enter to continue > "
msgstr "Tryck retur för att fortsätta > "
-#: src/escputil/escputil.c:1036
-#, c-format
+#: src/escputil/escputil.c:1090
msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then insert a fresh page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
msgstr ""
-"Granska utskriften, och välj det bästa linjeparet i mönster nummer %d,\n"
-"och mata sedan in en ny sida i inmatningsfacket. Skriv in ett parnummer,\n"
-"\"?\" för hjälp, eller \"r\" för att upprepa försöket med detta mönster.\n"
+"Granska utskriften och välj det bästa linjeparet i varje mönster.\n"
+"Skriv in ett parnummer, \"?\" för hjälp, eller \"r\" för att upprepa "
+"proceduren.\n"
-#: src/escputil/escputil.c:1041
+#: src/escputil/escputil.c:1096
#, c-format
-msgid ""
-"Please inspect the print, and choose the best pair of lines\n"
-"in pattern #%d, and then reinsert the page in the input tray.\n"
-"Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
-msgstr ""
-"Granska utskriften, och välj det bästa linjeparet i mönster nummer %d,\n"
-"och mata sedan in sidan i inmatningsfacket. Skriv in ett parnummer,\n"
-"\"?\" för hjälp, eller \"r\" för att upprepa försöket med detta mönster.\n"
+msgid "Pass #%d"
+msgstr "Pass %d"
-#: src/escputil/escputil.c:1051
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
msgid "Please insert a fresh sheet of paper.\n"
msgstr "Mata in ett nytt pappersark.\n"
-#: src/escputil/escputil.c:1070 src/escputil/escputil.c:1206
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
msgid "Number out of range!\n"
msgstr "Numret är utanför intervallet!\n"
-#: src/escputil/escputil.c:1075 src/escputil/escputil.c:1211
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
msgid "I cannot understand what you typed!\n"
msgstr "Jag kan inte förstå vad du skrev!\n"
-#: src/escputil/escputil.c:1081
+#: src/escputil/escputil.c:1132
#, c-format
msgid "The best pair of lines should be numbered between 1 and %d.\n"
msgstr "Det bästa linjeparet bör vara numrerat mellan 1 och %d.\n"
-#: src/escputil/escputil.c:1088
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Försöker ställa in justering..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "lyckades.\n"
+
+#: src/escputil/escputil.c:1143
#, c-format
msgid ""
-"Aligning phase %d, and performing final test.\n"
-"Please insert a fresh sheet of paper.\n"
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
msgstr ""
-"Justeringsfas %d, och utför sista testet.\n"
-"Mata in ett nytt pappersark.\n"
-
-#: src/escputil/escputil.c:1093
-#, c-format
-msgid "Aligning phase %d, and starting phase %d.\n"
-msgstr "Justeringsfas %d, och startar fas %d.\n"
+"Verifiera att justeringen är korrekt. Efter det att justeringsmönstret\n"
+"skrivits ut igen bör du försäkra dig om att det bästa mönstret för varje\n"
+"linje är mönster %d. Om det inte är det bör du upprepa proceduren för\n"
+"att få bästa utskriftskvalitet.\n"
-#: src/escputil/escputil.c:1107
+#: src/escputil/escputil.c:1158
#, c-format
msgid ""
"Please read these instructions very carefully before proceeding.\n"
@@ -2361,12 +2753,12 @@ msgstr ""
"VARNING: DENNA FUNKTION ÄR INTE TESTAD ÄN! Den kanske inte fungerar, och\n"
"den kanske skadar din skrivare!\n"
-#: src/escputil/escputil.c:1157
+#: src/escputil/escputil.c:1208
#, c-format
msgid "Printer %s does not require color head alignment.\n"
msgstr "Skrivaren %s kräver inte justering av färgutskriftshuvudet.\n"
-#: src/escputil/escputil.c:1175
+#: src/escputil/escputil.c:1226
msgid ""
"Please re-insert the same alignment sheet in the printer when it is\n"
"finished printing.\n"
@@ -2374,7 +2766,7 @@ msgstr ""
"Mata in samma justeringspapper i skrivaren efter det att utskriften\n"
"är klar.\n"
-#: src/escputil/escputil.c:1181
+#: src/escputil/escputil.c:1232
msgid ""
"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
"This pattern will appear to have the least ``grain''.\n"
@@ -2388,12 +2780,12 @@ msgstr ""
"bästa mönstret och upprepa proceduren.\n"
"Ange ett mönsternummer, eller \"?\" för hjälp.\n"
-#: src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1268
#, c-format
msgid "The best pattern should be numbered between 1 and %d.\n"
msgstr "Det bästa mönstret ska vara numrerat mellan 1 och %d.\n"
-#: src/escputil/escputil.c:1261
+#: src/escputil/escputil.c:1312
msgid "Error in input\n"
msgstr "Fel i indata\n"
@@ -3114,11 +3506,179 @@ msgstr "Skriver ut..."
msgid "<Image>/File/Print..."
msgstr "<Image>/Arkiv/Skriv ut..."
-#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:833
-#: src/gimp/print.c:1184
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
msgid "File"
msgstr "Fil"
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Felaktigt färgutrymme: bps %d kanaler %d utrymme %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Ingen radbuffert\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Parametern %s är utanför intervallet (värde %f, min %f, max %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Kan inte tolka parametern %s=%s (ett tal förväntas)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Parametern %s är utanför intervallet (värde %d, min %d, max %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Skrivaren måste anges med -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Skrivaren %s är inte en känd modell\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Okänd flagga %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f av %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "ijs_server_get_page_header misslyckades %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "image_init misslyckades %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Kan inte öppna fildeskriptor: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Kan inte öppna %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Okänd skrivare %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Felaktiga parametrar; kan inte fortsätta!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Hämtande av nästa rad misslyckades vid %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Kan inte läsa från %s: %s\n"
+
+#~ msgid ""
+#~ "Please inspect the print, and choose the pattern in each set.\n"
+#~ "Type a pattern number, '?' for help, or 'r' to repeat the procedure.\n"
+#~ msgstr ""
+#~ "Granska utskriften och välj mönstret i varje par.\n"
+#~ "Skriv in ett mönsternummer, \"?\" för hjälp, eller \"r\" för att upprepa "
+#~ "proceduren.\n"
+
+#~ msgid "13x19"
+#~ msgstr "13×19"
+
+#~ msgid "Monarch"
+#~ msgstr "Monarch"
+
+#~ msgid "Long 3"
+#~ msgstr "Long 3"
+
+#~ msgid "Long 4"
+#~ msgstr "Long 4"
+
+#~ msgid "Kaku"
+#~ msgstr "Kaku"
+
+#~ msgid "HP Greeting Card"
+#~ msgstr "HP-gratulationskort"
+
+#~ msgid "1440 x 360 DPI"
+#~ msgstr "1440 × 360 DPI"
+
+#~ msgid "1440 x 360 DPI Unidirectional"
+#~ msgstr "1440 × 360 DPI enkelriktad"
+
+#~ msgid "1440 x 360 DPI High Quality"
+#~ msgstr "1440 × 360 DPI hög kvalitet"
+
+#~ msgid "1440 x 360 DPI High Quality Uni"
+#~ msgstr "1440 × 360 DPI enkelriktad hög kvalitet"
+
+#~ msgid "1440 x 360 DPI Highest Quality"
+#~ msgstr "1440 × 360 DPI högsta kvalitet"
+
+#~ msgid ""
+#~ "Please insert your alignment test page in the printer once more\n"
+#~ "for the final save of your alignment settings. When the printer\n"
+#~ "feeds the page through, your settings have been saved.\n"
+#~ msgstr ""
+#~ "Mata in din justeringstestsida en gång till i skrivaren för det\n"
+#~ "slutgiltiga sparandet av justeringsinställningarna. När skrivaren\n"
+#~ "matar igenom pappret är dina inställningar sparade.\n"
+
+#~ msgid ""
+#~ "Please inspect the print, and choose the best pair of lines\n"
+#~ "in pattern #%d, and then insert a fresh page in the input tray.\n"
+#~ "Type a pair number, '?' for help, or 'r' to retry this pattern.\n"
+#~ msgstr ""
+#~ "Granska utskriften, och välj det bästa linjeparet i mönster nummer %d,\n"
+#~ "och mata sedan in en ny sida i inmatningsfacket. Skriv in ett parnummer,\n"
+#~ "\"?\" för hjälp, eller \"r\" för att upprepa försöket med detta mönster.\n"
+
+#~ msgid ""
+#~ "Aligning phase %d, and performing final test.\n"
+#~ "Please insert a fresh sheet of paper.\n"
+#~ msgstr ""
+#~ "Justeringsfas %d, och utför sista testet.\n"
+#~ "Mata in ett nytt pappersark.\n"
+
+#~ msgid "Aligning phase %d, and starting phase %d.\n"
+#~ msgstr "Justeringsfas %d, och startar fas %d.\n"
+
+#~ msgid "%s is not a valid %s\n"
+#~ msgstr "%s är inte en giltig %s\n"
+
+#~ msgid "%s is not a valid page size\n"
+#~ msgstr "%s är inte en giltig pappersstorlek\n"
+
+#~ msgid "%s is not a valid media source\n"
+#~ msgstr "%s är inte en giltig mediakälla\n"
+
+#~ msgid "%s is not a valid resolution\n"
+#~ msgstr "%s är inte en giltig upplösning\n"
+
+#~ msgid "%s is not a valid ink type\n"
+#~ msgstr "%s är inte en giltig bläcktyp\n"
+
#~ msgid "flsa"
#~ msgstr "flsa"
diff --git a/po/uk.gmo b/po/uk.gmo
new file mode 100644
index 0000000..13330c8
--- /dev/null
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..afd0a3f
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,3515 @@
+# Ukrainian translation to gimp-print.
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Maxim V. Dziumanenko <mvd@mylinux.com.ua>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gimp-print 4.2.7-pre1\n"
+"POT-Creation-Date: 2004-06-13 10:43-0400\n"
+"PO-Revision-Date: 2004-04-19 15:53+0200\n"
+"Last-Translator: Maxim V. Dziumanenko <mvd@mylinux.com.ua>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: неоднозначний параметр \"%s\"\n"
+
+#: lib/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: параметр \"--%s\" не повинен мати аргументів\n"
+
+#: lib/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: параметр \"%c%s\" не повинен мати аргументів\n"
+
+#: lib/getopt.c:729 lib/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: параметру \"--%s\" потрібен аргумент\n"
+
+#. --option
+#: lib/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: нерозпізнаний параметр \"--%s\"\n"
+
+#. +option or -option
+#: lib/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: нерозпізнаний параметр \"%c%s\"\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: недопуÑтимий параметр -- %c\n"
+
+#: lib/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: неправильний параметр -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:821 lib/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: параметру потрібен аргумент -- %c\n"
+
+#: lib/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: параметр `-W %s' є неоднозначним\n"
+
+#: lib/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: параметр `-W %s' не повинен мати аргументів\n"
+
+#: src/main/print-canon.c:1172 src/main/print-escp2-data.c:3237
+#: src/main/print-escp2-data.c:3299 src/main/print-escp2-data.c:3361
+#: src/main/print-escp2-data.c:3423 src/main/print-lexmark.c:909
+msgid "Plain Paper"
+msgstr "ПроÑтий папір"
+
+#: src/main/print-canon.c:1173 src/main/print-escp2-data.c:3249
+#: src/main/print-escp2-data.c:3311 src/main/print-escp2-data.c:3373
+#: src/main/print-escp2-data.c:3435 src/main/print-lexmark.c:915
+msgid "Transparencies"
+msgstr "Прозора плівка"
+
+# Ðегативна плівка?
+#: src/main/print-canon.c:1174
+msgid "Back Print Film"
+msgstr "Плівка зворотного друку"
+
+#: src/main/print-canon.c:1175
+msgid "Fabric Sheets"
+msgstr "Ðркуш з тканини"
+
+#: src/main/print-canon.c:1176
+msgid "Envelope"
+msgstr "Конверт"
+
+#: src/main/print-canon.c:1177
+msgid "High Resolution Paper"
+msgstr "Папір виÑокої роздільної здатноÑÑ‚Ñ–"
+
+#: src/main/print-canon.c:1178
+msgid "T-Shirt Transfers"
+msgstr "ПеренеÑÐµÐ½Ð½Ñ Ð½Ð° футболки"
+
+#: src/main/print-canon.c:1179
+msgid "High Gloss Film"
+msgstr "ВиÑокоглÑнцева плівка"
+
+#: src/main/print-canon.c:1180
+msgid "Glossy Photo Paper"
+msgstr "ГлÑнцевий фотопапір"
+
+#: src/main/print-canon.c:1181
+msgid "Glossy Photo Cards"
+msgstr "ГлÑнцеві фотокартки"
+
+#: src/main/print-canon.c:1182
+msgid "Photo Paper Pro"
+msgstr "ПрофеÑійний фотопапір"
+
+#: src/main/print-canon.c:1183 src/main/print-escp2-data.c:3286
+#: src/main/print-escp2-data.c:3348 src/main/print-escp2-data.c:3410
+#: src/main/print-escp2-data.c:3472 src/main/print-lexmark.c:945
+msgid "Other"
+msgstr "Інший"
+
+#: src/main/print-canon.c:1464 src/main/print-lexmark.c:1160
+msgid "Auto Sheet Feeder"
+msgstr "Ðвтоматична подача паперу"
+
+#: src/main/print-canon.c:1465 src/main/print-lexmark.c:1161
+msgid "Manual with Pause"
+msgstr "Ручна подача з паузами"
+
+#: src/main/print-canon.c:1466 src/main/print-lexmark.c:1162
+msgid "Manual without Pause"
+msgstr "Ручна подача без пауз"
+
+#: src/escputil/escputil.c:637 src/main/print-canon.c:1558
+#: src/main/print-lexmark.c:666
+msgid "Black"
+msgstr "Чорний"
+
+#: src/main/print-canon.c:1563
+msgid "CMY Color"
+msgstr "CMY кольоровий"
+
+#: src/main/print-canon.c:1568
+msgid "CMYK Color"
+msgstr "CMYK кольоровий"
+
+#: src/main/print-canon.c:1573
+msgid "Photo CcMmY Color"
+msgstr "Фото CcMmY кольоровий"
+
+#: src/main/print-canon.c:1578
+msgid "Photo CcMmYK Color"
+msgstr "Фото CcMmYK кольоровий"
+
+#: src/main/print-dither.c:64
+msgid "Adaptive Hybrid"
+msgstr "Ðдаптивний гібридний"
+
+#: src/main/print-dither.c:65
+msgid "Ordered"
+msgstr "ВпорÑдкований"
+
+#: src/main/print-dither.c:66
+msgid "Fast"
+msgstr "Швидкий"
+
+#: src/main/print-dither.c:67
+msgid "Very Fast"
+msgstr "Дуже швидкий"
+
+#: src/main/print-dither.c:68
+msgid "Hybrid Floyd-Steinberg"
+msgstr "Гібридний за Флойдом-Стейнбергом"
+
+#. Note to translators: "EvenTone" is the proper name, rather than a
+#. descriptive name, of this algorithm.
+#: src/main/print-dither.c:71
+msgid "EvenTone"
+msgstr "Рівномірний тон"
+
+#: src/main/print-escp2-data.c:2887 src/main/print-escp2-data.c:2897
+#: src/main/print-escp2-data.c:2907 src/main/print-escp2-data.c:2917
+#: src/main/print-lexmark.c:651 src/main/print-lexmark.c:731
+msgid "Three Color Composite"
+msgstr "Трикольоровий композитний"
+
+#. output_type ncolors used_colors pass_length v_top_head_offset
+#. * h_catridge_offset
+#. * h_direction_offset
+#. * head_offset
+#: src/main/print-escp2-data.c:2927 src/main/print-escp2-data.c:2937
+#: src/main/print-escp2-data.c:2947 src/main/print-escp2-data.c:2957
+#: src/main/print-lexmark.c:646 src/main/print-lexmark.c:726
+msgid "Four Color Standard"
+msgstr "Стандартний чотирикольоровий"
+
+#: src/main/print-escp2-data.c:2967 src/main/print-escp2-data.c:3053
+#: src/main/print-lexmark.c:656 src/main/print-lexmark.c:736
+msgid "Six Color Photo"
+msgstr "ШоÑтикольоровий фото"
+
+#: src/main/print-escp2-data.c:2977 src/main/print-escp2-data.c:3063
+#: src/main/print-lexmark.c:661 src/main/print-lexmark.c:741
+msgid "Five Color Photo Composite"
+msgstr "П'Ñтикольоровий композитний фото"
+
+#: src/main/print-escp2-data.c:2987 src/main/print-escp2-data.c:3073
+msgid "Seven Color Enhanced"
+msgstr "Семикольоровий покращений"
+
+#: src/main/print-escp2-data.c:2997 src/main/print-escp2-data.c:3083
+msgid "Six Color Enhanced Composite"
+msgstr "ШоÑтикольоровий покращений композитний"
+
+#: src/main/print-escp2-data.c:3007 src/main/print-escp2-data.c:3093
+msgid "Seven Color Photo"
+msgstr "Семикольоровий фото"
+
+#: src/main/print-escp2-data.c:3017 src/main/print-escp2-data.c:3103
+msgid "Two Level Grayscale"
+msgstr "Сірий з двома відтінками"
+
+#: src/main/print-escp2-data.c:3026 src/main/print-escp2-data.c:3035
+#: src/main/print-escp2-data.c:3044
+msgid "Quadtone"
+msgstr "Чотиритоновий"
+
+#: src/main/print-escp2-data.c:3240 src/main/print-escp2-data.c:3302
+#: src/main/print-escp2-data.c:3364 src/main/print-escp2-data.c:3426
+msgid "Plain Paper Fast Load"
+msgstr "ПроÑтий папір швидкого завантаженнÑ"
+
+#. 7.25 * 10.5in
+#: src/main/print-escp2-data.c:3243 src/main/print-escp2-data.c:3305
+#: src/main/print-escp2-data.c:3367 src/main/print-escp2-data.c:3429
+#: src/main/print-util.c:541
+msgid "Postcard"
+msgstr "Картка"
+
+#: src/main/print-escp2-data.c:3246 src/main/print-escp2-data.c:3308
+#: src/main/print-escp2-data.c:3370 src/main/print-escp2-data.c:3432
+#: src/main/print-lexmark.c:912
+msgid "Glossy Film"
+msgstr "ГлÑнцева плівка"
+
+#: src/main/print-escp2-data.c:3252 src/main/print-escp2-data.c:3314
+#: src/main/print-escp2-data.c:3376 src/main/print-escp2-data.c:3438
+#: src/main/print-lexmark.c:918
+msgid "Envelopes"
+msgstr "Конверти"
+
+# Ðегативна плівка ?
+#: src/main/print-escp2-data.c:3255 src/main/print-escp2-data.c:3317
+#: src/main/print-escp2-data.c:3379 src/main/print-escp2-data.c:3441
+msgid "Back Light Film"
+msgstr "Плівка зворотного Ñвітла"
+
+#: src/main/print-escp2-data.c:3258 src/main/print-escp2-data.c:3320
+#: src/main/print-escp2-data.c:3382 src/main/print-escp2-data.c:3444
+#: src/main/print-lexmark.c:921
+msgid "Matte Paper"
+msgstr "Матовий папір"
+
+#: src/main/print-escp2-data.c:3261 src/main/print-escp2-data.c:3323
+#: src/main/print-escp2-data.c:3385 src/main/print-escp2-data.c:3447
+#: src/main/print-lexmark.c:924
+msgid "Inkjet Paper"
+msgstr "Папір Ð´Ð»Ñ Ñтруменевого друку"
+
+#: src/main/print-escp2-data.c:3264 src/main/print-escp2-data.c:3326
+#: src/main/print-escp2-data.c:3388 src/main/print-escp2-data.c:3450
+#: src/main/print-lexmark.c:927
+msgid "Photo Quality Inkjet Paper"
+msgstr "Папір фото-ÑкоÑÑ‚Ñ– Ð´Ð»Ñ Ñтруменевого друку"
+
+#: src/main/print-escp2-data.c:3267 src/main/print-escp2-data.c:3329
+#: src/main/print-escp2-data.c:3391 src/main/print-escp2-data.c:3453
+#: src/main/print-lexmark.c:930
+msgid "Photo Paper"
+msgstr "Фотопапір"
+
+#: src/main/print-escp2-data.c:3270 src/main/print-escp2-data.c:3332
+#: src/main/print-escp2-data.c:3394 src/main/print-escp2-data.c:3456
+#: src/main/print-lexmark.c:933
+msgid "Premium Glossy Photo Paper"
+msgstr "ПершоÑортний глÑнцевий фотопапір"
+
+#: src/main/print-escp2-data.c:3274 src/main/print-escp2-data.c:3336
+#: src/main/print-escp2-data.c:3398 src/main/print-escp2-data.c:3460
+#: src/main/print-lexmark.c:936
+msgid "Premium Luster Photo Paper"
+msgstr "ПершоÑортний лиÑкучий фотопапір"
+
+#: src/main/print-escp2-data.c:3277 src/main/print-escp2-data.c:3339
+#: src/main/print-escp2-data.c:3401 src/main/print-escp2-data.c:3463
+#: src/main/print-lexmark.c:939
+msgid "Photo Quality Glossy Paper"
+msgstr "ГлÑнцевий папір фото-ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-escp2-data.c:3280 src/main/print-escp2-data.c:3342
+#: src/main/print-escp2-data.c:3404 src/main/print-escp2-data.c:3466
+#: src/main/print-lexmark.c:942
+msgid "Ilford Heavy Paper"
+msgstr "Ilford картон"
+
+#: src/main/print-escp2-data.c:3283 src/main/print-escp2-data.c:3345
+#: src/main/print-escp2-data.c:3407 src/main/print-escp2-data.c:3469
+msgid "ColorLife Paper"
+msgstr "ColorLife папір"
+
+#: src/main/print-escp2-data.c:3741 src/main/print-escp2-data.c:3743
+#: src/main/print-escp2-data.c:4000 src/main/print-escp2-data.c:4002
+#: src/main/print-escp2-data.c:4075
+msgid "360 x 90 DPI Fast Economy Draft"
+msgstr "360 x 90 DPI швидкий економний чорновий"
+
+#: src/main/print-escp2-data.c:3746 src/main/print-escp2-data.c:3748
+#: src/main/print-escp2-data.c:4005 src/main/print-escp2-data.c:4007
+#: src/main/print-escp2-data.c:4078
+msgid "360 x 120 DPI Economy Draft"
+msgstr "360 x 120 DPI економний чорновий"
+
+#: src/main/print-escp2-data.c:3751 src/main/print-escp2-data.c:3753
+#: src/main/print-escp2-data.c:3828 src/main/print-escp2-data.c:4010
+#: src/main/print-escp2-data.c:4012 src/main/print-escp2-data.c:4081
+msgid "180 DPI Economy Draft"
+msgstr "180 DPI економний чорновий"
+
+#: src/main/print-escp2-data.c:3756 src/main/print-escp2-data.c:3758
+#: src/main/print-escp2-data.c:4015 src/main/print-escp2-data.c:4017
+#: src/main/print-escp2-data.c:4084
+msgid "360 x 240 DPI Draft"
+msgstr "360 x 240 DPI чорновий"
+
+#: src/main/print-escp2-data.c:3761 src/main/print-escp2-data.c:3763
+#: src/main/print-escp2-data.c:3831 src/main/print-escp2-data.c:3867
+#: src/main/print-escp2-data.c:3869 src/main/print-escp2-data.c:3949
+#: src/main/print-escp2-data.c:3951 src/main/print-escp2-data.c:4020
+#: src/main/print-escp2-data.c:4022 src/main/print-escp2-data.c:4087
+msgid "360 x 180 DPI Draft"
+msgstr "360 x 180 DPI чорновий"
+
+#: src/main/print-escp2-data.c:3766 src/main/print-escp2-data.c:3774
+#: src/main/print-escp2-data.c:3834 src/main/print-escp2-data.c:3872
+#: src/main/print-escp2-data.c:3954 src/main/print-escp2-data.c:4025
+#: src/main/print-escp2-data.c:4029 src/main/print-escp2-data.c:4094
+msgid "360 DPI"
+msgstr "360 DPI"
+
+#: src/main/print-escp2-data.c:3768 src/main/print-escp2-data.c:3776
+#: src/main/print-escp2-data.c:3836 src/main/print-escp2-data.c:3874
+#: src/main/print-escp2-data.c:3956 src/main/print-escp2-data.c:4027
+#: src/main/print-escp2-data.c:4031 src/main/print-escp2-data.c:4096
+msgid "360 DPI Unidirectional"
+msgstr "360 DPI однонаправлений"
+
+#: src/main/print-escp2-data.c:3770 src/main/print-escp2-data.c:4090
+msgid "360 DPI Interleave"
+msgstr "360 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:3772 src/main/print-escp2-data.c:4092
+msgid "360 DPI Interleave Unidirectional"
+msgstr "360 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:3779 src/main/print-escp2-data.c:3839
+#: src/main/print-escp2-data.c:3877 src/main/print-escp2-data.c:3918
+#: src/main/print-escp2-data.c:3959 src/main/print-escp2-data.c:4034
+#: src/main/print-escp2-data.c:4111
+msgid "720 x 360 DPI"
+msgstr "720 x 360 DPI"
+
+#: src/main/print-escp2-data.c:3781 src/main/print-escp2-data.c:3841
+#: src/main/print-escp2-data.c:3879 src/main/print-escp2-data.c:3920
+#: src/main/print-escp2-data.c:3961 src/main/print-escp2-data.c:4036
+#: src/main/print-escp2-data.c:4113
+msgid "720 x 360 DPI Unidirectional"
+msgstr "720 x 360 DPI однонаправлений"
+
+#: src/main/print-escp2-data.c:3784 src/main/print-escp2-data.c:4132
+msgid "720 DPI Interleave"
+msgstr "720 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:3786 src/main/print-escp2-data.c:4134
+msgid "720 DPI Interleave Unidirectional"
+msgstr "720 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:3788 src/main/print-escp2-data.c:3844
+#: src/main/print-escp2-data.c:3882 src/main/print-escp2-data.c:3923
+#: src/main/print-escp2-data.c:3964 src/main/print-escp2-data.c:4039
+msgid "720 DPI"
+msgstr "720 DPI"
+
+#: src/main/print-escp2-data.c:3790 src/main/print-escp2-data.c:3846
+#: src/main/print-escp2-data.c:3884 src/main/print-escp2-data.c:3925
+#: src/main/print-escp2-data.c:3966 src/main/print-escp2-data.c:4041
+msgid "720 DPI Unidirectional"
+msgstr "720 DPI однонаправлений"
+
+#: src/main/print-escp2-data.c:3792 src/main/print-escp2-data.c:3848
+#: src/main/print-escp2-data.c:3886 src/main/print-escp2-data.c:3927
+#: src/main/print-escp2-data.c:3968 src/main/print-escp2-data.c:4043
+msgid "720 DPI High Quality"
+msgstr "720 DPI виÑокої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-escp2-data.c:3794 src/main/print-escp2-data.c:3850
+#: src/main/print-escp2-data.c:3888 src/main/print-escp2-data.c:3929
+#: src/main/print-escp2-data.c:3970 src/main/print-escp2-data.c:4045
+msgid "720 DPI High Quality Unidirectional"
+msgstr "720 DPI виÑокої ÑкоÑÑ‚Ñ– однонаправлений"
+
+#: src/main/print-escp2-data.c:3796 src/main/print-escp2-data.c:3852
+#: src/main/print-escp2-data.c:3890 src/main/print-escp2-data.c:3931
+#: src/main/print-escp2-data.c:3972 src/main/print-escp2-data.c:4047
+msgid "720 DPI Highest Quality"
+msgstr "720 DPI вищої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-escp2-data.c:3799 src/main/print-escp2-data.c:4145
+msgid "1440 x 720 DPI Interleave"
+msgstr "1440 x 720 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:3801 src/main/print-escp2-data.c:4147
+msgid "1440 x 720 DPI Interleave Unidirectional"
+msgstr "1440 x 720 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:3803 src/main/print-escp2-data.c:3855
+#: src/main/print-escp2-data.c:3893 src/main/print-escp2-data.c:3934
+#: src/main/print-escp2-data.c:3975 src/main/print-escp2-data.c:4050
+msgid "1440 x 720 DPI"
+msgstr "1440 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3805 src/main/print-escp2-data.c:3857
+#: src/main/print-escp2-data.c:3895 src/main/print-escp2-data.c:3936
+#: src/main/print-escp2-data.c:3977 src/main/print-escp2-data.c:4052
+msgid "1440 x 720 DPI Unidirectional"
+msgstr "1440 x 720 DPI однонаправлений"
+
+#: src/main/print-escp2-data.c:3807 src/main/print-escp2-data.c:3859
+#: src/main/print-escp2-data.c:3897 src/main/print-escp2-data.c:3938
+#: src/main/print-escp2-data.c:3979 src/main/print-escp2-data.c:4054
+msgid "1440 x 720 DPI Highest Quality"
+msgstr "1440 x 720 DPI вищої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-escp2-data.c:3810 src/main/print-escp2-data.c:3900
+#: src/main/print-escp2-data.c:3982 src/main/print-escp2-data.c:4057
+msgid "2880 x 720 DPI"
+msgstr "2880 x 720 DPI"
+
+#: src/main/print-escp2-data.c:3812 src/main/print-escp2-data.c:3902
+#: src/main/print-escp2-data.c:3984 src/main/print-escp2-data.c:4059
+msgid "2880 x 720 DPI Unidirectional"
+msgstr "2880 x 720 DPI однонаправлений"
+
+#: src/main/print-escp2-data.c:3815 src/main/print-escp2-data.c:3905
+#: src/main/print-escp2-data.c:3987 src/main/print-escp2-data.c:4062
+msgid "1440 x 1440 DPI"
+msgstr "1440 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:3817 src/main/print-escp2-data.c:3907
+#: src/main/print-escp2-data.c:3989 src/main/print-escp2-data.c:4064
+msgid "1440 x 1440 DPI Highest Quality"
+msgstr "1440 x 1440 DPI вищої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-escp2-data.c:3820 src/main/print-escp2-data.c:3910
+#: src/main/print-escp2-data.c:3941 src/main/print-escp2-data.c:3992
+#: src/main/print-escp2-data.c:4067
+msgid "2880 x 1440 DPI"
+msgstr "2880 x 1440 DPI"
+
+#: src/main/print-escp2-data.c:4098
+msgid "360 DPI Full Overlap"
+msgstr "360 DPI повне перекриваннÑ"
+
+#: src/main/print-escp2-data.c:4100
+msgid "360 DPI Full Overlap Unidirectional"
+msgstr "360 DPI повне Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ð¹"
+
+#: src/main/print-escp2-data.c:4102
+msgid "360 DPI FOL2"
+msgstr "360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4104
+msgid "360 DPI FOL2 Unidirectional"
+msgstr "360 DPI FOL2 однонаправлений"
+
+#: src/main/print-escp2-data.c:4106
+msgid "360 DPI MW2"
+msgstr "360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4108
+msgid "360 DPI MW2 Unidirectional"
+msgstr "360 DPI MW2 однонаправлений"
+
+#: src/main/print-escp2-data.c:4115
+msgid "720 x 360 DPI Interleave"
+msgstr "720 x 360 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:4117
+msgid "720 x 360 DPI Interleave Unidirectional"
+msgstr "720 x 360 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:4119
+msgid "720 x 360 DPI FOL"
+msgstr "720 x 360 DPI FOL"
+
+#: src/main/print-escp2-data.c:4121
+msgid "720 x 360 DPI FOL Unidirectional"
+msgstr "720 x 360 DPI FOL однонаправлений"
+
+#: src/main/print-escp2-data.c:4123
+msgid "720 x 360 DPI FOL2"
+msgstr "720 x 360 DPI FOL2"
+
+#: src/main/print-escp2-data.c:4125
+msgid "720 x 360 DPI FOL2 Unidirectional"
+msgstr "720 x 360 DPI FOL2 однонаправлений"
+
+#: src/main/print-escp2-data.c:4127
+msgid "720 x 360 DPI MW2"
+msgstr "720 x 360 DPI MW2"
+
+#: src/main/print-escp2-data.c:4129
+msgid "720 x 360 DPI MW2 Unidirectional"
+msgstr "720 x 360 DPI MW2 однонаправлений"
+
+#: src/main/print-escp2-data.c:4136
+msgid "720 DPI Full Overlap"
+msgstr "720 DPI повне перекриваннÑ"
+
+#: src/main/print-escp2-data.c:4138
+msgid "720 DPI Full Overlap Unidirectional"
+msgstr "720 DPI повне Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ð¹"
+
+#: src/main/print-escp2-data.c:4140
+msgid "720 DPI Four Pass"
+msgstr "720 DPI чотирипрохідний"
+
+#: src/main/print-escp2-data.c:4142
+msgid "720 DPI Four Pass Unidirectional"
+msgstr "720 DPI чотирипрохідний однонаправлений"
+
+#: src/main/print-escp2-data.c:4149
+msgid "1440 x 720 DPI FOL"
+msgstr "1440 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4151
+msgid "1440 x 720 DPI FOL Unidirectional"
+msgstr "1440 x 720 DPI FOL однонаправлений"
+
+#: src/main/print-escp2-data.c:4153
+msgid "1440 x 720 DPI Four Pass"
+msgstr "1440 x 720 DPI чотирипрохідний"
+
+#: src/main/print-escp2-data.c:4155
+msgid "1440 x 720 DPI Four Pass Unidirectional"
+msgstr "1440 x 720 DPI чотирипрохідний однонаправлений"
+
+#: src/main/print-escp2-data.c:4158
+msgid "2880 x 720 DPI Interleave"
+msgstr "2880 x 720 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:4160
+msgid "2880 x 720 DPI Interleave Unidirectional"
+msgstr "2880 x 720 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:4162
+msgid "2880 x 720 DPI FOL"
+msgstr "2880 x 720 DPI FOL"
+
+#: src/main/print-escp2-data.c:4164
+msgid "2880 x 720 DPI FOL Unidirectional"
+msgstr "2880 x 720 DPI FOL однонаправлений"
+
+#: src/main/print-escp2-data.c:4166
+msgid "2880 x 720 DPI Four Pass"
+msgstr "2880 x 720 DPI чотирипрохідний"
+
+#: src/main/print-escp2-data.c:4168
+msgid "2880 x 720 DPI Four Pass Unidirectional"
+msgstr "2880 x 720 DPI чотирипрохідний однонаправлений"
+
+#: src/main/print-escp2-data.c:4171
+msgid "1440 x 1440 DPI Interleave"
+msgstr "1440 x 1440 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:4173
+msgid "1440 x 1440 DPI Interleave Unidirectional"
+msgstr "1440 x 1440 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:4175
+msgid "1440 x 1440 DPI FOL"
+msgstr "1440 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4177
+msgid "1440 x 1440 DPI FOL Unidirectional"
+msgstr "1440 x 1440 DPI FOL однонаправлений"
+
+#: src/main/print-escp2-data.c:4179
+msgid "1440 x 1440 DPI Four Pass"
+msgstr "1440 x 1440 DPI чотирипрохідний"
+
+#: src/main/print-escp2-data.c:4181
+msgid "1440 x 1440 DPI Four Pass Unidirectional"
+msgstr "1440 x 1440 DPI чотирипрохідний однонаправлений"
+
+#: src/main/print-escp2-data.c:4184
+msgid "2880 x 1440 DPI Interleave"
+msgstr "2880 x 1440 DPI черезрÑдковий"
+
+#: src/main/print-escp2-data.c:4186
+msgid "2880 x 1440 DPI Interleave Unidirectional"
+msgstr "2880 x 1440 DPI черезрÑдковий однонаправлений"
+
+#: src/main/print-escp2-data.c:4188
+msgid "2880 x 1440 DPI FOL"
+msgstr "2880 x 1440 DPI FOL"
+
+#: src/main/print-escp2-data.c:4190
+msgid "2880 x 1440 DPI FOL Unidirectional"
+msgstr "2880 x 1440 DPI FOL однонаправлений"
+
+#: src/main/print-escp2-data.c:4192
+msgid "2880 x 1440 DPI Four Pass"
+msgstr "2880 x 1440 DPI чотирипрохідний"
+
+#: src/main/print-escp2-data.c:4194
+msgid "2880 x 1440 DPI Four Pass Unidirectional"
+msgstr "2880 x 1440 DPI чотирипрохідний однонаправлений"
+
+#: src/gimp/gimp_main_window.c:1616 src/main/print-escp2-data.c:4204
+#: src/main/print-escp2-data.c:4230 src/main/print-escp2-data.c:4264
+#: src/main/print-pcl.c:202
+msgid "Standard"
+msgstr "Стандартний"
+
+#: src/main/print-escp2-data.c:4212 src/main/print-escp2-data.c:4272
+msgid "Roll Feed"
+msgstr "Барабанна подача"
+
+#: src/main/print-escp2-data.c:4238
+msgid "Roll Feed (cut each page)"
+msgstr "Барабанна подача (Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ñторінок)"
+
+#: src/main/print-escp2-data.c:4246
+msgid "Roll Feed (do not cut)"
+msgstr "Барабанна подача (без розрізаннÑ)"
+
+#: src/main/print-escp2-data.c:4290
+msgid "Cut Sheet Bin 1"
+msgstr "Розрізка аркушу контейнер 1"
+
+#: src/main/print-escp2-data.c:4298
+msgid "Cut Sheet Bin 2"
+msgstr "Розрізка аркушу контейнер 2"
+
+#: src/main/print-escp2-data.c:4306
+msgid "Cut Sheet Autoselect"
+msgstr "Розрізка аркушу автовибір"
+
+#: src/main/print-escp2-data.c:4314
+msgid "Manual Selection"
+msgstr "Ручний вибір"
+
+#. name hres vres softw v_pass overs unidir resid
+#: src/main/print-lexmark.c:622 src/main/print-lexmark.c:708
+msgid "300 DPI x 600 DPI"
+msgstr "300 DPI x 600 DPI"
+
+#: src/main/print-lexmark.c:623 src/main/print-lexmark.c:709
+msgid "600 DPI"
+msgstr "600 DPI"
+
+#: src/main/print-lexmark.c:624 src/main/print-lexmark.c:710
+msgid "600 DPI high quality"
+msgstr "600 DPI виÑокої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-lexmark.c:625 src/main/print-lexmark.c:711
+msgid "600 DPI Unidirectional"
+msgstr "600 DPI однонаправлений"
+
+#: src/main/print-lexmark.c:626 src/main/print-lexmark.c:712
+msgid "1200 DPI"
+msgstr "1200 DPI"
+
+#: src/main/print-lexmark.c:627 src/main/print-lexmark.c:713
+msgid "1200 DPI high quality"
+msgstr "1200 DPI виÑокої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-lexmark.c:628 src/main/print-lexmark.c:714
+msgid "1200 DPI highest quality"
+msgstr "1200 DPI вищої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-lexmark.c:629 src/main/print-lexmark.c:715
+msgid "1200 DPI Unidirectional"
+msgstr "1200 DPI однонаправлений"
+
+#: src/main/print-lexmark.c:630
+msgid "2400 DPI x 1200 DPI"
+msgstr "2400 DPI x 1200 DPI"
+
+#: src/main/print-lexmark.c:631
+msgid "2400 DPI x 1200 DPI high quality"
+msgstr "2400 DPI x 1200 DPI виÑокої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-lexmark.c:632
+msgid "2400 DPI x 1200 DPI highest quality"
+msgstr "2400 DPI x 1200 DPI вищої ÑкоÑÑ‚Ñ–"
+
+#: src/main/print-lexmark.c:634
+msgid "test print"
+msgstr "пробний друк"
+
+#: src/main/print-pcl.c:157
+msgid "Plain"
+msgstr "ПроÑтий"
+
+#: src/main/print-pcl.c:158
+msgid "Bond"
+msgstr "З'єднаний"
+
+#: src/main/print-pcl.c:159
+msgid "Premium"
+msgstr "Преміум"
+
+#: src/main/print-pcl.c:160
+msgid "Glossy Photo"
+msgstr "ГлÑнцевий фото"
+
+#: src/main/print-pcl.c:161
+msgid "Transparency"
+msgstr "Прозора плівка"
+
+#: src/main/print-pcl.c:162
+msgid "Quick-dry Photo"
+msgstr "Фото швидкого виÑиханнÑ"
+
+#: src/main/print-pcl.c:163
+msgid "Quick-dry Transparency"
+msgstr "Прозора плівка швидкого виÑиханнÑ"
+
+#: src/main/print-pcl.c:203 src/main/print-util.c:557
+msgid "Manual"
+msgstr "Довідник"
+
+#. {"Envelope", PCL_PAPERSOURCE_ENVELOPE},
+#: src/main/print-pcl.c:205
+msgid "Tray 1"
+msgstr "Лоток 1"
+
+#: src/main/print-pcl.c:206 src/main/print-pcl.c:212
+msgid "Tray 2"
+msgstr "Лоток 2"
+
+#: src/main/print-pcl.c:207
+msgid "Tray 3"
+msgstr "Лоток 3"
+
+#: src/main/print-pcl.c:208
+msgid "Tray 4"
+msgstr "Лоток 4"
+
+#: src/main/print-pcl.c:209
+msgid "Portable Sheet Feeder"
+msgstr "Портативна подача аркушів"
+
+#: src/main/print-pcl.c:210
+msgid "Desktop Sheet Feeder"
+msgstr "ÐаÑтільна подача аркушів"
+
+#: src/main/print-pcl.c:211
+msgid "Tray"
+msgstr "Лоток"
+
+#: src/main/print-pcl.c:213
+msgid "Optional Source"
+msgstr "Ðеобов'Ñзкове джерело"
+
+#: src/main/print-pcl.c:214
+msgid "Autoselect"
+msgstr "Ðвтовибір"
+
+#: src/main/print-pcl.c:228
+msgid "150x150 DPI"
+msgstr "150x150 DPI"
+
+#: src/main/print-pcl.c:229
+msgid "300x300 DPI"
+msgstr "300x300 DPI"
+
+#: src/main/print-pcl.c:230
+msgid "600x300 DPI"
+msgstr "600x300 DPI"
+
+#: src/main/print-pcl.c:231
+msgid "600x600 DPI monochrome"
+msgstr "600x600 DPI монохромний"
+
+#: src/main/print-pcl.c:232
+msgid "600x600 DPI"
+msgstr "600x600 DPI"
+
+#: src/main/print-pcl.c:233
+msgid "1200x600 DPI"
+msgstr "1200x600 DPI"
+
+#: src/main/print-pcl.c:234
+msgid "2400x600 DPI"
+msgstr "2400x600 DPI"
+
+#: src/main/print-pcl.c:1763
+msgid "Color + Black Cartridges"
+msgstr "Кольоровий + Чорний картриджі"
+
+#: src/main/print-pcl.c:1764
+msgid "Color + Photo Cartridges"
+msgstr "Кольоровий + Фото картриджі"
+
+#. Name of file or command to print to
+#: src/main/print-util.c:127 src/main/print-util.c:163
+#: src/main/print-util.c:199
+msgid "ps2"
+msgstr "ps2"
+
+#. Common imperial page sizes
+#: src/main/print-util.c:533
+msgid "Letter"
+msgstr "Letter"
+
+#. 8.5in x 11in
+#: src/main/print-util.c:535
+msgid "Legal"
+msgstr "Legal"
+
+#. 8.5in x 14in
+#: src/main/print-util.c:537
+msgid "Tabloid"
+msgstr "Tabloid"
+
+#. 11in x 17in
+#: src/main/print-util.c:539
+msgid "Executive"
+msgstr "Executive"
+
+#. 100mm x 147mm
+#: src/main/print-util.c:543
+msgid "3x5"
+msgstr "3x5"
+
+#: src/main/print-util.c:545
+msgid "4x6"
+msgstr "4x6"
+
+#: src/main/print-util.c:547
+msgid "Epson 4x6 Photo Paper"
+msgstr "Epson 4x6 фото папір"
+
+#: src/main/print-util.c:549
+msgid "5x7"
+msgstr "5x7"
+
+#: src/main/print-util.c:551
+msgid "5x8"
+msgstr "5x8"
+
+#: src/main/print-util.c:553
+msgid "6x8"
+msgstr "6x8"
+
+#: src/main/print-util.c:555
+msgid "8x10"
+msgstr "8x10"
+
+#. 5.5in x 8.5in
+#: src/main/print-util.c:559
+msgid "12x18"
+msgstr "12x18"
+
+#: src/main/print-util.c:561
+msgid "Super B 13x19"
+msgstr "Супер B 13x19"
+
+#: src/main/print-util.c:563
+msgid "Engineering C 17x22"
+msgstr "Інженерний C 17x22"
+
+#. Other common photographic paper sizes
+#: src/main/print-util.c:567
+msgid "8x12"
+msgstr "8x12"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:569
+msgid "11x14"
+msgstr "11x14"
+
+#: src/main/print-util.c:571
+msgid "16x20"
+msgstr "16x20"
+
+#: src/main/print-util.c:573
+msgid "16x24"
+msgstr "16x24"
+
+#. 20x24 for 35 mm
+#: src/main/print-util.c:575
+msgid "20x24"
+msgstr "20x24"
+
+#: src/main/print-util.c:577
+msgid "20x30"
+msgstr "20x30"
+
+#. 24x30 for 35 mm
+#: src/main/print-util.c:579
+msgid "22x30"
+msgstr "22x30"
+
+#. Common watercolor paper
+#: src/main/print-util.c:581
+msgid "24x30"
+msgstr "24x30"
+
+#: src/main/print-util.c:583
+msgid "24x36"
+msgstr "24x36"
+
+#. Sometimes used for 35 mm
+#: src/main/print-util.c:585
+msgid "30x40"
+msgstr "30x40"
+
+#. International Paper Sizes (mostly taken from BS4000:1968)
+#.
+#. * "A" series: Paper and boards, trimmed sizes
+#. *
+#. * "A" sizes are in the ratio 1 : sqrt(2). A0 has a total area
+#. * of 1 square metre. Everything is rounded to the nearest
+#. * millimetre. Thus, A0 is 841mm x 1189mm. Every other A
+#. * size is obtained by doubling or halving another A size.
+#.
+#: src/main/print-util.c:598
+msgid "4A"
+msgstr "4A"
+
+#. 1682mm x 2378mm
+#: src/main/print-util.c:600
+msgid "2A"
+msgstr "2A"
+
+#. 1189mm x 1682mm
+#: src/main/print-util.c:602
+msgid "Super A0"
+msgstr "Супер A0"
+
+#. 914mm x 1292mm
+#: src/main/print-util.c:604
+msgid "A0"
+msgstr "A0"
+
+#. 841mm x 1189mm
+#: src/main/print-util.c:606
+msgid "A1"
+msgstr "A1"
+
+#. 594mm x 841mm
+#: src/main/print-util.c:608
+msgid "A2"
+msgstr "A2"
+
+#. 420mm x 594mm
+#: src/main/print-util.c:610
+msgid "A3"
+msgstr "A3"
+
+#. 297mm x 420mm
+#: src/main/print-util.c:612
+msgid "A4"
+msgstr "A4"
+
+#. 210mm x 297mm
+#: src/main/print-util.c:614
+msgid "A5"
+msgstr "A5"
+
+#. 148mm x 210mm
+#: src/main/print-util.c:616
+msgid "A6"
+msgstr "A6"
+
+#. 105mm x 148mm
+#: src/main/print-util.c:618
+msgid "A7"
+msgstr "A7"
+
+#. 74mm x 105mm
+#: src/main/print-util.c:620
+msgid "A8"
+msgstr "A8"
+
+#. 52mm x 74mm
+#: src/main/print-util.c:622
+msgid "A9"
+msgstr "A9"
+
+#. 37mm x 52mm
+#: src/main/print-util.c:624
+msgid "A10"
+msgstr "A10"
+
+#. 26mm x 37mm
+#.
+#. * Stock sizes for normal trims.
+#. * Allowance for trim is 3 millimetres.
+#.
+#: src/main/print-util.c:631
+msgid "RA0"
+msgstr "RA0"
+
+#. 860mm x 1220mm
+#: src/main/print-util.c:633
+msgid "RA1"
+msgstr "RA1"
+
+#. 610mm x 860mm
+#: src/main/print-util.c:635
+msgid "RA2"
+msgstr "RA2"
+
+#. 430mm x 610mm
+#: src/main/print-util.c:637
+msgid "RA3"
+msgstr "RA3"
+
+#. 305mm x 430mm
+#: src/main/print-util.c:639
+msgid "RA4"
+msgstr "RA4"
+
+#. 215mm x 305mm
+#.
+#. * Stock sizes for bled work or extra trims.
+#.
+#: src/main/print-util.c:645
+msgid "SRA0"
+msgstr "SRA0"
+
+#. 900mm x 1280mm
+#: src/main/print-util.c:647
+msgid "SRA1"
+msgstr "SRA1"
+
+#. 640mm x 900mm
+#: src/main/print-util.c:649
+msgid "SRA2"
+msgstr "SRA2"
+
+#. 450mm x 640mm
+#: src/main/print-util.c:651
+msgid "SRA3"
+msgstr "SRA3"
+
+#. 320mm x 450mm
+#: src/main/print-util.c:653
+msgid "SRA4"
+msgstr "SRA4"
+
+#. 225mm x 320mm
+#.
+#. * "B" series: Posters, wall charts and similar items.
+#.
+#: src/main/print-util.c:659
+msgid "4B ISO"
+msgstr "4B ISO"
+
+#. 2000mm x 2828mm
+#: src/main/print-util.c:661
+msgid "2B ISO"
+msgstr "2B ISO"
+
+#. 1414mm x 2000mm
+#: src/main/print-util.c:663
+msgid "B0 ISO"
+msgstr "B0 ISO"
+
+#. 1000mm x 1414mm
+#: src/main/print-util.c:665
+msgid "B1 ISO"
+msgstr "B1 ISO"
+
+#. 707mm x 1000mm
+#: src/main/print-util.c:667
+msgid "B2 ISO"
+msgstr "B2 ISO"
+
+#. 500mm x 707mm
+#: src/main/print-util.c:669
+msgid "B3 ISO"
+msgstr "B3 ISO"
+
+#. 353mm x 500mm
+#: src/main/print-util.c:671
+msgid "B4 ISO"
+msgstr "B4 ISO"
+
+#. 250mm x 353mm
+#: src/main/print-util.c:673
+msgid "B5 ISO"
+msgstr "B5 ISO"
+
+#. 176mm x 250mm
+#: src/main/print-util.c:675
+msgid "B6 ISO"
+msgstr "B6 ISO"
+
+#. 125mm x 176mm
+#: src/main/print-util.c:677
+msgid "B7 ISO"
+msgstr "B7 ISO"
+
+#. 88mm x 125mm
+#: src/main/print-util.c:679
+msgid "B8 ISO"
+msgstr "B8 ISO"
+
+#. 62mm x 88mm
+#: src/main/print-util.c:681
+msgid "B9 ISO"
+msgstr "B9 ISO"
+
+#. 44mm x 62mm
+#: src/main/print-util.c:683
+msgid "B10 ISO"
+msgstr "B10 ISO"
+
+#. 31mm x 44mm
+#: src/main/print-util.c:686
+msgid "Super B0 JIS"
+msgstr "Super B0 JIS"
+
+#: src/main/print-util.c:688
+msgid "B0 JIS"
+msgstr "B0 JIS"
+
+#: src/main/print-util.c:690
+msgid "B1 JIS"
+msgstr "B1 JIS"
+
+#: src/main/print-util.c:692
+msgid "B2 JIS"
+msgstr "B2 JIS"
+
+#: src/main/print-util.c:694
+msgid "B3 JIS"
+msgstr "B3 JIS"
+
+#: src/main/print-util.c:696
+msgid "B4 JIS"
+msgstr "B4 JIS"
+
+#: src/main/print-util.c:698
+msgid "B5 JIS"
+msgstr "B5 JIS"
+
+#: src/main/print-util.c:700
+msgid "B6 JIS"
+msgstr "B6 JIS"
+
+#: src/main/print-util.c:702
+msgid "B7 JIS"
+msgstr "B7 JIS"
+
+#: src/main/print-util.c:704
+msgid "B8 JIS"
+msgstr "B8 JIS"
+
+#: src/main/print-util.c:706
+msgid "B9 JIS"
+msgstr "B9 JIS"
+
+#: src/main/print-util.c:708
+msgid "B10 JIS"
+msgstr "B10 JIS"
+
+#.
+#. * "C" series: Envelopes or folders suitable for A size stationery.
+#.
+#: src/main/print-util.c:714
+msgid "C0"
+msgstr "C0"
+
+#. 917mm x 1297mm
+#: src/main/print-util.c:716
+msgid "C1"
+msgstr "C1"
+
+#. 648mm x 917mm
+#: src/main/print-util.c:718
+msgid "C2"
+msgstr "C2"
+
+#. 458mm x 648mm
+#: src/main/print-util.c:720
+msgid "C3"
+msgstr "C3"
+
+#. 324mm x 458mm
+#: src/main/print-util.c:722
+msgid "C4"
+msgstr "C4"
+
+#. 229mm x 324mm
+#: src/main/print-util.c:724
+msgid "C5"
+msgstr "C5"
+
+#. 162mm x 229mm
+#: src/main/print-util.c:726
+msgid "B6-C4"
+msgstr "B6-C4"
+
+#. 125mm x 324mm
+#: src/main/print-util.c:728
+msgid "C6"
+msgstr "C6"
+
+#. 114mm x 162mm
+#: src/main/print-util.c:730
+msgid "DL"
+msgstr "DL"
+
+#. 110mm x 220mm
+#: src/main/print-util.c:732
+msgid "C7-6"
+msgstr "C7-6"
+
+#. 81mm x 162mm
+#: src/main/print-util.c:734
+msgid "C7"
+msgstr "C7"
+
+#. 81mm x 114mm
+#: src/main/print-util.c:736
+msgid "C8"
+msgstr "C8"
+
+#. 57mm x 81mm
+#: src/main/print-util.c:738
+msgid "C9"
+msgstr "C9"
+
+#. 40mm x 57mm
+#: src/main/print-util.c:740
+msgid "C10"
+msgstr "C10"
+
+#. 28mm x 40mm
+#.
+#. * US CAD standard paper sizes
+#.
+#: src/main/print-util.c:746
+msgid "ArchA"
+msgstr "ArchA"
+
+#: src/main/print-util.c:748
+msgid "ArchA Transverse"
+msgstr "ArchA поперечний"
+
+#: src/main/print-util.c:750
+msgid "ArchB"
+msgstr "ArchB"
+
+#: src/main/print-util.c:752
+msgid "ArchB Transverse"
+msgstr "ArchB поперечний"
+
+#: src/main/print-util.c:754
+msgid "ArchC"
+msgstr "ArchC"
+
+#: src/main/print-util.c:756
+msgid "ArchC Transverse"
+msgstr "ArchC поперечний"
+
+#: src/main/print-util.c:758
+msgid "ArchD"
+msgstr "ArchD"
+
+#: src/main/print-util.c:760
+msgid "ArchD Transverse"
+msgstr "ArchD поперечний"
+
+#: src/main/print-util.c:762
+msgid "ArchE"
+msgstr "ArchE"
+
+#: src/main/print-util.c:764
+msgid "ArchE Transverse"
+msgstr "ArchE поперечний"
+
+#.
+#. * Foolscap
+#.
+#: src/main/print-util.c:770
+msgid "American foolscap"
+msgstr "ÐмериканÑький foolscap"
+
+#. American foolscap
+#: src/main/print-util.c:772
+msgid "European foolscap"
+msgstr "ЄвропейÑький foolscap"
+
+#. European foolscap
+#.
+#. * Sizes for book production
+#. * The BPIF and the Publishers Association jointly recommend ten
+#. * standard metric sizes for case-bound titles as follows:
+#.
+#: src/main/print-util.c:780
+msgid "Crown Quarto"
+msgstr "Crown Quarto"
+
+#. 189mm x 246mm
+#: src/main/print-util.c:782
+msgid "Large Crown Quarto"
+msgstr "Large Crown Quarto"
+
+#. 201mm x 258mm
+#: src/main/print-util.c:784
+msgid "Demy Quarto"
+msgstr "Demy Quarto"
+
+#. 219mm x 276mm
+#: src/main/print-util.c:786
+msgid "Royal Quarto"
+msgstr "Royal Quarto"
+
+#. 237mm x 312mm
+#. { "ISO A4", 595,
+#. 841, PAPERSIZE_METRIC, 0, 0, 0, 0 }, 210mm x 297mm
+#: src/main/print-util.c:790
+msgid "Crown Octavo"
+msgstr "Crown Octavo"
+
+#. 123mm x 186mm
+#: src/main/print-util.c:792
+msgid "Large Crown Octavo"
+msgstr "Large Crown Octavo"
+
+#. 129mm x 198mm
+#: src/main/print-util.c:794
+msgid "Demy Octavo"
+msgstr "Demy Octavo"
+
+#. 138mm x 216mm
+#: src/main/print-util.c:796
+msgid "Royal Octavo"
+msgstr "Royal Octavo"
+
+#. 156mm x 234mm
+#. { N_ ("ISO A5"), 419,
+#. 595, 0, 0, 0, 0, PAPERSIZE_METRIC }, 148mm x 210mm
+#. Paperback sizes in common usage
+#: src/main/print-util.c:802
+msgid "Small paperback"
+msgstr "Маленька книжкова обгортка"
+
+#. 111mm x 178mm
+#: src/main/print-util.c:804
+msgid "Penguin small paperback"
+msgstr "Penguin маленька книжкова обгортка"
+
+#. 111mm x 181mm
+#: src/main/print-util.c:806
+msgid "Penguin large paperback"
+msgstr "Penguin велика книжкова обгортка"
+
+#. 129mm x 198mm
+#. Miscellaneous sizes
+#: src/main/print-util.c:810
+msgid "10cm x 15cm"
+msgstr "10Ñм x 15Ñм"
+
+#. 100 x 150 mm
+#: src/main/print-util.c:812
+msgid "Hagaki Card"
+msgstr "Картка Hagaki"
+
+#. 100 x 148 mm
+#: src/main/print-util.c:814
+msgid "Oufuku Card"
+msgstr "Картка Oufuku"
+
+#. 148 x 200 mm
+#: src/main/print-util.c:816
+msgid "Japanese long envelope #3"
+msgstr "ЯпонÑький довгий конверт â„–3"
+
+#. Japanese long envelope #3
+#: src/main/print-util.c:818
+msgid "Japanese long envelope #4"
+msgstr "ЯпонÑький довгий конверт â„–4"
+
+#. Japanese long envelope #4
+#: src/main/print-util.c:820
+msgid "Japanese Kaku envelope #4"
+msgstr "ЯпонÑький Kaku конверт â„–4"
+
+#. Japanese Kaku envelope #4
+#: src/main/print-util.c:822
+msgid "Commercial 10"
+msgstr "Commercial 10"
+
+#. US Commercial 10 env
+#: src/main/print-util.c:824
+msgid "A2 Invitation"
+msgstr "A2 Invitation"
+
+#. US A2 invitation
+#: src/main/print-util.c:826
+msgid "Monarch Envelope"
+msgstr "КоролівÑький конверт"
+
+#. Monarch envelope (3.875 * 7.5)
+#: src/main/print-util.c:828
+msgid "Custom"
+msgstr "ВлаÑний"
+
+#: src/main/print-util.c:831
+msgid "89 mm Roll Paper"
+msgstr "89 мм рулон паперу"
+
+#: src/main/print-util.c:833
+msgid "4 Inch Roll Paper"
+msgstr "4-дюймовий рулон паперу"
+
+#: src/main/print-util.c:835
+msgid "5 Inch Roll Paper"
+msgstr "5-дюймовий рулон паперу"
+
+#: src/main/print-util.c:837
+msgid "210 mm Roll Paper"
+msgstr "210 мм рулон паперу"
+
+#: src/main/print-util.c:839
+msgid "13 Inch Roll Paper"
+msgstr "13-дюймовий рулон паперу"
+
+#: src/main/print-util.c:841
+msgid "22 Inch Roll Paper"
+msgstr "22-дюймовий рулон паперу"
+
+#: src/main/print-util.c:843
+msgid "24 Inch Roll Paper"
+msgstr "24-дюймовий рулон паперу"
+
+#: src/main/print-util.c:845
+msgid "36 Inch Roll Paper"
+msgstr "36-дюймовий рулон паперу"
+
+#: src/main/print-util.c:847
+msgid "44 Inch Roll Paper"
+msgstr "44-дюймовий рулон паперу"
+
+#: src/main/print-util.c:1328 src/main/print-util.c:1337
+#, c-format
+msgid "%s is not a valid parameter of type %s\n"
+msgstr "%s не є правильним параметром типу %s\n"
+
+#: src/main/print-util.c:1353
+#, c-format
+msgid "%s out of range (value %f, min %f, max %f)\n"
+msgstr "%s поза діапазоном (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %f, мінімум %f, макÑимум %f)\n"
+
+#: src/main/print-util.c:1368
+#, c-format
+msgid "%s out of range (value %d, min %d, max %d)\n"
+msgstr "%s позі діапазоном (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %d, мінімум %d, макÑимум %d)\n"
+
+#: src/main/print-util.c:1394
+msgid "Printer does not support color output\n"
+msgstr "Принтер не підтримує кольоровий вивід\n"
+
+#: src/main/print-util.c:1412
+msgid "Image size is not valid\n"
+msgstr "Ðеправильний розмір зображеннÑ\n"
+
+#: src/main/print-util.c:1419
+msgid "Top margin must not be less than zero\n"
+msgstr "Верхнє поле не повинно бути менше нулÑ\n"
+
+#: src/main/print-util.c:1425
+msgid "Left margin must not be less than zero\n"
+msgstr "Ліве поле не повинно бути менше нулÑ\n"
+
+#: src/main/print-util.c:1482
+#, c-format
+msgid "%s is not a valid dither algorithm\n"
+msgstr "%s не Ñ” правильним алгоритмом змішуваннÑ\n"
+
+#. Specify language of PPD translation
+#. Translators: Specify the language of the PPD translation.
+#. * Use the English name of your language here, e.g. "Swedish" instead of
+#. * "Svenska".
+#.
+#: src/cups/genppd.c:519
+msgid "English"
+msgstr "Ukrainian"
+
+#. Specify PPD translation encoding e.g. ISOLatin1
+#: src/cups/genppd.c:521
+msgid "ISOLatin1"
+msgstr "UTF-8"
+
+#: src/cups/genppd.c:777
+msgid "Media Type"
+msgstr "Тип ноÑÑ–Ñ"
+
+#: src/cups/genppd.c:803
+msgid "Media Source"
+msgstr "Подача ноÑÑ–Ñ"
+
+#: src/cups/genppd.c:827
+msgid "Resolution"
+msgstr "Роздільна здатніÑÑ‚ÑŒ"
+
+#: src/cups/genppd.c:862
+msgid "GIMP-print"
+msgstr "GIMP-print"
+
+#.
+#. * Image types...
+#.
+#: src/cups/genppd.c:869
+msgid "Image Type"
+msgstr "Тип зображеннÑ"
+
+#: src/cups/genppd.c:874 src/gimp/gimp_main_window.c:1314
+msgid "Line Art"
+msgstr "Малюнок лініÑми"
+
+#: src/cups/genppd.c:876 src/gimp/gimp_main_window.c:1328
+msgid "Solid Colors"
+msgstr "Суцільні кольори"
+
+#: src/cups/genppd.c:878 src/gimp/gimp_main_window.c:1343
+msgid "Photograph"
+msgstr "ФотографіÑ"
+
+#.
+#. * Dithering algorithms...
+#.
+#: src/cups/genppd.c:886
+msgid "Dither Algorithm"
+msgstr "Ðлгоритм змішуваннÑ"
+
+#: src/cups/genppd.c:905
+msgid "Ink Type"
+msgstr "Тип чорнил"
+
+#: src/escputil/escputil.c:66
+msgid "Escputil version "
+msgstr "Escputil верÑÑ–Ñ— "
+
+#: src/escputil/escputil.c:67
+msgid ""
+", Copyright (C) 2000-2001 Robert Krawitz\n"
+"Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; type 'escputil -l' for details.\n"
+msgstr ""
+", ÐвторÑьке право (C) 2000-2001 Robert Krawitz\n"
+"Escputil поÑтачаєтьÑÑ Ð‘Ð•Ð— БУДЬ-ЯКОЇ ГÐРÐÐТІЇ; Ð´Ð»Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½Ñ–ÑˆÐ¾Ñ— інформації "
+"запуÑÑ‚Ñ–Ñ‚ÑŒ 'escputil -l'\n"
+"Це - вільна програмна, Ñ—Ñ— розповÑÑŽÐ´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ñ‚Ð°Ñ”Ñ‚ÑŒÑÑ, при дотриманні\n"
+"певних умов, Ñкі можна переглÑнути запуÑтивши 'escputil -l'.\n"
+
+#: src/escputil/escputil.c:72
+msgid ""
+"Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify it\n"
+"under the terms of the GNU General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License, or (at your option)\n"
+"any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
+"or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n"
+"for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+msgstr ""
+"ÐвторÑьке право 2000 Robert Krawitz (rlk@alum.mit.edu)\n"
+"\n"
+"Ð¦Ñ - вільна програма; можете розповÑюджувати чи/та змінювати Ñ—Ñ—\n"
+"на умовах ліцензії GNU General Public License опублікованої Free\n"
+"Software Foundation; верÑÑ–Ñ— 2 цієї ліцензії, або (за вашим бажаннÑм)\n"
+"будь-Ñкої пізнішої верÑÑ–Ñ—.\n"
+"\n"
+"Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° розповÑюджуєтьÑÑ Ð· надією, що вона буде кориÑною, але\n"
+"БЕЗ БУДЬ-ЯКОЇ ГÐРÐÐІЇ; навіть без неÑвної гарантії КОМЕРЦІЙÐОЇ ПРИДÐТÐОСТІ\n"
+"або ПРИДÐТÐОСТІ ДЛЯ ПЕВÐОЇ МЕТИ. Докладніще про це читайте у\n"
+"GNU General Public License.\n"
+"\n"
+"З цією програмою ви повинні були отримати копію GNU General Public License;\n"
+"Ñкщо це не так, напишіть до Free Software\n"
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: src/escputil/escputil.c:112
+msgid ""
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c|--clean-head Clean the print head.\n"
+" -n|--nozzle-check Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a|--align-head Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o|--align-color Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result "
+"in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s|--status Retrieve printer status.\n"
+" -i|--ink-level Obtain the ink level from the printer. This "
+"requires\n"
+" read/write access to the raw printer device.\n"
+" -d|--identify Query the printer for make and model information.\n"
+" This requires read/write access to the raw printer\n"
+" device.\n"
+" -l|--license Display the license/warranty terms of this program.\n"
+" -M|--list-models List the available printer models.\n"
+" -h|--help Print this help message.\n"
+" Options:\n"
+" -P|--printer-name Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r|--raw-device Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u|--new The printer is a new printer (Stylus Color 740 or\n"
+" newer).\n"
+" -q|--quiet Suppress the banner.\n"
+" -m|--model Specify the precise printer model for head "
+"alignment.\n"
+msgstr ""
+"ВикориÑтаннÑ: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P принтер | -r приÑтрій] [-u] [-q] [-m модель]\n"
+"ОбÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ñ–Ð² EPSON Stylus (R).\n"
+"Приклади: escputil --clean-head --printer stpex-on-third-floor\n"
+" escputil --ink-level --new --raw-device /dev/lp0\n"
+"\n"
+" Команди:\n"
+" -c|--clean-head ОчиÑтка головок принтера.\n"
+" -n|--nozzle-check Друк шаблонів перевірки Ñопла.\n"
+" Брудні чи забиті Ñопла призводÑÑ‚ÑŒ до дірок у\n"
+" шаблоні. Якщо ви бачите пропуÑки, Ñлід прочиÑтити\n"
+" головки принтера.\n"
+" -a|--align-head ÐšÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº принтера. УВÐГÐ: Ðеправильне\n"
+" викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— програми може Ñпричинити "
+"погіршеннÑ\n"
+" ÑкоÑÑ‚Ñ– друку та/чи пошкодити принтер.\n"
+" -o|--align-color ÐšÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ð¾Ð²Ð¸Ñ… головок (Лише Stylus Color "
+"480\n"
+" та 580). УВÐГÐ: Ðеправильне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— "
+"програми\n"
+" може Ñпричинити Ð¿Ð¾Ð³Ñ–Ñ€ÑˆÐµÐ½Ð½Ñ ÑкоÑÑ‚Ñ– друку та/чи\n"
+" пошкодити принтер.\n"
+" -s|--status ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑтатуÑу принтера.\n"
+" -i|--ink-level ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€Ñ–Ð²Ð½Ñ Ñ‡Ð¾Ñ€Ð½Ð¸Ð» у принтері. Вимагає\n"
+" доÑтупу на читаннÑ/Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ raw-приÑтрою принтера.\n"
+" -d|--identify ÐžÐ¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð° про виробника та модель. Вимагає\n"
+" доÑтупу на читаннÑ/Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ raw-приÑтрою принтера.\n"
+" -l|--license Відображає ліцензійні/гарантійні умови програми.\n"
+" -M|--list-models Виводить перелік доÑтупних моделей принтерів.\n"
+" -h|--help Виводить це повідомленнÑ.\n"
+" Ключі:\n"
+" -P|--printer-name Вказує назву черги принтера.\n"
+" Типовою чергою Ñ” типовий ÑиÑтемний принтер.\n"
+" -r|--raw-device Вказує назву приÑтрою Ð´Ð»Ñ Ð±ÐµÐ·Ð¿Ð¾Ñереднього запиÑу,\n"
+" на відміну від доÑтупу через чергу принтера.\n"
+" -u|--new Принтер є новим принтером (Stylus Color 740 або \n"
+" новіший).\n"
+" -q|--quiet Ðе виводити рекламне повідомленнÑ.\n"
+" -m|--model Вказує точну модель принтера Ð´Ð»Ñ ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ "
+"головок.\n"
+
+#: src/escputil/escputil.c:150
+msgid ""
+"Usage: escputil [OPTIONS] [COMMAND]\n"
+"Usage: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P printer | -r device] [-u] [-q] [-m model]\n"
+"Perform maintenance on EPSON Stylus (R) printers.\n"
+"Examples: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Commands:\n"
+" -c Clean the print head.\n"
+" -n Print a nozzle test pattern.\n"
+" Dirty or clogged nozzles will show as gaps in the\n"
+" pattern. If you see any gaps, you should clean\n"
+" the print head.\n"
+" -a Align the print head. CAUTION: Misuse of this\n"
+" utility may result in poor print quality and/or\n"
+" damage to the printer.\n"
+" -o Align the color print head (Stylus Color 480 and 580\n"
+" only). CAUTION: Misuse of this utility may result in\n"
+" poor print quality and/or damage to the printer.\n"
+" -s Retrieve printer status.\n"
+" -i Obtain the ink level from the printer. This requires\n"
+" read/write access to the raw printer device.\n"
+" -d Query the printer for make and model information. This\n"
+" requires read/write access to the raw printer device.\n"
+" -l Display the license/warranty terms of this program.\n"
+" -M List the available printer models.\n"
+" -h Print this help message.\n"
+" Options:\n"
+" -P Specify the name of the printer queue to operate on.\n"
+" Default is the default system printer.\n"
+" -r Specify the name of the device to write to directly\n"
+" rather than going through a printer queue.\n"
+" -u The printer is a new printer (Stylus Color 740 or newer).\n"
+" -q Suppress the banner.\n"
+" -m Specify the precise printer model for head alignment.\n"
+msgstr ""
+"ВикориÑтаннÑ: escputil [ПÐРÐМЕТРИ] [КОМÐÐДÐ]\n"
+"ВикориÑтаннÑ: escputil [-c | -n | -a | -i | -o | -s | -d | -l | -M]\n"
+" [-P принтер | -r приÑтрій] [-u] [-q] [-m модель]\n"
+"Виконує обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ EPSON Stylus (R) принтерів.\n"
+"Приклади: escputil -c -P stpex-on-third-floor\n"
+" escputil -i -u -r /dev/lp0\n"
+"\n"
+" Команди:\n"
+" -c ОчиÑтка головок принтера.\n"
+" -n Друк шаблонів перевірки Ñопла.\n"
+" Брудні чи забиті Ñопла призводÑÑ‚ÑŒ до дірок у\n"
+" шаблоні. Якщо ви бачите пропуÑки, Ñлід прочиÑтити\n"
+" головки принтера.\n"
+" -a ÐšÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº принтера. УВÐГÐ: Ðеправильне\n"
+" викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— програми може Ñпричинити погіршеннÑ\n"
+" ÑкоÑÑ‚Ñ– друку та/чи пошкодити принтер.\n"
+" -o ÐšÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ð¾Ð²Ð¸Ñ… головок (Лише Stylus Color 480\n"
+" та 580). УВÐГÐ: Ðеправильне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— програми може\n"
+" Ñпричинити Ð¿Ð¾Ð³Ñ–Ñ€ÑˆÐµÐ½Ð½Ñ ÑкоÑÑ‚Ñ– друку та/чи пошкодити принтер.\n"
+" -s ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑтатуÑу принтера.\n"
+" -i ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€Ñ–Ð²Ð½Ñ Ñ‡Ð¾Ñ€Ð½Ð¸Ð» у принтері. Вимагає\n"
+" доÑтупу на читаннÑ/Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ raw-приÑтрою принтера.\n"
+" -d ÐžÐ¿Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð° про виробника та модель. Вимагає\n"
+" доÑтупу на читаннÑ/Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ raw-приÑтрою принтера.\n"
+" -l Відображає ліцензійні/гарантійні умови програми.\n"
+" -M Виводить перелік доÑтупних моделей принтерів.\n"
+" -h Виводить це повідомленнÑ.\n"
+" Ключі:\n"
+" -P Вказує назву черги принтера.\n"
+" Типовою чергою Ñ” типовий ÑиÑтемний принтер.\n"
+" -r Вказує назву приÑтрою Ð´Ð»Ñ Ð±ÐµÐ·Ð¿Ð¾Ñереднього запиÑу,\n"
+" на відміну від доÑтупу через чергу принтера.\n"
+" -u Принтер є новим принтером (Stylus Color 740 або новіший).\n"
+" -q Ðе виводити рекламне повідомленнÑ.\n"
+" -m Вказує точну модель принтера Ð´Ð»Ñ ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº.\n"
+
+#: src/escputil/escputil.c:201
+msgid "Stylus C20sx"
+msgstr "Stylus C20sx"
+
+#: src/escputil/escputil.c:202
+msgid "Stylus C20ux"
+msgstr "Stylus C20ux"
+
+#: src/escputil/escputil.c:203
+msgid "Stylus C40sx"
+msgstr "Stylus C40sx"
+
+#: src/escputil/escputil.c:204
+msgid "Stylus C40ux"
+msgstr "Stylus C40ux"
+
+#: src/escputil/escputil.c:205
+msgid "Stylus C41sx"
+msgstr "Stylus C41sx"
+
+#: src/escputil/escputil.c:206
+msgid "Stylus C41ux"
+msgstr "Stylus C41ux"
+
+#: src/escputil/escputil.c:207
+msgid "Stylus C42sx"
+msgstr "Stylus C42sx"
+
+#: src/escputil/escputil.c:208
+msgid "Stylus C42ux"
+msgstr "Stylus C42ux"
+
+#: src/escputil/escputil.c:209
+msgid "Stylus C43sx"
+msgstr "Stylus C43sx"
+
+#: src/escputil/escputil.c:210
+msgid "Stylus C43ux"
+msgstr "Stylus C43ux"
+
+#: src/escputil/escputil.c:211
+msgid "Stylus C44sx"
+msgstr "Stylus C44sx"
+
+#: src/escputil/escputil.c:212
+msgid "Stylus C44ux"
+msgstr "Stylus C44ux"
+
+#: src/escputil/escputil.c:213
+msgid "Stylus C50"
+msgstr "Stylus C50"
+
+#: src/escputil/escputil.c:214
+msgid "Stylus C60"
+msgstr "Stylus C60"
+
+#: src/escputil/escputil.c:215
+msgid "Stylus C61"
+msgstr "Stylus C61"
+
+#: src/escputil/escputil.c:216
+msgid "Stylus C62"
+msgstr "Stylus C62"
+
+#: src/escputil/escputil.c:217
+msgid "Stylus C63"
+msgstr "Stylus C63"
+
+#: src/escputil/escputil.c:218
+msgid "Stylus C64"
+msgstr "Stylus C64"
+
+#: src/escputil/escputil.c:219
+msgid "Stylus C70"
+msgstr "Stylus C70"
+
+#: src/escputil/escputil.c:220
+msgid "Stylus C80"
+msgstr "Stylus C80"
+
+#: src/escputil/escputil.c:221
+msgid "Stylus C82"
+msgstr "Stylus C82"
+
+#: src/escputil/escputil.c:222
+msgid "Stylus C83"
+msgstr "Stylus C83"
+
+#: src/escputil/escputil.c:223
+msgid "Stylus C84"
+msgstr "Stylus C84"
+
+#: src/escputil/escputil.c:224
+msgid "Stylus Color"
+msgstr "Stylus Color"
+
+#: src/escputil/escputil.c:225
+msgid "Stylus Color Pro"
+msgstr "Stylus Color Pro"
+
+#: src/escputil/escputil.c:226
+msgid "Stylus Color Pro XL"
+msgstr "Stylus Color Pro XL"
+
+#: src/escputil/escputil.c:227
+msgid "Stylus Color 400"
+msgstr "Stylus Color 400"
+
+#: src/escputil/escputil.c:228
+msgid "Stylus Color 440"
+msgstr "Stylus Color 440"
+
+#: src/escputil/escputil.c:229
+msgid "Stylus Color 460"
+msgstr "Stylus Color 460"
+
+#: src/escputil/escputil.c:230
+msgid "Stylus Color 480"
+msgstr "Stylus Color 480"
+
+#: src/escputil/escputil.c:231
+msgid "Stylus Color 500"
+msgstr "Stylus Color 500"
+
+#: src/escputil/escputil.c:232
+msgid "Stylus Color 580"
+msgstr "Stylus Color 580"
+
+#: src/escputil/escputil.c:233
+msgid "Stylus Color 600"
+msgstr "Stylus Color 600"
+
+#: src/escputil/escputil.c:234
+msgid "Stylus Color 640"
+msgstr "Stylus Color 640"
+
+#: src/escputil/escputil.c:235
+msgid "Stylus Color 660"
+msgstr "Stylus Color 660"
+
+#: src/escputil/escputil.c:236
+msgid "Stylus Color 670"
+msgstr "Stylus Color 670"
+
+#: src/escputil/escputil.c:237
+msgid "Stylus Color 680"
+msgstr "Stylus Color 680"
+
+#: src/escputil/escputil.c:238
+msgid "Stylus Color 740"
+msgstr "Stylus Color 740"
+
+#: src/escputil/escputil.c:239
+msgid "Stylus Color 760"
+msgstr "Stylus Color 760"
+
+#: src/escputil/escputil.c:240
+msgid "Stylus Color 777"
+msgstr "Stylus Color 777"
+
+#: src/escputil/escputil.c:241
+msgid "Stylus Color 800"
+msgstr "Stylus Color 800"
+
+#: src/escputil/escputil.c:242
+msgid "Stylus Color 850"
+msgstr "Stylus Color 850"
+
+#: src/escputil/escputil.c:243
+msgid "Stylus Color 860"
+msgstr "Stylus Color 860"
+
+#: src/escputil/escputil.c:244
+msgid "Stylus Color 880"
+msgstr "Stylus Color 880"
+
+#: src/escputil/escputil.c:245
+msgid "Stylus Color 83"
+msgstr "Stylus Color 83"
+
+#: src/escputil/escputil.c:246
+msgid "Stylus Color 900"
+msgstr "Stylus Color 900"
+
+#: src/escputil/escputil.c:247
+msgid "Stylus Color 980"
+msgstr "Stylus Color 980"
+
+#: src/escputil/escputil.c:248
+msgid "Stylus Color 1160"
+msgstr "Stylus Color 1160"
+
+#: src/escputil/escputil.c:249
+msgid "Stylus Color 1500"
+msgstr "Stylus Color 1500"
+
+#: src/escputil/escputil.c:250
+msgid "Stylus Color 1520"
+msgstr "Stylus Color 1520"
+
+#: src/escputil/escputil.c:251
+msgid "Stylus Color 3000"
+msgstr "Stylus Color 3000"
+
+#: src/escputil/escputil.c:252
+msgid "Stylus Photo"
+msgstr "Stylus Photo"
+
+#: src/escputil/escputil.c:253
+msgid "Stylus Photo 700"
+msgstr "Stylus Photo 700"
+
+#: src/escputil/escputil.c:254
+msgid "Stylus Photo EX"
+msgstr "Stylus Photo EX"
+
+#: src/escputil/escputil.c:255
+msgid "Stylus Photo 720"
+msgstr "Stylus Photo 720"
+
+#: src/escputil/escputil.c:256
+msgid "Stylus Photo 750"
+msgstr "Stylus Photo 750"
+
+#: src/escputil/escputil.c:257
+msgid "Stylus Photo 780"
+msgstr "Stylus Photo 780"
+
+#: src/escputil/escputil.c:258
+msgid "Stylus Photo 785"
+msgstr "Stylus Photo 785"
+
+#: src/escputil/escputil.c:259
+msgid "Stylus Photo 790"
+msgstr "Stylus Photo 790"
+
+#: src/escputil/escputil.c:260
+msgid "Stylus Photo 810"
+msgstr "Stylus Photo 810"
+
+#: src/escputil/escputil.c:261
+msgid "Stylus Photo 820"
+msgstr "Stylus Photo 820"
+
+#: src/escputil/escputil.c:262
+msgid "Stylus Photo 830"
+msgstr "Stylus Photo 830"
+
+#: src/escputil/escputil.c:263
+msgid "Stylus Photo 870"
+msgstr "Stylus Photo 870"
+
+#: src/escputil/escputil.c:264
+msgid "Stylus Photo 875"
+msgstr "Stylus Photo 875"
+
+#: src/escputil/escputil.c:265
+msgid "Stylus Photo 890"
+msgstr "Stylus Photo 890"
+
+#: src/escputil/escputil.c:266
+msgid "Stylus Photo 895"
+msgstr "Stylus Photo 895"
+
+#: src/escputil/escputil.c:267
+msgid "Stylus Photo 915"
+msgstr "Stylus Photo 915"
+
+#: src/escputil/escputil.c:268
+msgid "Stylus Photo 925"
+msgstr "Stylus Photo 925"
+
+#: src/escputil/escputil.c:269
+msgid "Stylus Photo 935"
+msgstr "Stylus Photo 935"
+
+#: src/escputil/escputil.c:270
+msgid "Stylus Photo 950"
+msgstr "Stylus Photo 950"
+
+#: src/escputil/escputil.c:271
+msgid "Stylus Photo 960"
+msgstr "Stylus Photo 960"
+
+#: src/escputil/escputil.c:272
+msgid "Stylus Photo 1200"
+msgstr "Stylus Photo 1200"
+
+#: src/escputil/escputil.c:273
+msgid "Stylus Photo 1270"
+msgstr "Stylus Photo 1270"
+
+#: src/escputil/escputil.c:274
+msgid "Stylus Photo 1280"
+msgstr "Stylus Photo 1280"
+
+#: src/escputil/escputil.c:275
+msgid "Stylus Photo 1290"
+msgstr "Stylus Photo 1290"
+
+#: src/escputil/escputil.c:276
+msgid "Stylus Photo 2000P"
+msgstr "Stylus Photo 2000P"
+
+#: src/escputil/escputil.c:277
+msgid "Stylus Photo 2100"
+msgstr "Stylus Photo 2100"
+
+#: src/escputil/escputil.c:278
+msgid "Stylus Photo 2200"
+msgstr "Stylus Photo 2200"
+
+#: src/escputil/escputil.c:279
+msgid "Stylus Pro 5000"
+msgstr "Stylus Pro 5000"
+
+#: src/escputil/escputil.c:280
+msgid "Stylus Pro 5500"
+msgstr "Stylus Pro 5500"
+
+#: src/escputil/escputil.c:281
+msgid "Stylus Pro 7000"
+msgstr "Stylus Pro 7000"
+
+#: src/escputil/escputil.c:282
+msgid "Stylus Pro 7500"
+msgstr "Stylus Pro 7500"
+
+#: src/escputil/escputil.c:283
+msgid "Stylus Pro 7600"
+msgstr "Stylus Pro 7600"
+
+#: src/escputil/escputil.c:284
+msgid "Stylus Pro 9000"
+msgstr "Stylus Pro 9000"
+
+#: src/escputil/escputil.c:285
+msgid "Stylus Pro 9500"
+msgstr "Stylus Pro 9500"
+
+#: src/escputil/escputil.c:286
+msgid "Stylus Pro 9600"
+msgstr "Stylus Pro 9600"
+
+#: src/escputil/escputil.c:287
+msgid "Stylus Pro 10000"
+msgstr "Stylus Pro 10000"
+
+#: src/escputil/escputil.c:288
+msgid "Stylus Scan 2000"
+msgstr "Stylus Scan 2000"
+
+#: src/escputil/escputil.c:289
+msgid "Stylus Scan 2500"
+msgstr "Stylus Scan 2500"
+
+#: src/escputil/escputil.c:290
+msgid "Stylus CX-3100"
+msgstr "Stylus CX-3100"
+
+#: src/escputil/escputil.c:291
+msgid "Stylus CX-3200"
+msgstr "Stylus CX-3200"
+
+#: src/escputil/escputil.c:292
+msgid "Stylus CX-5100"
+msgstr "Stylus CX-5100"
+
+#: src/escputil/escputil.c:293
+msgid "Stylus CX-5200"
+msgstr "Stylus CX-5200"
+
+#: src/escputil/escputil.c:294
+msgid "Stylus CX-6300"
+msgstr "Stylus CX-6300"
+
+#: src/escputil/escputil.c:295
+msgid "Stylus CX-6400"
+msgstr "Stylus CX-6400"
+
+#: src/escputil/escputil.c:296
+msgid "Stylus CX-8300"
+msgstr "Stylus CX-8300"
+
+#: src/escputil/escputil.c:297
+msgid "Stylus CX-8400"
+msgstr "Stylus CX-8400"
+
+#: src/escputil/escputil.c:384 src/escputil/escputil.c:393
+msgid "You may only specify one printer or raw device."
+msgstr "Можна вказувати або принтер або raw-приÑтрій, але не обидва."
+
+#: src/escputil/escputil.c:402
+msgid "You may only specify one printer model."
+msgstr "Модна вказувати лише одну модель принтера."
+
+#: src/escputil/escputil.c:422
+#, c-format
+msgid "Unknown option %c\n"
+msgstr "Ðевідомий параметр %c\n"
+
+#: src/escputil/escputil.c:482
+#, c-format
+msgid "Cannot open device %s: %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій %s: %s\n"
+
+#: src/escputil/escputil.c:505
+#, c-format
+msgid "Cannot print to printer %s with %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ñ‚Ð¸ на принтер %s командою %s\n"
+
+#: src/escputil/escputil.c:518 src/escputil/escputil.c:528
+msgid "Unable to send command to printer\n"
+msgstr "Ðе вдаєтьÑÑ Ð½Ð°Ð´Ñ–Ñлати команду на притер\n"
+
+#: src/escputil/escputil.c:583
+msgid "Read from printer timed out\n"
+msgstr "Вийшов Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ читанні з принтера\n"
+
+#: src/escputil/escputil.c:585
+#, c-format
+msgid "Cannot read from %s: %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ з %s: %s\n"
+
+#: src/escputil/escputil.c:638
+msgid "Cyan"
+msgstr "Бірюзовий"
+
+#: src/escputil/escputil.c:639
+msgid "Magenta"
+msgstr "Пурпурний"
+
+#: src/escputil/escputil.c:640
+msgid "Yellow"
+msgstr "Жовтий"
+
+#: src/escputil/escputil.c:641
+msgid "Light Cyan"
+msgstr "Світло-бірюзовий"
+
+#: src/escputil/escputil.c:642
+msgid "Light Magenta"
+msgstr "Світло-пурпурний"
+
+#: src/escputil/escputil.c:643
+msgid "Black/Dark Yellow"
+msgstr "Чорний/Чорно-жовтий"
+
+#: src/escputil/escputil.c:658
+msgid "Obtaining ink levels requires using a raw device.\n"
+msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€Ñ–Ð²Ð½Ñ Ñ‡Ð¾Ñ€Ð½Ð¸Ð» необхідно вказувати raw-приÑтрій.\n"
+
+#: src/escputil/escputil.c:668 src/escputil/escputil.c:743
+#: src/escputil/escputil.c:782
+#, c-format
+msgid "Cannot open %s read/write: %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ/запиÑу: %s\n"
+
+#: src/escputil/escputil.c:681 src/escputil/escputil.c:754
+#: src/escputil/escputil.c:791
+#, c-format
+msgid "Cannot write to %s: %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð¿Ð¸Ñати %s: %s\n"
+
+#: src/escputil/escputil.c:700
+msgid "Cannot parse output from printer\n"
+msgstr "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ вивід від принтера\n"
+
+#: src/escputil/escputil.c:704
+msgid "Ink color"
+msgstr "Чорнило"
+
+#: src/escputil/escputil.c:704
+msgid "Percent remaining"
+msgstr "ВідÑоток заповненнÑ"
+
+#: src/escputil/escputil.c:737
+msgid "Printer identification requires using a raw device.\n"
+msgstr "Ð”Ð»Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— принтера необхідно вказувати raw-приÑтрій.\n"
+
+#: src/escputil/escputil.c:776
+msgid "Printer status requires using a raw device.\n"
+msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñтану принтера необхідно вказувати raw-приÑтрій.\n"
+
+#: src/escputil/escputil.c:815
+msgid "Cleaning heads...\n"
+msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº...\n"
+
+#: src/escputil/escputil.c:824
+msgid "Running nozzle check, please ensure paper is in the printer.\n"
+msgstr "ЗапуÑк Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº, перевірте наÑвніÑÑ‚ÑŒ папера у принтері.\n"
+
+#: src/escputil/escputil.c:828
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d test patterns. Each pattern looks very similar.\n"
+"The patterns consist of a series of pairs of vertical lines that overlap.\n"
+"Below each pair of lines is a number between %d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical line.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"Each pattern is similar, but later patterns use finer dots for more\n"
+"critical alignment. You must run all of the passes to correctly align your\n"
+"printer. After running all the alignment passes, the alignment\n"
+"patterns will be printed once more. You should find that the middle-most\n"
+"pair (#%d out of the %d) is the best for all patterns.\n"
+"\n"
+"After the passes are printed once more, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+msgstr ""
+"Перш ніж продовжити уважно перечитайте цю інÑтрукцію.\n"
+"\n"
+"Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° дозволÑÑ” відкалібрувати головки вашого Ñтруменевого Epson Stylus\n"
+"принтера. Ðеправильне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— утиліти може призвеÑти до "
+"погіршеннÑ\n"
+"ÑкоÑÑ‚Ñ– та може пошкодити ваш принтер. КоректніÑÑ‚ÑŒ цієї утиліти не "
+"оцінювалаÑÑŒ\n"
+"Seiko Epson, та вона поÑтачаєтьÑÑ Ð±ÐµÐ· будь-Ñких гарантій. ВеÑÑŒ ризик від\n"
+"викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— утиліти лежить на ваÑ.\n"
+"\n"
+"Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° виводить %d теÑтових шаблонів. Шаблони дуже майже ідентичні.\n"
+"Шаблон ÑкладаєтьÑÑ Ð· Ñерії пар вертикальних ліній, що перекриваютьÑÑ.\n"
+"Ðижче кожної пари ліній Ñ” чиÑло у діапазоні від %d до %d.\n"
+"\n"
+"Коли ви розглÑдаєте пари ліній, ви повинні знайти пару, Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñкої\n"
+"є найкращим, тобто, вони найкраще утворюють єдину вертикальну лінію.\n"
+"Уважно розглÑньте пари, та знайдіть найкращу. РекомендуєтьÑÑ "
+"викориÑтовувати\n"
+"лупу або збільшувач. Також рекомендуєтьÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸\n"
+"ÑкіÑний папір, щоб лінії не розмазувалиÑÑŒ по паперу. ПіÑÐ»Ñ Ð²Ð¸Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ð°\n"
+"найкращої пари, вÑтавте папір знову у лоток, перш ніж друкувати на ньому.\n"
+"\n"
+"Кожен шаблон подібний до інших, але пізніші шаблони викориÑтовують кращі\n"
+"крапки Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆ точного вирівнюваннÑ. Ð”Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°\n"
+"необхідно вÑÑ– перевірки. ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… перевірок, шаблони\n"
+"Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ надруковані ще раз. Вам Ñлід перевірити, що ближча до\n"
+"Ñередини пара (#%d з %d) Ñ” найкращою Ñеред уÑÑ–Ñ… шаблонів.\n"
+"\n"
+"ПіÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº, вам буде запропонований вибір (s)зберегти результати у\n"
+"принтері, (r)повторити процеÑ, або (q)вийти без збереженнÑ. При виході\n"
+"не відбуваєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… наÑтройок, але Ñ—Ñ… можна відновити\n"
+"вимиканнÑм Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°. Якщо ви вийшли, щоб зберегти наÑтройки,\n"
+"доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ веÑÑŒ процеÑ.\n"
+"Важливо не вимикати принтер протÑгом цієї процедури.\n"
+"\n"
+
+#: src/escputil/escputil.c:863
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the print head of your Epson Stylus inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints a test pattern that consist of a series of pairs of\n"
+"vertical lines that overlap. Below each pair of lines is a number between\n"
+"%d and %d.\n"
+"\n"
+"When you inspect the pairs of lines, you should find the pair of lines that\n"
+"is best in alignment, that is, that best forms a single vertical align.\n"
+"Inspect the pairs very carefully to find the best match. Using a loupe\n"
+"or magnifying glass is recommended for the most critical inspection.\n"
+"It is also suggested that you use a good quality paper for the test,\n"
+"so that the lines are well-formed and do not spread through the paper.\n"
+"After picking the number matching the best pair, place the paper back in\n"
+"the paper input tray before typing it in.\n"
+"\n"
+"After running the alignment pattern, it will be printed once more. You\n"
+"should find that the middle-most pair (#%d out of the %d) is the best.\n"
+"You will then be offered the choices of (s)aving the result in the printer,\n"
+"(r)epeating the process, or (q)uitting without saving. Quitting will not\n"
+"restore the previous settings, but powering the printer off and back on "
+"will.\n"
+"If you quit, you must repeat the entire process if you wish to later save\n"
+"the results. It is essential that you not turn off your printer during\n"
+"this procedure.\n"
+"\n"
+msgstr ""
+"Перш ніж продовжити уважно перечитайте цю інÑтрукцію.\n"
+"\n"
+"Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° дозволÑÑ” відкалібрувати головки вашого Ñтруменевого Epson Stylus\n"
+"принтера. Ðеправильне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— утиліти може призвеÑти до "
+"погіршеннÑ\n"
+"ÑкоÑÑ‚Ñ– та може пошкодити ваш принтер. КоректніÑÑ‚ÑŒ цієї утиліти не "
+"оцінювалаÑÑŒ\n"
+"Seiko Epson, та вона поÑтачаєтьÑÑ Ð±ÐµÐ· будь-Ñких гарантій. ВеÑÑŒ ризик від\n"
+"викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— утиліти лежить на ваÑ.\n"
+"\n"
+"Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° виводить теÑтовий шаблон, що ÑкладаєтьÑÑ Ð· Ñерії пар "
+"вертикальних\n"
+"ліній, що перекриваютьÑÑ. Ðижче кожної пари ліній Ñ” чиÑло у діапазоні\n"
+"від %d до %d.\n"
+"\n"
+"Коли ви розглÑдаєте пари ліній, ви повинні знайти пару, Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñкої\n"
+"є найкращим, тобто, вони найкраще утворюють єдину вертикальну лінію.\n"
+"Уважно розглÑньте пари, та знайдіть найкращу. РекомендуєтьÑÑ "
+"викориÑтовувати\n"
+"лупу або збільшувач. Також рекомендуєтьÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸\n"
+"ÑкіÑний папір, щоб лінії не розмазувалиÑÑŒ по паперу. ПіÑÐ»Ñ Ð²Ð¸Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ð°\n"
+"найкращої пари, вÑтавте папір знову у лоток, перш ніж друкувати на ньому.\n"
+"\n"
+"ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð²ÑÑ–Ñ… перевірок, шаблони Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ надруковані ще\n"
+"раз. Вам Ñлід перевірити, що ближча до Ñередини пара (#%d з %d) Ñ” "
+"найкращою\n"
+"Ñеред уÑÑ–Ñ… шаблонів. ПіÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº, вам буде запропонований вибір\n"
+"(s)зберегти результати у принтері, (r)повторити процеÑ, або (q)вийти без\n"
+"збереженнÑ. При виході не відбуваєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… наÑтройок,\n"
+"але Ñ—Ñ… можна відновити вимиканнÑм Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°.\n"
+"Якщо ви вийшли, щоб зберегти наÑтройки, доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ веÑÑŒ процеÑ.\n"
+"Важливо не вимикати принтер протÑгом цієї процедури.\n"
+"\n"
+
+#: src/escputil/escputil.c:907
+msgid "Unable to send command to the printer, exiting.\n"
+msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ команду до принтера, Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸.\n"
+
+#: src/escputil/escputil.c:925
+msgid ""
+"Printer alignment must be done with a raw device or else\n"
+"the -m option must be used to specify a printer.\n"
+msgstr ""
+"Ð”Ð»Ñ ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð° необхідно вказувати raw-приÑтрій або\n"
+"необхідно у параметрі -m вказати модель принтера.\n"
+
+#: src/escputil/escputil.c:929
+msgid "Attempting to detect printer model..."
+msgstr "Спроба визначити модель принтера..."
+
+#: src/escputil/escputil.c:934
+#, c-format
+msgid ""
+"\n"
+"Cannot open %s read/write: %s\n"
+msgstr ""
+"\n"
+"Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ/запиÑу: %s\n"
+
+#: src/escputil/escputil.c:942
+#, c-format
+msgid ""
+"\n"
+"Cannot write to %s: %s\n"
+msgstr ""
+"\n"
+"Ðе вдаєтьÑÑ Ð·Ð°Ð¿Ð¸Ñати у %s: %s\n"
+
+#: src/escputil/escputil.c:958
+msgid ""
+"\n"
+"Cannot detect printer type.\n"
+"Please use -m to specify your printer model.\n"
+msgstr ""
+"\n"
+"Ðе вдаєтьÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ тип принтера.\n"
+"Вкажіть модель принтера у параметрі -m\n"
+
+#: src/escputil/escputil.c:975
+#, c-format
+msgid "Printer model %s is not known.\n"
+msgstr "Ðевідома модель принтера %s.\n"
+
+#: src/escputil/escputil.c:986
+msgid ""
+"Please inspect the final output very carefully to ensure that your\n"
+"printer is in proper alignment. You may now:\n"
+" (s)ave the results in the printer,\n"
+" (q)uit without saving the results, or\n"
+" (r)epeat the entire process from the beginning.\n"
+"You will then be asked to confirm your choice.\n"
+"What do you want to do (s, q, r)?\n"
+msgstr ""
+"Уважно перевірте вивід, щоб переконатиÑÑŒ що принтер\n"
+"правильно відкалібрований. Тепер можна:\n"
+" (s)зберегти результати у принтер,\n"
+" (q)вийти без Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð², або\n"
+" (r)повторити веÑÑŒ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð½Ð¾Ð²Ñƒ.\n"
+"У Ð²Ð°Ñ Ð±ÑƒÐ´Ðµ запитано Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ вибору.\n"
+"Що ви бажаєте зробити (s, q, r)?\n"
+
+#: src/escputil/escputil.c:994 src/escputil/escputil.c:1001
+#: src/escputil/escputil.c:1014 src/escputil/escputil.c:1030
+#: src/escputil/escputil.c:1097 src/escputil/escputil.c:1238
+msgid "> "
+msgstr "> "
+
+#: src/escputil/escputil.c:999
+msgid ""
+"Please confirm by typing 'q' again that you wish to quit without saving:\n"
+msgstr ""
+"Підтвердіть натиÑканнÑм 'q' знову, що ви бажаєте вийти без збереженнÑ:\n"
+
+#: src/escputil/escputil.c:1004
+msgid ""
+"OK, your printer is aligned, but the alignment has not been saved.\n"
+"If you wish to save the alignment, you must repeat this process.\n"
+msgstr ""
+"Гаразд. Ваш принтер відкалібрований, але Ñ†Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð½Ðµ була збережена.\n"
+"Якщо ви бажаєте зберегти калібруваннÑ, необхідно повторити веÑÑŒ процеÑ.\n"
+
+#: src/escputil/escputil.c:1011
+msgid ""
+"Please confirm by typing 'r' again that you wish to repeat the\n"
+"alignment process:\n"
+msgstr ""
+"Підтвердіть натиÑканнÑм 'r' знову, що ви бажаєте повторити процеÑ\n"
+"калібруваннÑ:\n"
+
+#: src/escputil/escputil.c:1017
+msgid "Repeating the alignment process.\n"
+msgstr "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу калібруваннÑ.\n"
+
+#: src/escputil/escputil.c:1023
+msgid ""
+"This will permanently alter the configuration of your printer.\n"
+"WARNING: this procedure has not been approved by Seiko Epson, and\n"
+"it may damage your printer. Proceed?\n"
+"Please confirm by typing 's' again that you wish to save the settings\n"
+"to your printer:\n"
+msgstr ""
+"Ви збираєтеÑÑŒ конфігурацію вашого принтера.\n"
+"УВÐГÐ: Ñ†Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° не була Ñанкціонована Seiko Epson, та може\n"
+"пошкодити ваш принтер. Продовжувати?\n"
+"Підтвердіть натиÑканнÑм 'r' знову, що ви бажаєте зберегти наÑтройки\n"
+"у вашому принтері:\n"
+
+#: src/escputil/escputil.c:1033
+msgid "About to save settings..."
+msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°Ñтройок..."
+
+#: src/escputil/escputil.c:1039
+msgid "failed!\n"
+msgstr "помилка!\n"
+
+#: src/escputil/escputil.c:1040
+msgid ""
+"Your settings were not saved successfully. You must repeat the\n"
+"alignment procedure.\n"
+msgstr ""
+"Ваші параметри не були збережені. Ðеобхідно повторити процеÑ\n"
+"калібруваннÑ.\n"
+
+#: src/escputil/escputil.c:1044
+msgid "succeeded!\n"
+msgstr "уÑпішно!\n"
+
+#: src/escputil/escputil.c:1045
+msgid "Your alignment settings have been saved to the printer.\n"
+msgstr "Ваші наÑтройки ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ñ– у принтері.\n"
+
+#: src/escputil/escputil.c:1050
+msgid "Unrecognized command.\n"
+msgstr "Ðерозпізнана команді.\n"
+
+#: src/escputil/escputil.c:1053
+msgid "Final command was not confirmed.\n"
+msgstr "Команда не біла підтверджена.\n"
+
+#: src/escputil/escputil.c:1058
+#, c-format
+msgid ""
+"This procedure assumes that your printer is an Epson %s.\n"
+"If this is not your printer model, please type control-C now and\n"
+"choose your actual printer model.\n"
+"\n"
+"Please place a sheet of paper in your printer to begin the head\n"
+"alignment procedure.\n"
+msgstr ""
+"Ð¦Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° припуÑкає, що у Ð²Ð°Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€ Epson %s.\n"
+"Якщо це не модель вашого принтера, натиÑніть зараз Ctrl-C та\n"
+"виберіть Ñправжню модель принтера.\n"
+"\n"
+"Щоб почати процедуру Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº, вÑтавте аркуш паперу у принтер.\n"
+
+#: src/escputil/escputil.c:1083 src/escputil/escputil.c:1105
+#: src/escputil/escputil.c:1148 src/escputil/escputil.c:1217
+#: src/escputil/escputil.c:1228
+msgid "Press enter to continue > "
+msgstr "ÐатиÑніть Enter щоб продовжити > "
+
+#: src/escputil/escputil.c:1090
+msgid ""
+"Please inspect the print, and choose the best pair of lines in each "
+"pattern.\n"
+"Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"
+msgstr ""
+"Уважно перевірте вивід, та виберіть найкращу пару ліній у кожному шаблоні.\n"
+"Введіть номер пари, або '?' Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸, або 'r' Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð½Ñ "
+"процедури.\n"
+
+#: src/escputil/escputil.c:1096
+#, c-format
+msgid "Pass #%d"
+msgstr "Прохід #%d"
+
+#: src/escputil/escputil.c:1102 src/escputil/escputil.c:1147
+msgid "Please insert a fresh sheet of paper.\n"
+msgstr "Ð’Ñтавте чиÑтий аркуш паперу.\n"
+
+#: src/escputil/escputil.c:1121 src/escputil/escputil.c:1257
+msgid "Number out of range!\n"
+msgstr "ЧиÑло позі допуÑтимими межами!\n"
+
+#: src/escputil/escputil.c:1126 src/escputil/escputil.c:1262
+msgid "I cannot understand what you typed!\n"
+msgstr "Ðе вдаєтьÑÑ Ñ€Ð¾Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ що ви вводите!\n"
+
+#: src/escputil/escputil.c:1132
+#, c-format
+msgid "The best pair of lines should be numbered between 1 and %d.\n"
+msgstr "Ðайкраща пара ліній повинна бути у діапазоні від 1 до %d.\n"
+
+#: src/escputil/escputil.c:1139
+msgid "Attempting to set alignment..."
+msgstr "Спроба вÑтановити вирівнюваннÑ..."
+
+#: src/escputil/escputil.c:1142
+msgid "succeeded.\n"
+msgstr "уÑпішно.\n"
+
+#: src/escputil/escputil.c:1143
+#, c-format
+msgid ""
+"Please verify that the alignment is correct. After the alignment pattern\n"
+"is printed again, please ensure that the best pattern for each line is\n"
+"pattern %d. If it is not, you should repeat the process to get the best\n"
+"quality printing.\n"
+msgstr ""
+"Перевірте коректніÑÑ‚ÑŒ вирівнюваннÑ. ПіÑÐ»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ друку шаблону,\n"
+"переконайтеÑÑŒ, що найкращий шаблон у кожній лінії Ñ” шаблоном %d.\n"
+"Якщо це не так, необхідно повторити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð¹ÐºÑ€Ð°Ñ‰Ð¾Ñ— ÑкоÑÑ‚Ñ– "
+"друку.\n"
+
+#: src/escputil/escputil.c:1158
+#, c-format
+msgid ""
+"Please read these instructions very carefully before proceeding.\n"
+"\n"
+"This utility lets you align the color print head of your Epson Stylus "
+"inkjet\n"
+"printer. Misuse of this utility may cause your print quality to degrade\n"
+"and possibly damage your printer. This utility has not been reviewed by\n"
+"Seiko Epson for correctness, and is offered with no warranty at all. The\n"
+"entire risk of using this utility lies with you.\n"
+"\n"
+"This utility prints %d overprinting test patterns on one piece of paper.\n"
+"That is, it prints one pattern and ejects the page. You must then reinsert\n"
+"the same page, and it will print another pattern. Each pattern consists of\n"
+"a set of choices numbered between %d and %d.\n"
+"\n"
+"When you inspect the patterns, you should find one patch to have the\n"
+"smoothest texture (least ``grain''). You should inspect the patches very\n"
+"carefully to choose the best one. We suggest using Photo Quality Inkjet\n"
+"Paper or a similar high quality paper for this test. If you do not find\n"
+"a smooth pattern, you should repeat the test.\n"
+"\n"
+"After you inspect the choices and select a patch, you will be offered the\n"
+"choices of (s)aving the result in the printer, (r)epeating the process,\n"
+"or (q)uitting without saving. Quitting will not restore the previous\n"
+"settings, but powering the printer off and back on will. If you quit,\n"
+"you must repeat the entire process if you wish to later save the results.\n"
+"It is essential that you not turn your printer off during this procedure.\n"
+"\n"
+"WARNING: THIS FUNCTION IS NOT YET TESTED! It may not work, and it may\n"
+"damage your printer!\n"
+msgstr ""
+"Перш ніж продовжити уважно перечитайте цю інÑтрукцію.\n"
+"\n"
+"Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° дозволÑÑ” відкалібрувати головки вашого Ñтруменевого Epson Stylus\n"
+"принтера. Ðеправильне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— утиліти може призвеÑти до "
+"погіршеннÑ\n"
+"ÑкоÑÑ‚Ñ– та може пошкодити ваш принтер. КоректніÑÑ‚ÑŒ цієї утиліти не "
+"оцінювалаÑÑŒ\n"
+"Seiko Epson, та вона поÑтачаєтьÑÑ Ð±ÐµÐ· будь-Ñких гарантій. ВеÑÑŒ ризик від\n"
+"викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— утиліти лежить на ваÑ.\n"
+"\n"
+"Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° виводить %d теÑтових шаблонів на аркуші паперу. ПіÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñƒ\n"
+"шаблонів аркуш виймаєтьÑÑ Ð· принтера. Потім необхідно вÑтавити ту Ñаму\n"
+"Ñторінку, Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ наÑтупного шаблону. Шаблон ÑкладаєтьÑÑ Ð· Ñерії "
+"варіантів\n"
+"пронумерованих від %d до %d.\n"
+"\n"
+"Коли ви розглÑдаєте шаблони, ви повинні знайти варіант, Ñкий має найбільш\n"
+"гладке Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ (меншу \"зерниÑÑ‚Ñ–ÑÑ‚ÑŒ\"). Уважно розглÑньте варіанти, та\n"
+"знайдіть найкращий. Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ рекомендуєтьÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовувати Photo\n"
+"Quality Inkjet Paper або подібний папір. Якщо ви не отримали гладкий "
+"візерунок\n"
+"повторіть теÑÑ‚.\n"
+"\n"
+"ПіÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº, вам буде запропонований вибір (s)зберегти результати у\n"
+"принтері, (r)повторити процеÑ, або (q)вийти без збереженнÑ. При виході\n"
+"не відбуваєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… наÑтройок, але Ñ—Ñ… можна відновити\n"
+"вимиканнÑм Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°. Якщо ви вийшли, щоб зберегти наÑтройки,\n"
+"доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ веÑÑŒ процеÑ.\n"
+"Важливо не вимикати принтер протÑгом цієї процедури.\n"
+"\n"
+"УВÐГÐ: ЦЯ ФУÐКЦІОÐÐЛЬÐІСТЬ ЩЕ ÐЕ ПЕРЕВІРЯЛÐСЬ! Вона може не працювати, або\n"
+"може пошкодити ваш принтер!\n"
+
+#: src/escputil/escputil.c:1208
+#, c-format
+msgid "Printer %s does not require color head alignment.\n"
+msgstr "Принтер %s не потребує Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ð¾Ð²Ð¸Ñ… головок.\n"
+
+#: src/escputil/escputil.c:1226
+msgid ""
+"Please re-insert the same alignment sheet in the printer when it is\n"
+"finished printing.\n"
+msgstr "ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ñ€ÑƒÐºÑƒ, вÑтавте знову той Ñамий аркуш у принтер.\n"
+
+#: src/escputil/escputil.c:1232
+msgid ""
+"Inspect the alignment sheet, and determine which pattern is the smoothest.\n"
+"This pattern will appear to have the least ``grain''.\n"
+"If you cannot find a smooth pattern, please select the number for the\n"
+"best pattern, and repeat the procedure.\n"
+"Type a pattern number, or '?' for help.\n"
+msgstr ""
+"Перевірте коректніÑÑ‚ÑŒ вирівнюваннÑ, та визначте Ñкий шаблон Ñамий гладкий.\n"
+"Цей шаблон матиме найменшу \"зерниÑÑ‚Ñ–ÑÑ‚ÑŒ\".\n"
+"Якщо ви не можете знайти гладкий шаблон, виберіть номер найкращого шаблону\n"
+"та повторіть процедуру.\n"
+"Введіть номер шаблону, або '?' Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸.\n"
+
+#: src/escputil/escputil.c:1268
+#, c-format
+msgid "The best pattern should be numbered between 1 and %d.\n"
+msgstr "Ðайкращий шаблон повинен знаходитиÑÑŒ у діапазоні від 1 до %d.\n"
+
+#: src/escputil/escputil.c:1312
+msgid "Error in input\n"
+msgstr "Помилка при вводі\n"
+
+#: src/gimp/gimp_color_window.c:193
+msgid "Print Color Adjust"
+msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² друку"
+
+#: src/gimp/gimp_color_window.c:197
+msgid "Set Defaults"
+msgstr "Типові значеннÑ"
+
+#: src/gimp/gimp_color_window.c:199
+msgid "Close"
+msgstr "Закрити"
+
+#: src/gimp/gimp_color_window.c:230
+msgid "Image preview"
+msgstr "Попередній переглÑд зображеннÑ"
+
+#: src/gimp/gimp_color_window.c:240
+msgid "Brightness:"
+msgstr "ЯÑкравіÑÑ‚ÑŒ:"
+
+#: src/gimp/gimp_color_window.c:248
+msgid ""
+"Set the brightness of the print.\n"
+"0 is solid black, 2 is solid white"
+msgstr ""
+"Визначає ÑÑкравіÑÑ‚ÑŒ друку.\n"
+"0 - Ñуцільний чорний, 2 - Ñуцільний білий"
+
+#: src/gimp/gimp_color_window.c:260
+msgid "Contrast:"
+msgstr "КонтраÑÑ‚:"
+
+#: src/gimp/gimp_color_window.c:268
+msgid "Set the contrast of the print"
+msgstr "Визначає контраÑÑ‚ друку"
+
+#: src/gimp/gimp_color_window.c:279
+msgid "Cyan:"
+msgstr "Бірюзовий:"
+
+#: src/gimp/gimp_color_window.c:287
+msgid "Adjust the cyan balance of the print"
+msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð±Ð°Ð»Ð°Ð½Ñу бірюзового Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_color_window.c:298
+msgid "Magenta:"
+msgstr "Пурпурний:"
+
+#: src/gimp/gimp_color_window.c:306
+msgid "Adjust the magenta balance of the print"
+msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð±Ð°Ð»Ð°Ð½Ñу пурпурного Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_color_window.c:317
+msgid "Yellow:"
+msgstr "Жовтий:"
+
+#: src/gimp/gimp_color_window.c:325
+msgid "Adjust the yellow balance of the print"
+msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð±Ð°Ð»Ð°Ð½Ñу жовтого Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_color_window.c:336
+msgid "Saturation:"
+msgstr "ÐаÑиченіÑÑ‚ÑŒ:"
+
+#: src/gimp/gimp_color_window.c:344
+msgid ""
+"Adjust the saturation (color balance) of the print\n"
+"Use zero saturation to produce grayscale output using color and black inks"
+msgstr ""
+"ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð½Ð°ÑиченоÑÑ‚Ñ– (баланÑу кольорів) Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ\n"
+"ВикориÑтовуйте нульову наÑиченіÑÑ‚ÑŒ Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ відтінках Ñірого з "
+"викориÑтаннÑм кольорових та чорного чорнил"
+
+#: src/gimp/gimp_color_window.c:357
+msgid "Density:"
+msgstr "ЩільніÑÑ‚ÑŒ:"
+
+#: src/gimp/gimp_color_window.c:365
+msgid ""
+"Adjust the density (amount of ink) of the print. Reduce the density if the "
+"ink bleeds through the paper or smears; increase the density if black "
+"regions are not solid."
+msgstr ""
+"Визначає щільніÑÑ‚ÑŒ (кількіÑÑ‚ÑŒ чорнил) друку. ЩільніÑÑ‚ÑŒ треба зменшувати, "
+"Ñкщо фарба розмазуєтьÑÑ Ñ‡Ð¸ проÑочуєтьÑÑ ÐºÑ€Ñ–Ð·ÑŒ папір, або збільшувати, Ñкщо "
+"Ñуцільні чорні ділÑнки не виглÑдають такими."
+
+#: src/gimp/gimp_color_window.c:379
+msgid "Gamma:"
+msgstr "Гама:"
+
+#: src/gimp/gimp_color_window.c:387
+msgid ""
+"Adjust the gamma of the print. Larger values will produce a generally "
+"brighter print, while smaller values will produce a generally darker print. "
+"Black and white will remain the same, unlike with the brightness adjustment."
+msgstr ""
+"Визначає гаму друку. Більші Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - Ñвітліший друк, менші - темніший. "
+"Чорні та білі ділÑнки залишаютьÑÑ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ Ñамими, чого не доÑÑгнути "
+"визначеннÑм ÑÑкравоÑÑ‚Ñ–."
+
+#: src/gimp/gimp_color_window.c:403
+msgid "Dither Algorithm:"
+msgstr "Ðлгоритм змішуваннÑ:"
+
+#: src/gimp/gimp_color_window.c:411
+msgid ""
+"Choose the dither algorithm to be used.\n"
+"Adaptive Hybrid usually produces the best all-around quality.\n"
+"Ordered is faster and produces almost as good quality on photographs.\n"
+"Fast and Very Fast are considerably faster, and work well for text and line "
+"art.\n"
+"Hybrid Floyd-Steinberg generally produces inferior output."
+msgstr ""
+"Вибір алгоритму змішуваннÑ.\n"
+"\"Ðдаптивно-гібридний\" зазвичай дає найкращу ÑкіÑÑ‚ÑŒ друку.\n"
+"\"ВпорÑдкований\" швидший та дає майже таку Ñаму ÑкіÑÑ‚ÑŒ Ñк фотографії.\n"
+"\"Швидкий\" та \"Дуже швидкий\" значно швидші, та добре підходÑÑ‚ÑŒ Ð´Ð»Ñ Ñ‚ÐµÐºÑту "
+"та малюнків лініÑми.\n"
+"\"Гібридний за Флойдом-Стейнбергом\" зазвичай дає гіршу ÑкіÑÑ‚ÑŒ."
+
+#.
+#. * Create the main dialog
+#.
+#: src/gimp/gimp_main_window.c:327
+#, c-format
+msgid "%s -- Print v%s"
+msgstr "%s -- Друк верÑÑ–Ñ— %s"
+
+#: src/gimp/gimp_main_window.c:336
+msgid "About"
+msgstr "Про програму"
+
+#: src/gimp/gimp_main_window.c:338
+msgid ""
+"Print and\n"
+"Save Settings"
+msgstr ""
+"Друкувати та\n"
+"зберегти параметри"
+
+#: src/gimp/gimp_main_window.c:340
+msgid ""
+"Save\n"
+"Settings"
+msgstr ""
+"Зберегти\n"
+"параметри"
+
+#: src/gimp/gimp_main_window.c:342
+msgid "Print"
+msgstr "Друк"
+
+#: src/gimp/gimp_main_window.c:344 src/gimp/gimp_main_window.c:626
+#: src/gimp/gimp_main_window.c:795
+msgid "Cancel"
+msgstr "СкаÑувати"
+
+#: src/gimp/gimp_main_window.c:383
+msgid "Preview"
+msgstr "Попередній переглÑд"
+
+#: src/gimp/gimp_main_window.c:407
+msgid ""
+"Position the image on the page.\n"
+"Click and drag with the primary button to position the image.\n"
+"Click and drag with the second button to move the image with finer "
+"precision; each unit of motion moves the image one point (1/72\")\n"
+"Click and drag with the third (middle) button to move the image in units of "
+"the image size.\n"
+"Holding down the shift key while clicking and dragging constrains the image "
+"to only horizontal or vertical motion.\n"
+"If you click another button while dragging the mouse, the image will return "
+"to its original position."
+msgstr ""
+"ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° Ñторінці.\n"
+"ÐатиÑÐºÐ°Ð½Ð½Ñ Ð½Ð° зображенні головною кнопкою та перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑ” "
+"вÑтановити його позицію.\n"
+"ÐатиÑніть на зображенні іншою кнопкою, щоб переміÑтити Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· більшою "
+"точніÑÑ‚ÑŽ. Кожна Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ Ñ€ÑƒÑ…Ñƒ переміщує Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° один пункт (1/72\")\n"
+"ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— (Ñередньої) кнопки дозволÑÑ” переміщувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ "
+"одиницÑÑ… розміру зображеннÑ.\n"
+"При ÑƒÑ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñнутою клавіші Shift, Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÑƒÐ²Ð°Ñ‚Ð¸Ð¼ÐµÑ‚ÑŒÑÑ Ð»Ð¸ÑˆÐµ "
+"горизонтальним чи вертикальним напрÑмками.\n"
+"Якщо під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ‚ÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ натиÑнете іншу кнопку миші, Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ "
+"повернетьÑÑ Ð´Ð¾ початкової позиції."
+
+#: src/gimp/gimp_main_window.c:434
+msgid "Position"
+msgstr "ПозиціÑ"
+
+#: src/gimp/gimp_main_window.c:452
+msgid "Auto"
+msgstr "Ðвтоматично"
+
+#: src/gimp/gimp_main_window.c:454
+msgid "Portrait"
+msgstr "Книжкова"
+
+#: src/gimp/gimp_main_window.c:456
+msgid "Landscape"
+msgstr "Ðльбомна"
+
+#: src/gimp/gimp_main_window.c:458
+msgid "Upside down"
+msgstr "Перевернута"
+
+#: src/gimp/gimp_main_window.c:460
+msgid "Seascape"
+msgstr "Пейзаж"
+
+#: src/gimp/gimp_main_window.c:464
+msgid ""
+"Select the orientation: portrait, landscape, upside down, or seascape "
+"(upside down landscape)"
+msgstr ""
+"Вибір орієнтації: книжкова, альбомна, перевернута або пейзаж (перевернута "
+"альбомна)"
+
+#: src/gimp/gimp_main_window.c:469
+msgid "Orientation:"
+msgstr "ОрієнтаціÑ:"
+
+#: src/gimp/gimp_main_window.c:483
+msgid "Left:"
+msgstr "Зліва:"
+
+#: src/gimp/gimp_main_window.c:487
+msgid "Distance from the left of the paper to the image"
+msgstr "ВідÑтань від лівої межі паперу до зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:496
+msgid "Top:"
+msgstr "Зверху:"
+
+#: src/gimp/gimp_main_window.c:500
+msgid "Distance from the top of the paper to the image"
+msgstr "ВідÑтань від верхньої межі паперу до зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:509
+msgid "Right:"
+msgstr "Справа:"
+
+#: src/gimp/gimp_main_window.c:513
+msgid "Distance from the left of the paper to the right of the image"
+msgstr "ВідÑтань від лівої межі паперу до правого краю зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:523
+msgid "Right Border:"
+msgstr "Права межа:"
+
+#: src/gimp/gimp_main_window.c:527
+msgid "Distance from the right of the paper to the image"
+msgstr "ВідÑтань від правої межі паперу до зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:537
+msgid "Bottom:"
+msgstr "Знизу:"
+
+#: src/gimp/gimp_main_window.c:541
+msgid "Distance from the top of the paper to the bottom of the image"
+msgstr "ВідÑтань від верхньої межі паперу до нижнього краю зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:551
+msgid "Bottom Border:"
+msgstr "ÐÐ¸Ð¶Ð½Ñ Ð¼ÐµÐ¶Ð°:"
+
+#: src/gimp/gimp_main_window.c:555
+msgid "Distance from the bottom of the paper to the image"
+msgstr "ВідÑтань від нижньої межі паперу до зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:572
+msgid "Center:"
+msgstr "Центр:"
+
+#: src/gimp/gimp_main_window.c:576
+msgid "Vertically"
+msgstr "Вертикально"
+
+#: src/gimp/gimp_main_window.c:581
+msgid "Center the image vertically on the paper"
+msgstr "Центрувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾ на Ñторінці"
+
+#: src/gimp/gimp_main_window.c:587
+msgid "Both"
+msgstr ""
+"В обох\n"
+"напрÑмках"
+
+#: src/gimp/gimp_main_window.c:592
+msgid "Center the image on the paper"
+msgstr "Центрувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° Ñторінці"
+
+#: src/gimp/gimp_main_window.c:599
+msgid "Horizontally"
+msgstr "Горизонтально"
+
+#: src/gimp/gimp_main_window.c:604
+msgid "Center the image horizontally on the paper"
+msgstr "Центрувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾ на Ñторінці"
+
+#: src/gimp/gimp_main_window.c:620
+msgid "Setup Printer"
+msgstr "Параметри принтера"
+
+#: src/gimp/gimp_main_window.c:624 src/gimp/gimp_main_window.c:793
+#: src/gimp/gimp_main_window.c:830
+msgid "OK"
+msgstr "Гаразд"
+
+#.
+#. * Printer driver option menu.
+#.
+#: src/gimp/gimp_main_window.c:648 src/gimp/gimp_main_window.c:906
+msgid "Printer Model:"
+msgstr "Модель принтера:"
+
+#: src/gimp/gimp_main_window.c:660
+msgid "Select your printer model"
+msgstr "Вибір моделі принтера"
+
+#.
+#. * PPD file.
+#.
+#: src/gimp/gimp_main_window.c:698
+msgid "PPD File:"
+msgstr "PPD файл:"
+
+#: src/gimp/gimp_main_window.c:714
+msgid "Enter the correct PPD filename for your printer"
+msgstr "Ввід назву файлу PPD Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ принтера"
+
+#: src/gimp/gimp_main_window.c:717
+msgid "Browse"
+msgstr "ПереглÑд"
+
+#: src/gimp/gimp_main_window.c:723
+msgid "Choose the correct PPD filename for your printer"
+msgstr "Вкажіть правильну назву PPD файлу Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ принтера"
+
+#.
+#. * Print command.
+#.
+#: src/gimp/gimp_main_window.c:733
+msgid "Command:"
+msgstr "Команда:"
+
+#: src/gimp/gimp_main_window.c:746
+msgid ""
+"Enter the correct command to print to your printer. Note: Please do not "
+"remove the `-l' or `-oraw' from the command string, or printing will "
+"probably fail!"
+msgstr ""
+"Вкажіть правильну команду друку на вашому принтері. Увага: не прибирайте\n"
+"`-l' чи `-oraw' з командного Ñ€Ñдка, у цьому випадку друк може працювати "
+"некоректно."
+
+#.
+#. * Output file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:755
+msgid "Print To File?"
+msgstr "Друк файл?"
+
+#.
+#. * PPD file selection dialog.
+#.
+#: src/gimp/gimp_main_window.c:770
+msgid "PPD File?"
+msgstr "PPD файл"
+
+#: src/gimp/gimp_main_window.c:789
+msgid "Define New Printer"
+msgstr "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ принтера"
+
+#: src/gimp/gimp_main_window.c:810 src/gimp/gimp_main_window.c:901
+msgid "Printer Name:"
+msgstr "Ðазва принтера:"
+
+#: src/gimp/gimp_main_window.c:814
+msgid "Enter the name you wish to give this logical printer"
+msgstr "Введіть назву логічного принтера"
+
+#: src/gimp/gimp_main_window.c:826
+msgid "About Gimp-Print "
+msgstr "Про Gimp-Print "
+
+#: src/gimp/gimp_main_window.c:836
+msgid "Gimp-Print Version "
+msgstr "ВерÑÑ–Ñ Gimp-Print"
+
+#: src/gimp/gimp_main_window.c:836
+msgid ""
+"\n"
+"\n"
+"Copyright (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"and the rest of the Gimp-Print Development Team.\n"
+"\n"
+"Please visit our web site at http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+"\n"
+"\n"
+"УÑÑ– права належать (C) 1997-2001 Michael Sweet, Robert Krawitz,\n"
+"та іншим членам Gimp-Print Development Team.\n"
+"\n"
+"Відвідайте Ñторінку http://gimp-print.sourceforge.net.\n"
+"\n"
+"This program is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+"\n"
+"You should have received a copy of the GNU General Public License\n"
+"along with this program; if not, write to the Free Software\n"
+"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+
+#: src/gimp/gimp_main_window.c:884
+msgid "Printer Settings"
+msgstr "Параметри принтера"
+
+#: src/gimp/gimp_main_window.c:897
+msgid ""
+"Select the name of the printer (not the type, or model, of printer) that you "
+"wish to print to"
+msgstr "Виберіть назву принтера (не тип або модель)"
+
+#.
+#. * Setup printer button
+#.
+#: src/gimp/gimp_main_window.c:917
+msgid "Setup Printer..."
+msgstr "Параметри принтера..."
+
+#: src/gimp/gimp_main_window.c:919
+msgid ""
+"Choose the printer model, PPD file, and command that is used to print to "
+"this printer"
+msgstr ""
+"Виберіть модель принтера, файл PPD, та команду, Ñка буде викориÑтовуватиÑÑŒ "
+"Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ принтера"
+
+#.
+#. * New printer button
+#.
+#: src/gimp/gimp_main_window.c:934
+msgid "New Printer..."
+msgstr "Ðовий принтер..."
+
+#: src/gimp/gimp_main_window.c:936
+msgid ""
+"Define a new logical printer. This can be used to name a collection of "
+"settings that you wish to remember for future use."
+msgstr ""
+"Вкажіть новий логічний принтер. Він ÑвлÑÑ” Ñобою назву Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ параметрів "
+"друку."
+
+#: src/gimp/gimp_main_window.c:957
+msgid "Size of paper that you wish to print to"
+msgstr "Розмір паперу Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_main_window.c:960
+msgid "Media Size:"
+msgstr "Розмір аркушу:"
+
+#: src/gimp/gimp_main_window.c:969
+msgid "Dimensions:"
+msgstr "Розміри:"
+
+#: src/gimp/gimp_main_window.c:972 src/gimp/gimp_main_window.c:1188
+msgid "Width:"
+msgstr "Ширина:"
+
+#: src/gimp/gimp_main_window.c:983
+msgid "Width of the paper that you wish to print to"
+msgstr "Ширина паперу Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_main_window.c:989 src/gimp/gimp_main_window.c:1201
+msgid "Height:"
+msgstr "ВиÑота:"
+
+#: src/gimp/gimp_main_window.c:1000
+msgid "Height of the paper that you wish to print to"
+msgstr "ВиÑота паперу Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_main_window.c:1016
+msgid "Type of media you're printing to"
+msgstr "Тип ноÑÑ–Ñ, на Ñкий відбуватиметьÑÑ Ð´Ñ€ÑƒÐº"
+
+#: src/gimp/gimp_main_window.c:1019
+msgid "Media Type:"
+msgstr "Тип ноÑÑ–Ñ:"
+
+#: src/gimp/gimp_main_window.c:1032
+msgid "Source (input slot) of media you're printing to"
+msgstr "Ðазва лотка, з Ñкого буде відбуватиÑÑŒ друк"
+
+#: src/gimp/gimp_main_window.c:1035
+msgid "Media Source:"
+msgstr "Подача ноÑÑ–Ñ:"
+
+#: src/gimp/gimp_main_window.c:1048
+msgid "Type of ink in the printer"
+msgstr "Тип чорнил у принтері"
+
+#: src/gimp/gimp_main_window.c:1051
+msgid "Ink Type:"
+msgstr "Тип чорнил:"
+
+#: src/gimp/gimp_main_window.c:1064
+msgid "Resolution and quality of the print"
+msgstr "Роздільна здатніÑÑ‚ÑŒ та ÑкіÑÑ‚ÑŒ друку"
+
+#: src/gimp/gimp_main_window.c:1067
+msgid "Resolution:"
+msgstr "Роздільна здатніÑÑ‚ÑŒ:"
+
+#: src/gimp/gimp_main_window.c:1083
+msgid "Size"
+msgstr "Розмір"
+
+#: src/gimp/gimp_main_window.c:1103
+msgid "Scaling:"
+msgstr "МаÑштабуваннÑ:"
+
+#: src/gimp/gimp_main_window.c:1109
+msgid "Set the scale (size) of the image"
+msgstr "Вкажіть маÑштаб (розмір) зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:1142
+msgid ""
+"Select whether scaling is measured as percent of available page size or "
+"number of output dots per inch"
+msgstr ""
+"Виберіть маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ відÑотках від розміру Ñторінки або щільніÑÑ‚ÑŒ у "
+"точках на дюйм."
+
+#: src/gimp/gimp_main_window.c:1147
+msgid "Percent"
+msgstr "відÑотках"
+
+#: src/gimp/gimp_main_window.c:1154
+msgid "Scale the print to the size of the page"
+msgstr "МаÑштабувати у відÑотках від повного розміру Ñторінки"
+
+#: src/gimp/gimp_main_window.c:1160
+msgid "PPI"
+msgstr "т/дюйм"
+
+#: src/gimp/gimp_main_window.c:1166
+msgid "Scale the print to the number of dots per inch"
+msgstr "МаÑштабувати у точках на дюйм"
+
+#: src/gimp/gimp_main_window.c:1192
+msgid "Set the width of the print"
+msgstr "Ð’Ñтановити ширину друку"
+
+#: src/gimp/gimp_main_window.c:1205
+msgid "Set the height of the print"
+msgstr "Ð’Ñтановити виÑоту друку"
+
+#: src/gimp/gimp_main_window.c:1225
+msgid "Units:"
+msgstr "Одиниці:"
+
+#: src/gimp/gimp_main_window.c:1230
+msgid "Select the base unit of measurement for printing"
+msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ– виміру Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_main_window.c:1233
+msgid "Inch"
+msgstr "дюйми"
+
+#: src/gimp/gimp_main_window.c:1240
+msgid "Set the base unit of measurement to inches"
+msgstr "Ð’Ñтановити дюйм Ñк оÑновну одиницю виміру Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#: src/gimp/gimp_main_window.c:1246
+msgid "cm"
+msgstr "Ñм"
+
+#: src/gimp/gimp_main_window.c:1252
+msgid "Set the base unit of measurement to centimetres"
+msgstr "Ð’Ñтановити Ñантиметр Ñк оÑновну одиницю виміру Ð´Ð»Ñ Ð´Ñ€ÑƒÐºÑƒ"
+
+#.
+#. * The "image size" button
+#.
+#: src/gimp/gimp_main_window.c:1262
+msgid ""
+"Use Original\n"
+"Image Size"
+msgstr ""
+"ВикориÑтовувати початковий\n"
+"розмір зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:1268
+msgid "Set the print size to the size of the image"
+msgstr "ВикориÑтовувати початковий розмір зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:1292
+msgid "Image / Output Settings"
+msgstr "ЗображеннÑ/Параметри виводу"
+
+#: src/gimp/gimp_main_window.c:1305
+msgid "Image Type:"
+msgstr "Тип зображеннÑ:"
+
+#: src/gimp/gimp_main_window.c:1310
+msgid "Optimize the output for the type of image being printed"
+msgstr "Оптимізувати вивід в залежноÑÑ‚Ñ– від типу зображеннÑ"
+
+#: src/gimp/gimp_main_window.c:1321
+msgid "Fastest and brightest color for text and line art"
+msgstr "Самий швидкий та ÑÑкравий - Ð´Ð»Ñ Ñ‚ÐµÐºÑту та штрихових малюнків"
+
+#: src/gimp/gimp_main_window.c:1335
+msgid "Best for images dominated by regions of solid color"
+msgstr ""
+"Ðайбільш підходить Ð´Ð»Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½ÑŒ з великими облаÑÑ‚Ñми Ñуцільного кольору"
+
+#: src/gimp/gimp_main_window.c:1351
+msgid ""
+"Slowest, but most accurate and smoothest color for continuous tone images "
+"and photographs"
+msgstr ""
+"Ðайповільніший, але Ñамий ретельний та гладкий, найкращий Ð´Ð»Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ñ–Ð¹. "
+
+#: src/gimp/gimp_main_window.c:1377
+msgid "Output Type:"
+msgstr "Тип виводу:"
+
+#: src/gimp/gimp_main_window.c:1382
+msgid "Select the desired output type"
+msgstr "Вибір типу виводу"
+
+#: src/gimp/gimp_main_window.c:1385
+msgid "Color"
+msgstr "Колір"
+
+#: src/gimp/gimp_main_window.c:1391
+msgid "Color output"
+msgstr "Кольоровий друк"
+
+#: src/gimp/gimp_main_window.c:1396
+msgid "Grayscale"
+msgstr "Відтінки Ñірого"
+
+#: src/gimp/gimp_main_window.c:1403
+msgid "Print in shades of gray using black ink"
+msgstr "Друк у відтінках Ñірого викориÑтовуючи чорну фарбу"
+
+#: src/gimp/gimp_main_window.c:1410
+msgid "Black and White"
+msgstr "Чорно-білий"
+
+#: src/gimp/gimp_main_window.c:1417
+msgid "Print in black and white (no color, and no shades of gray)"
+msgstr "Друкує у чорно-білій гамі (немає кольорів, немає відтінків Ñірого)"
+
+#.
+#. * Color adjust button
+#.
+#: src/gimp/gimp_main_window.c:1428
+msgid "Adjust Output..."
+msgstr "ÐšÐ¾Ñ€ÐµÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ñƒ..."
+
+#: src/gimp/gimp_main_window.c:1435
+msgid ""
+"Adjust color balance, brightness, contrast, saturation, and dither algorithm"
+msgstr "ÐšÐ¾Ñ€ÐµÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð»Ð°Ð½Ñу кольорів, контраÑту, ÑÑкравоÑÑ‚Ñ–, наÑиченоÑÑ‚Ñ–"
+
+#: src/gimp/print-image-gimp.c:318
+msgid "Printing..."
+msgstr "Триває друк..."
+
+#: src/gimp/print.c:166
+msgid "<Image>/File/Print..."
+msgstr "<Image>/Файл/Д_рук..."
+
+#: src/gimp/print.c:734 src/gimp/print.c:735 src/gimp/print.c:832
+#: src/gimp/print.c:1181
+msgid "File"
+msgstr "Файл"
+
+#: src/ghost/ijsgimpprint.c:140
+#, c-format
+msgid "Bad color space: bps %d channels %d space %s\n"
+msgstr "Ðеправильний проÑÑ‚Ñ–Ñ€ кольорів: біт %d каналів %d проÑÑ‚Ñ–Ñ€ %s\n"
+
+#: src/ghost/ijsgimpprint.c:148
+msgid "No row buffer\n"
+msgstr "Ðемає буфера Ñ€Ñдка\n"
+
+#: src/ghost/ijsgimpprint.c:181
+#, c-format
+msgid "Parameter %s out of range (value %f, min %f, max %f)\n"
+msgstr "Параметр %s поза діапазоном (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %f, мінімум %f, макÑимум %f)\n"
+
+#: src/ghost/ijsgimpprint.c:187 src/ghost/ijsgimpprint.c:216
+#, c-format
+msgid "Unable to parse parameter %s=%s (expect a number)\n"
+msgstr "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ параметр %s=%s (очікувалоÑÑŒ чиÑло)\n"
+
+#: src/ghost/ijsgimpprint.c:210
+#, c-format
+msgid "Parameter %s out of range (value %d, min %d, max %d)\n"
+msgstr "Параметр %s поза діапазоном (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %d, мінімум %d, макÑимум %d)\n"
+
+#: src/ghost/ijsgimpprint.c:363
+msgid "Printer must be specified with -sModel\n"
+msgstr "Ðеобхідно вказати принтер у параметрі -sModel\n"
+
+#: src/ghost/ijsgimpprint.c:365
+#, c-format
+msgid "Printer %s is not a known model\n"
+msgstr "Ðевідома модель принтера %s\n"
+
+#: src/ghost/ijsgimpprint.c:635
+#, c-format
+msgid "Unknown option %s\n"
+msgstr "Ðевідомий параметр %s\n"
+
+#: src/ghost/ijsgimpprint.c:809
+#, c-format
+msgid "%.0f of %.0f\n"
+msgstr "%.0f з %.0f\n"
+
+#: src/ghost/ijsgimpprint.c:915
+#, c-format
+msgid "ijs_server_get_page_header failed %d\n"
+msgstr "помилка у ijs_server_get_page_header код: %d\n"
+
+#: src/ghost/ijsgimpprint.c:926
+#, c-format
+msgid "image_init failed %d\n"
+msgstr "помилка у image_init код: %d\n"
+
+#: src/ghost/ijsgimpprint.c:937
+#, c-format
+msgid "Unable to open file descriptor: %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ деÑкриптор файлу: %s\n"
+
+#: src/ghost/ijsgimpprint.c:949
+#, c-format
+msgid "Unable to open %s: %s\n"
+msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ %s: %s\n"
+
+#: src/ghost/ijsgimpprint.c:961
+#, c-format
+msgid "Unknown printer %s\n"
+msgstr "Ðевідомий принтер %s\n"
+
+#: src/ghost/ijsgimpprint.c:994
+msgid "Bad parameters; cannot continue!\n"
+msgstr "Ðеправильний параметр; Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ!\n"
+
+#: src/ghost/ijsgimpprint.c:1004
+#, c-format
+msgid "Get next row failed at %.0f\n"
+msgstr "Помилка при отриманні наÑтупного Ñ€Ñдка у %.0f\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Cannot read from %s: %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ з %s: %s\n"
diff --git a/samples/.cvsignore b/samples/.cvsignore
deleted file mode 100644
index 6179e0d..0000000
--- a/samples/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile Makefile.in
diff --git a/samples/Makefile.in b/samples/Makefile.in
new file mode 100644
index 0000000..16295b5
--- /dev/null
+++ b/samples/Makefile.in
@@ -0,0 +1,328 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+SAMPLE_IMAGES = colorbars4.png colorsweep.png profile.jpg
+
+pkgdatadir = $(datadir)/$(PACKAGE)/samples
+
+pkgdata_DATA = @SAMPLE_IMAGES@
+
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = $(SAMPLE_IMAGES)
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+DATA = $(pkgdata_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps samples/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+install-pkgdataDATA: $(pkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
+ @list='$(pkgdata_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-pkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(pkgdata_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
+ done
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = samples
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-pkgdataDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-pkgdataDATA
+uninstall: uninstall-am
+all-am: Makefile $(DATA)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info-am \
+info dvi-am dvi check check-am installcheck-am installcheck \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/scripts/.cvsignore b/scripts/.cvsignore
deleted file mode 100644
index 5407168..0000000
--- a/scripts/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-config.guess
-config.sub
-install-sh
-ltconfig
-ltmain.sh
-missing
-mkchlog
-mkinstalldirs
diff --git a/scripts/autogen.sh b/scripts/autogen.sh
index deb339a..e1cc586 100644
--- a/scripts/autogen.sh
+++ b/scripts/autogen.sh
@@ -33,14 +33,14 @@ libtool_point=`echo $libtoolv | awk -F. '{print $3}'`
test "$libtool_major" -le 1 && {
test "$libtool_minor" -lt 4 || {
- test "$libtool_minor" -eq 4 -a "$libtool_point" -lt 2
+ test "$libtool_minor" -eq 4 -a "$libtool_point" -lt 3
}
} && {
echo
- echo "**Warning**: You should have \`libtool' 1.4.2 or newer installed to"
+ echo "**Warning**: You should have \`libtool' 1.4.3 or newer installed to"
echo "create a gimp-print distribution. Earlier versions of gettext do"
echo "not generate correct code for all platforms."
- echo "Get ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.4.2.tar.gz"
+ echo "Get ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.4.3.tar.gz"
echo "(or a newer version if it is available)"
}
diff --git a/scripts/autogen.sh.~1.16.2.1.~ b/scripts/autogen.sh.~1.16.2.1.~
new file mode 100644
index 0000000..e1cc586
--- /dev/null
+++ b/scripts/autogen.sh.~1.16.2.1.~
@@ -0,0 +1,350 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+# Shamelessly copied from Glade
+
+DIE=0
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`autoconf' installed to compile gimp-print."
+ echo "Download the appropriate package for your distribution,"
+ echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+}
+
+test -f $srcdir/configure.in.in && sed "s/XXXRELEASE_DATE=XXX/RELEASE_DATE=\"`date '+%d %b %Y'`\"/" $srcdir/configure.in.in > $srcdir/configure.in
+
+test -f $srcdir/ChangeLog || echo > $srcdir/ChangeLog
+
+(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
+ (libtool --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`libtool' installed to compile gimp-print."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.4.2.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ }
+}
+
+libtoolv=`libtool --version | sed 's,.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\.[0-9][0-9]*\)\)[a-z]*[ ].*,\1,'`
+libtool_major=`echo $libtoolv | awk -F. '{print $1}'`
+libtool_minor=`echo $libtoolv | awk -F. '{print $2}'`
+libtool_point=`echo $libtoolv | awk -F. '{print $3}'`
+
+test "$libtool_major" -le 1 && {
+ test "$libtool_minor" -lt 4 || {
+ test "$libtool_minor" -eq 4 -a "$libtool_point" -lt 3
+ }
+} && {
+ echo
+ echo "**Warning**: You should have \`libtool' 1.4.3 or newer installed to"
+ echo "create a gimp-print distribution. Earlier versions of gettext do"
+ echo "not generate correct code for all platforms."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.4.3.tar.gz"
+ echo "(or a newer version if it is available)"
+}
+
+
+grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && {
+ grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
+ (gettext --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`gettext' installed to compile gimp-print."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.10.40.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ }
+}
+
+#### MRS: The following now only generates a warning, since earlier
+#### versions of gettext *do* work, they just don't create the
+#### right uninstall code.
+
+gettextv=`gettext --version | head -1 | awk '{print $NF}'`
+gettext_major=`echo $gettextv | awk -F. '{print $1}'`
+gettext_minor=`echo $gettextv | awk -F. '{print $2}'`
+gettext_point=`echo $gettextv | awk -F. '{print $3}'`
+
+test "$gettext_major" -eq 0 && {
+ test "$gettext_minor" -lt 10 || {
+ test "$gettext_minor" -eq 10 -a "$gettext_point" -lt 38
+ }
+} && {
+ echo
+ echo "**Warning**: You must have \`gettext' 0.10.38 or newer installed to"
+ echo "create a gimp-print distribution. Earlier versions of gettext do"
+ echo "not generate the correct 'make uninstall' code."
+ echo "Get ftp://ftp.gnu.org/gnu/gettext/gettext-0.10.40.tar.gz"
+ echo "(or a newer version if it is available)"
+}
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`automake' installed to compile gimp-print."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.3.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+ NO_AUTOMAKE=yes
+}
+
+
+# if no automake, don't bother testing for aclocal
+test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: Missing \`aclocal'. The version of \`automake'"
+ echo "installed doesn't appear recent enough."
+ echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.3.tar.gz"
+ echo "(or a newer version if it is available)"
+ DIE=1
+}
+
+# Check first for existence and then for proper version of Jade >= 1.2.1
+
+jade_err=0
+
+# Exists?
+jade_exists=`type -p $jade`
+test -z "$jade_exists" && jade_err=1
+
+# Proper rev?
+test "$jade_err" -eq 0 && {
+# echo "Checking for proper revision of jade..."
+ jade_version=`jade -v < /dev/null 2>&1 | grep -i "jade version" | awk -F\" '{print $2}'`
+
+ jade_version_major=`echo $jade_version | awk -F. '{print $1}'`
+ jade_version_minor=`echo $jade_version | awk -F. '{print $2}'`
+ jade_version_point=`echo $jade_version | awk -F. '{print $3}'`
+
+ test "$jade_version_major" -ge 1 || jade_err=1
+
+ test "$jade_version_minor" -lt 2 || {
+ test "$jade_version_minor" -eq 2 -a "$jade_version_point" -lt 1
+ } && jade_err=1
+
+ test "$jade_err" -eq 1 && {
+ echo " "
+ echo "***Warning***: You must have \"Jade\" version 1.2.1 or"
+ echo "newer installed to build the Gimp-Print user's guide."
+ echo "Get ftp://ftp.jclark.com/pub/jade/jade-1.2.1.tar.gz"
+ echo "(or a newer version if available)"
+ echo " "
+ }
+}
+
+# Check for existence of dvips
+
+dvipsloc=`type -p dvips`
+
+test -z "$dvipsloc" && {
+ echo " "
+ echo "***Warning***: You must have \"dvips\" installed to"
+ echo "build the Gimp-Print user's guide."
+ echo " "
+}
+
+# Check for existence of jadetex
+
+jadetexloc=`type -p jadetex`
+
+test -z "$jadetexloc" && {
+ echo " "
+ echo "***Warning***: You must have \"jadetex\" version 3.5 or"
+ echo "newer installed to build the Gimp-Print user's guide."
+ echo "Get ftp://prdownloads.sourceforge.net/jadetex/jadetex-3.5.tar.gz"
+ echo "(or a newer version if available)"
+ echo " "
+}
+
+# Check for OpenJade >= 1.3
+
+openjade_err=0
+
+openjadeloc=`type -p openjade`
+
+# Exists?
+test -z "$openjadeloc" && openjade_err=1
+
+# Proper rev?
+test "$openjade_err" -eq 0 && {
+# echo "Checking for proper revision of openjade..."
+ openjade_version=`openjade -v < /dev/null 2>&1 | grep -i "openjade version" $tmp_file | awk -F\" '{print $2}'`
+
+ openjade_version_major=`echo $openjade_version | awk -F. '{print $1}'`
+ openjade_version_minor=`echo $openjade_version | awk -F. '{print $2}'`
+ openjade_version_minor=`echo $openjade_version_minor | awk -F- '{print $1}'`
+
+ test "$openjade_version_major" -ge 1 || openjade_err=1
+ test "$openjade_version_minor" -ge 3 || openjade_err=1
+
+ test "$openjade_err" -eq 1 && {
+ echo " "
+ echo "***Warning***: You must have \"OpenJade\" version 1.3 or"
+ echo "newer installed to build the Gimp-Print user's guide."
+ echo "Get http://download.sourceforge.net/openjade/openjade-1.3.tar.gz"
+ echo "(or a newer version if available)"
+ echo " "
+ }
+}
+
+# Check for ps2pdf
+
+ps2pdfloc=`type -p ps2pdf`
+
+test -z "ps2pdfloc" && {
+ echo " "
+ echo "***Warning***: You must have \"ps2pdf\" installed to"
+ echo "build the Gimp-Print user's guide."
+ echo "\"ps2pdf\" comes from the GNU Ghostscript software package."
+ echo "Get ftp://ftp.gnu.org/gnu/ghostscript/ghostscript-6.5.1.tar.gz"
+ echo "(or a newer version if available)"
+ echo " "
+}
+
+# Check first for existence and then for proper version of sgmltools-lite >=3.0.2
+
+sgmltools_err=0
+
+# Exists?
+sgmltoolsloc=`type -p sgmltools`
+test -z "$sgmltoolsloc" && sgmltools_err=1
+
+# Proper rev?
+test "$sgmltools_err" -eq 0 && {
+# echo "Checking for proper revision of sgmltools..."
+ sgmltools_version=`sgmltools --version | awk '{print $3}'`
+
+ sgmltools_version_major=`echo $sgmltools_version | awk -F. '{print $1}'`
+ sgmltools_version_minor=`echo $sgmltools_version | awk -F. '{print $2}'`
+ sgmltools_version_point=`echo $sgmltools_version | awk -F. '{print $3}'`
+
+ test "$sgmltools_version_major" -ge 3 || sgmltools_err=1
+ test "$sgmltools_version_minor" -gt 0 ||
+ (test "$sgmltools_version_minor" -eq 0 -a "$sgmltools_version_point" -ge 2) ||
+ sgmltools_err=1
+
+ test "$sgmltools_err" -eq 1 && {
+ echo " "
+ echo "***Warning***: You must have \"sgmltools-lite\" version 3.0.2"
+ echo "or newer installed to build the Gimp-Print user's guide."
+ echo "Get http://prdownloads.sourceforge.net/projects/sgmltools-lite/sgmltools-lite-3.0.2.tar.gz"
+ echo "(or a newer version if available)"
+ echo " "
+ }
+}
+
+# Check for convert
+
+convertloc=`type -p convert`
+test -z "$convertloc" && {
+ echo " "
+ echo "***Warning***: You must have \"convert\" installed to"
+ echo "build the Gimp-Print user's guide."
+ echo "\"convert\" comes from the ImageMagick software package."
+ echo "Go to http://imagemagick.sourceforge.net/http and get"
+ echo "the file ImageMagick-5.3.1.tar.gz"
+ echo "(or a newer version if available)"
+ echo " "
+}
+
+test -d "/usr/share/sgml/docbook_4" || {
+ echo " "
+ echo "***Warning***: You must have "Docbook v4" installed to"
+ echo "build the Gimp-Print user's guide."
+ echo " "
+}
+
+if test "$DIE" -eq 1; then
+ exit 1
+fi
+
+if test -z "$*"; then
+ echo "**Warning**: I am going to run \`configure' with no arguments."
+ echo "If you wish to pass any to it, please specify them on the"
+ echo \`$0\'" command line."
+ echo
+fi
+
+case $CC in
+xlc )
+ am_opt=--include-deps;;
+esac
+
+for coin in `find $srcdir -name configure.in -print`
+do
+ dr=`dirname $coin`
+ if test -f $dr/NO-AUTO-GEN; then
+ echo skipping $dr -- flagged as no auto-gen
+ else
+ echo processing $dr
+ macrodirs=`sed -n -e 's,^dnl AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
+ ( cd $dr
+ aclocalinclude="$ACLOCAL_FLAGS"
+ for k in $macrodirs; do
+ if test -d $k; then
+ aclocalinclude="$aclocalinclude -I $k"
+ ##else
+ ## echo "**Warning**: No such directory \`$k'. Ignored."
+ fi
+ done
+ if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then
+ if grep "sed.*POTFILES" configure.in >/dev/null; then
+ : do nothing -- we still have an old unmodified configure.in
+ else
+ echo "Creating $dr/aclocal.m4 ..."
+ test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+ # We've removed po/ChangeLog from the repository. Version
+ # 0.10.40 of gettext appends an entry to the ChangeLog every time
+ # anyone runs autogen.sh. Since developers do that a lot, and
+ # then proceed to commit their entire sandbox, we wind up with
+ # an ever-growing po/ChangeLog that generates CVS conflicts on
+ # a routine basis. There's no good reason for this.
+ echo 'This ChangeLog is redundant. Please see the main ChangeLog for i18n changes.' > po/ChangeLog
+ echo >> po/ChangeLog
+ echo 'This file is present only to keep po/Makefile.in.in happy.' >> po/ChangeLog
+ echo "Running gettextize... Ignore non-fatal messages."
+ echo "no" | gettextize --force --copy
+ echo "Making $dr/aclocal.m4 writable ..."
+ test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+ fi
+ fi
+ if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then
+ echo "Creating $dr/aclocal.m4 ..."
+ test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+ echo "Running gettextize... Ignore non-fatal messages."
+ echo "no" | gettextize --force --copy
+ echo "Making $dr/aclocal.m4 writable ..."
+ test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+ fi
+ if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
+ echo "Running libtoolize..."
+ libtoolize --force --copy
+ fi
+ echo "Running aclocal $aclocalinclude ..."
+ if aclocal $aclocalinclude -I src/main ; then
+ echo "added local version of AM_PATH_GIMPPRINT"
+ else
+ echo "aclocal returned error status; running again without '-I src/main' ..."
+ aclocal $aclocalinclude
+ echo "using installed version of AM_PATH_GIMPPRINT"
+ fi
+ if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
+ echo "Running autoheader..."
+ autoheader
+ fi
+ echo "Running automake --gnu $am_opt ..."
+ automake --add-missing --gnu $am_opt
+ echo "Running autoconf ..."
+ autoconf
+ )
+ fi
+done
+
+conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
+
+if test x$NOCONFIGURE = x; then
+ echo Running $srcdir/configure $conf_flags "$@" ...
+ $srcdir/configure $conf_flags "$@" \
+ && echo Now type \`make\' to compile $PKG_NAME || exit 1
+else
+ echo Skipping configure process.
+fi
diff --git a/scripts/config.guess b/scripts/config.guess
new file mode 100755
index 0000000..5145e35
--- /dev/null
+++ b/scripts/config.guess
@@ -0,0 +1,1363 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-10-21'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+ || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ rm -f $files ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;
+unset files'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mipseb-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ eval $set_cc_for_build
+ cat <<EOF >$dummy.s
+ .data
+\$Lformat:
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
+
+ .text
+ .globl main
+ .align 4
+ .ent main
+main:
+ .frame \$30,16,\$26,0
+ ldgp \$29,0(\$27)
+ .prologue 1
+ .long 0x47e03d80 # implver \$0
+ lda \$2,-1
+ .long 0x47e20c21 # amask \$2,\$1
+ lda \$16,\$Lformat
+ mov \$0,\$17
+ not \$1,\$18
+ jsr \$26,printf
+ ldgp \$29,0(\$26)
+ mov 0,\$16
+ jsr \$26,exit
+ .end main
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
+ if test "$?" = 0 ; then
+ case `$dummy` in
+ 0-0)
+ UNAME_MACHINE="alpha"
+ ;;
+ 1-0)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 1-1)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 1-101)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 2-303)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ 2-307)
+ UNAME_MACHINE="alphaev67"
+ ;;
+ 2-1307)
+ UNAME_MACHINE="alphaev68"
+ ;;
+ 3-1307)
+ UNAME_MACHINE="alphaev7"
+ ;;
+ esac
+ fi
+ rm -f $dummy.s $dummy && rmdir $tmpdir
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ fi ;;
+ esac
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3D:*:*:*)
+ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ # Determine whether the default compiler uses glibc.
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #if __GLIBC__ >= 2
+ LIBC=gnu
+ #else
+ LIBC=
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ rm -f $dummy.c && rmdir $tmpdir
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:3*)
+ echo i386-pc-interix3
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i386-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ rm -f $dummy.c && rmdir $tmpdir
+ test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ rm -f $dummy.c && rmdir $tmpdir
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ echo `uname -p`-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/scripts/config.sub b/scripts/config.sub
new file mode 100755
index 0000000..1dea9b7
--- /dev/null
+++ b/scripts/config.sub
@@ -0,0 +1,1470 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-09-05'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit 0;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k \
+ | m32r | m68000 | m68k | m88k | mcore \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+ | strongarm \
+ | tahoe | thumb | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* \
+ | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
+ | clipper-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* \
+ | m32r-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39 | mipstx39el \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+ | xtensa-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ mmix*)
+ basic_machine=mmix-knuth
+ os=-mmixware
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ or32 | or32-*)
+ basic_machine=or32-unknown
+ os=-coff
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2)
+ basic_machine=i686-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3d)
+ basic_machine=alpha-cray
+ os=-unicos
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic4x | c4x*)
+ basic_machine=tic4x-unknown
+ os=-coff
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ windows32)
+ basic_machine=i386-pc
+ os=-windows32-msvcrt
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparc | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto*)
+ os=-nto-qnx
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/scripts/install-sh b/scripts/install-sh
new file mode 100755
index 0000000..e9de238
--- /dev/null
+++ b/scripts/install-sh
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ chmodcmd=""
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/scripts/ltmain.sh b/scripts/ltmain.sh
new file mode 100644
index 0000000..7e0c9f4
--- /dev/null
+++ b/scripts/ltmain.sh
@@ -0,0 +1,5062 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# The name of this program.
+progname=`$echo "$0" | ${SED} 's%^.*/%%'`
+modename="$progname"
+
+# Constants.
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.4.3
+TIMESTAMP=" (1.922.2.110 2002/10/23 01:39:54)"
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|od -x` in
+ *[Cc]1*) # EBCDIC based system
+ SP2NL="tr '\100' '\n'"
+ NL2SP="tr '\r\n' '\100\100'"
+ ;;
+ *) # Assume ASCII based system
+ SP2NL="tr '\040' '\012'"
+ NL2SP="tr '\015\012' '\040\040'"
+ ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+: ${IFS=" "}
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ echo "$modename: not configured to build any kind of library" 1>&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit 1
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+
+# Parse our command line options once, thoroughly.
+while test $# -gt 0
+do
+ arg="$1"
+ shift
+
+ case $arg in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ execute_dlfiles)
+ execute_dlfiles="$execute_dlfiles $arg"
+ ;;
+ *)
+ eval "$prev=\$arg"
+ ;;
+ esac
+
+ prev=
+ prevopt=
+ continue
+ fi
+
+ # Have we seen a non-optional argument yet?
+ case $arg in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+ exit 0
+ ;;
+
+ --config)
+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
+ exit 0
+ ;;
+
+ --debug)
+ echo "$progname: enabling shell trace mode"
+ set -x
+ ;;
+
+ --dry-run | -n)
+ run=:
+ ;;
+
+ --features)
+ echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ echo "enable shared libraries"
+ else
+ echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ echo "enable static libraries"
+ else
+ echo "disable static libraries"
+ fi
+ exit 0
+ ;;
+
+ --finish) mode="finish" ;;
+
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
+ --preserve-dup-deps) duplicate_deps="yes" ;;
+
+ --quiet | --silent)
+ show=:
+ ;;
+
+ -dlopen)
+ prevopt="-dlopen"
+ prev=execute_dlfiles
+ ;;
+
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+
+ *)
+ nonopt="$arg"
+ break
+ ;;
+ esac
+done
+
+if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+ case $nonopt in
+ *cc | *++ | gcc* | *-gcc* | xlc*)
+ mode=link
+ for arg
+ do
+ case $arg in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
+ done
+ ;;
+ *db | *dbx | *strace | *truss)
+ mode=execute
+ ;;
+ *install*|cp|mv)
+ mode=install
+ ;;
+ *rm)
+ mode=uninstall
+ ;;
+ *)
+ # If we have no mode, but dlfiles were specified, then do execute mode.
+ test -n "$execute_dlfiles" && mode=execute
+
+ # Just use the default operation mode.
+ if test -z "$mode"; then
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+ case $mode in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+ prev=
+ lastarg=
+ srcfile="$nonopt"
+ suppress_output=
+
+ user_target=no
+ for arg
+ do
+ case $prev in
+ "") ;;
+ xcompiler)
+ # Aesthetically quote the previous argument.
+ prev=
+ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+
+ case $arg in
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+
+ # Add the previous argument to base_compile.
+ if test -z "$base_compile"; then
+ base_compile="$lastarg"
+ else
+ base_compile="$base_compile $lastarg"
+ fi
+ continue
+ ;;
+ esac
+
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ if test "$user_target" != "no"; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit 1
+ fi
+ user_target=next
+ ;;
+
+ -static)
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ lastarg="$lastarg $arg"
+ done
+ IFS="$save_ifs"
+ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+ # Add the arguments to base_compile.
+ if test -z "$base_compile"; then
+ base_compile="$lastarg"
+ else
+ base_compile="$base_compile $lastarg"
+ fi
+ continue
+ ;;
+ esac
+
+ case $user_target in
+ next)
+ # The next one is the -o target name
+ user_target=yes
+ continue
+ ;;
+ yes)
+ # We got the output file
+ user_target=set
+ libobj="$arg"
+ continue
+ ;;
+ esac
+
+ # Accept the current argument as the source file.
+ lastarg="$srcfile"
+ srcfile="$arg"
+
+ # Aesthetically quote the previous argument.
+
+ # Backslashify any backslashes, double quotes, and dollar signs.
+ # These are the only characters that are still specially
+ # interpreted inside of double-quoted scrings.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ case $lastarg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+ # Add the previous argument to base_compile.
+ if test -z "$base_compile"; then
+ base_compile="$lastarg"
+ else
+ base_compile="$base_compile $lastarg"
+ fi
+ done
+
+ case $user_target in
+ set)
+ ;;
+ no)
+ # Get the name of the library object.
+ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ *)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSfmso]'
+ case $libobj in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.f90) xform=f90 ;;
+ *.for) xform=for ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+ case $libobj in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+ exit 1
+ ;;
+ esac
+
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $libobj"
+ else
+ removelist="$libobj"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit 1" 1 2 15
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit 1" 1 2 15
+ else
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $run ln "$0" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+ echo $srcfile > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ # All platforms use -DPIC, to notify preprocessed assembler code.
+ command="$base_compile $srcfile $pic_flag -DPIC"
+ else
+ # Don't build PIC code
+ command="$base_compile $srcfile"
+ fi
+ if test "$build_old_libs" = yes; then
+ lo_libobj="$libobj"
+ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$libobj"; then
+ dir="$objdir"
+ else
+ dir="$dir/$objdir"
+ fi
+ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+
+ if test -d "$dir"; then
+ $show "$rm $libobj"
+ $run $rm $libobj
+ else
+ $show "$mkdir $dir"
+ $run $mkdir $dir
+ status=$?
+ if test $status -ne 0 && test ! -d $dir; then
+ exit $status
+ fi
+ fi
+ fi
+ if test "$compiler_o_lo" = yes; then
+ output_obj="$libobj"
+ command="$command -o $output_obj"
+ elif test "$compiler_c_o" = yes; then
+ output_obj="$obj"
+ command="$command -o $output_obj"
+ fi
+
+ $run $rm "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+ exit 1
+ fi
+
+ if test "$need_locks" = warn &&
+ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+ echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test x"$output_obj" != x"$libobj"; then
+ $show "$mv $output_obj $libobj"
+ if $run $mv $output_obj $libobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # If we have no pic_flag, then copy the object into place and finish.
+ if (test -z "$pic_flag" || test "$pic_mode" != default) &&
+ test "$build_old_libs" = yes; then
+ # Rename the .lo from within objdir to obj
+ if test -f $obj; then
+ $show $rm $obj
+ $run $rm $obj
+ fi
+
+ $show "$mv $libobj $obj"
+ if $run $mv $libobj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
+ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+ # Now arrange that obj and lo_libobj become the same file
+ $show "(cd $xdir && $LN_S $baseobj $libobj)"
+ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $run $rm "$lockfile"
+ fi
+ exit 0
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Allow error messages only from the first compilation.
+ suppress_output=' >/dev/null 2>&1'
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $srcfile"
+ else
+ # All platforms use -DPIC, to notify preprocessed assembler code.
+ command="$base_compile $srcfile $pic_flag -DPIC"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ output_obj="$obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+ $run $rm "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+ exit 1
+ fi
+
+ if test "$need_locks" = warn &&
+ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
+ echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit 1
+ fi
+
+ # Just move the object if needed
+ if test x"$output_obj" != x"$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we do not
+ # accidentally link it into a program.
+ if test "$build_libtool_libs" != yes; then
+ $show "echo timestamp > $libobj"
+ $run eval "echo timestamp > \$libobj" || exit $?
+ else
+ # Move the .lo from within objdir
+ $show "$mv $libobj $lo_libobj"
+ if $run $mv $libobj $lo_libobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+ fi
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $run $rm "$lockfile"
+ fi
+
+ exit 0
+ ;;
+
+ # libtool link mode
+ link | relink)
+ modename="$modename: link"
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invokation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args="$nonopt"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+
+ avoid_version=no
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+ prefer_static_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test $# -gt 0; do
+ arg="$1"
+ shift
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+ ;;
+ *) qarg=$arg ;;
+ esac
+ libtool_args="$libtool_args $qarg"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit 1
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit 1
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ xcompiler)
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ xlinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $wl$qarg"
+ prev=
+ compile_command="$compile_command $wl$qarg"
+ finalize_command="$finalize_command $wl$qarg"
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n $prev
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+ continue
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: more than one -exported-symbols argument is not allowed"
+ exit 1
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | no/*-*-nonstopux*)
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ exit 1
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "*) ;;
+ *)
+ deplibs="$deplibs -L$dir"
+ lib_search_path="$lib_search_path $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-pw32* | *-*-beos*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-mingw* | *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # in order for the loader to find any dlls it needs.
+ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit 1
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
+
+ -static)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Wl,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $wl$flag"
+ linker_flags="$linker_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+ *.lo | *.$objext)
+ # A library or standard object.
+ if test "$prev" = dlfiles; then
+ # This file was specified with -dlopen.
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $arg"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
+ prev=
+ else
+ case $arg in
+ *.lo) libobjs="$libobjs $arg" ;;
+ *) objs="$objs $arg" ;;
+ esac
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ deplibs="$deplibs $arg"
+ old_deplibs="$old_deplibs $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ dlfiles="$dlfiles $arg"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ dlprefiles="$dlprefiles $arg"
+ prev=
+ else
+ deplibs="$deplibs $arg"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+ done # argument parsing loop
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+ # Create the object directory.
+ if test ! -d $output_objdir; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test $status -ne 0 && test ! -d $output_objdir; then
+ exit $status
+ fi
+ fi
+
+ # Determine the type of output
+ case $output in
+ "")
+ $echo "$modename: you must specify an output file" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ specialdeplibs=
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ libs="$libs $deplib"
+ done
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+ case $linkmode in
+ lib)
+ passes="conv link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+ for pass in $passes; do
+ if test $linkmode = prog; then
+ # Determine which files to process
+ case $pass in
+ dlopen)
+ libs="$dlfiles"
+ save_deplibs="$deplibs" # Collect dlpreopened libraries
+ deplibs=
+ ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -l*)
+ if test $linkmode = oldlib && test $linkmode = obj; then
+ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
+ continue
+ fi
+ if test $pass = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}.la"
+ if test -f "$lib"; then
+ found=yes
+ break
+ fi
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ ;; # -l
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test $pass = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ prog)
+ if test $pass = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test $pass = scan; then
+ deplibs="$deplib $deplibs"
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ ;;
+ *)
+ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test $pass = link; then
+ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la) lib="$deplib" ;;
+ *.$libext)
+ if test $pass = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ if test "$deplibs_check_method" != pass_all; then
+ echo
+ echo "*** Warning: Trying to link with static lib archive $deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because the file extensions .$libext of this argument makes me believe"
+ echo "*** that it is just a static archive that I should not used here."
+ else
+ echo
+ echo "*** Warning: Linking the shared library $output against the"
+ echo "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ continue
+ ;;
+ prog)
+ if test $pass != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ newdlprefiles="$newdlprefiles $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ newdlfiles="$newdlfiles $deplib"
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+ if test $found = yes || test -f "$lib"; then :
+ else
+ $echo "$modename: cannot find the library \`$lib'" 1>&2
+ exit 1
+ fi
+
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variable installed.
+ installed=yes
+
+ # Read the .la file
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test $linkmode = oldlib && test $linkmode = obj; }; then
+ # Add dl[pre]opened files of deplib
+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+ fi
+
+ if test $pass = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit 1
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $ladir/$objdir/$old_library"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+ elif test $linkmode != prog && test $linkmode != lib; then
+ $echo "$modename: \`$lib' is not a convenience library" 1>&2
+ exit 1
+ fi
+ continue
+ fi # $pass = conv
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit 1
+ fi
+
+ # This library was specified with -dlopen.
+ if test $pass = dlopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+ exit 1
+ fi
+ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload.
+ dlprefiles="$dlprefiles $lib"
+ else
+ newdlfiles="$newdlfiles $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ $echo "$modename: warning: library \`$lib' was moved." 1>&2
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$libdir"
+ absdir="$libdir"
+ fi
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ fi # $installed = yes
+ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+ # This library was specified with -dlpreopen.
+ if test $pass = dlpreopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+ exit 1
+ fi
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ newdlprefiles="$newdlprefiles $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ newdlprefiles="$newdlprefiles $dir/$dlname"
+ else
+ newdlprefiles="$newdlprefiles $dir/$linklib"
+ fi
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test $linkmode = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs"
+ fi
+ continue
+ fi
+
+ if test $linkmode = prog && test $pass != link; then
+ newlib_search_path="$newlib_search_path $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+ esac
+ # Need to link against all dependency_libs?
+ if test $linkalldeplibs = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ link_static=no # Whether the deplib will be linked statically
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ # Link against this shared library
+
+ if test "$linkmode,$pass" = "prog,link" ||
+ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ if test $linkmode = prog; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var"; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *" $absdir "*) ;;
+ *) temp_rpath="$temp_rpath $dir" ;;
+ esac
+ fi
+ fi
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+ need_relink=yes
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+ libname=`eval \\$echo \"$libname_spec\"`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin*)
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ soname=`echo $soroot | ${SED} -e 's/^.*\///'`
+ newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ $show "extracting exported symbol list from \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ eval cmds=\"$extract_expsyms_cmds\"
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ $show "generating import library for \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ eval cmds=\"$old_archive_from_expsyms_cmds\"
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n $old_archive_from_expsyms_cmds
+
+ if test $linkmode = prog || test "$mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit 1
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+ esac
+ fi
+ if test $linkmode = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes && \
+ test "$hardcode_minus_L" != yes && \
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test $linkmode = prog || test "$mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ add="-l$name"
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ add="-l$name"
+ fi
+
+ if test $linkmode = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test $linkmode = prog; then
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+
+ # Try to link the static library
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ echo
+ echo "*** Warning: This system can not link to static lib archive $lib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ echo "*** But as you try to build a module library, libtool will still create "
+ echo "*** a static module, that should work as long as the dlopening application"
+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ convenience="$convenience $dir/$old_library"
+ old_convenience="$old_convenience $dir/$old_library"
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test $linkmode = lib; then
+ if test -n "$dependency_libs" &&
+ { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
+ test $link_static = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ *) temp_deplibs="$temp_deplibs $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ newlib_search_path="$newlib_search_path $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+
+ if test $link_all_deplibs != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$deplib" && dir="."
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="-L$absdir/$objdir"
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+ if test "$absdir" != "$libdir"; then
+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ fi
+ path="-L$absdir"
+ fi
+ ;;
+ *) continue ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$deplibs $path" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ if test $pass = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test $pass != dlopen; then
+ test $pass != scan && dependency_libs="$newdependency_libs"
+ if test $pass != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ if test "$pass" = "conv" &&
+ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
+ libs="$deplibs" # reset libs
+ deplibs=
+ fi
+ done # for pass
+ if test $linkmode = prog; then
+ dlfiles="$newdlfiles"
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+ fi
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ objs="$objs$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+ exit 1
+ else
+ echo
+ echo "*** Warning: Linking the shared library $output against the non-libtool"
+ echo "*** objects $objs is not portable!"
+ libobjs="$libobjs $objs"
+ fi
+ fi
+
+ if test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+ if test $# -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ libext=al
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ current="$2"
+ revision="$3"
+ age="$4"
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ ;;
+ esac
+
+ case $revision in
+ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ ;;
+ esac
+
+ case $age in
+ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ ;;
+ esac
+
+ if test $age -gt $current; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit 1
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ minor_current=`expr $current + 1`
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ irix | nonstopux)
+ major=`expr $current - $age + 1`
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test $loop != 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ major=.`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test $loop != 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring="$verstring:${current}.0"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ verstring="0.0"
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=""
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+ fi
+
+ if test "$mode" != relink; then
+ # Remove our outputs.
+ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
+ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ for path in $notinst_path; do
+ lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+ deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+ dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+ done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) dlfiles="$dlfiles $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) dlprefiles="$dlprefiles $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ deplibs="$deplibs -framework System"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd*)
+ # Do not include libc due to us having libc/libc_r.
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test $build_libtool_need_lc = "yes"; then
+ deplibs="$deplibs -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behaviour.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $rm conftest
+ $CC -o conftest conftest.c $deplibs
+ if test $? -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ echo
+ echo "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+ # Error occured in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ $rm conftest
+ $CC -o conftest conftest.c $i
+ # Did it work?
+ if test $? -eq 0 ; then
+ ldd_output=`ldd conftest`
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ echo
+ echo "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ else
+ droppeddeps=yes
+ echo
+ echo "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | ${SED} 10q \
+ | egrep "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ echo "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ echo "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ echo "*** with $libname and none of the candidates passed a file format test"
+ echo "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check below in file_magic test
+ if eval echo \"$potent_lib\" 2>/dev/null \
+ | ${SED} 10q \
+ | egrep "$match_pattern_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ echo "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ echo "*** with $libname and none of the candidates passed a file format test"
+ echo "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
+ grep . >/dev/null; then
+ echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ echo "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+
+ if test $allow_undefined = no; then
+ echo
+ echo "*** Since this library must not contain undefined symbols,"
+ echo "*** because either the platform does not support them or"
+ echo "*** it was explicitly requested with -no-undefined,"
+ echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ if test $hardcode_into_libs = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ dep_rpath="$dep_rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ test -z "$dlname" && dlname=$soname
+
+ lib="$output_objdir/$realname"
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+ # Ensure that we have .o objects for linkers which dislike .lo
+ # (e.g. aix) in case we are running --disable-static
+ for obj in $libobjs; do
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+ if test ! -f $xdir/$oldobj; then
+ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
+ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
+ fi
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ eval cmds=\"$export_symbols_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ for xlib in $convenience; do
+ # Extract the objects.
+ case $xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linker_flags="$linker_flags $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval cmds=\"$archive_expsym_cmds\"
+ else
+ save_deplibs="$deplibs"
+ for conv in $convenience; do
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ if test "$test_deplib" != "$conv"; then
+ tmp_deplibs="$tmp_deplibs $test_deplib"
+ fi
+ done
+ deplibs="$tmp_deplibs"
+ done
+ eval cmds=\"$archive_cmds\"
+ deplibs="$save_deplibs"
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+ exit 0
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+ case $output in
+ *.lo)
+ if test -n "$objs$old_deplibs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit 1
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $run $rm $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ for xlib in $convenience; do
+ # Extract the objects.
+ case $xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+ fi
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ eval cmds=\"$reload_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit 0
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ $show "echo timestamp > $libobj"
+ $run eval "echo timestamp > $libobj" || exit $?
+ exit 0
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ eval cmds=\"$reload_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ else
+ # Just create a symlink.
+ $show $rm $libobj
+ $run $rm $libobj
+ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$libobj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
+ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
+ $show "(cd $xdir && $LN_S $oldobj $baseobj)"
+ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit 0
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+ esac
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ fi
+
+ if test "$preload" = yes; then
+ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ case $host in
+ *darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ compile_command="$compile_command ${wl}-bind_at_load"
+ finalize_command="$finalize_command ${wl}-bind_at_load"
+ ;;
+ esac
+ ;;
+ esac
+
+ compile_command="$compile_command $compile_deplibs"
+ finalize_command="$finalize_command $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$libdir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
+
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
+ else
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ fi
+ fi
+
+ if test -n "$dlsyms"; then
+ case $dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
+
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
+
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$output.exp"
+ $run $rm $export_symbols
+ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ else
+ $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`echo "$arg" | ${SED} -e 's%^.*/%%'`
+ $run eval 'echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+ echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ fi
+
+ pic_flag_for_symtable=
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DPIC";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit 1
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+ if test $need_relink = no || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+ status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+ exit $status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $run $rm $output
+ # Link the executable and exit
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+ exit 0
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+
+ # Now create the wrapper script.
+ $show "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Quote $echo for shipping.
+ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+ case $0 in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if our run command is non-null.
+ if test -z "$run"; then
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*) exeext=.exe ;;
+ *) exeext= ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit 1" 1 2 15
+
+ $echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ echo=\"$qecho\"
+ file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
+ fi\
+"
+ $echo >> $output "\
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ echo >> $output "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 ${SED}
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $echo >> $output "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+"
+ case $host in
+ # win32 systems need to use the prog path for dll
+ # lookup to work
+ *-*-cygwin* | *-*-pw32*)
+ $echo >> $output "\
+ exec \$progdir/\$program \${1+\"\$@\"}
+"
+ ;;
+
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+ exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $echo >> $output "\
+ # Export the path to the program.
+ PATH=\"\$progdir:\$PATH\"
+ export PATH
+
+ exec \$program \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+ exit 1
+ fi
+ else
+ # The program doesn't exist.
+ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+ echo \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit 1
+ fi
+fi\
+"
+ chmod +x $output
+ fi
+ exit 0
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "mkdir $gentop"
+ $run mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+
+ # Add in members from convenience archives.
+ for xlib in $addlibs; do
+ # Extract the objects.
+ case $xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+ *) xabs=`pwd`"/$xlib" ;;
+ esac
+ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+ xdir="$gentop/$xlib"
+
+ $show "${rm}r $xdir"
+ $run ${rm}r "$xdir"
+ $show "mkdir $xdir"
+ $run mkdir "$xdir"
+ status=$?
+ if test $status -ne 0 && test ! -d "$xdir"; then
+ exit $status
+ fi
+ $show "(cd $xdir && $AR x $xabs)"
+ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+
+ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+ done
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ eval cmds=\"$old_archive_from_new_cmds\"
+ else
+ # Ensure that we have .o objects in place in case we decided
+ # not to build a shared library, and have fallen back to building
+ # static libs even though --disable-static was passed!
+ for oldobj in $oldobjs; do
+ if test ! -f $oldobj; then
+ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$oldobj"; then
+ xdir="."
+ else
+ xdir="$xdir"
+ fi
+ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
+ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
+ $show "(cd $xdir && ${LN_S} $obj $baseobj)"
+ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
+ fi
+ done
+
+ eval cmds=\"$old_archive_cmds\"
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
+ fi
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+ newdependency_libs="$newdependency_libs $libdir/$name"
+ ;;
+ *) newdependency_libs="$newdependency_libs $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+ for lib in $dlfiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+ newdlfiles="$newdlfiles $libdir/$name"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit 1
+ fi
+ newdlprefiles="$newdlprefiles $libdir/$name"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $rm $output
+ # place dlname in correct position for cygwin
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ esac
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test $need_relink = yes; then
+ $echo >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+ exit 0
+ ;;
+
+ # libtool install mode
+ install)
+ modename="$modename: install"
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$arg "
+ arg="$1"
+ shift
+ else
+ install_prog=
+ arg="$nonopt"
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog$arg"
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ for arg
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+ dest="$arg"
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f) prev="-f" ;;
+ -g) prev="-g" ;;
+ -m) prev="-m" ;;
+ -o) prev="-o" ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*) ;;
+
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest="$arg"
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog $arg"
+ done
+
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ $echo "$modename: no file or destination specified" 1>&2
+ else
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Strip any trailing slash from the destination.
+ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$destdir" = "X$dest" && destdir=.
+ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+ if test $# -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ library_names=
+ old_library=
+ relink_command=
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ if test -n "$relink_command"; then
+ $echo "$modename: warning: relinking \`$file'" 1>&2
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ continue
+ fi
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$srcname $destdir/$realname"
+ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+ if test -n "$stripme" && test -n "$striplib"; then
+ $show "$striplib $destdir/$realname"
+ $run eval "$striplib $destdir/$realname" || exit $?
+ fi
+
+ if test $# -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ eval cmds=\"$postinstall_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit 0
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin*|*mingw*)
+ wrapper=`echo $file | ${SED} -e 's,.exe$,,'`
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+ notinst_deplibs=
+ relink_command=
+
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $wrapper ;;
+ *) . ./$wrapper ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$notinst_deplibs"; then
+ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+ exit 1
+ fi
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $wrapper ;;
+ *) . ./$wrapper ;;
+ esac
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir="/tmp"
+ test -n "$TMPDIR" && tmpdir="$TMPDIR"
+ tmpdir="$tmpdir/libtool-$$"
+ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
+ else
+ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+ continue
+ fi
+ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
+ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyways
+ case $install_prog,$host in
+ /usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ destfile=`echo $destfile | ${SED} -e 's,.exe$,,'`
+ ;;
+ esac
+ ;;
+ esac
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
+ if test -n "$stripme" && test -n "$striplib"; then
+ $show "$old_striplib $oldlib"
+ $run eval "$old_striplib $oldlib" || exit $?
+ fi
+
+ # Do each command in the postinstall commands.
+ eval cmds=\"$old_postinstall_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$future_libdirs"; then
+ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+ fi
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $0 --finish$current_libdirs'
+ else
+ exit 0
+ fi
+ ;;
+
+ # libtool finish mode
+ finish)
+ modename="$modename: finish"
+ libdirs="$nonopt"
+ admincmds=
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for dir
+ do
+ libdirs="$libdirs $dir"
+ done
+
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ eval cmds=\"$finish_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+ done
+ IFS="$save_ifs"
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $run eval "$cmds" || admincmds="$admincmds
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ test "$show" = ":" && exit 0
+
+ echo "----------------------------------------------------------------------"
+ echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ echo " $libdir"
+ done
+ echo
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ echo
+ echo "See any operating system documentation about shared libraries for"
+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ echo "----------------------------------------------------------------------"
+ exit 0
+ ;;
+
+ # libtool execute mode
+ execute)
+ modename="$modename: execute"
+
+ # The first argument is the command name.
+ cmd="$nonopt"
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+ exit 1
+ fi
+
+ # Handle -dlopen flags immediately.
+ for file in $execute_dlfiles; do
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ dir=
+ case $file in
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+ exit 1
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ ;;
+
+ *)
+ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+ args="$args \"$file\""
+ done
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved enviroment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+ exit 0
+ fi
+ ;;
+
+ # libtool clean and uninstall mode
+ clean | uninstall)
+ modename="$modename: $mode"
+ rm="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) rm="$rm $arg"; rmforce=yes ;;
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+ done
+
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ fi
+
+ rmdirs=
+
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$file"; then
+ dir=.
+ objdir="$objdir"
+ else
+ objdir="$dir/$objdir"
+ fi
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ test $mode = uninstall && objdir="$dir"
+
+ # Remember objdir for removal later, being careful to avoid duplicates
+ if test $mode = clean; then
+ case " $rmdirs " in
+ *" $objdir "*) ;;
+ *) rmdirs="$rmdirs $objdir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if (test -L "$file") >/dev/null 2>&1 \
+ || (test -h "$file") >/dev/null 2>&1 \
+ || test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $objdir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+ if test $mode = uninstall; then
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ eval cmds=\"$postuninstall_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test $? != 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ eval cmds=\"$old_postuninstall_cmds\"
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test $? != 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ fi
+ fi
+ ;;
+
+ *.lo)
+ if test "$build_old_libs" = yes; then
+ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
+ rmfiles="$rmfiles $dir/$oldobj"
+ fi
+ ;;
+
+ *)
+ # Do a test to see if this is a libtool program.
+ if test $mode = clean &&
+ (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ relink_command=
+ . $dir/$file
+
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ fi
+ ;;
+ esac
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles || exit_status=1
+ done
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ $show "rmdir $dir"
+ $run rmdir $dir >/dev/null 2>&1
+ fi
+ done
+
+ exit $exit_status
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+ exit 1
+ ;;
+ esac
+
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit 1
+ fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit 1
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+-n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --finish same as \`--mode=finish'
+ --help display this help message and exit
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
+ --version print version information
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE."
+ exit 0
+ ;;
+
+clean)
+ $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+compile)
+ $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -prefer-pic try to building PIC objects only
+ -prefer-non-pic try to building non-PIC objects only
+ -static always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+execute)
+ $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+finish)
+ $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+install)
+ $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+link)
+ $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -static do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+uninstall)
+ $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+*)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+ exit 1
+ ;;
+esac
+
+echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit 0
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/scripts/mdate-sh b/scripts/mdate-sh
new file mode 100755
index 0000000..37171f2
--- /dev/null
+++ b/scripts/mdate-sh
@@ -0,0 +1,92 @@
+#!/bin/sh
+# Get modification time of a file or directory and pretty-print it.
+# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Prevent date giving response in another language.
+LANG=C
+export LANG
+LC_ALL=C
+export LC_ALL
+LC_TIME=C
+export LC_TIME
+
+# Get the extended ls output of the file or directory.
+# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
+if ls -L /dev/null 1>/dev/null 2>&1; then
+ set - x`ls -L -l -d $1`
+else
+ set - x`ls -l -d $1`
+fi
+# The month is at least the fourth argument
+# (3 shifts here, the next inside the loop).
+shift
+shift
+shift
+
+# Find the month. Next argument is day, followed by the year or time.
+month=
+until test $month
+do
+ shift
+ case $1 in
+ Jan) month=January; nummonth=1;;
+ Feb) month=February; nummonth=2;;
+ Mar) month=March; nummonth=3;;
+ Apr) month=April; nummonth=4;;
+ May) month=May; nummonth=5;;
+ Jun) month=June; nummonth=6;;
+ Jul) month=July; nummonth=7;;
+ Aug) month=August; nummonth=8;;
+ Sep) month=September; nummonth=9;;
+ Oct) month=October; nummonth=10;;
+ Nov) month=November; nummonth=11;;
+ Dec) month=December; nummonth=12;;
+ esac
+done
+
+day=$2
+
+# Here we have to deal with the problem that the ls output gives either
+# the time of day or the year.
+case $3 in
+ *:*) set `date`; eval year=\$$#
+ case $2 in
+ Jan) nummonthtod=1;;
+ Feb) nummonthtod=2;;
+ Mar) nummonthtod=3;;
+ Apr) nummonthtod=4;;
+ May) nummonthtod=5;;
+ Jun) nummonthtod=6;;
+ Jul) nummonthtod=7;;
+ Aug) nummonthtod=8;;
+ Sep) nummonthtod=9;;
+ Oct) nummonthtod=10;;
+ Nov) nummonthtod=11;;
+ Dec) nummonthtod=12;;
+ esac
+ # For the first six month of the year the time notation can also
+ # be used for files modified in the last year.
+ if (expr $nummonth \> $nummonthtod) > /dev/null;
+ then
+ year=`expr $year - 1`
+ fi;;
+ *) year=$3;;
+esac
+
+# The result.
+echo $day $month $year
diff --git a/scripts/missing b/scripts/missing
new file mode 100755
index 0000000..7789652
--- /dev/null
+++ b/scripts/missing
@@ -0,0 +1,190 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing - GNU libit 0.0"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acinclude.m4' or \`configure.in'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`configure.in'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`acconfig.h' or \`configure.in'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is missing on your system. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+ system. You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequirements for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/scripts/mkchlog b/scripts/mkchlog
index 082b01b..b62b971 100755
--- a/scripts/mkchlog
+++ b/scripts/mkchlog
@@ -6,8 +6,93 @@
# for any purpose.
%logmsgs = (); # Index by date, time, and author
+%fileversions = ();
$skipme = 0;
+@cvsdirs=`find . -type d -name CVS -print`;
+map { chomp; s,^\./,, } @cvsdirs;
+foreach $d (@cvsdirs) {
+ if (open ENTRIES, "$d/Entries") {
+ local ($rootdir) = $d;
+ $rootdir =~ s/CVS$//;
+ while (<ENTRIES>) {
+ local ($type, $file, $version, @junk) = split /\//;
+ if ($type eq "") {
+ $file = "$rootdir$file";
+ $fileversions{$file} = $version;
+ }
+ }
+ close ENTRIES;
+ }
+}
+
+sub compare_versions
+{
+ # vw: version of the working file
+ # vl: version from the log
+ # The idea is that we want versions on the current branch, on branches
+ # leading to the current branch, and on the root prior to the current
+ # branch.
+ #
+ # Example: the current file is 1.5.12.2.4.3
+ #
+ # We want versions:
+ # 1.1
+ # 1.2
+ # 1.3
+ # 1.4
+ # 1.5
+ # 1.5.12.1
+ # 1.5.12.2
+ # 1.5.12.2.4.1
+ # 1.5.12.2.4.2
+ # 1.5.12.2.4.3
+ #
+ # We look at the numbers in pairs. The first number in each pair is
+ # the branch number; the second number is the version on the branch.
+ # The pairs are of the form (B, V).
+ #
+ # If the number of components in the log version is greater than the
+ # number of components in the working version, we aren't interested.
+ # This file cannot be a predecessor of the working version; it is
+ # either a branch off the working version, or it is an entirely different
+ # branch.
+ #
+ # We next iterate over all pairs in the log version. The following must
+ # be true for all pairs:
+ #
+ # Bw = Bl
+ # Vw >= Vl
+ #
+ # Note that there's no problem if the number of components in the
+ # working version exceeds the number of components in the log version.
+ #
+ # There is a special case: If the working version doesn't exist at all,
+ # we return true if the log version is on the mainline. This lets us
+ # see log messages from files that have been deleted.
+
+ my ($vw, $vl) = @_;
+ if ($vw eq "") {
+ return 2;
+ }
+ my (@vvw) = split /\./, $vw;
+ my (@vvl) = split /\./, $vl;
+ if ($#vvl > $#vvw) {
+ return 0;
+ }
+ my ($i);
+ for ($i = 0; $i < $#vvl; $i += 2) {
+ my ($bl) = $vvl[$i];
+ my ($vl) = $vvl[$i + 1];
+ my ($bw) = $vvw[$i];
+ my ($vw) = $vvw[$i + 1];
+ if ($bw != $bl || $vw < $vl) {
+ return 0;
+ }
+ }
+ return 1;
+}
+
while (<>) {
if (/^Working file: /) {
chomp;
@@ -22,11 +107,18 @@ while (<>) {
next;
} elsif (/^revision /) {
($ignore, $revision) = split;
- @junk = split(/\./, $revision);
- if ($#junk > 2) {
- $skipme = 1;
- } else {
+ my ($check) =&compare_versions($fileversions{$currentfile}, $revision);
+ #
+ # Special case -- if a file is not in the current sandbox, but is
+ # at top level, log it; otherwise if it is not in the current
+ # sandbox, don't log it.
+ #
+ if (($check == 2 && !($currentfile =~ /\//) &&
+ ($currentfile =~ /\.[chly]$/)) ||
+ $check == 1) {
$skipme = 0;
+ } else {
+ $skipme = 1;
}
} elsif (/^date: /) {
($ignore, $date, $time, $ignore, $author, $ignore, $ignore,
@@ -51,7 +143,7 @@ while (<>) {
if ($skipme == 0) {
if ($logmsgs{$datetimeauthor}) {
$stuff = $logmsgs{$datetimeauthor};
- $stuff =~ s/\n/\n\t$currentfile ($revision) ($plus $minus)\n/;
+ $stuff =~ s/\n\n/\n\t$currentfile ($revision) ($plus $minus)\n\n/;
$logmsgs{$datetimeauthor} = $stuff;
} else {
$logmsgs{$datetimeauthor} = "Files:\t$currentfile ($revision) ($plus $minus)\n\n$body"
diff --git a/scripts/mkinstalldirs b/scripts/mkinstalldirs
new file mode 100755
index 0000000..4f58503
--- /dev/null
+++ b/scripts/mkinstalldirs
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
+
+errstatus=0
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644
index 282522d..0000000
--- a/src/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/src/Makefile.am b/src/Makefile.am
index b2c3d3a..f969b88 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.7 2001/09/09 20:40:27 rleigh Exp $
+## $Id: Makefile.am,v 1.7.4.1 2002/02/15 02:01:28 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..e61fee0
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,407 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INCLUDES = @INCLUDES@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+NONGIMP_SUBDIRS = cups foomatic ghost testpattern
+SUBDIRS = printdef main escputil gimp $(NONGIMP_SUBDIRS)
+
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ rev="$$subdir $$rev"; \
+ test "$$subdir" = "." && dot_seen=yes; \
+ done; \
+ test "$$dot_seen" = "no" && rev=". $$rev"; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+ || exit 1; \
+ fi; \
+ done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am: clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am: distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/cups/.cvsignore b/src/cups/.cvsignore
deleted file mode 100644
index bd2def4..0000000
--- a/src/cups/.cvsignore
+++ /dev/null
@@ -1,13 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-canon
-commandtocanon
-commandtoepson
-cups-calibrate
-epson
-genppd
-ppd
-rastertoprinter
-ppd-stamp
diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
index 2580fdf..6b1d861 100644
--- a/src/cups/Makefile.am
+++ b/src/cups/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.45 2001/11/18 00:05:17 rlk Exp $
+## $Id: Makefile.am,v 1.45.2.12 2003/12/24 12:40:47 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -41,8 +41,12 @@ cups_modeldir = $(pkgdatadir)/model
AM_CFLAGS = $(GNUCFLAGS)
DEFS = @CUPS_CFLAGS@ @DEFS@ -I. -I$(srcdir) -I../.. -DCUPS_DATADIR=\"$(pkgdatadir)\" -DGIMP_PRINT_VERSION=\"$(VERSION)\"
INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS)
-LIBS = @LIBS@ ../../lib/libprintut.la $(INTLLIBS) ../../lib/libprintut.la
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
+if BUILD_GENPPD_STATIC
+STATIC_LDOPTS=-static
+endif
## Programs
@@ -61,23 +65,25 @@ EXTRA_PROGRAMS = cups-calibrate commandtoepson epson genppd rastertoprinter comm
CUPS_LIBS = @CUPS_LIBS@
cups_calibrate_SOURCES = cups-calibrate.c
-cups_calibrate_LDADD = -lm
+cups_calibrate_LDADD = $(LIBPRINTUT) $(LIBM)
commandtoepson_SOURCES = commandtoepson.c
-commandtoepson_LDADD = $(CUPS_LIBS)
+commandtoepson_LDADD = $(LIBPRINTUT) $(CUPS_LIBS)
canon_SOURCES = canon.c
-canon_LDADD = $(CUPS_LIBS)
+canon_LDADD = $(LIBPRINTUT) $(CUPS_LIBS)
epson_SOURCES = epson.c
-epson_LDADD = $(CUPS_LIBS)
+epson_LDADD = $(LIBPRINTUT) $(CUPS_LIBS)
genppd_SOURCES = genppd.c
-genppd_LDADD = $(CUPS_LIBS) $(LIBGIMPPRINT_LIBS)
+genppd_LDADD = $(LIBPRINTUT) $(CUPS_LIBS) $(LIBGIMPPRINT_LIBS)
+genppd_LDFLAGS= $(STATIC_LDOPTS)
genppd_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
rastertoprinter_SOURCES = rastertoprinter.c
-rastertoprinter_LDADD = $(CUPS_LIBS) $(LIBGIMPPRINT_LIBS)
+rastertoprinter_LDADD = $(LIBPRINTUT) $(CUPS_LIBS) $(LIBGIMPPRINT_LIBS)
+rastertoprinter_LDFLAGS= $(STATIC_LDOPTS)
rastertoprinter_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
@@ -95,6 +101,7 @@ endif
if BUILD_TRANSLATED_PPDS
PPD_NLS = $(PPD_NLS_1)
+LINGUAS = $(ALL_LINGUAS)
endif
if USE_NLS
@@ -110,26 +117,21 @@ install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
$(mkinstalldirs) $(DESTDIR)$(cups_modeldir)/$$language; \
cd ppd/$$language; \
for ppdfile in * ; do \
- $(INSTALL_DATA) $$ppdfile $(DESTDIR)$(cups_modeldir)/$$language ; \
+ (cd ../..; $(INSTALL_DATA) ppd/$$language/$$ppdfile $(DESTDIR)$(cups_modeldir)/$$language) ; \
done; \
- cd ..; \
+ cd ..; \
done \
fi
uninstall-local: $(INSTALL_DATA_LOCAL_DEPS)
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
- $(mkinstalldirs) $(DESTDIR)$(cups_modeldir); \
- cd ppd ; \
- for language in C $(ALL_LINGUAS) ; do \
- cd ..; \
- $(mkinstalldirs) $(DESTDIR)$(cups_modeldir)/$$language; \
- cd ppd/C ; \
- for ppdfile in * ; do \
- if test -f "$(DESTDIR)$(cups_modeldir)/$$language/$$ppdfile" ; then \
- $(RM) $(DESTDIR)$(cups_modeldir)/$$language/$$ppdfile ; \
+ for language in C $(LINGUAS) ; do \
+ echo "Removing $$language locale PPD files..." ; \
+ for ppdfile in ppd/$$language/* ; do \
+ if test -f "$(DESTDIR)$(cups_modeldir)/$$language/`basename $$ppdfile`" ; then \
+ $(RM) -f $(DESTDIR)$(cups_modeldir)/$$language/`basename $$ppdfile` ; \
fi ; \
done; \
- cd ..; \
done \
fi
@@ -153,6 +155,8 @@ refresh-data-local: ppd
install-data-hook:
# Remove unused directories in install tree
+ -@echo 'Expect a number of "rmdir: Directory not empty" warnings'
+ -@echo 'These messages are harmless and should be ignored.'
-rmdir $(DESTDIR)$(cups_modeldir)
-rmdir $(DESTDIR)$(pkgdatadir)
-rmdir $(DESTDIR)$(cupsexec_backenddir)
@@ -195,7 +199,7 @@ ppd-nls: genppd
cd $(top_builddir)/po ; \
$(MAKE) ; \
$(MAKE) DESTDIR= prefix=$${wdir}/catalog datadir=$${wdir}/catalog/share install
- for language in $(ALL_LINGUAS) ; do \
+ for language in $(LINGUAS) ; do \
mkdir ppd/$$language ; \
echo "$$language:" ; \
LANGUAGE=$$language ./genppd --prefix=ppd/$$language --catalog=`pwd`/catalog/share/locale ; \
diff --git a/src/cups/Makefile.in b/src/cups/Makefile.in
new file mode 100644
index 0000000..edffedf
--- /dev/null
+++ b/src/cups/Makefile.in
@@ -0,0 +1,789 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_MAN = @CUPS_MAN@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+PACKAGE = cups
+
+bindir = @cups_bindir@
+
+pkgdatadir = $(cups_conf_datadir)
+pkglibdir = $(cups_conf_serverbin)
+pkgsysconfdir = $(cups_conf_serverroot)
+
+cupsexec_backenddir = $(pkglibdir)/backend
+cupsexec_filterdir = $(pkglibdir)/filter
+cups_modeldir = $(pkgdatadir)/model
+
+AM_CFLAGS = $(GNUCFLAGS)
+DEFS = @CUPS_CFLAGS@ @DEFS@ -I. -I$(srcdir) -I../.. -DCUPS_DATADIR=\"$(pkgdatadir)\" -DGIMP_PRINT_VERSION=\"$(VERSION)\"
+INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS)
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
+
+@BUILD_GENPPD_STATIC_TRUE@STATIC_LDOPTS = -static
+
+CUPS_BIN = cups-calibrate
+CUPS_BACKEND_BIN = epson canon
+CUPS_FILTER_BIN = rastertoprinter commandtoepson commandtocanon
+CUPS_NOINST_BIN = genppd
+
+bin_PROGRAMS = @CUPS_BIN@
+cupsexec_backend_PROGRAMS = @CUPS_BACKEND_BIN@
+cupsexec_filter_PROGRAMS = @CUPS_FILTER_BIN@
+noinst_PROGRAMS = @CUPS_NOINST_BIN@
+
+EXTRA_PROGRAMS = cups-calibrate commandtoepson epson genppd rastertoprinter commandtocanon canon
+
+CUPS_LIBS = @CUPS_LIBS@
+
+cups_calibrate_SOURCES = cups-calibrate.c
+cups_calibrate_LDADD = $(LIBPRINTUT) $(LIBM)
+
+commandtoepson_SOURCES = commandtoepson.c
+commandtoepson_LDADD = $(LIBPRINTUT) $(CUPS_LIBS)
+
+canon_SOURCES = canon.c
+canon_LDADD = $(LIBPRINTUT) $(CUPS_LIBS)
+
+epson_SOURCES = epson.c
+epson_LDADD = $(LIBPRINTUT) $(CUPS_LIBS)
+
+genppd_SOURCES = genppd.c
+genppd_LDADD = $(LIBPRINTUT) $(CUPS_LIBS) $(LIBGIMPPRINT_LIBS)
+genppd_LDFLAGS = $(STATIC_LDOPTS)
+genppd_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+rastertoprinter_SOURCES = rastertoprinter.c
+rastertoprinter_LDADD = $(LIBPRINTUT) $(CUPS_LIBS) $(LIBGIMPPRINT_LIBS)
+rastertoprinter_LDFLAGS = $(STATIC_LDOPTS)
+rastertoprinter_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+CUPS_PKG = calibrate.ppm
+CUPS_CONF = command.types
+
+pkgdata_DATA = @CUPS_PKG@
+pkgsysconf_DATA = @CUPS_CONF@
+
+@BUILD_CUPS_TRUE@INSTALL_DATA_LOCAL_DEPS = ppd
+
+@BUILD_TRANSLATED_PPDS_TRUE@PPD_NLS = $(PPD_NLS_1)
+@BUILD_TRANSLATED_PPDS_TRUE@LINGUAS = $(ALL_LINGUAS)
+
+@USE_NLS_TRUE@PPD_NLS_1 = ppd-nls
+
+CLEANFILES = $(EXTRA_PROGRAMS) ppd-stamp
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = COPYING README calibrate.ppm command.txt command.types
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = @CUPS_BIN@
+cupsexec_backend_PROGRAMS = @CUPS_BACKEND_BIN@
+cupsexec_filter_PROGRAMS = @CUPS_FILTER_BIN@
+noinst_PROGRAMS = @CUPS_NOINST_BIN@
+PROGRAMS = $(bin_PROGRAMS) $(cupsexec_backend_PROGRAMS) \
+$(cupsexec_filter_PROGRAMS) $(noinst_PROGRAMS)
+
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+cups_calibrate_OBJECTS = cups-calibrate.$(OBJEXT)
+cups_calibrate_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+cups_calibrate_LDFLAGS =
+commandtoepson_OBJECTS = commandtoepson.$(OBJEXT)
+commandtoepson_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+commandtoepson_LDFLAGS =
+epson_OBJECTS = epson.$(OBJEXT)
+epson_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+epson_LDFLAGS =
+genppd_OBJECTS = genppd.$(OBJEXT)
+rastertoprinter_OBJECTS = rastertoprinter.$(OBJEXT)
+commandtocanon_SOURCES = commandtocanon.c
+commandtocanon_OBJECTS = commandtocanon.$(OBJEXT)
+commandtocanon_LDADD = $(LDADD)
+commandtocanon_DEPENDENCIES =
+commandtocanon_LDFLAGS =
+canon_OBJECTS = canon.$(OBJEXT)
+canon_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+canon_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DATA = $(pkgdata_DATA) $(pkgsysconf_DATA)
+
+DIST_COMMON = README COPYING Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(cups_calibrate_SOURCES) $(commandtoepson_SOURCES) $(epson_SOURCES) $(genppd_SOURCES) $(rastertoprinter_SOURCES) commandtocanon.c $(canon_SOURCES)
+OBJECTS = $(cups_calibrate_OBJECTS) $(commandtoepson_OBJECTS) $(epson_OBJECTS) $(genppd_OBJECTS) $(rastertoprinter_OBJECTS) commandtocanon.$(OBJEXT) $(canon_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/cups/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+mostlyclean-cupsexec_backendPROGRAMS:
+
+clean-cupsexec_backendPROGRAMS:
+ -test -z "$(cupsexec_backend_PROGRAMS)" || rm -f $(cupsexec_backend_PROGRAMS)
+
+distclean-cupsexec_backendPROGRAMS:
+
+maintainer-clean-cupsexec_backendPROGRAMS:
+
+install-cupsexec_backendPROGRAMS: $(cupsexec_backend_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(cupsexec_backenddir)
+ @list='$(cupsexec_backend_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(cupsexec_backenddir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(cupsexec_backenddir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-cupsexec_backendPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(cupsexec_backend_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(cupsexec_backenddir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+mostlyclean-cupsexec_filterPROGRAMS:
+
+clean-cupsexec_filterPROGRAMS:
+ -test -z "$(cupsexec_filter_PROGRAMS)" || rm -f $(cupsexec_filter_PROGRAMS)
+
+distclean-cupsexec_filterPROGRAMS:
+
+maintainer-clean-cupsexec_filterPROGRAMS:
+
+install-cupsexec_filterPROGRAMS: $(cupsexec_filter_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(cupsexec_filterdir)
+ @list='$(cupsexec_filter_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(cupsexec_filterdir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(cupsexec_filterdir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-cupsexec_filterPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(cupsexec_filter_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(cupsexec_filterdir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+mostlyclean-noinstPROGRAMS:
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+distclean-noinstPROGRAMS:
+
+maintainer-clean-noinstPROGRAMS:
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+cups-calibrate$(EXEEXT): $(cups_calibrate_OBJECTS) $(cups_calibrate_DEPENDENCIES)
+ @rm -f cups-calibrate$(EXEEXT)
+ $(LINK) $(cups_calibrate_LDFLAGS) $(cups_calibrate_OBJECTS) $(cups_calibrate_LDADD) $(LIBS)
+
+commandtoepson$(EXEEXT): $(commandtoepson_OBJECTS) $(commandtoepson_DEPENDENCIES)
+ @rm -f commandtoepson$(EXEEXT)
+ $(LINK) $(commandtoepson_LDFLAGS) $(commandtoepson_OBJECTS) $(commandtoepson_LDADD) $(LIBS)
+
+epson$(EXEEXT): $(epson_OBJECTS) $(epson_DEPENDENCIES)
+ @rm -f epson$(EXEEXT)
+ $(LINK) $(epson_LDFLAGS) $(epson_OBJECTS) $(epson_LDADD) $(LIBS)
+
+genppd$(EXEEXT): $(genppd_OBJECTS) $(genppd_DEPENDENCIES)
+ @rm -f genppd$(EXEEXT)
+ $(LINK) $(genppd_LDFLAGS) $(genppd_OBJECTS) $(genppd_LDADD) $(LIBS)
+
+rastertoprinter$(EXEEXT): $(rastertoprinter_OBJECTS) $(rastertoprinter_DEPENDENCIES)
+ @rm -f rastertoprinter$(EXEEXT)
+ $(LINK) $(rastertoprinter_LDFLAGS) $(rastertoprinter_OBJECTS) $(rastertoprinter_LDADD) $(LIBS)
+
+commandtocanon$(EXEEXT): $(commandtocanon_OBJECTS) $(commandtocanon_DEPENDENCIES)
+ @rm -f commandtocanon$(EXEEXT)
+ $(LINK) $(commandtocanon_LDFLAGS) $(commandtocanon_OBJECTS) $(commandtocanon_LDADD) $(LIBS)
+
+canon$(EXEEXT): $(canon_OBJECTS) $(canon_DEPENDENCIES)
+ @rm -f canon$(EXEEXT)
+ $(LINK) $(canon_LDFLAGS) $(canon_OBJECTS) $(canon_LDADD) $(LIBS)
+
+install-pkgdataDATA: $(pkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
+ @list='$(pkgdata_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-pkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(pkgdata_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
+ done
+
+install-pkgsysconfDATA: $(pkgsysconf_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(pkgsysconfdir)
+ @list='$(pkgsysconf_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgsysconfdir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgsysconfdir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgsysconfdir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgsysconfdir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-pkgsysconfDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(pkgsysconf_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(pkgsysconfdir)/$$p; \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/cups
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
+canon.o: canon.c
+commandtocanon.o: commandtocanon.c
+commandtoepson.o: commandtoepson.c
+cups-calibrate.o: cups-calibrate.c
+epson.o: epson.c ../../config.h
+genppd.o: genppd.c ../../config.h ../../include/gimp-print/gimp-print.h \
+ ../../include/gimp-print/gimp-print-intl.h \
+ ../../lib/libprintut.h ../../lib/xmalloc.h
+rastertoprinter.o: rastertoprinter.c \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../config.h ../../lib/xmalloc.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS install-cupsexec_backendPROGRAMS \
+ install-cupsexec_filterPROGRAMS
+install-exec: install-exec-am
+
+install-data-am: install-pkgdataDATA install-pkgsysconfDATA \
+ install-data-local
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS uninstall-cupsexec_backendPROGRAMS \
+ uninstall-cupsexec_filterPROGRAMS uninstall-pkgdataDATA \
+ uninstall-pkgsysconfDATA uninstall-local
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) $(DATA) all-local
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(cupsexec_backenddir) \
+ $(DESTDIR)$(cupsexec_filterdir) $(DESTDIR)$(pkgdatadir) \
+ $(DESTDIR)$(pkgsysconfdir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-binPROGRAMS \
+ mostlyclean-cupsexec_backendPROGRAMS \
+ mostlyclean-cupsexec_filterPROGRAMS \
+ mostlyclean-noinstPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-cupsexec_backendPROGRAMS \
+ clean-cupsexec_filterPROGRAMS clean-noinstPROGRAMS \
+ clean-compile clean-libtool clean-tags clean-generic \
+ mostlyclean-am clean-local
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-cupsexec_backendPROGRAMS \
+ distclean-cupsexec_filterPROGRAMS \
+ distclean-noinstPROGRAMS distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-cupsexec_backendPROGRAMS \
+ maintainer-clean-cupsexec_filterPROGRAMS \
+ maintainer-clean-noinstPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-cupsexec_backendPROGRAMS distclean-cupsexec_backendPROGRAMS \
+clean-cupsexec_backendPROGRAMS \
+maintainer-clean-cupsexec_backendPROGRAMS \
+uninstall-cupsexec_backendPROGRAMS install-cupsexec_backendPROGRAMS \
+mostlyclean-cupsexec_filterPROGRAMS distclean-cupsexec_filterPROGRAMS \
+clean-cupsexec_filterPROGRAMS maintainer-clean-cupsexec_filterPROGRAMS \
+uninstall-cupsexec_filterPROGRAMS install-cupsexec_filterPROGRAMS \
+mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool uninstall-pkgdataDATA \
+install-pkgdataDATA uninstall-pkgsysconfDATA install-pkgsysconfDATA \
+tags mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
+distdir info-am info dvi-am dvi check check-am installcheck-am \
+installcheck install-exec-am install-exec install-data-local \
+install-data-am install-data install-am install uninstall-local \
+uninstall-am uninstall all-local all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
+ if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
+ $(mkinstalldirs) $(DESTDIR)$(cups_modeldir); \
+ cd ppd ; \
+ for language in * ; do \
+ cd ..; \
+ $(mkinstalldirs) $(DESTDIR)$(cups_modeldir)/$$language; \
+ cd ppd/$$language; \
+ for ppdfile in * ; do \
+ (cd ../..; $(INSTALL_DATA) ppd/$$language/$$ppdfile $(DESTDIR)$(cups_modeldir)/$$language) ; \
+ done; \
+ cd ..; \
+ done \
+ fi
+
+uninstall-local: $(INSTALL_DATA_LOCAL_DEPS)
+ if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
+ for language in C $(LINGUAS) ; do \
+ echo "Removing $$language locale PPD files..." ; \
+ for ppdfile in ppd/$$language/* ; do \
+ if test -f "$(DESTDIR)$(cups_modeldir)/$$language/`basename $$ppdfile`" ; then \
+ $(RM) -f $(DESTDIR)$(cups_modeldir)/$$language/`basename $$ppdfile` ; \
+ fi ; \
+ done; \
+ done \
+ fi
+
+refresh-data-local: ppd
+ cd ppd ; \
+ files=`find . -name '*.ppd*' -exec basename '{}' \; | sort | uniq` ; \
+ for language in . de en es fr it ; do \
+ for f in $$files ; do \
+ ff="$(DESTDIR)/$(cups_modeldir)/$$language/$$f" ; \
+ if [ -f "$$ff" ] ; then \
+ echo "Removing $$ff" ; \
+ $(RM) "$$ff" ; \
+ fi ; \
+ if [ -f "$$ff" ] ; then \
+ echo "Unable to remove $$ff" 1>&2 ; \
+ exit 1 ; \
+ fi ; \
+ done; \
+ done
+
+install-data-hook:
+# Remove unused directories in install tree
+ -@echo 'Expect a number of "rmdir: Directory not empty" warnings'
+ -@echo 'These messages are harmless and should be ignored.'
+ -rmdir $(DESTDIR)$(cups_modeldir)
+ -rmdir $(DESTDIR)$(pkgdatadir)
+ -rmdir $(DESTDIR)$(cupsexec_backenddir)
+ -rmdir $(DESTDIR)$(cupsexec_filterdir)
+ -rmdir $(DESTDIR)$(bindir)
+ -rmdir $(DESTDIR)$(pkglibdir)
+ -rmdir $(DESTDIR)$(pkgsysconfdir)
+ -rmdir `dirname $(DESTDIR)$(pkgdatadir)`
+ -rmdir `dirname $(DESTDIR)$(pkglibdir)`
+ -rmdir `dirname $(DESTDIR)$(pkgsysconfdir)`
+
+.PHONY: ppd ppd-stamp-pre ppd-stamp-nonls ppd-stamp-nls ppd-stamp-phony
+
+all-local: $(INSTALL_DATA_LOCAL_DEPS)
+
+ppd: ppd-stamp
+
+ppd-stamp: genppd
+ $(MAKE) ppd-stamp-phony
+ touch ppd-stamp
+
+ppd-stamp-phony: ppd-stamp-pre ppd-nonls $(PPD_NLS)
+
+ppd-stamp-pre:
+ -$(RM) -r ppd
+ -mkdir ppd
+
+ppd-nonls: genppd
+ for language in C ; do \
+ mkdir ppd/$$language ; \
+ echo "$$language:" ; \
+ ./genppd --prefix=ppd/$$language ; \
+ done
+
+ppd-nls: genppd
+ wdir=`pwd` ; \
+ cd $(top_builddir)/po ; \
+ $(MAKE) ; \
+ $(MAKE) DESTDIR= prefix=$${wdir}/catalog datadir=$${wdir}/catalog/share install
+ for language in $(LINGUAS) ; do \
+ mkdir ppd/$$language ; \
+ echo "$$language:" ; \
+ LANGUAGE=$$language ./genppd --prefix=ppd/$$language --catalog=`pwd`/catalog/share/locale ; \
+ done
+ $(RM) -r catalog
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../main ; \
+ $(MAKE)
+
+dist-hook:
+ for dir in commands ; do \
+ if test -d $(srcdir)/$$dir ; then \
+ mkdir $(distdir)/$$dir; \
+ for dirfile in $(srcdir)/$$dir/*; do \
+ if test -f $$dirfile ; then \
+ cp -p $$dirfile $(distdir)/$$dir; \
+ fi \
+ done \
+ fi \
+ done
+
+clean-local:
+ -$(RM) -r ppd
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/cups/canon.c b/src/cups/canon.c
index 158af1d..963d446 100644
--- a/src/cups/canon.c
+++ b/src/cups/canon.c
@@ -72,9 +72,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
resource[1024], /* Resource info (device and options) */
*options; /* Pointer to options */
int port; /* Port number (not used) */
- FILE *fp; /* Print file */
int copies; /* Number of copies to print */
- int fd, /* Parallel/USB device or socket */
+ int fd_out, /* Parallel/USB device or socket */
+ fd_in, /* Print file */
error, /* Last error */
backchannel; /* Read backchannel data? */
struct sockaddr_in addr; /* Socket address */
@@ -110,7 +110,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (argc == 6)
{
- fp = stdin;
+ fd_in = fileno(stdin);
copies = 1;
}
else
@@ -119,7 +119,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Try to open the print file...
*/
- if ((fp = fopen(argv[6], "rb")) == NULL)
+ if ((fd_in = open(argv[6], O_RDONLY)) < 0)
{
perror("ERROR: unable to open print file");
return (1);
@@ -178,17 +178,17 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
for (;;)
{
- if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+ if ((fd_out = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("ERROR: Unable to create socket");
return (1);
}
- if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
+ if (connect(fd_out, (struct sockaddr *)&addr, sizeof(addr)) < 0)
{
error = errno;
- close(fd);
- fd = -1;
+ close(fd_out);
+ fd_out = -1;
if (error == ECONNREFUSED)
{
@@ -216,7 +216,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
do
{
- if ((fd = open(resource, O_RDWR | O_EXCL)) == -1)
+ if ((fd_out = open(resource, O_RDWR | O_EXCL)) == -1)
{
if (errno == EBUSY)
{
@@ -230,20 +230,20 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
}
}
- while (fd < 0);
+ while (fd_out < 0);
/*
* Set any options provided...
*/
- tcgetattr(fd, &opts);
+ tcgetattr(fd_out, &opts);
opts.c_cflag |= CREAD; /* Enable reading */
opts.c_lflag &= ~(ICANON | ECHO | ISIG); /* Raw mode */
/**** No options supported yet ****/
- tcsetattr(fd, TCSANOW, &opts);
+ tcsetattr(fd_out, TCSANOW, &opts);
}
/*
@@ -274,14 +274,14 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
{
copies --;
- if (fp != stdin)
+ if (fd_in != fileno(stdin))
{
fputs("PAGE: 1 1\n", stderr);
- rewind(fp);
+ lseek(fd_in, 0, SEEK_SET);
}
tbytes = 0;
- while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
+ while ((nbytes = read(fd_in, buffer, sizeof(buffer))) > 0)
{
/*
* Write the print data to the printer...
@@ -292,7 +292,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
while (nbytes > 0)
{
- if ((wbytes = write(fd, bufptr, nbytes)) < 0)
+ if ((wbytes = write(fd_out, bufptr, nbytes)) < 0)
{
perror("ERROR: Unable to send print file to printer");
break;
@@ -315,14 +315,14 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
timeout.tv_sec = 0;
timeout.tv_usec = 0;
FD_ZERO(&input);
- FD_SET(fd, &input);
- if (select(fd + 1, &input, NULL, NULL, &timeout) > 0)
+ FD_SET(fd_out, &input);
+ if (select(fd_out + 1, &input, NULL, NULL, &timeout) > 0)
{
/*
* Grab the data coming back and spit it out to stderr...
*/
- if ((nbytes = read(fd, buffer, sizeof(buffer) - 1)) < 0)
+ if ((nbytes = read(fd_out, buffer, sizeof(buffer) - 1)) < 0)
{
fprintf(stderr, "ERROR: Back-channel read error - %s!\n",
strerror(errno));
@@ -330,6 +330,13 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
continue;
}
+ /*
+ * Some devices report themselves permanently ready to read...
+ */
+
+ if (nbytes == 0)
+ continue;
+
buffer[nbytes] = '\0';
if (strncmp(buffer, "@BDC ", 5) != 0)
fprintf(stderr, "WARNING: Received %d bytes of unknown back-channel data!\n",
@@ -412,9 +419,9 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* return...
*/
- close(fd);
- if (fp != stdin)
- fclose(fp);
+ close(fd_out);
+ if (fd_in != fileno(stdin))
+ close(fd_in);
return (0);
}
@@ -654,7 +661,14 @@ list_devices(void)
if ((fd = open(device, O_RDWR)) >= 0)
{
close(fd);
- printf("direct canon:%s \"CANON\" \"Parallel Port #%d\"\n", device, i + 1);
+ printf("direct canon:%s \"CANON\" \"Parallel Port #%d (interrupt-driven)\"\n", device, i + 1);
+ }
+
+ sprintf(device, "/dev/lpa%d", i);
+ if ((fd = open(device, O_RDWR)) >= 0)
+ {
+ close(fd);
+ printf("direct canon:%s \"CANON\" \"Parallel Port #%d (polled)\"\n", device, i + 1);
}
}
diff --git a/src/cups/epson.c b/src/cups/epson.c
index eb50a79..d102f3a 100644
--- a/src/cups/epson.c
+++ b/src/cups/epson.c
@@ -1,5 +1,5 @@
/*
- * "$Id: epson.c,v 1.3 2001/10/29 01:52:10 rlk Exp $"
+ * "$Id: epson.c,v 1.3.2.5 2003/01/25 00:51:41 rlk Exp $"
*
* EPSON backend for the Common UNIX Printing System.
*
@@ -37,11 +37,17 @@
* Include necessary headers.
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <cups/cups.h>
#include <stdlib.h>
#include <errno.h>
#include <signal.h>
#include <ctype.h>
+#ifdef HAVE_TIME_H
+# include <time.h>
+#endif
#if defined(WIN32) || defined(__EMX__)
# include <io.h>
@@ -77,7 +83,7 @@
*/
void list_devices(void);
-
+void read_backchannel(int fd_out);
/*
* 'main()' - Send a file to the specified parallel port.
@@ -97,11 +103,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
resource[1024], /* Resource info (device and options) */
*options; /* Pointer to options */
int port; /* Port number (not used) */
- FILE *fp; /* Print file */
int copies; /* Number of copies to print */
- int fd, /* Parallel/USB device or socket */
- error, /* Last error */
- backchannel; /* Read backchannel data? */
+ int fd_out, /* Parallel/USB device or socket */
+ fd_in, /* Print file */
+ error; /* Last error */
struct sockaddr_in addr; /* Socket address */
struct hostent *hostaddr; /* Host address */
int wbytes; /* Number of bytes written */
@@ -109,8 +114,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
tbytes; /* Total number of bytes written */
char buffer[8192], /* Output buffer */
*bufptr; /* Pointer into buffer */
- struct timeval timeout; /* Timeout for select() */
- fd_set input; /* Input set for select() */
struct termios opts; /* Parallel port options */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
@@ -135,7 +138,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
if (argc == 6)
{
- fp = stdin;
+ fd_in = fileno(stdin);
copies = 1;
}
else
@@ -144,7 +147,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Try to open the print file...
*/
- if ((fp = fopen(argv[6], "rb")) == NULL)
+ if ((fd_in = open(argv[6], O_RDONLY)) < 0)
{
perror("ERROR: unable to open print file");
return (1);
@@ -203,17 +206,17 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
for (;;)
{
- if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+ if ((fd_out = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("ERROR: Unable to create socket");
return (1);
}
- if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
+ if (connect(fd_out, (struct sockaddr *)&addr, sizeof(addr)) < 0)
{
error = errno;
- close(fd);
- fd = -1;
+ close(fd_out);
+ fd_out = -1;
if (error == ECONNREFUSED)
{
@@ -241,7 +244,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
do
{
- if ((fd = open(resource, O_RDWR | O_EXCL)) == -1)
+ if ((fd_out = open(resource, O_RDWR | O_EXCL | O_NONBLOCK)) == -1)
{
if (errno == EBUSY)
{
@@ -255,22 +258,28 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
}
}
- while (fd < 0);
+ while (fd_out < 0);
/*
* Set any options provided...
*/
- tcgetattr(fd, &opts);
+ tcgetattr(fd_out, &opts);
opts.c_cflag |= CREAD; /* Enable reading */
opts.c_lflag &= ~(ICANON | ECHO | ISIG); /* Raw mode */
/**** No options supported yet ****/
- tcsetattr(fd, TCSANOW, &opts);
+ tcsetattr(fd_out, TCSANOW, &opts);
}
+ /*
+ * Set nonblocking I/O, if possible (might already be set).
+ */
+ fcntl(fd_out, F_SETFL,
+ O_NONBLOCK | fcntl(fd_out, F_GETFL));
+
/*
* Now that we are "connected" to the port, ignore SIGTERM so that we
* can finish out any page data the driver sends (e.g. to eject the
@@ -293,20 +302,18 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Finally, send the print file...
*/
- backchannel = 1;
-
while (copies > 0)
{
copies --;
- if (fp != stdin)
+ if (fd_in != fileno(stdin))
{
fputs("PAGE: 1 1\n", stderr);
- rewind(fp);
+ lseek(fd_in, 0, SEEK_SET);
}
tbytes = 0;
- while ((nbytes = fread(buffer, 1, sizeof(buffer), fp)) > 0)
+ while ((nbytes = read(fd_in, buffer, sizeof(buffer))) > 0)
{
/*
* Write the print data to the printer...
@@ -317,134 +324,184 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
while (nbytes > 0)
{
- if ((wbytes = write(fd, bufptr, nbytes)) < 0)
- {
- perror("ERROR: Unable to send print file to printer");
+ if ((wbytes = write(fd_out, bufptr, nbytes)) < 0 && errno == EAGAIN)
+ {
+ /* Write would block, so sleep 0.2s and retry... */
+
+ /*
+ * Check for possible data coming back from the printer...
+ */
+#if defined(HAVE_TIME_H) && defined(HAVE_NANOSLEEP)
+ struct timespec sleeptime;
+#elif defined(HAVE_UNISTD_H) && defined(HAVE_USLEEP)
+#else
+ struct timeval timeout;
+#endif
+ read_backchannel(fd_out);
+#if defined(HAVE_TIME_H) && defined(HAVE_NANOSLEEP)
+ sleeptime.tv_sec = 0;
+ sleeptime.tv_nsec = 200000000;
+ nanosleep(&sleeptime, &sleeptime);
+#elif defined(HAVE_UNISTD_H) && defined(HAVE_USLEEP)
+ usleep(200000);
+#else
+ timeout.tv_sec = 0;
+ timeout.tv_usec = 200000;
+ select(1, NULL, NULL, NULL, &timeout);
+#endif
+ continue;
+ }
+ else if (wbytes < 0) /* write error */
break;
- }
nbytes -= wbytes;
bufptr += wbytes;
}
if (nbytes > 0)
- break;
+ {
+ perror("ERROR: Unable to send print file to printer");
+ break;
+ }
- /*
- * Check for possible data coming back from the printer...
- */
+ if (argc > 6)
+ fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
- if (!backchannel)
- continue;
+ }
+ }
- timeout.tv_sec = 0;
- timeout.tv_usec = 0;
- FD_ZERO(&input);
- FD_SET(fd, &input);
- if (select(fd + 1, &input, NULL, NULL, &timeout) > 0)
- {
- /*
- * Grab the data coming back and spit it out to stderr...
- */
+ /*
+ * Close the socket connection or parallel/USB device and input file and
+ * return...
+ */
- if ((nbytes = read(fd, buffer, sizeof(buffer) - 1)) < 0)
- {
- fprintf(stderr, "ERROR: Back-channel read error - %s!\n",
- strerror(errno));
- backchannel = 0;
- continue;
- }
+ close(fd_out);
+ if (fd_in != fileno(stdin))
+ close(fd_in);
- buffer[nbytes] = '\0';
- if (strncmp(buffer, "@BDC ", 5) != 0)
- fprintf(stderr, "WARNING: Received %d bytes of unknown back-channel data!\n",
- nbytes);
- else
- {
- /*
- * Skip initial report line...
- */
+ return (0);
+}
- for (bufptr = buffer; *bufptr && *bufptr != '\n'; bufptr ++);
- if (*bufptr == '\n')
- bufptr ++;
+/*
+ * 'read_backchannel()' - read data sent back from printer.
+ */
+void
+read_backchannel(int fd_out)
+{
+ static int backchannel = 1; /* Read backchannel data? */
+ int nbytes; /* Number of bytes read */
+ int ninks = 0; /* Number of inks */
+ char buffer[8192], /* Output buffer */
+ *bufptr; /* Pointer into buffer */
- /*
- * Get status data...
- */
- strcpy(buffer, bufptr);
- for (bufptr = buffer; *bufptr && *bufptr != ';'; bufptr ++);
- *bufptr = '\0';
+ if (!backchannel)
+ return;
- if (strncmp(buffer, "IQ:", 3) == 0)
- {
- /*
- * Report ink level...
- */
+ if ((nbytes = read(fd_out, buffer, sizeof(buffer) - 1)) < 0 && errno != EAGAIN)
+ {
+ fprintf(stderr, "ERROR: Back-channel read error - %s!\n",
+ strerror(errno));
+ backchannel = 0;
+ return;
+ }
+
+ /*
+ * Some devices report themselves permanently ready to read...
+ */
+
+ /*fprintf(stderr, "Backchannel read: %d bytes\n", nbytes);*/
- int i;
- int levels[6];
+ if (nbytes <= 0)
+ return;
- buffer[12] = '\0'; /* Limit to 6 inks */
- for (i = 0, bufptr = buffer; i < 6; i ++, bufptr += 2)
+ buffer[nbytes] = '\0';
+ if (strncmp(buffer, "@BDC ", 5) != 0)
+ fprintf(stderr, "WARNING: Received %d bytes of unknown back-channel data!\n",
+ nbytes);
+ else
+ {
+
+ /*
+ * Get status data...
+ */
+
+ bufptr = strstr(&buffer[0], "IQ:");
+ /*fprintf(stderr, "READBACK: %20s\n", bufptr);*/
+
+ if (bufptr)
+ {
+ /*
+ * Report ink level...
+ */
+
+ int i;
+ int levels[7];
+
+ bufptr += 3;
+
+ for (i = 0; i < 7 && bufptr < &buffer[sizeof(buffer)-1];
+ i ++, bufptr += 2)
{
- if (isalpha(bufptr[0]))
- levels[i] = (tolower(bufptr[0]) - 'a' + 10) << 16;
- else
- levels[i] = (bufptr[0] - '0') << 16;
-
- if (isalpha(bufptr[1]))
- levels[i] |= tolower(bufptr[1]) - 'a' + 10;
- else
- levels[i] |= bufptr[1] - '0';
+ int j, inkend = 0;
+
+ if (!bufptr[0] || bufptr[0] == ';')
+ break;
+
+ for (j = 0; j < 2; j++)
+ {
+ if (bufptr[j] >= '0' && bufptr[j] <= '9')
+ bufptr[j] -= '0';
+ else if (bufptr[j] >= 'A' && bufptr[j] <= 'F')
+ bufptr[j] = bufptr[j] - 'A' + 10;
+ else if (bufptr[j] >= 'a' && bufptr[j] <= 'f')
+ bufptr[j] = bufptr[j] - 'a' + 10;
+ else
+ {
+ inkend = 1;
+ break;
+ }
+ }
+ levels[i] = (bufptr[0] << 4) + bufptr[1];
+
+ if (inkend)
+ break;
+
+ ninks++;
}
- switch (i)
+ switch (ninks)
{
- case 1 :
- case 2 :
- fprintf(stderr, "K=%d\n", levels[0]);
- break;
- case 3 :
- fprintf(stderr, "C=%d M=%d Y=%d\n", levels[0], levels[1],
- levels[2]);
- break;
- case 4 :
- case 5 :
- fprintf(stderr, "K=%d C=%d M=%d Y=%d\n", levels[0],
- levels[1], levels[2], levels[3]);
- break;
- case 6 :
- fprintf(stderr, "K=%d C=%d M=%d Y=%d LC=%d LM=%d\n",
- levels[0], levels[1], levels[2], levels[3],
- levels[4], levels[5]);
- break;
+ case 1 :
+ case 2 :
+ fprintf(stderr, "K=%d\n", levels[0]);
+ break;
+ case 3 :
+ fprintf(stderr, "C=%d M=%d Y=%d\n", levels[0], levels[1],
+ levels[2]);
+ break;
+ case 4 :
+ case 5 :
+ fprintf(stderr, "K=%d C=%d M=%d Y=%d\n", levels[0],
+ levels[1], levels[2], levels[3]);
+ break;
+ case 6 :
+ fprintf(stderr, "K=%d C=%d M=%d Y=%d LC=%d LM=%d\n",
+ levels[0], levels[1], levels[2], levels[3],
+ levels[4], levels[5]);
+ break;
+ case 7 :
+ fprintf(stderr, "K=%d C=%d M=%d Y=%d LC=%d LM=%d GY=%d\n",
+ levels[0], levels[1], levels[2], levels[3],
+ levels[4], levels[5], levels[6]);
}
- }
- else
- fprintf(stderr, "INFO: %s\n", buffer);
- }
- }
- else if (argc > 6)
- fprintf(stderr, "INFO: Sending print file, %u bytes...\n", tbytes);
+ }
+ else
+ fprintf(stderr, "INFO: %s\n", buffer);
}
- }
-
- /*
- * Close the socket connection or parallel/USB device and input file and
- * return...
- */
-
- close(fd);
- if (fp != stdin)
- fclose(fp);
-
- return (0);
}
-
/*
* 'list_devices()' - List all parallel devices.
*/
@@ -679,7 +736,14 @@ list_devices(void)
if ((fd = open(device, O_RDWR)) >= 0)
{
close(fd);
- printf("direct epson:%s \"EPSON\" \"Parallel Port #%d\"\n", device, i + 1);
+ printf("direct epson:%s \"EPSON\" \"Parallel Port #%d (interrupt-driven)\"\n", device, i + 1);
+ }
+
+ sprintf(device, "/dev/lpa%d", i);
+ if ((fd = open(device, O_RDWR)) >= 0)
+ {
+ close(fd);
+ printf("direct epson:%s \"EPSON\" \"Parallel Port #%d (polled)\"\n", device, i + 1);
}
}
@@ -701,5 +765,5 @@ list_devices(void)
/*
- * End of "$Id: epson.c,v 1.3 2001/10/29 01:52:10 rlk Exp $".
+ * End of "$Id: epson.c,v 1.3.2.5 2003/01/25 00:51:41 rlk Exp $".
*/
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index d9c6060..537bb26 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -1,9 +1,9 @@
/*
- * "$Id: genppd.c,v 1.36 2001/11/11 21:25:36 rlk Exp $"
+ * "$Id: genppd.c,v 1.36.2.15 2004/06/12 20:04:05 rlk Exp $"
*
* PPD file generation program for the CUPS drivers.
*
- * Copyright 1993-2001 by Easy Software Products.
+ * Copyright 1993-2003 by Easy Software Products.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License,
@@ -52,7 +52,9 @@
#include <string.h>
#include <ctype.h>
#include <errno.h>
+#ifdef HAVE_LIBZ
#include <zlib.h>
+#endif
#include <cups/cups.h>
#include <cups/raster.h>
@@ -65,8 +67,15 @@
#include <gimp-print/gimp-print-intl.h>
#include "../../lib/libprintut.h"
+/*
+ * Note:
+ *
+ * The current release of ESP Ghostscript is fully Level 3 compliant,
+ * so we can report Level 3 support by default...
+ */
+
#ifndef CUPS_PPD_PS_LEVEL
-#define CUPS_PPD_PS_LEVEL 2
+# define CUPS_PPD_PS_LEVEL 3
#endif
@@ -125,10 +134,37 @@ static struct /**** STP numeric options ****/
{ "stpContrast", "Contrast" },
{ "stpGamma", "Gamma" },
{ "stpDensity", "Density" },
+#ifndef __APPLE__
{ "stpCyan", "Cyan" },
{ "stpMagenta", "Magenta" },
{ "stpYellow", "Yellow" },
{ "stpSaturation", "Saturation" }
+#else
+ { "stpSaturation", "Saturation" },
+ { "stpCyan", "Cyan" },
+ { "stpMagenta", "Magenta" },
+ { "stpYellow", "Yellow" }
+#endif /* __APPLE__ */
+};
+
+/*
+ * Mapping between manufacturer names embedded in the printer name and
+ * manufacturer names authorized in the PPD specification.
+ * If printers of other manufacturers are added, this table must
+ * be extended.
+ */
+static struct
+{
+ const char *manufacturer_embedded_name;
+ const char *manufacturer_real_name;
+} stp_manufacturers[] =
+{
+ { "CANON", "Canon" },
+ { "EPSON", "Epson" },
+ { "HP", "HP" },
+ { "LEXMARK", "Lexmark" },
+ { "APPLE", "Apple" },
+ { NULL, NULL }
};
@@ -140,6 +176,7 @@ void initialize_stp_options(void);
void usage(void);
int write_ppd(const stp_printer_t p, const char *prefix,
const char *language, int verbose);
+const char *find_manufacturer_from_name(const char *name);
/*
@@ -160,11 +197,11 @@ main(int argc, /* I - Number of command-line arguments */
static struct option long_options[] =
{ /* Command-line options */
/* name, has_arg, flag val */
- {"help", no_argument, 0, 0},
- {"verbose", no_argument, 0, 0},
- {"quiet", no_argument, 0, 0},
- {"catalog", required_argument, 0, 0},
- {"prefix", required_argument, 0, 0},
+ {"help", no_argument, 0, (int) 'h'},
+ {"verbose", no_argument, 0, (int) 'v'},
+ {"quiet", no_argument, 0, (int) 'q'},
+ {"catalog", required_argument, 0, (int) 'c'},
+ {"prefix", required_argument, 0, (int) 'p'},
{0, 0, 0, 0}
};
@@ -181,55 +218,36 @@ main(int argc, /* I - Number of command-line arguments */
for (;;)
{
- if ((i = getopt_long_only(argc, argv, "", long_options,
- &option_index)) == -1)
+ if ((i = getopt_long(argc, argv, "hvqc:p:", long_options,
+ &option_index)) == -1)
break;
switch (i)
{
- case 0:
- /* option already dealt with, so skip to next argv entry */
- if (long_options[option_index].flag != 0)
- break;
-
- if (strncmp(long_options[option_index].name, "help", 4) == 0)
- {
- usage();
- break;
- }
- if (strncmp(long_options[option_index].name, "verbose", 7) == 0)
- {
- verbose = 1;
- break;
- }
-
- if (strncmp(long_options[option_index].name, "quiet", 5) == 0)
- {
- verbose = 0;
- break;
- }
-
- if (strncmp(long_options[option_index].name, "catalog", 7) == 0)
- {
- catalog = optarg;
+ case 'h':
+ usage();
+ break;
+ case 'v':
+ verbose = 1;
+ break;
+ case 'q':
+ verbose = 0;
+ break;
+ case 'c':
+ catalog = optarg;
#ifdef DEBUG
- fprintf (stderr, "DEBUG: catalog: %s\n", catalog);
+ fprintf (stderr, "DEBUG: catalog: %s\n", catalog);
#endif
- break;
- }
-
- if (strncmp(long_options[option_index].name, "prefix", 6) == 0)
- {
- prefix = optarg;
+ break;
+ case 'p':
+ prefix = optarg;
#ifdef DEBUG
- fprintf (stderr, "DEBUG: prefix: %s\n", prefix);
+ fprintf (stderr, "DEBUG: prefix: %s\n", prefix);
#endif
- break;
- }
-
- default:
- usage();
- break;
+ break;
+ default:
+ usage();
+ break;
}
}
@@ -239,12 +257,14 @@ main(int argc, /* I - Number of command-line arguments */
stp_init();
-
/*
* Set the language...
*/
setlocale(LC_ALL, "");
+#ifdef LC_NUMERIC
+ setlocale(LC_NUMERIC, "C");
+#endif /* LC_NUMERIC */
/*
* Set up the catalog
@@ -272,7 +292,6 @@ main(int argc, /* I - Number of command-line arguments */
#endif
}
-
/*
* Write PPD files...
*/
@@ -284,6 +303,7 @@ main(int argc, /* I - Number of command-line arguments */
if (printer && write_ppd(printer, prefix, language, verbose))
return (1);
}
+
if (!verbose)
fprintf(stderr, "\n");
@@ -324,6 +344,7 @@ initialize_stp_options(void)
stp_options[3].defval = 1000 * stp_get_density(defvars);
stp_options[3].step = 50;
+#ifndef __APPLE__
stp_options[4].low = 1000 * stp_get_cyan(lower);
stp_options[4].high = 1000 * stp_get_cyan(upper);
stp_options[4].defval = 1000 * stp_get_cyan(defvars);
@@ -343,6 +364,27 @@ initialize_stp_options(void)
stp_options[7].high = 1000 * stp_get_saturation(upper);
stp_options[7].defval = 1000 * stp_get_saturation(defvars);
stp_options[7].step = 50;
+#else
+ stp_options[4].low = 1000 * stp_get_saturation(lower);
+ stp_options[4].high = 1000 * stp_get_saturation(upper);
+ stp_options[4].defval = 1000 * stp_get_saturation(defvars);
+ stp_options[4].step = 50;
+
+ stp_options[5].low = 1000 * stp_get_cyan(lower);
+ stp_options[5].high = 1000 * stp_get_cyan(upper);
+ stp_options[5].defval = 1000 * stp_get_cyan(defvars);
+ stp_options[5].step = 50;
+
+ stp_options[6].low = 1000 * stp_get_magenta(lower);
+ stp_options[6].high = 1000 * stp_get_magenta(upper);
+ stp_options[6].defval = 1000 * stp_get_magenta(defvars);
+ stp_options[6].step = 50;
+
+ stp_options[7].low = 1000 * stp_get_yellow(lower);
+ stp_options[7].high = 1000 * stp_get_yellow(upper);
+ stp_options[7].defval = 1000 * stp_get_yellow(defvars);
+ stp_options[7].step = 50;
+#endif /* __APPLE__ */
}
@@ -359,6 +401,22 @@ usage(void)
exit(EXIT_FAILURE);
}
+const char *
+find_manufacturer_from_name(const char *name)
+{
+ int i = 0;
+ while (stp_manufacturers[i].manufacturer_real_name)
+ {
+ if (strncasecmp(name, stp_manufacturers[i].manufacturer_embedded_name,
+ strlen(stp_manufacturers[i].manufacturer_embedded_name)) == 0)
+ return stp_manufacturers[i].manufacturer_real_name;
+ i++;
+ }
+ fprintf(stderr, "Cannot determine manufacturer of %s\n!", name);
+ abort();
+ return NULL;
+}
+
/*
* 'write_ppd()' - Write a PPD file.
@@ -373,7 +431,8 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
int i, j; /* Looping vars */
gzFile fp; /* File to write to */
char filename[1024]; /* Filename */
- char manufacturer[64]; /* Manufacturer name */
+ const char *driverptr; /* Pointer into driver name */
+ const char *manufacturer; /* Manufacturer name */
int num_opts; /* Number of printer options */
stp_param_t *opts; /* Printer options */
const char *defopt; /* Default printer option */
@@ -389,6 +448,11 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
const stp_printfuncs_t *printfuncs; /* Driver functions */
paper_t *the_papers; /* Media sizes */
int cur_opt; /* Current option */
+ int variable_sizes; /* Does the driver support variable sizes? */
+ int min_width, /* Min/max custom size */
+ min_height,
+ max_width,
+ max_height;
/*
@@ -433,7 +497,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
* Write a standard header...
*/
- sscanf(long_name, "%63s", manufacturer);
+ manufacturer = find_manufacturer_from_name(long_name);
if (verbose)
fprintf(stderr, "Writing %s...\n", filename);
@@ -441,7 +505,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
fprintf(stderr, ".");
gzputs(fp, "*PPD-Adobe: \"4.3\"\n");
- gzputs(fp, "*%PPD file for CUPS/GIMP-print.\n");
+ gzputs(fp, "*%PPD file for CUPS/Gimp-Print.\n");
gzputs(fp, "*%Copyright 1993-2001 by Easy Software Products, All Rights Reserved.\n");
gzputs(fp, "*%This PPD file may be freely used and distributed under the terms of\n");
gzputs(fp, "*%the GNU GPL.\n");
@@ -455,21 +519,66 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
gzprintf(fp, "*LanguageVersion: %s\n", _("English"));
/* Specify PPD translation encoding e.g. ISOLatin1 */
gzprintf(fp, "*LanguageEncoding: %s\n", _("ISOLatin1"));
- gzprintf(fp, "*PCFileName: \"%s.ppd\"\n", driver);
+
+ /*
+ * Strictly speaking, the PCFileName attribute should be a 12 character
+ * max (12345678.ppd) filename, as a requirement of the old PPD spec.
+ * The following code generates a (hopefully unique) 8.3 filename from
+ * the driver name, and makes the filename all UPPERCASE as well...
+ */
+
+ gzprintf(fp, "*PCFileName: \"STP%05d.PPD\"\n",
+ stp_get_printer_index_by_driver(driver));
+
gzprintf(fp, "*Manufacturer: \"%s\"\n", manufacturer);
- gzputs(fp, "*Product: \"(GIMP-print v" VERSION ")\"\n");
- gzprintf(fp, "*ModelName: \"%s\"\n", driver);
+
+ /*
+ * The Product attribute specifies the string returned by the PostScript
+ * interpreter. The last one will appear in the CUPS "product" field,
+ * while all instances are available as attributes.
+ */
+
+ gzputs(fp, "*Product: \"(AFPL Ghostscript)\"\n");
+ gzputs(fp, "*Product: \"(GNU Ghostscript)\"\n");
+ gzputs(fp, "*Product: \"(ESP Ghostscript)\"\n");
+
+ /*
+ * The ModelName attribute now provides the long name rather than the
+ * short driver name... The rastertoprinter driver looks up both...
+ */
+
+ gzprintf(fp, "*ModelName: \"%s\"\n", long_name);
gzprintf(fp, "*ShortNickName: \"%s\"\n", long_name);
- gzprintf(fp, "*NickName: \"%s, CUPS+GIMP-print v" VERSION "\"\n", long_name);
- gzputs(fp, "*PSVersion: \"(3010.000) 550\"\n");
+
+ /*
+ * The Windows driver download stuff has problems with NickName fields
+ * with commas. Now use a dash instead...
+ */
+
+ gzprintf(fp, "*NickName: \"%s - CUPS+Gimp-Print v" VERSION "\"\n",
+ long_name);
+#if CUPS_PPD_PS_LEVEL == 2
+ gzputs(fp, "*PSVersion: \"(2017.000) 550\"\n");
+#else
+ gzputs(fp, "*PSVersion: \"(3010.000) 705\"\n");
+#endif /* CUPS_PPD_PS_LEVEL == 2 */
gzprintf(fp, "*LanguageLevel: \"%d\"\n", CUPS_PPD_PS_LEVEL);
- gzprintf(fp, "*ColorDevice: %s\n",
- stp_get_output_type(printvars) == OUTPUT_COLOR ? "True" : "False");
- gzprintf(fp, "*DefaultColorSpace: %s\n",
- stp_get_output_type(printvars) == OUTPUT_COLOR ? "RGB" : "Gray");
+
+ /* Assume that color printers are inkjets and should have pages reversed */
+ if (stp_get_output_type(printvars) == OUTPUT_COLOR)
+ {
+ gzputs(fp, "*ColorDevice: True\n");
+ gzputs(fp, "*DefaultColorSpace: RGB\n");
+ }
+ else
+ {
+ gzputs(fp, "*ColorDevice: False\n");
+ gzputs(fp, "*DefaultColorSpace: Gray\n");
+ }
gzputs(fp, "*FileSystem: False\n");
gzputs(fp, "*LandscapeOrientation: Plus90\n");
gzputs(fp, "*TTRasterizer: Type42\n");
+ gzputs(fp, "*RequiresPageRegion All: True\n");
gzputs(fp, "*cupsVersion: 1.1\n");
gzprintf(fp, "*cupsModelNumber: \"%d\"\n", model);
@@ -477,13 +586,14 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
gzputs(fp, "*cupsFilter: \"application/vnd.cups-raster 100 rastertoprinter\"\n");
if (strcasecmp(manufacturer, "EPSON") == 0)
gzputs(fp, "*cupsFilter: \"application/vnd.cups-command 33 commandtoepson\"\n");
+ gzputs(fp, "\n");
/*
* Get the page sizes from the driver...
*/
v = stp_allocate_copy(printvars);
-
+ variable_sizes = 0;
opts = (*(printfuncs->parameters))(p, NULL, "PageSize", &num_opts);
defopt = (*(printfuncs->default_parameters))(p, NULL, "PageSize");
the_papers = malloc(sizeof(paper_t) * num_opts);
@@ -498,6 +608,12 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
continue;
}
+ if (strcmp(opts[i].name, "Custom") == 0)
+ {
+ variable_sizes = 1;
+ continue;
+ }
+
width = stp_papersize_get_width(papersize);
height = stp_papersize_get_height(papersize);
@@ -521,35 +637,36 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
cur_opt++;
}
+ /*
+ * The VariablePaperSize attribute is obsolete, however some popular
+ * applications still look for it to provide custom page size support.
+ */
+
+ gzprintf(fp, "*VariablePaperSize: %s\n\n", variable_sizes ? "true" : "false");
+
gzputs(fp, "*OpenUI *PageSize: PickOne\n");
gzputs(fp, "*OrderDependency: 10 AnySetup *PageSize\n");
- gzputs(fp, "*DefaultPageSize: ");
- gzputs(fp, defopt);
- gzputs(fp, "\n");
+ gzprintf(fp, "*DefaultPageSize: %s\n", defopt);
for (i = 0; i < cur_opt; i ++)
{
gzprintf(fp, "*PageSize %s", the_papers[i].name);
gzprintf(fp, "/%s:\t\"<</PageSize[%d %d]/ImagingBBox null>>setpagedevice\"\n",
the_papers[i].text, the_papers[i].width, the_papers[i].height);
}
- gzputs(fp, "*CloseUI: *PageSize\n");
+ gzputs(fp, "*CloseUI: *PageSize\n\n");
gzputs(fp, "*OpenUI *PageRegion: PickOne\n");
gzputs(fp, "*OrderDependency: 10 AnySetup *PageRegion\n");
- gzputs(fp, "*DefaultPageRegion: ");
- gzputs(fp, defopt);
- gzputs(fp, "\n");
+ gzprintf(fp, "*DefaultPageRegion: %s\n", defopt);
for (i = 0; i < cur_opt; i ++)
{
gzprintf(fp, "*PageRegion %s", the_papers[i].name);
- gzprintf(fp, "/%s:\t\"<</PageRegion[%d %d]/ImagingBBox null>>setpagedevice\"\n",
+ gzprintf(fp, "/%s:\t\"<</PageSize[%d %d]/ImagingBBox null>>setpagedevice\"\n",
the_papers[i].text, the_papers[i].width, the_papers[i].height);
}
- gzputs(fp, "*CloseUI: *PageRegion\n");
+ gzputs(fp, "*CloseUI: *PageRegion\n\n");
- gzputs(fp, "*DefaultImageableArea: ");
- gzputs(fp, defopt);
- gzputs(fp, "\n");
+ gzprintf(fp, "*DefaultImageableArea: %s\n", defopt);
for (i = 0; i < cur_opt; i ++)
{
gzprintf(fp, "*ImageableArea %s", the_papers[i].name);
@@ -557,16 +674,39 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
the_papers[i].left, the_papers[i].bottom,
the_papers[i].right, the_papers[i].top);
}
-
- gzputs(fp, "*DefaultPaperDimension: ");
- gzputs(fp, defopt);
gzputs(fp, "\n");
+
+ gzprintf(fp, "*DefaultPaperDimension: %s\n", defopt);
+
for (i = 0; i < cur_opt; i ++)
{
gzprintf(fp, "*PaperDimension %s", the_papers[i].name);
gzprintf(fp, "/%s:\t\"%d %d\"\n",
the_papers[i].text, the_papers[i].width, the_papers[i].height);
}
+ gzputs(fp, "\n");
+
+ if (variable_sizes)
+ {
+ (*(printfuncs->limit))(p, v, &max_width, &max_height,
+ &min_width, &min_height);
+ stp_set_media_size(v, "Custom");
+ (*(printfuncs->media_size))(p, v, &width, &height);
+ (*(printfuncs->imageable_area))(p, v, &left, &right, &bottom, &top);
+
+ gzprintf(fp, "*MaxMediaWidth: \"%d\"\n", max_width);
+ gzprintf(fp, "*MaxMediaHeight: \"%d\"\n", max_height);
+ gzprintf(fp, "*HWMargins: %d %d %d %d\n",
+ left, bottom, width - right, height - top);
+ gzputs(fp, "*CustomPageSize True: \"pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice\"\n");
+ gzprintf(fp, "*ParamCustomPageSize Width: 1 points %d %d\n",
+ min_width, max_width);
+ gzprintf(fp, "*ParamCustomPageSize Height: 2 points %d %d\n",
+ min_height, max_height);
+ gzputs(fp, "*ParamCustomPageSize WidthOffset: 3 points 0 0\n");
+ gzputs(fp, "*ParamCustomPageSize HeightOffset: 4 points 0 0\n");
+ gzputs(fp, "*ParamCustomPageSize Orientation: 5 int 0 0\n\n");
+ }
if (opts)
{
@@ -582,6 +722,10 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
if (the_papers)
free(the_papers);
+#ifdef __APPLE__
+ gzputs(fp, "*OpenGroup: MAIN/Basic settings\n");
+#endif
+
/*
* Do we support color?
*/
@@ -619,7 +763,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
CUPS_CSPACE_CMYK, CUPS_ORDER_CHUNKED);
}
- gzputs(fp, "*CloseUI: *ColorModel\n");
+ gzputs(fp, "*CloseUI: *ColorModel\n\n");
/*
* Media types...
@@ -644,7 +788,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
free(opts);
- gzputs(fp, "*CloseUI: *MediaType\n");
+ gzputs(fp, "*CloseUI: *MediaType\n\n");
}
/*
@@ -670,7 +814,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
free(opts);
- gzputs(fp, "*CloseUI: *InputSlot\n");
+ gzputs(fp, "*CloseUI: *InputSlot\n\n");
}
/*
@@ -708,13 +852,15 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
free(opts);
- gzputs(fp, "*CloseUI: *Resolution\n");
+ gzputs(fp, "*CloseUI: *Resolution\n\n");
/*
* STP option group...
*/
- gzputs(fp, "*OpenGroup: STP\n");
+#ifndef __APPLE__
+ gzprintf(fp, "*OpenGroup: STP/%s\n", _("GIMP-print"));
+#endif
/*
* Image types...
@@ -731,7 +877,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
gzprintf(fp, "*stpImageType Continuous/%s:\t\"<</cupsRowCount 2>>setpagedevice\"\n",
_("Photograph"));
- gzputs(fp, "*CloseUI: *stpImageType\n");
+ gzputs(fp, "*CloseUI: *stpImageType\n\n");
/*
* Dithering algorithms...
@@ -745,7 +891,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
gzprintf(fp, "*stpDither %s/%s: \"<</cupsRowStep %d>>setpagedevice\"\n",
stp_dither_algorithm_name(i), stp_dither_algorithm_text(i), i);
- gzputs(fp, "*CloseUI: *stpDither\n");
+ gzputs(fp, "*CloseUI: *stpDither\n\n");
/*
* InkTypes...
@@ -774,19 +920,31 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
free(opts);
- gzputs(fp, "*CloseUI: *stpInkType\n");
+ gzputs(fp, "*CloseUI: *stpInkType\n\n");
}
+
+#ifdef __APPLE__
+ gzputs(fp, "*CloseGroup: MAIN\n\n");
+ gzputs(fp, "*OpenGroup: STP/Expert adjustments\n");
+#endif /* __APPLE__ */
/*
* Advanced STP options...
*/
if (stp_get_output_type(printvars) == OUTPUT_COLOR)
+#ifndef __APPLE__
num_opts = 8;
else
num_opts = 4;
for (i = 0; i < num_opts; i ++)
+#else
+ {
+ num_opts = 8;
+
+ for (i = 0; i < 5; i ++)
+#endif /* __APPLE__ */
{
gzprintf(fp, "*OpenUI *%s/%s: PickOne\n", stp_options[i].name,
stp_options[i].text);
@@ -795,14 +953,50 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
j <= stp_options[i].high;
j += stp_options[i].step)
gzprintf(fp, "*%s %d/%.3f: \"\"\n", stp_options[i].name, j, j * 0.001);
- gzprintf(fp, "*CloseUI *%s\n", stp_options[i].name);
+ gzprintf(fp, "*CloseUI: *%s\n\n", stp_options[i].name);
}
/*
* End of STP option group...
*/
- gzputs(fp, "*CloseGroup: STP\n");
+ gzputs(fp, "*CloseGroup: STP\n\n");
+#ifdef __APPLE__
+ gzputs(fp, "*OpenGroup: STPC/Expert color\n");
+
+ for (i = 5; i < num_opts; i ++)
+ {
+ gzprintf(fp, "*OpenUI *%s/%s: PickOne\n", stp_options[i].name,
+ stp_options[i].text);
+ gzprintf(fp, "*Default%s: 1000\n", stp_options[i].name);
+ for (j = stp_options[i].low;
+ j <= stp_options[i].high;
+ j += stp_options[i].step)
+ gzprintf(fp, "*%s %d/%.3f: \"\"\n", stp_options[i].name, j, j * 0.001);
+ gzprintf(fp, "*CloseUI: *%s\n", stp_options[i].name);
+ }
+
+ gzputs(fp, "*CloseGroup: STPC\n\n");
+ }
+ else
+ {
+ num_opts = 4;
+
+ for (i = 0; i < num_opts; i ++)
+ {
+ gzprintf(fp, "*OpenUI *%s/%s: PickOne\n", stp_options[i].name,
+ stp_options[i].text);
+ gzprintf(fp, "*Default%s: 1000\n", stp_options[i].name);
+ for (j = stp_options[i].low;
+ j <= stp_options[i].high;
+ j += stp_options[i].step)
+ gzprintf(fp, "*%s %d/%.3f: \"\"\n", stp_options[i].name, j, j * 0.001);
+ gzprintf(fp, "*CloseUI: *%s\n", stp_options[i].name);
+ }
+
+ gzputs(fp, "*CloseGroup: STP\n\n");
+ }
+#endif /* __APPLE__ */
/*
* Fonts...
@@ -845,7 +1039,7 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
gzputs(fp, "*Font ZapfChancery-MediumItalic: Standard \"(001.007S)\" Standard ROM\n");
gzputs(fp, "*Font ZapfDingbats: Special \"(001.004S)\" Standard ROM\n");
- gzprintf(fp, "*%%End of %s.ppd\n", driver);
+ gzprintf(fp, "\n*%%End of %s.ppd\n", driver);
gzclose(fp);
@@ -854,5 +1048,5 @@ write_ppd(const stp_printer_t p, /* I - Printer driver */
}
/*
- * End of "$Id: genppd.c,v 1.36 2001/11/11 21:25:36 rlk Exp $".
+ * End of "$Id: genppd.c,v 1.36.2.15 2004/06/12 20:04:05 rlk Exp $".
*/
diff --git a/src/cups/rastertoprinter.c b/src/cups/rastertoprinter.c
index 63d1676..c88a0be 100644
--- a/src/cups/rastertoprinter.c
+++ b/src/cups/rastertoprinter.c
@@ -1,9 +1,9 @@
/*
- * "$Id: rastertoprinter.c,v 1.19 2001/09/02 13:30:26 rlk Exp $"
+ * "$Id: rastertoprinter.c,v 1.19.4.15 2004/03/26 03:29:39 rlk Exp $"
*
* GIMP-print based raster filter for the Common UNIX Printing System.
*
- * Copyright 1993-2001 by Easy Software Products.
+ * Copyright 1993-2003 by Easy Software Products.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License,
@@ -57,6 +57,9 @@
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
#ifdef INCLUDE_GIMP_PRINT_H
#include INCLUDE_GIMP_PRINT_H
#else
@@ -64,6 +67,12 @@
#endif
#include "../../lib/libprintut.h"
+/* Solaris with gcc has problems because gcc's limits.h doesn't #define */
+/* this */
+#ifndef CHAR_BIT
+#define CHAR_BIT 8
+#endif
+
/*
* Structure for page raster data...
*/
@@ -73,6 +82,12 @@ typedef struct
cups_raster_t *ras; /* Raster stream to read from */
int page; /* Current page number */
int row; /* Current row number */
+ int left;
+ int right;
+ int bottom;
+ int top;
+ int width;
+ int height;
cups_page_header_t header; /* Page header from file */
} cups_image_t;
@@ -265,13 +280,14 @@ main(int argc, /* I - Number of command-line arguments */
* Figure out which driver to use...
*/
- if ((printer = stp_get_printer_by_driver(ppd->modelname)) == NULL)
- {
- fprintf(stderr, "ERROR: Fatal error: Unable to find driver named \"%s\"!\n",
- ppd->modelname);
- ppdClose(ppd);
- return (1);
- }
+ if ((printer = stp_get_printer_by_long_name(ppd->modelname)) == NULL)
+ if ((printer = stp_get_printer_by_driver(ppd->modelname)) == NULL)
+ {
+ fprintf(stderr, "ERROR: Fatal error: Unable to find driver named \"%s\"!\n",
+ ppd->modelname);
+ ppdClose(ppd);
+ return (1);
+ }
ppdClose(ppd);
@@ -301,20 +317,40 @@ main(int argc, /* I - Number of command-line arguments */
cups.ras = cupsRasterOpen(fd, CUPS_RASTER_READ);
/*
+ * Setup default print variables...
+ */
+
+ v = stp_allocate_copy(stp_printer_get_printvars(printer));
+
+ stp_set_scaling(v, 0); /* No scaling */
+ stp_set_cmap(v, NULL);
+ stp_set_left(v, 0);
+ stp_set_top(v, 0);
+ stp_set_orientation(v, ORIENT_PORTRAIT);
+ stp_set_outfunc(v, cups_writefunc);
+ stp_set_errfunc(v, cups_writefunc);
+ stp_set_outdata(v, stdout);
+ stp_set_errdata(v, stderr);
+ stp_set_job_mode(v, STP_JOB_MODE_JOB);
+
+ /*
* Process pages as needed...
*/
cups.page = 0;
+
while (cupsRasterReadHeader(cups.ras, &cups.header))
{
/*
* Update the current page...
*/
- cups.page ++;
cups.row = 0;
+ fprintf(stderr, "PAGE: %d 1\n", cups.page + 1);
+ /* use 1-based page logging */
+
/*
* Debugging info...
*/
@@ -370,45 +406,27 @@ main(int argc, /* I - Number of command-line arguments */
* Setup printer driver variables...
*/
- v = stp_allocate_copy(stp_printer_get_printvars(printer));
-
- stp_set_app_gamma(v, 1.0);
- stp_set_brightness(v, stp_brightness);
- stp_set_contrast(v, stp_contrast);
- stp_set_cyan(v, stp_cyan);
- stp_set_magenta(v, stp_magenta);
- stp_set_yellow(v, stp_yellow);
- stp_set_saturation(v, stp_saturation);
- stp_set_density(v, stp_density);
- stp_set_scaling(v, 0); /* No scaling */
- stp_set_cmap(v, NULL);
stp_set_page_width(v, cups.header.PageSize[0]);
stp_set_page_height(v, cups.header.PageSize[1]);
- stp_set_orientation(v, ORIENT_PORTRAIT);
- stp_set_gamma(v, stp_gamma);
stp_set_image_type(v, cups.header.cupsRowCount);
- stp_set_outfunc(v, cups_writefunc);
- stp_set_errfunc(v, cups_writefunc);
- stp_set_outdata(v, stdout);
- stp_set_errdata(v, stderr);
switch (cups.header.cupsColorSpace)
{
case CUPS_CSPACE_W :
- stp_set_output_type(v, OUTPUT_GRAY);
+ stp_set_output_type(v, OUTPUT_GRAY);
break;
case CUPS_CSPACE_K :
- stp_set_output_type(v, OUTPUT_MONOCHROME);
+ stp_set_output_type(v, OUTPUT_MONOCHROME);
break;
case CUPS_CSPACE_RGB :
- stp_set_output_type(v, OUTPUT_COLOR);
+ stp_set_output_type(v, OUTPUT_COLOR);
break;
case CUPS_CSPACE_CMYK :
- stp_set_output_type(v, OUTPUT_RAW_CMYK);
+ stp_set_output_type(v, OUTPUT_RAW_CMYK);
break;
default :
- fprintf(stderr, "ERROR: Bad colorspace %d!",
- cups.header.cupsColorSpace);
+ fprintf(stderr, "ERROR: Bad colorspace %d!",
+ cups.header.cupsColorSpace);
break;
}
@@ -416,14 +434,17 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "ERROR: Unable to set dither algorithm!\n");
else
stp_set_dither_algorithm(v,
- stp_dither_algorithm_name(cups.header.cupsRowStep));
+ stp_dither_algorithm_name(cups.header.cupsRowStep));
- stp_set_media_source(v, cups.header.MediaClass);
- stp_set_media_type(v, cups.header.MediaType);
- stp_set_ink_type(v, cups.header.OutputType);
+ if (cups.header.MediaClass && strlen(cups.header.MediaClass) > 0)
+ stp_set_media_source(v, cups.header.MediaClass);
+ if (cups.header.MediaType && strlen(cups.header.MediaType) > 0)
+ stp_set_media_type(v, cups.header.MediaType);
+ if (cups.header.OutputType && strlen(cups.header.OutputType) > 0)
+ stp_set_ink_type(v, cups.header.OutputType);
fprintf(stderr, "DEBUG: PageSize = %dx%d\n", cups.header.PageSize[0],
- cups.header.PageSize[1]);
+ cups.header.PageSize[1]);
if ((size = stp_get_papersize_by_size(cups.header.PageSize[1],
cups.header.PageSize[0])) != NULL)
@@ -436,11 +457,17 @@ main(int argc, /* I - Number of command-line arguments */
else
stp_set_resolution(v, res[cups.header.cupsCompression].name);
- /*
- * Print the page...
- */
-
+ stp_set_app_gamma(v, 1.0);
+ stp_set_brightness(v, stp_brightness);
+ stp_set_contrast(v, stp_contrast);
+ stp_set_cyan(v, stp_cyan);
+ stp_set_magenta(v, stp_magenta);
+ stp_set_yellow(v, stp_yellow);
+ stp_set_saturation(v, stp_saturation);
+ stp_set_density(v, stp_density);
+ stp_set_gamma(v, stp_gamma);
stp_merge_printvars(v, stp_printer_get_printvars(printer));
+
fprintf(stderr, "DEBUG: stp_get_output_to(v) |%s|\n", stp_get_output_to(v));
fprintf(stderr, "DEBUG: stp_get_driver(v) |%s|\n", stp_get_driver(v));
fprintf(stderr, "DEBUG: stp_get_ppd_file(v) |%s|\n", stp_get_ppd_file(v));
@@ -470,10 +497,40 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "DEBUG: stp_get_saturation(v) |%.3f|\n", stp_get_saturation(v));
fprintf(stderr, "DEBUG: stp_get_density(v) |%.3f|\n", stp_get_density(v));
fprintf(stderr, "DEBUG: stp_get_app_gamma(v) |%.3f|\n", stp_get_app_gamma(v));
+
+ stp_set_page_number(v, cups.page);
+
+ (*stp_printer_get_printfuncs(printer)->media_size)
+ (printer, v, &(cups.width), &(cups.height));
+ (*stp_printer_get_printfuncs(printer)->imageable_area)
+ (printer, v, &(cups.left), &(cups.right), &(cups.bottom), &(cups.top));
+ fprintf(stderr, "DEBUG: GIMP-PRINT %d %d %d %d %d %d\n",
+ cups.width, cups.left, cups.right, cups.height, cups.top, cups.bottom);
+ cups.right = cups.width - cups.right;
+ cups.width = cups.width - cups.left - cups.right;
+ cups.width = cups.header.HWResolution[0] * cups.width / 72;
+ cups.left = cups.header.HWResolution[0] * cups.left / 72;
+ cups.right = cups.header.HWResolution[0] * cups.right / 72;
+
+ cups.top = cups.height - cups.top;
+ cups.height = cups.height - cups.top - cups.bottom;
+ cups.height = cups.header.HWResolution[1] * cups.height / 72;
+ cups.top = cups.header.HWResolution[1] * cups.top / 72;
+ cups.bottom = cups.header.HWResolution[1] * cups.bottom / 72;
+ fprintf(stderr, "DEBUG: GIMP-PRINT %d %d %d %d %d %d\n",
+ cups.width, cups.left, cups.right, cups.height, cups.top, cups.bottom);
+
+ /*
+ * Print the page...
+ */
+
if (stp_printer_get_printfuncs(printer)->verify(printer, v))
{
signal(SIGTERM, cancel_job);
+ if (cups.page == 0)
+ stp_printer_get_printfuncs(printer)->start_job(printer, &theImage, v);
stp_printer_get_printfuncs(printer)->print(printer, &theImage, v);
+ fflush(stdout);
}
else
fputs("ERROR: Invalid printer settings!\n", stderr);
@@ -494,10 +551,14 @@ main(int argc, /* I - Number of command-line arguments */
cups.row ++;
}
}
-
- stp_free_vars(v);
+ cups.page ++;
}
+ if (cups.page > 0)
+ stp_printer_get_printfuncs(printer)->end_job(printer, &theImage, v);
+
+ stp_free_vars(v);
+
/*
* Close the raster stream...
*/
@@ -591,6 +652,21 @@ Image_get_appname(stp_image_t *image) /* I - Image */
* 'Image_get_row()' - Get one row of the image.
*/
+static void
+throwaway_data(int amount, cups_image_t *cups)
+{
+ unsigned char trash[4096]; /* Throwaway */
+ int block_count = amount / 4096;
+ int leftover = amount % 4096;
+ while (block_count > 0)
+ {
+ cupsRasterReadPixels(cups->ras, trash, 4096);
+ block_count--;
+ }
+ if (leftover)
+ cupsRasterReadPixels(cups->ras, trash, leftover);
+}
+
stp_image_status_t
Image_get_row(stp_image_t *image, /* I - Image */
unsigned char *data, /* O - Row */
@@ -598,26 +674,66 @@ Image_get_row(stp_image_t *image, /* I - Image */
{
cups_image_t *cups; /* CUPS image */
int i; /* Looping var */
+ int bytes_per_line;
+ int margin;
+ unsigned char *orig = data;
+ static int warned = 0;
if ((cups = (cups_image_t *)(image->rep)) == NULL)
return STP_IMAGE_ABORT;
+ bytes_per_line = cups->width * cups->header.cupsBitsPerPixel / CHAR_BIT;
+ margin = cups->header.cupsBytesPerLine - bytes_per_line;
if (cups->row < cups->header.cupsHeight)
{
- cupsRasterReadPixels(cups->ras, data, cups->header.cupsBytesPerLine);
+ fprintf(stderr, "DEBUG: GIMP-PRINT reading %d %d\n",
+ bytes_per_line, cups->row);
+ cupsRasterReadPixels(cups->ras, data, bytes_per_line);
cups->row ++;
+ fprintf(stderr, "DEBUG: GIMP-PRINT tossing right %d\n", margin);
+ if (margin)
+ throwaway_data(margin, cups);
/*
* Invert black data for monochrome output...
*/
if (cups->header.cupsColorSpace == CUPS_CSPACE_K)
- for (i = cups->header.cupsBytesPerLine; i > 0; i --, data ++)
- *data = 255 - *data;
+ for (i = bytes_per_line; i > 0; i --, data ++)
+ *data = ((1 << CHAR_BIT) - 1) - *data;
}
else
- memset(data, 255, cups->header.cupsBytesPerLine);
+ {
+ if (cups->header.cupsColorSpace == CUPS_CSPACE_CMYK)
+ memset(data, 0, bytes_per_line);
+ else
+ memset(data, ((1 << CHAR_BIT) - 1), bytes_per_line);
+ }
+
+ /*
+ * This exists to print non-ADSC input which has messed up the job
+ * input, such as that generated by psnup.
+ */
+ data = orig;
+ if (cups->header.cupsBitsPerPixel == 1)
+ {
+ if (warned == 0)
+ {
+ fprintf(stderr,
+ "WARNING: GIMP-PRINT detected broken job options. "
+ "Output quality is degraded. Are you using psnup or non-ADSC PostScript?\n");
+ warned = 1;
+ }
+ for (i = cups->width - 1; i >= 0; i--)
+ {
+ if ( (data[i/8] >> (7 - i%8)) &0x1)
+ data[i]=255;
+ else
+ data[i]=0;
+ }
+ }
+
return Image_status;
}
@@ -635,7 +751,8 @@ Image_height(stp_image_t *image) /* I - Image */
if ((cups = (cups_image_t *)(image->rep)) == NULL)
return (0);
- return (cups->header.cupsHeight);
+ fprintf(stderr, "DEBUG: GIMP-PRINT: Image_height %d\n", cups->height);
+ return (cups->height);
}
@@ -666,7 +783,8 @@ Image_note_progress(stp_image_t *image, /* I - Image */
return;
fprintf(stderr, "INFO: Printing page %d, %.0f%%\n",
- cups->page, 100.0 * current / total);
+ cups->page +1, 100.0 * current / total);
+ /* cups->page + 1 because users expect 1-based counting */
}
@@ -683,7 +801,8 @@ Image_progress_conclude(stp_image_t *image) /* I - Image */
if ((cups = (cups_image_t *)(image->rep)) == NULL)
return;
- fprintf(stderr, "INFO: Finished page %d...\n", cups->page);
+ fprintf(stderr, "INFO: Finished page %d...\n", cups->page + 1);
+ /* cups->page + 1 because users expect 1-based counting */
}
@@ -700,7 +819,8 @@ Image_progress_init(stp_image_t *image)/* I - Image */
if ((cups = (cups_image_t *)(image->rep)) == NULL)
return;
- fprintf(stderr, "INFO: Starting page %d...\n", cups->page);
+ fprintf(stderr, "INFO: Starting page %d...\n", cups->page + 1);
+ /* cups->page + 1 because users expect 1-based counting */
}
@@ -750,10 +870,11 @@ Image_width(stp_image_t *image) /* I - Image */
if ((cups = (cups_image_t *)(image->rep)) == NULL)
return (0);
- return (cups->header.cupsWidth);
+ fprintf(stderr, "DEBUG: GIMP-PRINT: Image_width %d\n", cups->width);
+ return (cups->width);
}
/*
- * End of "$Id: rastertoprinter.c,v 1.19 2001/09/02 13:30:26 rlk Exp $".
+ * End of "$Id: rastertoprinter.c,v 1.19.4.15 2004/03/26 03:29:39 rlk Exp $".
*/
diff --git a/src/escputil/.cvsignore b/src/escputil/.cvsignore
deleted file mode 100644
index 5da45ee..0000000
--- a/src/escputil/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-escputil
diff --git a/src/escputil/Makefile.am b/src/escputil/Makefile.am
index d730545..b9be86c 100644
--- a/src/escputil/Makefile.am
+++ b/src/escputil/Makefile.am
@@ -28,7 +28,8 @@ MAINT_CHARSET = latin1
AM_CFLAGS = $(GNUCFLAGS)
INCLUDES = @INCLUDES@
-LIBS = @LIBS@ ../../lib/libprintut.la $(INTLLIBS) ../../lib/libprintut.la
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
## Programs
@@ -39,7 +40,7 @@ bin_PROGRAMS = @ESCPUTIL_BIN@
EXTRA_PROGRAMS = escputil
-escputil_LDADD = $(LIBREADLINE_DEPS)
+escputil_LDADD = $(LIBPRINTUT) $(LIBREADLINE_DEPS)
## Clean
diff --git a/src/escputil/Makefile.in b/src/escputil/Makefile.in
new file mode 100644
index 0000000..41221a5
--- /dev/null
+++ b/src/escputil/Makefile.in
@@ -0,0 +1,450 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
+
+ESCPUTIL_BIN = escputil
+
+bin_PROGRAMS = @ESCPUTIL_BIN@
+
+EXTRA_PROGRAMS = escputil
+
+escputil_LDADD = $(LIBPRINTUT) $(LIBREADLINE_DEPS)
+
+CLEANFILES = $(EXTRA_PROGRAMS)
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = @ESCPUTIL_BIN@
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+escputil_SOURCES = escputil.c
+escputil_OBJECTS = escputil.$(OBJEXT)
+escputil_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+escputil_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = escputil.c
+OBJECTS = escputil.$(OBJEXT)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/escputil/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+escputil$(EXEEXT): $(escputil_OBJECTS) $(escputil_DEPENDENCIES)
+ @rm -f escputil$(EXEEXT)
+ $(LINK) $(escputil_LDFLAGS) $(escputil_OBJECTS) $(escputil_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/escputil
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+escputil.o: escputil.c ../../config.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
+ distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/escputil/escputil.c b/src/escputil/escputil.c
index 954ff3c..836889c 100644
--- a/src/escputil/escputil.c
+++ b/src/escputil/escputil.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escputil.c,v 1.39 2001/10/27 17:16:38 rlk Exp $"
+ * "$Id: escputil.c,v 1.39.2.18 2004/05/08 19:47:36 rlk Exp $"
*
* Printer maintenance utility for EPSON Stylus (R) printers
*
@@ -29,12 +29,14 @@
#include <string.h>
#include <stdlib.h>
#include <errno.h>
-#include <fcntl.h>
#if defined(HAVE_VARARGS_H) && !defined(HAVE_STDARG_H)
#include <varargs.h>
#else
#include <stdarg.h>
#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
#ifdef HAVE_POLL
#include <sys/poll.h>
#endif
@@ -200,9 +202,25 @@ stp_printer_t printer_list[] =
{ "C20ux", N_("Stylus C20ux"), 3, 15, 0, 2, 9 },
{ "C40sx", N_("Stylus C40sx"), 3, 15, 0, 2, 9 },
{ "C40ux", N_("Stylus C40ux"), 3, 15, 0, 2, 9 },
+ { "C41sx", N_("Stylus C41sx"), 3, 15, 0, 2, 9 },
+ { "C41ux", N_("Stylus C41ux"), 3, 15, 0, 2, 9 },
+ { "C42sx", N_("Stylus C42sx"), 3, 15, 0, 2, 9 },
+ { "C42ux", N_("Stylus C42ux"), 3, 15, 0, 2, 9 },
+ { "C43sx", N_("Stylus C43sx"), 3, 15, 0, 2, 9 },
+ { "C43ux", N_("Stylus C43ux"), 3, 15, 0, 2, 9 },
+ { "C44sx", N_("Stylus C44sx"), 3, 15, 0, 2, 9 },
+ { "C44ux", N_("Stylus C44ux"), 3, 15, 0, 2, 9 },
+ { "C50", N_("Stylus C50"), 3, 15, 0, 2, 9 },
{ "C60", N_("Stylus C60"), 3, 15, 0, 0, 0 },
- { "C70", N_("Stylus C70"), 3, 15, 0, 2, 9 },
- { "C80", N_("Stylus C80"), 3, 15, 0, 2, 9 },
+ { "C61", N_("Stylus C61"), 3, 15, 0, 0, 0 },
+ { "C62", N_("Stylus C62"), 3, 15, 0, 0, 0 },
+ { "C63", N_("Stylus C63"), 4, 15, 0, 1, 7 },
+ { "C64", N_("Stylus C64"), 4, 15, 0, 1, 7 },
+ { "C70", N_("Stylus C70"), 4, 15, 0, 1, 7 },
+ { "C80", N_("Stylus C80"), 4, 15, 0, 1, 7 },
+ { "C82", N_("Stylus C82"), 4, 15, 0, 1, 7 },
+ { "C83", N_("Stylus C83"), 4, 15, 0, 1, 7 },
+ { "C84", N_("Stylus C84"), 4, 15, 0, 1, 7 },
{ "color", N_("Stylus Color"), 1, 7, 0, 0, 0 },
{ "pro", N_("Stylus Color Pro"), 1, 7, 0, 0, 0 },
{ "pro-xl", N_("Stylus Color Pro XL"),1, 7, 0, 0, 0 },
@@ -241,24 +259,42 @@ stp_printer_t printer_list[] =
{ "790", N_("Stylus Photo 790"), 3, 15, 0, 0, 0 },
{ "810", N_("Stylus Photo 810"), 3, 15, 0, 0, 0 },
{ "820", N_("Stylus Photo 820"), 3, 15, 0, 0, 0 },
+ { "830", N_("Stylus Photo 830"), 3, 15, 0, 0, 0 },
{ "870", N_("Stylus Photo 870"), 3, 15, 0, 0, 0 },
{ "875", N_("Stylus Photo 875"), 3, 15, 0, 0, 0 },
{ "890", N_("Stylus Photo 890"), 3, 15, 0, 0, 0 },
{ "895", N_("Stylus Photo 895"), 3, 15, 0, 0, 0 },
+ { "915", N_("Stylus Photo 915"), 3, 15, 0, 0, 0 },
+ { "925", N_("Stylus Photo 925"), 3, 15, 0, 0, 0 },
+ { "935", N_("Stylus Photo 935"), 3, 15, 0, 0, 0 },
+ { "950", N_("Stylus Photo 950"), 4, 15, 0, 0, 0 },
+ { "960", N_("Stylus Photo 960"), 4, 15, 0, 0, 0 },
{ "1200", N_("Stylus Photo 1200"),3, 15, 0, 0, 0 },
{ "1270", N_("Stylus Photo 1270"),3, 15, 0, 0, 0 },
{ "1280", N_("Stylus Photo 1280"),3, 15, 0, 0, 0 },
{ "1290", N_("Stylus Photo 1290"),3, 15, 0, 0, 0 },
{ "2000", N_("Stylus Photo 2000P"),2, 15, 0, 0, 0 },
+ { "2100", N_("Stylus Photo 2100"),4, 15, 0, 0, 0 },
+ { "2200", N_("Stylus Photo 2200"),4, 15, 0, 0, 0 },
{ "5000", N_("Stylus Pro 5000"), 1, 7, 0, 0, 0 },
{ "5500", N_("Stylus Pro 5500"), 1, 7, 0, 0, 0 },
{ "7000", N_("Stylus Pro 7000"), 1, 7, 0, 0, 0 },
{ "7500", N_("Stylus Pro 7500"), 1, 7, 0, 0, 0 },
+ { "7600", N_("Stylus Pro 7600"), 3, 15, 0, 0, 0 },
{ "9000", N_("Stylus Pro 9000"), 1, 7, 0, 0, 0 },
{ "9500", N_("Stylus Pro 9500"), 1, 7, 0, 0, 0 },
+ { "9600", N_("Stylus Pro 9600"), 3, 15, 0, 0, 0 },
{ "10000", N_("Stylus Pro 10000"), 3, 15, 0, 0, 0 },
{ "scan2000", N_("Stylus Scan 2000"), 3, 15, 0, 0, 0 },
{ "scan2500", N_("Stylus Scan 2500"), 3, 15, 0, 0, 0 },
+ { "CX3100", N_("Stylus CX-3100"), 4, 15, 0, 1, 7 },
+ { "CX3200", N_("Stylus CX-3200"), 4, 15, 0, 1, 7 },
+ { "CX5100", N_("Stylus CX-5100"), 4, 15, 0, 1, 7 },
+ { "CX5200", N_("Stylus CX-5200"), 4, 15, 0, 1, 7 },
+ { "CX6300", N_("Stylus CX-6300"), 4, 15, 0, 1, 7 },
+ { "CX6400", N_("Stylus CX-6400"), 4, 15, 0, 1, 7 },
+ { "CX8300", N_("Stylus CX-8300"), 4, 15, 0, 1, 7 },
+ { "CX8400", N_("Stylus CX-8400"), 4, 15, 0, 1, 7 },
{ NULL, NULL, 0, 0, 0, 0, 0 },
};
@@ -309,6 +345,13 @@ main(int argc, char **argv)
int quiet = 0;
int operation = 0;
int c;
+
+ /* Set up gettext */
+#ifdef ENABLE_NLS
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
+#endif
+
while (1)
{
#ifdef __GNU_LIBRARY__
@@ -450,12 +493,12 @@ do_print_cmd(void)
if (printer == NULL)
strcpy(command, "lpr -l");
else
- sprintf(command, "lpr -P%s -l", printer);
+ snprintf(command, 1023, "lpr -P%s -l", printer);
}
else if (printer == NULL)
strcpy(command, "lp -s -oraw");
else
- sprintf(command, "lp -s -oraw -d%s", printer);
+ snprintf(command, 1023, "lp -s -oraw -d%s", printer);
if ((pfile = popen(command, "w")) == NULL)
{
@@ -509,21 +552,38 @@ read_from_printer(int fd, char *buf, int bufsize)
struct pollfd ufds;
#endif
int status;
- int retry = 5;
+ int retry = 10;
+
+#ifdef HAVE_FCNTL_H
+ fcntl(fd, F_SETFL,
+ O_NONBLOCK | fcntl(fd, F_GETFL));
+#endif
+
memset(buf, 0, bufsize);
+
do
{
#ifdef HAVE_POLL
ufds.fd = fd;
ufds.events = POLLIN;
ufds.revents = 0;
- (void) poll(&ufds, 1, 1000);
+ if ((status = poll(&ufds, 1, 1000)) < 0)
+ break; /* poll error */
#endif
status = read(fd, buf, bufsize - 1);
- if (status <= 0)
- sleep(1);
+ if (status == 0 || (status < 0 && errno == EAGAIN))
+ {
+ sleep(1);
+ status = 0; /* not an error (read would have blocked) */
+ }
}
while ((status == 0) && (--retry != 0));
+
+ if (status == 0 && retry == 0)
+ fprintf(stderr, _("Read from printer timed out\n"));
+ else if (status < 0)
+ fprintf(stderr, _("Cannot read from %s: %s\n"), raw_device, strerror(errno));
+
return status;
}
@@ -580,6 +640,7 @@ const char *colors[] =
N_("Yellow"),
N_("Light Cyan"),
N_("Light Magenta"),
+ N_("Black/Dark Yellow"),
0
};
@@ -588,6 +649,7 @@ do_ink_level(void)
{
int fd;
int status;
+ int retry = 6;
char buf[1024];
char *ind;
int i;
@@ -596,41 +658,51 @@ do_ink_level(void)
fprintf(stderr,_("Obtaining ink levels requires using a raw device.\n"));
exit(1);
}
- fd = open(raw_device, O_RDWR, 0666);
- if (fd == -1)
- {
- fprintf(stderr, _("Cannot open %s read/write: %s\n"), raw_device,
- strerror(errno));
- exit(1);
- }
- initialize_print_cmd();
- do_remote_cmd("ST", 2, 0, 1);
- add_resets(2);
- if (write(fd, printer_cmd, bufpos) < bufpos)
- {
- fprintf(stderr, _("Cannot write to %s: %s\n"), raw_device,
- strerror(errno));
- exit(1);
- }
- status = read_from_printer(fd, buf, 1024);
- if (status < 0)
- {
- fprintf(stderr, _("Cannot read from %s: %s\n"),
- raw_device,strerror(errno));
- exit(1);
- }
- ind = buf;
do
- ind = strchr(ind, 'I');
- while (ind && ind[1] != 'Q' && (ind[1] != '\0' && ind[2] != ':'));
- if (!ind || ind[1] != 'Q' || ind[2] != ':')
+ {
+ if (retry <= 4)
+ sleep(1);
+ fd = open(raw_device, O_RDWR, 0666);
+ if (fd == -1)
+ {
+ fprintf(stderr, _("Cannot open %s read/write: %s\n"), raw_device,
+ strerror(errno));
+ exit(1);
+ }
+ add_resets(2);
+ initialize_print_cmd();
+ if (isnew && !(retry & 1))
+ do_remote_cmd("IQ", 1, 1);
+ else
+ do_remote_cmd("ST", 2, 0, 1);
+ add_resets(2);
+ if (write(fd, printer_cmd, bufpos) < bufpos)
+ {
+ fprintf(stderr, _("Cannot write to %s: %s\n"), raw_device,
+ strerror(errno));
+ exit(1);
+ }
+ status = read_from_printer(fd, buf, 1024);
+ if (status < 0)
+ exit(1);
+ (void) close(fd);
+ ind = buf;
+ do
+ ind = strchr(ind, 'I');
+ while (ind && ind[1] != 'Q' && (ind[1] != '\0' && ind[2] != ':'));
+ if (!ind || ind[1] != 'Q' || ind[2] != ':' || ind[3] == ';')
+ {
+ ind = NULL;
+ }
+ } while (--retry != 0 && !ind);
+ if (!ind)
{
fprintf(stderr, _("Cannot parse output from printer\n"));
exit(1);
}
ind += 3;
printf("%20s %s\n", _("Ink color"), _("Percent remaining"));
- for (i = 0; i < 6; i++)
+ for (i = 0; i < 7; i++)
{
int val, j;
if (!ind[0] || ind[0] == ';')
@@ -650,12 +722,6 @@ do_ink_level(void)
printf("%20s %3d\n", _(colors[i]), val);
ind += 2;
}
- initialize_print_cmd();
- do_remote_cmd("ST", 2, 0, 0);
- add_resets(2);
- (void) write(fd, printer_cmd, bufpos);
- (void) read(fd, buf, 1024);
- (void) close(fd);
exit(0);
}
@@ -691,11 +757,7 @@ do_identify(void)
}
status = read_from_printer(fd, buf, 1024);
if (status < 0)
- {
- fprintf(stderr, _("Cannot read from %s: %s\n"),
- raw_device, strerror(errno));
- exit(1);
- }
+ exit(1);
printf("%s\n", buf);
(void) close(fd);
exit(0);
@@ -732,16 +794,12 @@ do_status(void)
}
status = read_from_printer(fd, buf, 1024);
if (status < 0)
- {
- fprintf(stderr, _("Cannot read from %s: %s\n"),
- raw_device, strerror(errno));
- exit(1);
- }
+ exit(1);
initialize_print_cmd();
do_remote_cmd("ST", 2, 0, 0);
add_resets(2);
(void) write(fd, printer_cmd, bufpos);
- (void) read(fd, buf, 1024);
+ (void) read_from_printer(fd, buf, 1024);
while ((where = strchr(buf, ';')) != NULL)
*where = '\n';
printf("%s\n", buf);
@@ -886,10 +944,7 @@ get_printer(void)
}
status = read_from_printer(fd, buf, 1024);
if (status < 0)
- {
- printf(_("\nCannot read from %s: %s\n"), raw_device,strerror(errno));
- exit(1);
- }
+ exit(1);
(void) close(fd);
pos = strchr(buf, (int) ';');
if (pos)
@@ -975,16 +1030,19 @@ do_final_alignment(void)
inbuf = do_get_input(_("> "));
if (inbuf[0] == 's' || inbuf[0] == 'S')
{
- printf(_("Please insert your alignment test page in the printer once more\n"
- "for the final save of your alignment settings. When the printer\n"
- "feeds the page through, your settings have been saved.\n"));
+ printf(_("About to save settings..."));
fflush(stdout);
initialize_print_cmd();
- add_newlines(2);
do_remote_cmd("SV", 0);
- add_newlines(2);
if (do_print_cmd())
- printer_error();
+ {
+ printf(_("failed!\n"));
+ printf(_("Your settings were not saved successfully. You must repeat the\n"
+ "alignment procedure.\n"));
+ exit(1);
+ }
+ printf(_("succeeded!\n"));
+ printf(_("Your alignment settings have been saved to the printer.\n"));
return 1;
}
break;
@@ -1023,26 +1081,19 @@ do_align(void)
do_align_help(passes, choices);
printf(_(printer_msg), _(printer_name));
inbuf = do_get_input(_("Press enter to continue > "));
+ top:
+ initialize_print_cmd();
+ for (curpass = 0; curpass < passes; curpass++)
+ do_remote_cmd("DT", 3, 0, curpass, 0);
+ if (do_print_cmd())
+ printer_error();
+ printf(_("Please inspect the print, and choose the best pair of lines in each pattern.\n"
+ "Type a pair number, '?' for help, or 'r' to repeat the procedure.\n"));
initialize_print_cmd();
for (curpass = 1; curpass <= passes; curpass ++)
{
- top:
- add_newlines(7 * (curpass - 1));
- do_remote_cmd("DT", 3, 0, curpass - 1, 0);
- if (do_print_cmd())
- printer_error();
reread:
- if (curpass == passes)
- printf(_("Please inspect the print, and choose the best pair of lines\n"
- "in pattern #%d, and then insert a fresh page in the input tray.\n"
- "Type a pair number, '?' for help, or 'r' to retry this pattern.\n"),
- curpass);
- else
- printf(_("Please inspect the print, and choose the best pair of lines\n"
- "in pattern #%d, and then reinsert the page in the input tray.\n"
- "Type a pair number, '?' for help, or 'r' to retry this pattern.\n"),
- curpass);
- fflush(stdout);
+ printf(_("Pass #%d"), curpass);
inbuf = do_get_input(_("> "));
switch (inbuf[0])
{
@@ -1083,19 +1134,19 @@ do_align(void)
fflush(stdout);
goto reread;
}
- if (curpass == passes)
- {
- printf(_("Aligning phase %d, and performing final test.\n"
- "Please insert a fresh sheet of paper.\n"), curpass);
- (void) do_get_input(_("Press enter to continue > "));
- }
- else
- printf(_("Aligning phase %d, and starting phase %d.\n"), curpass,
- curpass + 1);
- fflush(stdout);
- initialize_print_cmd();
do_remote_cmd("DA", 4, 0, curpass - 1, 0, answer);
}
+ printf(_("Attempting to set alignment..."));
+ if (do_print_cmd())
+ printer_error();
+ printf(_("succeeded.\n"));
+ printf(_("Please verify that the alignment is correct. After the alignment pattern\n"
+ "is printed again, please ensure that the best pattern for each line is\n"
+ "pattern %d. If it is not, you should repeat the process to get the best\n"
+ "quality printing.\n"), (choices + 1) / 2);
+ printf(_("Please insert a fresh sheet of paper.\n"));
+ (void) do_get_input(_("Press enter to continue > "));
+ initialize_print_cmd();
for (curpass = 0; curpass < passes; curpass++)
do_remote_cmd("DT", 3, 0, curpass, 0);
if (do_print_cmd())
diff --git a/src/foomatic/.cvsignore b/src/foomatic/.cvsignore
deleted file mode 100644
index 2f604f5..0000000
--- a/src/foomatic/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-Makefile.in
-Makefile
-.deps
-.libs
-printer_options
-foomatic-db
-foomatic-generator
-paper_sizes
-gimp-print-version
-stp_limits
-foomatic-stamp
-printers
diff --git a/src/foomatic/Makefile.am b/src/foomatic/Makefile.am
index 3c876ba..8e14614 100644
--- a/src/foomatic/Makefile.am
+++ b/src/foomatic/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.16 2001/11/19 12:40:46 rlk Exp $
+## $Id: Makefile.am,v 1.16.2.15 2003/04/18 23:15:27 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -28,37 +28,42 @@ MAINT_CHARSET = latin1
AM_CFLAGS = $(GNUCFLAGS)
INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS) -I$(top_srcdir)/src/main
-LIBS = @LIBS@ ../../lib/libprintut.la $(INTLLIBS) ../../lib/libprintut.la
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
## Programs
-FOOMATIC_NOINST_BIN = printer_options paper_sizes gimp-print-version \
+FOOMATIC_NOINST_BIN = printer_options printer_margins paper_sizes gimp-print-version \
stp_limits printers
noinst_PROGRAMS = @FOOMATIC_NOINST_BIN@
-EXTRA_PROGRAMS = printer_options gimp-print-version paper_sizes \
+EXTRA_PROGRAMS = printer_options printer_margins gimp-print-version paper_sizes \
stp_limits printers
printer_options_SOURCES = printer_options.c
-printer_options_LDADD = $(LIBGIMPPRINT_LIBS)
+printer_options_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
printer_options_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+printer_margins_SOURCES = printer_margins.c
+printer_margins_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+printer_margins_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
gimp_print_version_SOURCES = gimp-print-version.c
-gimp_print_version_LDADD = $(LIBGIMPPRINT_LIBS)
+gimp_print_version_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
gimp_print_version_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
paper_sizes_SOURCES = paper_sizes.c
-paper_sizes_LDADD = $(LIBGIMPPRINT_LIBS)
+paper_sizes_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
paper_sizes_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
stp_limits_SOURCES = stp_limits.c
-stp_limits_LDADD = $(LIBGIMPPRINT_LIBS)
+stp_limits_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
stp_limits_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
printers_SOURCES = printers.c
-printers_LDADD = $(LIBGIMPPRINT_LIBS)
+printers_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
printers_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
@@ -70,11 +75,42 @@ else
INSTALL_DATA_LOCAL_DEPS =
endif
+if BUILD_FOOMATIC_3
+FOOMATIC_GENERATOR_FOOMATIC_3_OPTS = -f 3
+else
+FOOMATIC_GENERATOR_FOOMATIC_3_OPTS =
+endif
+
+if BUILD_FOOMATIC_OLDIDS
+FOOMATIC_GENERATOR_OLDIDS_OPTS = -o
+else
+FOOMATIC_GENERATOR_OLDIDS_OPTS =
+endif
+
+if BUILD_IJS
+FOOMATIC_GENERATOR_EXTRA_OPTS = -d all
+FOOMATIC_IJS = yes
+else
+FOOMATIC_GENERATOR_EXTRA_OPTS = -d noijs
+FOOMATIC_IJS =
+endif
+
all-local: $(INSTALL_DATA_LOCAL_DEPS)
install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
- foomatic-kitload -k foomatic-db ; \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print ; \
+ if test -n "$(FOOMATIC_IJS)" ; then \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print-ijs ; \
+ fi ; \
+ fi
+
+install-kit:
+ if test -n "$(DESTDIR)" ; then \
+ $(mkinstalldirs) $(DESTDIR)`$(FOOMATIC_KITLOAD) -l` ; \
+ $(FOOMATIC_KITLOAD) -f -d $(DESTDIR) -k $(FOOMATIC_DB) ; \
+ else \
+ $(FOOMATIC_KITLOAD) -f -k $(FOOMATIC_DB) ; \
fi
clean-local:
@@ -84,7 +120,7 @@ foomatic-data: foomatic-stamp
foomatic-stamp: foomatic-generator foomatic-printermap $(EXTRA_PROGRAMS)
-$(RM) -r foomatic-db
- ./foomatic-generator
+ ./foomatic-generator -m $(srcdir)/foomatic-printermap -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS) $(FOOMATIC_GENERATOR_OLDIDS_OPTS)
touch foomatic-stamp
$(LIBGIMPPRINT_LIBS):
@@ -94,8 +130,11 @@ $(LIBGIMPPRINT_LIBS):
## Clean
-CLEANFILES = $(noinst_PROGRAMS)
+CLEANFILES = $(noinst_PROGRAMS) foomatic-stamp
MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = foomatic-printermap foomatic-templates/*.xml
+EXTRA_DIST = foomatic-printermap \
+ oldprinterids \
+ foomatic-templates-gs/*.xml \
+ foomatic-templates-ijs/*.xml
diff --git a/src/foomatic/Makefile.in b/src/foomatic/Makefile.in
new file mode 100644
index 0000000..5dea9ed
--- /dev/null
+++ b/src/foomatic/Makefile.in
@@ -0,0 +1,550 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS) -I$(top_srcdir)/src/main
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
+
+FOOMATIC_NOINST_BIN = printer_options printer_margins paper_sizes gimp-print-version stp_limits printers
+
+
+noinst_PROGRAMS = @FOOMATIC_NOINST_BIN@
+
+EXTRA_PROGRAMS = printer_options printer_margins gimp-print-version paper_sizes stp_limits printers
+
+
+printer_options_SOURCES = printer_options.c
+printer_options_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+printer_options_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+printer_margins_SOURCES = printer_margins.c
+printer_margins_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+printer_margins_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+gimp_print_version_SOURCES = gimp-print-version.c
+gimp_print_version_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+gimp_print_version_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+paper_sizes_SOURCES = paper_sizes.c
+paper_sizes_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+paper_sizes_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+stp_limits_SOURCES = stp_limits.c
+stp_limits_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+stp_limits_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+printers_SOURCES = printers.c
+printers_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+printers_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+@BUILD_FOOMATIC_TRUE@INSTALL_DATA_LOCAL_DEPS = foomatic-data
+@BUILD_FOOMATIC_FALSE@INSTALL_DATA_LOCAL_DEPS =
+@BUILD_FOOMATIC_3_TRUE@FOOMATIC_GENERATOR_FOOMATIC_3_OPTS = -f 3
+@BUILD_FOOMATIC_3_FALSE@FOOMATIC_GENERATOR_FOOMATIC_3_OPTS =
+@BUILD_FOOMATIC_OLDIDS_TRUE@FOOMATIC_GENERATOR_OLDIDS_OPTS = -o
+@BUILD_FOOMATIC_OLDIDS_FALSE@FOOMATIC_GENERATOR_OLDIDS_OPTS =
+@BUILD_IJS_TRUE@FOOMATIC_GENERATOR_EXTRA_OPTS = -d all
+@BUILD_IJS_FALSE@FOOMATIC_GENERATOR_EXTRA_OPTS = -d noijs
+@BUILD_IJS_TRUE@FOOMATIC_IJS = yes
+@BUILD_IJS_FALSE@FOOMATIC_IJS =
+
+CLEANFILES = $(noinst_PROGRAMS) foomatic-stamp
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = foomatic-printermap oldprinterids foomatic-templates-gs/*.xml foomatic-templates-ijs/*.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = foomatic-generator
+noinst_PROGRAMS = @FOOMATIC_NOINST_BIN@
+PROGRAMS = $(noinst_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+printer_options_OBJECTS = printer_options.$(OBJEXT)
+printer_options_LDFLAGS =
+printer_margins_OBJECTS = printer_margins.$(OBJEXT)
+printer_margins_LDFLAGS =
+gimp_print_version_OBJECTS = gimp-print-version.$(OBJEXT)
+gimp_print_version_LDFLAGS =
+paper_sizes_OBJECTS = paper_sizes.$(OBJEXT)
+paper_sizes_LDFLAGS =
+stp_limits_OBJECTS = stp_limits.$(OBJEXT)
+stp_limits_LDFLAGS =
+printers_OBJECTS = printers.$(OBJEXT)
+printers_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in foomatic-generator.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(printer_options_SOURCES) $(printer_margins_SOURCES) $(gimp_print_version_SOURCES) $(paper_sizes_SOURCES) $(stp_limits_SOURCES) $(printers_SOURCES)
+OBJECTS = $(printer_options_OBJECTS) $(printer_margins_OBJECTS) $(gimp_print_version_OBJECTS) $(paper_sizes_OBJECTS) $(stp_limits_OBJECTS) $(printers_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/foomatic/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+foomatic-generator: $(top_builddir)/config.status foomatic-generator.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+mostlyclean-noinstPROGRAMS:
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+distclean-noinstPROGRAMS:
+
+maintainer-clean-noinstPROGRAMS:
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+printer_options$(EXEEXT): $(printer_options_OBJECTS) $(printer_options_DEPENDENCIES)
+ @rm -f printer_options$(EXEEXT)
+ $(LINK) $(printer_options_LDFLAGS) $(printer_options_OBJECTS) $(printer_options_LDADD) $(LIBS)
+
+printer_margins$(EXEEXT): $(printer_margins_OBJECTS) $(printer_margins_DEPENDENCIES)
+ @rm -f printer_margins$(EXEEXT)
+ $(LINK) $(printer_margins_LDFLAGS) $(printer_margins_OBJECTS) $(printer_margins_LDADD) $(LIBS)
+
+gimp-print-version$(EXEEXT): $(gimp_print_version_OBJECTS) $(gimp_print_version_DEPENDENCIES)
+ @rm -f gimp-print-version$(EXEEXT)
+ $(LINK) $(gimp_print_version_LDFLAGS) $(gimp_print_version_OBJECTS) $(gimp_print_version_LDADD) $(LIBS)
+
+paper_sizes$(EXEEXT): $(paper_sizes_OBJECTS) $(paper_sizes_DEPENDENCIES)
+ @rm -f paper_sizes$(EXEEXT)
+ $(LINK) $(paper_sizes_LDFLAGS) $(paper_sizes_OBJECTS) $(paper_sizes_LDADD) $(LIBS)
+
+stp_limits$(EXEEXT): $(stp_limits_OBJECTS) $(stp_limits_DEPENDENCIES)
+ @rm -f stp_limits$(EXEEXT)
+ $(LINK) $(stp_limits_LDFLAGS) $(stp_limits_OBJECTS) $(stp_limits_LDADD) $(LIBS)
+
+printers$(EXEEXT): $(printers_OBJECTS) $(printers_DEPENDENCIES)
+ @rm -f printers$(EXEEXT)
+ $(LINK) $(printers_LDFLAGS) $(printers_OBJECTS) $(printers_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/foomatic
+
+distdir: $(DISTFILES)
+ $(mkinstalldirs) $(distdir)/foomatic-templates-gs \
+ $(distdir)/foomatic-templates-ijs
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+gimp-print-version.o: gimp-print-version.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+paper_sizes.o: paper_sizes.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+printer_margins.o: printer_margins.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+printer_options.o: printer_options.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+printers.o: printers.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+stp_limits.o: stp_limits.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-data-local
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) all-local
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am clean-local
+
+clean: clean-am
+
+distclean-am: distclean-noinstPROGRAMS distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-noinstPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-local install-data-am install-data install-am \
+install uninstall-am uninstall all-local all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+all-local: $(INSTALL_DATA_LOCAL_DEPS)
+
+install-data-local: $(INSTALL_DATA_LOCAL_DEPS)
+ if test -n "$(INSTALL_DATA_LOCAL_DEPS)" ; then \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print ; \
+ if test -n "$(FOOMATIC_IJS)" ; then \
+ $(MAKE) install-kit FOOMATIC_DB=foomatic-db/gimp-print-ijs ; \
+ fi ; \
+ fi
+
+install-kit:
+ if test -n "$(DESTDIR)" ; then \
+ $(mkinstalldirs) $(DESTDIR)`$(FOOMATIC_KITLOAD) -l` ; \
+ $(FOOMATIC_KITLOAD) -f -d $(DESTDIR) -k $(FOOMATIC_DB) ; \
+ else \
+ $(FOOMATIC_KITLOAD) -f -k $(FOOMATIC_DB) ; \
+ fi
+
+clean-local:
+ -$(RM) -r foomatic-db
+
+foomatic-data: foomatic-stamp
+
+foomatic-stamp: foomatic-generator foomatic-printermap $(EXTRA_PROGRAMS)
+ -$(RM) -r foomatic-db
+ ./foomatic-generator -m $(srcdir)/foomatic-printermap -t $(srcdir)/foomatic-templates $(FOOMATIC_GENERATOR_EXTRA_OPTS) $(FOOMATIC_GENERATOR_FOOMATIC_3_OPTS) $(FOOMATIC_GENERATOR_OLDIDS_OPTS)
+ touch foomatic-stamp
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../main ; \
+ $(MAKE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/foomatic/foomatic-generator.in b/src/foomatic/foomatic-generator.in
index 57950aa..b5b3f7a 100644
--- a/src/foomatic/foomatic-generator.in
+++ b/src/foomatic/foomatic-generator.in
@@ -1,10 +1,48 @@
#!@PERL@
+# Get command line options
+use Getopt::Long;
+Getopt::Long::Configure("no_ignore_case", "pass_through");
+GetOptions("m=s" => \$opt_m, # Map file
+ "t=s" => \$opt_t, # Template directory
+ "f=s" => \$opt_f, # Foomatic version
+ "o" => \$opt_o, # Old Foomatic IDs
+ "d=s" => \@opt_d); # which Drivers?
+
# Wherever we put it...
my $mapfile;
# $mapfile = "../main/printers.xml";
-$mapfile = "foomatic-printermap";
+$mapfile = $opt_m;
+
+my $templatedir;
+$templatedir = $opt_t;
+
+my @drivertypes = ();
+for my $d (@opt_d) {
+ if (lc($d) eq "gs") {
+ push (@drivertypes, "gs");
+ }
+ if (lc($d) eq "ijs") {
+ push (@drivertypes, "ijs");
+ }
+ if (lc($d) eq "nogs") {
+ @drivertypes = ("ijs");
+ }
+ if (lc($d) eq "noijs") {
+ @drivertypes = ("gs");
+ }
+ if (lc($d) eq "all") {
+ @drivertypes = ("gs", "ijs");
+ }
+ if (lc($d) eq "both") {
+ @drivertypes = ("gs", "ijs");
+ }
+}
+
+exit 0 if ($#drivertypes < 0); # Nothing to be done, exit silently
+# Do we have Foomatic 2.9 or newer
+my $foomatic3 = ((defined($opt_f)) && ($opt_f >= 2.9));
# The following substitutions happen to the template XML files:
# @@STPVER@@ - the version number (ie '4.1.5')
@@ -39,6 +77,10 @@ my $funcs = { 'InputSlot' => { 'OPTCONSTRAINTS' => \&build_cons,
'ENUMVALS' => \&build_ev },
'Resolution' => { 'OPTCONSTRAINTS' => \&build_resolution_cons,
'ENUMVALS' => \&build_resolution_ev },
+ 'PrintoutMode' => { 'OPTCONSTRAINTS' =>
+ \&build_printoutmode_cons,
+ 'ENUMVALS' =>
+ \&build_printoutmode_ev },
};
my $drivervals = { 'PageSize' => \&optmap_pagesize,
@@ -50,9 +92,15 @@ my $debug = 0;
# Foomatic name => Gimp-print name
%argnamemap = ('Quality' => 'Resolution');
-%colormap = ('Grayscale' => 0,
- 'Color' => 1,
- 'BlackAndWhite' => 2);
+$colormap = { 'gs' => { 'Grayscale' => '0',
+ 'Color' => '1',
+ 'BlackAndWhite' => '2' },
+ 'ijs' => { 'Grayscale' => 'DeviceGray',
+ 'Color' => 'DeviceRGB',
+ 'BlackAndWhite' =>
+ 'DeviceGray -dBitsPerSample=1',
+ 'RawCMYK' => 'DeviceCMYK' }
+ };
use Data::Dumper;
@@ -65,6 +113,15 @@ while(<PIPE>) {
close PIPE or die "Cannot run printer_options: $!\n";
print STDERR "done.\n";
+if ($foomatic3) {
+ open PIPE, "./printer_margins|" or die "Cannot run printer_margins: $!\n";
+ print STDERR "Loading margins from ./printer_margins...";
+ $code = join('', <PIPE>);
+ close PIPE or die "Cannot run printer_margins: $!\n";
+ eval $code or die "Cannot run printer_margins: $!\n";
+ print STDERR "done.\n";
+}
+
open PIPE, "./stp_limits|" or die "Cannot run stp_limits: $!\n";
print STDERR "Loading options from ./stp_limits...";
while(<PIPE>) {
@@ -83,6 +140,24 @@ while(<PIPE>) {
close PIPE or die "Cannot run printers: $!\n";
print STDERR "done.\n";
+my %oldid;
+if ($opt_o) {
+ # Load table to translate the Foomatic IDs to the old (numerical) ones
+ print STDERR
+ "Loading printer ID translation table from @srcdir@/oldprinterids...";
+ my $translation_table = "@srcdir@/oldprinterids";
+ open TRTAB, "< $translation_table" or
+ die "Cannot read printer ID translation table: $!\n";
+ while (<TRTAB>) {
+ chomp;
+ if (/^\s*(\S+)\s+(\S+)\s*$/) {
+ $oldid{"printer/$2"} = "printer/$1";
+ }
+ }
+ close TRTAB;
+ print STDERR "done.\n";
+}
+
# OK, now %stpdata is a big honking thing, and %defaults is in there, too.
# Invert, to build %bar{$optionname} = [ choice1, choice2 ];
@@ -98,6 +173,31 @@ for $a (keys(%stpdata)) {
}
}
+if ($foomatic3) {
+ # Generate data for "PrintoutMode" option, only needed for
+ # Foomatic 2.9.x or newer
+ print STDERR "Generating data for \"PrintoutMode\" option...";
+ ($printoutmode, $printoutmodechoices) = getprintoutmode();
+ print STDERR "done.\n";
+ # Foomatic >= 2.9: Make a list of all choice entries needed in the
+ # "PrintoutMode" option XML file. Note: every choice ("Draft",
+ # "Normal", ...) will appear several times, but with different
+ # strings in "<ev_driverval>". Constraints will make only the
+ # right choices getting into the PPD file. Assign a unique ID to
+ # each entry.
+ for $a (keys(%{$printoutmode})) {
+ for $vtmp (keys %{$printoutmode->{$a}}) {
+ my $mode = $printoutmode->{$a}{$vtmp};
+ if (!$seen_modes{$vtmp}{$mode}++) {
+ if (!defined($nums{$vtmp})) {
+ $nums{$vtmp} = 0;
+ }
+ $nums{$vtmp} ++;
+ $modes{$vtmp}{$mode} = "$vtmp-$nums{$vtmp}";
+ }
+ }
+ }
+}
# Step 1: construct a map from Model= values to Foomatic model id's
# this map is %mapstp. The inverse from model to Model is %mapdb
@@ -106,9 +206,16 @@ for $a (keys(%stpdata)) {
open PRINTERS, $mapfile or die "Cannot open mapfile $mapfile: $!\n";
for (<PRINTERS>) {
- if (m!^#\s*gptofoo\s+([^\s]+)\s+([^\s]+)!) {
- push (@{$mapstp{$1}}, $2);
- $mapfoo{$2} = $1; # do we need?
+ if (m!^\#\s*gptofoo\s+([^\s]+)\s+([^\s]+)!) {
+ my $foomaticid = $2;
+ my $deviceclass = $1;
+ if ($opt_o) {
+ # Translate the Foomatic IDs to the old (numerical) ones
+ $foomaticid = $oldid{$foomaticid}
+ if defined($oldid{$foomaticid});
+ }
+ push (@{$mapstp{$deviceclass}}, $foomaticid);
+ $mapfoo{$foomaticid} = $deviceclass; # do we need?
}
}
@@ -122,6 +229,13 @@ for (keys(%stpdata)) {
}
}
+for (keys(%mapstp)) {
+ if (!defined($stpdata{$_})) {
+ $missing_drivers = 1;
+ warn "No gimp-print printer for foomatic ID $_.\n";
+ }
+}
+
if ($missing_drivers) {
die "Cannot continue\n";
}
@@ -131,7 +245,6 @@ open PIPE, "./gimp-print-version|" or die "Cannot run gimp-print-version: $!\n";
my $stpvers = <PIPE>;
close PIPE or die "Cannot run gimp-print-version: $!\n";
chomp $stpvers;
-print STDERR "Using drivername gimp-print\n";
# Build <printers> clause...
my @printerlist = ();
@@ -139,96 +252,215 @@ push (@printerlist, " <printers>\n");
my $p1;
for $p1 (keys(%mapstp)) {
push (@printerlist, " <!-- gimp-print driver: $p1 -->\n");
- for (@{$mapstp{$p1}}) {
- push(@printerlist, " <printer><id>$_</id></printer>\n");
+ for my $id (@{$mapstp{$p1}}) {
+ if ($foomatic3) {
+ # Add unprintable margins (only Foonmatic 2.9.x)
+ push(@printerlist, " <printer>\n");
+ push(@printerlist, " <id>$id</id>\n");
+ push(@printerlist, " <margins>\n");
+ my ($cleft, $cright, $ctop, $cbottom) =
+ (undef, undef, undef, undef);
+ if (defined($imageableareas{$p1}{'Custom'})) {
+ $cleft = $imageableareas{$p1}{'Custom'}{'left'};
+ $cright = $imageableareas{$p1}{'Custom'}{'right'};
+ $ctop = $imageableareas{$p1}{'Custom'}{'top'};
+ $cbottom = $imageableareas{$p1}{'Custom'}{'bottom'};
+ push(@printerlist, " <general>\n");
+ push(@printerlist, " <relative />\n");
+ push(@printerlist, " <left>$cleft</left>\n");
+ push(@printerlist, " <right>$cright</right>\n");
+ push(@printerlist, " <top>$ctop</top>\n");
+ push(@printerlist, " <bottom>$cbottom</bottom>\n");
+ push(@printerlist, " </general>\n");
+ }
+ for my $ps (keys %{$imageableareas{$p1}}) {
+ next if $ps eq 'Custom'; # We have done "Custom" already
+ my ($left, $right, $top, $bottom, $width, $height);
+ $left = $imageableareas{$p1}{$ps}{'left'};
+ $right = $imageableareas{$p1}{$ps}{'right'};
+ $top = $imageableareas{$p1}{$ps}{'top'};
+ $bottom = $imageableareas{$p1}{$ps}{'bottom'};
+ $width = $imageableareas{$p1}{$ps}{'width'};
+ $height = $imageableareas{$p1}{$ps}{'height'};
+ # If the <general> section serves for this paper size,
+ # do not define an <exception>
+ next if ((defined($cleft)) &&
+ ($left == $cleft) &&
+ ($right == $width - $cright) &&
+ ($top == $height - $ctop) &&
+ ($bottom == $cbottom));
+ push(@printerlist, " <exception PageSize=\"$ps\">\n");
+ push(@printerlist, " <absolute />\n");
+ if ($left != $cleft) {
+ push(@printerlist, " <left>$left</left>\n");
+ }
+ if ($right != $width - $cright) {
+ push(@printerlist, " <right>$right</right>\n");
+ }
+ if ($top != $height - $ctop) {
+ push(@printerlist, " <top>$top</top>\n");
+ }
+ if ($bottom != $cbottom) {
+ push(@printerlist, " <bottom>$bottom" .
+ "</bottom>\n");
+ }
+ push(@printerlist, " </exception>\n");
+ }
+ push(@printerlist, " </margins>\n");
+ push(@printerlist, " </printer>\n");
+ } else {
+ # Printer IDs only
+ push(@printerlist, " <printer><id>$id</id></printer>\n");
+ }
}
}
push (@printerlist, " </printers>\n");
+$drivernameprefix = "gimp-print";
+print STDERR "Using driver name prefix \"$drivernameprefix\"\n";
+
my $generalsubs = { 'STPVER' => $stpvers,
- 'DRVNAME' => "gimp-print",
+ 'DRVNAME' => $drivernameprefix,
'STPRINTERS' => join('', @printerlist) };
-my @numericsubs = ('MINVAL', 'MAXVAL', 'DEFVAL');
+my $optiongroups = { 'PageSize' => 'General',
+ 'InputSlot' => 'General',
+ 'MediaType' => 'General',
+ 'InkType' => 'General',
+ 'PrintoutMode' => 'General',
+ 'Resolution' => 'PrintoutMode',
+ 'Quality' => 'PrintoutMode',
+ 'Color' => 'PrintoutMode',
+ 'ImageType' => 'PrintoutMode',
+ 'Dither' => 'PrintoutMode',
+ 'Gamma' => 'Adjustment',
+ 'Density' => 'Adjustment',
+ 'Brightness' => 'Adjustment',
+ 'Contrast' => 'Adjustment',
+ 'Saturation' => 'Adjustment',
+ 'Cyan' => 'Adjustment',
+ 'Magenta' => 'Adjustment',
+ 'Yellow' => 'Adjustment' };
-opendir TDIR, "foomatic-templates" or die "Cannot open templates directory: $!\n";
+my @numericsubs = ('MINVAL', 'MAXVAL', 'DEFVAL');
-# OK, make the db heirarchy alongside the templates one...
-mkdir 'foomatic-db', 0755 or die "Cannot create directory foomatic-db: $!\n"
- unless -d 'foomatic-db';
-mkdir 'foomatic-db/opt', 0755 or die "Cannot create directory foomatic-db/opt: $!\n"
- unless -d 'foomatic-db/opt';
-mkdir 'foomatic-db/driver', 0755 or die "Cannot create directory foomatic-db/driver: $!\n"
- unless -d 'foomatic-db/driver';
+# OK, make the db directory...
+mkdir "foomatic-db", 0755 or
+ die "Cannot create directory foomatic-db: $!\n"
+ unless -d "foomatic-db";
# Now do stuff, already. Do the substitution into each file...
my $tmpl;
-while ($tmpl=readdir(TDIR)) {
- next if ($tmpl !~ m!.+\.xml$!);
-
- my $fooopt = $tmpl;
- $fooopt =~ s!\.xml$!!;
- my $stpopt = $argnamemap{$fooopt};
- $stpopt = $fooopt if ! defined ($stpopt);
-
-# print STDERR "Argnamemap '$fooopt' => '$stpopt'\n";
+for $drivertype (@drivertypes) {
+ $drivertypesuffix = "-$drivertype";
+ $drivertypesuffix =~ s/-gs//;
+ my $drvname = "$drivernameprefix$drivertypesuffix";
+ $generalsubs->{'DRVNAME'} = $drvname;
+ print "Generating Foomatic data for driver \"$drvname\"...\n";
+
+ # OK, make the db heirarchy alongside the templates one...
+ mkdir "foomatic-db/$drvname", 0755 or
+ die "Cannot create directory foomatic-db/$drvname: $!\n"
+ unless -d "foomatic-db/$drvname";
+ mkdir "foomatic-db/$drvname/opt", 0755 or
+ die "Cannot create directory foomatic-db/$drvname/opt: $!\n"
+ unless -d "foomatic-db/$drvname/opt";
+ mkdir "foomatic-db/$drvname/driver", 0755 or
+ die "Cannot create directory foomatic-db/$drvname/driver: $!\n"
+ unless -d 'foomatic-db/$drvname/driver';
+
+ opendir TDIR, "$templatedir-$drivertype" or
+ die "Cannot open templates directory: $!\n";
+
+ while ($tmpl=readdir(TDIR)) {
+
+ # Only XML files
+ next if ($tmpl !~ m!.+\.xml$!);
+ # The "PrintoutMode" option is only supported by Foomatic 2.9.x or
+ # newer
+ next if ((!$foomatic3) && ($tmpl eq "PrintoutMode.xml"));
+
+ my $fooopt = $tmpl;
+ $fooopt =~ s!\.xml$!!;
+ my $stpopt = $argnamemap{$fooopt};
+ $stpopt = $fooopt if ! defined ($stpopt);
+
+# print STDERR "Argnamemap '$fooopt' => '$stpopt'\n";
+
+ open TMPL, "$templatedir-$drivertype/$tmpl";
+ my @datafile = <TMPL>;
+ close TMPL;
+
+ print STDERR "Processing $tmpl...";
+
+ my $template = join('',@datafile);
+
+ # First, do the generic substitutions.
+
+ my ($substr);
+ for $substr (keys(%$generalsubs)) {
+ my $substitution = $generalsubs->{$substr};
+ $template =~ s!\@\@$substr\@\@!$substitution!g;
+ }
- open TMPL, "foomatic-templates/$tmpl";
- my @datafile = <TMPL>;
- close TMPL;
+ # Put the options into PPD groups (Foomatic >= 2.9)
- print STDERR "Processing $tmpl...";
+ if ($foomatic3) {
+ my $substitution = "\n <arg_group>" .
+ $optiongroups->{$fooopt} . "</arg_group>";
+ $template =~ s!\@\@GROUP\@\@!$substitution!g;
+ } else {
+ $template =~ s!\@\@GROUP\@\@!!g;
+ }
- my $template = join('',@datafile);
+ # Now do the numeric substitutions
- # First, do the generic substitutions.
+ for $substr (@numericsubs) {
+ my $substitution = $stp_values{$substr}{$stpopt};
+ $template =~ s!\@\@$substr\@\@!$substitution!g;
+ }
- my ($substr);
- for $substr (keys(%$generalsubs)) {
- my $substitution = $generalsubs->{$substr};
- $template =~ s!\@\@$substr\@\@!$substitution!g;
- }
+ # Now do special-purpose substitutions
- # Now do the numeric substitutions
+ for $substr (keys(%{$funcs->{$fooopt}})) {
+ my $substitution = &{$funcs->{$fooopt}{$substr}}($stpopt);
+ if (defined($substitution)) {
+ $template =~ s!\@\@$substr\@\@!$substitution!g;
+ }
+ }
- for $substr (@numericsubs) {
- my $substitution = $stp_values{$substr}{$stpopt};
- $template =~ s!\@\@$substr\@\@!$substitution!g;
- }
+ # Any more?
+ grep (m!\@\@([^\@]+)\@\@!g
+ && do { warn " Unknown substitution $1 in $tmpl!\n"; },
+ split("\n",$template));
- # Now do special-purpose substitutions
+ # Finally, write out the new file
- for $substr (keys(%{$funcs->{$fooopt}})) {
- my $substitution = &{$funcs->{$fooopt}{$substr}}($stpopt);
- if (defined($substitution)) {
- $template =~ s!\@\@$substr\@\@!$substitution!g;
- }
- }
+ # Options are under opt/
+ my $dbfilename = lc("foomatic-db/$drvname/opt/$drvname-$tmpl");
- # Any more?
- grep (m!\@\@([^\@]+)\@\@!g
- && do { warn " Unknown substitution $1 in $tmpl!\n"; },
- split("\n",$template));
+ # Special case the actual driver file under driver/
+ $dbfilename = "foomatic-db/$drvname/driver/$drvname.xml"
+ if ($tmpl eq 'gimp-print.xml');
- # Finally, write out the new file
+ open NEWF, "> $dbfilename" or die "Cannot create $dbfilename: $!";
+ print STDERR "writing $dbfilename...";
+ print NEWF $template;
+ print STDERR "done.\n";
+ close NEWF;
- # Options are under opt/
- my $dbfilename = lc("foomatic-db/opt/gimp-print-$tmpl");
+ }
- # Special case the actual driver file under driver/
- $dbfilename = "foomatic-db/driver/gimp-print.xml"
- if ($tmpl eq 'gimp-print.xml');
+ closedir TDIR;
- open NEWF, "> $dbfilename" or die "Cannot create $dbfilename: $!";
- print STDERR "writing $dbfilename...";
- print NEWF $template;
- print STDERR "done.\n";
- close NEWF;
+ # The paper size and resolution maps must be regenerated for the next
+ # driver, because the "driverval"s are different for the different
+ # drivers. So delete the caches.
+ undef $pagemap;
+ undef %rescache;
}
-
-
sub get_ev_shortname {
my ($val) = @_;
$val =~ s/ //g;
@@ -244,7 +476,7 @@ sub get_ev_key {
sub build_ev {
my ($stpopt) = @_;
- my $drvname = $generalsubs->{'DRVNAME'};
+ my $drvname = "$drivernameprefix$drivertypesuffix";
my @vals = ();
@@ -254,6 +486,11 @@ sub build_ev {
# Put in the basic choice info: ev names, etc
my $ev_longname = @$ev[1];
my $ev_shortname = @$ev[0];
+
+ # The GhostScript driver has no "RawCMYK" output type setting
+ next if (($drivertype eq "gs") && ($stpopt eq "Color") &&
+ ($ev_shortname eq "RawCMYK"));
+
my $ev_id = get_ev_key($ev_shortname, $drvname);
my $ev_driverval;
@@ -266,6 +503,8 @@ sub build_ev {
} else {
$ev_driverval = $ev_shortname;
}
+ # Remove "Roll" paper sizes, user has to use "Custom" instead.
+ next if (($stpopt eq "PageSize") && ($ev_driverval eq ""));
push (@vals,
" <enum_val id='$ev_id'>\n",
" <ev_longname><en>$ev_longname</en></ev_longname>\n",
@@ -277,13 +516,13 @@ sub build_ev {
" <driver>$drvname</driver>\n",
" </constraint>\n");
- # Build constraints for this particular ev
+ # Build constraints for this particular choice
my $stpprn;
for $stpprn (keys(%stpdata)) {
my $fooprn;
for $fooprn (@{$mapstp{$stpprn}}) {
if ($stpdata{$stpprn}{$stpopt}{$ev_shortname}) {
- # OK, this choice applies to this enum
+ # OK, this choice applies to this printer
push (@vals,
" <constraint sense='true'>\n",
" <!-- $fooprn == $stpprn -->\n",
@@ -309,7 +548,7 @@ sub build_cons {
my ($stpopt) = @_;
- my $drvname = $generalsubs->{'DRVNAME'};
+ my $drvname = "$drivernameprefix$drivertypesuffix";
my @PNCONS = ();
@@ -352,7 +591,7 @@ sub build_cons {
push (@PNCONS,
" <constraint sense='true'>\n",
- " <driver>gimp-print</driver>\n",
+ " <driver>$drvname</driver>\n",
" <printer>$fooname</printer><!-- gimp-print name: $stpname -->\n",
" <arg_defval>$foodefval</arg_defval>\n",
" </constraint>\n");
@@ -377,10 +616,15 @@ sub optmap_pagesize {
chomp;
$_ =~ m!^\s*(.+\S)\s+([0-9]+)\s+([0-9]+)\s*$!;
my ($name, $width, $height) = ($1, $2, $3);
- if ($width >= 0 and $height >= 0) {
- $pagemap->{$name} = "$width $height";
+ if (($width > 0 and $height > 0) or
+ ($name eq "Custom")) {
+ if ($drivertype eq "gs") {
+ $pagemap->{$name} = "$width $height";
+ } else {
+ $pagemap->{$name} = "-dDEVICEWIDTHPOINTS=$width -dDEVICEHEIGHTPOINTS=$height";
+ }
# print STDERR "PageSize '$name' driverval '$width $height'\n";
- }
+ }
}
close PUTIL;
}
@@ -390,8 +634,8 @@ sub optmap_pagesize {
sub optmap_color {
my ($value) = @_;
- if (defined $colormap{$value}) {
- return $colormap{$value};
+ if (defined $colormap->{$drivertype}{$value}) {
+ return $colormap->{$drivertype}{$value};
} else {
die "Cannot map output type '$value'\n";
}
@@ -399,15 +643,15 @@ sub optmap_color {
sub build_model_cons {
my ($stpopt) = @_;
- my $drvname = $generalsubs->{'DRVNAME'};
+ my $drvname = "$drivernameprefix$drivertypesuffix";
# OK, this is funky. For each stp model, we have a choice. That
# choice is valid for only the foo printers that correspond. For
# any given foo printer, there is *exactly one* available choice.
# The defval is the one available choice. Backends and
- # applications do not show choices with only one option; they just
- # select that option. So we don't bother to make pretty option
+ # applications do not show options with only one choice; they just
+ # select that choice. So we don't bother to make pretty option
# names or anything.
#
# See also build_model_ev()
@@ -445,7 +689,7 @@ sub build_model_cons {
# See build_model_cons, above.
sub build_model_ev {
my ($stpopt) = @_;
- my $drvname = $generalsubs->{'DRVNAME'};
+ my $drvname = "$drivernameprefix$drivertypesuffix";
my @vals = ();
@@ -457,8 +701,24 @@ sub build_model_ev {
my $ev_longname = $printer_name{$ev};
my $ev_shortname = get_ev_shortname($ev);
my $ev_id = get_ev_key($ev, $drvname);
- my $ev_driverval = $ev;
-
+ my $ev_driverval;
+ if ($drivertype eq "gs") {
+ $ev_driverval = $ev;
+ } else {
+ my $make;
+ if ($ev =~ /^escp2/) {
+ $make = "EPSON";
+ } elsif ($ev =~ /^bjc/) {
+ $make = "CANON";
+ } elsif ($ev =~ /^pcl/) {
+ $make = "HEWLETT-PACKARD";
+ } elsif ($ev =~ /^lexmark/) {
+ $make = "LEXMARK";
+ } else {
+ die "Could not determine printer manufacturer from \"$ev\"!\n";
+ }
+ $ev_driverval = "-sDeviceManufacturer=$make -sDeviceModel=$ev";
+ }
push (@vals,
" <enum_val id='$ev_id'>\n",
" <ev_longname><en>$ev_longname</en></ev_longname>\n",
@@ -507,11 +767,15 @@ sub build_model_ev {
# - What are the legal resolutions? Sort of parse and compute these
# from the Resolution values.
#
-# The driverval is "x y", and gets passedin a /HWResolution ps clause
+# In the case of the GhostScript driver The driverval is "X Y", and gets
+# passed in a /HWResolution ps clause, for the IJS driver it is "XxY" and
+# gets passed via the "-r" command line option of GhostScript.
sub compute_resolutions {
my ($stpname) = @_;
+ my $drvname = "$drivernameprefix$drivertypesuffix";
+
if (!defined($rescache{$stpname})) {
my @reslist = ();
@@ -524,15 +788,24 @@ sub compute_resolutions {
my ($x, $y) = ($1, $3);
$y = $x if !defined($y);
- my $r = {'x' => $x,
- 'y' => $y,
- 'driverval' => "$x $y",
- 'ev_key' => get_ev_key("res-$x-$y", "gimp-print")
- };
+ my $r;
+ if ($drivertype eq "gs") {
+ $r = {'x' => $x,
+ 'y' => $y,
+ 'driverval' => "$x $y",
+ 'ev_key' => get_ev_key("res-$x-$y", $drvname)
+ };
+ } else {
+ $r = {'x' => $x,
+ 'y' => $y,
+ 'driverval' => "${x}x${y}",
+ 'ev_key' => get_ev_key("res-$x-$y", $drvname)
+ };
+ }
push (@reslist, $r);
# Default?
- $defval = get_ev_key("res-$x-$y", "gimp-print")
+ $defval = get_ev_key("res-$x-$y", $drvname)
if ($qual eq $defaults{$stpname}{'Resolution'});
# Note that this resolution value exists
@@ -547,9 +820,6 @@ sub compute_resolutions {
$rescache{$stpname}{'list'} = \@reslist;
$rescache{$stpname}{'defval'} = $defval;
$rescache{$stpname}{'takesit'} = \%hash;
-
- die "No default gsResolution found for printer $stpname!?\n"
- if ! defined($defval);
}
return $rescache{$stpname};
@@ -564,7 +834,7 @@ sub do_all_res {
sub build_resolution_ev {
my ($stpopt) = @_;
- my $drvname = $generalsubs->{'DRVNAME'};
+ my $drvname = "$drivernameprefix$drivertypesuffix";
my @vals = ();
@@ -580,7 +850,12 @@ sub build_resolution_ev {
my $ev_longname = "$x x $y DPI";
my $ev_shortname = get_ev_shortname($ev_longname);
my $ev_id = get_ev_key("res-$x-$y", $drvname);
- my $ev_driverval = "$x $y";
+ my $ev_driverval;
+ if ($drivertype eq "gs") {
+ $ev_driverval = "$x $y";
+ } else {
+ $ev_driverval = "${x}x${y}";
+ }
push (@vals,
" <enum_val id='$ev_id'>\n",
@@ -633,7 +908,7 @@ sub build_resolution_ev {
sub build_resolution_cons {
my ($stpopt) = @_;
- my $drvname = $generalsubs->{'DRVNAME'};
+ my $drvname = "$drivernameprefix$drivertypesuffix";
my @PNCONS = ();
@@ -666,6 +941,442 @@ sub build_resolution_cons {
" </constraints>\n");
}
+sub build_printoutmode_ev {
+ my ($stpopt) = @_;
+ my $drvname = "$drivernameprefix$drivertypesuffix";
-exit(0);
+ my @vals = ();
+
+ # OK, now for each choice ("Draft", "Normal", ...) ...
+ my $choice;
+ for $choice (keys %modes) {
+ # ... and each possible "<ev_driverval>" for it
+ my $ev_driverval;
+ for $ev_driverval (keys %{$modes{$choice}}) {
+ # Put in the basic choice info: ev names, etc
+ my $ev_longname = $printoutmodechoices->{$choice};
+ my $ev_shortname = $choice;
+
+ my $ev_id =
+ get_ev_key($modes{$choice}{$ev_driverval}, $drvname);
+ push (@vals,
+ " <enum_val id='$ev_id'>\n",
+ " <ev_longname><en>$ev_longname</en></ev_longname>\n",
+ " <ev_shortname><en>$ev_shortname</en></ev_shortname>\n",
+ " <ev_driverval>$ev_driverval</ev_driverval>\n",
+ " <constraints>\n",
+ " <!-- Assume the option doesn't apply... -->\n",
+ " <constraint sense='false'>\n",
+ " <driver>$drvname</driver>\n",
+ " </constraint>\n");
+
+ # Build constraints for this particular ev_driverval
+ my $stpprn;
+ for $stpprn (keys(%stpdata)) {
+ my $fooprn;
+ for $fooprn (@{$mapstp{$stpprn}}) {
+ if ($printoutmode->{$stpprn}{$choice} eq
+ $ev_driverval) {
+ # OK, this choice applies to this printer
+ push (@vals,
+ " <constraint sense='true'>\n",
+ " <!-- $fooprn == $stpprn -->\n",
+ " <driver>$drvname</driver>\n",
+ " <printer>$fooprn</printer>\n",
+ " </constraint>\n");
+ }
+ }
+ }
+
+ push (@vals,
+ " </constraints>\n",
+ " </enum_val>\n");
+ }
+ }
+
+ return join('',
+ "<enum_vals>\n",
+ @vals,
+ " </enum_vals>\n");
+}
+
+sub build_printoutmode_cons {
+ my ($stpopt) = @_;
+ my $drvname = "$drivernameprefix$drivertypesuffix";
+
+ my @PNCONS = ();
+
+ # For each stp printer...
+ my $stpname;
+ for $stpname (keys(%mapstp)) {
+
+ # For each possible foo name
+ my $fooname;
+ for $fooname (@{$mapstp{$stpname}}) {
+
+ # What's the default value (always the "Normal" mode)?
+ my $normalmode = $printoutmode->{$stpname}{'Normal'};
+ my $foodefval = get_ev_key($modes{'Normal'}{$normalmode},
+ $drvname);
+
+ push (@PNCONS,
+ " <constraint sense='true'>\n",
+ " <driver>$drvname</driver>\n",
+ " <printer>$fooname</printer>\n",
+ " <arg_defval>$foodefval</arg_defval>\n",
+ " </constraint>\n");
+ }
+ }
+
+ return join('',
+ "<constraints>\n",
+ @PNCONS,
+ " </constraints>\n");
+}
+
+sub qualityorder {
+ # List of suffixes of the Quality choices
+ my @suffixes = (
+ # General
+ "",
+ "dpi",
+ # Epson/Lexmark
+ "mw",
+ "mw2",
+ "sw",
+ "fol",
+ "fol2",
+ "fourp",
+ "uni",
+ "mwuni",
+ "mw2uni",
+ "swuni",
+ "foluni",
+ "fol2uni",
+ "fourpuni",
+ "hq",
+ "hquni",
+ "hq2",
+ "hq2uni",
+ # Canon
+ "dmt",
+ # HP
+ "mono",
+ );
+ my ($a, $b) = @_;
+ # Bring the suffixes to lower case
+ my $first = lc($a);
+ my $second = lc($b);
+ # Check whether they are in the @suffixes list
+ my $i;
+ for ($i = 0; $i <= $#suffixes; $i++) {
+ my $firstinlist = ($first eq $suffixes[$i]);
+ my $secondinlist = ($second eq $suffixes[$i]);
+ if (($firstinlist) && (!$secondinlist)) {return -1};
+ if (($secondinlist) && (!$firstinlist)) {return 1};
+ if (($firstinlist) && ($secondinlist)) {return 0};
+ }
+
+ # Equal quality
+ die "The quality choice suffixes $a and $b are unknown!\n";
+ return 0;
+
+}
+
+sub getprintoutmode {
+ my $choicelongnames = {
+ 'Draft' => 'Draft (Economy)',
+ 'Draft.Gray' => 'Draft Grayscale (Economy)',
+ 'Normal' => 'Normal',
+ 'Normal.Gray' => 'Normal Grayscale',
+ 'High' => 'High Quality',
+ 'High.Gray' => 'High Quality Grayscale',
+ 'VeryHigh' => 'Very High Quality',
+ 'VeryHigh.Gray' => 'Very High Quality Grayscale',
+ 'Photo' => 'Photo',
+ 'Photo.Gray' => 'Photo Grayscale',
+ };
+
+ ### BASIC RULES
+
+ # See mode-specific rules below
+
+ # There must be always a "Normal" mode, this will be the default.
+
+ # On black-and-white printers there are no modes with ".Gray"
+ # specifier, the standard modes are already grayscale.
+
+ # No "Photo" mode on laser printers.
+
+ # If on a PCL printer "600mono" is the chose quality, it will be
+ # replaced by "300dpi" in color mode (This can lead to a mode being
+ # removed by the following two rules).
+
+ # If "VeryHigh" has exactly the same settings as "High", "VeryHigh"
+ # is left out.
+
+ # If "High" has exactly the same settings as "Normal", "High"
+ # is left out.
+
+ # If nothing is found for a certain mode, this mode is left out.
+
+ my $modes = {};
+ # Treat all printers
+ my $stpprn;
+ for $stpprn (keys(%stpdata)) {
+ my $modeinfo = {};
+ my ($draftminres, $draftbestsymmetry, $draftlowestqualstr) =
+ (99999999, 99999999, "xxx");
+ my $normaldefaultqual = $defaults{$stpprn}{'Resolution'};
+ my ($highmaxres, $highbestsymmetry, $highbestqualstr) =
+ (0, 99999999, "");
+ my ($veryhighmaxres, $veryhighbestsymmetry, $veryhighbestqualstr) =
+ (0, 99999999, "");
+ my ($photomaxres, $photobestsymmetry, $photobestqualstr) =
+ (0, 99999999, "");
+ # Go through all choices of the "Quality" option and find the
+ # best values for the "PrintoutMode" option
+ my $quality;
+ for $quality (keys(%{$stpdata{$stpprn}{'Resolution'}})) {
+ my ($xres, $yres, $qualstr);
+ if ($quality =~ /^(\d+)x(\d+)(\D.*)$/) {
+ $xres = $1;
+ $yres = $2;
+ $qualstr = $3;
+ } elsif ($quality =~ /^(\d+)(\D.*)$/) {
+ $xres = $1;
+ $yres = $1;
+ $qualstr = $2;
+ } else {
+ die "Invalid quality: $quality\n";
+ }
+ # Resolution in dots per square inch
+ my $respersquareinch = $xres * $yres;
+ # Symmetry: Shows how far from symmetric a resolution is,
+ # the smaller, the more symmetric, symmetric resolutions (as
+ # 300x300 dpi) give zero.
+ my $symmetry = abs(log($yres/$xres));
+
+ ### Mode: DRAFT
+
+ # Use always the lowest available resolution/quality,
+ # preferrably symmetric resolutions,
+
+ # Do not use resolutions with less than 150 dpi in both
+ # demensions.
+
+ # VeryFast dithering, ImageType LineArt
+
+ if (($respersquareinch < $draftminres) ||
+ (($respersquareinch == $draftminres) &&
+ ($symmetry < $draftbestsymmetry)) ||
+ (($respersquareinch == $draftminres) &&
+ ($symmetry == $draftbestsymmetry) &&
+ (qualityorder($qualstr, $draftlowestqualstr) < 0))) {
+ $draftbestsymmetry = $symmetry;
+ $draftminres = $respersquareinch;
+ $draftlowestqualstr = $qualstr;
+ next if (($xres < 150) && # Resolution not lower than
+ ($yres < 150)); # 150x150, 360x120 allowed
+ $modeinfo->{'Draft'} = {
+ 'quality' => $quality,
+ 'xres' => $xres,
+ 'yres' => $yres,
+ 'dither' => 'VeryFast',
+ 'image' => 'LineArt'
+ }
+ }
+
+ ### Mode: NORMAL
+
+ # Default resolution/quality of GIMP-Print, upgrade to
+ # unidirectional if possible, use 600x600 dpi for
+ # Lexmark Z..
+
+ # Adaptive Hybrid dithering, ImageType Photographs
+
+ if ((($stpprn =~ /^lexmark\-z/) &&
+ ($xres == 600) && ($yres == 600) && ($qualstr eq "uni")) ||
+ (($stpprn !~ /^lexmark\-z/) &&
+ (($quality eq "${normaldefaultqual}uni") ||
+ (($quality eq $normaldefaultqual) &&
+ (!defined($normal->{'quality'})))))) {
+ $modeinfo->{'Normal'} = {
+ 'quality' => $quality,
+ 'xres' => $xres,
+ 'yres' => $yres,
+ 'dither' => 'Adaptive',
+ 'image' => 'Photographs'
+ }
+ }
+
+ ### Mode: HIGH
+
+ # High: The highest resolution which is not higher than
+ # 720x720 dpi (Lexmark Z..: 1200x1200 dpi),
+ # unidirectional if possible,
+ # not "fol", "fourp", "hq", "hq2"
+
+ # Adaptive Hybrid dithering, ImageType Photographs
+
+ if (($respersquareinch > $highmaxres) ||
+ (($respersquareinch == $highmaxres) &&
+ ($symmetry < $highbestsymmetry)) ||
+ (($respersquareinch == $highmaxres) &&
+ ($symmetry == $highbestsymmetry) &&
+ (qualityorder($qualstr, $highbestqualstr) > 0))) {
+ unless ((($stpprn !~ /^lexmark\-z/) &&
+ (($xres > 720) || # Resolution not higher than
+ ($yres > 720))) || # 720x720 for non Lexmark
+ ($xres > 1200) || # not bigger than 1200x1200
+ ($yres > 1200) || # in general
+ ($qualstr =~ /^(hq.*|fo.*)$/)) { # Not "hq", "hq2",
+ # "fol", "fourp"
+ $highbestsymmetry = $symmetry;
+ $highmaxres = $respersquareinch;
+ $highbestqualstr = $qualstr;
+ $modeinfo->{'High'} = {
+ 'quality' => $quality,
+ 'xres' => $xres,
+ 'yres' => $yres,
+ 'dither' => 'Adaptive',
+ 'image' => 'Photographs'
+ }
+ }
+ }
+
+ ### Mode: VERY HIGH
+
+ # Use always the highest available resolution/quality,
+ # preferrably symmetric resolutions,
+
+ # On Epsons: Maximum 1440x720, not "hq2".
+
+ # Adaptive Hybrid dithering, ImageType Photographs
+
+ if (($respersquareinch > $veryhighmaxres) ||
+ (($respersquareinch == $veryhighmaxres) &&
+ ($symmetry < $veryhighbestsymmetry)) ||
+ (($respersquareinch == $veryhighmaxres) &&
+ ($symmetry == $veryhighbestsymmetry) &&
+ (qualityorder($qualstr, $veryhighbestqualstr) > 0))) {
+ unless (($stpprn =~ /^escp2/) && # Epson
+ (($xres > 1440) || # Resolution not higher than
+ ($yres > 720) || # 1440x720
+ ($qualstr eq "hq2"))) { # Not "hq2"
+ $veryhighbestsymmetry = $symmetry;
+ $veryhighmaxres = $respersquareinch;
+ $veryhighbestqualstr = $qualstr;
+ $modeinfo->{'VeryHigh'} = {
+ 'quality' => $quality,
+ 'xres' => $xres,
+ 'yres' => $yres,
+ 'dither' => 'Adaptive',
+ 'image' => 'Photographs'
+ }
+ }
+ }
+
+ ### Mode: PHOTO
+
+ # Use always the highest available resolution/quality,
+ # preferrably symmetric resolutions,
+
+ # On Epsons: Maximum 2880x720
+
+ # EvenTone dithering, ImageType Photographs
+
+ if (($respersquareinch > $photomaxres) ||
+ (($respersquareinch == $photomaxres) &&
+ ($symmetry < $photobestsymmetry)) ||
+ (($respersquareinch == $photomaxres) &&
+ ($symmetry == $photobestsymmetry) &&
+ (qualityorder($qualstr, $photobestqualstr) > 0))) {
+ unless (($stpprn =~ /^escp2/) && # Epson
+ (($xres > 2880) || # Resolution not higher than
+ ($yres > 720))) { # 2880x720
+ $photobestsymmetry = $symmetry;
+ $photomaxres = $respersquareinch;
+ $photobestqualstr = $qualstr;
+ $modeinfo->{'Photo'} = {
+ 'quality' => $quality,
+ 'xres' => $xres,
+ 'yres' => $yres,
+ 'dither' => 'EvenTone',
+ 'image' => 'Photographs'
+ }
+ }
+ }
+ }
+
+ # We must have a "Normal" mode for every printer.
+ if (!defined($modeinfo->{'Normal'}{'quality'})) {
+ die "No 'Normal' mode for $stpprn!\n";
+ }
+
+ # Build the strings with the settings for the "PrintoutMode"
+ # option
+ for my $m (keys(%{$modeinfo})) {
+ # If we didn't find anything for a certain mode, skip this
+ # mode
+ next if (!defined($modeinfo->{$m}{'quality'}));
+ my $modestr =
+ "GSResolution=$modeinfo->{$m}{'xres'}x" .
+ "$modeinfo->{$m}{'yres'}DPI " .
+ "Quality=$modeinfo->{$m}{'quality'} " .
+ "Dither=$modeinfo->{$m}{'dither'} " .
+ "ImageType=$modeinfo->{$m}{'image'}";
+ if (defined($stpdata{$stpprn}{'Color'}{'Color'})) {
+ # Color printer
+ $modes->{$stpprn}{$m} = $modestr . " OutputType=Color";
+ $modes->{$stpprn}{"$m.Gray"} =
+ $modestr . " OutputType=Grayscale";
+ # Some HP inkjets have a "600mono" quality mode which
+ # is only available in Grayscale, replace this mode by
+ # "300dpi" in the settings for color printing
+ if ($modes->{$stpprn}{$m} =~ /600mono/) {
+ if(!defined($stpdata{$stpprn}{'Resolution'}{'300dpi'})){
+ die "No '300dpi' mode for $stpprn!";
+ }
+ $modes->{$stpprn}{$m} =~ s/600x600DPI/300x300DPI/;
+ $modes->{$stpprn}{$m} =~ s/600mono/300dpi/;
+ }
+ } else {
+ # bw printer
+ if ($stpprn =~ /^pcl\-[2-6][vls]?i?$/) { # Laser printer
+ # No 'Photo' mode on laser printers
+ next if ($m eq 'Photo');
+ # Always "VeryFast" dithering on laser printers
+ $modestr =~ s/(Dither=)\S+/$1VeryFast/;
+ }
+ $modes->{$stpprn}{$m} = $modestr . " OutputType=Grayscale";
+ }
+ }
+ # Remove 'VeryHigh' and 'High' if they are identical to lower
+ # quality modes
+ if ($modes->{$stpprn}{'VeryHigh'} eq
+ $modes->{$stpprn}{'High'}) {
+ delete($modes->{$stpprn}{'VeryHigh'});
+ }
+ if ($modes->{$stpprn}{'High'} eq
+ $modes->{$stpprn}{'Normal'}) {
+ delete($modes->{$stpprn}{'High'});
+ }
+ if (defined($stpdata{$stpprn}{'Color'}{'Color'})) {
+ # Color printer
+ if ($modes->{$stpprn}{'VeryHigh.Gray'} eq
+ $modes->{$stpprn}{'High.Gray'}) {
+ delete($modes->{$stpprn}{'VeryHigh.Gray'});
+ }
+ if ($modes->{$stpprn}{'High.Gray'} eq
+ $modes->{$stpprn}{'Normal.Gray'}) {
+ delete($modes->{$stpprn}{'High.Gray'});
+ }
+ }
+ }
+
+ return ($modes, $choicelongnames)
+}
+
+exit(0);
diff --git a/src/foomatic/foomatic-printermap b/src/foomatic/foomatic-printermap
index 55d5faf..8056645 100644
--- a/src/foomatic/foomatic-printermap
+++ b/src/foomatic/foomatic-printermap
@@ -1,294 +1,630 @@
-#gptofoo bjc-30 printer/423826
-#gptofoo bjc-50 printer/551346
-#gptofoo bjc-55 printer/551282
-#gptofoo bjc-80 printer/96512
-#gptofoo bjc-85 printer/551410
-#gptofoo bjc-210 printer/58752
-#gptofoo bjc-240 printer/58816
-#gptofoo bjc-250 printer/60384
-#gptofoo bjc-1000 printer/139017
-#gptofoo bjc-2000 printer/89152
-#gptofoo bjc-3000 printer/129472
-#gptofoo bjc-4300 printer/60544
-#gptofoo bjc-4400 printer/62240
-#gptofoo bjc-6000 printer/71392
-#gptofoo bjc-6100 printer/317225
-#gptofoo bjc-6200 printer/413673
-#gptofoo bjc-6500 printer/272681
-#gptofoo bjc-7000 printer/60672
-#gptofoo bjc-7100 printer/114656
-#gptofoo bjc-8200 printer/123776
-#gptofoo bjc-s400 printer/602258
-#gptofoo bjc-s450 printer/479986
+#gptofoo pcl-690 printer/Apollo-P-2100
+#gptofoo pcl-690 printer/Apollo-P-2150
+#gptofoo pcl-690 printer/Apollo-P-2200
+#gptofoo pcl-690 printer/Apollo-P-2250
+#gptofoo pcl-690 printer/Apollo-P-2500
+#gptofoo pcl-690 printer/Apollo-P-2550
+#gptofoo pcl-690 printer/Apollo-P-2600
+#gptofoo pcl-690 printer/Apollo-P-2650
+#gptofoo pcl-apple-4100 printer/Apple-Color_StyleWriter_4100
+#gptofoo pcl-apple-4500 printer/Apple-Color_StyleWriter_4500
+#gptofoo pcl-apple-6500 printer/Apple-Color_StyleWriter_6500
+#gptofoo pcl-2 printer/Apple-LaserWriter_Select_360
+#gptofoo pcl-2 printer/Brother-DCP-1200
+#gptofoo pcl-2 printer/Brother-HL-4Ve
+#gptofoo pcl-4 printer/Brother-HL-10h
+#gptofoo pcl-3 printer/Brother-HL-10V
+#gptofoo pcl-2 printer/Brother-HL-630
+#gptofoo pcl-4 printer/Brother-HL-660
+#gptofoo pcl-4 printer/Brother-HL-760
+#gptofoo pcl-4 printer/Brother-HL-960
+#gptofoo pcl-2 printer/Brother-HL-1040
+#gptofoo pcl-4 printer/Brother-HL-1050
+#gptofoo pcl-4 printer/Brother-HL-1060
+#gptofoo pcl-4 printer/Brother-HL-1070
+#gptofoo pcl-2 printer/Brother-HL-1240
+#gptofoo pcl-4 printer/Brother-HL-1250
+#gptofoo pcl-4 printer/Brother-HL-1260
+#gptofoo pcl-4 printer/Brother-HL-1270N
+#gptofoo pcl-4 printer/Brother-HL-1440
+#gptofoo pcl-4 printer/Brother-HL-1660e
+#gptofoo pcl-4 printer/Brother-HL-2060
+#gptofoo pcl-2 printer/Brother-MFC-6550MC
+#gptofoo pcl-3 printer/Brother-MFC-8300
+#gptofoo pcl-2 printer/Brother-MFC-9500
+#gptofoo pcl-2 printer/Brother-MFC-9600
+#gptofoo bjc-30 printer/Canon-BJ-30
+#gptofoo bjc-50 printer/Canon-BJC-50
+#gptofoo bjc-55 printer/Canon-BJC-55
+#gptofoo bjc-80 printer/Canon-BJC-80
+#gptofoo bjc-85 printer/Canon-BJC-85
+#gptofoo bjc-210 printer/Canon-BJC-210
+#gptofoo bjc-240 printer/Canon-BJC-240
+#gptofoo bjc-250 printer/Canon-BJC-250
+#gptofoo bjc-1000 printer/Canon-BJC-1000
+#gptofoo bjc-2000 printer/Canon-BJC-2000
+#gptofoo bjc-2000 printer/Canon-BJC-2010
+#gptofoo bjc-4300 printer/Canon-BJC-2100
+#gptofoo bjc-2000 printer/Canon-BJC-2110
+#gptofoo bjc-3000 printer/Canon-BJC-3000
+#gptofoo bjc-4300 printer/Canon-BJC-4000
+#gptofoo bjc-4300 printer/Canon-BJC-4300
+#gptofoo bjc-4400 printer/Canon-BJC-4400
+#gptofoo bjc-6000 printer/Canon-BJC-6000
+#gptofoo bjc-6100 printer/Canon-BJC-6100
+#gptofoo bjc-6200 printer/Canon-BJC-6200
+#gptofoo bjc-6500 printer/Canon-BJC-6500
+#gptofoo bjc-7000 printer/Canon-BJC-7000
+#gptofoo bjc-7100 printer/Canon-BJC-7100
+#gptofoo bjc-8200 printer/Canon-BJC-8200
+#gptofoo pcl-4 printer/Canon-GP_335
+#gptofoo pcl-3 printer/Canon-LBP-4sx
+#gptofoo pcl-4l printer/Canon-LBP-430
+#gptofoo pcl-6 printer/Canon-LBP-1000
+#gptofoo pcl-6 printer/Canon-LBP-1260
+#gptofoo pcl-6 printer/Canon-LBP-1760
+#gptofoo bjc-4300 printer/Canon-S100
+#gptofoo bjc-s200 printer/Canon-S200
+#gptofoo bjc-s800 printer/Canon-S300
+#gptofoo bjc-s400 printer/Canon-S400
+#gptofoo bjc-s450 printer/Canon-S450
+#gptofoo bjc-8200 printer/Canon-S500
+#gptofoo bjc-8200 printer/Canon-S600
+#gptofoo bjc-8200 printer/Canon-S630
#gptofoo bjc-s800 printer/Canon-S800
-#gptofoo bjc-s4500 printer/602386
+#gptofoo bjc-s4500 printer/Canon-S4500
+#gptofoo pcl-4 printer/Canon-imageRunner_330s
+#gptofoo pcl-2 printer/Citizen-ProJet_II
+#gptofoo pcl-3 printer/DEC-1800
+#gptofoo pcl-4 printer/DEC-LN17
+#gptofoo pcl-3 printer/Epson-ActionLaser_1100
+#gptofoo pcl-2 printer/Epson-ActionLaser_II
+#gptofoo pcl-4 printer/Epson-AcuLaser_C2000
+#gptofoo pcl-4 printer/Epson-AcuLaser_C2000PS
+#gptofoo pcl-4 printer/Epson-AcuLaser_C8500
+#gptofoo pcl-4 printer/Epson-AcuLaser_C8500PS
+#gptofoo pcl-4 printer/Epson-AcuLaser_C8600
+#gptofoo pcl-4 printer/Epson-AcuLaser_C8600PS
+#gptofoo pcl-3 printer/Epson-EPL-5200
+#gptofoo pcl-3 printer/Epson-EPL-5200plus
+#gptofoo pcl-4 printer/Epson-EPL-5700
+#gptofoo pcl-4 printer/Epson-EPL-5700PS
+#gptofoo pcl-4 printer/Epson-EPL-5800
+#gptofoo pcl-4 printer/Epson-EPL-5800PS
+#gptofoo pcl-4 printer/Epson-EPL-5900
+#gptofoo pcl-4 printer/Epson-EPL-5900PS
+#gptofoo pcl-4 printer/Epson-EPL-6100
+#gptofoo pcl-4 printer/Epson-EPL-6100PS
+#gptofoo pcl-2 printer/Epson-EPL-7100
#gptofoo escp2-c20sx printer/Epson-Stylus_C20SX
#gptofoo escp2-c20ux printer/Epson-Stylus_C20UX
#gptofoo escp2-c40sx printer/Epson-Stylus_C40SX
#gptofoo escp2-c40ux printer/Epson-Stylus_C40UX
+#gptofoo escp2-c41sx printer/Epson-Stylus_C41SX
+#gptofoo escp2-c41ux printer/Epson-Stylus_C41UX
+#gptofoo escp2-c42sx printer/Epson-Stylus_C42SX
+#gptofoo escp2-c42ux printer/Epson-Stylus_C42UX
+#gptofoo escp2-c43sx printer/Epson-Stylus_C43SX
+#gptofoo escp2-c43ux printer/Epson-Stylus_C43UX
+#gptofoo escp2-c44sx printer/Epson-Stylus_C44SX
+#gptofoo escp2-c44ux printer/Epson-Stylus_C44UX
+#gptofoo escp2-c50 printer/Epson-Stylus_C50
#gptofoo escp2-c60 printer/Epson-Stylus_C60
+#gptofoo escp2-c61 printer/Epson-Stylus_C61
+#gptofoo escp2-c62 printer/Epson-Stylus_C62
+#gptofoo escp2-c63 printer/Epson-Stylus_C63
+#gptofoo escp2-c64 printer/Epson-Stylus_C64
#gptofoo escp2-c70 printer/Epson-Stylus_C70
#gptofoo escp2-c80 printer/Epson-Stylus_C80
-#gptofoo escp2 printer/61184
-#gptofoo escp2-pro printer/25824
-#gptofoo escp2-pro-xl printer/65856
-#gptofoo escp2-400 printer/62912
-#gptofoo escp2-440 printer/75296
-#gptofoo escp2-460 printer/73472
-#gptofoo escp2-480 printer/317321
-#gptofoo escp2-500 printer/214153
-#gptofoo escp2-580 printer/607474
-#gptofoo escp2-600 printer/26016
-#gptofoo escp2-640 printer/66016
-#gptofoo escp2-660 printer/244361
-#gptofoo escp2-670 printer/266313
-#gptofoo escp2-680 printer/517810
-#gptofoo escp2-740 printer/62112
-#gptofoo escp2-760 printer/96288
-#gptofoo escp2-777 printer/464242
-#gptofoo escp2-800 printer/61344
-#gptofoo escp2-850 printer/63840
-#gptofoo escp2-860 printer/80896
-#gptofoo escp2-880 printer/317801
+#gptofoo escp2-c82 printer/Epson-Stylus_C82
+#gptofoo escp2-c83 printer/Epson-Stylus_C83
+#gptofoo escp2-c84 printer/Epson-Stylus_C84
+#gptofoo escp2 printer/Epson-Stylus_Color
+#gptofoo escp2 printer/Epson-Stylus_Color_I
+#gptofoo escp2 printer/Epson-Stylus_Color_II
+#gptofoo escp2 printer/Epson-Stylus_Color_IIs
+#gptofoo escp2-pro printer/Epson-Stylus_Color_PRO
+#gptofoo escp2-pro-xl printer/Epson-Stylus_Pro_XL
+#gptofoo escp2-400 printer/Epson-Stylus_Color_400
+#gptofoo escp2-440 printer/Epson-Stylus_Color_440
+#gptofoo escp2-460 printer/Epson-Stylus_Color_460
+#gptofoo escp2-480 printer/Epson-Stylus_Color_480
+#gptofoo escp2-500 printer/Epson-Stylus_Color_500
+#gptofoo escp2-580 printer/Epson-Stylus_Color_580
+#gptofoo escp2-600 printer/Epson-Stylus_Color_600
+#gptofoo escp2-640 printer/Epson-Stylus_Color_640
+#gptofoo escp2-660 printer/Epson-Stylus_Color_660
+#gptofoo escp2-670 printer/Epson-Stylus_Color_670
+#gptofoo escp2-680 printer/Epson-Stylus_Color_680
+#gptofoo escp2-740 printer/Epson-Stylus_Color_740
+#gptofoo escp2-760 printer/Epson-Stylus_Color_760
+#gptofoo escp2-777 printer/Epson-Stylus_Color_777
#gptofoo escp2-83 printer/Epson-Stylus_Color_8_3
-#gptofoo escp2-900 printer/92192
-#gptofoo escp2-980 printer/317865
-#gptofoo escp2-1160 printer/317481
-#gptofoo escp2-1500 printer/317385
-#gptofoo escp2-1520 printer/20672
-#gptofoo escp2-3000 printer/208969
-#gptofoo escp2-photo printer/83520
-#gptofoo escp2-700 printer/71424
-#gptofoo escp2-ex printer/75808
-#gptofoo escp2-720 printer/317545
-#gptofoo escp2-750 printer/60128
+#gptofoo escp2-800 printer/Epson-Stylus_Color_800
+#gptofoo escp2-850 printer/Epson-Stylus_Color_850
+#gptofoo escp2-860 printer/Epson-Stylus_Color_860
+#gptofoo escp2-880 printer/Epson-Stylus_Color_880
+#gptofoo escp2-900 printer/Epson-Stylus_Color_900
+#gptofoo escp2-980 printer/Epson-Stylus_Color_980
+#gptofoo escp2-1160 printer/Epson-Stylus_Color_1160
+#gptofoo escp2-1500 printer/Epson-Stylus_Color_1500
+#gptofoo escp2-1520 printer/Epson-Stylus_Color_1520
+#gptofoo escp2-3000 printer/Epson-Stylus_Color_3000
+#gptofoo escp2-photo printer/Epson-Stylus_Photo
+#gptofoo escp2-700 printer/Epson-Stylus_Photo_700
+#gptofoo escp2-720 printer/Epson-Stylus_Photo_720
+#gptofoo escp2-750 printer/Epson-Stylus_Photo_750
#gptofoo escp2-780 printer/Epson-Stylus_Photo_780
#gptofoo escp2-785 printer/Epson-Stylus_Photo_785
#gptofoo escp2-790 printer/Epson-Stylus_Photo_790
#gptofoo escp2-810 printer/Epson-Stylus_Photo_810
#gptofoo escp2-820 printer/Epson-Stylus_Photo_820
-#gptofoo escp2-870 printer/284105
+#gptofoo escp2-825 printer/Epson-Stylus_Photo_825
+#gptofoo escp2-830 printer/Epson-Stylus_Photo_830
+#gptofoo escp2-870 printer/Epson-Stylus_Photo_870
#gptofoo escp2-875 printer/Epson-Stylus_Photo_875
#gptofoo escp2-890 printer/Epson-Stylus_Photo_890
#gptofoo escp2-895 printer/Epson-Stylus_Photo_895
-#gptofoo escp2-1200 printer/167008
-#gptofoo escp2-1270 printer/284169
+#gptofoo escp2-ph900 printer/Epson-Stylus_Photo_900
+#gptofoo escp2-915 printer/Epson-Stylus_Photo_915
+#gptofoo escp2-925 printer/Epson-Stylus_Photo_925
+#gptofoo escp2-935 printer/Epson-Stylus_Photo_935
+#gptofoo escp2-950 printer/Epson-Stylus_Photo_950
+#gptofoo escp2-960 printer/Epson-Stylus_Photo_960
+#gptofoo escp2-1200 printer/Epson-Stylus_Photo_1200
+#gptofoo escp2-1270 printer/Epson-Stylus_Photo_1270
#gptofoo escp2-1280 printer/Epson-Stylus_Photo_1280
#gptofoo escp2-1290 printer/Epson-Stylus_Photo_1290
-#gptofoo escp2-2000 printer/317609
+#gptofoo escp2-2000 printer/Epson-Stylus_Photo_2000P
+#gptofoo escp2-2100 printer/Epson-Stylus_Photo_2100
+#gptofoo escp2-2200 printer/Epson-Stylus_Photo_2200
+#gptofoo escp2-ex printer/Epson-Stylus_Photo_EX
+#gptofoo escp2-ex3 printer/Epson-Stylus_Photo_EX3
+#gptofoo escp2-r200 printer/Epson-Stylus_Photo_R200
+#gptofoo escp2-r300 printer/Epson-Stylus_Photo_R300
+#gptofoo escp2-rx500 printer/Epson-Stylus_Photo_RX500
+#gptofoo escp2-rx600 printer/Epson-Stylus_Photo_RX600
#gptofoo escp2-5000 printer/Epson-Stylus_Pro_5000
#gptofoo escp2-5500 printer/Epson-Stylus_Pro_5500
#gptofoo escp2-7000 printer/Epson-Stylus_Pro_7000
#gptofoo escp2-7500 printer/Epson-Stylus_Pro_7500
+#gptofoo escp2-7600 printer/Epson-Stylus_Pro_7600
#gptofoo escp2-9000 printer/Epson-Stylus_Pro_9000
#gptofoo escp2-9500 printer/Epson-Stylus_Pro_9500
+#gptofoo escp2-9600 printer/Epson-Stylus_Pro_9600
#gptofoo escp2-10000 printer/Epson-Stylus_Pro_10000
#gptofoo escp2-scan2000 printer/Epson-Stylus_Scan_2000
-#gptofoo escp2-scan2500 printer/516274
-#gptofoo pcl-340 printer/153056
-#gptofoo pcl-400 printer/63040
-#gptofoo pcl-500 printer/58363
-#gptofoo pcl-501 printer/79840
-#gptofoo pcl-520 printer/129184
-#gptofoo pcl-540 printer/99616
-#gptofoo pcl-550 printer/58464
-#gptofoo pcl-560 printer/22624
-#gptofoo pcl-600 printer/64576
-#gptofoo pcl-601 printer/206505
-#gptofoo pcl-601 printer/219977
-#gptofoo pcl-601 printer/174249
-#gptofoo pcl-601 printer/64192
-#gptofoo pcl-601 printer/60928
-#gptofoo pcl-601 printer/68512
-#gptofoo pcl-601 printer/624114
-#gptofoo pcl-601 printer/75520
-#gptofoo pcl-601 printer/HP-DeskJet_640C
-#gptofoo pcl-601 printer/448242
-#gptofoo pcl-690 printer/60960
-#gptofoo pcl-690 printer/249705
+#gptofoo escp2-scan2500 printer/Epson-Stylus_Scan_2500
+#gptofoo escp2-cx3100 printer/Epson-Stylus_CX3100
+#gptofoo escp2-cx3200 printer/Epson-Stylus_CX3200
+#gptofoo escp2-cx5100 printer/Epson-Stylus_CX5100
+#gptofoo escp2-cx5200 printer/Epson-Stylus_CX5200
+#gptofoo escp2-cx5300 printer/Epson-Stylus_CX5300
+#gptofoo escp2-cx5400 printer/Epson-Stylus_CX5400
+#gptofoo escp2-cx6300 printer/Epson-Stylus_CX6300
+#gptofoo escp2-cx6400 printer/Epson-Stylus_CX6400
+#gptofoo escp2-cx8300 printer/Epson-Stylus_CX8300
+#gptofoo escp2-cx8400 printer/Epson-Stylus_CX8400
+#gptofoo escp2-cl700 printer/Epson-CL_700
+#gptofoo escp2-cl750 printer/Epson-CL_750
+#gptofoo escp2-cl760 printer/Epson-CL_760
+#gptofoo escp2-em900c printer/Epson-EM_900C
+#gptofoo escp2-em930c printer/Epson-EM_930C
+#gptofoo escp2-mc2000 printer/Epson-MC_2000
+#gptofoo escp2-mc5000 printer/Epson-MC_5000
+#gptofoo escp2-mc7000 printer/Epson-MC_7000
+#gptofoo escp2-mc9000 printer/Epson-MC_9000
+#gptofoo escp2-mc10000 printer/Epson-MC_10000
+#gptofoo escp2-mj930c printer/Epson-MJ_930C
+#gptofoo escp2-mj5100c printer/Epson-MJ_5100C
+#gptofoo escp2-mj6000c printer/Epson-MJ_6000C
+#gptofoo escp2-mj8000c printer/Epson-MJ_8000C
+#gptofoo escp2-pm700c printer/Epson-PM_700C
+#gptofoo escp2-pmg700 printer/Epson-PM_G700
+#gptofoo escp2-pm730c printer/Epson-PM_730C
+#gptofoo escp2-pm740c printer/Epson-PM_740C
+#gptofoo escp2-pm750c printer/Epson-PM_750C
+#gptofoo escp2-pmd750 printer/Epson-PM_D700
+#gptofoo escp2-pm760c printer/Epson-PM_760C
+#gptofoo escp2-pm770c printer/Epson-PM_770C
+#gptofoo escp2-pm780c printer/Epson-PM_780C
+#gptofoo escp2-pm790pt printer/Epson-PM_790PT
+#gptofoo escp2-pm800c printer/Epson-PM_800C
+#gptofoo escp2-pm850pt printer/Epson-PM_850PT
+#gptofoo escp2-pm870c printer/Epson-PM_870C
+#gptofoo escp2-pm880c printer/Epson-PM_880C
+#gptofoo escp2-pm930c printer/Epson-PM_930C
+#gptofoo escp2-pm950c printer/Epson-PM_950C
+#gptofoo escp2-pm970c printer/Epson-PM_970C
+#gptofoo escp2-pm2000c printer/Epson-PM_2000C
+#gptofoo escp2-pm2200c printer/Epson-PM_2200C
+#gptofoo escp2-pm3000c printer/Epson-PM_3000C
+#gptofoo escp2-pm3300c printer/Epson-PM_3300C
+#gptofoo escp2-pm3500c printer/Epson-PM_3500C
+#gptofoo escp2-pm3700c printer/Epson-PM_3700C
+#gptofoo escp2-pm4000px printer/Epson-PM_4000PX
+#gptofoo escp2-pm5000c printer/Epson-PM_5000C
+#gptofoo escp2-pm7000c printer/Epson-PM_7000C
+#gptofoo escp2-pm9000c printer/Epson-PM_9000C
+#gptofoo escp2-pm10000 printer/Epson-PM_10000
+#gptofoo escp2-pxv500 printer/Epson-PX_V500
+#gptofoo escp2-px7000 printer/Epson-PX_7000
+#gptofoo escp2-px9000 printer/Epson-PX_9000
+#gptofoo pcl-4 printer/Fujitsu-PrintPartner_10V
+#gptofoo pcl-4 printer/Fujitsu-PrintPartner_16DV
+#gptofoo pcl-6 printer/Fujitsu-PrintPartner_20W
+#gptofoo pcl-3 printer/Fujitsu-PrintPartner_8000
+#gptofoo pcl-2000 printer/HP-2000C
+#gptofoo pcl-2500 printer/HP-2500C
+#gptofoo pcl-2500 printer/HP-2500CM
+#gptofoo pcl-900 printer/HP-Business_Inkjet_2200
+#gptofoo pcl-900 printer/HP-Business_Inkjet_2230
+#gptofoo pcl-900 printer/HP-Business_Inkjet_2250
+#gptofoo pcl-900 printer/HP-Business_Inkjet_2250TN
+#gptofoo pcl-900 printer/HP-Business_Inkjet_2280
+#gptofoo pcl-900 printer/HP-Color_Inkjet_Printer_CP1160
+#gptofoo pcl-1220 printer/HP-Color_Inkjet_Printer_CP1700
+#gptofoo pcl-3 printer/HP-Color_LaserJet_5
+#gptofoo pcl-4 printer/HP-Color_LaserJet_2500
+#gptofoo pcl-4 printer/HP-Color_LaserJet_4500
+#gptofoo pcl-4 printer/HP-Color_LaserJet_4550
+#gptofoo pcl-4 printer/HP-Color_LaserJet_4600
+#gptofoo pcl-4 printer/HP-Color_LaserJet_5000
+#gptofoo pcl-4 printer/HP-Color_LaserJet_5500
+#gptofoo pcl-4 printer/HP-Color_LaserJet_8550GN
+#gptofoo pcl-desnj-230 printer/HP-DesignJet_230
+#gptofoo pcl-desnj-250 printer/HP-DesignJet_250C
+#gptofoo pcl-desnj-430 printer/HP-DesignJet_430
+#gptofoo pcl-desnj-450 printer/HP-DesignJet_450C
+#gptofoo pcl-desnj-455 printer/HP-DesignJet_455CA
+#gptofoo pcl-desnj-488 printer/HP-DesignJet_488CA
+#gptofoo pcl-desnj-700 printer/HP-DesignJet_700
+#gptofoo pcl-750 printer/HP-DesignJet_750
+#gptofoo pcl-750 printer/HP-DesignJet_750C_Plus
+#gptofoo pcl-desnj-2500 printer/HP-DesignJet_2500CP
+#gptofoo pcl-desnj-3500 printer/HP-DesignJet_3500CP
+#gptofoo pcl-2500 printer/HP-DesignJet_ColorPro_CAD
+#gptofoo pcl-340 printer/HP-DeskJet_340C
+#gptofoo pcl-400 printer/HP-DeskJet_400
+#gptofoo pcl-540 printer/HP-DeskJet_400C
+#gptofoo pcl-540 printer/HP-DeskJet_420C
+#gptofoo pcl-900 printer/HP-DeskJet_450
+#gptofoo pcl-500 printer/HP-DeskJet_500
+#gptofoo pcl-501 printer/HP-DeskJet_500C
+#gptofoo pcl-500 printer/HP-DeskJet_505J_Plus
+#gptofoo pcl-500 printer/HP-DeskJet_510
+#gptofoo pcl-520 printer/HP-DeskJet_520
+#gptofoo pcl-540 printer/HP-DeskJet_540C
+#gptofoo pcl-550 printer/HP-DeskJet_550C
+#gptofoo pcl-560 printer/HP-DeskJet_560C
+#gptofoo pcl-600 printer/HP-DeskJet_600
+#gptofoo pcl-690 printer/HP-DeskJet_610C
+#gptofoo pcl-690 printer/HP-DeskJet_610CL
+#gptofoo pcl-690 printer/HP-DeskJet_612C
+#gptofoo pcl-690 printer/HP-DeskJet_640C
+#gptofoo pcl-690 printer/HP-DeskJet_648C
+#gptofoo pcl-601 printer/HP-DeskJet_660C
+#gptofoo pcl-601 printer/HP-DeskJet_670C
+#gptofoo pcl-601 printer/HP-DeskJet_670TV
+#gptofoo pcl-601 printer/HP-DeskJet_672C
+#gptofoo pcl-601 printer/HP-DeskJet_680C
+#gptofoo pcl-601 printer/HP-DeskJet_682C
+#gptofoo pcl-690 printer/HP-DeskJet_690C
+#gptofoo pcl-690 printer/HP-DeskJet_692C
#gptofoo pcl-690 printer/HP-DeskJet_693C
-#gptofoo pcl-690 printer/70560
+#gptofoo pcl-690 printer/HP-DeskJet_694C
#gptofoo pcl-690 printer/HP-DeskJet_695C
-#gptofoo pcl-690 printer/68672
-#gptofoo pcl-750 printer/HP-DesignJet_750
-#gptofoo pcl-750 printer/122496
-#gptofoo pcl-810 printer/156105
+#gptofoo pcl-690 printer/HP-DeskJet_697C
+#gptofoo pcl-810 printer/HP-DeskJet_810C
+#gptofoo pcl-812 printer/HP-DeskJet_812C
+#gptofoo pcl-812 printer/HP-DeskJet_815C
+#gptofoo pcl-810 printer/HP-DeskJet_816C
+#gptofoo pcl-845 printer/HP-DeskJet_825C
#gptofoo pcl-810 printer/HP-DeskJet_830C
-#gptofoo pcl-810 printer/250601
-#gptofoo pcl-812 printer/161705
-#gptofoo pcl-812 printer/293641
-#gptofoo pcl-840 printer/133664
-#gptofoo pcl-842 printer/133152
+#gptofoo pcl-810 printer/HP-DeskJet_832C
+#gptofoo pcl-840 printer/HP-DeskJet_840C
+#gptofoo pcl-840 printer/HP-DeskJet_841C
+#gptofoo pcl-842 printer/HP-DeskJet_842C
+#gptofoo pcl-842 printer/HP-DeskJet_843C
#gptofoo pcl-845 printer/HP-DeskJet_845C
-#gptofoo pcl-850 printer/61024
-#gptofoo pcl-855 printer/60992
-#gptofoo pcl-870 printer/60256
-#gptofoo pcl-890 printer/226985
-#gptofoo pcl-895 printer/72000
-#gptofoo pcl-900 printer/175232
-#gptofoo pcl-900 printer/108320
-#gptofoo pcl-900 printer/273833
+#gptofoo pcl-850 printer/HP-DeskJet_850C
+#gptofoo pcl-855 printer/HP-DeskJet_855C
+#gptofoo pcl-870 printer/HP-DeskJet_870C
+#gptofoo pcl-810 printer/HP-DeskJet_880C
+#gptofoo pcl-810 printer/HP-DeskJet_882C
+#gptofoo pcl-890 printer/HP-DeskJet_890C
+#gptofoo pcl-895 printer/HP-DeskJet_895C
+#gptofoo pcl-900 printer/HP-DeskJet_916C
+#gptofoo pcl-900 printer/HP-DeskJet_920C
+#gptofoo pcl-900 printer/HP-DeskJet_930C
+#gptofoo pcl-900 printer/HP-DeskJet_932C
+#gptofoo pcl-900 printer/HP-DeskJet_933C
+#gptofoo pcl-900 printer/HP-DeskJet_934C
+#gptofoo pcl-900 printer/HP-DeskJet_935C
+#gptofoo pcl-900 printer/HP-DeskJet_940C
+#gptofoo pcl-900 printer/HP-DeskJet_948C
+#gptofoo pcl-900 printer/HP-DeskJet_950C
#gptofoo pcl-900 printer/HP-DeskJet_952C
-#gptofoo pcl-900 printer/186729
-#gptofoo pcl-900 printer/530418
-#gptofoo pcl-1100 printer/22720
-#gptofoo pcl-1120 printer/76896
-#gptofoo pcl-1200 printer/63712
-#gptofoo pcl-1220 printer/290953
-#gptofoo pcl-1600 printer/61120
-#gptofoo pcl-1600 printer/61152
-#gptofoo pcl-2000 printer/65984
-#gptofoo pcl-2500 printer/64512
-#gptofoo pcl-P1000 printer/131424
-#gptofoo pcl-P1100 printer/259689
-#gptofoo pcl-2 printer/114592
-#gptofoo pcl-2 printer/234953
-#gptofoo pcl-2 printer/48064
-#gptofoo pcl-2 printer/195529
-#gptofoo pcl-2 printer/316361
-#gptofoo pcl-2 printer/547378
-#gptofoo pcl-2 printer/110624
-#gptofoo pcl-2 printer/63200
-#gptofoo pcl-2 printer/487986
-#gptofoo pcl-2 printer/552146
-#gptofoo pcl-2 printer/114816
-#gptofoo pcl-2 printer/108896
-#gptofoo pcl-2 printer/178185
-#gptofoo pcl-2 printer/63904
-#gptofoo pcl-2 printer/204617
-#gptofoo pcl-2 printer/74592
-#gptofoo pcl-2 printer/231689
-#gptofoo pcl-2 printer/195593
-#gptofoo pcl-2 printer/365417
-#gptofoo pcl-2 printer/94016
-#gptofoo pcl-2 printer/144320
-#gptofoo pcl-2 printer/123968
-#gptofoo pcl-2 printer/81408
-#gptofoo pcl-2 printer/211017
-#gptofoo pcl-2 printer/81568
-#gptofoo pcl-2 printer/160288
-#gptofoo pcl-2 printer/23104
-#gptofoo pcl-2 printer/74176
-#gptofoo pcl-2 printer/34016
-#gptofoo pcl-2 printer/70720
-#gptofoo pcl-2 printer/117472
-#gptofoo pcl-2 printer/61824
-#gptofoo pcl-2 printer/61728
-#gptofoo pcl-2 printer/61888
-#gptofoo pcl-2 printer/70016
-#gptofoo pcl-2 printer/194601
-#gptofoo pcl-2 printer/196201
-#gptofoo pcl-2 printer/65280
-#gptofoo pcl-2 printer/312329
-#gptofoo pcl-2 printer/312393
-#gptofoo pcl-2 printer/80160
-#gptofoo pcl-3 printer/65696
-#gptofoo pcl-3 printer/48064
-#gptofoo pcl-3 printer/141417
-#gptofoo pcl-3 printer/257577
-#gptofoo pcl-3 printer/135401
-#gptofoo pcl-3 printer/67456
-#gptofoo pcl-3 printer/373513
-#gptofoo pcl-3 printer/619666
-#gptofoo pcl-3 printer/69472
-#gptofoo pcl-3 printer/78144
-#gptofoo pcl-3 printer/86176
-#gptofoo pcl-3 printer/487986
-#gptofoo pcl-3 printer/114816
-#gptofoo pcl-3 printer/65312
-#gptofoo pcl-3 printer/96480
-#gptofoo pcl-3 printer/23168
-#gptofoo pcl-4 printer/190793
-#gptofoo pcl-4 printer/63584
-#gptofoo pcl-4 printer/63552
-#gptofoo pcl-4 printer/539634
-#gptofoo pcl-4 printer/63456
-#gptofoo pcl-4 printer/73216
-#gptofoo pcl-4 printer/99840
-#gptofoo pcl-4 printer/185225
-#gptofoo pcl-4 printer/78336
-#gptofoo pcl-4 printer/165408
-#gptofoo pcl-4 printer/165536
-#gptofoo pcl-4 printer/121952
-#gptofoo pcl-4 printer/63008
-#gptofoo pcl-4 printer/56672
-#gptofoo pcl-4 printer/158569
-#gptofoo pcl-4 printer/633554
-#gptofoo pcl-4 printer/76224
-#gptofoo pcl-4 printer/116256
-#gptofoo pcl-4 printer/491506
-#gptofoo pcl-4 printer/75104
-#gptofoo pcl-4 printer/69120
-#gptofoo pcl-4 printer/69088
-#gptofoo pcl-4 printer/230377
-#gptofoo pcl-4 printer/439570
-#gptofoo pcl-4 printer/191689
-#gptofoo pcl-4 printer/128576
-#gptofoo pcl-4 printer/311113
-#gptofoo pcl-4 printer/619538
-#gptofoo pcl-4 printer/59584
-#gptofoo pcl-4 printer/63648
-#gptofoo pcl-4 printer/66496
-#gptofoo pcl-4 printer/76064
-#gptofoo pcl-4 printer/76096
-#gptofoo pcl-4 printer/66528
-#gptofoo pcl-4 printer/61856
-#gptofoo pcl-4 printer/129376
-#gptofoo pcl-4 printer/63616
-#gptofoo pcl-4 printer/194697
-#gptofoo pcl-4 printer/64032
-#gptofoo pcl-4 printer/62976
-#gptofoo pcl-4 printer/77088
-#gptofoo pcl-4 printer/188457
-#gptofoo pcl-4 printer/421586
-#gptofoo pcl-4 printer/490898
-#gptofoo pcl-4 printer/32672
-#gptofoo pcl-4 printer/210153
-#gptofoo pcl-4 printer/32768
-#gptofoo pcl-4 printer/42048
-#gptofoo pcl-4 printer/87552
-#gptofoo pcl-4 printer/77152
-#gptofoo pcl-4 printer/70752
-#gptofoo pcl-4 printer/113888
-#gptofoo pcl-4l printer/257577
-#gptofoo pcl-4l printer/59776
-#gptofoo pcl-4l printer/82496
-#gptofoo pcl-4v printer/439378
-#gptofoo pcl-5 printer/63520
-#gptofoo pcl-4 printer/62720
-#gptofoo pcl-5 printer/75168
-#gptofoo pcl-5si printer/605074
-#gptofoo pcl-6 printer/551474
-#gptofoo pcl-6 printer/77248
-#gptofoo pcl-6 printer/77216
-#gptofoo pcl-6 printer/234281
-#gptofoo pcl-6 printer/642674
-#gptofoo pcl-6 printer/102080
-#gptofoo pcl-6 printer/334409
-#gptofoo pcl-6 printer/32736
-#gptofoo pcl-6 printer/32832
-#gptofoo pcl-6 printer/212905
-#gptofoo pcl-6 printer/581554
-#gptofoo pcl-6 printer/23232
-#gptofoo pcl-6 printer/62368
-#gptofoo pcl-6 printer/64096
-#gptofoo pcl-6 printer/474610
-#gptofoo pcl-6 printer/609714
-#gptofoo pcl-6 printer/100576
-#gptofoo pcl-6 printer/62304
-#gptofoo pcl-6 printer/247625
-#gptofoo pcl-6 printer/543058
-#gptofoo pcl-6 printer/287337
-#gptofoo pcl-6 printer/62816
-#gptofoo pcl-6 printer/71680
+#gptofoo pcl-900 printer/HP-DeskJet_955C
+#gptofoo pcl-900 printer/HP-DeskJet_957C
+#gptofoo pcl-900 printer/HP-DeskJet_959C
+#gptofoo pcl-900 printer/HP-DeskJet_960C
+#gptofoo pcl-900 printer/HP-DeskJet_970C
+#gptofoo pcl-900 printer/HP-DeskJet_975C
+#gptofoo pcl-900 printer/HP-DeskJet_980C
+#gptofoo pcl-900 printer/HP-DeskJet_990C
+#gptofoo pcl-900 printer/HP-DeskJet_995C
+#gptofoo pcl-1100 printer/HP-DeskJet_1100C
+#gptofoo pcl-1120 printer/HP-DeskJet_1120C
+#gptofoo pcl-1120 printer/HP-DeskJet_1125C
+#gptofoo pcl-1200 printer/HP-DeskJet_1200C
+#gptofoo pcl-1220 printer/HP-DeskJet_1220C
+#gptofoo pcl-1600 printer/HP-DeskJet_1600C
+#gptofoo pcl-1600 printer/HP-DeskJet_1600CM
+#gptofoo pcl-900 printer/HP-DeskJet_3810
+#gptofoo pcl-900 printer/HP-DeskJet_3816
+#gptofoo pcl-900 printer/HP-DeskJet_3820
+#gptofoo pcl-900 printer/HP-DeskJet_3822
+#gptofoo pcl-900 printer/HP-DeskJet_5550
+#gptofoo pcl-900 printer/HP-DeskJet_5551
+#gptofoo pcl-900 printer/HP-DeskJet_6122
+#gptofoo pcl-900 printer/HP-DeskJet_6127
+#gptofoo pcl-900 printer/HP-DeskJet_9300
+#gptofoo pcl-601 printer/HP-e-printer_e20
+#gptofoo pcl-2 printer/HP-LaserJet_2
+#gptofoo pcl-2 printer/HP-LaserJet_2D
+#gptofoo pcl-2p printer/HP-LaserJet_2P
+#gptofoo pcl-2p printer/HP-LaserJet_2P_Plus
+#gptofoo pcl-3 printer/HP-LaserJet_3
+#gptofoo pcl-3 printer/HP-LaserJet_3D
+#gptofoo pcl-4l printer/HP-LaserJet_3P_w_PCL5
+#gptofoo pcl-3 printer/HP-LaserJet_3P_w_PS
+#gptofoo pcl-4 printer/HP-LaserJet_4
+#gptofoo pcl-4 printer/HP-LaserJet_4_Plus
+#gptofoo pcl-4l printer/HP-LaserJet_4L
+#gptofoo pcl-4 printer/HP-LaserJet_4M
+#gptofoo pcl-4 printer/HP-LaserJet_4ML
+#gptofoo pcl-4 printer/HP-LaserJet_4P
+#gptofoo pcl-4 printer/HP-LaserJet_4Si
+#gptofoo pcl-4v printer/HP-LaserJet_4V
+#gptofoo pcl-5 printer/HP-LaserJet_5
+#gptofoo pcl-4 printer/HP-LaserJet_5L
+#gptofoo pcl-4 printer/HP-LaserJet_5M
+#gptofoo pcl-4 printer/HP-LaserJet_5MP
+#gptofoo pcl-5 printer/HP-LaserJet_5P
+#gptofoo pcl-5si printer/HP-LaserJet_5Si
+#gptofoo pcl-6 printer/HP-LaserJet_6
+#gptofoo pcl-4 printer/HP-LaserJet_6L
+#gptofoo pcl-4 printer/HP-LaserJet_6MP
+#gptofoo pcl-4 printer/HP-LaserJet_6P
+#gptofoo pcl-5 printer/HP-LaserJet_1012
+#gptofoo pcl-6 printer/HP-LaserJet_1100
+#gptofoo pcl-6 printer/HP-LaserJet_1100A
+#gptofoo pcl-6 printer/HP-LaserJet_1150
#gptofoo pcl-6 printer/HP-LaserJet_1200
#gptofoo pcl-6 printer/HP-LaserJet_1220
+#gptofoo pcl-6 printer/HP-LaserJet_1300
+#gptofoo pcl-6 printer/HP-LaserJet_2100
+#gptofoo pcl-6 printer/HP-LaserJet_2100M
#gptofoo pcl-6 printer/HP-LaserJet_2200
+#gptofoo pcl-6 printer/HP-LaserJet_2300
+#gptofoo pcl-6 printer/HP-LaserJet_3200
#gptofoo pcl-6 printer/HP-LaserJet_3200m
+#gptofoo pcl-6 printer/HP-LaserJet_3200se
+#gptofoo pcl-6 printer/HP-LaserJet_3300
+#gptofoo pcl-6 printer/HP-LaserJet_3310
+#gptofoo pcl-6 printer/HP-LaserJet_3320
+#gptofoo pcl-6 printer/HP-LaserJet_3320N
+#gptofoo pcl-6 printer/HP-LaserJet_3330
+#gptofoo pcl-6 printer/HP-LaserJet_4000
+#gptofoo pcl-6 printer/HP-LaserJet_4050
#gptofoo pcl-6 printer/HP-LaserJet_4100
+#gptofoo pcl-6 printer/HP-LaserJet_4200
+#gptofoo pcl-6 printer/HP-LaserJet_4300
+#gptofoo pcl-6 printer/HP-LaserJet_5000
+#gptofoo pcl-6 printer/HP-LaserJet_5100
+#gptofoo pcl-6 printer/HP-LaserJet_8000
+#gptofoo pcl-6 printer/HP-LaserJet_8100
#gptofoo pcl-6 printer/HP-LaserJet_8150
#gptofoo pcl-6 printer/HP-LaserJet_9000
+#gptofoo pcl-6 printer/HP-Mopier_240
+#gptofoo pcl-6 printer/HP-Mopier_320
+#gptofoo pcl-520 printer/HP-OfficeJet
+#gptofoo pcl-520 printer/HP-OfficeJet_300
+#gptofoo pcl-520 printer/HP-OfficeJet_330
+#gptofoo pcl-520 printer/HP-OfficeJet_350
+#gptofoo pcl-601 printer/HP-OfficeJet_500
+#gptofoo pcl-601 printer/HP-OfficeJet_520
+#gptofoo pcl-601 printer/HP-OfficeJet_570
+#gptofoo pcl-601 printer/HP-OfficeJet_580
+#gptofoo pcl-601 printer/HP-OfficeJet_590
+#gptofoo pcl-601 printer/HP-OfficeJet_600
+#gptofoo pcl-601 printer/HP-OfficeJet_610
+#gptofoo pcl-601 printer/HP-OfficeJet_625
+#gptofoo pcl-601 printer/HP-OfficeJet_630
+#gptofoo pcl-601 printer/HP-OfficeJet_635
+#gptofoo pcl-690 printer/HP-OfficeJet_700
+#gptofoo pcl-690 printer/HP-OfficeJet_710
+#gptofoo pcl-690 printer/HP-OfficeJet_720
+#gptofoo pcl-690 printer/HP-OfficeJet_725
+#gptofoo pcl-900 printer/HP-OfficeJet_5105
+#gptofoo pcl-900 printer/HP-OfficeJet_5110
+#gptofoo pcl-900 printer/HP-OfficeJet_5110xi
+#gptofoo pcl-900 printer/HP-OfficeJet_6105
+#gptofoo pcl-900 printer/HP-OfficeJet_6110
+#gptofoo pcl-900 printer/HP-OfficeJet_7110
+#gptofoo pcl-900 printer/HP-OfficeJet_7130
+#gptofoo pcl-900 printer/HP-OfficeJet_7140
+#gptofoo pcl-900 printer/HP-OfficeJet_D125
+#gptofoo pcl-900 printer/HP-OfficeJet_D135
+#gptofoo pcl-900 printer/HP-OfficeJet_D145
+#gptofoo pcl-900 printer/HP-OfficeJet_D155
+#gptofoo pcl-900 printer/HP-OfficeJet_G55
+#gptofoo pcl-900 printer/HP-OfficeJet_G85
+#gptofoo pcl-900 printer/HP-OfficeJet_G95
+#gptofoo pcl-900 printer/HP-OfficeJet_K60
+#gptofoo pcl-900 printer/HP-OfficeJet_K60xi
+#gptofoo pcl-900 printer/HP-OfficeJet_K80
+#gptofoo pcl-900 printer/HP-OfficeJet_K80xi
+#gptofoo pcl-520 printer/HP-OfficeJet_LX
+#gptofoo pcl-850 printer/HP-OfficeJet_Pro_1150C
+#gptofoo pcl-890 printer/HP-OfficeJet_Pro_1170C
+#gptofoo pcl-890 printer/HP-OfficeJet_Pro_1175C
+#gptofoo pcl-840 printer/HP-OfficeJet_R40
+#gptofoo pcl-840 printer/HP-OfficeJet_R45
+#gptofoo pcl-840 printer/HP-OfficeJet_R60
+#gptofoo pcl-840 printer/HP-OfficeJet_R65
+#gptofoo pcl-840 printer/HP-OfficeJet_R80
+#gptofoo pcl-840 printer/HP-OfficeJet_T45
+#gptofoo pcl-840 printer/HP-OfficeJet_T65
+#gptofoo pcl-900 printer/HP-OfficeJet_V40
+#gptofoo pcl-900 printer/HP-OfficeJet_V40xi
+#gptofoo pcl-900 printer/HP-PhotoSmart_P100
+#gptofoo pcl-900 printer/HP-PhotoSmart_P130
+#gptofoo pcl-900 printer/HP-PhotoSmart_P230
+#gptofoo pcl-P1000 printer/HP-PhotoSmart_P1000
+#gptofoo pcl-P1100 printer/HP-PhotoSmart_P1100
+#gptofoo pcl-900 printer/HP-PhotoSmart_P1115
+#gptofoo pcl-900 printer/HP-PhotoSmart_P1215
+#gptofoo pcl-900 printer/HP-PhotoSmart_P1218
+#gptofoo pcl-900 printer/HP-PhotoSmart_P1315
+#gptofoo pcl-900 printer/HP-PhotoSmart_7150
+#gptofoo pcl-900 printer/HP-PhotoSmart_7345
+#gptofoo pcl-900 printer/HP-PhotoSmart_7350
+#gptofoo pcl-900 printer/HP-PhotoSmart_7550
+#gptofoo pcl-690 printer/HP-PSC_370
+#gptofoo pcl-690 printer/HP-PSC_380
+#gptofoo pcl-840 printer/HP-PSC_500
+#gptofoo pcl-900 printer/HP-PSC_750
+#gptofoo pcl-900 printer/HP-PSC_950
+#gptofoo pcl-900 printer/HP-PSC_950xi
+#gptofoo pcl-900 printer/HP-PSC_2110
+#gptofoo pcl-900 printer/HP-PSC_2150
+#gptofoo pcl-900 printer/HP-PSC_2210
+#gptofoo pcl-2 printer/IBM-4019
+#gptofoo pcl-3 printer/IBM-4029_030_LaserPrinter_10
+#gptofoo pcl-6 printer/IBM-Infoprint_12
+#gptofoo pcl-4 printer/IBM-Page_Printer_3112
+#gptofoo pcl-6 printer/Infotec-4651_MF
+#gptofoo pcl-2 printer/Kyocera-F-1010
+#gptofoo pcl-4 printer/Kyocera-FS-600
+#gptofoo pcl-4 printer/Kyocera-FS-600KPDL2
+#gptofoo pcl-4 printer/Kyocera-FS-680
+#gptofoo pcl-4 printer/Kyocera-FS-800
+#gptofoo pcl-4 printer/Kyocera-FS-1000
+#gptofoo pcl-4 printer/Kyocera-FS-1000plus
+#gptofoo pcl-4 printer/Kyocera-FS-1010
+#gptofoo pcl-4 printer/Kyocera-FS-1050
+#gptofoo pcl-4 printer/Kyocera-FS-1200
+#gptofoo pcl-4 printer/Kyocera-FS-1600
+#gptofoo pcl-4 printer/Kyocera-FS-1600plus
+#gptofoo pcl-4 printer/Kyocera-FS-1700
+#gptofoo pcl-4 printer/Kyocera-FS-1700plus
+#gptofoo pcl-4 printer/Kyocera-FS-1750
+#gptofoo pcl-4 printer/Kyocera-FS-1800
+#gptofoo pcl-4 printer/Kyocera-FS-1800plus
+#gptofoo pcl-4 printer/Kyocera-FS-1900
+#gptofoo pcl-3 printer/Kyocera-FS-3500
+#gptofoo pcl-4 printer/Kyocera-FS-3600
+#gptofoo pcl-4 printer/Kyocera-FS-3600plus
+#gptofoo pcl-4 printer/Kyocera-FS-3700
+#gptofoo pcl-4 printer/Kyocera-FS-3700plus
+#gptofoo pcl-6 printer/Kyocera-FS-3750
+#gptofoo pcl-4 printer/Kyocera-FS-3800
+#gptofoo pcl-4 printer/Kyocera-FS-5800C
+#gptofoo pcl-4 printer/Kyocera-FS-5900C
+#gptofoo pcl-3 printer/Kyocera-FS-6500
+#gptofoo pcl-3 printer/Kyocera-FS-6500plus
+#gptofoo pcl-4 printer/Kyocera-FS-6700
+#gptofoo pcl-4 printer/Kyocera-FS-7000
+#gptofoo pcl-4 printer/Kyocera-FS-7000plus
+#gptofoo pcl-4 printer/Kyocera-FS-8000C
+#gptofoo pcl-4 printer/Kyocera-FS-9000
+#gptofoo pcl-4 printer/Kyocera-FS-9100DN
+#gptofoo pcl-4 printer/Kyocera-FS-9500DN
+#gptofoo pcl-4 printer/Kyocera-KM-1530
+#gptofoo pcl-4 printer/Kyocera-KM-1810
+#gptofoo pcl-4 printer/Kyocera-KM-2030
+#gptofoo pcl-4 printer/Kyocera-KM-2530
+#gptofoo pcl-4 printer/Kyocera-KM-3530
+#gptofoo pcl-4 printer/Kyocera-KM-4230
+#gptofoo pcl-4 printer/Kyocera-KM-4530
+#gptofoo pcl-4 printer/Kyocera-KM-5230
+#gptofoo pcl-4 printer/Kyocera-KM-5530
+#gptofoo pcl-4 printer/Kyocera-KM-6230
#gptofoo lexmark-4076 printer/Lexmark-4076
-#gptofoo lexmark-z42 printer/593266
+#gptofoo pcl-4 printer/Lexmark-Optra_E
+#gptofoo pcl-4 printer/Lexmark-Optra_Eplus
+#gptofoo pcl-2 printer/Lexmark-Valuewriter_300
+#gptofoo lexmark-z42 printer/Lexmark-Z42
#gptofoo lexmark-z43 printer/Lexmark-Z43
-#gptofoo lexmark-z52 printer/328553
+#gptofoo lexmark-z52 printer/Lexmark-Z52
+#gptofoo lexmark-z53 printer/Lexmark-Z53
+#gptofoo pcl-4 printer/Minolta-PagePro_6
+#gptofoo pcl-4 printer/Minolta-PagePro_6e
+#gptofoo pcl-4 printer/Minolta-PagePro_6ex
+#gptofoo pcl-4 printer/Minolta-PagePro_8
+#gptofoo pcl-2 printer/Minolta-PagePro_8L
+#gptofoo pcl-6 printer/Minolta-PagePro_1100
+#gptofoo pcl-4 printer/NEC-SuperScript_660i
+#gptofoo pcl-2 printer/NEC-SuperScript_860
+#gptofoo pcl-2 printer/NEC-SuperScript_870
+#gptofoo pcl-2 printer/NEC-SuperScript_1260
+#gptofoo pcl-4 printer/NEC-SuperScript_1800
+#gptofoo pcl-2 printer/Okidata-OL400
+#gptofoo pcl-2 printer/Okidata-OL400e
+#gptofoo pcl-2 printer/Okidata-OL400ex
+#gptofoo pcl-4 printer/Okidata-OL410e
+#gptofoo pcl-2 printer/Okidata-OL600e
+#gptofoo pcl-2 printer/Okidata-OL610e_S
+#gptofoo pcl-2 printer/Okidata-OL800
+#gptofoo pcl-4 printer/Okidata-OL810ex
+#gptofoo pcl-4 printer/Okidata-Okipage_6e
+#gptofoo pcl-4 printer/Okidata-Okipage_6ex
+#gptofoo pcl-4 printer/Okidata-Okipage_8p
+#gptofoo pcl-4 printer/Okidata-Okipage_10e
+#gptofoo pcl-4 printer/Okidata-Okipage_10ex
+#gptofoo pcl-4 printer/Okidata-Okipage_14ex
+#gptofoo pcl-4l printer/Okidata-Super_6e
+#gptofoo pcl-2 printer/Olivetti-JP350S
+#gptofoo pcl-2 printer/Olivetti-PG_306
+#gptofoo pcl-2 printer/PCPI-1030
+#gptofoo pcl-2 printer/Panasonic-KX-P4410
+#gptofoo pcl-3 printer/Panasonic-KX-P4450
+#gptofoo pcl-2 printer/Panasonic-KX-P6150
+#gptofoo pcl-2 printer/Panasonic-KX-P6500
+#gptofoo pcl-2 printer/Raven-LP-410
+#gptofoo pcl-6 printer/Ricoh-Aficio_220
+#gptofoo pcl-4 printer/Ricoh-Aficio_401
+#gptofoo pcl-4 printer/Ricoh-Aficio_700
+#gptofoo pcl-4 printer/Samsung-ML-85
+#gptofoo pcl-6 printer/Samsung-ML-4600
+#gptofoo pcl-4 printer/Samsung-ML-5000a
+#gptofoo pcl-4 printer/Samsung-ML-6000
+#gptofoo pcl-4 printer/Samsung-ML-6100
+#gptofoo pcl-6 printer/Samsung-ML-7000
+#gptofoo pcl-6 printer/Samsung-ML-7000P
+#gptofoo pcl-6 printer/Samsung-ML-7000N
+#gptofoo pcl-6 printer/Samsung-ML-7050
+#gptofoo pcl-4 printer/Samsung-QL-5100A
+#gptofoo pcl-4 printer/Samsung-QL-6050
+#gptofoo pcl-2 printer/Seiko-SpeedJET_200
+#gptofoo pcl-6 printer/Sharp-AR-161
+#gptofoo pcl-601 printer/Sony-IJP-V100
+#gptofoo pcl-2 printer/Star-LS-04
+#gptofoo pcl-2 printer/Star-LaserPrinter_8
+#gptofoo pcl-3 printer/Tally-MT908
+#gptofoo pcl-4 printer/Xerox-Able_1406
+#gptofoo pcl-4 printer/Xerox-DocuPrint_4508
+#gptofoo pcl-4 printer/Xerox-DocuPrint_N4512
+#gptofoo pcl-4 printer/Xerox-DocuPrint_N4512PS
+#gptofoo pcl-2 printer/Xerox-DocuPrint_P12
+#gptofoo pcl-6 printer/Xerox-DocuPrint_P1202
+#gptofoo pcl-4 printer/Xerox-DocuPrint_C20
+#gptofoo pcl-4 printer/Xerox-DocuPrint_P8e
+#gptofoo pcl-4 printer/Xerox-Document_Centre_400
+#gptofoo pcl-2 printer/Generic-PCL_4_Printer
+#gptofoo pcl-3 printer/Generic-PCL_5_Printer
+#gptofoo pcl-4 printer/Generic-PCL_5c_Printer
+#gptofoo pcl-4 printer/Generic-PCL_5e_Printer
+#gptofoo pcl-6 printer/Generic-PCL_6_PCL_XL_Printer
diff --git a/src/foomatic/foomatic-templates/Brightness.xml b/src/foomatic/foomatic-templates-gs/Brightness.xml
index dade025..17bf2a7 100644
--- a/src/foomatic/foomatic-templates/Brightness.xml
+++ b/src/foomatic/foomatic-templates-gs/Brightness.xml
@@ -2,12 +2,12 @@
<!-- A multilingual <comments> block can appear here, too;
it should be treated as documentation for the user. -->
<arg_longname>
- <en>StpBrightness</en>
+ <en>stpBrightness</en>
</arg_longname>
<arg_shortname>
- <en>StpBrightness</en><!-- backends only know <en> shortnames! -->
+ <en>stpBrightness</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/Color.xml b/src/foomatic/foomatic-templates-gs/Color.xml
index 4645b92..df7403e 100644
--- a/src/foomatic/foomatic-templates/Color.xml
+++ b/src/foomatic/foomatic-templates-gs/Color.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>OutputType</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/Color %s&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates/Contrast.xml b/src/foomatic/foomatic-templates-gs/Contrast.xml
index aa5d31a..523fe37 100644
--- a/src/foomatic/foomatic-templates/Contrast.xml
+++ b/src/foomatic/foomatic-templates-gs/Contrast.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>Contrast</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/Cyan.xml b/src/foomatic/foomatic-templates-gs/Cyan.xml
index 04c9fe0..cff323d 100644
--- a/src/foomatic/foomatic-templates/Cyan.xml
+++ b/src/foomatic/foomatic-templates-gs/Cyan.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>Cyan</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/Density.xml b/src/foomatic/foomatic-templates-gs/Density.xml
index 364e880..5748ccc 100644
--- a/src/foomatic/foomatic-templates/Density.xml
+++ b/src/foomatic/foomatic-templates-gs/Density.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>Density</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/Dither.xml b/src/foomatic/foomatic-templates-gs/Dither.xml
index e94694c..54af711 100644
--- a/src/foomatic/foomatic-templates/Dither.xml
+++ b/src/foomatic/foomatic-templates-gs/Dither.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>Dither</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/Dither(%s)&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates/Gamma.xml b/src/foomatic/foomatic-templates-gs/Gamma.xml
index b0cd4e4..9e7008d 100644
--- a/src/foomatic/foomatic-templates/Gamma.xml
+++ b/src/foomatic/foomatic-templates-gs/Gamma.xml
@@ -2,12 +2,12 @@
<!-- A multilingual <comments> block can appear here, too;
it should be treated as documentation for the user. -->
<arg_longname>
- <en>StpGamma</en>
+ <en>stpGamma</en>
</arg_longname>
<arg_shortname>
- <en>StpGamma</en><!-- backends only know <en> shortnames! -->
+ <en>stpGamma</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/ImageType.xml b/src/foomatic/foomatic-templates-gs/ImageType.xml
index 998fad0..37e2279 100644
--- a/src/foomatic/foomatic-templates/ImageType.xml
+++ b/src/foomatic/foomatic-templates-gs/ImageType.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>ImageType</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/InkType.xml b/src/foomatic/foomatic-templates-gs/InkType.xml
index 25f6d17..26ef05e 100644
--- a/src/foomatic/foomatic-templates/InkType.xml
+++ b/src/foomatic/foomatic-templates-gs/InkType.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>InkType</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/InkType(%s)&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates/InputSlot.xml b/src/foomatic/foomatic-templates-gs/InputSlot.xml
index bd03051..8237045 100644
--- a/src/foomatic/foomatic-templates/InputSlot.xml
+++ b/src/foomatic/foomatic-templates-gs/InputSlot.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>InputSlot</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/Magenta.xml b/src/foomatic/foomatic-templates-gs/Magenta.xml
index 15da1b9..5e07b96 100644
--- a/src/foomatic/foomatic-templates/Magenta.xml
+++ b/src/foomatic/foomatic-templates-gs/Magenta.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>Magenta</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/MediaType.xml b/src/foomatic/foomatic-templates-gs/MediaType.xml
index a5e1ec8..a1d736b 100644
--- a/src/foomatic/foomatic-templates/MediaType.xml
+++ b/src/foomatic/foomatic-templates-gs/MediaType.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>MediaType</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/stpMediaType(%s)&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates/Model.xml b/src/foomatic/foomatic-templates-gs/Model.xml
index 98e081a..ba9e6c7 100644
--- a/src/foomatic/foomatic-templates/Model.xml
+++ b/src/foomatic/foomatic-templates-gs/Model.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>Model</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>10</arg_order>
<arg_spot>A</arg_spot>
<arg_required />
diff --git a/src/foomatic/foomatic-templates/PageSize.xml b/src/foomatic/foomatic-templates-gs/PageSize.xml
index 137e2e6..e551094 100644
--- a/src/foomatic/foomatic-templates/PageSize.xml
+++ b/src/foomatic/foomatic-templates-gs/PageSize.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>PageSize</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>Z</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/PageSize[%s]/ImagingBBox null&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates-gs/PrintoutMode.xml b/src/foomatic/foomatic-templates-gs/PrintoutMode.xml
new file mode 100644
index 0000000..eb1b0bb
--- /dev/null
+++ b/src/foomatic/foomatic-templates-gs/PrintoutMode.xml
@@ -0,0 +1,19 @@
+<option type="enum" id="opt/@@DRVNAME@@-printoutmode">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Printout Mode</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>PrintoutMode</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>10</arg_order>
+ <arg_spot>A</arg_spot>
+ <arg_composite />
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates/Quality.xml b/src/foomatic/foomatic-templates-gs/Quality.xml
index e3ba47b..eb8bed9 100644
--- a/src/foomatic/foomatic-templates/Quality.xml
+++ b/src/foomatic/foomatic-templates-gs/Quality.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>Quality</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>Z</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/Quality(%s)&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates/Resolution.xml b/src/foomatic/foomatic-templates-gs/Resolution.xml
index f45a7f5..a51029f 100644
--- a/src/foomatic/foomatic-templates/Resolution.xml
+++ b/src/foomatic/foomatic-templates-gs/Resolution.xml
@@ -7,10 +7,9 @@
<arg_shortname>
<en>GSResolution</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
- <arg_required />
<arg_postscript />
<arg_proto>&lt;&lt;/HWResolution[%s]&gt;&gt;setpagedevice</arg_proto>
</arg_execution>
diff --git a/src/foomatic/foomatic-templates/Saturation.xml b/src/foomatic/foomatic-templates-gs/Saturation.xml
index 781deea..dc66f5d 100644
--- a/src/foomatic/foomatic-templates/Saturation.xml
+++ b/src/foomatic/foomatic-templates-gs/Saturation.xml
@@ -2,12 +2,12 @@
<!-- A multilingual <comments> block can appear here, too;
it should be treated as documentation for the user. -->
<arg_longname>
- <en>StpSaturation</en>
+ <en>stpSaturation</en>
</arg_longname>
<arg_shortname>
- <en>StpSaturation</en><!-- backends only know <en> shortnames! -->
+ <en>stpSaturation</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates/Yellow.xml b/src/foomatic/foomatic-templates-gs/Yellow.xml
index 7d93002..43f3d59 100644
--- a/src/foomatic/foomatic-templates/Yellow.xml
+++ b/src/foomatic/foomatic-templates-gs/Yellow.xml
@@ -7,7 +7,7 @@
<arg_shortname>
<en>Yellow</en><!-- backends only know <en> shortnames! -->
</arg_shortname>
- <arg_execution>
+ <arg_execution>@@GROUP@@
<arg_order>100</arg_order>
<arg_spot>A</arg_spot>
<arg_postscript />
diff --git a/src/foomatic/foomatic-templates-gs/gimp-print.xml b/src/foomatic/foomatic-templates-gs/gimp-print.xml
new file mode 100644
index 0000000..23af826
--- /dev/null
+++ b/src/foomatic/foomatic-templates-gs/gimp-print.xml
@@ -0,0 +1,43 @@
+<driver id="driver/@@DRVNAME@@">
+ <name>@@DRVNAME@@</name>
+ <url>http://gimp-print.sourceforge.net/</url>
+ <execution>
+ <ghostscript />
+ <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=stp %A%Z -sOutputFile=- -</prototype>
+ </execution>
+ <comments>
+ <en>
+
+ &lt;b&gt;This page provides data for the GhostScript
+ (&quot;stp&quot;) driver of the GIMP-Print 4.2.x series, if you
+ are using the IJS driver of the GIMP-Print 4.2.x series, go to the
+ &quot;&lt;a
+ href=&quot;show_driver.cgi?driver=gimp-print-ijs&quot;&gt;gimp-print-ijs&lt;/a&gt;&quot;
+ page, and if you are using GIMP-Print 4.0.x, go to the &quot;&lt;a
+ href=&quot;show_driver.cgi?driver=stp&quot;&gt;stp&lt;/a&gt;&quot;
+ page.&lt;/b&gt;&lt;p&gt;
+
+ GIMP-Print supports a wide variety of Epson Stylus, HP DeskJet,
+ LaserJet, Canon BubbleJet, Lexmark inkjet printers, with the
+ primary goal being uncompromising quality. Epson Stylus printers
+ in particular are supported in all resolutions and modes, and the
+ latest printers are capable of producing prints that rival
+ photographic prints in quality. This package also offers much
+ faster printing for high quality text and presentation graphics
+ when required.&lt;p&gt;
+
+ The execution information currently here corresponds to driver
+ version @@STPVER@@. If you use another version, use the Foomatic
+ data which comes with the GIMP-Print package.&lt;p&gt;
+
+ Note that the Foomatic datafiles provided here are only for the
+ GhostScript driver of GIMP-Print. For the native CUPS driver there
+ are special PPD files provided by the GIMP-Print package.&lt;p&gt;
+
+ To get a pre-patched/pre-compiled GNU-GhostScript 6.51 with this driver
+ (version 4.2.0) download
+ &lt;a href="http://space.tin.it/computer/wvtberti/linux/stp_driver/gs_stp.htm"&gt;Daniele Berti's source and binary RPMS&lt;/a&gt;.
+ </en>
+ </comments>
+ @@STPRINTERS@@
+</driver>
diff --git a/src/foomatic/foomatic-templates-ijs/Brightness.xml b/src/foomatic/foomatic-templates-ijs/Brightness.xml
new file mode 100644
index 0000000..527e434
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Brightness.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-brightness">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>stpBrightness</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>stpBrightness</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>170</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Brightness=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Color.xml b/src/foomatic/foomatic-templates-ijs/Color.xml
new file mode 100644
index 0000000..e34e729
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Color.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-color">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Output Type</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>OutputType</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>130</arg_order>
+ <arg_spot>A</arg_spot>
+ <arg_substitution />
+ <arg_proto> -sProcessColorModel=%s</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Contrast.xml b/src/foomatic/foomatic-templates-ijs/Contrast.xml
new file mode 100644
index 0000000..9a9210d
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Contrast.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-contrast">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Contrast Level</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Contrast</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>190</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Contrast=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Cyan.xml b/src/foomatic/foomatic-templates-ijs/Cyan.xml
new file mode 100644
index 0000000..997148f
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Cyan.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-cyan">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Cyan Level</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Cyan</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>210</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Cyan=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Density.xml b/src/foomatic/foomatic-templates-ijs/Density.xml
new file mode 100644
index 0000000..6525c0f
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Density.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-density">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Density</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Density</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>160</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Density=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Dither.xml b/src/foomatic/foomatic-templates-ijs/Dither.xml
new file mode 100644
index 0000000..cd1c9a2
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Dither.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-dither">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Dither Algorithm</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Dither</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>140</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Dither=%s,</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Gamma.xml b/src/foomatic/foomatic-templates-ijs/Gamma.xml
new file mode 100644
index 0000000..3a9d9b4
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Gamma.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-gamma">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>stpGamma</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>stpGamma</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>180</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Gamma=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/ImageType.xml b/src/foomatic/foomatic-templates-ijs/ImageType.xml
new file mode 100644
index 0000000..e279a43
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/ImageType.xml
@@ -0,0 +1,63 @@
+<option type="enum" id="opt/@@DRVNAME@@-imagetype">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Image Type</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>ImageType</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>150</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>ImageType=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DRVNAME@@-LineArt</arg_defval>
+ </constraint>
+ </constraints>
+ <enum_vals>
+ <enum_val id="@@DRVNAME@@-LineArt">
+ <ev_longname>
+ <en>Line art</en>
+ </ev_longname>
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <ev_shortname>
+ <en>LineArt</en>
+ <!-- Until someone tells me how to learn the user locale in
+ backends, the shortname must be monolingual in <en>! -->
+ </ev_shortname>
+ <ev_driverval>0</ev_driverval>
+ </enum_val>
+ <enum_val id="@@DRVNAME@@-SolidColors">
+ <ev_longname>
+ <en>Primarily solid colors or smooth gradients</en>
+ </ev_longname>
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <ev_shortname>
+ <en>Solids</en>
+ <!-- Until someone tells me how to learn the user locale in
+ backends, the shortname must be monolingual in <en>! -->
+ </ev_shortname>
+ <ev_driverval>1</ev_driverval>
+ </enum_val>
+ <enum_val id="@@DRVNAME@@-Photographs">
+ <ev_longname>
+ <en>Continuous-tone photographs</en>
+ </ev_longname>
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <ev_shortname>
+ <en>Photographs</en>
+ <!-- Until someone tells me how to learn the user locale in
+ backends, the shortname must be monolingual in <en>! -->
+ </ev_shortname>
+ <ev_driverval>2</ev_driverval>
+ </enum_val>
+ </enum_vals>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/InkType.xml b/src/foomatic/foomatic-templates-ijs/InkType.xml
new file mode 100644
index 0000000..7b6d3ea
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/InkType.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-inktype">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Ink Type</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>InkType</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>110</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>InkType=%s,</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/InputSlot.xml b/src/foomatic/foomatic-templates-ijs/InputSlot.xml
new file mode 100644
index 0000000..414f69c
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/InputSlot.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-inputslot">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Input Slot</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>InputSlot</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>130</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>MediaSource=%s,</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Magenta.xml b/src/foomatic/foomatic-templates-ijs/Magenta.xml
new file mode 100644
index 0000000..1f7c608
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Magenta.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-magenta">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Magenta Level</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Magenta</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>220</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Magenta=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/MediaType.xml b/src/foomatic/foomatic-templates-ijs/MediaType.xml
new file mode 100644
index 0000000..0a56b72
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/MediaType.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-mediatype">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Media Type</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>MediaType</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>120</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>MediaType=%s,</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Model.xml b/src/foomatic/foomatic-templates-ijs/Model.xml
new file mode 100644
index 0000000..938d39f
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Model.xml
@@ -0,0 +1,21 @@
+<option type="enum" id="opt/@@DRVNAME@@-model">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Printer Model</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Model</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>100</arg_order>
+ <arg_spot>A</arg_spot>
+ <arg_required />
+ <arg_substitution />
+ <arg_proto> %s</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/PageSize.xml b/src/foomatic/foomatic-templates-ijs/PageSize.xml
new file mode 100644
index 0000000..654aab2
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/PageSize.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-pagesize">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Page Size</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>PageSize</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>110</arg_order>
+ <arg_spot>A</arg_spot>
+ <arg_substitution />
+ <arg_proto> %s</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/PrintoutMode.xml b/src/foomatic/foomatic-templates-ijs/PrintoutMode.xml
new file mode 100644
index 0000000..eb1b0bb
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/PrintoutMode.xml
@@ -0,0 +1,19 @@
+<option type="enum" id="opt/@@DRVNAME@@-printoutmode">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Printout Mode</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>PrintoutMode</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>10</arg_order>
+ <arg_spot>A</arg_spot>
+ <arg_composite />
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Quality.xml b/src/foomatic/foomatic-templates-ijs/Quality.xml
new file mode 100644
index 0000000..4b09b86
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Quality.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-quality">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Quality</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Quality</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>100</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Quality=%s,</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Resolution.xml b/src/foomatic/foomatic-templates-ijs/Resolution.xml
new file mode 100644
index 0000000..bcdd0e1
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Resolution.xml
@@ -0,0 +1,20 @@
+<option type="enum" id="opt/@@DRVNAME@@-resolution">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Ghostscript Resolution</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>GSResolution</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>120</arg_order>
+ <arg_spot>A</arg_spot>
+ <arg_substitution />
+ <arg_proto> -r%s</arg_proto>
+ </arg_execution>
+
+ @@OPTCONSTRAINTS@@
+ @@ENUMVALS@@
+
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Saturation.xml b/src/foomatic/foomatic-templates-ijs/Saturation.xml
new file mode 100644
index 0000000..aa1cb58
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Saturation.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-saturation">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>stpSaturation</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>stpSaturation</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>200</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Saturation=%s,</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/Yellow.xml b/src/foomatic/foomatic-templates-ijs/Yellow.xml
new file mode 100644
index 0000000..b632741
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/Yellow.xml
@@ -0,0 +1,24 @@
+<option type="float" id="opt/@@DRVNAME@@-yellow">
+ <!-- A multilingual <comments> block can appear here, too;
+ it should be treated as documentation for the user. -->
+ <arg_longname>
+ <en>Yellow Level</en>
+ </arg_longname>
+ <arg_shortname>
+ <en>Yellow</en><!-- backends only know <en> shortnames! -->
+ </arg_shortname>
+ <arg_execution>@@GROUP@@
+ <arg_order>230</arg_order>
+ <arg_spot>B</arg_spot>
+ <arg_substitution />
+ <arg_proto>Yellow=%s</arg_proto>
+ </arg_execution>
+ <constraints>
+ <constraint sense="true">
+ <driver>@@DRVNAME@@</driver>
+ <arg_defval>@@DEFVAL@@</arg_defval>
+ </constraint>
+ </constraints>
+ <arg_max>@@MAXVAL@@</arg_max>
+ <arg_min>@@MINVAL@@</arg_min>
+</option>
diff --git a/src/foomatic/foomatic-templates-ijs/gimp-print.xml b/src/foomatic/foomatic-templates-ijs/gimp-print.xml
new file mode 100644
index 0000000..ffea11a
--- /dev/null
+++ b/src/foomatic/foomatic-templates-ijs/gimp-print.xml
@@ -0,0 +1,44 @@
+<driver id="driver/@@DRVNAME@@">
+ <name>@@DRVNAME@@</name>
+ <url>http://gimp-print.sourceforge.net/</url>
+ <execution>
+ <filter />
+ <prototype>gs -q -dPARANOIDSAFER -dNOPAUSE -dBATCH -sDEVICE=ijs -sIjsServer=ijsgimpprint -dIjsUseOutputFD%A -sIjsParams=&quot;%B&quot;%Z -sOutputFile=- -</prototype>
+ </execution>
+ <comments>
+ <en>
+
+ &lt;b&gt;This page provides data for the IJS driver of the
+ GIMP-Print 4.2.x series, if you are using the GhostScript
+ (&quot;stp&quot;) driver of the GIMP-Print 4.2.x series, go to the
+ &quot;&lt;a
+ href=&quot;show_driver.cgi?driver=gimp-print&quot;&gt;gimp-print&lt;/a&gt;&quot;
+ page, and if you are using GIMP-Print 4.0.x, go to the &quot;&lt;a
+ href=&quot;show_driver.cgi?driver=stp&quot;&gt;stp&lt;/a&gt;&quot;
+ page.&lt;/b&gt;&lt;p&gt;
+
+ GIMP-Print supports a wide variety of Epson Stylus, HP DeskJet,
+ LaserJet, Canon BubbleJet, Lexmark inkjet printers, with the
+ primary goal being uncompromising quality. Epson Stylus printers
+ in particular are supported in all resolutions and modes, and the
+ latest printers are capable of producing prints that rival
+ photographic prints in quality. This package also offers much
+ faster printing for high quality text and presentation graphics
+ when required.&lt;p&gt;
+
+ The execution information currently here corresponds to driver
+ version @@STPVER@@. If you use another version, use the Foomatic
+ data which comes with the GIMP-Print package.&lt;p&gt;
+
+ Note that the Foomatic datafiles provided here are only for the
+ IJS driver of GIMP-Print. For the native CUPS driver there
+ are special PPD files provided by the GIMP-Print package.&lt;p&gt;
+
+ This driver does not require patching and rebuilding GhostScript.
+ It is enough when you have an IJS enabled GhostScript (GNU
+ GhostScript 6.53 or newer, APFL GhostScript 7.04 or newer.&lt;p&gt;
+
+ </en>
+ </comments>
+ @@STPRINTERS@@
+</driver>
diff --git a/src/foomatic/foomatic-templates/gimp-print.xml b/src/foomatic/foomatic-templates/gimp-print.xml
deleted file mode 100644
index e6be537..0000000
--- a/src/foomatic/foomatic-templates/gimp-print.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<driver id="driver/@@DRVNAME@@">
- <name>@@DRVNAME@@</name>
- <url>http://gimp-print.sourceforge.net/</url>
- <execution>
- <ghostscript />
- <prototype>gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=stp %A%Z -sOutputFile=- -</prototype>
- </execution>
- <comments>
- <en>STP supports a wide variety of Epson Stylus, HP DeskJet and LaserJet,
- and Canon BubbleJet printers, with the primary goal being
- uncompromising quality. Epson Stylus printers in particular are
- supported in all resolutions and modes, and the latest printers are
- capable of producing prints that rival photographic prints in
- quality. This package also offers much faster printing for high
- quality text and presentation graphics when required.
- &lt;p&gt;
- The execution information currently here corresponds to driver version
- @@STPVER@@.
- &lt;p&gt;
- To get a pre-patched/pre-compiled GNU-GhostScript 5.50 with this driver
- (version 4.0.4) download sources and binaries of
- &lt;a href="ftp://ftp2.easysw.com/pub/ghostscript/"&gt;ESP
- GhostScript&lt;/a&gt;.</en>
- </comments>
- @@STPRINTERS@@
-</driver> \ No newline at end of file
diff --git a/src/foomatic/oldprinterids b/src/foomatic/oldprinterids
new file mode 100644
index 0000000..3129cb3
--- /dev/null
+++ b/src/foomatic/oldprinterids
@@ -0,0 +1,640 @@
+100576 HP-LaserJet_4000
+100704 HP-OfficeJet_635
+101152 Panasonic-KX-P2123
+101952 Canon-MultiPASS_C5500
+102080 Ricoh-Aficio_220
+102304 HP-PSC_500
+105504 Xerox-DocuPrint_C8
+106848 Epson-Stylus_Color_300
+108128 HP-DesignJet_230
+108320 HP-DeskJet_932C
+108896 Okidata-OL610e_S
+109440 Okidata-Okijet_2500
+110464 Canon-MultiPASS_C5000
+110624 HP-LaserJet_2
+111392 Canon-MultiPASS_C3000
+112832 Printrex-820_DL
+112864 Ricoh-Afico_FX10
+113312 Canon-Multipass_L6000
+113888 Xerox-Document_Centre_400
+114016 IBM-4303_Network_Color_Printer
+114592 Brother-HL-4Ve
+114656 Canon-BJC-7100
+114816 Kyocera-FS-3500
+115488 Olivetti-JP450
+116128 Panasonic-KX-P2023
+116256 Fujitsu-PrintPartner_16DV
+117472 Minolta-PagePro_8L
+121952 Brother-HL-2060
+122016 NEC-SuperScript_660
+122048 Lexmark-Z11
+122080 Lexmark-Z51
+122336 HP-Color_LaserJet_5
+122496 HP-DesignJet_750C_Plus
+123584 Xerox-DocuPrint_XJ8C
+123776 Canon-BJC-8200
+123968 Brother-HL-630
+125024 Okidata-OL830Plus
+125408 Xerox-DocuPrint_C20
+125632 QMS-LPK-100
+125696 Epson-L-1000
+126048 Dymo-CoStar-LabelWriter_II
+126049 Dymo-CoStar-LabelWriter_XL
+126080 Dymo-CoStar-LabelWriter_XLplus
+126081 Dymo-CoStar-EL40
+126082 Dymo-CoStar-EL60
+126083 Dymo-CoStar-Turbo
+126084 Dymo-CoStar-SE250
+126085 Dymo-CoStar-SE250plus
+126086 Dymo-CoStar-ASCII_250
+126087 Dymo-CoStar-ASCIIplus
+126112 Avery-Personal_Label_Printer
+126113 Avery-Personal_Label_Printerplus
+126176 Seiko-SLP
+126177 Seiko-SLP_Plus
+126178 Seiko-SLP_EZ30
+126179 Seiko-SLP_Pro
+126180 Seiko-SLP_120
+126181 Seiko-SLP_220
+126496 Lexmark-Winwriter_400
+126752 Xerox-Document_Homecentre
+127776 HP-DeskJet_510
+128576 Kyocera-FS-600
+129184 HP-DeskJet_520
+129376 NEC-SuperScript_1800
+129472 Canon-BJC-3000
+129632 Canon-BJC-8500
+130080 Tektronix-Phaser_PX
+130112 DEC-LN03
+130208 Tektronix-4696
+130272 Tektronix-4697
+130336 Tektronix-Phaser_IISX
+130656 Samsung-ML-85G
+131424 HP-PhotoSmart_P1000
+132800 Compaq-IJ900
+132832 Compaq-IJ300
+132864 Compaq-IJ750
+133152 HP-DeskJet_842C
+133664 HP-DeskJet_840C
+134880 HP-DesignJet_3500CP
+135401 DEC-1800
+135529 NEC-SilentWriter_LC_890
+136928 HP-OfficeJet_R60
+138697 Panasonic-KX-P2135
+139017 Canon-BJC-1000
+141417 Canon-LBP-4sx
+142569 Xerox-WorkCentre_XD120f
+142825 NEC-SuperScript_610plus
+142944 HP-OfficeJet_710
+143104 Olivetti-JP470
+143689 Panasonic-KX-P6300_GDI
+144320 Brother-DCP-1200
+146569 DEC-DECWriter_500i
+147433 Star-NL-10
+151625 QMS-ps-810
+152585 HP-LaserJet_6P
+152800 Brother-HL-1020
+153056 HP-DeskJet_340C
+156105 HP-DeskJet_810C
+157312 Tektronix-Phaser_850
+158569 Epson-EPL-5700
+158816 Kyocera-F-800T
+160032 Xerox-WorkCentre_385
+160288 Brother-MFC-9600
+160969 Apple-LaserWriter_16_600
+161705 HP-DeskJet_812C
+164576 Xerox-WorkCentre_XE90fx
+165408 Brother-HL-1270N
+165536 Brother-HL-1660e
+167008 Epson-Stylus_Photo_1200
+168201 Citizen-printiva600C
+169641 Apple-LaserWriter_IINTX
+173248 HP-DesignJet_350C
+173888 Samsung-SI-630A
+174249 HP-DeskJet_612C
+175232 HP-DeskJet_930C
+178185 Okidata-OL800
+178336 Apple-LaserWriter_IIg
+180160 IBM-Execjet_4072
+181792 Kyocera-FS-1750
+181984 Lexmark-Optra_W810
+182528 Okidata-OL820
+182633 Okidata-Okipage_6w
+185033 HP-OfficeJet_600
+185225 Brother-HL-1250
+186729 HP-DeskJet_970C
+188457 Okidata-Okipage_10e
+189961 Canon-LBP-8A1
+190537 DEC-DECwriter_520ic
+190601 DEC-DECwriter_110i
+190793 Brother-HL-10h
+191689 IBM-Page_Printer_3112
+193321 Star-LC_90
+194345 Ricoh-Aficio_Color_2206
+194601 Okidata-OL400ex
+194697 Okidata-OL810ex
+195529 Citizen-ProJet_II
+195561 Citizen-ProJet_IIc
+195593 Seiko-SpeedJET_200
+196201 Panasonic-KX-P4410
+202441 Tektronix-Phaser_780
+204617 Olivetti-PG_306
+204745 IBM-ProPrinterII
+206505 HP-DeskJet_610C
+20672 Epson-Stylus_Color_1520
+208969 Epson-Stylus_Color_3000
+210153 Samsung-ML-5000a
+211017 Brother-MFC-6550MC
+212905 Sharp-AR-161
+214153 Epson-Stylus_Color_500
+21536 Canon-BJC-5100
+219977 HP-DeskJet_610CL
+222377 Canon-BJ-330
+225673 Apple-12_640ps
+22624 HP-DeskJet_560C
+226985 HP-DeskJet_890C
+22720 HP-DeskJet_1100C
+22784 HP-PaintJet
+22848 HP-PaintJet_XL
+22944 DEC-LJ250
+22976 HP-LaserJet
+230121 Panasonic-KX-P1150
+230377 HP-LaserJet_4P
+23040 HP-LaserJet_Plus
+23104 HP-LaserJet_2D
+23168 HP-LaserJet_3D
+231689 Panasonic-KX-P6150
+23232 HP-LaserJet_6
+23296 Epson-ActionPrinter_3250
+23360 IBM-3853_JetPrinter
+23424 Ricoh-4081
+234281 Fujitsu-PrintPartner_20W
+23488 Tektronix-4693d_color_printer_2-bit_mode
+234953 Brother-HL-1240
+23552 Tektronix-4693d_color_printer_4-bit_mode
+23584 Tektronix-3693d_color_printer_8-bit_mode
+23648 Apple-Dot_Matrix
+23776 Apple-ImageWriter
+23840 Apple-ImageWriter_LQ
+23904 Epson-LQ-2550
+240041 Alps-MD-5000
+240073 Alps-MD-4000
+240105 Alps-MD-2000
+240137 Alps-MD-1000
+240169 Alps-MD-1300
+24128 Fujitsu-1200
+24192 Fujitsu-2400
+24256 Fujitsu-3400
+24320 Epson-LQ-24
+244361 Epson-Stylus_Color_660
+24448 Epson-Dot_Matrix
+244617 Epson-LX-1050
+245033 NEC-Silentwriter2_S60P
+24512 Canon-LIPS-III
+24576 DEC-LA50
+24640 DEC-LA75
+24704 DEC-LA75_Plus
+247625 Kyocera-FS-3750
+24768 NEC-PinWriter_P6
+24832 NEC-PinWriter_P6_plus
+24896 NEC-PinWriter_P60
+24960 NEC-PinWriter_P7
+249705 HP-DeskJet_692C
+25024 NEC-PinWriter_P7_plus
+250601 HP-DeskJet_832C
+25088 NEC-PinWriter_P70
+25152 Okidata-Microline_182
+25216 Okidata-Okipage_4wplus
+25280 Star-StarJet_48
+25344 Tektronix-4695
+25408 Xerox-2700_XES
+25472 Xerox-3700_XES
+255049 Ricoh-Aficio_401
+25568 Xerox-4045_XES
+25696 Epson-Stylus_Color_I
+257577 Canon-LBP-430
+258089 HP-OfficeJet_Pro_1170C
+25824 Epson-Stylus_Color_PRO
+259689 HP-PhotoSmart_P1100
+26016 Epson-Stylus_Color_600
+261321 CalComp-Artisan_1023_penplotter
+261673 Brother-HL-1030
+262185 Star-LC24-100
+263305 Epson-LQ-570plus
+266185 HP-LaserJet_3150
+266313 Epson-Stylus_Color_670
+267881 HP-DeskJet
+268521 HP-ThinkJet
+269289 Kyocera-FS-1200
+270089 Xerox-DocuPrint_C6
+272681 Canon-BJC-6500
+273833 HP-DeskJet_950C
+279593 Apple-StyleWriter_I
+279657 Apple-StyleWriter_II
+279721 Apple-StyleWriter_1200
+279785 Apple-Color_StyleWriter_2200
+279849 Apple-Color_StyleWriter_1500
+279913 Apple-Color_StyleWriter_2400
+280649 Canon-GP_405
+284105 Epson-Stylus_Photo_870
+284169 Epson-Stylus_Photo_1270
+287273 Heidelberg-Digimaster_9110
+287337 Infotec-4651_MF
+287401 Hitachi-DDP_70_with_MicroPress
+287561 HP-Mopier_240
+287657 Kodak-IS_70_CPII
+287689 Kodak-DigiSource_9110
+287721 Canon-LBP-600
+289961 HP-OfficeJet_R45
+290665 Xerox-WorkCentre_XK35c
+290953 HP-DeskJet_1220C
+291081 Apollo-P-1200
+293641 HP-DeskJet_815C
+29472 Ricoh-Aficio_AP2000
+295273 Okidata-Okipage_8w_Lite
+309929 Canon-BJC-2100
+310313 QMS-magicolor_2plus
+311113 Kyocera-FS-680
+311177 HP-DeskJet_320
+312041 Kyocera-FS-3700plus
+312169 HP-OfficeJet_T65
+312297 Epson-EPL-5700L
+312329 Raven-LP-410
+312393 Star-LS-04
+315753 Lexmark-Optra_T610
+316361 Epson-ActionLaser_II
+317129 Lexmark-Z32
+317225 Canon-BJC-6100
+317321 Epson-Stylus_Color_480
+317385 Epson-Stylus_Color_1500
+317481 Epson-Stylus_Color_1160
+317545 Epson-Stylus_Photo_720
+317609 Epson-Stylus_Photo_2000P
+317801 Epson-Stylus_Color_880
+317865 Epson-Stylus_Color_980
+321929 Lexmark-Optra_E312
+325321 Samsung-QL-85G
+32640 Samsung-ML-5050G
+32672 Samsung-ML-85
+32704 Samsung-SF_MSYS_MJ-4700_4800_4500C
+32736 Samsung-ML-7000_7000P_7000N
+327401 Lexmark-Z22
+32768 Samsung-ML-6000_6100
+32832 Samsung-ML-7050
+328361 Brother-4550
+328553 Lexmark-Z52
+332073 Okidata-ML_380
+334409 Samsung-ML-4600
+34016 HP-LaserJet_2P_Plus
+365001 Kyocera-F-1200
+365353 LaserMaster-LM_1000
+365417 Star-LaserPrinter_8
+365737 HP-Color_LaserJet_8550GN
+369705 Xerox-DocuPrint_M760
+373513 Epson-EPL-5200
+375433 DEC-LA70
+378665 Lexmark-Optra_M412
+378729 Lexmark-Optra_M410
+378825 Lexmark-Optra_T612
+378889 Lexmark-Optra_T614
+378953 Lexmark-Optra_T616
+381449 Apple-ImageWriter_II
+413673 Canon-BJC-6200
+413737 Apollo-P-2200
+42048 Samsung-QL-5100A
+421586 Okidata-Okipage_10ex
+421650 Okidata-Okipage_8z
+421714 HP-OfficeJet_Pro_1150C
+421842 HP-OfficeJet_G55
+421906 HP-OfficeJet_G85
+421970 HP-OfficeJet_G95
+423122 Canon-LBP-800
+423826 Canon-BJ-30
+439378 HP-LaserJet_4V
+439570 HP-LaserJet_4Si
+44128 Apple-LaserWriter_NT
+44192 Imagen-ImPress
+44256 CItoh-M8510
+44320 Mitsubishi-CP50_Color_Printer
+448242 HP-DeskJet_648C
+46400 Epson-LQ-500
+464242 Epson-Stylus_Color_777
+47328 Brother-MP-21C
+474610 HP-LaserJet_3200
+475634 Star-NX-1001
+477618 Xerox-DocuPrint_C11
+479986 Canon-S450
+48000 Brother-MFC-4350
+48064 Brother-MFC-8300
+486066 Lexmark-Z12
+487986 IBM-4029_030_LaserPrinter_10
+490066 HP-DesignJet_ColorPro_CAD
+490898 Ricoh-Aficio_700
+491506 HP-LaserJet_4
+49568 Canon-BJC-210SP
+49888 HP-Color_LaserJet_5000
+516274 Epson-Stylus_Scan_2500
+517394 Samsung-ML-4500
+517810 Epson-Stylus_Color_680
+517906 HP-Business_Inkjet_2250
+517970 HP-Business_Inkjet_2250TN
+523058 HP-DeskJet_955C
+530418 HP-DeskJet_990C
+530994 HP-Business_Inkjet_2200
+531058 NEC-SuperScript_4600N
+537362 HP-OfficeJet_T45
+539634 Brother-HL-960
+54176 Panasonic-KX-P1180i
+542482 Sharp-AJ-1800
+543058 IBM-Infoprint_12
+545746 Brother-MFC-9050
+547282 Epson-Stylus_800
+547378 Epson-EPL-7100
+549970 Epson-EPL-5500W
+550610 Tektronix-Phaser_350
+551282 Canon-BJC-55
+551346 Canon-BJC-50
+551410 Canon-BJC-85
+551474 Canon-LBP-1000
+552146 Kyocera-F-1010
+55232 Panasonic-KX-P1624
+554770 HP-2563
+555026 Oce-9050
+556050 Okidata-Microline_IBM_compatible_9_pin
+56608 NEC-Silentwriter_95f
+56672 DEC-LN17
+581554 Xerox-DocuPrint_P1202
+582898 Apple-LaserWriter_Pro_630
+58363 HP-DeskJet_500
+58464 HP-DeskJet_550C
+58656 Canon-BJ-10e
+58688 Canon-BJ-20
+58720 Canon-BJ-200
+58752 Canon-BJC-210
+58816 Canon-BJC-240
+59008 Lexmark-1100
+59296 Lexmark-1000
+593266 Lexmark-Z42
+59328 Lexmark-1020
+59360 Lexmark-2030
+59392 Lexmark-2050
+59424 Lexmark-2070
+59456 Lexmark-3000
+59520 Lexmark-7000
+59552 Lexmark-7200
+59584 Lexmark-Optra_E
+59616 Lexmark-Optra_Ep
+59648 Lexmark-Optra_S_1250
+59776 HP-LaserJet_4L
+599218 Okidata-DP_5000
+60128 Epson-Stylus_Photo_750
+60192 Canon-BJC-610
+60224 NEC-P2X
+602258 Canon-S400
+602386 Canon-S4500
+60256 HP-DeskJet_870C
+60384 Canon-BJC-250
+60416 Canon-BJC-70
+60448 Canon-BJC-4000
+60480 Canon-BJC-4100
+605074 HP-LaserJet_5Si
+60512 Canon-BJC-4200
+60544 Canon-BJC-4300
+60576 Canon-BJC-4550
+60608 Canon-MultiPASS_C2500
+60640 Canon-BJC-800
+60672 Canon-BJC-7000
+60704 Lexmark-Winwriter_100
+60736 Lexmark-Winwriter_150c
+607474 Epson-Stylus_Color_580
+60768 Lexmark-Winwriter_200
+60800 Lexmark-Optra_Color_40
+60832 Lexmark-Optra_Color_45
+60864 Lexmark-Optra_Color_1275
+60896 Lexmark-Optra_Color_1200
+60928 HP-DeskJet_670C
+60960 HP-DeskJet_690C
+609714 HP-LaserJet_3200se
+60992 HP-DeskJet_855C
+61024 HP-DeskJet_850C
+61120 HP-DeskJet_1600C
+61152 HP-DeskJet_1600CM
+61184 Epson-Stylus_Color
+61216 Epson-Stylus_Color_II
+61248 Epson-Stylus_Color_IIs
+61344 Epson-Stylus_Color_800
+613522 Brother-HL-1650
+613618 Brother-HL-1670N
+61472 HP-DeskJet_710C
+61504 HP-DeskJet_720C
+61536 HP-DeskJet_722C
+61568 HP-DeskJet_820C
+615698 NEC-Pinwriter_P20
+61600 HP-DeskJet_1000C
+61632 NEC-SuperScript_660plus
+61664 NEC-SuperScript_750C
+616946 Seiko-SLP-100
+61696 NEC-SuperScript_150C
+616978 Seiko-SLP-200
+617010 Seiko-SLP-240
+61728 NEC-SuperScript_870
+61760 NEC-SuperScript_650C
+61792 NEC-SuperScript_100C
+61824 NEC-SuperScript_860
+61856 NEC-SuperScript_660i
+618706 Lexmark-Z31
+61888 NEC-SuperScript_1260
+619538 Kyocera-FS-1000
+619666 Epson-EPL-5200plus
+62016 Lexmark-5700
+620306 HP-DeskJet_350C
+62048 Canon-LBP-460
+62080 Canon-BJC-620
+62112 Epson-Stylus_Color_740
+62240 Canon-BJC-4400
+62304 HP-LaserJet_4050
+62368 HP-LaserJet_6L
+623858 HP-DeskJet_Plus
+623922 HP-DeskJet_Portable
+624114 HP-DeskJet_680C
+62496 Panasonic-KX-P1123
+62528 Brother-HL-720
+62624 Xerox-DocuPrint_N17
+62720 HP-LaserJet_5L
+62816 HP-LaserJet_1100
+62912 Epson-Stylus_Color_400
+62944 Okidata-OL610e_PS
+62976 Okidata-Okipage_6ex
+63008 Canon-GP_335
+63040 HP-DeskJet_400
+631698 Panasonic-KX-Pxxxx_24-pin
+63200 IBM-4019
+63264 Canon-BJ-300
+63328 Epson-LP_8000
+633554 Epson-EPL-5800
+63360 Epson-LQ-850
+63456 Brother-HL-1050
+63520 HP-LaserJet_5
+63552 Brother-HL-760
+635698 HP-DeskJet_960C
+63584 Brother-HL-660
+63616 Okidata-OL410e
+63648 Lexmark-Optra_Eplus
+63680 HP-PaintJet_XL300
+63712 HP-DeskJet_1200C
+63744 Ricoh-4801
+63776 Ricoh-6000
+638194 Xerox-DocuPrint_M750
+63840 Epson-Stylus_Color_850
+63904 Olivetti-JP350S
+640082 Sharp-AJ-2000
+64032 Okidata-Okipage_6e
+64064 HP-LaserJet_2100M
+64096 HP-LaserJet_2100
+64192 HP-DeskJet_660C
+642674 Minolta-PagePro_1100
+64288 Xerox-DocuPrint_N32
+64320 Xerox-DocuPrint_C55
+64416 Canon-LBP-660
+64512 HP-2500C
+64576 HP-DeskJet_600
+64672 Okidata-Okipage_4w
+64704 Okidata-Okipage_8c
+64736 Okidata-Okipage_8w
+64864 HP-LaserJet_5MP
+64960 HP-LaserJet_3100
+64992 HP-DesignJet_650C
+65216 Panasonic-KX-P5400
+65248 Panasonic-KX-P6100
+65280 Panasonic-KX-P6500
+65312 Panasonic-KX-P4450
+65344 Panasonic-KX-P8475
+65376 Panasonic-KX-P8410
+65408 Panasonic-KX-P8420
+65440 Lexmark-5000
+65600 Canon-MultiPASS_C3500
+65696 Brother-HL-10V
+65856 Epson-Stylus_Pro_XL
+65984 HP-2000C
+66016 Epson-Stylus_Color_640
+66176 Okidata-OL810e_PS
+66336 Lexmark-1020_Business
+66400 HP-DeskJet_420C
+66496 Minolta-PagePro_6
+66528 Minolta-PagePro_8
+67136 HP-LaserJet_5000
+67168 HP-LaserJet_8000
+67200 HP-LaserJet_8100
+67232 HP-Mopier_320
+67296 HP-LaserJet_6MP
+67424 Canon-BJC-7004
+67456 Epson-ActionLaser_1100
+67584 Canon-BJC-5000
+67744 QMS-2425_Turbo_EX
+68320 Okidata-Okijet_2010
+68384 HP-DeskJet_880C
+68512 HP-DeskJet_672C
+68672 HP-DeskJet_697C
+68736 Kyocera-FS-1700plus
+69088 HP-LaserJet_4ML
+69120 HP-LaserJet_4M
+69472 Fujitsu-PrintPartner_8000
+69504 Xerox-DocuPrint_XJ6C
+69568 Lexmark-Optra_S_1855
+69824 HP-Color_LaserJet_4500
+70016 Okidata-OL600e
+70144 Lexmark-4039_10plus
+70208 Panasonic-KX-P2150
+70496 Kyocera-P-2000
+70528 Kyocera-F-3300
+70560 HP-DeskJet_694C
+70720 Lexmark-Valuewriter_300
+70752 Xerox-DocuPrint_P8e
+70912 Lexmark-3200
+71008 Brother-HL-730
+71040 HP-DeskJet_882C
+71232 HP-DeskJet_712C
+71392 Canon-BJC-6000
+71424 Epson-Stylus_Photo_700
+71680 HP-LaserJet_1100A
+71712 Xerox-WorkCentre_470cx
+72000 HP-DeskJet_895C
+72288 Canon-LBP-4plus
+72544 Lexmark-Optra_K_1220
+72736 Lexmark-Optra_E310
+73216 Brother-HL-1060
+73408 Xerox-WorkCentre_XE80
+73472 Epson-Stylus_Color_460
+73760 Brother-MFC_7150C
+74016 Canon-LBP-4U
+74144 Lexmark-Optra_Rplus
+74176 HP-LaserJet_2P
+74208 HP-OfficeJet_625
+74304 Brother-MC-3000
+74464 QMS-magicolor_2
+74528 Brother-HL-8
+74592 PCPI-1030
+74688 IBM-4029_10P
+75104 HP-LaserJet_4_Plus
+75168 HP-LaserJet_5P
+75232 Canon-BJC-4310SP
+75296 Epson-Stylus_Color_440
+75520 HP-DeskJet_682C
+75712 Epson-SQ_1170
+75808 Epson-Stylus_Photo_EX
+75936 Okidata-Microline_192plus
+76064 Minolta-PagePro_6e
+76096 Minolta-PagePro_6ex
+76224 Fujitsu-PrintPartner_10V
+76352 Oce-3165
+76640 HP-OfficeJet_Pro_1175C
+76704 HP-DeskJet_310
+76896 HP-DeskJet_1120C
+77088 Okidata-Okipage_8p
+77152 Xerox-DocuPrint_4508
+77216 Canon-LBP-1760
+77248 Canon-LBP-1260
+77312 Panasonic-KX-P1124
+77472 Kyocera-FS-800
+77568 Canon-BJC-600
+77824 Apple-Color_StyleWriter_2500
+77952 HP-OfficeJet_500
+78144 HP-LaserJet_3
+78336 Brother-HL-1260
+78688 HP-LaserJet_2_w_PS
+78720 NEC-Silentwriter2_model_290
+78816 DEC-LN07
+79840 HP-DeskJet_500C
+80160 Xerox-DocuPrint_P12
+80288 Star-LC24-200
+80320 Xerox-WorkCentre_450cp
+80896 Epson-Stylus_Color_860
+81408 Brother-HL-1040
+81568 Brother-MFC-9500
+82496 Okidata-Super_6e
+83072 Brother-MFC-9100c
+83520 Epson-Stylus_Photo
+84256 Brother-HL-820
+84864 Xerox-DocuPrint_P8
+85344 Okidata-Okipage_12i
+86176 HP-LaserJet_3P_w_PS
+86208 Okidata-Okipage_20DXn
+86784 Lexmark-Optra_Se_3455
+87552 Samsung-QL-6050
+87968 Minolta-PagePro_6L
+89152 Canon-BJC-2000
+90592 Panasonic-KX-PS600
+90976 Canon-BJ-5
+91232 HP-LaserJet_5M
+91840 Kyocera-FS-5900C
+92192 Epson-Stylus_Color_900
+93120 Kyocera-FS-600_KPDL-2
+94016 Apple-LaserWriter_Select_360
+96288 Epson-Stylus_Color_760
+96480 Tally-MT908
+96512 Canon-BJC-80
+96576 Okidata-OL400w
+97312 Brother-HJ-400
+99136 Star-WinType_4000
+99616 HP-DeskJet_540C
+99840 Brother-HL-1070
diff --git a/src/foomatic/printer_margins.c b/src/foomatic/printer_margins.c
new file mode 100644
index 0000000..da6ed7d
--- /dev/null
+++ b/src/foomatic/printer_margins.c
@@ -0,0 +1,93 @@
+/*
+ * "$Id: printer_margins.c,v 1.1.2.1 2003/01/05 22:40:39 tillkamppeter Exp $"
+ *
+ * Dump the per-printer margins for Grant Taylor's *-omatic database
+ *
+ * Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <stdio.h>
+#ifdef INCLUDE_GIMP_PRINT_H
+#include INCLUDE_GIMP_PRINT_H
+#else
+#include <gimp-print/gimp-print.h>
+#endif
+#include "../../lib/libprintut.h"
+#include <string.h>
+
+int
+main(int argc, char **argv)
+{
+ int i, k;
+ for (i = 0; i < stp_known_printers(); i++)
+ {
+ stp_vars_t v;
+ const stp_printer_t p = stp_get_printer_by_index(i);
+ const stp_vars_t printvars = stp_printer_get_printvars(p);
+ const stp_printfuncs_t* printfuncs = stp_printer_get_printfuncs(p);
+ int num_opts;
+ stp_param_t *opts;
+ const char *defopt;
+ int width, height,
+ bottom, left,
+ top, right;
+ printf("# Printer model %s, long name `%s'\n",
+ stp_printer_get_driver(p), stp_printer_get_long_name(p));
+ v = stp_allocate_copy(printvars);
+ opts = (*(printfuncs->parameters))(p, NULL, "PageSize", &num_opts);
+ defopt = (*(printfuncs->default_parameters))(p, NULL, "PageSize");
+ for (k = 0; k < num_opts; k++) {
+ const stp_papersize_t papersize = stp_get_papersize_by_name(opts[k].name);
+
+ if (!papersize) {
+ printf("Unable to look up size %s!\n", opts[k].name);
+ continue;
+ }
+
+ width = stp_papersize_get_width(papersize);
+ height = stp_papersize_get_height(papersize);
+
+ /* if (width <= 0 || height <= 0)
+ continue; */
+
+ stp_set_media_size(v, opts[k].name);
+
+ (*(printfuncs->media_size))(p, v, &width, &height);
+ (*(printfuncs->imageable_area))(p, v, &left, &right, &bottom, &top);
+
+ if (strcmp(opts[k].name, "Custom") == 0) {
+ /* Use relative values for the custom size */
+ right = width - right;
+ top = height - top;
+ }
+
+ printf("$imageableareas{'%s'}{'%s'} = {\n",
+ stp_printer_get_driver(p), opts[k].name);
+ printf(" 'left' => '%d',\n", left);
+ printf(" 'right' => '%d',\n", right);
+ printf(" 'top' => '%d',\n", top);
+ printf(" 'bottom' => '%d',\n", bottom);
+ printf(" 'width' => '%d',\n", width);
+ printf(" 'height' => '%d'\n", height);
+ printf("};\n");
+ }
+ }
+ return 0;
+}
diff --git a/src/foomatic/printer_options.c b/src/foomatic/printer_options.c
index 462fb3a..b1bc4bb 100644
--- a/src/foomatic/printer_options.c
+++ b/src/foomatic/printer_options.c
@@ -1,5 +1,5 @@
/*
- * "$Id: printer_options.c,v 1.9 2001/09/02 13:30:26 rlk Exp $"
+ * "$Id: printer_options.c,v 1.9.4.1 2002/03/30 22:21:33 tillkamppeter Exp $"
*
* Dump the per-printer options for Grant Taylor's *-omatic database
*
@@ -96,6 +96,9 @@ main(int argc, char **argv)
stp_printer_get_driver(p), "Color", "Color",
"Color");
printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
+ stp_printer_get_driver(p), "Color", "RawCMYK",
+ "Raw CMYK");
+ printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
stp_printer_get_driver(p), "Color", "Grayscale",
"Gray Scale");
printf("$stpdata{'%s'}{'%s'}{'%s'} = '%s';\n",
diff --git a/src/ghost/.cvsignore b/src/ghost/.cvsignore
deleted file mode 100644
index a50caae..0000000
--- a/src/ghost/.cvsignore
+++ /dev/null
@@ -1,20 +0,0 @@
-Makefile
-Makefile.in
-gdevstp-canon.c
-gdevstp-color.c
-gdevstp-dither.c
-gdevstp-dither-matrices.c
-gdevstp-escp2.c
-gdevstp-lexmark.c
-gdevstp-pcl.c
-gdevstp-printers.c
-gdevstp-ps.c
-gdevstp-util.c
-gdevstp-weave.c
-gdevstp-print.h
-gdevstp-print-internal.h
-gdevstp-print-intl-internal.h
-gdevstp-quickmatrix257.h
-gdevstp-ran.367.179.h
-gdevstp-ran.509.131.h
-contrib.mak.addon
diff --git a/src/ghost/Makefile b/src/ghost/Makefile
new file mode 100644
index 0000000..74950e8
--- /dev/null
+++ b/src/ghost/Makefile
@@ -0,0 +1,539 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../..
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/Tools//
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/Libraries/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/Libraries//
+infodir = ${prefix}/Library/info
+mandir = ${prefix}/Library/man
+includedir = ${prefix}/Headers//
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/gimp-print
+pkglibdir = $(libdir)/gimp-print
+pkgincludedir = $(includedir)/gimp-print
+
+top_builddir = ../..
+
+ACLOCAL = aclocal -I src/main
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/ginstall -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+ALL_LINGUAS = en_GB sv no fr da pl sk el nl es pt de ja cs nb uk hu
+AS = @AS@
+AWK = gawk
+BISON_PROG = /usr/bin/bison
+BUILD_INCLUDED_LIBINTL = no
+CATALOGS = en_GB.gmo sv.gmo no.gmo fr.gmo da.gmo pl.gmo sk.gmo el.gmo nl.gmo es.gmo pt.gmo de.gmo ja.gmo cs.gmo nb.gmo uk.gmo hu.gmo
+CATOBJEXT = .gmo
+CC = gcc
+CONVERT = /usr/X11R6/bin/convert
+CUPS_BACKEND_BIN = $(CUPS_BACKEND_BIN)
+CUPS_BIN = $(CUPS_BIN)
+CUPS_CFLAGS =
+CUPS_CONF = $(CUPS_CONF)
+CUPS_CONFIG = /usr/bin/cups-config
+CUPS_FILTER_BIN = $(CUPS_FILTER_BIN)
+CUPS_INSTALL =
+CUPS_LIBS = -Wl,-rpath,/usr/lib -lcupsimage -lcups -lssl -lcrypto -lnsl -lcrypt
+CUPS_MAN = $(CUPS_MAN)
+CUPS_NOINST_BIN = $(CUPS_NOINST_BIN)
+CUPS_PKG = $(CUPS_PKG)
+CUPS_PPD_PS_LEVEL = 2
+DATADIRNAME = share
+DB2HTML = /usr/bin/db2html
+DB2PDF = /usr/bin/db2pdf
+DB2PS = /usr/bin/db2ps
+DLLTOOL = @DLLTOOL@
+DVIPDF = /usr/local/Tools/dvipdf
+DVIPS = /usr/bin/dvips
+ECHO = echo
+ESCPUTIL_BIN = $(ESCPUTIL_BIN)
+ESCPUTIL_MAN = $(ESCPUTIL_MAN)
+EXEEXT =
+FOOMATIC_3_NOINST_BIN =
+FOOMATIC_CONFIGURE = /usr/local/bin/foomatic-configure
+FOOMATIC_INSTALL =
+FOOMATIC_KITLOAD = /usr/local/sbin/foomatic-kitload
+FOOMATIC_NOINST_BIN = $(FOOMATIC_NOINST_BIN)
+FOOMATIC_OLDIDS_NOINST_BIN = $(FOOMATIC_OLDIDS_NOINST_BIN)
+FOOMATIC_PPDFILE =
+GENCAT = gencat
+GIMPPRINT_BINARY_AGE = 1
+GIMPPRINT_CFLAGS =
+GIMPPRINT_CURRENT_INTERFACE = 2
+GIMPPRINT_DEPLIBS = -lm
+GIMPPRINT_INTERFACE_AGE = 3
+GIMPPRINT_LIBS = -lgimpprint
+GIMPPRINT_MAJOR_VERSION = 4
+GIMPPRINT_MICRO_VERSION = 7
+GIMPPRINT_MINOR_VERSION = 2
+GIMPPRINT_VERSION = 4.2.7
+GIMPTOOL = /usr/local/Tools/gimptool
+GIMPTOOL_CHECK = /usr/local/Tools/gimptool
+GIMP_BIN = $(GIMP_BIN)
+GIMP_CFLAGS = -I/usr/local/Headers// -I/opt/gnome/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include
+GIMP_CFLAGS_NOUI = -I/usr/local/Headers// -I/usr/include/glib-1.2 -I/usr/lib/glib/include
+GIMP_DATA_DIR = /usr/local/Libraries/share/gimp/1.2
+GIMP_LIBS = -L/usr/local/Libraries// -lgimpui -lgimp -L/opt/gnome/lib -L/usr/X11R6/lib -lgtk -lgdk -L/usr/lib -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
+GIMP_LIBS_NOUI = -L/usr/local/Libraries// -lgimp -L/usr/lib -lglib
+GIMP_PLUGIN_DIR = /usr/local/Libraries///gimp/1.2
+GLIBC21 = yes
+GMOFILES = en_GB.gmo sv.gmo no.gmo fr.gmo da.gmo pl.gmo sk.gmo el.gmo nl.gmo es.gmo pt.gmo de.gmo ja.gmo cs.gmo nb.gmo uk.gmo hu.gmo
+GMSGFMT = /usr/bin/msgfmt
+GNUCFLAGS = -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -pedantic
+IJS_CFLAGS = -I/usr/local/Headers///ijs
+IJS_CONFIG = /usr/local/Tools/ijs-config
+IJS_INSTALL =
+IJS_LIBS = -L/usr/local/Libraries// -lijs
+INSTOBJEXT = .mo
+INTLBISON = :
+INTLLIBS =
+INTLOBJS =
+INTL_LIBTOOL_SUFFIX_PREFIX =
+LEX = flex
+LIBGIMPPRINT_LIBS = $(top_builddir)/src/main/libgimpprint.la
+LIBICONV =
+LIBM = -lm
+LIBREADLINE_DEPS = -lreadline -lncurses
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBTOOL_DEPS = scripts/ltmain.sh
+LN_S = ln -s
+LTALLOCA =
+LTLIBOBJS = xgetcwd.lo xmalloc.lo
+LT_AGE = 1
+LT_CURRENT = 2
+LT_RELEASE = 4.2
+LT_REVISION = 3
+MAINT =
+MAINTAINER_CFLAGS =
+MAIN_BIN =
+MAIN_DAT =
+MAIN_MAN =
+MAIN_SCR =
+MAKEINFO = makeinfo
+MKINSTALLDIRS = scripts/mkinstalldirs
+MSGFMT = /usr/bin/msgfmt
+OBJDUMP = @OBJDUMP@
+OBJEXT = o
+PACKAGE = gimp-print
+PERL = /usr/bin/perl
+PLUG_IN_PATH = admin-bin
+POFILES = en_GB.po sv.po no.po fr.po da.po pl.po sk.po el.po nl.po es.po pt.po de.po ja.po cs.po nb.po uk.po hu.po
+POSUB = po
+PRINT_VASPRINTF =
+RANLIB = ranlib
+RELEASE_DATE = 15 Jul 2004
+RM = rm
+SAMPLE_IMAGES = $(SAMPLE_IMAGES)
+STRIP = strip
+TESTPATTERN_BIN =
+TEST_BIN = $(TEST_BIN)
+TEXI2HTML = /usr/bin/texi2html
+USER_GUIDE = $(USER_GUIDE)
+USE_INCLUDED_LIBINTL = no
+USE_NLS = yes
+VERSION = 4.2.7
+YACC = bison -y
+YACC_PROG =
+cups_bindir = /usr/local/bin
+cups_conf_datadir = /usr/share/cups
+cups_conf_serverbin = /usr/lib/cups
+cups_conf_serverroot = /etc/cups
+cups_exec_prefix = /usr/local
+cups_prefix = /usr/local
+gimp_plug_indir = /usr/local/Libraries///gimp/1.2/plug-ins
+gimpprint_cflags =
+gimpprint_libs = -lgimpprint -lm
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+MAINCODE = canon.c color.c dither.c escp2.c escp2-data.c lexmark.c pcl.c printers.c ps.c util.c weave.c dither-matrices.c
+
+
+MAINHEADERS = print.h print-internal.h print-intl-internal.h quickmatrix257.h ran.367.179.h ran.509.131.h print-dither.h print-escp2.h
+
+
+MAINFILES = $(MAINCODE) $(MAINHEADERS)
+#ALL_LOCAL_DEPS = $(srcdir)/$(addprefix gdevstp-,$(MAINCODE)) $(srcdir)/$(addprefix gdevstp-,$(MAINHEADERS))
+ALL_LOCAL_DEPS =
+
+GHCODE = -e 's/print-printers.c/gdevstp-printers.c/' -e 's/^\\\#include "\(gimp\-\)*\(.*\)\.h"$$/\\\#include "gdevstp-\2.h"/' -e 's/^\\\#include <gimp-print\/gimp-print\(.*\)\.h>$$/\\\#include "gdevstp-print\1.h"/'
+
+
+CLEANFILES = $(srcdir)/gdevstp-printers.c $(srcdir)/gdevstp-ran.367.179.h $(srcdir)/gdevstp-ran.509.131.h $(srcdir)/gdevstp-color.c $(srcdir)/gdevstp-print.h $(srcdir)/gdevstp-print-internal.h $(srcdir)/gdevstp-print-intl-internal.h $(srcdir)/gdevstp-quickmatrix257.h $(srcdir)/gdevstp-util.c $(srcdir)/gdevstp-weave.c $(srcdir)/gdevstp-canon.c $(srcdir)/gdevstp-dither.c $(srcdir)/gdevstp-print-dither.h $(srcdir)/gdevstp-dither-matrices.c $(srcdir)/gdevstp-escp2.c $(srcdir)/gdevstp-print-escp2.h $(srcdir)/gdevstp-escp2-data.c $(srcdir)/gdevstp-lexmark.c $(srcdir)/gdevstp-pcl.c $(srcdir)/gdevstp-ps.c
+
+
+# End of old compatability cruft
+
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = COPYING Makefile Makefile.am README README.bsd contrib.mak.addon.in contrib.mak.addon.old debian-patch debian-patch-stp devs.mak.addon-5.10 gdevstp.c
+
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = -I/usr/local/Headers///ijs -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/intl $(LIBGIMPPRINT_CFLAGS)
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = -L/usr/local/Libraries// -lijs -lz $(INTLLIBS)
+
+IJS_BIN = ijsgimpprint
+
+bin_PROGRAMS = $(IJS_BIN)
+
+EXTRA_PROGRAMS = ijsgimpprint
+
+ijsgimpprint_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+ijsgimpprint_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = contrib.mak.addon
+bin_PROGRAMS = $(IJS_BIN)
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I../..
+CPPFLAGS =
+LDFLAGS =
+ijsgimpprint_SOURCES = ijsgimpprint.c
+ijsgimpprint_OBJECTS = ijsgimpprint.$(OBJEXT)
+ijsgimpprint_LDFLAGS =
+CFLAGS = -g -O2
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = README COPYING Makefile.am Makefile.in \
+contrib.mak.addon.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+DEP_FILES = .deps/ijsgimpprint.P
+SOURCES = ijsgimpprint.c
+OBJECTS = ijsgimpprint.$(OBJEXT)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ghost/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+contrib.mak.addon: $(top_builddir)/config.status contrib.mak.addon.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+ijsgimpprint$(EXEEXT): $(ijsgimpprint_OBJECTS) $(ijsgimpprint_DEPENDENCIES)
+ @rm -f ijsgimpprint$(EXEEXT)
+ $(LINK) $(ijsgimpprint_LDFLAGS) $(ijsgimpprint_OBJECTS) $(ijsgimpprint_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/ghost
+
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/ghost/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+
+DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
+
+-include $(DEP_FILES)
+
+mostlyclean-depend:
+
+clean-depend:
+
+distclean-depend:
+ -rm -rf .deps
+
+maintainer-clean-depend:
+
+%.o: %.c
+ @echo '$(COMPILE) -c $<'; \
+ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-cp .deps/$(*F).pp .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm .deps/$(*F).pp
+
+%.lo: %.c
+ @echo '$(LTCOMPILE) -c $<'; \
+ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+ < .deps/$(*F).pp > .deps/$(*F).P; \
+ tr ' ' '\012' < .deps/$(*F).pp \
+ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+ >> .deps/$(*F).P; \
+ rm -f .deps/$(*F).pp
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) all-local
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-depend clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
+ distclean-tags distclean-depend distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-depend \
+ maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir \
+mostlyclean-depend distclean-depend clean-depend \
+maintainer-clean-depend info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-local all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+
+
+all-local: $(ALL_LOCAL_DEPS)
+
+$(srcdir)/gdevstp-print.h: $(top_srcdir)/include/gimp-print/gimp-print.h
+ sed $(GHCODE) $< > $(srcdir)/$@
+
+$(srcdir)/gdevstp-print-internal.h: $(top_srcdir)/src/main/gimp-print-internal.h
+ echo '#define VERSION "4.2.7"' > $(srcdir)/$@
+ echo '#define RELEASE_DATE "15 Jul 2004"' >> $(srcdir)/$@
+ sed $(GHCODE) $< >> $(srcdir)/$@
+
+$(srcdir)/gdevstp-print-intl-internal.h: $(top_srcdir)/include/gimp-print/gimp-print-intl-internal.h
+ sed $(GHCODE) $< > $(srcdir)/$@
+
+gdevstp-%.h: $(srcdir)/../main/%.h Makefile
+ cd $(srcdir) ; sed $(GHCODE) $< > $@
+
+gdevstp-printers.c: ../main/print-printers.c
+ sed $(GHCODE) $< > $@
+
+gdevstp-%: $(srcdir)/../main/print-% Makefile
+ cd $(srcdir) ; sed $(GHCODE) $< > $@
+
+../main/print-printers.c: ../printdef/printdef $(srcdir)/../main/printers.xml
+ ../printdef/printdef < $(srcdir)/../main/printers.xml > $(top_builddir)/src/main/print-printers.c
+
+printdefl.o: printdefy.o
+
+../printdef/printdef: $(addprefix ../printdef/, printdefl.l printdefy.y printdef.h)
+ cd ../printdef ; \
+ $(MAKE)
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../main ; \
+ $(MAKE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/ghost/Makefile.am b/src/ghost/Makefile.am
index 9a34a59..a2e3e7c 100644
--- a/src/ghost/Makefile.am
+++ b/src/ghost/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.17 2001/10/17 12:12:07 rlk Exp $
+## $Id: Makefile.am,v 1.17.2.6 2002/06/05 23:52:05 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -27,9 +27,27 @@ MAINT_CHARSET = latin1
## Variables
-MAINCODE = canon.c color.c dither.c escp2.c lexmark.c pcl.c printers.c ps.c util.c weave.c dither-matrices.c
-
-MAINHEADERS = print.h print-internal.h print-intl-internal.h quickmatrix257.h ran.367.179.h ran.509.131.h
+MAINCODE = canon.c \
+ color.c \
+ dither.c \
+ escp2.c \
+ escp2-data.c \
+ lexmark.c \
+ pcl.c \
+ printers.c \
+ ps.c \
+ util.c \
+ weave.c \
+ dither-matrices.c
+
+MAINHEADERS = print.h \
+ print-internal.h \
+ print-intl-internal.h \
+ quickmatrix257.h \
+ ran.367.179.h \
+ ran.509.131.h \
+ print-dither.h \
+ print-escp2.h
MAINFILES = $(MAINCODE) $(MAINHEADERS)
@@ -44,13 +62,17 @@ endif
all-local: $(ALL_LOCAL_DEPS)
-GHCODE = -e 's/print-printers.c/gdevstp-printers.c/' -e 's/^\\\#include "\(gimp\-\)*\(.*\)\.h"$$/\\\#include "gdevstp-\2.h"/' -e 's/^\\\#include <gimp-print\/gimp-print\(.*\)\.h>$$/\\\#include "gdevstp-print\1.h"/'
+GHCODE = -e 's/print-printers.c/gdevstp-printers.c/' \
+ -e 's/^\\\#include "\(gimp\-\)*\(.*\)\.h"$$/\\\#include "gdevstp-\2.h"/' \
+ -e 's/^\\\#include <gimp-print\/gimp-print\(.*\)\.h>$$/\\\#include "gdevstp-print\1.h"/'
$(srcdir)/gdevstp-print.h: $(top_srcdir)/include/gimp-print/gimp-print.h
sed $(GHCODE) $< > $(srcdir)/$@
$(srcdir)/gdevstp-print-internal.h: $(top_srcdir)/src/main/gimp-print-internal.h
- sed $(GHCODE) $< > $(srcdir)/$@
+ echo '#define VERSION "@VERSION@"' > $(srcdir)/$@
+ echo '#define RELEASE_DATE "@RELEASE_DATE@"' >> $(srcdir)/$@
+ sed $(GHCODE) $< >> $(srcdir)/$@
$(srcdir)/gdevstp-print-intl-internal.h: $(top_srcdir)/include/gimp-print/gimp-print-intl-internal.h
sed $(GHCODE) $< > $(srcdir)/$@
@@ -89,8 +111,11 @@ CLEANFILES = \
$(srcdir)/gdevstp-weave.c \
$(srcdir)/gdevstp-canon.c \
$(srcdir)/gdevstp-dither.c \
+ $(srcdir)/gdevstp-print-dither.h \
$(srcdir)/gdevstp-dither-matrices.c \
$(srcdir)/gdevstp-escp2.c \
+ $(srcdir)/gdevstp-print-escp2.h \
+ $(srcdir)/gdevstp-escp2-data.c \
$(srcdir)/gdevstp-lexmark.c \
$(srcdir)/gdevstp-pcl.c \
$(srcdir)/gdevstp-ps.c
@@ -110,4 +135,26 @@ EXTRA_DIST = \
debian-patch \
debian-patch-stp \
devs.mak.addon-5.10 \
- gdevstp.c \
+ gdevstp.c
+
+## Variables
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @IJS_CFLAGS@ @INCLUDES@ $(LIBGIMPPRINT_CFLAGS)
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = @IJS_LIBS@ @LIBS@ $(INTLLIBS)
+
+## Programs
+
+IJS_BIN = ijsgimpprint
+
+bin_PROGRAMS = @IJS_BIN@
+
+EXTRA_PROGRAMS = ijsgimpprint
+
+ijsgimpprint_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+ijsgimpprint_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../main ; \
+ $(MAKE)
diff --git a/src/ghost/Makefile.in b/src/ghost/Makefile.in
new file mode 100644
index 0000000..18819dd
--- /dev/null
+++ b/src/ghost/Makefile.in
@@ -0,0 +1,508 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+MAINCODE = canon.c color.c dither.c escp2.c escp2-data.c lexmark.c pcl.c printers.c ps.c util.c weave.c dither-matrices.c
+
+
+MAINHEADERS = print.h print-internal.h print-intl-internal.h quickmatrix257.h ran.367.179.h ran.509.131.h print-dither.h print-escp2.h
+
+
+MAINFILES = $(MAINCODE) $(MAINHEADERS)
+@BUILD_GHOST_TRUE@ALL_LOCAL_DEPS = $(srcdir)/$(addprefix gdevstp-,$(MAINCODE)) $(srcdir)/$(addprefix gdevstp-,$(MAINHEADERS))
+@BUILD_GHOST_FALSE@ALL_LOCAL_DEPS =
+
+GHCODE = -e 's/print-printers.c/gdevstp-printers.c/' -e 's/^\\\#include "\(gimp\-\)*\(.*\)\.h"$$/\\\#include "gdevstp-\2.h"/' -e 's/^\\\#include <gimp-print\/gimp-print\(.*\)\.h>$$/\\\#include "gdevstp-print\1.h"/'
+
+
+CLEANFILES = $(srcdir)/gdevstp-printers.c $(srcdir)/gdevstp-ran.367.179.h $(srcdir)/gdevstp-ran.509.131.h $(srcdir)/gdevstp-color.c $(srcdir)/gdevstp-print.h $(srcdir)/gdevstp-print-internal.h $(srcdir)/gdevstp-print-intl-internal.h $(srcdir)/gdevstp-quickmatrix257.h $(srcdir)/gdevstp-util.c $(srcdir)/gdevstp-weave.c $(srcdir)/gdevstp-canon.c $(srcdir)/gdevstp-dither.c $(srcdir)/gdevstp-print-dither.h $(srcdir)/gdevstp-dither-matrices.c $(srcdir)/gdevstp-escp2.c $(srcdir)/gdevstp-print-escp2.h $(srcdir)/gdevstp-escp2-data.c $(srcdir)/gdevstp-lexmark.c $(srcdir)/gdevstp-pcl.c $(srcdir)/gdevstp-ps.c
+
+
+# End of old compatability cruft
+
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = COPYING Makefile Makefile.am README README.bsd contrib.mak.addon.in contrib.mak.addon.old debian-patch debian-patch-stp devs.mak.addon-5.10 gdevstp.c
+
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @IJS_CFLAGS@ @INCLUDES@ $(LIBGIMPPRINT_CFLAGS)
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = @IJS_LIBS@ @LIBS@ $(INTLLIBS)
+
+IJS_BIN = ijsgimpprint
+
+bin_PROGRAMS = @IJS_BIN@
+
+EXTRA_PROGRAMS = ijsgimpprint
+
+ijsgimpprint_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+ijsgimpprint_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = contrib.mak.addon
+bin_PROGRAMS = @IJS_BIN@
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+ijsgimpprint_SOURCES = ijsgimpprint.c
+ijsgimpprint_OBJECTS = ijsgimpprint.$(OBJEXT)
+ijsgimpprint_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = README COPYING Makefile.am Makefile.in \
+contrib.mak.addon.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = ijsgimpprint.c
+OBJECTS = ijsgimpprint.$(OBJEXT)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/ghost/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+contrib.mak.addon: $(top_builddir)/config.status contrib.mak.addon.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+ijsgimpprint$(EXEEXT): $(ijsgimpprint_OBJECTS) $(ijsgimpprint_DEPENDENCIES)
+ @rm -f ijsgimpprint$(EXEEXT)
+ $(LINK) $(ijsgimpprint_LDFLAGS) $(ijsgimpprint_OBJECTS) $(ijsgimpprint_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/ghost
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ijsgimpprint.o: ijsgimpprint.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) all-local
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
+ distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-local all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+all-local: $(ALL_LOCAL_DEPS)
+
+$(srcdir)/gdevstp-print.h: $(top_srcdir)/include/gimp-print/gimp-print.h
+ sed $(GHCODE) $< > $(srcdir)/$@
+
+$(srcdir)/gdevstp-print-internal.h: $(top_srcdir)/src/main/gimp-print-internal.h
+ echo '#define VERSION "@VERSION@"' > $(srcdir)/$@
+ echo '#define RELEASE_DATE "@RELEASE_DATE@"' >> $(srcdir)/$@
+ sed $(GHCODE) $< >> $(srcdir)/$@
+
+$(srcdir)/gdevstp-print-intl-internal.h: $(top_srcdir)/include/gimp-print/gimp-print-intl-internal.h
+ sed $(GHCODE) $< > $(srcdir)/$@
+
+gdevstp-%.h: $(srcdir)/../main/%.h Makefile
+ cd $(srcdir) ; sed $(GHCODE) $< > $@
+
+gdevstp-printers.c: ../main/print-printers.c
+ sed $(GHCODE) $< > $@
+
+gdevstp-%: $(srcdir)/../main/print-% Makefile
+ cd $(srcdir) ; sed $(GHCODE) $< > $@
+
+../main/print-printers.c: ../printdef/printdef $(srcdir)/../main/printers.xml
+ ../printdef/printdef < $(srcdir)/../main/printers.xml > $(top_builddir)/src/main/print-printers.c
+
+printdefl.o: printdefy.o
+
+../printdef/printdef: $(addprefix ../printdef/, printdefl.l printdefy.y printdef.h)
+ cd ../printdef ; \
+ $(MAKE)
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../main ; \
+ $(MAKE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/ghost/README b/src/ghost/README
index a9193b6..22e7f82 100644
--- a/src/ghost/README
+++ b/src/ghost/README
@@ -1,30 +1,61 @@
INTRODUCTION:
-------------
- Gimp-Print 4.2 includes an associated Ghostscript driver, which is
- named `stp'. That name originally referred to Epson Stylus Photo
- printers; this is the first Ghostscript driver which supported those
- printers with high quality. The same driver now supports many Canon,
- HP, and Lexmark printers.
-
- This driver works with GhostScript 5.10, 5.50, and 6.51. It should
- work with any later releases on the 6.5x GNU Ghostscript line, such
- as 6.52XS. Due to incompatibilities between the Aladdin Free Public
- License (AFPL) and the GNU General Public License (GPL), this driver
- may not be combined and distributed with versions of GhostScript not
- covered by the GPL. We will not fix bugs reported against
- combinations of this driver with AFPL-only versions of GhostScript.
+ Gimp-Print 4.2 includes an associated Ghostscript driver, which is
+ named `stp'. That name originally referred to Epson Stylus Photo
+ printers; this is the first Ghostscript driver which supported those
+ printers with high quality. The same driver now supports many Canon,
+ HP, and Lexmark printers.
+
+ This driver works with GhostScript 5.10, 5.50 and 6.51. It should
+ work with any later releases on the 6.5x GNU Ghostscript line, such
+ as 6.52. Due to incompatibilities between the Aladdin Free Public
+ License (AFPL) and the GNU General Public License (GPL), this driver
+ may not be combined and distributed with versions of GhostScript not
+ covered by the GPL. We will not fix bugs reported against
+ combinations of this driver with AFPL-only versions of GhostScript.
+
+ GNU Ghostscript 6.53 and 7.05 and ESP Ghostscript 7.05 contain a
+ version of the Gimp-Print driver based on the Gimp-Print 4.2.0
+ release with a bug fix. Building Gimp-Print is much simpler with
+ Ghostscript 6.53 and 7.05 for that reason.
+
+ Gimp-Print includes another driver based on the new IJS protocol.
+ IJS is an initiative to improve the quality and ease of use of
+ printing with Ghostscript. It permits adding or upgrading drivers
+ without recompiling Ghostscript. An IJS driver runs in a separate
+ process that communicates with Ghostscript via an IPC channel. The
+ Gimp-Print IJS driver may be used with AFPL Ghostscript, as it runs
+ in a separate process.
+
+ The original stp driver will not be maintained beyond Gimp-Print
+ 4.2; it will be phased out and replaced by the IJS driver
+ (ijsgimpprint). It currently has all of the capabilities of the stp
+ driver, but it is perhaps not as mature.
+
+ IJS support was incorporated into Ghostscript in GNU Ghostscript
+ 6.53 and AFPL Ghostscript 7.04, as IJS 0.32.
+
+ Finally, the distribution also includes a utility named "escputil"
+ that performs many utility functions, such as head cleaning, nozzle
+ alignment, and the like, for Epson Stylus printers. This is
+ normally compiled by "make" and installed by "make install".
AUTHOR:
-------
- This Ghostscript frontend was originally written by Henryk Richter
- (buggs@comlab.uni-rostock.de); it since has been fully integrated
- into gimp-print. Gimp-Print itself was originally written by Michael
- Sweet <mike@easysw.com>, who released up to version 2.0; Robert
- Krawitz released version 3.0. The gimp-print development team
- (http://gimp-print.sourceforge.net) now maintains the entire package.
+ The Ghostscript stp driver was originally written by Henryk Richter
+ (buggs@comlab.uni-rostock.de), and was integrated into Gimp-Print
+ during the 3.1 development series. Gimp-Print itself was originally
+ written by Michael Sweet <mike@easysw.com>, who released up to
+ version 2.0; Robert Krawitz released version 3.0. The gimp-print
+ development team (http://gimp-print.sourceforge.net) now maintains
+ the entire package.
+
+ The IJS driver was originally written by Russell Lang, and
+ incorporated into Gimp-Print in early 2002. This driver corresponds
+ with the IJS protocol 0.32.
LICENSE:
@@ -45,8 +76,41 @@ LICENSE:
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-BUILD AND INSTALLATION:
------ --- -------------
+BUILD AND INSTALLATION OF THE STP DRIVER:
+----- --- ------------ -- --- --- -------
+
+For GNU Ghostscript 6.53 and 7.05, and ESP Ghostscript 7.05
+(recommended):
+
+ Building Gimp-Print for GNU Ghostscript 6.53 and 7.05 and ESP
+ Ghostscript 7.05 is much simpler, as the driver is already in the
+ Ghostscript package. It is sufficient to build and install the
+ Gimp-Print library and Ghostscript.
+
+1) First build and install the core Gimp-Print library. Run
+
+ ./configure
+ make
+ make install
+
+ in the top level directory (../.. from here).
+
+ "make install" typically needs to be run as root. You may also
+ need to run "ldconfig" as root following "make install".
+
+ You may optionally run
+
+ ./configure --without-gimp
+
+ if you do not wish to build the Gimp Print plugin.
+
+2) In the Ghostscript source directory, run
+
+ ./configure --with-gimp-print
+ make
+ make install
+
+For Ghostscript 5.10, 5.50, 6.51, or 6.52:
1) Get a recent Ghostscript (5.10, 5.50, or 6.51 or its successors)
and prepare the sources as described in the documentation (don`t
@@ -153,10 +217,64 @@ BUILD AND INSTALLATION:
driver named "stp". Check this by calling "gs -h" with the newly
compiled Ghostscript.
-The distribution includes a utility named "escputil" that performs
-many utility functions, such as head cleaning, nozzle alignment, and
-the like, for Epson Stylus printers. This is normally compiled by
-"make" and installed by "make install".
+
+BUILD AND INSTALLATION OF THE IJS GIMPPRINT DRIVER:
+----- --- ------------ -- --- --- --------- -------
+
+ GNU Ghostscript 6.53 and beyond, and AFPL Ghostscript 7.04 and
+ beyond, are required in order to use this driver. These
+ instructions correspond to GNU Ghostscript 6.53.
+
+ You must first build Ghostscript itself with support for the IJS
+ driver. This is done as follows, within the Ghostscript source
+ directory:
+
+ cd ghostscript-6.53
+ ./configure --with-ijs
+ make
+ make install
+
+ The Ghostscript installation (as of 6.53, and likely 7.04) does not
+ install certain files that are required to build the IJS driver.
+ This should be fixed in future Ghostscript releases. To build and
+ install these files, you need to have the "aclocal", "autoconf",
+ and "automake" packages installed. These are not normally
+ installed by default on most Linux and UNIX systems. You may
+ install them from your distribution, or download them from
+ ftp.gnu.org. After these packages are installed, run:
+
+ cd ghostscript-6.53/ijs
+ autoconf
+ ./configure
+ make
+ make install
+
+ You will perhaps get error messages during the autoconf process.
+ The important point is that the configure works correctly. This
+ will install the necessary header files and libraries.
+
+ After the IJS core files and Ghostscript are installed, you can
+ build and install the IJS driver within the Gimp-Print package.
+ This is done as follows, within the Gimp-Print source directory:
+
+ ./configure --with-ijs
+ make
+ make install
+
+ or
+
+ ./configure --with-ijs --with-foomatic
+ make
+ make install
+
+ if you also want to have the Foomatic data for the IJS driver
+ (see the README file in the main directory of this package).
+
+ If you do not wish to build the Gimp Print plugin, you may run
+
+ ./configure --with-ijs --without-gimp
+
+ ./configure --with-ijs --with-foomatic --without-gimp
DEBIAN:
@@ -248,8 +366,8 @@ If you know how to fix this, please update this README.
OPTIONS:
--------
-Overview:
----------
+Overview for the STP Driver:
+-------- --- --- --- -------
Options for the stp driver are given in normal Ghostscript
manner. The resolution of the image calculated by Ghostscript is not
@@ -258,19 +376,58 @@ possible to specify "-r360" to gs and print the output in 1440x720
dpi (see below for driver parameter). The result is a somewhat faster
operation of the driver.
+The device name is "stp" (-sDEVICE=stp)
+
The driver will not permit use of invalid settings.
The options for this driver are very complex. We strongly recommend
use of a printer management system such as Foomatic rather than
-configuring a spooler manually with this driver.
+configuring a spooler manually with this driver. The driver name used
+by Foomatic is "gimp-print".
+
+Overview for the IJS Driver:
+-------- --- --- --- -------
+
+Most options for the ijsgimpprint driver are similar to those for the
+stp driver. The major difference is that most of the Gimp-Print
+specific options are bundled together into a single option that is
+passed in as a special "-sIjsParams" parameter, and the normal
+Ghostscript "-s" and "-d" flags, indicating whether an option is a
+string or a number, are not used in this special parameter.
+
+The device name is "ijs" (-sDEVICE=ijs). In addition, the location of
+the driver program must be specified. This will typically be
+/usr/local/bin/ijsgimpprint; the parameter in this case is
+-sIjsServer=/usr/local/bin/ijsgimpprint .
+
+Also, -dIjsUseOutputFD should be specified whenever output from
+Ghostscript will go to stdout or into a pipe. It may be specified in
+all other cases, with only a slight performance degradation.
+
+The -sIjsParams parameter contains a single string containing a
+comma-separated list of sub-options:
+
+-sIjsParams=Option1=Value1,Option2=Value2
+
+and so forth.
+
+The options for this driver are very complex. We strongly recommend
+use of a printer management system such as Foomatic rather than
+configuring a spooler manually with this driver. The driver name used
+by Foomatic is "gimp-print-ijs".
Printer Model Selection:
------- ----- ----------
--sModel=name
+STP: -sModel=name
+IJS: -sDeviceManufacturer=vendor -sDeviceModel=name
-This option must be supplied. There is no default.
+This option must be supplied. There is no default. The IJS driver
+requires the vendor (it's part of the protocol), but the ijsgimpprint
+driver ignores it. It should be CANON, EPSON, LEXMARK, or
+HEWLETT-PACKARD. The value of the -sDeviceModel parameter is the same
+as the value of the -sModel parameter in the stp driver.
bjc-30 CANON BJC 30
bjc-50 CANON BJC 50
@@ -287,9 +444,12 @@ bjc-4300 CANON BJC 4300
bjc-4400 CANON BJC 4400 photo
bjc-6000 CANON BJC 6000
bjc-6100 CANON BJC 6100
+bjc-6200 CANON BJC 6200
+bjc-6500 CANON BJC 6500
bjc-7000 CANON BJC 7000
bjc-7100 CANON BJC 7100
bjc-8200 CANON BJC 8200
+bjc-s200 CANON S200
bjc-s400 CANON S400
bjc-s450 CANON S450
bjc-s800 CANON S800
@@ -298,9 +458,23 @@ escp2-c20sx EPSON Stylus C20SX
escp2-c20ux EPSON Stylus C20UX
escp2-c40sx EPSON Stylus C40SX
escp2-c40ux EPSON Stylus C40UX
+escp2-c41sx EPSON Stylus C41SX
+escp2-c41ux EPSON Stylus C41UX
+escp2-c42sx EPSON Stylus C42SX
+escp2-c42ux EPSON Stylus C42UX
+escp2-c43sx EPSON Stylus C43SX
+escp2-c43ux EPSON Stylus C43UX
+escp2-c44sx EPSON Stylus C44SX
+escp2-c44ux EPSON Stylus C44UX
+escp2-c50 EPSON Stylus C50
escp2-c60 EPSON Stylus C60
+escp2-c61 EPSON Stylus C61
+escp2-c62 EPSON Stylus C62
escp2-c70 EPSON Stylus C70
escp2-c80 EPSON Stylus C80
+escp2-c82 EPSON Stylus C82
+escp2-c83 EPSON Stylus C83
+escp2-c84 EPSON Stylus C84
escp2 EPSON Stylus Color
escp2-pro EPSON Stylus Color Pro
escp2-pro-xl EPSON Stylus Color Pro XL
@@ -332,6 +506,7 @@ escp2-3000 EPSON Stylus Color 3000
escp2-photo EPSON Stylus Photo
escp2-700 EPSON Stylus Photo 700
escp2-ex EPSON Stylus Photo EX
+escp2-ex3 EPSON Stylus Photo EX3
escp2-720 EPSON Stylus Photo 720
escp2-750 EPSON Stylus Photo 750
escp2-780 EPSON Stylus Photo 780
@@ -339,24 +514,84 @@ escp2-785 EPSON Stylus Photo 785EPX
escp2-790 EPSON Stylus Photo 790
escp2-810 EPSON Stylus Photo 810
escp2-820 EPSON Stylus Photo 820
+escp2-825 EPSON Stylus Photo 825
+escp2-830 EPSON Stylus Photo 830
escp2-870 EPSON Stylus Photo 870
escp2-875 EPSON Stylus Photo 875
escp2-890 EPSON Stylus Photo 890
escp2-895 EPSON Stylus Photo 895
+escp2-ph900 EPSON Stylus Photo 900
+escp2-915 EPSON Stylus Photo 915
+escp2-925 EPSON Stylus Photo 925
+escp2-950 EPSON Stylus Photo 950
+escp2-960 EPSON Stylus Photo 960
escp2-1200 EPSON Stylus Photo 1200
escp2-1270 EPSON Stylus Photo 1270
escp2-1280 EPSON Stylus Photo 1280
escp2-1290 EPSON Stylus Photo 1290
escp2-2000 EPSON Stylus Photo 2000P
+escp2-2100 EPSON Stylus Photo 2100
+escp2-2200 EPSON Stylus Photo 2200
escp2-5000 EPSON Stylus Pro 5000
escp2-5500 EPSON Stylus Pro 5500
escp2-7000 EPSON Stylus Pro 7000
escp2-7500 EPSON Stylus Pro 7500
+escp2-7600 EPSON Stylus Pro 7600
escp2-9000 EPSON Stylus Pro 9000
escp2-9500 EPSON Stylus Pro 9500
+escp2-9600 EPSON Stylus Pro 9600
escp2-10000 EPSON Stylus Pro 10000
escp2-scan2000 EPSON Stylus Scan 2000
escp2-scan2500 EPSON Stylus Scan 2500
+escp2-cx3200 EPSON Stylus CX-3200
+escp2-cx5200 EPSON Stylus CX-5200
+escp2-cl700 EPSON CL-700
+escp2-cl750 EPSON CL-750
+escp2-em900c EPSON EM-900C
+escp2-em930c EPSON EM-930C
+escp2-mc10000 EPSON MC-10000
+escp2-mc2000 EPSON MC-2000
+escp2-mc5000 EPSON MC-5000
+escp2-mc7000 EPSON MC-7000
+escp2-mc9000 EPSON MC-9000
+escp2-mj930c EPSON MJ-930C
+escp2-mj5100c EPSON MJ-5100C
+escp2-mj6000c EPSON MJ-6000C
+escp2-mj8000c EPSON MJ-8000C
+escp2-pm10000 EPSON PM-10000
+escp2-pm2000c EPSON PM-2000C
+escp2-pm2200c EPSON PM-2200C
+escp2-pm3000c EPSON PM-3000C
+escp2-pm3300c EPSON PM-3300C
+escp2-pm3500c EPSON PM-3500C
+escp2-pm4000px EPSON PM-4000PX
+escp2-pm5000c EPSON PM-5000C
+escp2-pm7000c EPSON PM-7000C
+escp2-pm700c EPSON PM-700C
+escp2-pm730c EPSON PM-730C
+escp2-pm750c EPSON PM-750C
+escp2-pm760c EPSON PM-760C
+escp2-pm770c EPSON PM-770C
+escp2-pm780c EPSON PM-780C
+escp2-pm790pt EPSON PM-790PT
+escp2-pm800c EPSON PM-800C
+escp2-pm850pt EPSON PM-850PT
+escp2-pm880c EPSON PM-880C
+escp2-pm9000c EPSON PM-9000C
+escp2-pm950c EPSON PM-950C
+escp2-pm970c EPSON PM-970C
+escp2-px7000 EPSON PX-7000
+escp2-px9000 EPSON PX-9000
+pcl-desnj-230 HP DesignJet 230
+pcl-desnj-250 HP DesignJet 250
+pcl-desnj-430 HP DesignJet 430
+pcl-desnj-450 HP DesignJet 450
+pcl-desnj-455 HP DesignJet 455
+pcl-desnj-488 HP DesignJet 488
+pcl-desnj-700 HP DesignJet 700
+pcl-750 HP DesignJet 750C
+pcl-desnj-2500 HP DesignJet 2500
+pcl-desnj-3500 HP DesignJet 3500
pcl-340 HP DeskJet 340
pcl-400 HP DeskJet 400
pcl-500 HP DeskJet 500
@@ -368,7 +603,6 @@ pcl-560 HP DeskJet 560C
pcl-600 HP DeskJet 600/600C (Single Cartridge)
pcl-601 HP DeskJet 600 series (2 Cartridge)
pcl-690 HP DeskJet 690 series (Photo-Ink capable)
-pcl-750 HP DesignJet 750
pcl-810 HP DeskJet 810C
pcl-812 HP DeskJet 812C
pcl-840 HP DeskJet 840C
@@ -392,6 +626,7 @@ pcl-2500 HP DeskJet 2500 series
pcl-2 HP LaserJet II series
pcl-3 HP LaserJet III series
pcl-4 HP LaserJet 4 series
+pcl-4l HP LaserJet 4L
pcl-4v HP LaserJet 4V, 4Si
pcl-5 HP LaserJet 5 series
pcl-5si HP LaserJet 5Si
@@ -400,6 +635,7 @@ lexmark-4076 Lexmark 4076 (PCL printer)
lexmark-z42 Lexmark Z42
lexmark-z43 Lexmark Z43
lexmark-z52 Lexmark Z52
+lexmark-z53 Lexmark Z53
Most or all of the Epson Stylus printers are fully functional. The
others vary. In particular, all of the listed Epson Stylus Photo
@@ -411,7 +647,8 @@ than for others.
Print Resolution Selection:
----- ---------- ----------
--sQuality=quality
+STP: -sQuality=quality
+IJS: -sIjsParams=Quality=quality
The meaning of this is model-specific. Two names are listed for each
resolution; the first (short) name is the value that must be passed to
@@ -436,7 +673,7 @@ perform more passes, printing fewer dots with each pass over the same
line and using different nozzles for each pass. This reduces banding
effects, but requires more time.
-"Microweave" modes use algorithms within the printer to generate the
+"Interleave" modes use algorithms within the printer to generate the
sequence of rows printed. These algorithms generally only work well
at low printing resolutions. Many printers do not support this kind
of printing at resolutions of 720 DPI and above, and some printers
@@ -453,21 +690,21 @@ purposes:
360x120 banded and not very dark).
180 Economy draft output on plain paper (output will not be very
- dark).
+ dark).
360x180 Draft output on plain paper (output will not be solidly
360x240 black); economy draft output on good quality inkjet paper.
360 Standard quality output on plain paper (output will be
- solidly black); draft output on good quality inkjet paper.
+ solidly black); draft output on good quality inkjet paper.
720x360 High quality output on plain paper; standard output on good
- quality inkjet paper.
+ quality inkjet paper.
720 Maximum quality on plain paper; high quality on good inkjet
- paper; proofs on photo-quality paper. On many printers,
- there will be little difference between this and 720x360 on
- plain paper.
+ paper; proofs on photo-quality paper. On many printers,
+ there will be little difference between this and 720x360 on
+ plain paper.
1440x720 High quality on photo paper; use 1440x720 Highest Quality to
reduce microbanding if needed. While this will work on plain
@@ -517,26 +754,26 @@ see the notes at the end of this section.
360dpi 360 DPI (6)
360uni 360 DPI Unidirectional (6)
-360mw 360 DPI Microweave (6, *)
-360mwuni 360 DPI Microweave Unidirectional (6)
-360sw 360 DPI (7, *)
-360swuni 360 DPI Unidirectional (7)
-360hq 360 DPI High Quality (7, 8)
-360hquni 360 DPI High Quality Unidirectional (7, 8)
+360mw 360 DPI Interleave (6, *)
+360mwuni 360 DPI Interleave Unidirectional (6)
+360sw 360 DPI (7, 17, *)
+360swuni 360 DPI Unidirectional (7, 17)
+360hq 360 DPI High Quality (7, 8, 17)
+360hquni 360 DPI High Quality Unidirectional (7, 8, 17)
720x360sw 720 x 360 DPI (9, 10)
720x360swuni 720 x 360 DPI Unidirectional (9, 10)
-720mw 720 DPI Microweave (11)
-720mwuni 720 DPI Microweave Unidirectional (11)
+720mw 720 DPI Interleave (11)
+720mwuni 720 DPI Interleave Unidirectional (11)
720sw 720 DPI (9)
720swuni 720 DPI Unidirectional (9)
720hq 720 DPI High Quality (9)
720hquni 720 DPI High Quality Unidirectional (9)
720hq2 720 DPI Highest Quality (9)
-1440x720mw 1440 x 720 DPI Microweave (12)
-1440x720mwuni 1440 x 720 DPI Microweave Unidirectional (12)
+1440x720mw 1440 x 720 DPI Interleave (12)
+1440x720mwuni 1440 x 720 DPI Interleave Unidirectional (12)
1440x720sw 1440 x 720 DPI (13)
1440x720swuni 1440 x 720 DPI Unidirectional (13, 14)
1440x720hq 1440 x 720 DPI Highest Quality (13)
@@ -544,10 +781,10 @@ see the notes at the end of this section.
2880x720sw 2880 x 720 DPI (15)
2880x720swuni 2880 x 720 DPI Unidirectional (15)
-1440x1440sw 1440 x 1440 DPI (16)
-1440x1440hq2 1440 x 1440 DPI Highest Quality (16)
+1440x1440sw 1440 x 1440 DPI (16)
+1440x1440hq2 1440 x 1440 DPI Highest Quality (16)
-2880x1440sw 2880 x 1440 DPI (16)
+2880x1440sw 2880 x 1440 DPI (16)
(*) This resolution is the default on all printers supporting this
setting.
@@ -557,26 +794,28 @@ see the notes at the end of this section.
660, 670, and 1500, and Stylus Photo, Stylus Photo 700, 720, and
EX.
-(2) Works on printers most that have a basic vertical spacing of 1/90,
+(2) Works on most printers that have a basic vertical spacing of 1/90,
1/180, or 1/360 inch. This includes Stylus Color, Stylus Color
440, 460, 600, 640, 660, 670, 800, 850, 900, 980, 1500, 1520,
3000, and Stylus Photo, Stylus Photo 700, 720 and EX.
-(3) Works on Stylus C70 and C80.
+(3) Works on Stylus C70, C80, and C82; and Stylus Photo 950, 960,
+ 2100, and 2200.
(4) Works on older printers with dot spacing of 1/120 inch. This
includes the Stylus Color Pro, Pro XL, 400, and 500.
(5) Works on newer printers with dot spacing of 1/120 inch. This
- includes the Stylus C20, C40, and C60, the Stylus Color 480, 580,
- 680, 740, 760, 777, 860, 880, 83, and 1160, and the Stylus Photo
- 750, 780, 785, 790, 810, 820, 870, 875, 890, 895, 1270, 1280,
- 1290, and 2000P, and the Stylus Scan 2000.
+ includes the Stylus C20, C40, C41, C42, C60, C61, and C62; the
+ Stylus Color 480, 580, 680, 740, 760, 777, 860, 880, 83, and 1160,
+ and the Stylus Photo 750, 780, 785, 790, 810, 820, 830, 870, 875,
+ 890, 895, 915, 925, 1270, 1280, 1290, and 2000P, and the Stylus
+ Scan 2000 and 2500.
(6) Works on all printers that do not support variable drop sizes.
This includes the Stylus Color, Stylus Color 400, 440, 460, 500,
- 600, 640, 660, 800, 850, 1500, 1520, and 3000, and Stylus Color
- Pro, and Stylus Photo, Stylus Photo 700, and EX.
+ 600, 640, 660, 800, 850, 1500, 1520, and 3000, Stylus Color Pro,
+ Stylus Color Pro XL, and Stylus Photo, Stylus Photo 700, and EX.
(7) Works on all printers that do support variable drop sizes. This
includes all supported Epson Stylus printers except for those
@@ -613,59 +852,100 @@ see the notes at the end of this section.
the Stylus Color 900.
(15) Works on all printers that support 2880x720 DPI. This includes
- the Stylus C60, C70, and C80, the Stylus Color 680, 777, 880, 83,
- and 980, and Stylus Photo 780, 790, 810, 820, 890, 1280, and 1290.
-
-(16) Works on Stylus C70 and Stylus C80. These resolutions are not
- supported by Epson and may not work on all C70 or C80 printers.
-
-
-The Stylus Pro printers (Stylus Pro 5000, 5500, 7000, 7500, 9000,
-9500, and 10000) support additional microweave modes known as Full
-Overlap (FOL), Four Pass, and FOL2. The Stylus Pro 5500, 7500, 9500,
-and 10000 additionally have a mode called MW2. These modes can only
-be used at certain resolutions. Stylus Pro printers support the
+ the Stylus C60, C61, C62, C70, C80, and C82, the Stylus Color 680,
+ 777, 880, 83, and 980, and Stylus Photo 780, 790, 810, 820, 830,
+ 890, 915, 925, 950, 960, 1280, and 1290. This resolution is
+ offered on the Stylus Photo 2100 and 2200, but may not work
+ correctly.
+
+(16) Works on Epson Stylus Photo 830, 925, 950, 960, 2100, 2200;
+ Stylus C61, C62, C70, C80, C82 ; Stylus Pro 7600 and 9600. This
+ resolution is not supported by Epson on the C70 and C80, but it
+ works correctly on at least some such printers.
+
+(17) These resolutions print at particularly high speed on the Epson
+ Stylus Photo 950, 960, 2100, and 2200 when printing in Four Color
+ Standard or Three Color Composite modes, or when printing in
+ monochrome or grayscale with any ink type other than Two Level
+ Grayscale, Seven Color Photo, or Quadtone.
+
+
+The Stylus Pro printers (Stylus Pro 5000, 5500, 7000, 7500, 7600,
+9000, 9500, 9600, and 10000) support additional interleave modes known
+as Full Overlap (FOL), Four Pass, and FOL2. The Stylus Pro 5500,
+7500, 7600, 9500, 9600, and 10000 additionally have a mode called MW2.
+These modes can only be used at certain resolutions. Stylus Pro
+printers support the following resolutions:
+
+180dpi 180 DPI
+
+360dpi 360 DPI
+360uni 360 DPI Unidirectional
+360mw 360 DPI Interleave
+360mwuni 360 DPI Interleave Unidirectional
+360fol 360 DPI Full Overlap
+360foluni 360 DPI Full Overlap Unidirectional
+360fol2 360 DPI FOL2
+360fol2uni 360 DPI FOL2 Unidirectional
+360mw2 360 DPI MW2
+360mw2uni 360 DPI MW2 Unidirectional
+
+720x360dpi 720 x 360 DPI
+720x360uni 720 x 360 DPI Unidirectional
+720x360fol 720 x 360 DPI FOL
+720x360foluni 720 x 360 DPI FOL Unidirectional
+720x360fol2 720 x 360 DPI FOL2
+720x360fol2uni 720 x 360 DPI FOL2 Unidirectional
+720x360mw2 720 x 360 DPI MW2
+720x360mw2uni 720 x 360 DPI MW2 Unidirectional
+
+720dpi 720 DPI
+720uni 720 DPI Unidirectional
+720mw 720 DPI Interleave
+720mwuni 720 DPI Interleave Unidirectional
+720fol 720 DPI Full Overlap
+720foluni 720 DPI Full Overlap Unidirectional
+720fourp 720 DPI Four Pass
+720fourpuni 720 DPI Four Pass Unidirectional
+
+1440x720dpi 1440 x 720 DPI
+1440x720uni 1440 x 720 DPI Unidirectional
+1440x720mw 1440 x 720 DPI Interleave
+1440x720mwuni 1440 x 720 DPI Interleave Unidirectional
+1440x720fol 1440 x 720 DPI FOL
+1440x720foluni 1440 x 720 DPI FOL Unidirectional
+1440x720fourp 1440 x 720 DPI Four Pass
+1440x720fourpuni 1440 x 720 DPI Four Pass Unidirectional
+
+In addition, the Stylus Pro 7600 and 9600 printers support the
following resolutions:
-180dpi 180 DPI
-
-360dpi 360 DPI
-360uni 360 DPI Unidirectional
-360mw 360 DPI Microweave
-360mwuni 360 DPI Microweave Unidirectional
-360fol 360 DPI Full Overlap
-360foluni 360 DPI Full Overlap Unidirectional
-360fol2 360 DPI FOL2
-360fol2uni 360 DPI FOL2 Unidirectional
-360mw2 360 DPI MW2
-360mw2uni 360 DPI MW2 Unidirectional
-
-720x360dpi 720 x 360 DPI
-720x360uni 720 x 360 DPI Unidirectional
-720x360fol 720 x 360 DPI FOL
-720x360foluni 720 x 360 DPI FOL Unidirectional
-720x360fol2 720 x 360 DPI FOL2
-720x360fol2uni 720 x 360 DPI FOL2 Unidirectional
-720x360mw2 720 x 360 DPI MW2
-720x360mw2uni 720 x 360 DPI MW2 Unidirectional
-
-720dpi 720 DPI
-720uni 720 DPI Unidirectional
-720mw 720 DPI Microweave
-720mwuni 720 DPI Microweave Unidirectional
-720fol 720 DPI Full Overlap
-720foluni 720 DPI Full Overlap Unidirectional
-720fourp 720 DPI Four Pass
-720fourpuni 720 DPI Four Pass Unidirectional
-
-1440x720dpi 1440 x 720 DPI
-1440x720uni 1440 x 720 DPI Unidirectional
-1440x720mw 1440 x 720 DPI Microweave
-1440x720mwuni 1440 x 720 DPI Microweave Unidirectional
-1440x720fol 1440 x 720 DPI FOL
-1440x720foluni 1440 x 720 DPI FOL Unidirectional
-1440x720fourp 1440 x 720 DPI Four Pass
-1440x720fourpuni 1440 x 720 DPI Four Pass Unidirectional
+2880x720dpi 2880 x 720 DPI
+2880x720uni 2880 x 720 DPI Unidirectional
+2880x720mw 2880 x 720 DPI Interleave
+2880x720mwuni 2880 x 720 DPI Interleave Unidirectional
+2880x720fol 2880 x 720 DPI FOL
+2880x720foluni 2880 x 720 DPI FOL Unidirectional
+2880x720fourp 2880 x 720 DPI Four Pass
+2880x720fourpuni 2880 x 720 DPI Four Pass Unidirectional
+
+1440x1440dpi 1440 x 1440 DPI
+1440x1440uni 1440 x 1440 DPI Unidirectional
+1440x1440mw 1440 x 1440 DPI Interleave
+1440x1440mwuni 1440 x 1440 DPI Interleave Unidirectional
+1440x1440fol 1440 x 1440 DPI FOL
+1440x1440foluni 1440 x 1440 DPI FOL Unidirectional
+1440x1440fourp 1440 x 1440 DPI Four Pass
+1440x1440fourpuni 1440 x 1440 DPI Four Pass Unidirectional
+
+2880x1440dpi 2880 x 1440 DPI
+2880x1440uni 2880 x 1440 DPI Unidirectional
+2880x1440mw 2880 x 1440 DPI Interleave
+2880x1440mwuni 2880 x 1440 DPI Interleave Unidirectional
+2880x1440fol 2880 x 1440 DPI FOL
+2880x1440foluni 2880 x 1440 DPI FOL Unidirectional
+2880x1440fourp 2880 x 1440 DPI Four Pass
+2880x1440fourpuni 2880 x 1440 DPI Four Pass Unidirectional
For PCL printers (including Hewlett-Packard and Lexmark 4076):
@@ -700,24 +980,26 @@ For Lexmark printers other than the 4076:
For Canon printers:
-1200 DPI printers (BJC 7000, BJC 7100, BJC 8200, BJC 8500):
+1200 DPI printers (BJC 7000, BJC 7100, BJC 8500):
-300dpi 300x300 DPI
-300dmt 300x300 DPI DMT
-600dpi 600x600 DPI
-600dmt 600x600 DPI DMT
+300x300dpi 300x300 DPI
+300x300dmt 300x300 DPI DMT
+600x600dpi 600x600 DPI
+600x600dmt 600x600 DPI DMT
1200x600dpi 1200x600 DPI
-1200dpi 1200x1200 DPI
+1200x1200dpi 1200x1200 DPI
-1440 DPI printers (BJC 1000, BJC 2000, BJC 3000, BJC 4300, BJC 4400,
- BJC 5100, BJC 5500, BJC 6000, BJC 6100, BJC 6500, BJC 8200):
+1440 DPI printers (BJC 30, BJC 50, BJC 55, BJC 80, BJC 85, BJC 210,
+ BJC 240, BJC 250, BJC 1000, BJC 2000, BJC 3000, BJC 4300, BJC
+ 4400, BJC 6000, BJC 6100, BJC 6200, BJC 6500, BJC 8200, S400,
+ S450, S800, S4500):
-360dpi 360x360 DPI
-360dmt 360x360 DPI DMT
+360x360dpi 360x360 DPI
+360x360dmt 360x360 DPI DMT
720x360dpi 720x360 DPI
-720dpi 720x720 DPI
+720x720dpi 720x720 DPI
1440x720dpi 1440x720 DPI
-1440dpi 1440x1440 DPI
+1440x1440dpi 1440x1440 DPI
Ink Types
@@ -729,7 +1011,8 @@ resolution; the first (short) name is the value that must be passed to
-sInkType, and the second (long) name is descriptive. Not all ink
types are supported on all printers.
--sInkType=inktype
+STP: -sInkType=inktype
+IJS: -sIjsParams=InkType=inktype
For Epson and Lexmark (other than the 4076) printers:
@@ -747,17 +1030,17 @@ mixing black ink in. The Epson Stylus Color 1500 cannot mix black ink
with colored inks; on this printer, Three Color Composite must be
used.
-As of this writing (September 2001), no seven color printers are sold
-in North America. When such a printer is sold, the Seven Color
-Enhanced and Six Color Enhanced Composite modes will utilize all of
-these inks.
-
-Photo7 Seven Color Enhanced
-PhotoEnhance Six Color Enhanced Composite
+Photo7 Seven Color Photo (CcMmYKk, for the Epson Stylus
+ Photo 2100 and 2200, and Stylus Pro 7600 and 9600)
PhotoCMYK Six Color Photo
PhotoCMY Five Color Photo Composite
CMYK Four Color Standard
RGB Three Color Composite
+Quadtone Quadtone grayscale inks (special third party inksets
+ designed to produce superior results for grayscale
+ images)
+Gray2 Two Level Grayscale (Kk, for the Epson stylus Photo
+ 2100 and 2200, and Stylus Pro 7600 and 9600)
For Canon printers:
@@ -786,7 +1069,8 @@ Two names are listed for each resolution; the first (short) name is
the value that must be passed to -sMediaType, and the second (long) name
is descriptive.
--sMediaType=mediatype
+STP: -sMediaType=mediatype
+IJS: -sIjsParams=MediaType=mediatype
For Epson and Lexmark (other than the 4076) inkjet printers:
@@ -850,13 +1134,42 @@ Media Sources
This is printer type specific. The option names are case sensitive.
--sInputSlot=mediasource
+STP: -sInputSlot=mediasource
+IJS: -sIjsParams=MediaSource=mediasource
+
+Epson printers without a roll feed mechanism should not have this
+option set.
+
+For Epson printers with a roll feed mechanism without a paper cutter
+(Stylus Photo 785, 825, 870, 875, 890, 895, 915, 1200, 1270, 1280,
+1290):
+
+Standard Standard
+Roll Roll Feed
-For Epson printers:
+For Epson printers with a roll feed mechanism with a paper cutter
+(Stylus Photo 925, 950, 960, 2100, 2200):
Standard Standard
-Roll Roll Feed (for certain Stylus Photo and Stylus
- Pro models only)
+RollCutPage Roll feed, cut each page
+RollCutNone Roll feed, do not cut
+
+NOTE: The -sInputSlot=RollCutPage does not work with the STP driver,
+only with the IJS driver.
+
+For Epson Stylus Pro printers without a roll feed mechanism (Stylus
+Pro 5000, 5500):
+
+CutSheet1 Cut sheet bin 1
+CutSheet2 Cut sheet bin 2
+CutSheetAuto Cut sheet autoselect
+ManualSelect Manual selection
+
+For Epson Stylus Pro printers with a roll feed mechanism (Stylus Pro
+7000, 7500, 7600, 9000, 9500, 9600, 10000, 10600):
+
+Standard Standard
+Roll Roll Feed
For Canon printers:
@@ -896,43 +1209,50 @@ Media Sizes
This is printer-specific; we cannot list the correct values for each
printer here. The option names are case-sensitive. Two names are
listed for each resolution; the first (short) name is the value that
-must be passed to -sPaperSize, and the second (long) name is
+must be passed to -sPAPERSIZE, and the second (long) name is
descriptive. This option does not set GhostScript up to use a paper
size other than the default; it only tells the driver to set up the
printer for a different paper size. The default paper size is
'Letter'.
--sPaperSize=papersize
+STP: -sPAPERSIZE=papersize
+IJS: -sPAPERSIZE=papersize (for known Ghostscript paper sizes)
+ or
+ -dDEVICEWIDTHPOINTS=x -dDEVICEHEIGHTPOINTS=y
+ where x and y are the width and height of the paper
+ respectively, in points (1/72")
+
* Common English paper sizes
-Letter Letter 8.5in x 11in
-Legal Legal 8.5in x 14in
-Tabloid Tabloid 11in x 17in
-Executive Executive 7.25in x 10.5in
-Postcard Postcard 100mm x 147mm
-w216h360 3x5
-w288h432 4x6
-w324h495 Epson 4x6 Photo Paper
-w360h504 5x7
-w360h576 5x8
-8x10 8x10
-Statement Manual 5.5in x 8.5in
-TabloidExtra 12x18
-SuperB 13x19
+Letter Letter 8.5in x 11in x=612, y=792
+Legal Legal 8.5in x 14in x=612, y=1008
+Tabloid Tabloid 11in x 17in x=792, y=1224
+Executive Executive 7.25in x 10.5in x=522, y=756
+Postcard Postcard 100mm x 147mm x=283, y=416
+w216h360 3x5 x=216, y=360
+w288h432 4x6 x=288, y=432
+w324h495 Epson 4x6 Photo Paper x=324, y=495
+w360h504 5x7 x=360, y=504
+w360h576 5x8 x=360, y=576
+8x10 8x10 x=576, y=720
+Statement Manual 5.5in x 8.5in x=396, y=612
+TabloidExtra 12x18 x=864, y=1296
+SuperB 13x19 x=936, y=1368
* Common photographic paper sizes
-w576h864 8x12 Sometimes used for 35 mm
-w792h1008 11x14
-w1152h1440 16x20
-w1152h1728 16x24 20x24 for 35 mm
-w1440h1728 20x24
-w1440h2160 20x30 24x30 for 35 mm
-w1728h2160 24x30
-w1728h2592 24x36 Sometimes used for 35 mm
-w2160h2880 30x40
+w576h864 8x12 Sometimes used for 35 mm x=576, y=864
+w792h1008 11x14 x=792, y=1008
+w1152h1440 16x20 x=1152, y=1440
+w1152h1728 16x24 20x24 for 35 mm x=1152, y=1728
+w1440h1728 20x24 x=1440, y=1728
+w1440h2160 20x30 24x30 for 35 mm x=1440, y=2160
+w1584h2160 22x30 Common watercolor size x=1440, y=2160
+w1728h2160 24x30 x=1728, y=2160
+w1728h2592 24x36 Sometimes used for 35 mm x=1728, y=2592
+w2160h2880 30x40 x=2160, y=2880
International Paper Sizes (mostly taken from BS4000:1968)
@@ -943,123 +1263,128 @@ w2160h2880 30x40
* millimetre. Thus, A0 is 841mm x 1189mm. Every other A
* size is obtained by doubling or halving another A size.
-w4768h6749 4A 1682mm x 2378mm
-w3370h4768 2A 1189mm x 1682mm
-A0 A0 841mm x 1189mm
-A1 A1 594mm x 841mm
-A2 A2 420mm x 594mm
-A3 A3 297mm x 420mm
-A4 A4 210mm x 297mm
-A5 A5 148mm x 210mm
-A6 A6 105mm x 148mm
-A7 A7 74mm x 105mm
-A8 A8 52mm x 74mm
-A9 A9 37mm x 52mm
-A10 A10 26mm x 37mm
+w4768h6749 4A 1682mm x 2378mm x=4768, y=6749
+w3370h4768 2A 1189mm x 1682mm x=3370, y=4768
+A0 A0 841mm x 1189mm x=2384, y=3370
+A1 A1 594mm x 841mm x=1684, y=2384
+A2 A2 420mm x 594mm x=1191, y=1684
+A3 A3 297mm x 420mm x=842, y=1191
+A4 A4 210mm x 297mm x=595, y=842
+A5 A5 148mm x 210mm x=420, y=595
+A6 A6 105mm x 148mm x=297, y=420
+A7 A7 74mm x 105mm x=210, y=297
+A8 A8 52mm x 74mm x=148, y=210
+A9 A9 37mm x 52mm x=105, y=148
+A10 A10 26mm x 37mm x=73, y=105
* Stock sizes for normal trims.
* Allowance for trim is 3 millimetres.
-w2437h3458 RA0 860mm x 1220mm
-w1729h2437 RA1 610mm x 860mm
-w1218h1729 RA2 430mm x 610mm
-w864h1218 RA3 305mm x 430mm
-w609h864 RA4 215mm x 305mm
+w2437h3458 RA0 860mm x 1220mm x=2437, y=3458
+w1729h2437 RA1 610mm x 860mm x=1729, y=2437
+w1218h1729 RA2 430mm x 610mm x=1218, y=1729
+w864h1218 RA3 305mm x 430mm x=864, y=1218
+w609h864 RA4 215mm x 305mm x=609, y=864
* Stock sizes for bled work or extra trims.
-w2551h3628 SRA0 900mm x 1280mm
-w1814h2551 SRA1 640mm x 900mm
-w1275h1814 SRA2 450mm x 640mm
-w907h1275 SRA3 320mm x 450mm
-w637h907 SRA4 225mm x 320mm
+w2551h3628 SRA0 900mm x 1280mm x=2551, y=3628
+w1814h2551 SRA1 640mm x 900mm x=1814, y=2551
+w1275h1814 SRA2 450mm x 640mm x=1275, y=1814
+w907h1275 SRA3 320mm x 450mm x=907, y=1275
+w637h907 SRA4 225mm x 320mm x=637, y=907
* "B" series: Posters, wall charts and similar items.
-w5669h8016 4B ISO 2000mm x 2828mm
-w4008h5669 2B ISO 1414mm x 2000mm
-ISOB0 B0 ISO 1000mm x 1414mm
-ISOB1 B1 ISO 707mm x 1000mm
-ISOB2 B2 ISO 500mm x 707mm
-ISOB3 B3 ISO 353mm x 500mm
-ISOB4 B4 ISO 250mm x 353mm
-ISOB5 B5 ISO 176mm x 250mm
-ISOB6 B6 ISO 125mm x 176mm
-ISOB7 B7 ISO 88mm x 125mm
-ISOB8 B8 ISO 62mm x 88mm
-ISOB9 B9 ISO 44mm x 62mm
-ISOB10 B10 ISO 31mm x 44mm
-
-B0 B0 JIS
-B1 B1 JIS
-B2 B2 JIS
-B3 B3 JIS
-B4 B4 JIS
-B5 B5 JIS
-B6 B6 JIS
-B7 B7 JIS
-B8 B8 JIS
-B9 B9 JIS
-B10 B10 JIS
+w5669h8016 4B ISO 2000mm x 2828mm x=5669, y=8016
+w4008h5669 2B ISO 1414mm x 2000mm x=4008, y=5669
+ISOB0 B0 ISO 1000mm x 1414mm x=2834, y=4008
+ISOB1 B1 ISO 707mm x 1000mm x=2004, y=2834
+ISOB2 B2 ISO 500mm x 707mm x=1417, y=2004
+ISOB3 B3 ISO 353mm x 500mm x=1000, y=1417
+ISOB4 B4 ISO 250mm x 353mm x=708, y=1000
+ISOB5 B5 ISO 176mm x 250mm x=498, y=708
+ISOB6 B6 ISO 125mm x 176mm x=354, y=498
+ISOB7 B7 ISO 88mm x 125mm x=249, y=354
+ISOB8 B8 ISO 62mm x 88mm x=175, y=249
+ISOB9 B9 ISO 44mm x 62mm x=124, y=175
+ISOB10 B10 ISO 31mm x 44mm x=87, y=124
+
+B0 B0 JIS x=2919, y=4127
+B1 B1 JIS x=2063, y=2919
+B2 B2 JIS x=1459, y=2063
+B3 B3 JIS x=1029, y=1459
+B4 B4 JIS x=727, y=1029
+B5 B5 JIS x=518, y=727
+B6 B6 JIS x=362, y=518
+B7 B7 JIS x=257, y=362
+B8 B8 JIS x=180, y=257
+B9 B9 JIS x=127, y=180
+B10 B10 JIS x=90, y=127
* "C" series: Envelopes or folders suitable for A size stationery.
-C0 C0 917mm x 1297mm
-C1 C1 648mm x 917mm
-C2 C2 458mm x 648mm
-C3 C3 324mm x 458mm
-C4 C4 229mm x 324mm
-C5 C5 162mm x 229mm
-w354h918 B6-C4 125mm x 324mm
-C6 C6 114mm x 162mm
-DL DL 110mm x 220mm
-w229h459 C7-6 81mm x 162mm
-C7 C7 81mm x 114mm
-C8 C8 57mm x 81mm
-C9 C9 40mm x 57mm
-C10 C10 28mm x 40mm
+C0 C0 917mm x 1297mm x=2599, y=3676
+C1 C1 648mm x 917mm x=1836, y=2599
+C2 C2 458mm x 648mm x=1298, y=1836
+C3 C3 324mm x 458mm x=918, y=1298
+C4 C4 229mm x 324mm x=649, y=918
+C5 C5 162mm x 229mm x=459, y=649
+w354h918 B6-C4 125mm x 324mm x=354, y=918
+C6 C6 114mm x 162mm x=323, y=459
+DL DL 110mm x 220mm x=311, y=623
+w229h459 C7-6 81mm x 162mm x=229, y=459
+C7 C7 81mm x 114mm x=229, y=323
+C8 C8 57mm x 81mm x=161, y=229
+C9 C9 40mm x 57mm x=113, y=161
+C10 C10 28mm x 40mm x=79, y=113
* US CAD standard paper sizes
-ARCHA ArchA 9x12in
-ARCHB ArchB 12x18in
-ARCHC ArchC 18x24in
-ARCHD ArchD 24x36in
-ARCHE ArchE 36x48in
+ARCHA ArchA 9x12in x=648, y=864
+ARCHA_trans ArchA transverse 12x9 in x=864, y=648
+ARCHB ArchB 12x18in x=864, y=1296
+ARCHB_trans ArchB transverse 18x12in x=1296, y=864
+ARCHC ArchC 18x24in x=1296, y=1728
+ARCHC_trans ArchC transverse 24x18in x=1728, y=1296
+ARCHD ArchD 24x36in x=1728, y=2592
+ARCHD_trans ArchD transverse 36x24in x=2592, y=1728
+ARCHE ArchE 36x48in x=2592, y=3456
+ARCHE_trans ArchE transverse 48x36in x=3456, y=2592
* Foolscap
-w612h936 American foolscap
-w648h936 European foolscap
+w612h936 American foolscap x=612, y=936
+w648h936 European foolscap x=648, y=936
* Sizes for book production
* The BPIF and the Publishers Association jointly recommend ten
* standard metric sizes for case-bound titles as follows:
-w535h697 Crown Quarto 189mm x 246mm
-w569h731 Large Crown Quarto 201mm x 258mm
-w620h782 Demy Quarto 219mm x 276mm
-w671h884 Royal Quarto 237mm x 312mm
-w348h527 Crown Octavo 123mm x 186mm
-w365h561 Large Crown Octavo 129mm x 198mm
-w391h612 Demy Octavo 138mm x 216mm
-w442h663 Royal Octavo 156mm x 234mm
+w535h697 Crown Quarto 189mm x 246mm x=535, y=697
+w569h731 Large Crown Quarto 201mm x 258mm x=569, y=731
+w620h782 Demy Quarto 219mm x 276mm x=620, y=782
+w671h884 Royal Quarto 237mm x 312mm x=671, y=884
+w348h527 Crown Octavo 123mm x 186mm x=348, y=527
+w365h561 Large Crown Octavo 129mm x 198mm x=365, y=561
+w391h612 Demy Octavo 138mm x 216mm x=391, y=612
+w442h663 Royal Octavo 156mm x 234mm x=442, y=663
* Paperback sizes in common usage
-w314h504 Small paperback 111mm x 178mm
-w314h513 Penguin small paperback 111mm x 181mm
-w365h561 Penguin large paperback 129mm x 198mm
+w314h504 Small paperback 111mm x 178mm x=314, y=504
+w314h513 Penguin small paperback 111mm x 181mm x=314, y=513
+w365h561 Penguin large paperback 129mm x 198mm x=365, y=561
* Miscellaneous sizes
-w283h420 Hagaki Card 100 x 148 mm
-w420h567 Oufuku Card 148 x 200 mm
-w340h666 Long 3 Japanese long envelope #3
-w255h581 Long 4 Japanese long envelope #4
-w680h941 Kaku Japanese Kaku envelope #4
-COM10 Commercial 10 US Commercial 10 env
-w315h414 A2 Invitation US A2 invitation
+w283h420 Hagaki Card 100 x 148 mm x=283, y=420
+w420h567 Oufuku Card 148 x 200 mm x=420, y=567
+w340h666 Long 3 Japanese long envelope #3 x=340, y=666
+w255h581 Long 4 Japanese long envelope #4 x=255, y=581
+w680h941 Kaku Japanese Kaku envelope #4 x=680, y=941
+COM10 Commercial 10 US Commercial 10 env x=297, y=684
+w315h414 A2 Invitation US A2 invitation x=315, y=414
Color Balancing Values: (min,max,default)
@@ -1069,6 +1394,16 @@ All of the values below are interpreted as being relative to norms for
a particular printer established through testing, not "absolute"
values of any kind.
+The STP parameter is specified. The IJS parameter is created by
+removing the "-d" and beginning the options list with -sIjsParams.
+Thus
+
+-dCyan=xxx
+
+becomes
+
+-sIjsParams=Cyan=xxx
+
-dCyan=xxx xxx: 0.0 ... 4.0 (1.0)
-dMagenta=xxx xxx: 0.0 ... 4.0 (1.0)
-dYellow=xxx xxx: 0.0 ... 4.0 (1.0)
@@ -1133,9 +1468,11 @@ The option names are case sensitive. Two names are listed for each
resolution; the first (short) name is the value that must be passed to
-sDither, and the second (long) name is descriptive.
--sDither=algorithm
+STP: -sDither=algorithm
+IJS: -sIjsParams=Dither=algorithm
Adaptive Adaptive Hybrid
+EvenTone EvenTone screening (experimental)
Ordered Ordered
Fast Fast
VeryFast Very Fast
@@ -1146,6 +1483,17 @@ For continuous tone images, Ordered works just as well and is somewhat
faster. Ordered dithering yields noticeably inferior results with
text and intricate line art, particularly at high resolutions.
+EvenTone dithering is a relatively new screening technology developed
+by Raph Levien. It offers superior smoothness in highlights and
+midtones, and increased accuracy in shadows, resulting in
+significantly improved results overall. The version of EvenTone
+dithering that we are using is enhanced with some additional
+improvements we have made. It currently only operates with CMYK (4,
+6, or 7 color output) with RGB input, and should be considered
+experimental. Note that it is patented (see US patent 5917614), but
+it is licensed for use with GPL software. See
+http://www.levien.com/patents.html for more information.
+
Fast dithering, which is a simplified version of ordered dither, is
significantly faster, but color accuracy is worse, particularly on six
color printers and printer using variable dot sizes. On simple four
@@ -1173,12 +1521,19 @@ This is sometimes called "tearing". Its use is not recommended.
Output Type
------ ----
--dColor=x x: 0 ... 2 (1 on color printers, 0 otherwise)
+STP: -dColor=x x: 0 ... 2 (1 on color printers, 0 otherwise)
0 Grayscale
-1 Color
+1 Color (RGB)
2 Black and white
+IJS:
+
+Black and white: -sProcessColorModel=DeviceGray -dBitsPerSample=1
+Grayscale: -sProcessColorModel=DeviceGray
+Color (RGB): -sProcessColorModel=DeviceRGB
+Color (CMYK): -sProcessColorModel=DeviceCMYK
+
Choose color vs. grayscale output. Color output is the default.
Choosing -dColor=0 results in only black ink (no color ink) being
used, which is faster and usually results in the most accurate
@@ -1195,11 +1550,22 @@ Output Type
-dColor=2 prints only black and white (thresholding). This option
always uses Fast dithering unless you specify Very Fast.
+ CMYK output may be used with the IJS driver only. It is useful if
+ you're printing a CMYK graphic and want explicit control over the
+ inks. Generally it yields inferior quality, as Gimp-Print has good
+ algorithms for converting RGB (screen) into CMYK (inks) that take
+ into account paper type, ink type, and other variables. In CMYK
+ mode, the brightness, contrast, and saturation controls do not
+ function.
+
Image type (to optimize the dither):
----- ---- --- -------- --- --------
--dImageType=x x: 0 ... 2 (0)
+STP: -dImageType=x x: 0 ... 2 (0)
+
+IJS: -sIjsParams=ImageType=x
+
Select the image type most representative of what's being printed.
0 Line art (color or gray scale)
@@ -1232,14 +1598,36 @@ performance between the three image type options.
EXAMPLES:
---------
-Example 1 (print charts to file, color, 360 dpi):
+Note that a lot of these options are used for demonstration; generally
+adjusting the density is a bad idea!
+
+Example 1 (print charts to file, using A4 paper, color, 360 dpi):
gs -sDEVICE=stp -sModel=escp2-ex -dDensity=1.6 -dGamma=1.5 -dSaturation=0.9 \
- -dBrightness=.4 -dImageType=1 -sOutputFile=itsyourchoice.prn foo.ps
+ -dBrightness=.4 -dImageType=1 -sPAPERSIZE=a4 \
+ -sOutputFile=itsyourchoice.prn foo.ps
+
+gs -sDEVICE=ijs -sIjsServer=/usr/local/bin/ijsgimpprint \
+ -sDeviceManufacturer=EPSON -sDeviceModel=escp2-ex -sPAPERSIZE=a4 \
+ -sOutputFile=itsyourchoice.prn \
+ -sIjsParams=Density=1.6,Gamma=1.5,Saturation=0.9,Brightness=0.4,ImageType=1 \
+ foo.ps
Example 2 (print color photograph to /dev/lp0 at maximum quality):
gs -q -dSAFER -dNOPAUSE -sDEVICE=stp -sModel=escp2-870 -dDensity=0.8 \
- -r1440x720 -sQuality=1440x720hq -dImageType=2 -sOutputFile=/dev/lp0 foo.ps
+ -r1440x720 -sQuality=1440x720hq -sMediaType=GlossyPhoto \
+ -dImageType=2 -sOutputFile=/dev/lp0 foo.ps
+
+gs -sDEVICE=ijs -sIjsServer=/usr/local/bin/ijsgimpprint \
+ -sDeviceManufacturer=EPSON -sDeviceModel=escp2-870 \
+ -sOutputFile=/dev/lp0 \
+ -sIjsParams='Quality=1440x720hq,MediaType=GlossyPhoto,Density=0.8,ImageType=2' \
+ foo.ps
Example 3 (print pure black text to stdout)
gs -q -dSAFER -dNOPAUSE -sDEVICE=stp -sModel=escp2-660 -dDensity=0.8 -r720 \
-sQuality=720sw -dColor=2 -sOutputFile=- foo.ps
+
+gs -sDEVICE=ijs -sIjsServer=/usr/local/bin/ijsgimpprint \
+ -sDeviceManufacturer=EPSON -sDeviceModel=escp2-660 -dIjsUseOutputFD \
+ -sProcessColorModel=DeviceGray -dBitsPerSample=1 -sOutputFile=- \
+ -sIjsParams='Quality=720sw,Density=0.8' foo.ps
diff --git a/src/ghost/contrib.mak.addon.old b/src/ghost/contrib.mak.addon.old
index 7fd6e2f..2c03f85 100644
--- a/src/ghost/contrib.mak.addon.old
+++ b/src/ghost/contrib.mak.addon.old
@@ -9,6 +9,7 @@ stp_=$(GLOBJ)gdevstp.$(OBJ) \
$(GLOBJ)gdevstp-color.$(OBJ) \
$(GLOBJ)gdevstp-weave.$(OBJ) \
$(GLOBJ)gdevstp-escp2.$(OBJ) \
+ $(GLOBJ)gdevstp-escp2-data.$(OBJ) \
$(GLOBJ)gdevstp-lexmark.$(OBJ) \
$(GLOBJ)gdevstp-pcl.$(OBJ) \
$(GLOBJ)gdevstp-canon.$(OBJ) \
@@ -29,15 +30,18 @@ $(GLOBJ)gdevstp-weave.$(OBJ) : $(GLSRC)gdevstp-weave.c $(PDEVH) $(GLSRC)gdevstp-
$(GLOBJ)gdevstp-color.$(OBJ) : $(GLSRC)gdevstp-color.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h
$(GLCC) $(GLO_)gdevstp-color.$(OBJ) $(C_) -DDISABLE_NLS $(GLSRC)gdevstp-color.c
-$(GLOBJ)gdevstp-dither.$(OBJ) : $(GLSRC)gdevstp-dither.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h
+$(GLOBJ)gdevstp-dither.$(OBJ) : $(GLSRC)gdevstp-dither.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h $(GLSRC)gdevstp-print-dither.h
$(GLCC) $(GLO_)gdevstp-dither.$(OBJ) $(C_) -DDISABLE_NLS $(GLSRC)gdevstp-dither.c
-$(GLOBJ)gdevstp-dither-matrices.$(OBJ) : $(GLSRC)gdevstp-dither-matrices.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h
+$(GLOBJ)gdevstp-dither-matrices.$(OBJ) : $(GLSRC)gdevstp-dither-matrices.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h $(GLSRC)gdevstp-print-dither.h
$(GLCC) $(GLO_)gdevstp-dither-matrices.$(OBJ) $(C_) -DDISABLE_NLS $(GLSRC)gdevstp-dither-matrices.c
-$(GLOBJ)gdevstp-escp2.$(OBJ) : $(GLSRC)gdevstp-escp2.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h
+$(GLOBJ)gdevstp-escp2.$(OBJ) : $(GLSRC)gdevstp-escp2.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h $(GLSRC)gdevstp-print-escp2.h
$(GLCC) $(GLO_)gdevstp-escp2.$(OBJ) $(C_) -DDISABLE_NLS $(GLSRC)gdevstp-escp2.c
+$(GLOBJ)gdevstp-escp2-data.$(OBJ) : $(GLSRC)gdevstp-escp2-data.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h $(GLSRC)gdevstp-print-escp2.h
+ $(GLCC) $(GLO_)gdevstp-escp2-data.$(OBJ) $(C_) -DDISABLE_NLS $(GLSRC)gdevstp-escp2-data.c
+
$(GLOBJ)gdevstp-lexmark.$(OBJ) : $(GLSRC)gdevstp-lexmark.c $(PDEVH) $(GLSRC)gdevstp-print.h $(GLSRC)gdevstp-print-internal.h
$(GLCC) $(GLO_)gdevstp-lexmark.$(OBJ) $(C_) -DDISABLE_NLS $(GLSRC)gdevstp-lexmark.c
diff --git a/src/ghost/devs.mak.addon-5.10 b/src/ghost/devs.mak.addon-5.10
index b855859..90bf684 100644
--- a/src/ghost/devs.mak.addon-5.10
+++ b/src/ghost/devs.mak.addon-5.10
@@ -9,6 +9,7 @@ stp_=gdevstp.$(OBJ) \
gdevstp-color.$(OBJ) \
gdevstp-weave.$(OBJ) \
gdevstp-escp2.$(OBJ) \
+ gdevstp-escp2-data.$(OBJ) \
gdevstp-lexmark.$(OBJ) \
gdevstp-pcl.$(OBJ) \
gdevstp-canon.$(OBJ) \
@@ -29,15 +30,18 @@ gdevstp-weave.$(OBJ) : gdevstp-weave.c $(PDEVH) gdevstp-print.h gdevstp-print-in
gdevstp-color.$(OBJ) : gdevstp-color.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h
$(CCC) -DDISABLE_NLS gdevstp-color.c
-gdevstp-dither.$(OBJ) : gdevstp-dither.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h
+gdevstp-dither.$(OBJ) : gdevstp-dither.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h gdevstp-print-dither.h
$(CCC) -DDISABLE_NLS gdevstp-dither.c
-gdevstp-dither-matrices.$(OBJ) : gdevstp-dither-matrices.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h
+gdevstp-dither-matrices.$(OBJ) : gdevstp-dither-matrices.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h gdevstp-print-dither.h
$(CCC) -DDISABLE_NLS gdevstp-dither.c
-gdevstp-escp2.$(OBJ) : gdevstp-escp2.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h
+gdevstp-escp2.$(OBJ) : gdevstp-escp2.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h gdevstp-print-escp2.h
$(CCC) -DDISABLE_NLS gdevstp-escp2.c
+gdevstp-escp2-data.$(OBJ) : gdevstp-escp2-data.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h gdevstp-print-escp2.h
+ $(CCC) -DDISABLE_NLS gdevstp-escp2-data.c
+
gdevstp-lexmark.$(OBJ) : gdevstp-lexmark.c $(PDEVH) gdevstp-print.h gdevstp-print-internal.h
$(CCC) -DDISABLE_NLS gdevstp-lexmark.c
diff --git a/src/ghost/gdevstp.c b/src/ghost/gdevstp.c
index f73ce7f..2b565f6 100644
--- a/src/ghost/gdevstp.c
+++ b/src/ghost/gdevstp.c
@@ -25,7 +25,7 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-/*$Id: gdevstp.c,v 1.14 2001/10/27 17:16:38 rlk Exp $ */
+/*$Id: gdevstp.c,v 1.14.2.1 2002/01/24 01:29:02 rlk Exp $ */
/* stp output driver */
#include "gdevprn.h"
#include "gdevpccm.h"
@@ -594,6 +594,8 @@ stp_open(gx_device *pdev)
st[2] = (float)(width-right) / 72; /* right margin */
stp_set_top(stp_data.v, 0);
+ stp_set_left(stp_data.v, 0);
+ stp_set_orientation(stp_data.v, ORIENT_PORTRAIT);
stp_data.bottom = bottom + height-top;
stp_print_debug("stp_open", pdev, &stp_data);
diff --git a/src/ghost/ijsgimpprint.c b/src/ghost/ijsgimpprint.c
new file mode 100644
index 0000000..2ec49cf
--- /dev/null
+++ b/src/ghost/ijsgimpprint.c
@@ -0,0 +1,1028 @@
+/*
+ * $Id: ijsgimpprint.c,v 1.2.2.15 2002/12/08 21:12:40 rlk Exp $
+ *
+ * ijs server for gimp-print.
+ *
+ * Copyright 2001 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * Originally written by Russell Lang, copyright assigned to Robert Krawitz.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revision History:
+ *
+ * See ChangeLog
+ */
+
+/* ijs server for gimp-print */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <gimp-print/gimp-print.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <locale.h>
+#include <ijs.h>
+#include <ijs_server.h>
+#include <errno.h>
+#include <gimp-print/gimp-print-intl-internal.h>
+
+static int stp_debug = 0;
+
+#define STP_DEBUG(x) do { if (stp_debug || getenv("STP_DEBUG")) x; } while (0)
+
+typedef struct _GimpParamList GimpParamList;
+
+struct _GimpParamList {
+ GimpParamList *next;
+ char *key;
+ char *value;
+ int value_size;
+};
+
+typedef struct _IMAGE
+{
+ IjsServerCtx *ctx;
+ stp_vars_t v;
+ char *filename; /* OutputFile */
+ int fd; /* OutputFD + 1 (so that 0 is invalid) */
+ int width; /* pixels */
+ int height; /* pixels */
+ int bps; /* bytes per sample */
+ int n_chan; /* number of channels */
+ int xres; /* dpi */
+ int yres;
+ int output_type;
+ int row; /* row number in buffer */
+ int row_width; /* length of a row */
+ char *row_buf; /* buffer for raster */
+ double total_bytes; /* total size of raster */
+ double bytes_left; /* bytes remaining to be read */
+ GimpParamList *params;
+} IMAGE;
+
+static const char DeviceGray[] = "DeviceGray";
+static const char DeviceRGB[] = "DeviceRGB";
+static const char DeviceCMYK[] = "DeviceCMYK";
+
+static char *
+c_strdup(const char *s)
+{
+ char *ret = malloc(strlen(s) + 1);
+ strcpy(ret, s);
+ return ret;
+}
+
+static int
+image_init(IMAGE *img, IjsPageHeader *ph)
+{
+ img->width = ph->width;
+ img->height = ph->height;
+ img->bps = ph->bps;
+ img->n_chan = ph->n_chan;
+ img->xres = ph->xres;
+ img->yres = ph->yres;
+
+ img->row = -1;
+ img->row_width = (ph->n_chan * ph->bps * ph->width + 7) >> 3;
+ img->row_buf = (char *)malloc(img->row_width);
+ STP_DEBUG(fprintf(stderr, "image_init\n"));
+ STP_DEBUG(fprintf(stderr,
+ "ph width %d height %d bps %d n_chan %d xres %f yres %f\n",
+ ph->width, ph->height, ph->bps, ph->n_chan, ph->xres,
+ ph->yres));
+
+ if ((img->bps == 1) && (img->n_chan == 1) &&
+ (strncmp(ph->cs, DeviceGray, strlen(DeviceGray)) == 0))
+ {
+ STP_DEBUG(fprintf(stderr, "output monochrome\n"));
+ img->output_type = OUTPUT_MONOCHROME;
+ /* 8-bit greyscale */
+ }
+ else if ((img->bps == 8) && (img->n_chan == 1) &&
+ (strncmp(ph->cs, DeviceGray, strlen(DeviceGray)) == 0))
+ {
+ STP_DEBUG(fprintf(stderr, "output gray\n"));
+ img->output_type = OUTPUT_GRAY;
+ /* 8-bit greyscale */
+ }
+ else if ((img->bps == 8) && (img->n_chan == 3) &&
+ (strncmp(ph->cs, DeviceRGB, strlen(DeviceRGB)) == 0))
+ {
+ STP_DEBUG(fprintf(stderr, "output color\n"));
+ img->output_type = OUTPUT_COLOR;
+ /* 24-bit colour */
+ }
+ else if ((img->bps == 8) && (img->n_chan == 4) &&
+ (strncmp(ph->cs, DeviceCMYK, strlen(DeviceCMYK)) == 0))
+ {
+ STP_DEBUG(fprintf(stderr, "output CMYK\n"));
+ img->output_type = OUTPUT_RAW_CMYK;
+ /* 32-bit CMYK colour */
+ }
+ else
+ {
+ fprintf(stderr, _("Bad color space: bps %d channels %d space %s\n"),
+ img->bps, img->n_chan, ph->cs);
+ /* unsupported */
+ return -1;
+ }
+
+ if (img->row_buf == NULL)
+ {
+ STP_DEBUG(fprintf(stderr, _("No row buffer\n")));
+ return -1;
+ }
+
+ return 0;
+}
+
+static void
+image_finish(IMAGE *img)
+{
+ if (img->row_buf)
+ free(img->row_buf);
+ img->row_buf = NULL;
+}
+
+static int
+get_float(const char *str, const char *name, float *pval,
+ float min_value, float max_value)
+{
+ float new_value;
+ /* Force locale to "C", because decimal numbers coming from the IJS
+ client are always with a decimal point, nver with a decimal comma */
+ setlocale(LC_ALL, "C");
+ if (sscanf(str, "%f", &new_value) == 1)
+ {
+ setlocale(LC_ALL, "");
+ if ((new_value >= min_value) && (new_value <= max_value))
+ {
+ *pval = new_value;
+ return 0;
+ }
+ else
+ fprintf(stderr,
+ _("Parameter %s out of range (value %f, min %f, max %f)\n"),
+ name, new_value, min_value, max_value);
+ }
+ else
+ {
+ setlocale(LC_ALL, "");
+ fprintf(stderr, _("Unable to parse parameter %s=%s (expect a number)\n"),
+ name, str);
+ }
+ return -1;
+}
+
+static int
+get_int(const char *str, const char *name, int *pval,
+ int min_value, int max_value)
+{
+ int new_value;
+ /* Force locale to "C", because decimal numbers sent to the IJS
+ client must have a decimal point, nver a decimal comma */
+ setlocale(LC_ALL, "C");
+ if (sscanf(str, "%d", &new_value) == 1)
+ {
+ setlocale(LC_ALL, "");
+ if ((new_value >= min_value) && (new_value <= max_value))
+ {
+ *pval = new_value;
+ return 0;
+ }
+ fprintf(stderr,
+ _("Parameter %s out of range (value %d, min %d, max %d)\n"),
+ name, new_value, min_value, max_value);
+ }
+ else
+ {
+ setlocale(LC_ALL, "");
+ fprintf(stderr, _("Unable to parse parameter %s=%s (expect a number)\n"),
+ name, str);
+ }
+ return -1;
+}
+
+/* A C implementation of /^(\d\.+\-eE)+x(\d\.+\-eE)+$/ */
+static int
+gimp_parse_wxh (const char *val, int size,
+ double *pw, double *ph)
+{
+ char buf[256];
+ char *tail;
+ int i;
+
+ for (i = 0; i < size; i++)
+ if (val[i] == 'x')
+ break;
+
+ if (i + 1 >= size)
+ return IJS_ESYNTAX;
+
+ if (i >= sizeof(buf))
+ return IJS_EBUF;
+
+ memcpy (buf, val, i);
+ buf[i] = 0;
+ /* Force locale to "C", because decimal numbers coming from the IJS
+ client are always with a decimal point, nver with a decimal comma */
+ setlocale(LC_ALL, "C");
+ *pw = strtod (buf, &tail);
+ setlocale(LC_ALL, "");
+ if (tail == buf)
+ return IJS_ESYNTAX;
+
+ if (size - i > sizeof(buf))
+ return IJS_EBUF;
+
+ memcpy (buf, val + i + 1, size - i - 1);
+ buf[size - i - 1] = 0;
+ /* Force locale to "C", because decimal numbers coming from the IJS
+ client are always with a decimal point, nver with a decimal comma */
+ setlocale(LC_ALL, "C");
+ *ph = strtod (buf, &tail);
+ setlocale(LC_ALL, "");
+ if (tail == buf)
+ return IJS_ESYNTAX;
+
+ return 0;
+}
+
+/**
+ * gimp_find_key: Search parameter list for key.
+ *
+ * @key: key to look up
+ *
+ * Return value: GimpParamList entry matching @key, or NULL.
+ **/
+static GimpParamList *
+gimp_find_key (GimpParamList *pl, const char *key)
+{
+ GimpParamList *curs;
+
+ for (curs = pl; curs != NULL; curs = curs->next)
+ {
+ if (!strcmp (curs->key, key))
+ return curs;
+ }
+ return NULL;
+}
+
+static int
+gimp_status_cb (void *status_cb_data,
+ IjsServerCtx *ctx,
+ IjsJobId job_id)
+{
+ return 0;
+}
+
+static int
+gimp_list_cb (void *list_cb_data,
+ IjsServerCtx *ctx,
+ IjsJobId job_id,
+ char *val_buf,
+ int val_size)
+{
+ const char *param_list = "OutputFile,OutputFD,DeviceManufacturer,DeviceModel,Quality,MediaName,MediaType,MediaSource,InkType,Dither,ImageType,Brightness,Gamma,Contrast,Cyan,Magenta,Yellow,Saturation,Density,PrintableArea,PrintableTopLeft,TopLeft,Dpi";
+ int size = strlen (param_list);
+
+ if (size > val_size)
+ return IJS_EBUF;
+
+ memcpy (val_buf, param_list, size);
+ return size;
+}
+
+static int
+gimp_enum_cb (void *enum_cb_data,
+ IjsServerCtx *ctx,
+ IjsJobId job_id,
+ const char *key,
+ char *val_buf,
+ int val_size)
+{
+ const char *val = NULL;
+ if (!strcmp (key, "ColorSpace"))
+ val = "DeviceRGB,DeviceGray,DeviceCMYK";
+ else if (!strcmp (key, "DeviceManufacturer"))
+ val = "Gimp-Print";
+ else if (!strcmp (key, "DeviceModel"))
+ val = "gimp-print";
+ else if (!strcmp (key, "PageImageFormat"))
+ val = "Raster";
+
+ if (val == NULL)
+ return IJS_EUNKPARAM;
+ else
+ {
+ int size = strlen (val);
+
+ if (size > val_size)
+ return IJS_EBUF;
+ memcpy (val_buf, val, size);
+ return size;
+ }
+}
+
+static int
+gimp_get_cb (void *get_cb_data,
+ IjsServerCtx *ctx,
+ IjsJobId job_id,
+ const char *key,
+ char *val_buf,
+ int val_size)
+{
+ IMAGE *img = (IMAGE *)get_cb_data;
+ stp_vars_t v = img->v;
+ stp_printer_t printer = stp_get_printer_by_driver(stp_get_driver(v));
+ GimpParamList *pl = img->params;
+ GimpParamList *curs;
+ const char *val = NULL;
+ char buf[256];
+
+ STP_DEBUG(fprintf(stderr, "gimp_get_cb: %s\n", key));
+ if (!printer)
+ {
+ if (strlen(stp_get_driver(v)) == 0)
+ fprintf(stderr, _("Printer must be specified with -sModel\n"));
+ else
+ fprintf(stderr, _("Printer %s is not a known model\n"),
+ stp_get_driver(v));
+ return IJS_EUNKPARAM;
+ }
+ curs = gimp_find_key (pl, key);
+ if (curs != NULL)
+ {
+ if (curs->value_size > val_size)
+ return IJS_EBUF;
+ memcpy (val_buf, curs->value, curs->value_size);
+ return curs->value_size;
+ }
+
+ if (!strcmp(key, "PrintableArea"))
+ {
+ int l, r, b, t;
+ int h, w;
+ (*stp_printer_get_printfuncs(printer)->imageable_area)
+ (printer, v, &l, &r, &b, &t);
+ h = t - b;
+ w = r - l;
+ /* Force locale to "C", because decimal numbers sent to the IJS
+ client must have a decimal point, nver a decimal comma */
+ setlocale(LC_ALL, "C");
+ sprintf(buf, "%gx%g", (double) w / 72.0, (double) h / 72.0);
+ setlocale(LC_ALL, "");
+ STP_DEBUG(fprintf(stderr, "PrintableArea %d %d %s\n", h, w, buf));
+ val = buf;
+ }
+ else if (!strcmp(key, "Dpi"))
+ {
+ int x, y;
+ (*stp_printer_get_printfuncs(printer)->describe_resolution)
+ (printer, stp_get_resolution(v), &x, &y);
+ /* Force locale to "C", because decimal numbers sent to the IJS
+ client must have a decimal point, nver a decimal comma */
+ setlocale(LC_ALL, "C");
+ sprintf(buf, "%d", x);
+ setlocale(LC_ALL, "");
+ STP_DEBUG(fprintf(stderr, "Dpi %d %d (%d) %s\n", x, y, x, buf));
+ stp_set_scaling(v, -x);
+ val = buf;
+ }
+ else if (!strcmp(key, "PrintableTopLeft"))
+ {
+ int l, r, b, t;
+ int h, w;
+ (*stp_printer_get_printfuncs(printer)->media_size)
+ (printer, v, &w, &h);
+ (*stp_printer_get_printfuncs(printer)->imageable_area)
+ (printer, v, &l, &r, &b, &t);
+ t = h - t;
+ /* Force locale to "C", because decimal numbers sent to the IJS
+ client must have a decimal point, nver a decimal comma */
+ setlocale(LC_ALL, "C");
+ sprintf(buf, "%gx%g", (double) l / 72.0, (double) t / 72.0);
+ setlocale(LC_ALL, "");
+ STP_DEBUG(fprintf(stderr, "PrintableTopLeft %d %d %s\n", t, l, buf));
+ val = buf;
+ }
+ else if (!strcmp (key, "DeviceManufacturer"))
+ val = "Gimp-Print";
+ else if (!strcmp (key, "DeviceModel"))
+ val = stp_get_driver(img->v);
+ else if (!strcmp (key, "PageImageFormat"))
+ val = "Raster";
+
+ if (val == NULL)
+ return IJS_EUNKPARAM;
+ else
+ {
+ int size = strlen (val);
+
+ if (size > val_size)
+ return IJS_EBUF;
+ memcpy (val_buf, val, size);
+ return size;
+ }
+}
+
+static int
+gimp_set_cb (void *set_cb_data, IjsServerCtx *ctx, IjsJobId jobid,
+ const char *key, const char *value, int value_size)
+{
+ int code = 0;
+ char vbuf[256];
+ const stp_vars_t lower = stp_minimum_settings();
+ const stp_vars_t upper = stp_maximum_settings();
+ int i;
+ float z;
+ IMAGE *img = (IMAGE *)set_cb_data;
+ STP_DEBUG(fprintf (stderr, "gimp_set_cb: %s=", key));
+ STP_DEBUG(fwrite (value, 1, value_size, stderr));
+ STP_DEBUG(fputs ("\n", stderr));
+ if (value_size > sizeof(vbuf)-1)
+ return -1;
+ memset(vbuf, 0, sizeof(vbuf));
+ memcpy(vbuf, value, value_size);
+
+ if (strcmp(key, "OutputFile") == 0)
+ {
+ if (img->filename)
+ free(img->filename);
+ img->filename = c_strdup(vbuf);
+ }
+ else if (strcmp(key, "OutputFD") == 0) {
+ /* Force locale to "C", because decimal numbers sent to the IJS
+ client must have a decimal point, nver a decimal comma */
+ setlocale(LC_ALL, "C");
+ img->fd = atoi(vbuf) + 1;
+ setlocale(LC_ALL, "");
+ } else if (strcmp(key, "DeviceManufacturer") == 0)
+ ; /* We don't care who makes it */
+ else if (strcmp(key, "DeviceModel") == 0)
+ {
+ stp_printer_t printer = stp_get_printer_by_driver(vbuf);
+ stp_set_driver(img->v, vbuf);
+ if (printer)
+ {
+ stp_set_printer_defaults(img->v, printer, NULL);
+ if (strlen(stp_get_resolution(img->v)) == 0)
+ stp_set_resolution(img->v,
+ ((*stp_printer_get_printfuncs(printer)->default_parameters)
+ (printer, NULL, "Resolution")));
+ if (strlen(stp_get_dither_algorithm(img->v)) == 0)
+ stp_set_dither_algorithm(img->v, stp_default_dither_algorithm());
+ }
+ else
+ code = IJS_ERANGE;
+ }
+ else if (strcmp(key, "PPDFile") == 0)
+ stp_set_ppd_file(img->v, vbuf);
+ else if (strcmp(key, "Quality") == 0)
+ stp_set_resolution(img->v, vbuf);
+#if 0
+ else if (strcmp(key, "MediaName") == 0)
+ stp_set_media_size(img->v, vbuf);
+#endif
+ else if (strcmp(key, "TopLeft") == 0)
+ {
+ int l, r, b, t, pw, ph;
+ double w, h;
+ stp_printer_t printer =
+ (stp_get_printer_by_driver(stp_get_driver(img->v)));
+ ((*stp_printer_get_printfuncs(printer)->imageable_area))
+ (printer, img->v, &l, &r, &b, &t);
+ (*stp_printer_get_printfuncs(printer)->media_size)
+ (printer, img->v, &pw, &ph);
+ STP_DEBUG(fprintf(stderr, "l %d r %d t %d b %d pw %d ph %d\n",
+ l, r, t, b, pw, ph));
+ code = gimp_parse_wxh(vbuf, strlen(vbuf), &w, &h);
+ if (code == 0)
+ {
+ int al = (w * 72) - l;
+ int ah = (h * 72) - (ph - t);
+ STP_DEBUG(fprintf(stderr, "left top %f %f %d %d %s\n",
+ w * 72, h * 72, al, ah, vbuf));
+ if (al >= 0)
+ stp_set_left(img->v, al);
+ if (ah >= 0)
+ stp_set_top(img->v, ah);
+ }
+ }
+ else if (strcmp(key, "PaperSize") == 0)
+ {
+ double w, h;
+ code = gimp_parse_wxh(vbuf, strlen(vbuf), &w, &h);
+ if (code == 0)
+ {
+ stp_papersize_t p;
+ w *= 72;
+ h *= 72;
+ STP_DEBUG(fprintf(stderr, "paper size %f %f %s\n", w, h, vbuf));
+ stp_set_page_width(img->v, w);
+ stp_set_page_height(img->v, h);
+ if ((p = stp_get_papersize_by_size(h, w)) != NULL)
+ {
+ STP_DEBUG(fprintf(stderr, "Found page size %s\n",
+ stp_papersize_get_name(p)));
+ stp_set_media_size(img->v, stp_papersize_get_name(p));
+ }
+ else
+ STP_DEBUG(fprintf(stderr, "No matching paper size found\n"));
+ }
+ }
+ else if (strcmp(key, "MediaType") == 0)
+ stp_set_media_type(img->v, vbuf);
+ else if (strcmp(key, "MediaSource") == 0)
+ stp_set_media_source(img->v, vbuf);
+ else if (strcmp(key, "InkType") == 0)
+ stp_set_ink_type(img->v, vbuf);
+ else if (strcmp(key, "Dither") == 0)
+ stp_set_dither_algorithm(img->v, vbuf);
+ else if (strcmp(key, "ImageType") == 0)
+ {
+ code = get_int(vbuf, key, &i,
+ stp_get_image_type(lower), stp_get_image_type(upper));
+ if (code == 0)
+ stp_set_image_type(img->v, i);
+ }
+ else if (strcmp(key, "Brightness") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_brightness(lower), stp_get_brightness(upper));
+ if (code == 0)
+ stp_set_brightness(img->v, z);
+ }
+ else if (strcmp(key, "Gamma") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_gamma(lower), stp_get_gamma(upper));
+ if (code == 0)
+ stp_set_gamma(img->v, z);
+ }
+ else if (strcmp(key, "Contrast") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_contrast(lower), stp_get_contrast(upper));
+ if (code == 0)
+ stp_set_contrast(img->v, z);
+ }
+ else if (strcmp(key, "Cyan") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_cyan(lower), stp_get_cyan(upper));
+ if (code == 0)
+ stp_set_cyan(img->v, z);
+ }
+ else if (strcmp(key, "Magenta") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_magenta(lower), stp_get_magenta(upper));
+ if (code == 0)
+ stp_set_magenta(img->v, z);
+ }
+ else if (strcmp(key, "Yellow") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_yellow(lower), stp_get_yellow(upper));
+ if (code == 0)
+ stp_set_yellow(img->v, z);
+ }
+ else if (strcmp(key, "Saturation") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_saturation(lower), stp_get_saturation(upper));
+ if (code == 0)
+ stp_set_saturation(img->v, z);
+ }
+ else if (strcmp(key, "Density") == 0)
+ {
+ code = get_float(vbuf, key, &z,
+ stp_get_density(lower), stp_get_density(upper));
+ if (code == 0)
+ stp_set_density(img->v, z);
+ }
+ else if (strcmp (key, "Duplex") == 0)
+ {
+ }
+ else if (strcmp (key, "PS:Duplex") == 0)
+ {
+ }
+ else if (strcmp (key, "Tumble") == 0)
+ {
+ }
+ else if (strcmp (key, "PS:Tumble") == 0)
+ {
+ }
+ else
+ {
+ fprintf(stderr, _("Unknown option %s\n"), key);
+ code = -1;
+ }
+
+ if (code == 0)
+ {
+ GimpParamList *pl = gimp_find_key (img->params, key);
+
+ if (pl == NULL)
+ {
+ pl = (GimpParamList *)malloc (sizeof (GimpParamList));
+ pl->next = img->params;
+ pl->key = malloc (strlen(key) + 1);
+ memcpy (pl->key, key, strlen(key) + 1);
+ img->params = pl;
+ }
+ else
+ {
+ free (pl->value);
+ }
+ pl->value = malloc (value_size);
+ memcpy (pl->value, value, value_size);
+ pl->value_size = value_size;
+ }
+
+ return code;
+}
+
+/**********************************************************/
+
+static void
+gimp_outfunc(void *data, const char *buffer, size_t bytes)
+{
+ if ((data != NULL) && (buffer != NULL) && (bytes != 0))
+ fwrite(buffer, 1, bytes, (FILE *)data);
+}
+
+/**********************************************************/
+/* stp_image_t functions */
+
+static void
+gimp_image_init(stp_image_t *image)
+{
+}
+
+static void
+gimp_image_reset(stp_image_t *image)
+{
+}
+
+/* bytes per pixel (NOT bits per pixel) */
+static int
+gimp_image_bpp(stp_image_t *image)
+{
+ IMAGE *img = (IMAGE *)(image->rep);
+ STP_DEBUG(fprintf(stderr, "gimp_image_bpp: bps=%d n_chan=%d returning %d\n",
+ img->bps, img->n_chan, (img->bps * img->n_chan + 7) / 8));
+ return (img->bps * img->n_chan + 7) / 8;
+}
+
+static int
+gimp_image_width(stp_image_t *image)
+{
+ IMAGE *img = (IMAGE *)(image->rep);
+ return img->width;
+}
+
+static int
+gimp_image_height(stp_image_t *image)
+{
+ IMAGE *img = (IMAGE *)(image->rep);
+ return img->height * img->xres / img->yres;
+}
+
+static int
+image_next_row(IMAGE *img)
+{
+ int status = 0;
+ double n_bytes = img->bytes_left;
+ if (img->bytes_left)
+ {
+
+ if (n_bytes > img->row_width)
+ n_bytes = img->row_width;
+#ifdef VERBOSE
+ STP_DEBUG(fprintf(stderr, "%.0f bytes left, reading %.d, on row %d\n",
+ img->bytes_left, (int) n_bytes, img->row));
+#endif
+ status = ijs_server_get_data(img->ctx, img->row_buf, (int) n_bytes);
+ if (status)
+ {
+ STP_DEBUG(fprintf(stderr, "page aborted!\n"));
+ }
+ else
+ {
+ img->row++;
+ img->bytes_left -= n_bytes;
+ }
+ }
+ else
+ return 1; /* Done */
+ return status;
+}
+
+static stp_image_status_t
+gimp_image_get_row(stp_image_t *image, unsigned char *data, int row)
+{
+ IMAGE *img = (IMAGE *)(image->rep);
+ int physical_row = row * img->yres / img->xres;
+
+ if ((physical_row < 0) || (physical_row >= img->height))
+ return STP_IMAGE_ABORT;
+
+ /* Read until we reach the requested row. */
+ while (physical_row > img->row)
+ {
+ if (image_next_row(img))
+ return STP_IMAGE_ABORT;
+ }
+
+ if (physical_row == img->row)
+ {
+ unsigned i, j, length;
+ switch (img->bps)
+ {
+ case 8:
+ memcpy(data, img->row_buf, img->row_width);
+ break;
+ case 1:
+ length = img->width / 8;
+ for (i = 0; i < length; i++)
+ for (j = 128; j > 0; j >>= 1)
+ {
+ if (img->row_buf[i] & j)
+ data[0] = 255;
+ else
+ data[0] = 0;
+ data++;
+ }
+ length = img->width % 8;
+ for (j = 128; j > 1 << (7 - length); j >>= 1)
+ {
+ if (img->row_buf[i] & j)
+ data[0] = 255;
+ else
+ data[0] = 0;
+ data++;
+ }
+ break;
+ default:
+ return STP_IMAGE_ABORT;
+ }
+ }
+ else
+ return STP_IMAGE_ABORT;
+ return STP_IMAGE_OK;
+}
+
+
+static const char *
+gimp_image_get_appname(stp_image_t *image)
+{
+ return "ijsgimp";
+}
+
+static void
+gimp_image_progress_init(stp_image_t *image)
+{
+}
+
+static void
+gimp_image_note_progress(stp_image_t *image, double current, double total)
+{
+ char buf[256];
+ sprintf(buf, _("%.0f of %.0f\n"), current, total);
+ STP_DEBUG(gimp_outfunc(stderr, buf, strlen(buf)));
+}
+
+static void
+gimp_image_progress_conclude(stp_image_t *image)
+{
+}
+
+/**********************************************************/
+
+static void
+stp_dbg(const char *msg, const stp_vars_t v)
+{
+ fprintf(stderr,"%s Settings: c: %f m: %f y: %f\n",
+ msg, stp_get_cyan(v), stp_get_magenta(v), stp_get_yellow(v));
+ fprintf(stderr, "Ink type %s\n", stp_get_ink_type(v));
+ fprintf(stderr,"Settings: bright: %f contrast: %f\n",
+ stp_get_brightness(v), stp_get_contrast(v));
+ fprintf(stderr,"Settings: Gamma: %f Saturation: %f Density: %f\n",
+ stp_get_gamma(v), stp_get_saturation(v), stp_get_density(v));
+ fprintf(stderr, "Settings: width %d, height %d\n",
+ stp_get_page_width(v), stp_get_page_height(v));
+ fprintf(stderr, "Settings: output type %d image type %d\n",
+ stp_get_output_type(v), stp_get_image_type(v));
+ fprintf(stderr, "Settings: Quality %s\n", stp_get_resolution(v));
+ fprintf(stderr, "Settings: Dither %s\n", stp_get_dither_algorithm(v));
+ fprintf(stderr, "Settings: MediaSource %s\n", stp_get_media_source(v));
+ fprintf(stderr, "Settings: MediaType %s\n", stp_get_media_type(v));
+ fprintf(stderr, "Settings: MediaSize %s\n", stp_get_media_size(v));
+ fprintf(stderr, "Settings: Model %s\n", stp_get_driver(v));
+ fprintf(stderr, "Settings: InkType %s\n", stp_get_ink_type(v));
+ fprintf(stderr, "Settings: OutputTo %s\n", stp_get_output_to(v));
+}
+
+int
+main (int argc, char **argv)
+{
+ IjsPageHeader ph;
+ int status;
+ int page = 0;
+ IMAGE img;
+ stp_image_t si;
+ stp_printer_t printer = NULL;
+ FILE *f = NULL;
+
+ memset(&img, 0, sizeof(img));
+
+ img.ctx = ijs_server_init();
+ if (img.ctx == NULL)
+ return 1;
+
+ stp_init();
+ img.v = stp_allocate_vars();
+ if (img.v == NULL)
+ {
+ ijs_server_done(img.ctx);
+ return 1;
+ }
+ stp_set_top(img.v, 0);
+ stp_set_left(img.v, 0);
+ stp_set_orientation(img.v, ORIENT_PORTRAIT);
+
+ /* Error messages to stderr. */
+ stp_set_errfunc(img.v, gimp_outfunc);
+ stp_set_errdata(img.v, stderr);
+
+ /* Printer data goes to file f, but we haven't opened it yet. */
+ stp_set_outfunc(img.v, gimp_outfunc);
+ stp_set_outdata(img.v, NULL);
+
+ memset(&si, 0, sizeof(si));
+ si.init = gimp_image_init;
+ si.reset = gimp_image_reset;
+ si.transpose = NULL;
+ si.hflip = NULL;
+ si.vflip = NULL;
+ si.crop = NULL;
+ si.rotate_ccw = NULL;
+ si.rotate_cw = NULL;
+ si.rotate_180 = NULL;
+ si.bpp = gimp_image_bpp;
+ si.width = gimp_image_width;
+ si.height = gimp_image_height;
+ si.get_row = gimp_image_get_row;
+ si.get_appname = gimp_image_get_appname;
+ si.progress_init = gimp_image_progress_init;
+ si.note_progress = gimp_image_note_progress;
+ si.progress_conclude = gimp_image_progress_conclude;
+ si.rep = &img;
+
+ ijs_server_install_status_cb (img.ctx, gimp_status_cb, &img);
+ ijs_server_install_list_cb (img.ctx, gimp_list_cb, &img);
+ ijs_server_install_enum_cb (img.ctx, gimp_enum_cb, &img);
+ ijs_server_install_get_cb (img.ctx, gimp_get_cb, &img);
+ ijs_server_install_set_cb(img.ctx, gimp_set_cb, &img);
+
+ STP_DEBUG(stp_dbg("about to start", img.v));
+
+ do
+ {
+
+ status = ijs_server_get_page_header(img.ctx, &ph);
+ if (status)
+ {
+ if (status < 0)
+ fprintf(stderr, _("ijs_server_get_page_header failed %d\n"),
+ status);
+ break;
+ }
+ STP_DEBUG(fprintf(stderr, "got page header, %d x %d\n",
+ ph.width, ph.height));
+ STP_DEBUG(stp_dbg("have page header", img.v));
+
+ status = image_init(&img, &ph);
+ if (status)
+ {
+ fprintf(stderr, _("image_init failed %d\n"), status);
+ break;
+ }
+
+ if (page == 0)
+ {
+ if (img.fd)
+ {
+ f = fdopen(img.fd - 1, "wb");
+ if (!f)
+ {
+ fprintf(stderr, _("Unable to open file descriptor: %s\n"),
+ strerror(errno));
+ status = -1;
+ break;
+ }
+ }
+ else if (img.filename && strlen(img.filename) > 0)
+ {
+ f = fopen(img.filename, "wb");
+ if (!f)
+ {
+ status = -1;
+ fprintf(stderr, _("Unable to open %s: %s\n"), img.filename,
+ strerror(errno));
+ break;
+ }
+ }
+
+ /* Printer data to file */
+ stp_set_outdata(img.v, f);
+
+ printer = stp_get_printer_by_driver(stp_get_driver(img.v));
+ if (printer == NULL)
+ {
+ fprintf(stderr, _("Unknown printer %s\n"),
+ stp_get_driver(img.v));
+ status = -1;
+ break;
+ }
+ stp_merge_printvars(img.v, stp_printer_get_printvars(printer));
+ if (strlen(stp_get_resolution(img.v)) == 0)
+ stp_set_resolution(img.v,
+ stp_printer_get_printfuncs(printer)->
+ default_parameters(printer, NULL, "Resolution"));
+ if (strlen(stp_get_dither_algorithm(img.v)) == 0)
+ stp_set_dither_algorithm(img.v, stp_default_dither_algorithm());
+ }
+
+ img.total_bytes = (double) ((ph.n_chan * ph.bps * ph.width + 7) >> 3)
+ * (double) ph.height;
+ img.bytes_left = img.total_bytes;
+
+ stp_set_app_gamma(img.v, (float)1.7);
+ stp_set_cmap(img.v, NULL);
+ stp_set_scaling(img.v, (float)-img.xres); /* resolution of image */
+ stp_set_output_type(img.v, img.output_type);
+ stp_set_page_number(img.v, page);
+ stp_set_job_mode(img.v, STP_JOB_MODE_JOB);
+ STP_DEBUG(stp_dbg("about to print", img.v));
+ if (stp_printer_get_printfuncs(printer)->verify(printer, img.v))
+ {
+ if (page == 0)
+ stp_printer_get_printfuncs(printer)->start_job(printer, &si, img.v);
+ stp_printer_get_printfuncs(printer)->print(printer, &si, img.v);
+ }
+ else
+ {
+ fprintf(stderr, _("Bad parameters; cannot continue!\n"));
+ status = -1;
+ break;
+ }
+
+ while (img.bytes_left)
+ {
+ status = image_next_row(&img);
+ if (status)
+ {
+ fprintf(stderr, _("Get next row failed at %.0f\n"),
+ img.bytes_left);
+ break;
+ }
+ }
+
+ image_finish(&img);
+ page++;
+ }
+ while (status == 0);
+ stp_printer_get_printfuncs(printer)->end_job(printer, &si, img.v);
+
+ if (f)
+ {
+ fclose(f);
+ }
+
+ if (status > 0)
+ status = 0; /* normal exit */
+
+ ijs_server_done(img.ctx);
+
+ STP_DEBUG(fprintf (stderr, "server exiting with status %d\n", status));
+ return status;
+}
diff --git a/src/gimp/.cvsignore b/src/gimp/.cvsignore
deleted file mode 100644
index dc31214..0000000
--- a/src/gimp/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-print
diff --git a/src/gimp/Makefile.am b/src/gimp/Makefile.am
index 5ec8700..297e5de 100644
--- a/src/gimp/Makefile.am
+++ b/src/gimp/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.18 2001/10/10 23:05:16 rlk Exp $
+## $Id: Makefile.am,v 1.18.4.5 2002/11/30 23:17:24 rleigh Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -28,7 +28,8 @@ MAINT_CHARSET = latin1
AM_CFLAGS = $(GNUCFLAGS)
INCLUDES = @INCLUDES@ $(GIMP_CFLAGS) $(LIBGIMPPRINT_CFLAGS)
-LIBS = @LIBS@ ../../lib/libprintut.la $(INTLLIBS) ../../lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
libexecdir = $(gimptool_prefix)/plug-ins
@@ -37,7 +38,7 @@ libexecdir = $(gimptool_prefix)/plug-ins
GIMP_BIN = print
-libexec_PROGRAMS = @GIMP_BIN@
+gimp_plug_in_PROGRAMS = @GIMP_BIN@
EXTRA_PROGRAMS = print
@@ -48,39 +49,10 @@ print_SOURCES = \
gimp_color_window.c \
gimp_main_window.c \
print_gimp.h
-print_LDADD = $(GIMP_LIBS) $(LIBGIMPPRINT_LIBS) ../../lib/libprintut.la
+print_LDADD = $(LIBPRINTUT) $(GIMP_LIBS) $(LIBGIMPPRINT_LIBS)
print_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
-## Rules
-
-install-libexecPROGRAMS: $(libexec_PROGRAMS)
- @DESTDIR='$(DESTDIR)'; export DESTDIR;\
- list='$(libexec_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- if test -f .libs/$$p; then \
- cd .libs; \
- fi; \
- echo $(GIMPTOOL) --install-@PLUG_IN_PATH@ $$p; \
- $(GIMPTOOL) --install-@PLUG_IN_PATH@ $$p; \
- else :; fi; \
- done
-
-uninstall-libexecPROGRAMS:
- @DESTDIR='$(DESTDIR)'; export DESTDIR;\
- list='$(libexec_PROGRAMS)'; for p in $$list; do \
- echo $(GIMPTOOL) --uninstall-@PLUG_IN_PATH@ "$$p"; \
- $(GIMPTOOL) --uninstall-@PLUG_IN_PATH@ "$$p"; \
- echo $(GIMPTOOL) --uninstall-admin-bin "$$p"; \
- $(GIMPTOOL) --uninstall-admin-bin "$$p"; \
- done; \
- exit 0
-
-$(LIBGIMPPRINT_LIBS):
- cd ../main ; \
- $(MAKE)
-
-
## Clean
CLEANFILES = $(EXTRA_PROGRAMS)
diff --git a/src/gimp/Makefile.in b/src/gimp/Makefile.in
new file mode 100644
index 0000000..d257b80
--- /dev/null
+++ b/src/gimp/Makefile.in
@@ -0,0 +1,468 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@ $(GIMP_CFLAGS) $(LIBGIMPPRINT_CFLAGS)
+LIBS = $(INTLLIBS) @LIBS@
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+
+libexecdir = $(gimptool_prefix)/plug-ins
+
+GIMP_BIN = print
+
+gimp_plug_in_PROGRAMS = @GIMP_BIN@
+
+EXTRA_PROGRAMS = print
+
+print_SOURCES = print-image-gimp.c print-intl.h print.c gimp_color_window.c gimp_main_window.c print_gimp.h
+
+print_LDADD = $(LIBPRINTUT) $(GIMP_LIBS) $(LIBGIMPPRINT_LIBS)
+print_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+CLEANFILES = $(EXTRA_PROGRAMS)
+MAINTAINERCLEANFILES = Makefile.in
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+gimp_plug_in_PROGRAMS = @GIMP_BIN@
+PROGRAMS = $(gimp_plug_in_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+print_OBJECTS = print-image-gimp.$(OBJEXT) print.$(OBJEXT) \
+gimp_color_window.$(OBJEXT) gimp_main_window.$(OBJEXT)
+print_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(print_SOURCES)
+OBJECTS = $(print_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/gimp/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-gimp_plug_inPROGRAMS:
+
+clean-gimp_plug_inPROGRAMS:
+ -test -z "$(gimp_plug_in_PROGRAMS)" || rm -f $(gimp_plug_in_PROGRAMS)
+
+distclean-gimp_plug_inPROGRAMS:
+
+maintainer-clean-gimp_plug_inPROGRAMS:
+
+install-gimp_plug_inPROGRAMS: $(gimp_plug_in_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(gimp_plug_indir)
+ @list='$(gimp_plug_in_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(gimp_plug_indir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(gimp_plug_indir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-gimp_plug_inPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(gimp_plug_in_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(gimp_plug_indir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+print$(EXEEXT): $(print_OBJECTS) $(print_DEPENDENCIES)
+ @rm -f print$(EXEEXT)
+ $(LINK) $(print_LDFLAGS) $(print_OBJECTS) $(print_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/gimp
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+gimp_color_window.o: gimp_color_window.c ../../config.h \
+ ../../lib/libprintut.h ../../lib/xmalloc.h print_gimp.h \
+ ../../include/gimp-print/gimp-print.h print-intl.h \
+ ../../include/gimp-print/gimp-print-intl.h
+gimp_main_window.o: gimp_main_window.c ../../config.h \
+ ../../lib/libprintut.h ../../lib/xmalloc.h print_gimp.h \
+ ../../include/gimp-print/gimp-print.h print-intl.h \
+ ../../include/gimp-print/gimp-print-intl.h
+print-image-gimp.o: print-image-gimp.c ../../config.h \
+ ../../lib/libprintut.h ../../lib/xmalloc.h print_gimp.h \
+ ../../include/gimp-print/gimp-print.h print-intl.h \
+ ../../include/gimp-print/gimp-print-intl.h
+print.o: print.c ../../config.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h print_gimp.h \
+ ../../include/gimp-print/gimp-print.h print-intl.h \
+ ../../include/gimp-print/gimp-print-intl.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-gimp_plug_inPROGRAMS
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-gimp_plug_inPROGRAMS
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(gimp_plug_indir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-gimp_plug_inPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-gimp_plug_inPROGRAMS clean-compile clean-libtool \
+ clean-tags clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-gimp_plug_inPROGRAMS distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-gimp_plug_inPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-gimp_plug_inPROGRAMS distclean-gimp_plug_inPROGRAMS \
+clean-gimp_plug_inPROGRAMS maintainer-clean-gimp_plug_inPROGRAMS \
+uninstall-gimp_plug_inPROGRAMS install-gimp_plug_inPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/gimp/print.c b/src/gimp/print.c
index 31347aa..56e9521 100644
--- a/src/gimp/print.c
+++ b/src/gimp/print.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print.c,v 1.22 2001/09/08 17:17:34 rleigh Exp $"
+ * "$Id: print.c,v 1.22.4.4 2003/01/24 02:52:18 rlk Exp $"
*
* Print plug-in for the GIMP.
*
@@ -764,7 +764,6 @@ add_printer(const gp_plist_t *key, int add_only)
plist_count++;
memcpy(p, key, sizeof(gp_plist_t));
p->v = stp_allocate_copy(key->v);
- p->active = 0;
}
else
{
@@ -1147,8 +1146,6 @@ compare_printers(gp_plist_t *p1, /* I - First printer to compare */
#define PRINTERS_LPC 1
#define PRINTERS_LPSTAT 2
-extern int asprintf (char **result, const char *format, ...);
-
static void
get_system_printers(void)
{
@@ -1182,6 +1179,7 @@ get_system_printers(void)
plist_count = 1;
initialize_printer(&plist[0]);
strcpy(plist[0].name, _("File"));
+ plist[0].active = 1;
stp_set_driver(plist[0].v, "ps2");
stp_set_output_type(plist[0].v, OUTPUT_COLOR);
@@ -1240,8 +1238,21 @@ get_system_printers(void)
if ((ptr = strchr(line, ':')) != NULL &&
line[0] != ' ' && line[0] != '\t')
{
- check_plist(plist_count + 1);
+ int printer_exists = 0;
*ptr = '\0';
+ /* check for duplicate printers--yes, they can happen,
+ * and it makes gimp-print forget everything about the
+ * printer */
+ for (i = 1; i < plist_count; i++)
+ if (strcmp(line, plist[i].name) == 0)
+ {
+ printer_exists = 1;
+ break;
+ }
+ if (printer_exists)
+ break;
+
+ check_plist(plist_count + 1);
initialize_printer(&plist[plist_count]);
strncpy(plist[plist_count].name, line,
sizeof(plist[plist_count].name) - 1);
@@ -1249,10 +1260,11 @@ get_system_printers(void)
fprintf(stderr, "Adding new printer from lpc: <%s>\n",
line);
#endif
- asprintf(&result, "lpr -P%s -l", line);
+ result = g_strdup_printf("lpr -P%s -l", line);
stp_set_output_to(plist[plist_count].v, result);
free(result);
stp_set_driver(plist[plist_count].v, "ps2");
+ plist[plist_count].active = 1;
plist_count ++;
}
break;
@@ -1261,6 +1273,18 @@ get_system_printers(void)
if ((sscanf(line, "printer %127s", name) == 1) ||
(sscanf(line, "Printer: %127s", name) == 1))
{
+ int printer_exists = 0;
+ /* check for duplicate printers--yes, they can happen,
+ * and it makes gimp-print forget everything about the
+ * printer */
+ for (i = 1; i < plist_count; i++)
+ if (strcmp(name, plist[i].name) == 0)
+ {
+ printer_exists = 1;
+ break;
+ }
+ if (printer_exists)
+ break;
check_plist(plist_count + 1);
initialize_printer(&plist[plist_count]);
strncpy(plist[plist_count].name, name,
@@ -1269,10 +1293,11 @@ get_system_printers(void)
fprintf(stderr, "Adding new printer from lpc: <%s>\n",
name);
#endif
- asprintf(&result, "lp -s -d%s -oraw", name);
+ result = g_strdup_printf("lp -s -d%s -oraw", name);
stp_set_output_to(plist[plist_count].v, result);
free(result);
stp_set_driver(plist[plist_count].v, "ps2");
+ plist[plist_count].active = 1;
plist_count ++;
}
else
@@ -1315,5 +1340,5 @@ get_system_printers(void)
}
/*
- * End of "$Id: print.c,v 1.22 2001/09/08 17:17:34 rleigh Exp $".
+ * End of "$Id: print.c,v 1.22.4.4 2003/01/24 02:52:18 rlk Exp $".
*/
diff --git a/src/main/.cvsignore b/src/main/.cvsignore
deleted file mode 100644
index 6886507..0000000
--- a/src/main/.cvsignore
+++ /dev/null
@@ -1,18 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-libgimpprint.la
-print-lexmark.lo
-print-canon.lo
-print-dither.lo
-print-dither-matrices.lo
-print-escp2.lo
-print-pcl.lo
-print-ps.lo
-print-printers.c
-print-util.lo
-print-color.lo
-print-weave.lo
-print-version.lo
-gimpprint-config
diff --git a/src/main/Makefile.am b/src/main/Makefile.am
index ad673e7..dfdc551 100644
--- a/src/main/Makefile.am
+++ b/src/main/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.27 2001/09/17 20:37:57 rleigh Exp $
+## $Id: Makefile.am,v 1.27.4.2 2003/07/12 20:47:44 rleigh Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -32,14 +32,9 @@ INCLUDES = @INCLUDES@
## Programs
-MAIN_BIN = libgimpprint.la
-MAIN_SCR = gimpprint-config
+bin_SCRIPTS = gimpprint-config
-bin_SCRIPTS = @MAIN_SCR@
-EXTRA_SCRIPTS = gimpprint-config
-
-lib_LTLIBRARIES = @MAIN_BIN@
-EXTRA_LTLIBRARIES = libgimpprint.la
+lib_LTLIBRARIES = libgimpprint.la
libgimpprint_la_SOURCES = \
gimp-print-internal.h \
@@ -47,6 +42,8 @@ libgimpprint_la_SOURCES = \
print-canon.c \
print-dither.c \
print-escp2.c \
+ print-escp2.h \
+ print-escp2-data.c \
print-pcl.c \
print-ps.c \
print-util.c \
@@ -54,6 +51,7 @@ libgimpprint_la_SOURCES = \
print-weave.c \
print-version.c \
print-dither-matrices.c \
+ print-dither.h \
quickmatrix257.h \
ran.367.179.h \
ran.509.131.h
@@ -68,10 +66,8 @@ libgimpprint_la_LDFLAGS = \
## Data
-MAIN_DAT = gimpprint.m4
-
m4datadir = $(datadir)/aclocal
-m4data_DATA = @MAIN_DAT@
+m4data_DATA = gimpprint.m4
## Rules
diff --git a/src/main/Makefile.in b/src/main/Makefile.in
new file mode 100644
index 0000000..2660136
--- /dev/null
+++ b/src/main/Makefile.in
@@ -0,0 +1,560 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@
+
+bin_SCRIPTS = gimpprint-config
+
+lib_LTLIBRARIES = libgimpprint.la
+
+libgimpprint_la_SOURCES = gimp-print-internal.h print-lexmark.c print-canon.c print-dither.c print-escp2.c print-escp2.h print-escp2-data.c print-pcl.c print-ps.c print-util.c print-color.c print-weave.c print-version.c print-dither-matrices.c print-dither.h quickmatrix257.h ran.367.179.h ran.509.131.h
+
+libgimpprint_la_LIBADD = $(GIMPPRINT_DEPLIBS)
+# Uncommment to build an unversioned library (version in soname)
+#libgimpprint_la_LDFLAGS = -release $(GIMPPRINT_VERSION) -rpath $(libdir)
+# Uncomment to build a versioned library
+libgimpprint_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -rpath $(libdir)
+
+
+m4datadir = $(datadir)/aclocal
+m4data_DATA = gimpprint.m4
+
+CLEANFILES = print-printers.c
+DISTCLEANFILES = gimpprint-config
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = gimpprint.m4 gimpprint-config.in printers.xml
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = gimpprint-config
+LTLIBRARIES = $(lib_LTLIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libgimpprint_la_DEPENDENCIES =
+libgimpprint_la_OBJECTS = print-lexmark.lo print-canon.lo \
+print-dither.lo print-escp2.lo print-escp2-data.lo print-pcl.lo \
+print-ps.lo print-util.lo print-color.lo print-weave.lo \
+print-version.lo print-dither-matrices.lo
+SCRIPTS = $(bin_SCRIPTS)
+
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DATA = $(m4data_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in gimpprint-config.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(libgimpprint_la_SOURCES)
+OBJECTS = $(libgimpprint_la_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/main/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+gimpprint-config: $(top_builddir)/config.status gimpprint-config.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+mostlyclean-libLTLIBRARIES:
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+
+distclean-libLTLIBRARIES:
+
+maintainer-clean-libLTLIBRARIES:
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
+ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
+ else :; fi; \
+ done
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+ done
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+libgimpprint.la: $(libgimpprint_la_OBJECTS) $(libgimpprint_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libgimpprint_la_LDFLAGS) $(libgimpprint_la_OBJECTS) $(libgimpprint_la_LIBADD) $(LIBS)
+
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ else if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ else :; fi; fi; \
+ done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_SCRIPTS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+
+install-m4dataDATA: $(m4data_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(m4datadir)
+ @list='$(m4data_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(m4datadir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(m4datadir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-m4dataDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(m4data_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(m4datadir)/$$p; \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/main
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+print-canon.lo print-canon.o : print-canon.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-color.lo print-color.o : print-color.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-dither-matrices.lo print-dither-matrices.o : \
+ print-dither-matrices.c ../../config.h print-dither.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ quickmatrix257.h ran.367.179.h ran.509.131.h
+print-dither.lo print-dither.o : print-dither.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ print-dither.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-escp2-data.lo print-escp2-data.o : print-escp2-data.c \
+ ../../config.h ../../include/gimp-print/gimp-print.h \
+ gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h \
+ print-escp2.h
+print-escp2.lo print-escp2.o : print-escp2.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h \
+ print-escp2.h
+print-lexmark.lo print-lexmark.o : print-lexmark.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-pcl.lo print-pcl.o : print-pcl.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-ps.lo print-ps.o : print-ps.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-util.lo print-util.o : print-util.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h \
+ print-printers.c
+print-version.lo print-version.o : print-version.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+print-weave.lo print-weave.o : print-weave.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h gimp-print-internal.h \
+ ../../include/gimp-print/gimp-print-intl-internal.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-libLTLIBRARIES install-binSCRIPTS
+install-exec: install-exec-am
+
+install-data-am: install-m4dataDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-libLTLIBRARIES uninstall-binSCRIPTS \
+ uninstall-m4dataDATA
+uninstall: uninstall-am
+all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(DATA)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(m4datadir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-libLTLIBRARIES distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
+clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
+uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
+distclean-compile clean-compile maintainer-clean-compile \
+mostlyclean-libtool distclean-libtool clean-libtool \
+maintainer-clean-libtool uninstall-binSCRIPTS install-binSCRIPTS \
+uninstall-m4dataDATA install-m4dataDATA tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+print-util.lo: print-printers.c $(srcdir)/print-util.c
+
+print-printers.c: ../printdef/printdef $(srcdir)/printers.xml
+ ../printdef/printdef < $(srcdir)/printers.xml > print-printers.c
+
+printdefl.o: printdefy.o
+
+../printdef/printdef: $(addprefix ../printdef/, printdefl.l printdefy.y printdef.h)
+ cd ../printdef ; \
+ $(MAKE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/main/gimp-print-internal.h b/src/main/gimp-print-internal.h
index 1784c50..95300af 100644
--- a/src/main/gimp-print-internal.h
+++ b/src/main/gimp-print-internal.h
@@ -1,5 +1,5 @@
/*
- * "$Id: gimp-print-internal.h,v 1.43 2001/09/08 17:19:31 rlk Exp $"
+ * "$Id: gimp-print-internal.h,v 1.43.4.4 2002/12/08 21:12:41 rlk Exp $"
*
* Print plug-in header file for the GIMP.
*
@@ -37,32 +37,24 @@
#include <config.h>
#endif
-#ifndef HAVE_ASPRINTF
-#if defined(HAVE_VARARGS_H) && !defined(HAVE_STDARG_H)
-#include <varargs.h>
-#else
-#include <stdarg.h>
-#endif
-extern int vasprintf (char **result, const char *format, va_list args);
-extern int asprintf (char **result, const char *format, ...);
-#endif
-
/*
* ECOLOR_K must be 0
*/
-#define ECOLOR_K 0
-#define ECOLOR_C 1
-#define ECOLOR_M 2
-#define ECOLOR_Y 3
+#define ECOLOR_K 0
+#define ECOLOR_C 1
+#define ECOLOR_M 2
+#define ECOLOR_Y 3
+#define ECOLOR_LC 4
+#define ECOLOR_LM 5
+#define ECOLOR_LY 6
#define NCOLORS (4)
-#define NCHANNELS (7)
#define MAX_WEAVE (8)
typedef struct
{
double value;
unsigned bit_pattern;
- int is_dark;
+ int subchannel;
unsigned dot_size;
} stp_simple_dither_range_t;
@@ -72,7 +64,7 @@ typedef struct
double lower;
double upper;
unsigned bit_pattern;
- int is_dark;
+ int subchannel;
unsigned dot_size;
} stp_dither_range_t;
@@ -80,9 +72,22 @@ typedef struct
{
double value[2];
unsigned bits[2];
- int isdark[2];
+ int subchannel[2];
} stp_full_dither_range_t;
+typedef struct
+{
+ unsigned subchannel_count;
+ unsigned char **c;
+} stp_channel_t;
+
+typedef struct
+{
+ unsigned channel_count;
+ stp_channel_t *c;
+} stp_dither_data_t;
+
+
typedef struct /* Weave parameters for a specific row */
{
int row; /* Absolute row # */
@@ -114,57 +119,24 @@ typedef struct /* Weave parameters for a specific pass */
int subpass;
} stp_pass_t;
-typedef union { /* Offsets from the start of each line */
- unsigned long v[NCHANNELS]; /* (really pass) */
- struct {
- unsigned long k;
- unsigned long m;
- unsigned long c;
- unsigned long y;
- unsigned long M;
- unsigned long C;
- unsigned long Y;
- } p;
+typedef struct { /* Offsets from the start of each line */
+ int ncolors;
+ unsigned long *v; /* (really pass) */
} stp_lineoff_t;
-typedef union { /* Is this line active? */
- char v[NCHANNELS]; /* (really pass) */
- struct {
- char k;
- char m;
- char c;
- char y;
- char M;
- char C;
- char Y;
- } p;
+typedef struct { /* Is this line (really pass) active? */
+ int ncolors;
+ char *v;
} stp_lineactive_t;
-typedef union { /* number of rows for a pass */
- int v[NCHANNELS]; /* (really pass) */
- struct {
- int k;
- int m;
- int c;
- int y;
- int M;
- int C;
- int Y;
- } p;
+typedef struct { /* number of rows for a pass */
+ int ncolors;
+ int *v;
} stp_linecount_t;
-
-typedef union { /* Base pointers for each pass */
- unsigned char *v[NCHANNELS];
- struct {
- unsigned char *k;
- unsigned char *m;
- unsigned char *c;
- unsigned char *y;
- unsigned char *M;
- unsigned char *C;
- unsigned char *Y;
- } p;
+typedef struct { /* Base pointers for each pass */
+ int ncolors;
+ unsigned char **v;
} stp_linebufs_t;
typedef struct stp_softweave
@@ -194,7 +166,7 @@ typedef struct stp_softweave
int vmod; /* Number of banks of passes */
int oversample; /* Excess precision per row */
int repeat_count; /* How many times a pass is repeated */
- int ncolors; /* How many colors (1, 4, or 6) */
+ int ncolors; /* How many colors */
int linewidth; /* Line width in input pixels */
int vertical_height; /* Image height in output pixels */
int firstline; /* Actual first line (referenced to paper) */
@@ -203,13 +175,8 @@ typedef struct stp_softweave
int lineno;
int vertical_oversample; /* Vertical oversampling */
int current_vertical_subpass;
- int separation_rows; /* Vertical spacing between rows. */
- /* This is used for the 1520/3000, which */
- /* use a funny value for the "print density */
- /* in the vertical direction". */
int horizontal_width; /* Horizontal width, in bits */
- int last_color;
- int head_offset[NCHANNELS]; /* offset of printheads */
+ int *head_offset; /* offset of printheads */
unsigned char *s[MAX_WEAVE];
unsigned char *fold_buf;
unsigned char *comp_buf;
@@ -254,10 +221,6 @@ typedef struct stp_dither_matrix
const void *data;
} stp_dither_matrix_t;
-extern const stp_dither_matrix_short_t stp_1_1_matrix;
-extern const stp_dither_matrix_short_t stp_2_1_matrix;
-extern const stp_dither_matrix_short_t stp_4_1_matrix;
-
/*
* Prototypes...
*/
@@ -314,13 +277,14 @@ extern int stp_dither_get_last_position(void *vd, int color, int dark);
extern void stp_free_dither(void *);
+extern stp_dither_data_t *stp_create_dither_data(void);
+extern void stp_add_channel(stp_dither_data_t *d, unsigned char *data,
+ unsigned channel, unsigned subchannel);
+extern void stp_free_dither_data(stp_dither_data_t *d);
extern void stp_dither(const unsigned short *, int, void *,
- unsigned char *,
- unsigned char *, unsigned char *,
- unsigned char *, unsigned char *,
- unsigned char *, unsigned char *,
- int duplicate_line, int zero_mask);
+ stp_dither_data_t *, int duplicate_line,
+ int zero_mask);
extern void stp_fold(const unsigned char *line, int single_height,
unsigned char *outbuf);
@@ -356,7 +320,7 @@ extern int stp_pack_uncompressed(const unsigned char *line, int height,
extern void *stp_initialize_weave(int jets, int separation, int oversample,
int horizontal, int vertical,
int ncolors, int width, int linewidth,
- int lineheight, int vertical_row_separation,
+ int lineheight,
int first_line, int phys_lines, int strategy,
int *head_offset, /* Get from model - used for 480/580 printers */
stp_vars_t v,
@@ -385,7 +349,10 @@ extern void stp_fill_uncompressed(stp_softweave_t *sw, int row, int subpass,
extern int stp_compute_tiff_linewidth(const stp_softweave_t *sw, int n);
extern int stp_compute_uncompressed_linewidth(const stp_softweave_t *sw, int n);
-
+extern int stp_start_job(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
+extern int stp_end_job(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v);
extern void stp_flush_all(void *, int model, int width, int hoffset,
int ydpi, int xdpi, int physical_xdpi);
@@ -399,7 +366,7 @@ stp_write_weave(void * vsw,
int offset, /* I - Offset from left side of page */
int xdpi,
int physical_xdpi,
- const unsigned char *cols[]);
+ unsigned char *const cols[]);
extern stp_lineoff_t *
stp_get_lineoffsets_by_pass(const stp_softweave_t *sw, int pass);
@@ -450,11 +417,15 @@ extern void stp_erprintf(const char *format, ...);
#define STP_DBG_LEXMARK 0x80
#define STP_DBG_WEAVE_PARAMS 0x100
#define STP_DBG_ROWS 0x200
+#define STP_DBG_MARK_FILE 0x400
extern void stp_dprintf(unsigned long level, const stp_vars_t v,
const char *format, ...);
extern void stp_deprintf(unsigned long level, const char *format, ...);
+extern unsigned long stp_debug_level;
extern void *stp_malloc (size_t);
+extern void *stp_zalloc (size_t);
+extern void *stp_realloc (void *ptr, size_t);
extern void stp_free(void *ptr);
/* Uncomment the next line to get performance statistics:
@@ -520,5 +491,5 @@ extern void print_timers(void );
#endif /* _GIMP_PRINT_INTERNAL_H_ */
/*
- * End of "$Id: gimp-print-internal.h,v 1.43 2001/09/08 17:19:31 rlk Exp $".
+ * End of "$Id: gimp-print-internal.h,v 1.43.4.4 2002/12/08 21:12:41 rlk Exp $".
*/
diff --git a/src/main/gimpprint-config.in b/src/main/gimpprint-config.in
index 48835d8..45753f0 100644
--- a/src/main/gimpprint-config.in
+++ b/src/main/gimpprint-config.in
@@ -88,6 +88,6 @@ fi
if test "$echo_libs" = "yes"; then
libdirs=-L@libdir@
- echo $libdirs $gimpprint_libs @INTLLIBS@
+ echo $libdirs $gimpprint_libs
fi
diff --git a/src/main/gimpprint.m4 b/src/main/gimpprint.m4
index c8509e9..0da0030 100644
--- a/src/main/gimpprint.m4
+++ b/src/main/gimpprint.m4
@@ -5,7 +5,7 @@
dnl AM_PATH_GIMPPRINT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GIMP-PRINT, and define GIMPPRINT_CFLAGS and GIMPPRINT_LIBS
dnl
-AC_DEFUN(AM_PATH_GIMPPRINT,
+AC_DEFUN([AM_PATH_GIMPPRINT],
[dnl
dnl Get the cflags and libraries from the gimpprint-config script
dnl
@@ -60,6 +60,7 @@ dnl
#include <gimp-print/gimp-print.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
int
main ()
diff --git a/src/main/print-canon.c b/src/main/print-canon.c
index fc5425e..e021dc3 100644
--- a/src/main/print-canon.c
+++ b/src/main/print-canon.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-canon.c,v 1.71 2001/10/27 17:16:39 rlk Exp $"
+ * "$Id: print-canon.c,v 1.71.2.9 2003/10/19 23:48:19 rlk Exp $"
*
* Print plug-in CANON BJL driver for the GIMP.
*
@@ -52,6 +52,7 @@
#else
#include <stdarg.h>
#endif
+#include <ctype.h>
#if (0)
#define EXPERIMENTAL_STUFF 0
@@ -216,8 +217,8 @@ typedef struct canon_variable_printmode
*/
static const stp_simple_dither_range_t canon_dither_ranges_Cc_1bit[] =
{
- { 0.25, 0x1, 0, 1 },
- { 1.0, 0x1, 1, 1 }
+ { 0.25, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
};
static const canon_variable_ink_t canon_ink_Cc_1bit =
@@ -233,8 +234,8 @@ static const canon_variable_ink_t canon_ink_Cc_1bit =
*/
static const stp_simple_dither_range_t canon_dither_ranges_Mm_1bit[] =
{
- { 0.26, 0x1, 0, 1 },
- { 1.0, 0x1, 1, 1 }
+ { 0.26, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
};
static const canon_variable_ink_t canon_ink_Mm_1bit =
@@ -251,9 +252,9 @@ static const canon_variable_ink_t canon_ink_Mm_1bit =
*/
static const stp_simple_dither_range_t canon_dither_ranges_X_2bit[] =
{
- { 0.45, 0x1, 1, 1 },
- { 0.68, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
+ { 0.45, 0x1, 0, 1 },
+ { 0.68, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 3 }
};
static const canon_variable_ink_t canon_ink_X_2bit =
@@ -269,12 +270,12 @@ static const canon_variable_ink_t canon_ink_X_2bit =
*/
static const stp_simple_dither_range_t canon_dither_ranges_Xx_2bit[] =
{
- { 0.15, 0x1, 0, 1 },
- { 0.227, 0x2, 0, 2 },
-/* { 0.333, 0x3, 0, 3 }, */
- { 0.45, 0x1, 1, 1 },
- { 0.68, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
+ { 0.15, 0x1, 1, 1 },
+ { 0.227, 0x2, 1, 2 },
+/*{ 0.333, 0x3, 1, 3 }, */
+ { 0.45, 0x1, 0, 1 },
+ { 0.68, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 3 }
};
static const canon_variable_ink_t canon_ink_Xx_2bit =
@@ -297,12 +298,12 @@ static const canon_variable_ink_t canon_ink_Xx_2bit =
*/
static const stp_simple_dither_range_t canon_dither_ranges_X_3bit[] =
{
- { 0.45, 0x1, 1, 1 },
- { 0.55, 0x2, 1, 2 },
- { 0.66, 0x3, 1, 3 },
- { 0.77, 0x4, 1, 4 },
- { 0.88, 0x5, 1, 5 },
- { 1.0, 0x6, 1, 6 }
+ { 0.45, 0x1, 0, 1 },
+ { 0.55, 0x2, 0, 2 },
+ { 0.66, 0x3, 0, 3 },
+ { 0.77, 0x4, 0, 4 },
+ { 0.88, 0x5, 0, 5 },
+ { 1.0, 0x6, 0, 6 }
};
static const canon_variable_ink_t canon_ink_X_3bit =
@@ -318,16 +319,16 @@ static const canon_variable_ink_t canon_ink_X_3bit =
*/
static const stp_simple_dither_range_t canon_dither_ranges_Xx_3bit[] =
{
- { 0.15, 0x1, 0, 1 },
- { 0.227, 0x2, 0, 2 },
- { 0.333, 0x3, 0, 3 },
-/* { 0.333, 0x3, 0, 3 }, */
- { 0.45, 0x1, 1, 1 },
- { 0.55, 0x2, 1, 2 },
- { 0.66, 0x3, 1, 3 },
- { 0.77, 0x4, 1, 4 },
- { 0.88, 0x5, 1, 5 },
- { 1.0, 0x6, 1, 6 }
+ { 0.15, 0x1, 1, 1 },
+ { 0.227, 0x2, 1, 2 },
+ { 0.333, 0x3, 1, 3 },
+/* { 0.333, 0x3, 1, 3 }, */
+ { 0.45, 0x1, 0, 1 },
+ { 0.55, 0x2, 0, 2 },
+ { 0.66, 0x3, 0, 3 },
+ { 0.77, 0x4, 0, 4 },
+ { 0.88, 0x5, 0, 5 },
+ { 1.0, 0x6, 0, 6 }
};
static const canon_variable_ink_t canon_ink_Xx_3bit =
@@ -485,166 +486,51 @@ static const canon_variable_inklist_t canon_ink_superphoto[] =
},
};
-
static const double standard_sat_adjustment[49] =
{
- 1.0, /* C */
- 1.1,
- 1.2,
- 1.3,
- 1.4,
- 1.5,
- 1.6,
- 1.7,
- 1.8, /* B */
- 1.9,
- 1.9,
- 1.9,
- 1.7,
- 1.5,
- 1.3,
- 1.1,
- 1.0, /* M */
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0, /* R */
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0, /* Y */
- 1.0,
- 1.0,
- 1.1,
- 1.2,
- 1.3,
- 1.4,
- 1.5,
- 1.5, /* G */
- 1.4,
- 1.3,
- 1.2,
- 1.1,
- 1.0,
- 1.0,
- 1.0,
+ 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, /* C */
+ 1.8, 1.9, 1.9, 1.9, 1.7, 1.5, 1.3, 1.1, /* B */
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, /* M */
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, /* R */
+ 1.0, 1.0, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, /* Y */
+ 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 1.0, 1.0, /* G */
1.0 /* C */
};
static const double standard_lum_adjustment[49] =
{
- 0.50, /* C */
- 0.6,
- 0.7,
- 0.8,
- 0.9,
- 0.86,
- 0.82,
- 0.79,
- 0.78, /* B */
- 0.8,
- 0.83,
- 0.87,
- 0.9,
- 0.95,
- 1.05,
- 1.15,
- 1.3, /* M */
- 1.25,
- 1.2,
- 1.15,
- 1.12,
- 1.09,
- 1.06,
- 1.03,
- 1.0, /* R */
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0, /* Y */
- 0.9,
- 0.8,
- 0.7,
- 0.65,
- 0.6,
- 0.55,
- 0.52,
- 0.48, /* G */
- 0.47,
- 0.47,
- 0.49,
- 0.49,
- 0.49,
- 0.52,
- 0.51,
+ 0.50, 0.6, 0.7, 0.8, 0.9, 0.86, 0.82, 0.79, /* C */
+ 0.78, 0.8, 0.83, 0.87, 0.9, 0.95, 1.05, 1.15, /* B */
+ 1.3, 1.25, 1.2, 1.15, 1.12, 1.09, 1.06, 1.03, /* M */
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, /* R */
+ 1.0, 0.9, 0.8, 0.7, 0.65, 0.6, 0.55, 0.52, /* Y */
+ 0.48, 0.47, 0.47, 0.49, 0.49, 0.49, 0.52, 0.51, /* G */
0.50 /* C */
};
static const double standard_hue_adjustment[49] =
{
+ 0.00, 0.05, 0.04, 0.01, -.03, -.10, -.18, -.26, /* C */
+ -.35, -.43, -.40, -.32, -.25, -.18, -.10, -.07, /* B */
+ 0.00, -.04, -.09, -.13, -.18, -.23, -.27, -.31, /* M */
+ -.35, -.38, -.30, -.23, -.15, -.08, 0.00, -.02, /* R */
+ 0.00, 0.08, 0.10, 0.08, 0.05, 0.03, -.03, -.12, /* Y */
+ -.20, 0.17, -.20, -.17, -.15, -.12, -.10, -.08, /* G */
0.00, /* C */
- 0.05,
- 0.04,
- 0.01,
- -0.03,
- -0.10,
- -0.18,
- -0.26,
- -0.35, /* B */
- -0.43,
- -0.40,
- -0.32,
- -0.25,
- -0.18,
- -0.10,
- -0.07,
- 0.00, /* M */
- -0.04,
- -0.09,
- -0.13,
- -0.18,
- -0.23,
- -0.27,
- -0.31,
- -0.35, /* R */
- -0.38,
- -0.30,
- -0.23,
- -0.15,
- -0.08,
- 0.00,
- -0.02,
- 0.00, /* Y */
- 0.08,
- 0.10,
- 0.08,
- 0.05,
- 0.03,
- -0.03,
- -0.12,
- -0.20, /* G */
- -0.17,
- -0.20,
- -0.17,
- -0.15,
- -0.12,
- -0.10,
- -0.08,
- 0.00, /* C */
};
+static const double plain_paper_lum_adjustment[49] =
+{
+ 1.2, 1.22, 1.28, 1.34, 1.39, 1.42, 1.45, 1.48, /* C */
+ 1.5, 1.4, 1.3, 1.25, 1.2, 1.1, 1.05, 1.05, /* B */
+ 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, /* M */
+ 1.05, 1.05, 1.05, 1.1, 1.1, 1.1, 1.1, 1.1, /* R */
+ 1.1, 1.15, 1.3, 1.45, 1.6, 1.75, 1.9, 2.0, /* Y */
+ 2.1, 2.0, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3, /* G */
+ 1.2 /* C */
+};
+
+
typedef enum {
COLOR_MONOCHROME = 1,
COLOR_CMY = 3,
@@ -684,6 +570,12 @@ typedef struct canon_caps {
const double *sat_adjustment;
} canon_cap_t;
+typedef struct canon_privdata_weave {
+ int bidirectional; /* tells us if we are allowed to print bidirectional */
+ int direction; /* stores the last direction of the print head */
+} canon_privdata_weave;
+
+
static void canon_write_line(const stp_vars_t, const canon_cap_t *, int,
unsigned char *, int,
unsigned char *, int,
@@ -732,6 +624,9 @@ static void canon_write_line(const stp_vars_t, const canon_cap_t *, int,
#define CANON_CAP_r 0x800ul
#define CANON_CAP_g 0x1000ul
#define CANON_CAP_ACKSHORT 0x2000ul
+#define CANON_CAP_rr 0x4000ul
+#define CANON_CAP_WEAVE 0x8000ul /* S200 has to be fed with weaved data */
+ /* for Resolutions above 360dpi */
#define CANON_CAP_STD0 (CANON_CAP_b|CANON_CAP_c|CANON_CAP_d|\
CANON_CAP_l|CANON_CAP_q|CANON_CAP_t)
@@ -819,6 +714,27 @@ static const canon_cap_t canon_model_capabilities[] =
/* */
/* ************************************ */
+ { /* Canon S200x *//* heads: BC-24 */
+ 4202, 3,
+ 618, 936, /* 8.58" x 13 " */
+ 180, 2880, 2880, 4,
+ 10, 10, 9, 20,
+ CANON_INK_CMYK | CANON_INK_CMY | CANON_INK_K,
+ CANON_SLOT_ASF1,
+ CANON_CAP_STD1 | CANON_CAP_rr | CANON_CAP_WEAVE,
+ CANON_MODES(canon_nomodes),
+#ifndef EXPERIMENTAL_STUFF
+/* 2880dpi Resolutions: TBD */
+/* 180x180 360x360 720x720 1440x720 1440x1440 2880x2880 */
+ {-1, 0, 0, 0, 0, -1},
+/*------- 360x360 720x720 1440x720 1440x1440 ---------*/
+ { 1, 2, 1, 0.5, 0.3, 0.2},
+ CANON_INK(canon_ink_standard),
+#endif
+ standard_lum_adjustment,
+ standard_hue_adjustment,
+ standard_sat_adjustment
+ },
{ /* Canon BJ 30 *//* heads: BC-10 */
30, 1,
@@ -936,7 +852,7 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 6500 *//* heads: BC-30/BC-31 BC-32/BC-31 */
6500, 3,
- 11*72, 17*72,
+ 842, 17*72,
180, 1440, 720, 2,
11, 9, 10, 18,
CANON_INK_CMYK | CANON_INK_CcMmYK,
@@ -955,7 +871,7 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 8200 *//* heads: BC-50 */
8200, 3,
- 11*72, 17*72,
+ 842, 17*72,
150, 1200,1200, 4,
11, 9, 10, 18,
CANON_INK_CMYK, /* | CANON_INK_CcMmYK */
@@ -982,7 +898,7 @@ static const canon_cap_t canon_model_capabilities[] =
{ /* Canon BJC 210 *//* heads: BC-02 BC-05 BC-06 */
210, 1,
- 11*72, 17*72,
+ 618, 936, /* 8.58" x 13 " */
90, 720, 360, 2,
11, 9, 10, 18,
CANON_INK_K | CANON_INK_CMY,
@@ -1000,7 +916,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 240 *//* heads: BC-02 BC-05 BC-06 */
240, 1,
- 11*72, 17*72,
+ 618, 936, /* 8.58" x 13 " */
90, 720, 360, 2,
11, 9, 10, 18,
CANON_INK_K | CANON_INK_CMY,
@@ -1018,7 +934,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 250 *//* heads: BC-02 BC-05 BC-06 */
250, 1,
- 11*72, 17*72,
+ 618, 936, /* 8.58" x 13 " */
90, 720, 360, 2,
11, 9, 10, 18,
CANON_INK_K | CANON_INK_CMY,
@@ -1036,7 +952,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 1000 *//* heads: BC-02 BC-05 BC-06 */
1000, 1,
- 11*72, 17*72,
+ 842, 17*72,
90, 720, 360, 2,
11, 9, 10, 18,
CANON_INK_K | CANON_INK_CMY,
@@ -1054,7 +970,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 2000 *//* heads: BC-20 BC-21 BC-22 BC-29 */
2000, 1,
- 11*72, 17*72,
+ 842, 17*72,
180, 720, 360, 2,
11, 9, 10, 18,
CANON_INK_CMYK,
@@ -1072,7 +988,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 3000 *//* heads: BC-30 BC-33 BC-34 */
3000, 3,
- 11*72, 17*72,
+ 842, 17*72,
180, 1440, 720, 2,
11, 9, 10, 18,
CANON_INK_CMYK | CANON_INK_CcMmYK,
@@ -1090,7 +1006,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 6100 *//* heads: BC-30/BC-31 BC-32/BC-31 */
6100, 3,
- 11*72, 17*72,
+ 842, 17*72,
180, 1440, 720, 2,
11, 9, 10, 18,
CANON_INK_CMYK | CANON_INK_CcMmYK,
@@ -1108,7 +1024,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 7000 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
7000, 3,
- 11*72, 17*72,
+ 842, 17*72,
150, 1200, 600, 2,
11, 9, 10, 18,
CANON_INK_CMYK | CANON_INK_CcMmYyK,
@@ -1126,7 +1042,7 @@ static const canon_cap_t canon_model_capabilities[] =
},
{ /* Canon BJC 7100 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */
7100, 3,
- 11*72, 17*72,
+ 842, 17*72,
150, 1200, 600, 2,
11, 9, 10, 18,
CANON_INK_CMYK | CANON_INK_CcMmYyK,
@@ -1224,60 +1140,6 @@ static const canon_cap_t canon_model_capabilities[] =
},
};
-
-static const double plain_paper_lum_adjustment[49] =
-{
- 1.2, /* C */
- 1.22,
- 1.28,
- 1.34,
- 1.39,
- 1.42,
- 1.45,
- 1.48,
- 1.5, /* B */
- 1.4,
- 1.3,
- 1.25,
- 1.2,
- 1.1,
- 1.05,
- 1.05,
- 1.05, /* M */
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05, /* R */
- 1.05,
- 1.05,
- 1.1,
- 1.1,
- 1.1,
- 1.1,
- 1.1,
- 1.1, /* Y */
- 1.15,
- 1.3,
- 1.45,
- 1.6,
- 1.75,
- 1.9,
- 2.0,
- 2.1, /* G */
- 2.0,
- 1.8,
- 1.7,
- 1.6,
- 1.5,
- 1.4,
- 1.3,
- 1.2 /* C */
-};
-
typedef struct {
const char *name;
const char *text;
@@ -1321,8 +1183,16 @@ static const paper_t canon_paper_list[] = {
{ "Other", N_ ("Other"), 0x00, 0.50, 0.25, .5, 0, 0, 0 },
};
+/* ---- Function prototypes ----*/
+
+static void canon_advance_paper(stp_vars_t, int);
+
static const int paper_type_count = sizeof(canon_paper_list) / sizeof(paper_t);
+static void canon_flush_pass(stp_softweave_t *sw, int passno, int model, int width,
+ int hoffset, int ydpi, int xdpi, int physical_xdpi,
+ int vertical_subpass);
+
static const paper_t *
get_media_type(const char *name)
{
@@ -1336,8 +1206,8 @@ get_media_type(const char *name)
return NULL;
}
-
-static const canon_cap_t * canon_get_model_capabilities(int model)
+static const canon_cap_t *
+canon_get_model_capabilities(int model)
{
int i;
int models= sizeof(canon_model_capabilities) / sizeof(canon_cap_t);
@@ -1589,7 +1459,7 @@ canon_describe_resolution(const stp_printer_t printer,
return;
}
-static stp_param_t media_sources[] =
+static const stp_param_t media_sources[] =
{
{ "Auto", N_ ("Auto Sheet Feeder") },
{ "Manual", N_ ("Manual with Pause") },
@@ -1608,7 +1478,6 @@ canon_parameters(const stp_printer_t printer, /* I - Printer model */
int *count) /* O - Number of values */
{
int i;
- stp_param_t *p= 0;
stp_param_t *valptrs= 0;
const canon_cap_t * caps=
@@ -1626,7 +1495,7 @@ canon_parameters(const stp_printer_t printer, /* I - Printer model */
{
int height_limit, width_limit;
int papersizes = stp_known_papersizes();
- valptrs = stp_malloc(sizeof(stp_param_t) * papersizes);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * papersizes);
*count = 0;
width_limit = caps->max_width;
@@ -1650,7 +1519,7 @@ canon_parameters(const stp_printer_t printer, /* I - Printer model */
int x,y;
int c= 0;
int t;
- valptrs = stp_malloc(sizeof(stp_param_t) * 10);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * 10);
for (x=1; x<6; x++) {
for (y=x-1; y<x+1; y++) {
@@ -1681,7 +1550,7 @@ canon_parameters(const stp_printer_t printer, /* I - Printer model */
else if (strcmp(name, "InkType") == 0)
{
int c= 0;
- valptrs = stp_malloc(sizeof(stp_param_t) * 5);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * 5);
/* used internally: do not translate */
if ((caps->inks & CANON_INK_K))
{
@@ -1715,7 +1584,7 @@ canon_parameters(const stp_printer_t printer, /* I - Printer model */
{
*count = sizeof(canon_paper_list) / sizeof(canon_paper_list[0]);
- valptrs = stp_malloc(*count * sizeof(stp_param_t));
+ valptrs = stp_zalloc(*count * sizeof(stp_param_t));
for (i = 0; i < *count; i ++)
{
@@ -1725,15 +1594,14 @@ canon_parameters(const stp_printer_t printer, /* I - Printer model */
}
else if (strcmp(name, "InputSlot") == 0)
{
- *count = 3;
- p = media_sources;
+ *count = sizeof(media_sources) / sizeof(media_sources[0]);
- valptrs = stp_malloc(*count * sizeof(stp_param_t));
+ valptrs = stp_zalloc(*count * sizeof(stp_param_t));
for (i = 0; i < *count; i ++)
{
/* translate media_sources */
- valptrs[i].name = c_strdup(p[i].name);
- valptrs[i].text = c_strdup(_(p[i].text));
+ valptrs[i].name = c_strdup(media_sources[i].name);
+ valptrs[i].text = c_strdup(_(media_sources[i].text));
}
}
else
@@ -1878,7 +1746,7 @@ canon_cmd(const stp_vars_t v, /* I - the printer */
... /* I - the args themselves */
)
{
- unsigned char *buffer = stp_malloc(num + 1);
+ unsigned char *buffer = stp_zalloc(num + 1);
int i;
va_list ap;
@@ -1957,21 +1825,65 @@ static void
canon_init_setColor(const stp_vars_t v, canon_init_t *init)
{
unsigned char
- arg_63_1 = 0x00,
- arg_63_2 = 0x00, /* plain paper */
- arg_63_3 = 0x00; /* output quality, hardcoded to Normal for now */
+ numargs, arg_63[6];
+
if (!(init->caps->features & CANON_CAP_c))
return;
- arg_63_1 = init->caps->model_id << 4;
-
- if (init->output_type==OUTPUT_GRAY || init->output_type == OUTPUT_MONOCHROME)
- arg_63_1|= 0x01;
+ numargs = 3;
+ arg_63[0] = init->caps->model_id << 4; /* MODEL_ID */
+
+ switch ( init->caps->model_id ) {
+
+ case 0: /* very old 360 dpi series: BJC-800/820 */
+ break; /* tbd */
+
+ case 1: /* 360 dpi series - BJC-4000, BJC-210, BJC-70 and their descendants */
+ if (init->output_type==OUTPUT_GRAY || init->output_type == OUTPUT_MONOCHROME)
+ arg_63[0]|= 0x01; /* PRINT_COLOUR */
+
+ arg_63[1] = ((init->pt ? init->pt->media_code : 0) << 4) /* PRINT_MEDIA */
+ + 1; /* hardcode to High quality for now */ /* PRINT_QUALITY */
+
+ canon_cmd(v,ESC28,0x63, 2, arg_63[0], arg_63[1]);
+ break;
+
+ case 2: /* are any models using this? */
+ break;
+
+ case 3: /* 720 dpi series - BJC-3000 and descendants */
+ if (init->output_type==OUTPUT_GRAY || init->output_type == OUTPUT_MONOCHROME)
+ arg_63[0]|= 0x01; /* colour mode */
+
+ arg_63[1] = (init->pt) ? init->pt->media_code : 0; /* print media type */
+ if (init->caps->model == 4202) /* S200 */
+ {
+ if ((init->xdpi == 720) && (init->ydpi == 720 ))
+ arg_63[2] = 1;
+ else
+ arg_63[2] = 4; /* hardcoded: quality 3 (may be 0...4) */
+ /* bidirectional is controlled via quality: 0..2 is bidi, 3 and 4 uni */
+ /* not every combination works, no idea about the principle */
+ if ( (init->xdpi > 360) || (init->ydpi > 360) )
+ {
+ numargs = 6;
+ arg_63[3] = 0x10; arg_63[4] = 6; arg_63[5] = 8; /* arg5 makes a vert. offset for K */
+ if (init->output_type==OUTPUT_GRAY || init->output_type == OUTPUT_MONOCHROME)
+ arg_63[4] = 1;
+ }
+ }
+ else
+ arg_63[2] = 2; /* hardcode to whatever this means for now; quality, apparently */
+
+ stp_zprintf(v, "\033\050\143");
+ stp_putc((numargs & 255),v);
+ stp_putc((numargs >> 8 ),v);
+ stp_zfwrite((const char *)arg_63, numargs, 1, v);
+ break;
+ }
- if (init->pt) arg_63_2= init->pt->media_code;
-
- canon_cmd(v,ESC28,0x63, 3, arg_63_1, arg_63_2, arg_63_3);
+ return;
}
/* ESC (d -- 0x64 -- -- set raster resolution:
@@ -1981,10 +1893,19 @@ canon_init_setResolution(const stp_vars_t v, canon_init_t *init)
{
if (!(init->caps->features & CANON_CAP_d))
return;
-
+ if (init->caps->model != 4202 || (init->xdpi < 360))
canon_cmd(v,ESC28,0x64, 4,
(init->ydpi >> 8 ), (init->ydpi & 255),
(init->xdpi >> 8 ), (init->xdpi & 255));
+ else
+ if (init->xdpi < 2880)
+ canon_cmd(v,ESC28,0x64, 4,
+ (720 >> 8), (720 & 255),
+ (720 >> 8), (720 & 255));
+ else
+ canon_cmd(v,ESC28,0x64, 4,
+ (720 >> 8), (720 & 255),
+ (2880 >> 8), (2880 & 255));
}
/* ESC (g -- 0x67 -- cmdSetPageMargins --:
@@ -2033,12 +1954,13 @@ canon_init_setTray(const stp_vars_t v, canon_init_t *init)
arg_6c_1|= (source & 0x0f);
- if (init->pt) arg_6c_2= init->pt->media_code;
+ if (init->pt)
+ arg_6c_2 = init->pt->media_code;
canon_cmd(v,ESC28,0x6c, 2, arg_6c_1, arg_6c_2);
}
-/* ESC (m -- 0x6d -- -- :
+/* ESC (m -- 0x6d -- cmdSetPrintMode -- :
*/
static void
canon_init_setPrintMode(const stp_vars_t v, canon_init_t *init)
@@ -2046,7 +1968,8 @@ canon_init_setPrintMode(const stp_vars_t v, canon_init_t *init)
unsigned char
arg_6d_1 = 0x03, /* color printhead? */
arg_6d_2 = 0x00, /* 00=color 02=b/w */
- arg_6d_3 = 0x00, /* only 01 for bjc8200 */
+ arg_6d_3 = 0x00, /* only 01 for bjc8200 and S200*/
+ /* S200:for envelope and t-shirt transfer = 03 */
arg_6d_a = 0x03, /* A4 paper */
arg_6d_b = 0x00;
@@ -2066,7 +1989,7 @@ canon_init_setPrintMode(const stp_vars_t v, canon_init_t *init)
if (init->output_type==OUTPUT_GRAY || init->output_type == OUTPUT_MONOCHROME)
arg_6d_2= 0x02;
- if (init->caps->model==8200)
+ if (init->caps->model==8200 || init->caps->model==4202)
arg_6d_3= 0x01;
canon_cmd(v,ESC28,0x6d,12, arg_6d_1,
@@ -2082,6 +2005,7 @@ canon_init_setPageMargins2(const stp_vars_t v, canon_init_t *init)
/* TOFIX: what exactly is to be sent?
* Is it the printable length or the bottom border?
* Is is the printable width or the right border?
+ * [KF] I think the printable width/length in units of 1/60 inch
*/
int printable_width= init->page_width*5/6;
@@ -2111,15 +2035,29 @@ canon_init_setPageID(const stp_vars_t v, canon_init_t *init)
canon_cmd(v,ESC28,0x71, 1, 0x01);
}
-/* ESC (r -- 0x72 -- -- :
+/* ESC (r -- 0x72 -- ??? set direction ??? -- :
*/
static void
canon_init_setX72(const stp_vars_t v, canon_init_t *init)
{
- if (!(init->caps->features & CANON_CAP_r))
+ if ( !( (init->caps->features & CANON_CAP_r)
+ || (init->caps->features & CANON_CAP_rr) ) )
return;
- canon_cmd(v,ESC28,0x72, 1, 0x61); /* whatever for - 8200 needs it */
+ if ( (init->caps->features & CANON_CAP_r)
+ || (init->caps->features & CANON_CAP_rr) )
+ canon_cmd(v,ESC28,0x72, 1, 0x61); /* whatever for - 8200/S200 need it */
+ if (init->caps->features & CANON_CAP_rr)
+ canon_cmd(v,ESC28,0x72, 3, 0x63, 1, 0); /* whatever for - S200 needs it */
+ /* probably to set the print direction of the head */
+}
+
+/* ESC (r -- 0x72 -- ??? set direction ??? -- :
+ only works if quality = 01 (S200) */
+static void
+canon_set_X72(const stp_vars_t v, int x72arg)
+{
+ canon_cmd(v,ESC28,0x72, 3, 0x63, x72arg, 0);
}
/* ESC (t -- 0x74 -- cmdSetImage --:
@@ -2135,6 +2073,17 @@ canon_init_setImage(const stp_vars_t v, canon_init_t *init)
if (!(init->caps->features & CANON_CAP_t))
return;
+
+ if (init->caps->model==4202) /* 1 bit per pixel (arg 4,7,10,13); */
+ /* 2 level per pixel (arg 6,9,12,15) for each color */
+ /* though we print only 1bit/pixel - but this is how */
+ /* the windows driver works */
+ {
+ canon_cmd(v,ESC28,0x74, 30, 0x80, 4, 1, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2,\
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ return;
+ }
+
if (init->xdpi==1440) arg_74_2= 0x04;
if (init->ydpi>=720) arg_74_3= 0x09;
@@ -2199,20 +2148,19 @@ canon_deinit_printer(const stp_vars_t v, canon_init_t *init)
canon_cmd(v,ESC28,0x62,1,0);
if (init->caps->features & CANON_CAP_a)
canon_cmd(v,ESC28,0x61, 1, 0);
- canon_cmd(v,ESC40,0,0);
}
-
-/*
- * 'alloc_buffer()' allocates buffer and fills it with 0
- */
-static unsigned char *
-canon_alloc_buffer(int size)
+static int
+canon_end_job(const stp_printer_t printer, /* I - Model */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v)
{
- unsigned char *buf= stp_malloc(size);
- if (buf)
- memset(buf,0,size);
- return buf;
+ if (!stp_get_verified(v))
+ return 0;
+ if (stp_get_job_mode(v) != STP_JOB_MODE_JOB)
+ return 0;
+ canon_cmd(v,ESC40,0,0);
+ return 1;
}
/*
@@ -2253,14 +2201,10 @@ canon_print(const stp_printer_t printer, /* I - Model */
int xdpi, ydpi; /* Resolution */
int n; /* Output number */
unsigned short *out; /* Output pixels (16-bit) */
- unsigned char *in, /* Input pixels */
- *black, /* Black bitmap data */
- *cyan, /* Cyan bitmap data */
- *magenta, /* Magenta bitmap data */
- *yellow, /* Yellow bitmap data */
- *lcyan, /* Light cyan bitmap data */
- *lmagenta, /* Light magenta bitmap data */
- *lyellow; /* Light yellow bitmap data */
+ unsigned char *in; /* Input pixels */
+ unsigned char *cols[7]; /* Bitmap data: cols[0]=black ... */
+ /* ... cols[6]=lyellow */
+
int delay_k,
delay_c,
delay_m,
@@ -2275,7 +2219,7 @@ canon_print(const stp_printer_t printer, /* I - Model */
page_bottom, /* Bottom of page */
page_width, /* Width of page */
page_height, /* Length of page */
- page_true_height, /* True length of page */
+ page_true_height,/* True length of page */
out_width, /* Width of image on page */
out_length, /* Length of image on page */
out_bpp, /* Output bytes per pixel */
@@ -2303,13 +2247,24 @@ canon_print(const stp_printer_t printer, /* I - Model */
int have_lum_adjustment= 0;
int have_sat_adjustment= 0;
int have_hue_adjustment= 0;
+
canon_init_t init;
- const canon_cap_t * caps= canon_get_model_capabilities(model);
- int printhead= canon_printhead_type(ink_type,caps);
+ const canon_cap_t * caps = canon_get_model_capabilities(model);
+ int printhead = canon_printhead_type(ink_type,caps);
colormode_t colormode = canon_printhead_colors(ink_type,caps);
const paper_t *pt;
const canon_variable_inkset_t *inks;
+ stp_dither_data_t *dt;
+ void * weave = NULL;
+ int total_channels; /* number of colors to print with */
+ int physical_xdpi = 720, nozzle_ydpi = 360, stepper_ydpi = 720;
+ int nozzles = 24; /* count of inkjets for one pass */
+ int nozzle_separation, horizontal_passes;
+ int vertical_passes, vertical_oversample;
+ int * head_offset = NULL;
+ canon_privdata_weave privdata;
+
if (!stp_get_verified(nv))
{
stp_eprintf(nv, "Print options not verified; cannot print.\n");
@@ -2341,6 +2296,7 @@ canon_print(const stp_printer_t printer, /* I - Model */
if (output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME)
colormode = COLOR_MONOCHROME;
+
stp_set_output_color_model(nv, COLOR_MODEL_CMY);
/*
@@ -2359,8 +2315,10 @@ canon_print(const stp_printer_t printer, /* I - Model */
}
stp_deprintf(STP_DBG_CANON,"canon: resolution=%dx%d\n",xdpi,ydpi);
+#ifndef EXPERIMENTAL_STUFF
stp_deprintf(STP_DBG_CANON," rescode =0x%x\n",canon_res_code(caps,xdpi,ydpi));
res_code= canon_res_code(caps,xdpi,ydpi);
+#endif
if (((!strcmp(resolution+(strlen(resolution)-3),"DMT")) ||
(!strcmp(resolution+(strlen(resolution)-3),"dmt"))) &&
@@ -2447,7 +2405,7 @@ canon_print(const stp_printer_t printer, /* I - Model */
PUT("leftskip",left,xdpi);
- if(xdpi==1440){
+ if((xdpi == 1440) && (model != 4202)){
delay_k= 0;
delay_c= 112;
delay_m= 224;
@@ -2457,6 +2415,16 @@ canon_print(const stp_printer_t printer, /* I - Model */
delay_ly= 336;
delay_max= 336;
stp_deprintf(STP_DBG_CANON,"canon: delay on!\n");
+ } else if (model ==4202 ){
+ delay_k= 0;
+ delay_c= 0x30;
+ delay_m= 0x50;
+ delay_y= 0x70;
+ delay_lc= 0;
+ delay_lm= 0;
+ delay_ly= 0;
+ delay_max= 0x70;
+ stp_deprintf(STP_DBG_CANON,"canon: delay for S200 on!\n");
} else {
delay_k= delay_c= delay_m= delay_y= delay_lc= delay_lm= delay_ly=0;
delay_max=0;
@@ -2473,42 +2441,32 @@ canon_print(const stp_printer_t printer, /* I - Model */
stp_deprintf(STP_DBG_CANON,"canon: buflength is %d!\n",buf_length);
- if (colormode==COLOR_MONOCHROME) {
- black = canon_alloc_buffer(buf_length*(delay_k+1));
- cyan = NULL;
- magenta = NULL;
- lcyan = NULL;
- lmagenta= NULL;
- yellow = NULL;
- lyellow = NULL;
- } else {
- cyan = canon_alloc_buffer(buf_length*(delay_c+1));
- magenta = canon_alloc_buffer(buf_length*(delay_m+1));
- yellow = canon_alloc_buffer(buf_length*(delay_y+1));
+ for (i=0; i<=6; i++)
+ cols[i] = NULL;
- if (colormode!=COLOR_CMY)
- black = canon_alloc_buffer(buf_length*(delay_k+1));
- else
- black = NULL;
+ if (colormode==COLOR_MONOCHROME)
+ cols[0] = stp_zalloc(buf_length*(delay_k+1));
+
+ else { /* use Colors CMY */
+ cols[1] = stp_zalloc(buf_length*(delay_c+1));
+ cols[2] = stp_zalloc(buf_length*(delay_m+1));
+ cols[3] = stp_zalloc(buf_length*(delay_y+1));
+
+ if (colormode!=COLOR_CMY) /* use also K */
+ cols[0] = stp_zalloc(buf_length*(delay_k+1));
if (colormode==COLOR_CCMMYK || colormode==COLOR_CCMMYYK) {
use_6color= 1;
- lcyan = canon_alloc_buffer(buf_length*(delay_lc+1));
- lmagenta = canon_alloc_buffer(buf_length*(delay_lm+1));
+ cols[4] = stp_zalloc(buf_length*(delay_lc+1));
+ cols[5] = stp_zalloc(buf_length*(delay_lm+1));
if (colormode==CANON_INK_CcMmYyK)
- lyellow = canon_alloc_buffer(buf_length*(delay_lc+1));
- else
- lyellow = NULL;
- } else {
- lcyan = NULL;
- lmagenta = NULL;
- lyellow = NULL;
+ cols[6] = stp_zalloc(buf_length*(delay_lc+1));
}
}
stp_deprintf(STP_DBG_CANON,"canon: driver will use colors %s%s%s%s%s%s\n",
- cyan ? "C" : "", lcyan ? "c" : "", magenta ? "M" : "",
- lmagenta ? "m" : "", yellow ? "Y" : "", black ? "K" : "");
+ cols[1] ? "C" : "", cols[4] ? "c" : "", cols[2] ? "M" : "",
+ cols[5] ? "m" : "", cols[3] ? "Y" : "", cols[0] ? "K" : "");
stp_deprintf(STP_DBG_CANON,"density is %f\n",stp_get_density(nv));
@@ -2557,7 +2515,6 @@ canon_print(const stp_printer_t printer, /* I - Model */
}
stp_dither_set_black_lower(dither, k_lower);
stp_dither_set_black_upper(dither, k_upper);
- stp_dither_set_adaptive_limit(dither, .75);
if ((inks = canon_inks(caps, res_code, colormode, bits))!=0)
{
@@ -2596,8 +2553,80 @@ canon_print(const stp_printer_t printer, /* I - Model */
}
stp_dither_set_density(dither, stp_get_density(nv));
- in = stp_malloc(image_width * image_bpp);
- out = stp_malloc(image_width * out_bpp * 2);
+ /* initialize weaving for S200 for resolutions > 360dpi */
+ if (init.caps->features & CANON_CAP_WEAVE && xdpi > 360)
+ {
+ stepper_ydpi = 720;
+ nozzle_ydpi = 360;
+ if (xdpi == 2880)
+ physical_xdpi = 2880;
+ else
+ physical_xdpi = 720;
+
+ total_channels = 4;
+ head_offset = stp_zalloc(sizeof(int) * total_channels);
+ memset(head_offset, 0, sizeof(head_offset));
+
+ if ( colormode == COLOR_MONOCHROME )
+ nozzles = 64; /* black nozzles */
+ else
+ nozzles = 24; /* color nozzles */
+ if (colormode == COLOR_MONOCHROME)
+ {
+ head_offset[0] = 0; /* K starts at 0 */
+ head_offset[1] = 144 ;/* how far C starts after K */
+ head_offset[2] = 144 + 64;/* how far M starts after K */
+ head_offset[3] = 144 + 64 + 64;/* how far Y starts after K */
+ top += 11;
+ }
+ else if (colormode == COLOR_CMYK)
+ {
+ head_offset[0] = 0; /* K starts at 0 */
+ head_offset[1] = 144 ;/* how far C starts after K */
+ head_offset[2] = 144 + 64;/* how far M starts after K */
+ head_offset[3] = 144 + 64 + 64;/* how far Y starts after K */
+ top += 5;
+ }
+ else /* colormode == CMY */
+ {
+ head_offset[0] = 0; /* K starts at 0 */
+ head_offset[1] = 0 ;/* how far C starts after K */
+ head_offset[2] = 64;/* how far M starts after K */
+ head_offset[3] = 128;/* how far Y starts after K */
+ top += 18;
+ }
+
+ nozzle_separation = stepper_ydpi / nozzle_ydpi;
+ horizontal_passes = xdpi / physical_xdpi;
+ vertical_passes = 1;
+ vertical_oversample = ydpi / stepper_ydpi;
+
+ privdata.bidirectional = 1; /* 1: bidirectional; 0: unidirectional printing */
+ privdata.direction = 1;
+ stp_set_driver_data(nv, &privdata);
+
+ stp_deprintf(STP_DBG_CANON,"canon: initializing weaving: nozzles=%d, nozzle_separation=%d, "
+ "horizontal_passes=%d, vertical_passes=%d,vertical_oversample=%d, total_channels=%d \n",
+ nozzles, nozzle_separation,
+ horizontal_passes, vertical_passes,
+ vertical_oversample, total_channels);
+
+ weave = stp_initialize_weave(nozzles, nozzle_separation,
+ horizontal_passes, vertical_passes,
+ vertical_oversample, total_channels,
+ 1,
+ out_width, out_length,
+ top * stepper_ydpi / 72,
+ page_height * stepper_ydpi / 72,
+ 1, head_offset, nv,
+ canon_flush_pass,
+ stp_fill_uncompressed,
+ stp_pack_uncompressed,
+ stp_compute_uncompressed_linewidth);
+ }
+
+ in = stp_zalloc(image_width * image_bpp);
+ out = stp_zalloc(image_width * out_bpp * 2);
errdiv = image_height / out_length;
errmod = image_height % out_length;
@@ -2635,10 +2664,23 @@ canon_print(const stp_printer_t printer, /* I - Model */
}
}
+ dt = stp_create_dither_data();
+ stp_add_channel(dt, cols[0], ECOLOR_K, 0);
+ stp_add_channel(dt, cols[1], ECOLOR_C, 0);
+ stp_add_channel(dt, cols[4], ECOLOR_C, 1);
+ stp_add_channel(dt, cols[2], ECOLOR_M, 0);
+ stp_add_channel(dt, cols[5], ECOLOR_M, 1);
+ stp_add_channel(dt, cols[3], ECOLOR_Y, 0);
+ stp_add_channel(dt, cols[6], ECOLOR_Y, 1);
+
+/* ---- go through every image line (y) ---- */
for (y = 0; y < out_length; y ++)
{
int duplicate_line = 1;
+
+/* stp_deprintf(STP_DBG_CANON,"\ny=%d\n",y); */
+
if ((y & 63) == 0)
image->note_progress(image, y, out_length);
@@ -2654,26 +2696,44 @@ canon_print(const stp_printer_t printer, /* I - Model */
have_sat_adjustment ? sat_adjustment : NULL);
}
- stp_dither(out, y, dither, cyan, lcyan, magenta, lmagenta,
- yellow, 0, black, duplicate_line, zero_mask);
-
- canon_write_line(nv, caps, ydpi,
- black, delay_k,
- cyan, delay_c,
- magenta, delay_m,
- yellow, delay_y,
- lcyan, delay_lc,
- lmagenta, delay_lm,
- lyellow, delay_ly,
+ stp_dither(out, y, dither, dt, duplicate_line, zero_mask);
+
+#if 0 /* excessive debugging */
+ stp_deprintf(STP_DBG_CANON,"dithering done, length=%d, out_width=%d \n"
+ "black=%p; cyan=%p; magenta=%p; yellow=%p \n",
+ length, out_width, cols[0], cols[1], cols[2], cols[3]);
+ dump_area(cols[0], length, "black:");
+ dump_area(cols[1], length, "cyan:");
+ dump_area(cols[2], length, "magenta:");
+ dump_area(cols[3], length, "yellow:");
+#endif
+
+ if (init.caps->features & CANON_CAP_WEAVE && xdpi > 360)
+ {
+ stp_write_weave(weave, length, stepper_ydpi, model, out_width,
+ left * physical_xdpi / xdpi,
+ xdpi, physical_xdpi, cols);
+ }
+
+ else
+ {
+ canon_write_line(nv, caps, ydpi, cols[0], delay_k,
+ cols[1], delay_c,
+ cols[2], delay_m,
+ cols[3], delay_y,
+ cols[4], delay_lc,
+ cols[5], delay_lm,
+ cols[6], delay_ly,
length, out_width, left, &emptylines, bits);
- canon_advance_buffer(black, buf_length,delay_k);
- canon_advance_buffer(cyan, buf_length,delay_c);
- canon_advance_buffer(magenta, buf_length,delay_m);
- canon_advance_buffer(yellow, buf_length,delay_y);
- canon_advance_buffer(lcyan, buf_length,delay_lc);
- canon_advance_buffer(lmagenta,buf_length,delay_lm);
- canon_advance_buffer(lyellow, buf_length,delay_ly);
+ canon_advance_buffer(cols[0], buf_length,delay_k);
+ canon_advance_buffer(cols[1], buf_length,delay_c);
+ canon_advance_buffer(cols[2], buf_length,delay_m);
+ canon_advance_buffer(cols[3], buf_length,delay_y);
+ canon_advance_buffer(cols[4], buf_length,delay_lc);
+ canon_advance_buffer(cols[5], buf_length,delay_lm);
+ canon_advance_buffer(cols[6], buf_length,delay_ly);
+ }
errval += errmod;
errline += errdiv;
@@ -2683,10 +2743,16 @@ canon_print(const stp_printer_t printer, /* I - Model */
errline ++;
}
}
- image->progress_conclude(image);
-
- stp_free_dither(dither);
+ if (init.caps->features & CANON_CAP_WEAVE && xdpi > 360)
+ {
+ stp_flush_all(weave, model, out_width,
+ left * physical_xdpi / xdpi,
+ ydpi, xdpi, physical_xdpi);
+ canon_advance_paper(nv, 5);
+ }
+ else
+ {
/*
* Flush delayed buffers...
*/
@@ -2696,41 +2762,40 @@ canon_print(const stp_printer_t printer, /* I - Model */
delay_max);
for (y= 0; y<delay_max; y++) {
- canon_write_line(nv, caps, ydpi,
- black, delay_k,
- cyan, delay_c,
- magenta, delay_m,
- yellow, delay_y,
- lcyan, delay_lc,
- lmagenta, delay_lm,
- lyellow, delay_ly,
+ canon_write_line(nv, caps, ydpi, cols[0], delay_k,
+ cols[1], delay_c,
+ cols[2], delay_m,
+ cols[3], delay_y,
+ cols[4], delay_lc,
+ cols[5], delay_lm,
+ cols[6], delay_ly,
length, out_width, left, &emptylines, bits);
- canon_advance_buffer(black, buf_length,delay_k);
- canon_advance_buffer(cyan, buf_length,delay_c);
- canon_advance_buffer(magenta, buf_length,delay_m);
- canon_advance_buffer(yellow, buf_length,delay_y);
- canon_advance_buffer(lcyan, buf_length,delay_lc);
- canon_advance_buffer(lmagenta,buf_length,delay_lm);
- canon_advance_buffer(lyellow, buf_length,delay_ly);
+ canon_advance_buffer(cols[0], buf_length,delay_k);
+ canon_advance_buffer(cols[1], buf_length,delay_c);
+ canon_advance_buffer(cols[2], buf_length,delay_m);
+ canon_advance_buffer(cols[3], buf_length,delay_y);
+ canon_advance_buffer(cols[4], buf_length,delay_lc);
+ canon_advance_buffer(cols[5], buf_length,delay_lm);
+ canon_advance_buffer(cols[6], buf_length,delay_ly);
}
}
+ }
+
+ image->progress_conclude(image);
/*
* Cleanup...
*/
+ stp_free_dither_data(dt);
+ stp_free_dither(dither);
stp_free_lut(nv);
stp_free(in);
stp_free(out);
-
- if (black != NULL) stp_free(black);
- if (cyan != NULL) stp_free(cyan);
- if (magenta != NULL) stp_free(magenta);
- if (yellow != NULL) stp_free(yellow);
- if (lcyan != NULL) stp_free(lcyan);
- if (lmagenta != NULL) stp_free(lmagenta);
- if (lyellow != NULL) stp_free(lyellow);
+ if (weave != NULL) stp_destroy_weave(weave);
+ for (y = 0; y < 6; y++)
+ if ( cols[y] != NULL ) stp_free(cols[y]);
canon_deinit_printer(nv, &init);
stp_free_vars(nv);
@@ -2745,7 +2810,9 @@ const stp_printfuncs_t stp_canon_printfuncs =
canon_print,
canon_default_parameters,
canon_describe_resolution,
- stp_verify_printer_params
+ stp_verify_printer_params,
+ stp_start_job,
+ canon_end_job
};
/*
@@ -2943,30 +3010,19 @@ canon_shift_buffer(unsigned char *line,int length,int bits)
}
}
-static void
-canon_shift_buffer2(unsigned char *line,int length,int bits)
-{
- int i;
- for (i=length-1; i>0; i--) {
- line[i]= (line[i] >> bits) | (line[i-1] << (8-bits));
- }
- line[0] = line[0] >> bits;
-}
-
-
/*
* 'canon_write()' - Send graphics using TIFF packbits compression.
*/
static int
canon_write(const stp_vars_t v, /* I - Print file or command */
- const canon_cap_t * caps, /* I - Printer model */
+ const canon_cap_t *caps, /* I - Printer model; currently unused */
unsigned char *line, /* I - Output bitmap data */
int length, /* I - Length of bitmap data */
int coloridx, /* I - Which color */
- int ydpi, /* I - Vertical resolution */
+ int ydpi, /* I - Vertical resolution; currently unused */
int *empty, /* IO- Preceeding empty lines */
- int width, /* I - Printed width */
+ int width, /* I - Printed width; currently unused */
int offset, /* I - Offset from left side */
int bits)
{
@@ -3009,6 +3065,7 @@ canon_write(const stp_vars_t v, /* I - Print file or command */
}
#endif
}
+
/* pack left border rounded to multiples of 8 dots */
comp_data= comp_buf;
@@ -3030,7 +3087,7 @@ canon_write(const stp_vars_t v, /* I - Print file or command */
}
stp_pack_tiff(in_ptr, length, comp_data, &comp_ptr);
- newlength= comp_ptr - comp_buf;
+ newlength = comp_ptr - comp_buf;
/* send packed empty lines if any */
@@ -3081,6 +3138,9 @@ canon_write_line(const stp_vars_t v, /* I - Print file or command */
{
int written= 0;
+ stp_deprintf(STP_DBG_CANON,"canon_write_line: length=%d, width=%d, (hor.)offset=%d\n",
+ l, width, offset);
+
if (k) written+=
canon_write(v, caps, k+ dk*l, l, 3, ydpi, empty, width, offset, bits);
if (y) written+=
@@ -3101,3 +3161,109 @@ canon_write_line(const stp_vars_t v, /* I - Print file or command */
else
(*empty)+= 1;
}
+
+static void
+canon_advance_paper(stp_vars_t v, int advance)
+{
+ if ( advance > 0 )
+ {
+ int a0, a1, a2, a3;
+ stp_deprintf(STP_DBG_CANON,"canon_advance_paper: advance= %d\n", advance);
+ a0 = advance & 0xff;
+ a1 = (advance >> 8) & 0xff;
+ a2 = (advance >> 16) & 0xff;
+ a3 = (advance >> 24) & 0xff;
+ stp_zprintf(v, "\033(e%c%c%c%c%c%c", 4, 0, a3, a2, a1, a0);
+ }
+}
+
+static void
+canon_flush_pass(stp_softweave_t *sw, int passno, int model, int width,
+ int hoffset, int ydpi, int xdpi, int physical_xdpi,
+ int vertical_subpass)
+{
+ const stp_vars_t nv = (sw->v);
+ stp_lineoff_t *lineoffs = stp_get_lineoffsets_by_pass(sw, passno);
+ stp_lineactive_t *lineactive = stp_get_lineactive_by_pass(sw, passno);
+ const stp_linebufs_t *bufs = stp_get_linebases_by_pass(sw, passno);
+ stp_pass_t *pass = stp_get_pass_by_pass(sw, passno);
+ stp_linecount_t *linecount = stp_get_linecount_by_pass(sw, passno);
+ canon_privdata_weave *privdata_weave = stp_get_driver_data(nv);
+ int papershift = (pass->logicalpassstart - sw->last_pass_offset);
+ int color, line, empty = 0, written = 0, linelength = 0, lines = 0;
+ int idx[4]={3, 0, 1, 2}; /* color numbering is different between canon_write and weaving */
+
+ stp_deprintf(STP_DBG_CANON,"canon_flush_pass: pass=%d, papershift=%d\n", passno, papershift);
+
+ for ( color = 0; color < sw->ncolors; color++ ) /* find max. linecount */
+ {
+ if ( linecount[0].v[color] > lines ) lines = linecount[0].v[color];
+ }
+
+ for ( line = 0; line < lines; line++ ) /* go through each nozzle of that pass */
+ {
+ stp_deprintf(STP_DBG_CANON,"canon_flush_pass: line=%d, written=%d, empty=%d \n",
+ line, written, empty);
+ if ( written > 0 )
+ canon_cmd(nv,ESC28,0x65, 2, 0, 1); /* go to next nozzle if there was printed some data */
+
+ written = 0;
+ for ( color = 0; color < sw->ncolors; color++ )
+ {
+ if ( line < linecount[0].v[color] ) /* try only existing lines */
+ {
+ if ( lineactive[0].v[color] > 0 )
+ {
+ linelength = lineoffs[0].v[color] / linecount[0].v[color];
+/* stp_deprintf(STP_DBG_CANON,"canon_flush_pass: linelength=%d, bufs[0].v[color]=%p,"
+ "bufs[0].v[color]+line * linelength=%p, empty=%d \n", linelength, bufs[0].v[color], bufs[0].v[color] + line * linelength, empty);
+*/
+ if ( pass->logicalpassstart > sw->last_pass_offset)
+ {
+ canon_advance_paper(nv, papershift);
+ sw->last_pass_offset = pass->logicalpassstart;
+ if (privdata_weave->bidirectional)
+ {
+ privdata_weave->direction = (privdata_weave->direction +1) & 1;
+ canon_set_X72(nv, privdata_weave->direction);
+ }
+ }
+
+ written += canon_write(nv, NULL,
+ (unsigned char *)(bufs[0].v[color] + line * linelength),
+ linelength, idx[color], 0, &empty, 0, hoffset, sw->bitwidth);
+ }
+ }
+ }
+
+ if ( written == 0 ) /* count unused nozzles */
+ empty += 1;
+ }
+
+ for ( color = 0; color < sw->ncolors; color++ )
+ {
+ lineoffs[0].v[color] = 0;
+ linecount[0].v[color] = 0;
+ }
+
+ sw->last_pass = pass->pass;
+ pass->pass = -1;
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/print-color.c b/src/main/print-color.c
index 10caa73..3587e9a 100644
--- a/src/main/print-color.c
+++ b/src/main/print-color.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-color.c,v 1.26 2001/10/21 20:18:01 rlk Exp $"
+ * "$Id: print-color.c,v 1.26.2.3 2003/08/25 17:04:13 rleigh Exp $"
*
* Print plug-in color management for the GIMP.
*
@@ -33,6 +33,7 @@
#include "gimp-print-internal.h"
#include <gimp-print/gimp-print-intl-internal.h>
#include <math.h>
+#include <string.h>
#include <limits.h>
#ifdef __GNUC__
@@ -1754,7 +1755,7 @@ cmyk_8_to_cmyk(const stp_vars_t vars,
static double density = -1.0;
static double print_gamma = -1.0;
-
+ memset(nz, 0, sizeof(nz));
if (density != stp_get_density(vars) ||
print_gamma != stp_get_gamma(vars))
{
@@ -1809,6 +1810,7 @@ cmyk_to_cmyk(const stp_vars_t vars,
int nz[4];
const unsigned short *scmykin = (const unsigned short *) cmykin;
+ memset(nz, 0, sizeof(nz));
for (i = 0; i < width; i++)
{
for (j = 0; j < 4; j++)
@@ -1834,10 +1836,10 @@ allocate_lut(size_t steps)
int i;
lut_t *ret = stp_malloc(sizeof(lut_t));
ret->steps = steps;
- ret->composite = stp_malloc(sizeof(unsigned short) * steps);
- ret->red = stp_malloc(sizeof(unsigned short) * steps);
- ret->green = stp_malloc(sizeof(unsigned short) * steps);
- ret->blue = stp_malloc(sizeof(unsigned short) * steps);
+ ret->composite = stp_zalloc(sizeof(unsigned short) * steps);
+ ret->red = stp_zalloc(sizeof(unsigned short) * steps);
+ ret->green = stp_zalloc(sizeof(unsigned short) * steps);
+ ret->blue = stp_zalloc(sizeof(unsigned short) * steps);
ret->shiftval = 0;
for (i = 1; i < steps; i += i)
ret->shiftval++;
diff --git a/src/main/print-dither-matrices.c b/src/main/print-dither-matrices.c
index 92ef667..531d1f1 100644
--- a/src/main/print-dither-matrices.c
+++ b/src/main/print-dither-matrices.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-dither-matrices.c,v 1.4 2001/09/08 17:13:48 rleigh Exp $"
+ * "$Id: print-dither-matrices.c,v 1.4.4.1 2002/05/03 01:30:28 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -27,8 +27,12 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include <gimp-print/gimp-print.h>
-#include "gimp-print-internal.h"
+#include "print-dither.h"
+#include <math.h>
+
+#ifdef __GNUC__
+#define inline __inline__
+#endif
static const unsigned short mat_1_1[] =
{
@@ -59,3 +63,234 @@ const stp_dither_matrix_short_t stp_4_1_matrix =
{
509, 131, 2, 1, mat_4_1
};
+
+static inline int
+calc_ordered_point(unsigned x, unsigned y, int steps, int multiplier,
+ int size, const unsigned *map)
+{
+ int i, j;
+ unsigned retval = 0;
+ int divisor = 1;
+ int div1;
+ for (i = 0; i < steps; i++)
+ {
+ int xa = (x / divisor) % size;
+ int ya = (y / divisor) % size;
+ unsigned base;
+ base = map[ya + (xa * size)];
+ div1 = 1;
+ for (j = i; j < steps - 1; j++)
+ div1 *= size * size;
+ retval += base * div1;
+ divisor *= size;
+ }
+ return retval * multiplier;
+}
+
+static int
+is_po2(size_t i)
+{
+ if (i == 0)
+ return 0;
+ return (((i & (i - 1)) == 0) ? 1 : 0);
+}
+
+void
+stp_init_iterated_matrix(dither_matrix_t *mat, size_t size, size_t exp,
+ const unsigned *array)
+{
+ int i;
+ int x, y;
+ mat->base = size;
+ mat->exp = exp;
+ mat->x_size = 1;
+ for (i = 0; i < exp; i++)
+ mat->x_size *= mat->base;
+ mat->y_size = mat->x_size;
+ mat->total_size = mat->x_size * mat->y_size;
+ mat->matrix = stp_malloc(sizeof(unsigned) * mat->x_size * mat->y_size);
+ for (x = 0; x < mat->x_size; x++)
+ for (y = 0; y < mat->y_size; y++)
+ {
+ mat->matrix[x + y * mat->x_size] =
+ calc_ordered_point(x, y, mat->exp, 1, mat->base, array);
+ mat->matrix[x + y * mat->x_size] =
+ (double) mat->matrix[x + y * mat->x_size] * 65536.0 /
+ (double) (mat->x_size * mat->y_size);
+ }
+ mat->last_x = mat->last_x_mod = 0;
+ mat->last_y = mat->last_y_mod = 0;
+ mat->index = 0;
+ mat->i_own = 1;
+ if (is_po2(mat->x_size))
+ mat->fast_mask = mat->x_size - 1;
+ else
+ mat->fast_mask = 0;
+}
+
+#define MATRIX_POINT(m, x, y, x_size, y_size) \
+ ((m)[(((x) + (x_size)) % (x_size)) + ((x_size) * (((y) + (y_size)) % (y_size)))])
+
+void
+stp_shear_matrix(dither_matrix_t *mat, int x_shear, int y_shear)
+{
+ int i;
+ int j;
+ int *tmp = stp_malloc(mat->x_size * mat->y_size * sizeof(int));
+ for (i = 0; i < mat->x_size; i++)
+ for (j = 0; j < mat->y_size; j++)
+ MATRIX_POINT(tmp, i, j, mat->x_size, mat->y_size) =
+ MATRIX_POINT(mat->matrix, i, j * (x_shear + 1), mat->x_size,
+ mat->y_size);
+ for (i = 0; i < mat->x_size; i++)
+ for (j = 0; j < mat->y_size; j++)
+ MATRIX_POINT(mat->matrix, i, j, mat->x_size, mat->y_size) =
+ MATRIX_POINT(tmp, i * (y_shear + 1), j, mat->x_size, mat->y_size);
+ stp_free(tmp);
+}
+
+void
+stp_init_matrix(dither_matrix_t *mat, int x_size, int y_size,
+ const unsigned int *array, int transpose, int prescaled)
+{
+ int x, y;
+ mat->base = x_size;
+ mat->exp = 1;
+ mat->x_size = x_size;
+ mat->y_size = y_size;
+ mat->total_size = mat->x_size * mat->y_size;
+ mat->matrix = stp_malloc(sizeof(unsigned) * mat->x_size * mat->y_size);
+ for (x = 0; x < mat->x_size; x++)
+ for (y = 0; y < mat->y_size; y++)
+ {
+ if (transpose)
+ mat->matrix[x + y * mat->x_size] = array[y + x * mat->y_size];
+ else
+ mat->matrix[x + y * mat->x_size] = array[x + y * mat->x_size];
+ if (!prescaled)
+ mat->matrix[x + y * mat->x_size] =
+ (double) mat->matrix[x + y * mat->x_size] * 65536.0 /
+ (double) (mat->x_size * mat->y_size);
+ }
+ mat->last_x = mat->last_x_mod = 0;
+ mat->last_y = mat->last_y_mod = 0;
+ mat->index = 0;
+ mat->i_own = 1;
+ if (is_po2(mat->x_size))
+ mat->fast_mask = mat->x_size - 1;
+ else
+ mat->fast_mask = 0;
+}
+
+void
+stp_init_matrix_short(dither_matrix_t *mat, int x_size, int y_size,
+ const unsigned short *array, int transpose,
+ int prescaled)
+{
+ int x, y;
+ mat->base = x_size;
+ mat->exp = 1;
+ mat->x_size = x_size;
+ mat->y_size = y_size;
+ mat->total_size = mat->x_size * mat->y_size;
+ mat->matrix = stp_malloc(sizeof(unsigned) * mat->x_size * mat->y_size);
+ for (x = 0; x < mat->x_size; x++)
+ for (y = 0; y < mat->y_size; y++)
+ {
+ if (transpose)
+ mat->matrix[x + y * mat->x_size] = array[y + x * mat->y_size];
+ else
+ mat->matrix[x + y * mat->x_size] = array[x + y * mat->x_size];
+ if (!prescaled)
+ mat->matrix[x + y * mat->x_size] =
+ (double) mat->matrix[x + y * mat->x_size] * 65536.0 /
+ (double) (mat->x_size * mat->y_size);
+ }
+ mat->last_x = mat->last_x_mod = 0;
+ mat->last_y = mat->last_y_mod = 0;
+ mat->index = 0;
+ mat->i_own = 1;
+ if (is_po2(mat->x_size))
+ mat->fast_mask = mat->x_size - 1;
+ else
+ mat->fast_mask = 0;
+}
+
+void
+stp_destroy_matrix(dither_matrix_t *mat)
+{
+ if (mat->i_own && mat->matrix)
+ stp_free(mat->matrix);
+ mat->matrix = NULL;
+ mat->base = 0;
+ mat->exp = 0;
+ mat->x_size = 0;
+ mat->y_size = 0;
+ mat->total_size = 0;
+ mat->i_own = 0;
+}
+
+void
+stp_clone_matrix(const dither_matrix_t *src, dither_matrix_t *dest,
+ int x_offset, int y_offset)
+{
+ dest->base = src->base;
+ dest->exp = src->exp;
+ dest->x_size = src->x_size;
+ dest->y_size = src->y_size;
+ dest->total_size = src->total_size;
+ dest->matrix = src->matrix;
+ dest->x_offset = x_offset;
+ dest->y_offset = y_offset;
+ dest->last_x = 0;
+ dest->last_x_mod = dest->x_offset % dest->x_size;
+ dest->last_y = 0;
+ dest->last_y_mod = dest->x_size * (dest->y_offset % dest->y_size);
+ dest->index = dest->last_x_mod + dest->last_y_mod;
+ dest->fast_mask = src->fast_mask;
+ dest->i_own = 0;
+}
+
+void
+stp_copy_matrix(const dither_matrix_t *src, dither_matrix_t *dest)
+{
+ int x;
+ dest->base = src->base;
+ dest->exp = src->exp;
+ dest->x_size = src->x_size;
+ dest->y_size = src->y_size;
+ dest->total_size = src->total_size;
+ dest->matrix = stp_malloc(sizeof(unsigned) * dest->x_size * dest->y_size);
+ for (x = 0; x < dest->x_size * dest->y_size; x++)
+ dest->matrix[x] = src->matrix[x];
+ dest->x_offset = 0;
+ dest->y_offset = 0;
+ dest->last_x = 0;
+ dest->last_x_mod = 0;
+ dest->last_y = 0;
+ dest->last_y_mod = 0;
+ dest->index = 0;
+ dest->fast_mask = src->fast_mask;
+ dest->i_own = 1;
+}
+
+void
+stp_exponential_scale_matrix(dither_matrix_t *mat, double exponent)
+{
+ int i;
+ int mat_size = mat->x_size * mat->y_size;
+ for (i = 0; i < mat_size; i++)
+ {
+ double dd = mat->matrix[i] / 65535.0;
+ dd = pow(dd, exponent);
+ mat->matrix[i] = 65535 * dd;
+ }
+}
+
+void
+stp_matrix_set_row(dither_matrix_t *mat, int y)
+{
+ mat->last_y = y;
+ mat->last_y_mod = mat->x_size * ((y + mat->y_offset) % mat->y_size);
+ mat->index = mat->last_x_mod + mat->last_y_mod;
+}
diff --git a/src/main/print-dither.c b/src/main/print-dither.c
index ce48d09..af2015b 100644
--- a/src/main/print-dither.c
+++ b/src/main/print-dither.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-dither.c,v 1.44 2001/09/14 02:12:34 rlk Exp $"
+ * "$Id: print-dither.c,v 1.44.4.5 2002/10/27 17:48:18 rwisi Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -30,6 +30,7 @@
#endif
#include <gimp-print/gimp-print.h>
#include "gimp-print-internal.h"
+#include "print-dither.h"
#include <gimp-print/gimp-print-intl-internal.h>
#include <limits.h>
#include <math.h>
@@ -47,6 +48,7 @@
#define D_FAST_BASE 16
#define D_FAST (D_FAST_BASE)
#define D_VERY_FAST (D_FAST_BASE + 1)
+#define D_EVENTONE 32
#define DITHER_FAST_STEPS (6)
@@ -63,7 +65,10 @@ static const dither_algo_t dither_algos[] =
{ "Ordered", N_ ("Ordered"), D_ORDERED },
{ "Fast", N_ ("Fast"), D_FAST },
{ "VeryFast", N_ ("Very Fast"), D_VERY_FAST },
- { "Floyd", N_ ("Hybrid Floyd-Steinberg"), D_FLOYD_HYBRID }
+ { "Floyd", N_ ("Hybrid Floyd-Steinberg"), D_FLOYD_HYBRID },
+ /* Note to translators: "EvenTone" is the proper name, rather than a */
+ /* descriptive name, of this algorithm. */
+ { "EvenTone", N_ ("EvenTone"), D_EVENTONE }
};
static const int num_dither_algos = sizeof(dither_algos)/sizeof(dither_algo_t);
@@ -73,50 +78,32 @@ static const int num_dither_algos = sizeof(dither_algos)/sizeof(dither_algo_t);
#define MAX_SPREAD 32
/*
+ * An end of a dither segment, describing one ink
+ */
+
+typedef struct ink_defn
+{
+ unsigned range;
+ unsigned value;
+ unsigned bits;
+ unsigned dot_size;
+ int subchannel;
+} ink_defn_t;
+
+/*
* A segment of the entire 0-65535 intensity range.
*/
+
typedef struct dither_segment
{
- unsigned range[2]; /* Bottom, top of range */
- unsigned value[2]; /* Value of lower, upper ink */
- unsigned bits[2]; /* Bit pattern of lower, upper */
- unsigned range_span; /* Span (to avoid calculation on the fly) */
- unsigned value_span; /* Span of values */
- unsigned dot_size[2]; /* Size of lower, upper dot */
- int isdark[2]; /* Is lower, upper value dark ink? */
- int is_same_ink; /* Are both endpoints using the same dots? */
- int is_equal; /* Are both endpoints using the same ink? */
+ ink_defn_t *lower;
+ ink_defn_t *upper;
+ unsigned range_span;
+ unsigned value_span;
+ int is_same_ink;
+ int is_equal;
} dither_segment_t;
-typedef struct dither_color
-{
- int nlevels;
- unsigned bit_max;
- unsigned signif_bits;
- unsigned density;
- int row_ends[2][2];
- dither_segment_t *ranges;
-} dither_color_t;
-
-typedef struct dither_matrix
-{
- int base;
- int exp;
- int x_size;
- int y_size;
- int total_size;
- int last_x;
- int last_x_mod;
- int last_y;
- int last_y_mod;
- int index;
- int i_own;
- int x_offset;
- int y_offset;
- unsigned fast_mask;
- unsigned *matrix;
-} dither_matrix_t;
-
typedef struct dither_channel
{
unsigned randomizer; /* With Floyd-Steinberg dithering, control */
@@ -128,19 +115,38 @@ typedef struct dither_channel
/* to create equivalent black */
int darkness; /* Perceived "darkness" of each ink, */
/* in 64ths, to calculate CMY-K transitions */
- dither_color_t dither;
- int *errs[ERROR_ROWS];
- unsigned short *vals;
- dither_matrix_t pick;
- dither_matrix_t dithermat;
+ int nlevels;
+ unsigned bit_max;
+ unsigned signif_bits;
+ unsigned density;
int v;
int o;
int b;
int very_fast;
- unsigned char *ptrs[2];
+ int subchannels;
+
+ int maxdot; /* Maximum dot size */
+
+ ink_defn_t *ink_list;
+
+ dither_segment_t *ranges;
+ int **errs;
+ unsigned short *vals;
+
+ dither_matrix_t pick;
+ dither_matrix_t dithermat;
+ int *row_ends[2];
+ unsigned char **ptrs;
} dither_channel_t;
+typedef struct {
+ int d2x, d2y, dx2, dy2;
+ int aspect;
+ int **dx, **dy, **r_sq;
+ int *recip;
+} eventone_t;
+
typedef struct dither
{
int src_width; /* Input width */
@@ -165,6 +171,7 @@ typedef struct dither
int d_cutoff; /* When ordered dither is used, threshold */
/* above which no randomness is used. */
double adaptive_input;
+ int adaptive_input_set;
int adaptive_limit;
int x_aspect; /* Aspect ratio numerator */
@@ -178,19 +185,54 @@ typedef struct dither
int oversampling;
int last_line_was_empty;
int ptr_offset;
+ int n_channels;
+ int n_input_channels;
+ int error_rows;
int dither_class; /* mono, black, or CMYK */
dither_matrix_t dither_matrix;
dither_matrix_t transition_matrix;
- dither_channel_t channel[NCOLORS];
+ dither_channel_t *channel;
unsigned short virtual_dot_scale[65536];
+ void (*ditherfunc)(const unsigned short *, int, struct dither *, int, int);
+ eventone_t *eventone;
stp_vars_t v;
} dither_t;
+typedef void ditherfunc_t(const unsigned short *, int, struct dither *, int, int);
+
+static ditherfunc_t
+ stp_dither_monochrome,
+ stp_dither_monochrome_very_fast,
+ stp_dither_black_fast,
+ stp_dither_black_very_fast,
+ stp_dither_black_ordered,
+ stp_dither_black_ed,
+ stp_dither_black_et,
+ stp_dither_cmyk_fast,
+ stp_dither_cmyk_very_fast,
+ stp_dither_cmyk_ordered,
+ stp_dither_cmyk_ed,
+ stp_dither_cmyk_et,
+ stp_dither_raw_cmyk_fast,
+ stp_dither_raw_cmyk_very_fast,
+ stp_dither_raw_cmyk_ordered,
+ stp_dither_raw_cmyk_ed,
+ stp_dither_raw_cmyk_et;
+
+
#define CHANNEL(d, c) ((d)->channel[(c)])
+#define SAFE_FREE(x) \
+do \
+{ \
+ if ((x)) \
+ stp_free((char *)(x)); \
+ ((x)) = NULL; \
+} while (0)
+
/*
* Bayer's dither matrix using Judice, Jarvis, and Ninke recurrence relation
* http://www.cs.rit.edu/~sxc7922/Project/CRT.htm
@@ -224,245 +266,16 @@ stp_dither_algorithm_text(int id)
return _(dither_algos[id].text);
}
-static inline int
-calc_ordered_point(unsigned x, unsigned y, int steps, int multiplier,
- int size, const unsigned *map)
-{
- int i, j;
- unsigned retval = 0;
- int divisor = 1;
- int div1;
- for (i = 0; i < steps; i++)
- {
- int xa = (x / divisor) % size;
- int ya = (y / divisor) % size;
- unsigned base;
- base = map[ya + (xa * size)];
- div1 = 1;
- for (j = i; j < steps - 1; j++)
- div1 *= size * size;
- retval += base * div1;
- divisor *= size;
- }
- return retval * multiplier;
-}
-
-static int
-is_po2(size_t i)
-{
- int bits = 0;
- size_t j = 1;
- int k;
- for (k = 0; k < CHAR_BIT * sizeof(size_t); k++)
- {
- if (j & i)
- {
- bits++;
- if (bits > 1)
- return 0;
- }
- j <<= 1;
- }
- return bits;
-}
-
-static void
-init_iterated_matrix(dither_matrix_t *mat, size_t size, size_t exp,
- const unsigned *array)
-{
- int i;
- int x, y;
- mat->base = size;
- mat->exp = exp;
- mat->x_size = 1;
- for (i = 0; i < exp; i++)
- mat->x_size *= mat->base;
- mat->y_size = mat->x_size;
- mat->total_size = mat->x_size * mat->y_size;
- mat->matrix = stp_malloc(sizeof(unsigned) * mat->x_size * mat->y_size);
- for (x = 0; x < mat->x_size; x++)
- for (y = 0; y < mat->y_size; y++)
- {
- mat->matrix[x + y * mat->x_size] =
- calc_ordered_point(x, y, mat->exp, 1, mat->base, array);
- mat->matrix[x + y * mat->x_size] =
- (double) mat->matrix[x + y * mat->x_size] * 65536.0 /
- (double) (mat->x_size * mat->y_size);
- }
- mat->last_x = mat->last_x_mod = 0;
- mat->last_y = mat->last_y_mod = 0;
- mat->index = 0;
- mat->i_own = 1;
- if (is_po2(mat->x_size))
- mat->fast_mask = mat->x_size - 1;
- else
- mat->fast_mask = 0;
-}
-
-#define DITHERPOINT(m, x, y, x_size, y_size) \
- ((m)[(((x) + (x_size)) % (x_size)) + ((x_size) * (((y) + (y_size)) % (y_size)))])
-
-static void
-shear_matrix(dither_matrix_t *mat, int x_shear, int y_shear)
-{
- int i;
- int j;
- int *tmp = stp_malloc(mat->x_size * mat->y_size * sizeof(int));
- for (i = 0; i < mat->x_size; i++)
- for (j = 0; j < mat->y_size; j++)
- DITHERPOINT(tmp, i, j, mat->x_size, mat->y_size) =
- DITHERPOINT(mat->matrix, i, j * (x_shear + 1), mat->x_size,
- mat->y_size);
- for (i = 0; i < mat->x_size; i++)
- for (j = 0; j < mat->y_size; j++)
- DITHERPOINT(mat->matrix, i, j, mat->x_size, mat->y_size) =
- DITHERPOINT(tmp, i * (y_shear + 1), j, mat->x_size, mat->y_size);
- stp_free(tmp);
-}
-
-static void
-init_matrix(dither_matrix_t *mat, int x_size, int y_size,
- const unsigned int *array, int transpose, int prescaled)
-{
- int x, y;
- mat->base = x_size;
- mat->exp = 1;
- mat->x_size = x_size;
- mat->y_size = y_size;
- mat->total_size = mat->x_size * mat->y_size;
- mat->matrix = stp_malloc(sizeof(unsigned) * mat->x_size * mat->y_size);
- for (x = 0; x < mat->x_size; x++)
- for (y = 0; y < mat->y_size; y++)
- {
- if (transpose)
- mat->matrix[x + y * mat->x_size] = array[y + x * mat->y_size];
- else
- mat->matrix[x + y * mat->x_size] = array[x + y * mat->x_size];
- if (!prescaled)
- mat->matrix[x + y * mat->x_size] =
- (double) mat->matrix[x + y * mat->x_size] * 65536.0 /
- (double) (mat->x_size * mat->y_size);
- }
- mat->last_x = mat->last_x_mod = 0;
- mat->last_y = mat->last_y_mod = 0;
- mat->index = 0;
- mat->i_own = 1;
- if (is_po2(mat->x_size))
- mat->fast_mask = mat->x_size - 1;
- else
- mat->fast_mask = 0;
-}
-
-static void
-init_matrix_short(dither_matrix_t *mat, int x_size, int y_size,
- const unsigned short *array, int transpose, int prescaled)
-{
- int x, y;
- mat->base = x_size;
- mat->exp = 1;
- mat->x_size = x_size;
- mat->y_size = y_size;
- mat->total_size = mat->x_size * mat->y_size;
- mat->matrix = stp_malloc(sizeof(unsigned) * mat->x_size * mat->y_size);
- for (x = 0; x < mat->x_size; x++)
- for (y = 0; y < mat->y_size; y++)
- {
- if (transpose)
- mat->matrix[x + y * mat->x_size] = array[y + x * mat->y_size];
- else
- mat->matrix[x + y * mat->x_size] = array[x + y * mat->x_size];
- if (!prescaled)
- mat->matrix[x + y * mat->x_size] =
- (double) mat->matrix[x + y * mat->x_size] * 65536.0 /
- (double) (mat->x_size * mat->y_size);
- }
- mat->last_x = mat->last_x_mod = 0;
- mat->last_y = mat->last_y_mod = 0;
- mat->index = 0;
- mat->i_own = 1;
- if (is_po2(mat->x_size))
- mat->fast_mask = mat->x_size - 1;
- else
- mat->fast_mask = 0;
-}
-
-static void
-destroy_matrix(dither_matrix_t *mat)
-{
- if (mat->i_own && mat->matrix)
- stp_free(mat->matrix);
- mat->matrix = NULL;
- mat->base = 0;
- mat->exp = 0;
- mat->x_size = 0;
- mat->y_size = 0;
- mat->total_size = 0;
- mat->i_own = 0;
-}
-
-static void
-clone_matrix(const dither_matrix_t *src, dither_matrix_t *dest,
- int x_offset, int y_offset)
-{
- dest->base = src->base;
- dest->exp = src->exp;
- dest->x_size = src->x_size;
- dest->y_size = src->y_size;
- dest->total_size = src->total_size;
- dest->matrix = src->matrix;
- dest->x_offset = x_offset;
- dest->y_offset = y_offset;
- dest->last_x = 0;
- dest->last_x_mod = dest->x_offset % dest->x_size;
- dest->last_y = 0;
- dest->last_y_mod = dest->x_size * (dest->y_offset % dest->y_size);
- dest->index = dest->last_x_mod + dest->last_y_mod;
- dest->fast_mask = src->fast_mask;
- dest->i_own = 0;
-}
-
-static void
-copy_matrix(const dither_matrix_t *src, dither_matrix_t *dest)
-{
- int x;
- dest->base = src->base;
- dest->exp = src->exp;
- dest->x_size = src->x_size;
- dest->y_size = src->y_size;
- dest->total_size = src->total_size;
- dest->matrix = stp_malloc(sizeof(unsigned) * dest->x_size * dest->y_size);
- for (x = 0; x < dest->x_size * dest->y_size; x++)
- dest->matrix[x] = src->matrix[x];
- dest->x_offset = 0;
- dest->y_offset = 0;
- dest->last_x = 0;
- dest->last_x_mod = 0;
- dest->last_y = 0;
- dest->last_y_mod = 0;
- dest->index = 0;
- dest->fast_mask = src->fast_mask;
- dest->i_own = 1;
-}
-
-static void
-exponential_scale_matrix(dither_matrix_t *mat, double exponent)
-{
- int i;
- int mat_size = mat->x_size * mat->y_size;
- for (i = 0; i < mat_size; i++)
- {
- double dd = mat->matrix[i] / 65535.0;
- dd = pow(dd, exponent);
- mat->matrix[i] = 65535 * dd;
- }
-}
+/*
+ * These really belong with print-dither.c. However, inlining has yielded
+ * significant (measured) speedup, even with the more complicated dither
+ * function. --rlk 20011219
+ */
-static void
-matrix_set_row(const dither_t *d, dither_matrix_t *mat, int y)
+static inline unsigned
+ditherpoint_fast(const dither_t *d, dither_matrix_t *mat, int x)
{
- mat->last_y = y;
- mat->last_y_mod = mat->x_size * ((y + mat->y_offset) % mat->y_size);
- mat->index = mat->last_x_mod + mat->last_y_mod;
+ return mat->matrix[(mat->last_y_mod+((x + mat->x_offset) & mat->fast_mask))];
}
static inline unsigned
@@ -512,37 +325,78 @@ static void
reverse_row_ends(dither_t *d)
{
int i, j;
- for (i = 0; i < NCOLORS; i++)
- for (j = 0; j < 2; j++)
+ for (i = 0; i < d->n_channels; i++)
+ for (j = 0; j < CHANNEL(d, i).subchannels; j++)
{
- int tmp = CHANNEL(d, i).dither.row_ends[0][j];
- CHANNEL(d, i).dither.row_ends[0][j] =
- CHANNEL(d, i).dither.row_ends[1][j];
- CHANNEL(d, i).dither.row_ends[1][j] = tmp;
+ int tmp = CHANNEL(d, i).row_ends[0][j];
+ CHANNEL(d, i).row_ends[0][j] =
+ CHANNEL(d, i).row_ends[1][j];
+ CHANNEL(d, i).row_ends[1][j] = tmp;
}
}
+stp_dither_data_t *
+stp_create_dither_data(void)
+{
+ stp_dither_data_t *ret = stp_zalloc(sizeof(stp_dither_data_t));
+ ret->channel_count = 0;
+ ret->c = NULL;
+ return ret;
+}
+
+void
+stp_add_channel(stp_dither_data_t *d, unsigned char *data,
+ unsigned channel, unsigned subchannel)
+{
+ stp_channel_t *chan;
+ if (channel >= d->channel_count)
+ {
+ unsigned oc = d->channel_count;
+ d->c = stp_realloc(d->c, sizeof(stp_channel_t) * (channel + 1));
+ (void) memset(d->c + oc, 0, sizeof(stp_channel_t) * (channel + 1 - oc));
+ d->channel_count = channel + 1;
+ }
+ chan = d->c + channel;
+ if (subchannel >= chan->subchannel_count)
+ {
+ unsigned oc = chan->subchannel_count;
+ chan->c =
+ stp_realloc(chan->c, sizeof(unsigned char *) * (subchannel + 1));
+ (void) memset(chan->c + oc, 0,
+ sizeof(unsigned char *) * (subchannel + 1 - oc));
+ chan->subchannel_count = subchannel + 1;
+ }
+ chan->c[subchannel] = data;
+}
+
+void
+stp_free_dither_data(stp_dither_data_t *d)
+{
+ int i;
+ for (i = 0; i < d->channel_count; i++)
+ stp_free(d->c[i].c);
+ stp_free(d->c);
+}
+
+#define SET_DITHERFUNC(d, func, v) \
+do \
+{ \
+ stp_dprintf(STP_DBG_COLORFUNC, v, "ditherfunc %s\n", #func); \
+ d->ditherfunc = func; \
+} while (0)
+
void *
stp_init_dither(int in_width, int out_width, int horizontal_aspect,
int vertical_aspect, stp_vars_t v)
{
int i;
- dither_t *d = stp_malloc(sizeof(dither_t));
+ dither_t *d = stp_zalloc(sizeof(dither_t));
stp_simple_dither_range_t r;
- memset(d, 0, sizeof(dither_t));
d->v = v;
- r.value = 1.0;
- r.bit_pattern = 1;
- r.is_dark = 1;
- r.dot_size = 1;
- for (i = 0; i < NCOLORS; i++)
- stp_dither_set_ranges(d, i, 1, &r, 1.0);
- d->offset0_table = NULL;
- d->offset1_table = NULL;
- d->x_aspect = horizontal_aspect;
- d->y_aspect = vertical_aspect;
+ d->dither_class = stp_get_output_type(v);
+ d->error_rows = ERROR_ROWS;
- d->dither_type = D_FLOYD_HYBRID;
+ d->dither_type = D_ADAPTIVE_HYBRID;
for (i = 0; i < num_dither_algos; i++)
{
if (!strcmp(stp_get_dither_algorithm(v), _(dither_algos[i].name)))
@@ -551,8 +405,105 @@ stp_init_dither(int in_width, int out_width, int horizontal_aspect,
break;
}
}
+ switch (d->dither_class)
+ {
+ case OUTPUT_MONOCHROME:
+ d->n_channels = 1;
+ d->n_input_channels = 1;
+ switch (d->dither_type)
+ {
+ case D_VERY_FAST:
+ SET_DITHERFUNC(d, stp_dither_monochrome_very_fast, v);
+ break;
+ default:
+ SET_DITHERFUNC(d, stp_dither_monochrome, v);
+ break;
+ }
+ break;
+ case OUTPUT_GRAY:
+ d->n_channels = 1;
+ d->n_input_channels = 1;
+ switch (d->dither_type)
+ {
+ case D_FAST:
+ SET_DITHERFUNC(d, stp_dither_black_fast, v);
+ break;
+ case D_VERY_FAST:
+ SET_DITHERFUNC(d, stp_dither_black_very_fast, v);
+ break;
+ case D_ORDERED:
+ SET_DITHERFUNC(d, stp_dither_black_ordered, v);
+ break;
+ case D_EVENTONE:
+ SET_DITHERFUNC(d, stp_dither_black_et, v);
+ break;
+ default:
+ SET_DITHERFUNC(d, stp_dither_black_ed, v);
+ break;
+ }
+ break;
+ case OUTPUT_COLOR:
+ d->n_channels = 4;
+ d->n_input_channels = 3;
+ switch (d->dither_type)
+ {
+ case D_FAST:
+ SET_DITHERFUNC(d, stp_dither_cmyk_fast, v);
+ break;
+ case D_VERY_FAST:
+ SET_DITHERFUNC(d, stp_dither_cmyk_very_fast, v);
+ break;
+ case D_ORDERED:
+ SET_DITHERFUNC(d, stp_dither_cmyk_ordered, v);
+ break;
+ case D_EVENTONE:
+ SET_DITHERFUNC(d, stp_dither_cmyk_et, v);
+ break;
+ default:
+ SET_DITHERFUNC(d, stp_dither_cmyk_ed, v);
+ break;
+ }
+ break;
+ case OUTPUT_RAW_CMYK:
+ d->n_channels = 4;
+ d->n_input_channels = 4;
+ switch (d->dither_type)
+ {
+ case D_FAST:
+ SET_DITHERFUNC(d, stp_dither_raw_cmyk_fast, v);
+ break;
+ case D_VERY_FAST:
+ SET_DITHERFUNC(d, stp_dither_raw_cmyk_very_fast, v);
+ break;
+ case D_ORDERED:
+ SET_DITHERFUNC(d, stp_dither_raw_cmyk_ordered, v);
+ break;
+ case D_EVENTONE:
+ SET_DITHERFUNC(d, stp_dither_raw_cmyk_et, v);
+ break;
+ default:
+ SET_DITHERFUNC(d, stp_dither_raw_cmyk_ed, v);
+ break;
+ }
+ break;
+ }
+ d->channel = stp_zalloc(d->n_channels * sizeof(dither_channel_t));
+ r.value = 1.0;
+ r.bit_pattern = 1;
+ r.subchannel = 0;
+ r.dot_size = 1;
+ for (i = 0; i < d->n_channels; i++)
+ {
+ stp_dither_set_ranges(d, i, 1, &r, 1.0);
+ CHANNEL(d, i).errs = stp_zalloc(d->error_rows * sizeof(int *));
+ }
+ d->offset0_table = NULL;
+ d->offset1_table = NULL;
+ d->x_aspect = horizontal_aspect;
+ d->y_aspect = vertical_aspect;
d->transition = 1.0;
d->adaptive_input = .75;
+ d->adaptive_input_set = 0;
if (d->dither_type == D_VERY_FAST)
stp_dither_set_iterated_matrix(d, 2, DITHER_FAST_STEPS, sq2, 0, 2, 4);
@@ -595,7 +546,7 @@ stp_init_dither(int in_width, int out_width, int horizontal_aspect,
stp_dither_set_ink_spread(d, 13);
stp_dither_set_black_lower(d, .4);
stp_dither_set_black_upper(d, .7);
- for (i = 0; i <= NCOLORS; i++)
+ for (i = 0; i <= d->n_channels; i++)
{
stp_dither_set_black_level(d, i, 1.0);
stp_dither_set_randomizer(d, i, 1.0);
@@ -604,7 +555,6 @@ stp_init_dither(int in_width, int out_width, int horizontal_aspect,
stp_dither_set_ink_darkness(d, ECOLOR_M, 2);
stp_dither_set_ink_darkness(d, ECOLOR_Y, 1);
stp_dither_set_density(d, 1.0);
- d->dither_class = stp_get_output_type(v);
return d;
}
@@ -612,25 +562,29 @@ static void
preinit_matrix(dither_t *d)
{
int i;
- for (i = 0; i < NCOLORS; i++)
- destroy_matrix(&(CHANNEL(d, i).dithermat));
- destroy_matrix(&(d->dither_matrix));
+ for (i = 0; i < d->n_channels; i++)
+ stp_destroy_matrix(&(CHANNEL(d, i).dithermat));
+ stp_destroy_matrix(&(d->dither_matrix));
}
static void
postinit_matrix(dither_t *d, int x_shear, int y_shear)
{
- unsigned x_3, y_3;
+ unsigned rc = 1 + (unsigned) ceil(sqrt(d->n_channels));
+ int i, j;
+ int color = 0;
+ unsigned x_n = d->dither_matrix.x_size / rc;
+ unsigned y_n = d->dither_matrix.y_size / rc;
if (x_shear || y_shear)
- shear_matrix(&(d->dither_matrix), x_shear, y_shear);
- x_3 = d->dither_matrix.x_size / 3;
- y_3 = d->dither_matrix.y_size / 3;
- clone_matrix(&(d->dither_matrix), &(CHANNEL(d, ECOLOR_C).dithermat),
- 2 * x_3, y_3);
- clone_matrix(&(d->dither_matrix), &(CHANNEL(d, ECOLOR_M).dithermat),
- x_3, 2 * y_3);
- clone_matrix(&(d->dither_matrix), &(CHANNEL(d, ECOLOR_Y).dithermat), 0, y_3);
- clone_matrix(&(d->dither_matrix), &(CHANNEL(d, ECOLOR_K).dithermat), 0, 0);
+ stp_shear_matrix(&(d->dither_matrix), x_shear, y_shear);
+ for (i = 0; i < rc; i++)
+ for (j = 0; j < rc; j++)
+ if (color < d->n_channels)
+ {
+ stp_clone_matrix(&(d->dither_matrix), &(CHANNEL(d, color).dithermat),
+ x_n * i, y_n * j);
+ color++;
+ }
stp_dither_set_transition(d, d->transition);
}
@@ -641,7 +595,7 @@ stp_dither_set_iterated_matrix(void *vd, size_t edge, size_t iterations,
{
dither_t *d = (dither_t *) vd;
preinit_matrix(d);
- init_iterated_matrix(&(d->dither_matrix), edge, iterations, data);
+ stp_init_iterated_matrix(&(d->dither_matrix), edge, iterations, data);
postinit_matrix(d, x_shear, y_shear);
}
@@ -654,11 +608,11 @@ stp_dither_set_matrix(void *vd, const stp_dither_matrix_t *matrix,
int y = transposed ? matrix->x : matrix->y;
preinit_matrix(d);
if (matrix->bytes == 2)
- init_matrix_short(&(d->dither_matrix), x, y,
+ stp_init_matrix_short(&(d->dither_matrix), x, y,
(const unsigned short *) matrix->data,
transposed, matrix->prescaled);
else if (matrix->bytes == 4)
- init_matrix(&(d->dither_matrix), x, y, (const unsigned *)matrix->data,
+ stp_init_matrix(&(d->dither_matrix), x, y, (const unsigned *)matrix->data,
transposed, matrix->prescaled);
postinit_matrix(d, x_shear, y_shear);
}
@@ -666,23 +620,27 @@ stp_dither_set_matrix(void *vd, const stp_dither_matrix_t *matrix,
void
stp_dither_set_transition(void *vd, double exponent)
{
- int i;
dither_t *d = (dither_t *) vd;
- int x_3 = d->dither_matrix.x_size / 3;
- int y_3 = d->dither_matrix.y_size / 3;
- for (i = 0; i < NCOLORS; i++)
- destroy_matrix(&(CHANNEL(d, i).pick));
- destroy_matrix(&(d->transition_matrix));
- copy_matrix(&(d->dither_matrix), &(d->transition_matrix));
+ unsigned rc = 1 + (unsigned) ceil(sqrt(d->n_channels));
+ int i, j;
+ int color = 0;
+ unsigned x_n = d->dither_matrix.x_size / rc;
+ unsigned y_n = d->dither_matrix.y_size / rc;
+ for (i = 0; i < d->n_channels; i++)
+ stp_destroy_matrix(&(CHANNEL(d, i).pick));
+ stp_destroy_matrix(&(d->transition_matrix));
+ stp_copy_matrix(&(d->dither_matrix), &(d->transition_matrix));
d->transition = exponent;
if (exponent < .999 || exponent > 1.001)
- exponential_scale_matrix(&(d->transition_matrix), exponent);
- clone_matrix(&(d->transition_matrix), &(CHANNEL(d, ECOLOR_C).pick),
- 2 * x_3, y_3);
- clone_matrix(&(d->transition_matrix), &(CHANNEL(d, ECOLOR_M).pick),
- x_3, 2 * y_3);
- clone_matrix(&(d->transition_matrix), &(CHANNEL(d, ECOLOR_Y).pick), 0, y_3);
- clone_matrix(&(d->transition_matrix), &(CHANNEL(d, ECOLOR_K).pick), 0, 0);
+ stp_exponential_scale_matrix(&(d->transition_matrix), exponent);
+ for (i = 0; i < rc; i++)
+ for (j = 0; j < rc; j++)
+ if (color < d->n_channels)
+ {
+ stp_clone_matrix(&(d->dither_matrix), &(CHANNEL(d, color).pick),
+ x_n * i, y_n * j);
+ color++;
+ }
if (exponent < .999 || exponent > 1.001)
for (i = 0; i < 65536; i++)
{
@@ -731,6 +689,7 @@ stp_dither_set_adaptive_limit(void *vd, double limit)
{
dither_t *d = (dither_t *) vd;
d->adaptive_input = limit;
+ d->adaptive_input_set = 1;
d->adaptive_limit = d->density * limit;
}
@@ -752,16 +711,8 @@ void
stp_dither_set_ink_spread(void *vd, int spread)
{
dither_t *d = (dither_t *) vd;
- if (d->offset0_table)
- {
- stp_free(d->offset0_table);
- d->offset0_table = NULL;
- }
- if (d->offset1_table)
- {
- stp_free(d->offset1_table);
- d->offset1_table = NULL;
- }
+ SAFE_FREE(d->offset0_table);
+ SAFE_FREE(d->offset1_table);
if (spread >= 16)
{
d->spread = 16;
@@ -788,7 +739,7 @@ void
stp_dither_set_black_level(void *vd, int i, double v)
{
dither_t *d = (dither_t *) vd;
- if (i < 0 || i >= NCOLORS)
+ if (i < 0 || i >= d->n_channels)
return;
CHANNEL(d, i).k_level = (int) v * 64;
}
@@ -797,7 +748,7 @@ void
stp_dither_set_randomizer(void *vd, int i, double v)
{
dither_t *d = (dither_t *) vd;
- if (i < 0 || i >= NCOLORS)
+ if (i < 0 || i >= d->n_channels)
return;
CHANNEL(d, i).randomizer = v * 65535;
}
@@ -806,7 +757,7 @@ void
stp_dither_set_ink_darkness(void *vd, int i, double v)
{
dither_t *d = (dither_t *) vd;
- if (i < 0 || i >= NCOLORS)
+ if (i < 0 || i >= d->n_channels)
return;
CHANNEL(d, i).darkness = (int) (v * 64);
}
@@ -814,156 +765,197 @@ stp_dither_set_ink_darkness(void *vd, int i, double v)
void
stp_dither_set_light_ink(void *vd, int i, double v, double density)
{
+ dither_t *d = (dither_t *) vd;
stp_simple_dither_range_t range[2];
- if (i < 0 || i >= NCOLORS || v <= 0 || v > 1)
+ if (i < 0 || i >= d->n_channels || v <= 0 || v > 1)
return;
range[0].bit_pattern = 1;
- range[0].is_dark = 0;
- range[1].value = 1;
- range[1].bit_pattern = 1;
- range[1].is_dark = 1;
- range[1].dot_size = 1;
+ range[0].subchannel = 1;
range[0].value = v;
range[0].dot_size = 1;
+ range[1].bit_pattern = 1;
+ range[1].subchannel = 0;
+ range[1].value = 1;
+ range[1].dot_size = 1;
stp_dither_set_ranges(vd, i, 2, range, density);
}
static void
-stp_dither_set_generic_ranges(dither_t *d, dither_color_t *s, int nlevels,
- const stp_simple_dither_range_t *ranges,
- double density)
+stp_dither_finalize_ranges(dither_t *d, dither_channel_t *s)
{
+ int max_subchannel = 0;
int i;
- unsigned lbit;
- if (s->ranges)
- stp_free(s->ranges);
- s->nlevels = nlevels > 1 ? nlevels + 1 : nlevels;
- s->ranges = (dither_segment_t *)
- stp_malloc(s->nlevels * sizeof(dither_segment_t));
- s->bit_max = 0;
- s->density = density * 65535;
- stp_dprintf(STP_DBG_INK, d->v,
- "stp_dither_set_generic_ranges nlevels %d density %f\n",
- nlevels, density);
- for (i = 0; i < nlevels; i++)
- stp_dprintf(STP_DBG_INK, d->v,
- " level %d value %f pattern %x is_dark %d\n", i,
- ranges[i].value, ranges[i].bit_pattern, ranges[i].is_dark);
- s->ranges[0].range[0] = 0;
- s->ranges[0].value[0] = ranges[0].value * 65535.0;
- s->ranges[0].bits[0] = ranges[0].bit_pattern;
- s->ranges[0].isdark[0] = ranges[0].is_dark;
- s->ranges[0].dot_size[0] = ranges[0].dot_size;
- if (nlevels == 1)
- s->ranges[0].range[1] = 65535;
- else
- s->ranges[0].range[1] = ranges[0].value * 65535.0 * density;
- if (s->ranges[0].range[1] > 65535)
- s->ranges[0].range[1] = 65535;
- s->ranges[0].value[1] = ranges[0].value * 65535.0;
- if (s->ranges[0].value[1] > 65535)
- s->ranges[0].value[1] = 65535;
- s->ranges[0].bits[1] = ranges[0].bit_pattern;
- if (ranges[0].bit_pattern > s->bit_max)
- s->bit_max = ranges[0].bit_pattern;
- s->ranges[0].isdark[1] = ranges[0].is_dark;
- s->ranges[0].dot_size[1] = ranges[0].dot_size;
- s->ranges[0].range_span = s->ranges[0].range[1];
- s->ranges[0].value_span = 0;
- if (s->nlevels > 1)
- {
- for (i = 0; i < nlevels - 1; i++)
- {
- int l = i + 1;
- s->ranges[l].range[0] = s->ranges[i].range[1];
- s->ranges[l].value[0] = s->ranges[i].value[1];
- s->ranges[l].bits[0] = s->ranges[i].bits[1];
- s->ranges[l].isdark[0] = s->ranges[i].isdark[1];
- s->ranges[l].dot_size[0] = s->ranges[i].dot_size[1];
- if (i == nlevels - 1)
- s->ranges[l].range[1] = 65535;
- else
- s->ranges[l].range[1] =
- (ranges[l].value + ranges[l].value) * 32768.0 * density;
- if (s->ranges[l].range[1] > 65535)
- s->ranges[l].range[1] = 65535;
- s->ranges[l].value[1] = ranges[l].value * 65535.0;
- if (s->ranges[l].value[1] > 65535)
- s->ranges[l].value[1] = 65535;
- s->ranges[l].bits[1] = ranges[l].bit_pattern;
- if (ranges[l].bit_pattern > s->bit_max)
- s->bit_max = ranges[l].bit_pattern;
- s->ranges[l].isdark[1] = ranges[l].is_dark;
- s->ranges[l].dot_size[1] = ranges[l].dot_size;
- s->ranges[l].range_span =
- s->ranges[l].range[1] - s->ranges[l].range[0];
- s->ranges[l].value_span =
- s->ranges[l].value[1] - s->ranges[l].value[0];
- }
- i++;
- s->ranges[i].range[0] = s->ranges[i - 1].range[1];
- s->ranges[i].value[0] = s->ranges[i - 1].value[1];
- s->ranges[i].bits[0] = s->ranges[i - 1].bits[1];
- s->ranges[i].isdark[0] = s->ranges[i - 1].isdark[1];
- s->ranges[i].dot_size[0] = s->ranges[i - 1].dot_size[1];
- s->ranges[i].range[1] = 65535;
- s->ranges[i].value[1] = s->ranges[i].value[0];
- s->ranges[i].bits[1] = s->ranges[i].bits[0];
- s->ranges[i].isdark[1] = s->ranges[i].isdark[0];
- s->ranges[i].dot_size[1] = s->ranges[i].dot_size[0];
- s->ranges[i].range_span = s->ranges[i].range[1] - s->ranges[i].range[0];
- s->ranges[i].value_span = s->ranges[i].value[1] - s->ranges[i].value[0];
- }
- lbit = s->bit_max;
+ unsigned lbit = s->bit_max;
s->signif_bits = 0;
while (lbit > 0)
{
s->signif_bits++;
lbit >>= 1;
}
+
+ s->maxdot = 0;
+
for (i = 0; i < s->nlevels; i++)
{
- if (s->ranges[i].isdark[0] == s->ranges[i].isdark[1] &&
- s->ranges[i].dot_size[0] == s->ranges[i].dot_size[1])
+ if (s->ranges[i].lower->subchannel > max_subchannel)
+ max_subchannel = s->ranges[i].lower->subchannel;
+ if (s->ranges[i].upper->subchannel > max_subchannel)
+ max_subchannel = s->ranges[i].upper->subchannel;
+ if (s->ranges[i].lower->subchannel == s->ranges[i].upper->subchannel &&
+ s->ranges[i].lower->dot_size == s->ranges[i].upper->dot_size)
s->ranges[i].is_same_ink = 1;
else
s->ranges[i].is_same_ink = 0;
if (s->ranges[i].range_span > 0 &&
(s->ranges[i].value_span > 0 ||
- s->ranges[i].isdark[0] != s->ranges[i].isdark[1]))
+ s->ranges[i].lower->subchannel != s->ranges[i].upper->subchannel))
s->ranges[i].is_equal = 0;
else
s->ranges[i].is_equal = 1;
+
+ if (s->ranges[i].lower->dot_size > s->maxdot)
+ s->maxdot = s->ranges[i].lower->dot_size;
+ if (s->ranges[i].upper->dot_size > s->maxdot)
+ s->maxdot = s->ranges[i].upper->dot_size;
+
stp_dprintf(STP_DBG_INK, d->v,
" level %d value[0] %d value[1] %d range[0] %d range[1] %d\n",
- i, s->ranges[i].value[0], s->ranges[i].value[1],
- s->ranges[i].range[0], s->ranges[i].range[1]);
+ i, s->ranges[i].lower->value, s->ranges[i].upper->value,
+ s->ranges[i].lower->range, s->ranges[i].upper->range);
stp_dprintf(STP_DBG_INK, d->v,
- " bits[0] %d bits[1] %d isdark[0] %d isdark[1] %d\n",
- s->ranges[i].bits[0], s->ranges[i].bits[1],
- s->ranges[i].isdark[0], s->ranges[i].isdark[1]);
+ " bits[0] %d bits[1] %d subchannel[0] %d subchannel[1] %d\n",
+ s->ranges[i].lower->bits, s->ranges[i].upper->bits,
+ s->ranges[i].lower->subchannel, s->ranges[i].upper->subchannel);
stp_dprintf(STP_DBG_INK, d->v,
" rangespan %d valuespan %d same_ink %d equal %d\n",
s->ranges[i].range_span, s->ranges[i].value_span,
s->ranges[i].is_same_ink, s->ranges[i].is_equal);
+ if (!d->adaptive_input_set && i > 0 &&
+ s->ranges[i].lower->range >= d->adaptive_limit)
+ {
+ d->adaptive_limit = s->ranges[i].lower->range + 1;
+ if (d->adaptive_limit > 65535)
+ d->adaptive_limit = 65535;
+ d->adaptive_input = (double) d->adaptive_limit / (double) d->density;
+ stp_dprintf(STP_DBG_INK, d->v,
+ "Setting adaptive limit to %d, input %f\n",
+ d->adaptive_limit, d->adaptive_input);
+ }
}
+ if (s->nlevels == 1 && s->ranges[0].upper->bits == 1 &&
+ s->ranges[0].upper->subchannel == 0)
+ s->very_fast = 1;
+ else
+ s->very_fast = 0;
+
+ s->subchannels = max_subchannel + 1;
+ s->row_ends[0] = stp_zalloc(s->subchannels * sizeof(int));
+ s->row_ends[1] = stp_zalloc(s->subchannels * sizeof(int));
+ s->ptrs = stp_zalloc(s->subchannels * sizeof(char *));
stp_dprintf(STP_DBG_INK, d->v,
" bit_max %d signif_bits %d\n", s->bit_max, s->signif_bits);
}
static void
-stp_dither_set_generic_ranges_full(dither_t *d, dither_color_t *s, int nlevels,
+stp_dither_set_generic_ranges(dither_t *d, dither_channel_t *s, int nlevels,
+ const stp_simple_dither_range_t *ranges,
+ double density)
+{
+ int i;
+ SAFE_FREE(s->ranges);
+ SAFE_FREE(s->row_ends[0]);
+ SAFE_FREE(s->row_ends[1]);
+ SAFE_FREE(s->ptrs);
+
+ s->nlevels = nlevels > 1 ? nlevels + 1 : nlevels;
+ s->ranges = (dither_segment_t *)
+ stp_zalloc(s->nlevels * sizeof(dither_segment_t));
+ s->ink_list = (ink_defn_t *)
+ stp_zalloc((s->nlevels + 1) * sizeof(ink_defn_t));
+ s->bit_max = 0;
+ s->density = density * 65535;
+ stp_dprintf(STP_DBG_INK, d->v,
+ "stp_dither_set_generic_ranges nlevels %d density %f\n",
+ nlevels, density);
+ for (i = 0; i < nlevels; i++)
+ stp_dprintf(STP_DBG_INK, d->v,
+ " level %d value %f pattern %x subchannel %d\n", i,
+ ranges[i].value, ranges[i].bit_pattern, ranges[i].subchannel);
+ s->ranges[0].lower = &s->ink_list[0];
+ s->ranges[0].upper = &s->ink_list[1];
+ s->ink_list[0].range = 0;
+ s->ink_list[0].value = ranges[0].value * 65535.0;
+ s->ink_list[0].bits = ranges[0].bit_pattern;
+ s->ink_list[0].subchannel = ranges[0].subchannel;
+ s->ink_list[0].dot_size = ranges[0].dot_size;
+ if (nlevels == 1)
+ s->ink_list[1].range = 65535;
+ else
+ s->ink_list[1].range = ranges[0].value * 65535.0 * density;
+ if (s->ink_list[1].range > 65535)
+ s->ink_list[1].range = 65535;
+ s->ink_list[1].value = ranges[0].value * 65535.0;
+ if (s->ink_list[1].value > 65535)
+ s->ink_list[1].value = 65535;
+ s->ink_list[1].bits = ranges[0].bit_pattern;
+ if (ranges[0].bit_pattern > s->bit_max)
+ s->bit_max = ranges[0].bit_pattern;
+ s->ink_list[1].subchannel = ranges[0].subchannel;
+ s->ink_list[1].dot_size = ranges[0].dot_size;
+ s->ranges[0].range_span = s->ranges[0].upper->range;
+ s->ranges[0].value_span = 0;
+ if (s->nlevels > 1)
+ {
+ for (i = 1; i < nlevels; i++)
+ {
+ int l = i + 1;
+ s->ranges[i].lower = &s->ink_list[i];
+ s->ranges[i].upper = &s->ink_list[l];
+
+ s->ink_list[l].range =
+ (ranges[i].value + ranges[i].value) * 32768.0 * density;
+ if (s->ink_list[l].range > 65535)
+ s->ink_list[l].range = 65535;
+ s->ink_list[l].value = ranges[i].value * 65535.0;
+ if (s->ink_list[l].value > 65535)
+ s->ink_list[l].value = 65535;
+ s->ink_list[l].bits = ranges[i].bit_pattern;
+ if (ranges[i].bit_pattern > s->bit_max)
+ s->bit_max = ranges[i].bit_pattern;
+ s->ink_list[l].subchannel = ranges[i].subchannel;
+ s->ink_list[l].dot_size = ranges[i].dot_size;
+ s->ranges[i].range_span =
+ s->ink_list[l].range - s->ink_list[i].range;
+ s->ranges[i].value_span =
+ s->ink_list[l].value - s->ink_list[i].value;
+ }
+ s->ranges[i].lower = &s->ink_list[i];
+ s->ranges[i].upper = &s->ink_list[i+1];
+ s->ink_list[i+1] = s->ink_list[i];
+ s->ink_list[i+1].range = 65535;
+ s->ranges[i].range_span = s->ink_list[i+1].range - s->ink_list[i].range;
+ s->ranges[i].value_span = s->ink_list[i+1].value - s->ink_list[i].value;
+ }
+ stp_dither_finalize_ranges(d, s);
+}
+
+static void
+stp_dither_set_generic_ranges_full(dither_t *d, dither_channel_t *s,
+ int nlevels,
const stp_full_dither_range_t *ranges,
double density)
{
int i, j, k;
- unsigned lbit;
- if (s->ranges)
- stp_free(s->ranges);
- s->nlevels = nlevels > 1 ? nlevels + 1 : nlevels;
+ SAFE_FREE(s->ranges);
+ SAFE_FREE(s->row_ends[0]);
+ SAFE_FREE(s->row_ends[1]);
+ SAFE_FREE(s->ptrs);
+
s->nlevels = nlevels+1;
s->ranges = (dither_segment_t *)
- stp_malloc(s->nlevels * sizeof(dither_segment_t));
+ stp_zalloc(s->nlevels * sizeof(dither_segment_t));
+ s->ink_list = (ink_defn_t *)
+ stp_zalloc((s->nlevels * 2) * sizeof(ink_defn_t));
s->bit_max = 0;
s->density = density * 65535;
stp_dprintf(STP_DBG_INK, d->v,
@@ -972,74 +964,38 @@ stp_dither_set_generic_ranges_full(dither_t *d, dither_color_t *s, int nlevels,
for (i = 0; i < nlevels; i++)
stp_dprintf(STP_DBG_INK, d->v,
" level %d value: low %f high %f pattern low %x "
- "high %x is_dark low %d high %d\n", i,
+ "high %x subchannel low %d high %d\n", i,
ranges[i].value[0], ranges[i].value[1],
- ranges[i].bits[0], ranges[i].bits[1],ranges[i].isdark[0],
- ranges[i].isdark[1]);
+ ranges[i].bits[0], ranges[i].bits[1],ranges[i].subchannel[0],
+ ranges[i].subchannel[1]);
for(i=j=0; i < nlevels; i++)
{
for (k = 0; k < 2; k++)
{
if (ranges[i].bits[k] > s->bit_max)
s->bit_max = ranges[i].bits[k];
- s->ranges[j].dot_size[k] = ranges[i].bits[k]; /* FIXME */
- s->ranges[j].value[k] = ranges[i].value[k] * 65535;
- s->ranges[j].range[k] = s->ranges[j].value[k]*density;
- s->ranges[j].bits[k] = ranges[i].bits[k];
- s->ranges[j].isdark[k] = ranges[i].isdark[k];
+ s->ink_list[2*j+k].dot_size = ranges[i].bits[k]; /* FIXME */
+ s->ink_list[2*j+k].value = ranges[i].value[k] * 65535;
+ s->ink_list[2*j+k].range = s->ink_list[2*j+k].value*density;
+ s->ink_list[2*j+k].bits = ranges[i].bits[k];
+ s->ink_list[2*j+k].subchannel = ranges[i].subchannel[k];
}
- s->ranges[j].range_span = s->ranges[j].range[1]-s->ranges[j].range[0];
- s->ranges[j].value_span = s->ranges[j].value[1]-s->ranges[j].value[0];
- j++;
- }
- s->ranges[j].range[0] = s->ranges[j - 1].range[1];
- s->ranges[j].value[0] = s->ranges[j - 1].value[1];
- s->ranges[j].bits[0] = s->ranges[j - 1].bits[1];
- s->ranges[j].isdark[0] = s->ranges[j - 1].isdark[1];
- s->ranges[j].dot_size[0] = s->ranges[j - 1].dot_size[1];
- s->ranges[j].range[1] = 65535;
- s->ranges[j].value[1] = 65535;
- s->ranges[j].bits[1] = s->ranges[j].bits[0];
- s->ranges[j].isdark[1] = s->ranges[j].isdark[0];
- s->ranges[j].dot_size[1] = s->ranges[j].dot_size[0];
- s->ranges[j].range_span = s->ranges[j].range[1] - s->ranges[j].range[0];
+ s->ranges[j].lower = &s->ink_list[2*j];
+ s->ranges[j].upper = &s->ink_list[2*j+1];
+ s->ranges[j].range_span = s->ranges[j].upper->range - s->ranges[j].lower->range;
+ s->ranges[j].value_span = s->ranges[j].upper->value - s->ranges[j].lower->value;
+ j++;
+ }
+ s->ink_list[2*j] = s->ink_list[2*(j-1)+1];
+ s->ink_list[2*j+1] = s->ink_list[2*j];
+ s->ink_list[2*j+1].range = 65535;
+ s->ink_list[2*j+1].value = 65535; /* ??? Is this correct ??? */
+ s->ranges[j].lower = &s->ink_list[2*j];
+ s->ranges[j].upper = &s->ink_list[2*j+1];
+ s->ranges[j].range_span = s->ranges[j].upper->range - s->ranges[j].lower->range;
s->ranges[j].value_span = 0;
s->nlevels = j+1;
- lbit = s->bit_max;
- s->signif_bits = 0;
- while (lbit > 0)
- {
- s->signif_bits++;
- lbit >>= 1;
- }
- for (i = 0; i < s->nlevels; i++)
- {
- if (s->ranges[i].isdark[0] == s->ranges[i].isdark[1] &&
- s->ranges[i].dot_size[0] == s->ranges[i].dot_size[1])
- s->ranges[i].is_same_ink = 1;
- else
- s->ranges[i].is_same_ink = 0;
- if (s->ranges[i].range_span > 0 &&
- (s->ranges[i].value_span > 0 ||
- s->ranges[i].isdark[0] != s->ranges[i].isdark[1]))
- s->ranges[i].is_equal = 0;
- else
- s->ranges[i].is_equal = 1;
- stp_dprintf(STP_DBG_INK, d->v,
- " level %d value[0] %d value[1] %d range[0] %d range[1] %d\n",
- i, s->ranges[i].value[0], s->ranges[i].value[1],
- s->ranges[i].range[0], s->ranges[i].range[1]);
- stp_dprintf(STP_DBG_INK, d->v,
- " bits[0] %d bits[1] %d isdark[0] %d isdark[1] %d\n",
- s->ranges[i].bits[0], s->ranges[i].bits[1],
- s->ranges[i].isdark[0], s->ranges[i].isdark[1]);
- stp_dprintf(STP_DBG_INK, d->v,
- " rangespan %d valuespan %d same_ink %d equal %d\n",
- s->ranges[i].range_span, s->ranges[i].value_span,
- s->ranges[i].is_same_ink, s->ranges[i].is_equal);
- }
- stp_dprintf(STP_DBG_INK, d->v,
- " bit_max %d signif_bits %d\n", s->bit_max, s->signif_bits);
+ stp_dither_finalize_ranges(d, s);
}
void
@@ -1047,9 +1003,9 @@ stp_dither_set_ranges(void *vd, int color, int nlevels,
const stp_simple_dither_range_t *ranges, double density)
{
dither_t *d = (dither_t *) vd;
- if (color < 0 || color >= NCOLORS)
+ if (color < 0 || color >= d->n_channels)
return;
- stp_dither_set_generic_ranges(d, &(CHANNEL(d, color).dither), nlevels,
+ stp_dither_set_generic_ranges(d, &(CHANNEL(d, color)), nlevels,
ranges, density);
}
@@ -1065,7 +1021,7 @@ stp_dither_set_ranges_simple(void *vd, int color, int nlevels,
r[i].bit_pattern = i + 1;
r[i].dot_size = i + 1;
r[i].value = levels[i];
- r[i].is_dark = 1;
+ r[i].subchannel = 0;
}
stp_dither_set_ranges(vd, color, nlevels, r, density);
stp_free(r);
@@ -1077,7 +1033,7 @@ stp_dither_set_ranges_full(void *vd, int color, int nlevels,
double density)
{
dither_t *d = (dither_t *) vd;
- stp_dither_set_generic_ranges_full(d, &(CHANNEL(d, color).dither), nlevels,
+ stp_dither_set_generic_ranges_full(d, &(CHANNEL(d, color)), nlevels,
ranges, density);
}
@@ -1087,96 +1043,75 @@ stp_free_dither(void *vd)
dither_t *d = (dither_t *) vd;
int i;
int j;
- for (j = 0; j < NCOLORS; j++)
+ for (j = 0; j < d->n_channels; j++)
{
- if (CHANNEL(d, j).vals)
- {
- stp_free(CHANNEL(d, j).vals);
- CHANNEL(d, j).vals = NULL;
- }
- for (i = 0; i < ERROR_ROWS; i++)
+ SAFE_FREE(CHANNEL(d, j).vals);
+ SAFE_FREE(CHANNEL(d, j).row_ends[0]);
+ SAFE_FREE(CHANNEL(d, j).row_ends[1]);
+ SAFE_FREE(CHANNEL(d, j).ptrs);
+ if (CHANNEL(d, j).errs)
{
- if (CHANNEL(d, j).errs[i])
- {
- stp_free(CHANNEL(d, j).errs[i]);
- CHANNEL(d, j).errs[i] = NULL;
- }
+ for (i = 0; i < d->error_rows; i++)
+ SAFE_FREE(CHANNEL(d, j).errs[i]);
+ SAFE_FREE(CHANNEL(d, j).errs);
}
- stp_free(CHANNEL(d, i).dither.ranges);
- CHANNEL(d, i).dither.ranges = NULL;
- destroy_matrix(&(CHANNEL(d, i).pick));
- destroy_matrix(&(CHANNEL(d, i).dithermat));
+ SAFE_FREE(CHANNEL(d, j).ranges);
+ stp_destroy_matrix(&(CHANNEL(d, j).pick));
+ stp_destroy_matrix(&(CHANNEL(d, j).dithermat));
}
- if (d->offset0_table)
- {
- stp_free(d->offset0_table);
- d->offset0_table = NULL;
+ SAFE_FREE(d->offset0_table);
+ SAFE_FREE(d->offset1_table);
+ stp_destroy_matrix(&(d->dither_matrix));
+ stp_destroy_matrix(&(d->transition_matrix));
+ if (d->eventone) {
+ eventone_t *et = d->eventone;
+ stp_free(et->recip);
+ for (i=0; i<d->n_channels; i++) {
+ stp_free(et->dx[i]);
+ stp_free(et->dy[i]);
+ stp_free(et->r_sq[i]);
}
- if (d->offset1_table)
- {
- stp_free(d->offset1_table);
- d->offset1_table = NULL;
- }
- destroy_matrix(&(d->dither_matrix));
- destroy_matrix(&(d->transition_matrix));
+ stp_free(et->r_sq);
+ stp_free(et->dx);
+ stp_free(et->dy);
+ stp_free(d->eventone);
+ }
stp_free(d);
}
int
-stp_dither_get_first_position(void *vd, int color, int is_dark)
+stp_dither_get_first_position(void *vd, int color, int subchannel)
{
dither_t *d = (dither_t *) vd;
- if (color < 0 || color >= NCOLORS)
+ if (color < 0 || color >= d->n_channels)
return -1;
- if (is_dark)
- return CHANNEL(d, color).dither.row_ends[0][0];
- else
- return CHANNEL(d, color).dither.row_ends[0][1];
+ return CHANNEL(d, color).row_ends[0][subchannel];
}
int
-stp_dither_get_last_position(void *vd, int color, int is_dark)
+stp_dither_get_last_position(void *vd, int color, int subchannel)
{
dither_t *d = (dither_t *) vd;
- if (color < 0 || color >= NCOLORS)
+ if (color < 0 || color >= d->n_channels)
return -1;
- if (is_dark)
- return CHANNEL(d, color).dither.row_ends[1][0];
- else
- return CHANNEL(d, color).dither.row_ends[1][1];
+ return CHANNEL(d, color).row_ends[0][subchannel];
}
static int *
get_errline(dither_t *d, int row, int color)
{
- if (row < 0 || color < 0 || color >= NCOLORS)
+ if (row < 0 || color < 0 || color >= d->n_channels)
return NULL;
if (CHANNEL(d, color).errs[row & 1])
return CHANNEL(d, color).errs[row & 1] + MAX_SPREAD;
else
{
int size = 2 * MAX_SPREAD + (16 * ((d->dst_width + 7) / 8));
- CHANNEL(d, color).errs[row & 1] = stp_malloc(size * sizeof(int));
- memset(CHANNEL(d, color).errs[row & 1], 0, size * sizeof(int));
+ CHANNEL(d, color).errs[row & 1] = stp_zalloc(size * sizeof(int));
return CHANNEL(d, color).errs[row & 1] + MAX_SPREAD;
}
}
-static unsigned short *
-get_valueline(dither_t *d, int color)
-{
- if (color < 0 || color >= NCOLORS)
- return NULL;
- if (CHANNEL(d, color).vals)
- return CHANNEL(d, color).vals;
- else
- {
- int size = (8 * ((d->dst_width + 7) / 8));
- CHANNEL(d, color).vals = stp_malloc(size * sizeof(unsigned short));
- return CHANNEL(d, color).vals;
- }
-}
-
#define ADVANCE_UNIDIRECTIONAL(d, bit, input, width, xerror, xmod) \
do \
{ \
@@ -1200,57 +1135,42 @@ do \
} \
} while (0)
+#define ADVANCE_REVERSE(d, bit, input, width, xerror, xmod) \
+do \
+{ \
+ if (bit == 128) \
+ { \
+ d->ptr_offset--; \
+ bit = 1; \
+ } \
+ else \
+ bit <<= 1; \
+ if (d->src_width == d->dst_width) \
+ input -= (width); \
+ else \
+ { \
+ input -= xstep; \
+ xerror -= xmod; \
+ if (xerror < 0) \
+ { \
+ xerror += d->dst_width; \
+ input -= (width); \
+ } \
+ } \
+} while (0)
+
#define ADVANCE_BIDIRECTIONAL(d, bit, in, dir, width, xer, xmod, err, N, S) \
do \
{ \
int i; \
int j; \
- if (dir == 1) \
- { \
- bit >>= 1; \
- if (bit == 0) \
- { \
- d->ptr_offset++; \
- bit = 128; \
- } \
- if (d->src_width == d->dst_width) \
- in += (width); \
- else \
- { \
- in += xstep; \
- xer += xmod; \
- if (xer >= d->dst_width) \
- { \
- xer -= d->dst_width; \
- in += (width); \
- } \
- } \
- } \
- else \
- { \
- if (bit == 128) \
- { \
- d->ptr_offset--; \
- bit = 1; \
- } \
- else \
- bit <<= 1; \
- if (d->src_width == d->dst_width) \
- in -= (width); \
- else \
- { \
- in -= xstep; \
- xer -= xmod; \
- if (xer < 0) \
- { \
- xer += d->dst_width; \
- in -= (width); \
- } \
- } \
- } \
for (i = 0; i < N; i++) \
for (j = 0; j < S; j++) \
- err[i][j] += direction; \
+ err[i][j] += dir; \
+ if (dir == 1) \
+ ADVANCE_UNIDIRECTIONAL(d, bit, in, width, xer, xmod); \
+ else \
+ ADVANCE_REVERSE(d, bit, in, width, xer, xmod); \
} while (0)
/*
@@ -1339,11 +1259,19 @@ compute_black(const dither_t *d)
{
int answer = INT_MAX;
int i;
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
answer = USMIN(answer, CHANNEL(d, i).v);
return answer;
}
+static inline void
+set_row_ends(dither_channel_t *dc, int x, int subchannel)
+{
+ if (dc->row_ends[0][subchannel] == -1)
+ dc->row_ends[0][subchannel] = x;
+ dc->row_ends[1][subchannel] = x;
+}
+
/*
* Print a single dot. This routine has become awfully complicated
* awfully fast!
@@ -1356,7 +1284,6 @@ print_color(const dither_t *d, dither_channel_t *dc, int x, int y,
int base = dc->b;
int density = dc->o;
int adjusted = dc->v;
- dither_color_t *rv = &(dc->dither);
unsigned randomizer = dc->randomizer;
dither_matrix_t *pick_matrix = &(dc->pick);
dither_matrix_t *dither_matrix = &(dc->dithermat);
@@ -1365,14 +1292,16 @@ print_color(const dither_t *d, dither_channel_t *dc, int x, int y,
unsigned vmatrix;
int i;
int j;
- int isdark;
+ int subchannel;
unsigned char *tptr;
unsigned bits;
unsigned v;
unsigned dot_size;
- int levels = rv->nlevels - 1;
+ int levels = dc->nlevels - 1;
int dither_value = adjusted;
dither_segment_t *dd;
+ ink_defn_t *lower;
+ ink_defn_t *upper;
if (base <= 0 || density <= 0 ||
(adjusted <= 0 && !(dither_type & D_ADAPTIVE_BASE)))
@@ -1390,9 +1319,9 @@ print_color(const dither_t *d, dither_channel_t *dc, int x, int y,
*/
for (i = levels; i >= 0; i--)
{
- dd = &(rv->ranges[i]);
+ dd = &(dc->ranges[i]);
- if (density <= dd->range[0])
+ if (density <= dd->lower->range)
continue;
/*
@@ -1422,9 +1351,13 @@ print_color(const dither_t *d, dither_channel_t *dc, int x, int y,
* We scale the input linearly against the top and bottom of the
* range.
*/
+
+ lower = dd->lower;
+ upper = dd->upper;
+
if (!dd->is_equal)
rangepoint =
- ((unsigned) (density - dd->range[0])) * 65535 / dd->range_span;
+ ((unsigned) (density - lower->range)) * 65535 / dd->range_span;
/*
* Compute the virtual dot size that we're going to print.
@@ -1433,11 +1366,11 @@ print_color(const dither_t *d, dither_channel_t *dc, int x, int y,
*/
if (dd->value_span == 0)
- virtual_value = dd->value[1];
+ virtual_value = upper->value;
else if (dd->range_span == 0)
- virtual_value = (dd->value[1] + dd->value[0]) / 2;
+ virtual_value = (upper->value + lower->value) / 2;
else
- virtual_value = dd->value[0] +
+ virtual_value = lower->value +
(dd->value_span * d->virtual_dot_scale[rangepoint] / 65535);
/*
@@ -1501,32 +1434,30 @@ print_color(const dither_t *d, dither_channel_t *dc, int x, int y,
*/
if (dither_value >= vmatrix)
{
- int subchannel;
+ ink_defn_t *subc;
if (dd->is_same_ink)
- subchannel = 1;
+ subc = upper;
else
{
- rangepoint = rangepoint * rv->density / 65535u;
+ rangepoint = rangepoint * dc->density / 65535u;
if (rangepoint >= ditherpoint(d, pick_matrix, x))
- subchannel = 1;
+ subc = upper;
else
- subchannel = 0;
+ subc = lower;
}
- isdark = dd->isdark[subchannel];
- bits = dd->bits[subchannel];
- v = dd->value[subchannel];
- dot_size = dd->dot_size[subchannel];
- tptr = dc->ptrs[1 - isdark] + d->ptr_offset;
+ subchannel = subc->subchannel;
+ bits = subc->bits;
+ v = subc->value;
+ dot_size = subc->dot_size;
+ tptr = dc->ptrs[subchannel] + d->ptr_offset;
/*
* Lay down all of the bits in the pixel.
*/
if (dontprint < v)
{
- if (rv->row_ends[0][1 - isdark] == -1)
- rv->row_ends[0][1 - isdark] = x;
- rv->row_ends[1][1 - isdark] = x;
+ set_row_ends(dc, x, subchannel);
for (j = 1; j <= bits; j += j, tptr += length)
{
if (j & bits)
@@ -1549,7 +1480,6 @@ print_color_ordered(const dither_t *d, dither_channel_t *dc, int x, int y,
{
int density = dc->o;
int adjusted = dc->v;
- dither_color_t *rv = &(dc->dither);
dither_matrix_t *pick_matrix = &(dc->pick);
dither_matrix_t *dither_matrix = &(dc->dithermat);
unsigned rangepoint;
@@ -1557,14 +1487,16 @@ print_color_ordered(const dither_t *d, dither_channel_t *dc, int x, int y,
unsigned vmatrix;
int i;
int j;
- int isdark;
+ int subchannel;
unsigned char *tptr;
unsigned bits;
unsigned v;
unsigned dot_size;
- int levels = rv->nlevels - 1;
+ int levels = dc->nlevels - 1;
int dither_value = adjusted;
dither_segment_t *dd;
+ ink_defn_t *lower;
+ ink_defn_t *upper;
if (adjusted <= 0 || density <= 0)
return 0;
@@ -1581,9 +1513,9 @@ print_color_ordered(const dither_t *d, dither_channel_t *dc, int x, int y,
*/
for (i = levels; i >= 0; i--)
{
- dd = &(rv->ranges[i]);
+ dd = &(dc->ranges[i]);
- if (density <= dd->range[0])
+ if (density <= dd->lower->range)
continue;
/*
@@ -1595,11 +1527,15 @@ print_color_ordered(const dither_t *d, dither_channel_t *dc, int x, int y,
* We scale the input linearly against the top and bottom of the
* range.
*/
+
+ lower = dd->lower;
+ upper = dd->upper;
+
if (dd->is_equal)
rangepoint = 32768;
else
rangepoint =
- ((unsigned) (density - dd->range[0])) * 65535 / dd->range_span;
+ ((unsigned) (density - lower->range)) * 65535 / dd->range_span;
/*
* Compute the virtual dot size that we're going to print.
@@ -1608,11 +1544,11 @@ print_color_ordered(const dither_t *d, dither_channel_t *dc, int x, int y,
*/
if (dd->value_span == 0)
- virtual_value = dd->value[1];
+ virtual_value = upper->value;
else if (dd->range_span == 0)
- virtual_value = (dd->value[1] + dd->value[0]) / 2;
+ virtual_value = (upper->value + lower->value) / 2;
else
- virtual_value = dd->value[0] +
+ virtual_value = lower->value +
(dd->value_span * d->virtual_dot_scale[rangepoint] / 65535);
/*
@@ -1640,32 +1576,30 @@ print_color_ordered(const dither_t *d, dither_channel_t *dc, int x, int y,
*/
if (dither_value >= vmatrix)
{
- int subchannel;
+ ink_defn_t *subc;
if (dd->is_same_ink)
- subchannel = 1;
+ subc = upper;
else
{
- rangepoint = rangepoint * rv->density / 65535u;
+ rangepoint = rangepoint * dc->density / 65535u;
if (rangepoint >= ditherpoint(d, pick_matrix, x))
- subchannel = 1;
+ subc = upper;
else
- subchannel = 0;
+ subc = lower;
}
- isdark = dd->isdark[subchannel];
- bits = dd->bits[subchannel];
- v = dd->value[subchannel];
- dot_size = dd->dot_size[subchannel];
- tptr = dc->ptrs[1 - isdark] + d->ptr_offset;
+ subchannel = subc->subchannel;
+ bits = subc->bits;
+ v = subc->value;
+ dot_size = subc->dot_size;
+ tptr = dc->ptrs[subchannel] + d->ptr_offset;
/*
* Lay down all of the bits in the pixel.
*/
if (dontprint < v)
{
- if (rv->row_ends[0][1 - isdark] == -1)
- rv->row_ends[0][1 - isdark] = x;
- rv->row_ends[1][1 - isdark] = x;
+ set_row_ends(dc, x, subchannel);
for (j = 1; j <= bits; j += j, tptr += length)
{
if (j & bits)
@@ -1685,83 +1619,63 @@ print_color_fast(const dither_t *d, dither_channel_t *dc, int x, int y,
{
int density = dc->o;
int adjusted = dc->v;
- dither_color_t *rv = &(dc->dither);
dither_matrix_t *dither_matrix = &(dc->dithermat);
+ int i;
+ int levels = dc->nlevels - 1;
+ int j;
+ unsigned char *tptr;
+ unsigned bits;
if (density <= 0 || adjusted <= 0)
return;
- if (dc->very_fast)
+ for (i = levels; i >= 0; i--)
{
- if (adjusted >= ditherpoint(d, dither_matrix, x))
+ dither_segment_t *dd = &(dc->ranges[i]);
+ unsigned vmatrix;
+ unsigned rangepoint;
+ unsigned dpoint;
+ unsigned range0;
+ ink_defn_t *subc;
+
+ range0 = dd->lower->range;
+ if (density <= range0)
+ continue;
+ dpoint = ditherpoint(d, dither_matrix, x);
+
+ if (dd->is_same_ink)
+ subc = dd->upper;
+ else
{
- if (rv->row_ends[0][0] == -1)
- rv->row_ends[0][0] = x;
- rv->row_ends[1][0] = x;
- dc->ptrs[0][d->ptr_offset] |= bit;
+ rangepoint = ((density - range0) << 16) / dd->range_span;
+ rangepoint = (rangepoint * dc->density) >> 16;
+ if (rangepoint >= dpoint)
+ subc = dd->upper;
+ else
+ subc = dd->lower;
}
- }
- else
- {
- int i;
- int levels = rv->nlevels - 1;
- int j;
- unsigned char *tptr;
- unsigned bits;
- for (i = levels; i >= 0; i--)
- {
- dither_segment_t *dd = &(rv->ranges[i]);
- unsigned vmatrix;
- unsigned rangepoint;
- unsigned dpoint;
- unsigned subchannel;
- if (density <= dd->range[0])
- continue;
- dpoint = ditherpoint(d, dither_matrix, x);
+ vmatrix = (subc->value * dpoint) >> 16;
- if (dd->is_same_ink)
- subchannel = 1;
- else
- {
- rangepoint = ((density - dd->range[0]) << 16) / dd->range_span;
- rangepoint = (rangepoint * rv->density) >> 16;
- if (rangepoint >= dpoint)
- subchannel = 1;
- else
- subchannel = 0;
- }
- vmatrix = (dd->value[subchannel] * dpoint) >> 16;
+ /*
+ * After all that, printing is almost an afterthought.
+ * Pick the actual dot size (using a matrix here) and print it.
+ */
+ if (adjusted >= vmatrix)
+ {
+ int subchannel = subc->subchannel;
+ bits = subc->bits;
+ tptr = dc->ptrs[subchannel] + d->ptr_offset;
+ set_row_ends(dc, x, subchannel);
/*
- * After all that, printing is almost an afterthought.
- * Pick the actual dot size (using a matrix here) and print it.
+ * Lay down all of the bits in the pixel.
*/
- if (adjusted >= vmatrix)
+ for (j = 1; j <= bits; j += j, tptr += length)
{
- int isdark = dd->isdark[subchannel];
- bits = dd->bits[subchannel];
- tptr = dc->ptrs[1 - isdark] + d->ptr_offset;
- if (rv->row_ends[0][1 - isdark] == -1)
- rv->row_ends[0][1 - isdark] = x;
- rv->row_ends[1][1 - isdark] = x;
-
- /*
- * Lay down all of the bits in the pixel.
- */
- if (bits == 1)
- {
- tptr[0] |= bit;
- }
- else
- {
- for (j = 1; j <= bits; j += j, tptr += length)
- {
- if (j & bits)
- tptr[0] |= bit;
- }
- }
+ if (j & bits)
+ tptr[0] |= bit;
}
- return;
}
+ return;
}
}
@@ -1793,7 +1707,7 @@ update_cmyk(dither_t *d)
* lowerbound and density:
*/
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
kdarkness += CHANNEL(d, i).o * CHANNEL(d, i).darkness / 64;
kdarkness -= d->density2;
@@ -1860,7 +1774,7 @@ update_cmyk(dither_t *d)
else
ok = (unsigned) k * (unsigned) ak / density;
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
{
if (CHANNEL(d, i).k_level == 64)
CHANNEL(d, i).v -= ok;
@@ -1871,12 +1785,353 @@ update_cmyk(dither_t *d)
}
}
else
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
CHANNEL(d, i).v = CHANNEL(d, i).o;
CHANNEL(d, ECOLOR_K).b = bk;
CHANNEL(d, ECOLOR_K).v = k;
}
+static int
+shared_ed_initializer(dither_t *d,
+ int row,
+ int duplicate_line,
+ int zero_mask,
+ int length,
+ int direction,
+ int ****error,
+ int **ndither)
+{
+ int i, j;
+ if (!duplicate_line)
+ {
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) !=
+ ((1 << d->n_input_channels) - 1))
+ d->last_line_was_empty = 0;
+ else
+ d->last_line_was_empty++;
+ }
+ else if (d->last_line_was_empty)
+ d->last_line_was_empty++;
+ if (d->last_line_was_empty >= 5)
+ return 0;
+ else if (d->last_line_was_empty == 4)
+ {
+ for (i = 0; i < d->n_channels; i++)
+ for (j = 0; j < d->error_rows; j++)
+ memset(get_errline(d, row + j, i), 0, d->dst_width * sizeof(int));
+ return 0;
+ }
+ d->ptr_offset = (direction == 1) ? 0 : length - 1;
+
+ *error = stp_malloc(d->n_channels * sizeof(int **));
+ *ndither = stp_malloc(d->n_channels * sizeof(int));
+ for (i = 0; i < d->n_channels; i++)
+ {
+ (*error)[i] = stp_malloc(d->error_rows * sizeof(int *));
+ for (j = 0; j < d->error_rows; j++)
+ {
+ (*error)[i][j] = get_errline(d, row + j, i);
+ if (j == d->error_rows - 1)
+ memset((*error)[i][j], 0, d->dst_width * sizeof(int));
+ if (direction == -1)
+ (*error)[i][j] += d->dst_width - 1;
+ }
+ (*ndither)[i] = (*error)[i][0][0];
+ }
+ return 1;
+}
+
+
+#define V_WHITE 0
+#define V_CYAN (1<<ECOLOR_C)
+#define V_MAGENTA (1<<ECOLOR_M)
+#define V_YELLOW (1<<ECOLOR_Y)
+#define V_BLUE (V_CYAN|V_MAGENTA)
+#define V_GREEN (V_CYAN|V_YELLOW)
+#define V_RED (V_MAGENTA|V_YELLOW)
+#define V_BLACK (V_CYAN|V_MAGENTA|V_YELLOW)
+
+static inline int
+pick_vertex(int c, int m, int y, int k)
+{
+ int best;
+ int tmax, vmax;
+
+ if (c+m+y <= 65535) {
+ best = V_WHITE; vmax = 65535-c-m-y; /* White */
+ if (c > vmax) { best = V_CYAN; vmax = c; } /* Cyan */
+ if (m > vmax) { best = V_MAGENTA; vmax = m; } /* Magenta */
+ if (y > vmax) { best = V_YELLOW; vmax = y; } /* Yellow */
+ } else if (c+m+y >= 2*65535) {
+ best = V_BLACK; vmax = c+m+y-2*65535; /* Black */
+ if ((tmax = 65535-y) > vmax) {best = V_BLUE; vmax = tmax; } /* Blue */
+ if ((tmax = 65535-m) > vmax) {best = V_GREEN; vmax = tmax; } /* Green */
+ if ((tmax = 65535-c) > vmax) {best = V_RED; vmax = tmax; } /* Red */
+ } else if (m+c <= 65535) {
+ if (m+y <= 65535) {
+ best = V_GREEN; vmax = c+m+y-65535; /* Green */
+ if (m > vmax) {best = V_MAGENTA; vmax = m;} /* Magenta */
+ if ((tmax = 65535-m-y) > vmax) {best = V_CYAN; vmax = tmax;} /* Cyan */
+ if ((tmax = 65535-c-m) > vmax) {best = V_YELLOW; vmax = tmax;} /* Yellow */
+ } else {
+ best = V_RED; vmax = m+y-65535; /* Red */
+ if (c > vmax) { best = V_GREEN; vmax = c;} /* Green */
+ if ((tmax = 65535-y) > vmax) {best = V_MAGENTA; vmax = tmax;} /* Magenta */
+ if ((tmax = 65535-m-c) > vmax) {best = V_YELLOW; vmax = tmax;} /* Yellow */
+ }
+ } else {
+ if (m+y > 65535) {
+ best = V_MAGENTA; vmax = 2*65535-m-c-y; /* Magenta */
+ if ((tmax = c+m-65535) > vmax) { best = V_BLUE; vmax = tmax; } /* Blue */
+ if ((tmax = y+m-65535) > vmax) { best = V_RED; vmax = tmax; } /* Red */
+ if ((tmax = 65535-m) > vmax) { best = V_GREEN; vmax = tmax; } /* Green */
+ } else {
+ best = V_CYAN; vmax = 65535-y-m; /* Cyan */
+ if ((tmax = c+m-65535) > vmax) { best = V_BLUE; vmax = tmax; } /* Blue */
+ if ((tmax = 65535-c) > vmax) { best = V_MAGENTA; vmax = tmax; } /* Magenta */
+ if (y > vmax) { best = V_GREEN; vmax = y;} /* Green */
+ }
+ }
+
+ if (k >= 32768) {
+ best |= (1 << ECOLOR_K);
+ }
+
+ return best;
+}
+
+typedef struct {
+ int dx, dy, r_sq, wetness, ri, point;
+ int maxdot_dens; /* Max dot size * density */
+ int maxdot_wet; /* Maximum wetness allowed */
+ dither_segment_t dr;
+} et_chdata_t;
+
+static inline void find_segment(dither_t *d, dither_channel_t *dc, int wetness, int density, dither_segment_t *range)
+{
+ int i;
+ ink_defn_t *di;
+ int max_dot;
+
+ if (wetness < 0) max_dot = 0;
+ else max_dot = wetness >> 16;
+
+ range->lower = range->upper = dc->ranges[0].lower;
+
+ for (i = dc->nlevels-1; i > 0; i--) {
+ di = dc->ranges[i].lower;
+ if (density < di->value) continue;
+ if (max_dot < di->dot_size) continue;
+ range->lower = di;
+ range->upper = di;
+ break;
+ }
+
+ for (; i < dc->nlevels; i++) {
+ di = dc->ranges[i].upper;
+ if (max_dot < di->dot_size) continue;
+ range->upper = di;
+ if (density < di->value) break;
+ }
+}
+
+#define EVEN_C1 256
+#define EVEN_C2 222 /* = sqrt(3)/2 * EVEN_C1 */
+
+static inline void
+eventone_init(dither_t *d, et_chdata_t **cd)
+{
+ int i;
+ eventone_t *et = d->eventone;
+
+ if (!et) {
+
+ et = stp_zalloc(sizeof(eventone_t));
+
+ { int xa, ya;
+ xa = d->x_aspect / d->y_aspect;
+ if (xa == 0) xa = 1;
+ et->dx2 = xa * xa;
+ et->d2x = 2 * et->dx2;
+
+ ya = d->y_aspect / d->x_aspect;
+ if (ya == 0) ya = 1;
+ et->dy2 = ya * ya;
+ et->d2y = 2 * et->dy2;
+
+ et->aspect = EVEN_C2 / (xa * ya);
+ }
+
+ et->recip = stp_malloc(65536 * sizeof(int));
+ et->dx = stp_malloc(sizeof(int *) * d->n_channels);
+ et->dy = stp_malloc(sizeof(int *) * d->n_channels);
+ et->r_sq = stp_malloc(sizeof(int *) * d->n_channels);
+
+ for (i=0; i < d->n_channels; i++) {
+ int x;
+ et->dx[i] = stp_malloc(sizeof(int) * d->dst_width);
+ et->dy[i] = stp_malloc(sizeof(int) * d->dst_width);
+ et->r_sq[i] = stp_zalloc(sizeof(int) * d->dst_width);
+ for (x = 0; x < d->dst_width; x++) {
+ et->dx[i][x] = et->dx2;
+ et->dy[i][x] = et->dy2;
+ }
+ }
+
+ for (i=0; i < 65536; i++) {
+ if (i == 0)
+ et->recip[i] = EVEN_C1 * 65536;
+ else
+ et->recip[i] = EVEN_C1 * 65536 / i;
+ }
+
+ for (i = 0; i < d->n_channels; i++) {
+ CHANNEL(d, i).ranges[0].lower->value = 0;
+ CHANNEL(d, i).ranges[0].lower->range = 0;
+ CHANNEL(d, i).ranges[0].lower->bits = 0;
+ CHANNEL(d, i).ranges[0].lower->subchannel = 0;
+ CHANNEL(d, i).ranges[0].lower->dot_size = 0;
+ }
+
+ d->eventone = et;
+ }
+
+ { et_chdata_t *p;
+ *cd = stp_malloc(sizeof(et_chdata_t) * d->n_channels);
+
+ for (i = 0, p = *cd; i < d->n_channels; i++, p++)
+ {
+ p->wetness = 0;
+ p->maxdot_dens = CHANNEL(d, i).maxdot * d->density;
+ p->maxdot_wet = (65536 + d->density / 2) * CHANNEL(d, i).maxdot;
+ p->dx = et->dx2;
+ p->dy = et->dy2;
+ p->r_sq = 0;
+ }
+ }
+}
+
+static inline void
+advance_eventone_pre(dither_t *d, et_chdata_t *cd, eventone_t *et, int x)
+{
+ int i;
+
+ for (i=0; i < d->n_channels; cd++, i++) {
+ if (cd->r_sq + cd->dx <= et->r_sq[i][x]) { /* Do our eventone calculations */
+ cd->r_sq += cd->dx; /* Nearest pixel same as last one */
+ cd->dx += et->d2x;
+ } else {
+ cd->dx = et->dx[i][x]; /* Nearest pixel is from a previous line */
+ cd->dy = et->dy[i][x];
+ cd->r_sq = et->r_sq[i][x];
+ }
+ }
+}
+
+static inline void
+advance_eventone_post(dither_t *d, et_chdata_t *cd, eventone_t *et, int x)
+{
+ int i;
+ int t;
+
+ for (i=0; i < d->n_channels; cd++, i++) {
+ if (cd->point > 0) {
+ cd->r_sq = 0;
+ cd->dx = et->dx2;
+ cd->dy = et->dy2;
+ }
+ t = et->r_sq[i][x] + et->dy[i][x];
+ et->dy[i][x] += et->d2y;
+ if (cd->r_sq + cd->dy < t) {
+ t = cd->r_sq + cd->dy;
+ et->dx[i][x] = cd->dx;
+ et->dy[i][x] = cd->dy + et->d2y;
+ }
+ if (t > 65535) {
+ t = 65535;
+ }
+ et->r_sq[i][x] = t;
+ }
+}
+
+static inline int
+eventone_adjust(dither_segment_t *range, eventone_t *et, int r_sq, int base, int value)
+{
+ unsigned upper;
+ unsigned lower;
+ unsigned value_span;
+ int ditherpoint;
+
+ lower = range->lower->value;
+ upper = range->upper->value;
+ value_span = upper - lower;
+
+ if (value >= upper) {
+ ditherpoint = 65535;
+ } else {
+ if (value <= lower) {
+ ditherpoint = 0;
+ } else {
+ ditherpoint = ((unsigned)(value - lower) << 16) / value_span;
+ }
+ /* Adjust for Eventone here */
+ if (lower == 0) {
+ ditherpoint += r_sq * et->aspect;
+ if (base < upper) {
+ ditherpoint -= et->recip[(base<<16) / value_span];
+ }
+ if (ditherpoint > 65535) ditherpoint = 65535;
+ else if (ditherpoint < 0) ditherpoint = 0;
+ }
+ }
+ return ditherpoint;
+}
+
+static inline void
+print_all_inks(dither_t *d, et_chdata_t *cd, int print_inks, int pick, unsigned char bit, int length)
+{
+ int i, mask;
+ for (i = 0, mask = 1; i < d->n_channels; mask <<= 1, cd++, i++) {
+ int j;
+ ink_defn_t *subc;
+ int bits;
+ unsigned char *tptr;
+
+ if (!(print_inks & mask)) continue;
+
+ subc = (pick & mask) ? cd->dr.upper : cd->dr.lower;
+ bits = subc->bits;
+ if (bits == 0) continue;
+
+ tptr = CHANNEL(d, i).ptrs[subc->subchannel] + d->ptr_offset;
+ cd->wetness += subc->dot_size << 16;
+
+ for (j=1; j <= bits; j+=j, tptr += length) {
+ if (j & bits) *tptr |= bit;
+ }
+ }
+}
+
+static inline void
+diffuse_error(dither_t *d, int *ndither, int ***error, int aspect, int direction)
+{
+ int i;
+ int fraction, frac_2, frac_3;
+ int *err;
+ static const int diff_fact[] = {1, 10, 16, 23, 32};
+ int factor = diff_fact[aspect];
+
+ for (i=0; i < d->n_channels; i++, ndither++, error++) {
+ fraction = (*ndither + (factor>>1)) / factor;
+ frac_2 = fraction + fraction;
+ frac_3 = frac_2 + fraction;
+ err = (*error)[1];
+ err[0] += frac_3;
+ err[-direction] += frac_2;
+ *ndither += (*error)[0][direction] - frac_2 - frac_3;
+ }
+}
+
/*
* Dithering functions!
*
@@ -1892,7 +2147,7 @@ update_cmyk(dither_t *d)
static void
stp_dither_monochrome(const unsigned short *gray,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
@@ -1903,14 +2158,14 @@ stp_dither_monochrome(const unsigned short *gray,
length;
unsigned char bit,
*kptr;
- dither_t *d = (dither_t *) vd;
- dither_matrix_t *kdither = &(CHANNEL(d, ECOLOR_K).dithermat);
- unsigned bits = CHANNEL(d, ECOLOR_K).dither.signif_bits;
- dither_color_t *rv = &(CHANNEL(d, ECOLOR_K).dither);
+ dither_channel_t *dc = &(CHANNEL(d, ECOLOR_K));
+ dither_matrix_t *kdither = &(dc->dithermat);
+ unsigned bits = dc->signif_bits;
int j;
unsigned char *tptr;
int dst_width = d->dst_width;
- if (zero_mask)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
kptr = CHANNEL(d, ECOLOR_K).ptrs[0];
@@ -1927,9 +2182,7 @@ stp_dither_monochrome(const unsigned short *gray,
if (gray[0] && (d->density >= ditherpoint(d, kdither, x)))
{
tptr = kptr + d->ptr_offset;
- if (rv->row_ends[0][0] == -1)
- rv->row_ends[0][0] = x;
- rv->row_ends[1][0] = x;
+ set_row_ends(dc, x, 0);
for (j = 0; j < bits; j++, tptr += length)
tptr[0] |= bit;
}
@@ -1937,6 +2190,52 @@ stp_dither_monochrome(const unsigned short *gray,
}
}
+static void
+stp_dither_monochrome_very_fast(const unsigned short *gray,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ xerror,
+ xstep,
+ xmod,
+ length;
+ unsigned char bit,
+ *kptr;
+ dither_channel_t *dc = &(CHANNEL(d, ECOLOR_K));
+ dither_matrix_t *kdither = &(dc->dithermat);
+ int dst_width = d->dst_width;
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
+ return;
+ if (!dc->very_fast)
+ {
+ stp_dither_monochrome(gray, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ kptr = CHANNEL(d, ECOLOR_K).ptrs[0];
+ length = (d->dst_width + 7) / 8;
+
+ bit = 128;
+ x = 0;
+
+ xstep = d->src_width / d->dst_width;
+ xmod = d->src_width % d->dst_width;
+ xerror = 0;
+ for (x = 0; x < dst_width; x++)
+ {
+ if (gray[0] && (d->density > ditherpoint_fast(d, kdither, x)))
+ {
+ set_row_ends(dc, x, 0);
+ kptr[d->ptr_offset] |= bit;
+ }
+ ADVANCE_UNIDIRECTIONAL(d, bit, gray, 1, xerror, xmod);
+ }
+}
+
/*
* 'stp_dither_black()' - Dither grayscale pixels to black.
* This is for grayscale output.
@@ -1945,18 +2244,18 @@ stp_dither_monochrome(const unsigned short *gray,
static void
stp_dither_black_fast(const unsigned short *gray,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int dst_width = d->dst_width;
int xerror, xstep, xmod;
- if (zero_mask)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -1975,9 +2274,48 @@ stp_dither_black_fast(const unsigned short *gray,
}
static void
+stp_dither_black_very_fast(const unsigned short *gray,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ dither_channel_t *dc = &CHANNEL(d, ECOLOR_K);
+ int dst_width = d->dst_width;
+ int xerror, xstep, xmod;
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
+ return;
+ if (!dc->very_fast)
+ {
+ stp_dither_black_fast(gray, row, d, duplicate_line, zero_mask);
+ return;
+ }
+ length = (d->dst_width + 7) / 8;
+
+ bit = 128;
+ xstep = d->src_width / d->dst_width;
+ xmod = d->src_width % d->dst_width;
+ xerror = 0;
+
+ for (x = 0; x < dst_width; x++)
+ {
+ if (gray[0] > ditherpoint_fast(d, &(dc->dithermat), x))
+ {
+ set_row_ends(dc, x, 0);
+ dc->ptrs[0][d->ptr_offset] |= bit;
+ }
+ ADVANCE_UNIDIRECTIONAL(d, bit, gray, 1, xerror, xmod);
+ }
+}
+
+static void
stp_dither_black_ordered(const unsigned short *gray,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
@@ -1985,11 +2323,11 @@ stp_dither_black_ordered(const unsigned short *gray,
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int terminate;
int xerror, xstep, xmod;
- if (zero_mask)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2012,94 +2350,180 @@ stp_dither_black_ordered(const unsigned short *gray,
static void
stp_dither_black_ed(const unsigned short *gray,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
-
+ int i;
int x,
length;
unsigned char bit;
- int *error[1][ERROR_ROWS];
- int ditherk;
- dither_t *d = (dither_t *) vd;
+ int ***error;
+ int *ndither;
int terminate;
int direction = row & 1 ? 1 : -1;
int xerror, xstep, xmod;
- if (!duplicate_line)
- {
- if (!zero_mask)
- d->last_line_was_empty = 0;
- else
- d->last_line_was_empty++;
- }
- else if (d->last_line_was_empty)
- d->last_line_was_empty++;
- if (d->last_line_was_empty >= 5)
- return;
-
- error[ECOLOR_K][0] = get_errline(d, row, ECOLOR_K);
- error[ECOLOR_K][1] = get_errline(d, row + 1, ECOLOR_K);
-
- memset(error[ECOLOR_K][1], 0, d->dst_width * sizeof(int));
-
- if (d->last_line_was_empty >= 4)
- {
- if (d->last_line_was_empty == 4)
- memset(error[ECOLOR_K][0], 0, d->dst_width * sizeof(int));
- return;
- }
-
length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
x = (direction == 1) ? 0 : d->dst_width - 1;
bit = 1 << (7 - (x & 7));
xstep = d->src_width / d->dst_width;
xmod = d->src_width % d->dst_width;
xerror = (xmod * x) % d->dst_width;
terminate = (direction == 1) ? d->dst_width : -1;
+
if (direction == -1)
- {
- gray += d->src_width - 1;
- error[ECOLOR_K][0] += x;
- error[ECOLOR_K][1] += x;
- d->ptr_offset = length - 1;
- }
- ditherk = error[ECOLOR_K][0][0];
+ gray += d->src_width - 1;
for (; x != terminate; x += direction)
{
CHANNEL(d, ECOLOR_K).b = gray[0];
CHANNEL(d, ECOLOR_K).o = gray[0];
- CHANNEL(d, ECOLOR_K).v = UPDATE_COLOR(gray[0], ditherk);
+ CHANNEL(d, ECOLOR_K).v = UPDATE_COLOR(gray[0], ndither[ECOLOR_K]);
CHANNEL(d, ECOLOR_K).v = print_color(d, &(CHANNEL(d, ECOLOR_K)), x, row,
bit, length, 0, d->dither_type);
- ditherk = update_dither(d, ECOLOR_K, d->src_width, direction,
- error[ECOLOR_K][0], error[ECOLOR_K][1]);
+ ndither[ECOLOR_K] = update_dither(d, ECOLOR_K, d->src_width, direction,
+ error[ECOLOR_K][0],error[ECOLOR_K][1]);
ADVANCE_BIDIRECTIONAL(d, bit, gray, direction, 1, xerror, xmod, error,
- 1, ERROR_ROWS);
+ 1, d->error_rows);
}
+ stp_free(ndither);
+ for (i = 1; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
if (direction == -1)
reverse_row_ends(d);
}
static void
+stp_dither_black_et(const unsigned short *gray,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+ int *ndither;
+ eventone_t *et;
+ et_chdata_t *cd;
+
+ int ***error;
+ int terminate;
+ int direction = row & 1 ? 1 : -1;
+ int xerror, xstep, xmod;
+ int aspect = d->y_aspect / d->x_aspect;
+
+ if (aspect >= 4) { aspect = 4; }
+ else if (aspect >= 2) { aspect = 2; }
+ else aspect = 1;
+
+ length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
+ eventone_init(d, &cd);
+ et = d->eventone;
+
+ x = (direction == 1) ? 0 : d->dst_width - 1;
+ bit = 1 << (7 - (x & 7));
+ xstep = d->src_width / d->dst_width;
+ xmod = d->src_width % d->dst_width;
+ xerror = (xmod * x) % d->dst_width;
+ terminate = (direction == 1) ? d->dst_width : -1;
+ if (direction == -1) {
+ gray += d->src_width - 1;
+ }
+
+ QUANT(6);
+ for (; x != terminate; x += direction)
+ { int pick, print_inks;
+
+ advance_eventone_pre(d, cd, et, x);
+
+ { int value = *gray;
+ int base = value;
+ int maxwet;
+
+ CHANNEL(d, ECOLOR_K).b = value;
+ CHANNEL(d, ECOLOR_K).v = value;
+ CHANNEL(d, ECOLOR_K).o = value;
+
+ if ((cd->wetness -= cd->maxdot_dens) < 0) cd->wetness = 0;
+
+ value = *ndither + base;
+ if (value < 0) value = 0; /* Dither can make this value negative */
+
+ maxwet = (CHANNEL(d, ECOLOR_K).b * CHANNEL(d,ECOLOR_K).maxdot >> 1)
+ + cd->maxdot_wet - cd->wetness;
+
+ find_segment(d, &CHANNEL(d, ECOLOR_K), maxwet, value, &cd->dr);
+
+ cd->ri = eventone_adjust(&cd->dr, et, cd->r_sq, base, value);
+ }
+
+ pick = cd[ECOLOR_K].ri > 32768 ? (1<<ECOLOR_K) : 0;
+
+ { if (pick & (1 << ECOLOR_K)) {
+ cd->point = cd->dr.upper->value;
+ } else {
+ cd->point = cd->dr.lower->value;
+ }
+
+ advance_eventone_post(d, cd, et, x);
+
+ print_inks = (1 << ECOLOR_K);
+
+ /* Adjust error values for dither */
+ ndither[ECOLOR_K] += 2 * (CHANNEL(d, ECOLOR_K).b - cd->point);
+ }
+
+ /* Now we can finally print it! */
+
+ print_all_inks(d, cd, print_inks, pick, bit, length);
+
+ QUANT(11);
+
+ /* Diffuse the error round a bit */
+ diffuse_error(d, ndither, error, aspect, direction);
+
+ QUANT(12);
+ ADVANCE_BIDIRECTIONAL(d, bit, gray, direction, 1, xerror, xmod, error,
+ d->n_channels, ERROR_ROWS);
+ QUANT(13);
+ }
+
+ stp_free(cd);
+ stp_free(ndither);
+ for (i = 0; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
+}
+
+static void
stp_dither_cmy_fast(const unsigned short *cmy,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int i;
int dst_width = d->dst_width;
int xerror, xstep, xmod;
- if ((zero_mask & 7) == 7)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2117,7 +2541,7 @@ stp_dither_cmy_fast(const unsigned short *cmy,
CHANNEL(d, ECOLOR_M).v = CHANNEL(d, ECOLOR_M).o = cmy[1];
CHANNEL(d, ECOLOR_Y).v = CHANNEL(d, ECOLOR_Y).o = cmy[2];
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
print_color_fast(d, &(CHANNEL(d, i)), x, row, bit, length);
QUANT(16);
ADVANCE_UNIDIRECTIONAL(d, bit, cmy, 3, xerror, xmod);
@@ -2126,22 +2550,77 @@ stp_dither_cmy_fast(const unsigned short *cmy,
}
static void
+stp_dither_cmy_very_fast(const unsigned short *cmy,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+ int dst_width = d->dst_width;
+ int xerror, xstep, xmod;
+
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
+ return;
+
+ for (i = 1; i < d->n_channels; i++)
+ if (!(CHANNEL(d, i).very_fast))
+ {
+ stp_dither_cmy_fast(cmy, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ length = (d->dst_width + 7) / 8;
+
+ bit = 128;
+ xstep = 3 * (d->src_width / d->dst_width);
+ xmod = d->src_width % d->dst_width;
+ xerror = 0;
+ x = 0;
+
+ QUANT(14);
+ for (; x != dst_width; x++)
+ {
+ CHANNEL(d, ECOLOR_C).v = cmy[0];
+ CHANNEL(d, ECOLOR_M).v = cmy[1];
+ CHANNEL(d, ECOLOR_Y).v = cmy[2];
+
+ for (i = 1; i < d->n_channels; i++)
+ {
+ dither_channel_t *dc = &(CHANNEL(d, i));
+ if (dc->v > ditherpoint_fast(d, &(dc->dithermat), x))
+ {
+ set_row_ends(dc, x, 0);
+ dc->ptrs[0][d->ptr_offset] |= bit;
+ }
+ }
+ QUANT(16);
+ ADVANCE_UNIDIRECTIONAL(d, bit, cmy, 3, xerror, xmod);
+ QUANT(17);
+ }
+}
+
+static void
stp_dither_cmy_ordered(const unsigned short *cmy,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int i;
int terminate;
int xerror, xstep, xmod;
- if ((zero_mask & 7) == 7)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2159,7 +2638,7 @@ stp_dither_cmy_ordered(const unsigned short *cmy,
CHANNEL(d, ECOLOR_M).v = CHANNEL(d, ECOLOR_M).o = cmy[1];
CHANNEL(d, ECOLOR_Y).v = CHANNEL(d, ECOLOR_Y).o = cmy[2];
QUANT(9);
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
print_color_ordered(d, &(CHANNEL(d, i)), x, row, bit, length, 0);
QUANT(12);
ADVANCE_UNIDIRECTIONAL(d, bit, cmy, 3, xerror, xmod);
@@ -2170,72 +2649,37 @@ stp_dither_cmy_ordered(const unsigned short *cmy,
static void
stp_dither_cmy_ed(const unsigned short *cmy,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- int i, j;
- int ndither[NCOLORS];
- int *error[NCOLORS][ERROR_ROWS];
- dither_t *d = (dither_t *) vd;
+ int i;
+ int *ndither;
+ int ***error;
int terminate;
int direction = row & 1 ? 1 : -1;
int xerror, xstep, xmod;
- if (!duplicate_line)
- {
- if ((zero_mask & 7) != 7)
- d->last_line_was_empty = 0;
- else
- d->last_line_was_empty++;
- }
- else if (d->last_line_was_empty)
- d->last_line_was_empty++;
- if (d->last_line_was_empty >= 5)
- return;
-
- for (i = 1; i < NCOLORS; i++)
- {
- for (j = 0; j < ERROR_ROWS; j++)
- error[i][j] = get_errline(d, row + j, i);
- memset(error[i][j - 1], 0, d->dst_width * sizeof(int));
- }
- if (d->last_line_was_empty >= 4)
- {
- if (d->last_line_was_empty == 4)
- {
- for (i = 1; i < NCOLORS; i++)
- {
- for (j = 0; j < ERROR_ROWS - 1; j++)
- memset(error[i][j], 0, d->dst_width * sizeof(int));
- }
- }
- return;
- }
length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
x = (direction == 1) ? 0 : d->dst_width - 1;
bit = 1 << (7 - (x & 7));
xstep = 3 * (d->src_width / d->dst_width);
xmod = d->src_width % d->dst_width;
xerror = (xmod * x) % d->dst_width;
terminate = (direction == 1) ? d->dst_width : -1;
+
if (direction == -1)
- {
- cmy += (3 * (d->src_width - 1));
- for (i = 1; i < NCOLORS; i++)
- {
- for (j = 0; j < ERROR_ROWS; j++)
- error[i][j] += d->dst_width - 1;
- }
- d->ptr_offset = length - 1;
- }
- for (i = 1; i < NCOLORS; i++)
- ndither[i] = error[i][0][0];
+ cmy += (3 * (d->src_width - 1));
+
QUANT(6);
for (; x != terminate; x += direction)
{
@@ -2243,7 +2687,7 @@ stp_dither_cmy_ed(const unsigned short *cmy,
CHANNEL(d, ECOLOR_M).v = cmy[1];
CHANNEL(d, ECOLOR_Y).v = cmy[2];
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
{
QUANT(9);
CHANNEL(d, i).o = CHANNEL(d, i).b = CHANNEL(d, i).v;
@@ -2257,30 +2701,159 @@ stp_dither_cmy_ed(const unsigned short *cmy,
QUANT(12);
ADVANCE_BIDIRECTIONAL(d, bit, cmy, direction, 3, xerror, xmod, error,
- NCOLORS, ERROR_ROWS);
+ d->n_channels, d->error_rows);
QUANT(13);
}
+ stp_free(ndither);
+ for (i = 1; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
if (direction == -1)
reverse_row_ends(d);
}
static void
+stp_dither_cmy_et(const unsigned short *cmy,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+ int *ndither;
+ eventone_t *et;
+ et_chdata_t *cd;
+
+ int ***error;
+ int terminate;
+ int direction = row & 1 ? 1 : -1;
+ int xerror, xstep, xmod;
+ int aspect = d->y_aspect / d->x_aspect;
+
+ if (aspect >= 4) { aspect = 4; }
+ else if (aspect >= 2) { aspect = 2; }
+ else aspect = 1;
+
+ length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
+ eventone_init(d, &cd);
+ et = d->eventone;
+
+ x = (direction == 1) ? 0 : d->dst_width - 1;
+ bit = 1 << (7 - (x & 7));
+ xstep = 3 * (d->src_width / d->dst_width);
+ xmod = d->src_width % d->dst_width;
+ xerror = (xmod * x) % d->dst_width;
+ terminate = (direction == 1) ? d->dst_width : -1;
+ if (direction == -1) {
+ cmy += (3 * (d->src_width - 1));
+ }
+
+ QUANT(6);
+ for (; x != terminate; x += direction)
+ { int pick, print_inks;
+
+ advance_eventone_pre(d, cd, et, x);
+
+ for (i=1; i < d->n_channels; i++) {
+ int value = cmy[i-1];
+
+ CHANNEL(d, i).o = value; /* Remember value we want printed here */
+ CHANNEL(d, i).v = value;
+ CHANNEL(d, i).b = value;
+ }
+
+ for (i=1; i < d->n_channels; i++) {
+ int value;
+ int base;
+ int maxwet;
+ et_chdata_t *p = &cd[i];
+
+ if ((p->wetness -= p->maxdot_dens) < 0) p->wetness = 0;
+
+ base = CHANNEL(d, i).b;
+ value = ndither[i] + base;
+ if (value < 0) value = 0; /* Dither can make this value negative */
+
+ maxwet = (CHANNEL(d, i).b * CHANNEL(d, i).maxdot >> 1)
+ + p->maxdot_wet - p->wetness;
+
+ find_segment(d, &CHANNEL(d, i), maxwet, value, &p->dr);
+
+ p->ri = eventone_adjust(&p->dr, et, p->r_sq, base, value);
+ }
+
+ pick = pick_vertex(cd[ECOLOR_C].ri, cd[ECOLOR_M].ri, cd[ECOLOR_Y].ri, 0);
+
+ { for (i=1; i < d->n_channels; i++) {
+ if (pick & (1 << i)) {
+ cd[i].point = cd[i].dr.upper->value;
+ } else {
+ cd[i].point = cd[i].dr.lower->value;
+ }
+ }
+
+ advance_eventone_post(d, cd, et, x);
+
+ print_inks = (1 << ECOLOR_C)|(1 << ECOLOR_M)|(1<<ECOLOR_Y);
+
+ /* Adjust error values for dither */
+ for (i=1; i < d->n_channels; i++) {
+ ndither[i] += 2 * (CHANNEL(d, i).b - cd[i].point);
+ }
+ }
+
+ /* Now we can finally print it! */
+
+ print_all_inks(d, cd, print_inks, pick, bit, length);
+
+ QUANT(11);
+
+ /* Diffuse the error round a bit */
+ diffuse_error(d, ndither, error, aspect, direction);
+
+ QUANT(12);
+ ADVANCE_BIDIRECTIONAL(d, bit, cmy, direction, 3, xerror, xmod, error,
+ d->n_channels, ERROR_ROWS);
+ QUANT(13);
+ }
+
+ stp_free(cd);
+ stp_free(ndither);
+ for (i = 0; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
+}
+
+static void
stp_dither_cmyk_fast(const unsigned short *cmy,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int i;
int dst_width = d->dst_width;
int xerror, xstep, xmod;
- if ((zero_mask & 7) == 7)
+ if (!CHANNEL(d, ECOLOR_K).ptrs[0])
+ {
+ stp_dither_cmy_fast(cmy, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2308,28 +2881,22 @@ stp_dither_cmyk_fast(const unsigned short *cmy,
unsigned lb = d->k_lower;
unsigned ub = d->k_upper;
int k = compute_black(d);
- if (d->dither_type != D_VERY_FAST)
- {
- if (k < lb)
- k = 0;
- else if (k < ub)
- k = (k - lb) * ub / d->bound_range;
- }
- for (i = 1; i < NCOLORS; i++)
+ if (k < lb)
+ k = 0;
+ else if (k < ub)
+ k = (k - lb) * ub / d->bound_range;
+ for (i = 1; i < d->n_channels; i++)
CHANNEL(d, i).v -= k;
ok = k;
- if (d->dither_type != D_VERY_FAST)
- {
- if (ok > 0 && d->density != d->black_density)
- ok = (unsigned) ok * (unsigned) d->black_density / d->density;
- if (ok > 65535)
- ok = 65535;
- }
+ if (ok > 0 && d->density != d->black_density)
+ ok = (unsigned) ok * (unsigned) d->black_density / d->density;
+ if (ok > 65535)
+ ok = 65535;
QUANT(15);
CHANNEL(d, ECOLOR_K).v = k;
CHANNEL(d, ECOLOR_K).o = ok;
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
print_color_fast(d, &(CHANNEL(d, i)), x, row, bit, length);
QUANT(16);
}
@@ -2339,22 +2906,100 @@ stp_dither_cmyk_fast(const unsigned short *cmy,
}
static void
+stp_dither_cmyk_very_fast(const unsigned short *cmy,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+
+ int dst_width = d->dst_width;
+ int xerror, xstep, xmod;
+
+ if (!CHANNEL(d, ECOLOR_K).ptrs[0])
+ {
+ stp_dither_cmy_very_fast(cmy, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
+ return;
+
+ for (i = 0; i < d->n_channels; i++)
+ if (!(CHANNEL(d, i).very_fast))
+ {
+ stp_dither_cmyk_fast(cmy, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ length = (d->dst_width + 7) / 8;
+
+ bit = 128;
+ xstep = 3 * (d->src_width / d->dst_width);
+ xmod = d->src_width % d->dst_width;
+ xerror = 0;
+ x = 0;
+
+ QUANT(14);
+ for (; x != dst_width; x++)
+ {
+ int nonzero = 0;
+ nonzero |= CHANNEL(d, ECOLOR_C).v = cmy[0];
+ nonzero |= CHANNEL(d, ECOLOR_M).v = cmy[1];
+ nonzero |= CHANNEL(d, ECOLOR_Y).v = cmy[2];
+
+ if (nonzero)
+ {
+ int k = compute_black(d);
+ for (i = 1; i < d->n_channels; i++)
+ CHANNEL(d, i).v -= k;
+ QUANT(15);
+ CHANNEL(d, ECOLOR_K).v = k;
+
+ for (i = 0; i < d->n_channels; i++)
+ {
+ dither_channel_t *dc = &(CHANNEL(d, i));
+ if (dc->v > ditherpoint_fast(d, &(dc->dithermat), x))
+ {
+ set_row_ends(dc, x, 0);
+ dc->ptrs[0][d->ptr_offset] |= bit;
+ }
+ }
+ QUANT(16);
+ }
+ ADVANCE_UNIDIRECTIONAL(d, bit, cmy, 3, xerror, xmod);
+ QUANT(17);
+ }
+}
+
+static void
stp_dither_cmyk_ordered(const unsigned short *cmy,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int i;
int terminate;
int xerror, xstep, xmod;
- if ((zero_mask & 7) == 7)
+ if (!CHANNEL(d, ECOLOR_K).ptrs[0])
+ {
+ stp_dither_cmy_ordered(cmy, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2374,7 +3019,7 @@ stp_dither_cmyk_ordered(const unsigned short *cmy,
CHANNEL(d, ECOLOR_C).v = cmy[0];
CHANNEL(d, ECOLOR_M).v = cmy[1];
CHANNEL(d, ECOLOR_Y).v = cmy[2];
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
nonzero |= CHANNEL(d, i).o = CHANNEL(d, i).v;
if (nonzero)
@@ -2392,7 +3037,7 @@ stp_dither_cmyk_ordered(const unsigned short *cmy,
CHANNEL(d, ECOLOR_K).v =
CHANNEL(d, ECOLOR_K).v * d->black_density / d->density;
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
{
int tmp = print_color_ordered(d, &(CHANNEL(d, i)), x, row, bit,
length, printed_black);
@@ -2409,70 +3054,42 @@ stp_dither_cmyk_ordered(const unsigned short *cmy,
static void
stp_dither_cmyk_ed(const unsigned short *cmy,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- int i, j;
- int ndither[NCOLORS];
- int *error[NCOLORS][ERROR_ROWS];
- dither_t *d = (dither_t *) vd;
+ int i;
+ int *ndither;
+ int ***error;
int terminate;
int direction = row & 1 ? 1 : -1;
int xerror, xstep, xmod;
- if (!duplicate_line)
- {
- if ((zero_mask & 7) != 7)
- d->last_line_was_empty = 0;
- else
- d->last_line_was_empty++;
- }
- else if (d->last_line_was_empty)
- d->last_line_was_empty++;
- if (d->last_line_was_empty >= 5)
- return;
- length = (d->dst_width + 7) / 8;
-
- for (i = 0; i < NCOLORS; i++)
+ if (!CHANNEL(d, ECOLOR_K).ptrs[0])
{
- for (j = 0; j < ERROR_ROWS; j++)
- error[i][j] = get_errline(d, row + j, i);
- memset(error[i][j - 1], 0, d->dst_width * sizeof(int));
- }
- if (d->last_line_was_empty >= 4)
- {
- if (d->last_line_was_empty == 4)
- {
- for (i = 0; i < NCOLORS; i++)
- {
- for (j = 0; j < ERROR_ROWS - 1; j++)
- memset(error[i][j], 0, d->dst_width * sizeof(int));
- }
- }
+ stp_dither_cmy_ed(cmy, row, d, duplicate_line, zero_mask);
return;
}
+ length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
x = (direction == 1) ? 0 : d->dst_width - 1;
bit = 1 << (7 - (x & 7));
xstep = 3 * (d->src_width / d->dst_width);
xmod = d->src_width % d->dst_width;
xerror = (xmod * x) % d->dst_width;
terminate = (direction == 1) ? d->dst_width : -1;
+
if (direction == -1)
- {
- cmy += (3 * (d->src_width - 1));
- for (i = 0; i < NCOLORS; i++)
- for (j = 0; j < ERROR_ROWS; j++)
- error[i][j] += d->dst_width - 1;
- d->ptr_offset = length - 1;
- }
- for (i = 0; i < NCOLORS; i++)
- ndither[i] = error[i][0][0];
+ cmy += (3 * (d->src_width - 1));
+
QUANT(6);
for (; x != terminate; x += direction)
{
@@ -2481,7 +3098,7 @@ stp_dither_cmyk_ed(const unsigned short *cmy,
CHANNEL(d, ECOLOR_C).v = cmy[0];
CHANNEL(d, ECOLOR_M).v = cmy[1];
CHANNEL(d, ECOLOR_Y).v = cmy[2];
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
nonzero |= (CHANNEL(d, i).o = CHANNEL(d, i).v);
if (nonzero)
@@ -2500,7 +3117,7 @@ stp_dither_cmyk_ed(const unsigned short *cmy,
if (CHANNEL(d, ECOLOR_K).v > 0)
update_cmyk(d);
- for (i = 1; i < NCOLORS; i++)
+ for (i = 1; i < d->n_channels; i++)
CHANNEL(d, i).b = CHANNEL(d, i).v;
QUANT(8);
@@ -2536,7 +3153,7 @@ stp_dither_cmyk_ed(const unsigned short *cmy,
CHANNEL(d, ECOLOR_K).o = CHANNEL(d, ECOLOR_K).b;
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
{
int tmp;
CHANNEL(d, i).v = UPDATE_COLOR(CHANNEL(d, i).v, ndither[i]);
@@ -2548,39 +3165,221 @@ stp_dither_cmyk_ed(const unsigned short *cmy,
}
}
else
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
CHANNEL(d, i).v = UPDATE_COLOR(CHANNEL(d, i).v, ndither[i]);
QUANT(11);
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
ndither[i] = update_dither(d, i, d->src_width,
direction, error[i][0], error[i][1]);
QUANT(12);
ADVANCE_BIDIRECTIONAL(d, bit, cmy, direction, 3, xerror, xmod, error,
- NCOLORS, ERROR_ROWS);
+ d->n_channels, d->error_rows);
QUANT(13);
}
+ stp_free(ndither);
+ for (i = 1; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
if (direction == -1)
reverse_row_ends(d);
}
+/* This code uses the Eventone dither algorithm. This is described
+ * at the website http://www.artofcode.com/eventone/
+ * This algorithm is covered by US Patents 5,055,942 and 5,917,614
+ * and was invented by Raph Levien <raph@acm.org>
+ * It was made available to be used free of charge in open source
+ * code.
+ */
+
+static void
+stp_dither_cmyk_et(const unsigned short *cmy,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+ int *ndither;
+ eventone_t *et;
+ et_chdata_t *cd;
+
+ int ***error;
+ int terminate;
+ int direction = row & 1 ? 1 : -1;
+ int xerror, xstep, xmod;
+ int aspect = d->y_aspect / d->x_aspect;
+
+ if (!CHANNEL(d, ECOLOR_K).ptrs[0])
+ {
+ stp_dither_cmy_et(cmy, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ if (aspect >= 4) { aspect = 4; }
+ else if (aspect >= 2) { aspect = 2; }
+ else aspect = 1;
+
+ length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
+ eventone_init(d, &cd);
+ et = d->eventone;
+
+ x = (direction == 1) ? 0 : d->dst_width - 1;
+ bit = 1 << (7 - (x & 7));
+ xstep = 3 * (d->src_width / d->dst_width);
+ xmod = d->src_width % d->dst_width;
+ xerror = (xmod * x) % d->dst_width;
+ terminate = (direction == 1) ? d->dst_width : -1;
+ if (direction == -1) {
+ cmy += (3 * (d->src_width - 1));
+ }
+
+ QUANT(6);
+ for (; x != terminate; x += direction)
+ { int pick, print_inks;
+
+ advance_eventone_pre(d, cd, et, x);
+
+ CHANNEL(d, ECOLOR_K).b = 0;
+
+ for (i=1; i < d->n_channels; i++) {
+ int value = cmy[i-1];
+
+ CHANNEL(d, i).o = value; /* Remember value we want printed here */
+ CHANNEL(d, i).v = value;
+ if (i == 1 || value < CHANNEL(d, ECOLOR_K).o)
+ CHANNEL(d, ECOLOR_K).o = value; /* Set black to minimum of C,M,Y */
+ }
+
+ CHANNEL(d, ECOLOR_K).v = CHANNEL(d, ECOLOR_K).o;
+ if (CHANNEL(d, ECOLOR_K).v > 0) {
+ update_cmyk(d);
+ }
+
+ for (i = 1; i < d->n_channels; i++)
+ CHANNEL(d, i).b = CHANNEL(d, i).v;
+
+ for (i=0; i < d->n_channels; i++) {
+ int base;
+ int value;
+ int maxwet;
+ et_chdata_t *p = &cd[i];
+
+ if ((p->wetness -= p->maxdot_dens) < 0) p->wetness = 0;
+
+ base = CHANNEL(d, i).b;
+ value = ndither[i] + base;
+ if (value < 0) value = 0; /* Dither can make this value negative */
+
+ maxwet = (CHANNEL(d, i).b * CHANNEL(d, i).maxdot >> 1)
+ + p->maxdot_wet - p->wetness;
+
+ find_segment(d, &CHANNEL(d, i), maxwet, value, &p->dr);
+
+ p->ri = eventone_adjust(&p->dr, et, p->r_sq, base, value);
+ }
+
+ pick = pick_vertex(cd[ECOLOR_C].ri, cd[ECOLOR_M].ri, cd[ECOLOR_Y].ri, cd[ECOLOR_K].ri);
+
+ { int useblack = 0; /* Do we print black at all? */
+ int printed_black;
+ int adjusted_black;
+
+ for (i=0; i < d->n_channels; i++) {
+ if (pick & (1 << i)) {
+ cd[i].point = cd[i].dr.upper->value;
+ } else {
+ cd[i].point = cd[i].dr.lower->value;
+ }
+ }
+
+ printed_black = cd[ECOLOR_K].point;
+ adjusted_black = printed_black;
+ if (printed_black > 0 && d->black_density != d->density) {
+ adjusted_black = (unsigned)printed_black * (unsigned)d->density / d->black_density;
+ }
+
+ advance_eventone_post(d, cd, et, x);
+
+ /* Only print the black ink if it means we can avoid printing another ink, otherwise we're just wasting ink */
+
+ if (printed_black > 0) {
+ for (i=1; i < d->n_channels; i++) {
+ if (cd[i].point <= adjusted_black) {
+ useblack = 1;
+ break;
+ }
+ }
+ }
+
+ /* Find which channels we actually print */
+
+ /* Adjust colours to print based on black ink */
+ if (useblack) {
+ print_inks = (1 << ECOLOR_K);
+ for (i=1; i < d->n_channels; i++) {
+ if (cd[i].point > adjusted_black) {
+ print_inks |= (1 << i);
+ }
+ }
+ } else {
+ print_inks = (1 << ECOLOR_C)|(1 << ECOLOR_M)|(1<<ECOLOR_Y);
+ }
+
+ /* Adjust error values for dither */
+ ndither[ECOLOR_K] += 2 * (CHANNEL(d, ECOLOR_K).b - printed_black);
+ for (i=1; i < d->n_channels; i++) {
+ ndither[i] += 2 * (CHANNEL(d, i).b - cd[i].point);
+ }
+ }
+
+ /* Now we can finally print it! */
+
+ print_all_inks(d, cd, print_inks, pick, bit, length);
+
+ QUANT(11);
+
+ /* Diffuse the error round a bit */
+ diffuse_error(d, ndither, error, aspect, direction);
+
+ QUANT(12);
+ ADVANCE_BIDIRECTIONAL(d, bit, cmy, direction, 3, xerror, xmod, error,
+ d->n_channels, ERROR_ROWS);
+ QUANT(13);
+ }
+
+ stp_free(cd);
+ stp_free(ndither);
+ for (i = 0; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
+}
+
static void
stp_dither_raw_cmyk_fast(const unsigned short *cmyk,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int i;
int dst_width = d->dst_width;
int xerror, xstep, xmod;
- if ((zero_mask & 7) == 7)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2600,7 +3399,7 @@ stp_dither_raw_cmyk_fast(const unsigned short *cmyk,
CHANNEL(d, ECOLOR_Y).v = cmyk[2];
CHANNEL(d, ECOLOR_K).v = cmyk[3];
extra_k = compute_black(d) + CHANNEL(d, ECOLOR_K).v;
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
{
CHANNEL(d, i).o = CHANNEL(d, i).v;
if (i != ECOLOR_K)
@@ -2615,22 +3414,79 @@ stp_dither_raw_cmyk_fast(const unsigned short *cmyk,
}
static void
+stp_dither_raw_cmyk_very_fast(const unsigned short *cmyk,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+
+ int dst_width = d->dst_width;
+ int xerror, xstep, xmod;
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
+ return;
+
+ for (i = 0; i < d->n_channels; i++)
+ if (!(CHANNEL(d, i).very_fast))
+ {
+ stp_dither_raw_cmyk_fast(cmyk, row, d, duplicate_line, zero_mask);
+ return;
+ }
+
+ length = (d->dst_width + 7) / 8;
+
+ bit = 128;
+ xstep = 4 * (d->src_width / d->dst_width);
+ xmod = d->src_width % d->dst_width;
+ xerror = 0;
+ x = 0;
+
+ QUANT(14);
+ for (; x != dst_width; x++)
+ {
+ int extra_k;
+ CHANNEL(d, ECOLOR_C).v = cmyk[0];
+ CHANNEL(d, ECOLOR_M).v = cmyk[1];
+ CHANNEL(d, ECOLOR_Y).v = cmyk[2];
+ CHANNEL(d, ECOLOR_K).v = cmyk[3];
+ extra_k = compute_black(d) + CHANNEL(d, ECOLOR_K).v;
+ for (i = 0; i < d->n_channels; i++)
+ {
+ dither_channel_t *dc = &(CHANNEL(d, i));
+ if (dc->ptrs[0] && dc->v > ditherpoint_fast(d, &(dc->dithermat), x))
+ {
+ set_row_ends(dc, x, 0);
+ dc->ptrs[0][d->ptr_offset] |= bit;
+ }
+ }
+ QUANT(16);
+ ADVANCE_UNIDIRECTIONAL(d, bit, cmyk, 4, xerror, xmod);
+ QUANT(17);
+ }
+}
+
+static void
stp_dither_raw_cmyk_ordered(const unsigned short *cmyk,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- dither_t *d = (dither_t *) vd;
int i;
int terminate;
int xerror, xstep, xmod;
- if ((zero_mask & 7) == 7)
+ if ((zero_mask & ((1 << d->n_input_channels) - 1)) ==
+ ((1 << d->n_input_channels) - 1))
return;
length = (d->dst_width + 7) / 8;
@@ -2651,7 +3507,7 @@ stp_dither_raw_cmyk_ordered(const unsigned short *cmyk,
CHANNEL(d, ECOLOR_M).v = cmyk[1];
CHANNEL(d, ECOLOR_Y).v = cmyk[2];
extra_k = compute_black(d) + CHANNEL(d, ECOLOR_K).v;
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
{
CHANNEL(d, i).o = CHANNEL(d, i).v;
if (i != ECOLOR_K)
@@ -2669,50 +3525,25 @@ stp_dither_raw_cmyk_ordered(const unsigned short *cmyk,
static void
stp_dither_raw_cmyk_ed(const unsigned short *cmyk,
int row,
- void *vd,
+ dither_t *d,
int duplicate_line,
int zero_mask)
{
int x,
length;
unsigned char bit;
- int i, j;
- int ndither[NCOLORS];
- int *error[NCOLORS][ERROR_ROWS];
- dither_t *d = (dither_t *) vd;
+ int i;
+ int *ndither;
+ int ***error;
int terminate;
int direction = row & 1 ? 1 : -1;
int xerror, xstep, xmod;
- if (!duplicate_line)
- {
- if ((zero_mask & 7) != 7)
- d->last_line_was_empty = 0;
- else
- d->last_line_was_empty++;
- }
- else if (d->last_line_was_empty)
- d->last_line_was_empty++;
- if (d->last_line_was_empty >= 5)
- return;
-
- for (i = 0; i < NCOLORS; i++)
- {
- for (j = 0; j < ERROR_ROWS; j++)
- error[i][j] = get_errline(d, row + j, i);
- memset(error[i][j - 1], 0, d->dst_width * sizeof(int));
- }
- if (d->last_line_was_empty >= 4)
- {
- if (d->last_line_was_empty == 4)
- for (i = 0; i < NCOLORS; i++)
- for (j = 0; j < ERROR_ROWS - 1; j++)
- memset(error[i][j], 0, d->dst_width * sizeof(int));
- return;
- }
-
length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
x = (direction == 1) ? 0 : d->dst_width - 1;
bit = 1 << (7 - (x & 7));
@@ -2720,18 +3551,9 @@ stp_dither_raw_cmyk_ed(const unsigned short *cmyk,
xmod = d->src_width % d->dst_width;
xerror = (xmod * x) % d->dst_width;
terminate = (direction == 1) ? d->dst_width : -1;
+
if (direction == -1)
- {
- cmyk += (4 * (d->src_width - 1));
- for (i = 0; i < NCOLORS; i++)
- {
- for (j = 0; j < ERROR_ROWS; j++)
- error[i][j] += d->dst_width - 1;
- }
- d->ptr_offset = length - 1;
- }
- for (i = 0; i < NCOLORS; i++)
- ndither[i] = error[i][0][0];
+ cmyk += (4 * (d->src_width - 1));
QUANT(6);
for (; x != terminate; x += direction)
@@ -2742,7 +3564,7 @@ stp_dither_raw_cmyk_ed(const unsigned short *cmyk,
CHANNEL(d, ECOLOR_M).v = cmyk[1];
CHANNEL(d, ECOLOR_Y).v = cmyk[2];
extra_k = compute_black(d) + CHANNEL(d, ECOLOR_K).v;
- for (i = 0; i < NCOLORS; i++)
+ for (i = 0; i < d->n_channels; i++)
{
CHANNEL(d, i).o = CHANNEL(d, i).v;
if (i != ECOLOR_K)
@@ -2756,95 +3578,202 @@ stp_dither_raw_cmyk_ed(const unsigned short *cmyk,
}
QUANT(12);
ADVANCE_BIDIRECTIONAL(d, bit, cmyk, direction, 4, xerror, xmod, error,
- NCOLORS, ERROR_ROWS);
+ d->n_channels, d->error_rows);
QUANT(13);
}
+ stp_free(ndither);
+ for (i = 1; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
if (direction == -1)
reverse_row_ends(d);
}
+static void
+stp_dither_raw_cmyk_et(const unsigned short *cmyk,
+ int row,
+ dither_t *d,
+ int duplicate_line,
+ int zero_mask)
+{
+ int x,
+ length;
+ unsigned char bit;
+ int i;
+ int *ndither;
+ eventone_t *et;
+ et_chdata_t *cd;
+
+ int ***error;
+ int terminate;
+ int direction = row & 1 ? 1 : -1;
+ int xerror, xstep, xmod;
+ int aspect = d->y_aspect / d->x_aspect;
+
+ if (aspect >= 4) { aspect = 4; }
+ else if (aspect >= 2) { aspect = 2; }
+ else aspect = 1;
+
+ length = (d->dst_width + 7) / 8;
+ if (!shared_ed_initializer(d, row, duplicate_line, zero_mask, length,
+ direction, &error, &ndither))
+ return;
+
+ eventone_init(d, &cd);
+ et = d->eventone;
+
+ x = (direction == 1) ? 0 : d->dst_width - 1;
+ bit = 1 << (7 - (x & 7));
+ xstep = 4 * (d->src_width / d->dst_width);
+ xmod = d->src_width % d->dst_width;
+ xerror = (xmod * x) % d->dst_width;
+ terminate = (direction == 1) ? d->dst_width : -1;
+ if (direction == -1) {
+ cmyk += (4 * (d->src_width - 1));
+ }
+
+ QUANT(6);
+ for (; x != terminate; x += direction)
+ { int pick, print_inks;
+
+ advance_eventone_pre(d, cd, et, x);
+
+ { int value = cmyk[3]; /* Order of input is C,M,Y,K */
+ CHANNEL(d, ECOLOR_K).o = value; /* Remember value we want printed here */
+ CHANNEL(d, ECOLOR_K).v = value;
+ CHANNEL(d, ECOLOR_K).b = value;
+ }
+
+ for (i=1; i < d->n_channels; i++) {
+ int value = cmyk[i-1];
+ CHANNEL(d, i).o = value; /* Remember value we want printed here */
+ CHANNEL(d, i).v = value;
+ CHANNEL(d, i).b = value;
+ }
+
+ for (i=0; i < d->n_channels; i++) {
+ int value;
+ int base;
+ int maxwet;
+ et_chdata_t *p = &cd[i];
+
+ if ((p->wetness -= p->maxdot_dens) < 0) p->wetness = 0;
+
+ base = CHANNEL(d, i).b;
+ value = ndither[i] + base;
+ if (value < 0) value = 0; /* Dither can make this value negative */
+
+ maxwet = (CHANNEL(d, i).b * CHANNEL(d, i).maxdot >> 1)
+ + p->maxdot_wet - p->wetness;
+
+ find_segment(d, &CHANNEL(d, i), maxwet, value, &p->dr);
+
+ p->ri = eventone_adjust(&p->dr, et, p->r_sq, base, value);
+ }
+
+ pick = pick_vertex(cd[ECOLOR_C].ri, cd[ECOLOR_M].ri, cd[ECOLOR_Y].ri, cd[ECOLOR_K].ri);
+
+ { int useblack = 0; /* Do we print black at all? */
+ int printed_black;
+ int adjusted_black;
+
+ for (i=0; i < d->n_channels; i++) {
+ if (pick & (1 << i)) {
+ cd[i].point = cd[i].dr.upper->value;
+ } else {
+ cd[i].point = cd[i].dr.lower->value;
+ }
+ }
+
+ printed_black = cd[ECOLOR_K].point;
+ adjusted_black = printed_black;
+ if (printed_black > 0 && d->black_density != d->density) {
+ adjusted_black = (unsigned)printed_black * (unsigned)d->density / d->black_density;
+ }
+
+ advance_eventone_post(d, cd, et, x);
+
+ /* Only print the black ink if it means we can avoid printing another ink, otherwise we're just wasting ink */
+
+ if (printed_black > 0) {
+ for (i=1; i < d->n_channels; i++) {
+ if (cd[i].point <= adjusted_black) {
+ useblack = 1;
+ break;
+ }
+ }
+ }
+
+ /* Find which channels we actually print */
+
+ /* Adjust colours to print based on black ink */
+ if (useblack) {
+ print_inks = (1 << ECOLOR_K);
+ for (i=1; i < d->n_channels; i++) {
+ if (cd[i].point > adjusted_black) {
+ print_inks |= (1 << i);
+ }
+ }
+ } else {
+ print_inks = (1 << ECOLOR_C)|(1 << ECOLOR_M)|(1<<ECOLOR_Y);
+ }
+
+ /* Adjust error values for dither */
+ ndither[ECOLOR_K] += 2 * (CHANNEL(d, ECOLOR_K).b - printed_black);
+ for (i=1; i < d->n_channels; i++) {
+ ndither[i] += 2 * (CHANNEL(d, i).b - cd[i].point);
+ }
+ }
+
+ /* Now we can finally print it! */
+
+ print_all_inks(d, cd, print_inks, pick, bit, length);
+
+ QUANT(11);
+
+ /* Diffuse the error round a bit */
+ diffuse_error(d, ndither, error, aspect, direction);
+
+ QUANT(12);
+ ADVANCE_BIDIRECTIONAL(d, bit, cmyk, direction, 4, xerror, xmod, error,
+ d->n_channels, ERROR_ROWS);
+ QUANT(13);
+ }
+
+ stp_free(cd);
+ stp_free(ndither);
+ for (i = 0; i < d->n_channels; i++)
+ stp_free(error[i]);
+ stp_free(error);
+}
+
void
stp_dither(const unsigned short *input,
int row,
void *vd,
- unsigned char *cyan,
- unsigned char *lcyan,
- unsigned char *magenta,
- unsigned char *lmagenta,
- unsigned char *yellow,
- unsigned char *lyellow,
- unsigned char *black,
+ stp_dither_data_t *dt,
int duplicate_line,
int zero_mask)
{
int i, j;
dither_t *d = (dither_t *) vd;
- CHANNEL(d, ECOLOR_K).ptrs[0] = black;
- CHANNEL(d, ECOLOR_K).ptrs[1] = NULL;
- CHANNEL(d, ECOLOR_C).ptrs[0] = cyan;
- CHANNEL(d, ECOLOR_C).ptrs[1] = lcyan;
- CHANNEL(d, ECOLOR_M).ptrs[0] = magenta;
- CHANNEL(d, ECOLOR_M).ptrs[1] = lmagenta;
- CHANNEL(d, ECOLOR_Y).ptrs[0] = yellow;
- CHANNEL(d, ECOLOR_Y).ptrs[1] = lyellow;
- for (i = 0; i < NCOLORS; i++)
- {
- for (j = 0; j < 2; j++)
- if (CHANNEL(d, i).ptrs[j])
- memset(CHANNEL(d, i).ptrs[j], 0,
- (d->dst_width + 7) / 8 * CHANNEL(d, i).dither.signif_bits);
- CHANNEL(d, i).dither.row_ends[0][1] = -1;
- CHANNEL(d, i).dither.row_ends[0][0] = -1;
- CHANNEL(d, i).dither.row_ends[1][1] = -1;
- CHANNEL(d, i).dither.row_ends[1][0] = -1;
- if (CHANNEL(d, i).dither.nlevels == 1 &&
- CHANNEL(d, i).dither.ranges[0].bits[1] == 1 &&
- CHANNEL(d, i).dither.ranges[0].isdark[1])
- CHANNEL(d, i).very_fast = 1;
- matrix_set_row(d, &(CHANNEL(d, i).dithermat), row);
- matrix_set_row(d, &(CHANNEL(d, i).pick), row);
- }
- d->ptr_offset = 0;
- switch (d->dither_class)
+ for (i = 0; i < d->n_channels; i++)
{
- case OUTPUT_MONOCHROME:
- stp_dither_monochrome(input, row, vd, duplicate_line, zero_mask);
- break;
- case OUTPUT_GRAY:
- if (d->dither_type & D_FAST_BASE)
- stp_dither_black_fast(input, row, vd, duplicate_line, zero_mask);
- else if (d->dither_type & D_ORDERED_BASE)
- stp_dither_black_ordered(input, row, vd, duplicate_line, zero_mask);
- else
- stp_dither_black_ed(input, row, vd, duplicate_line, zero_mask);
- break;
- case OUTPUT_COLOR:
- if (black)
+ for (j = 0; j < CHANNEL(d, i).subchannels; j++)
{
- if (d->dither_type & D_FAST_BASE)
- stp_dither_cmyk_fast(input, row, vd, duplicate_line, zero_mask);
- else if (d->dither_type & D_ORDERED_BASE)
- stp_dither_cmyk_ordered(input, row, vd, duplicate_line, zero_mask);
+ if (i >= dt->channel_count || j >= dt->c[i].subchannel_count)
+ CHANNEL(d, i).ptrs[j] = NULL;
else
- stp_dither_cmyk_ed(input, row, vd, duplicate_line, zero_mask);
+ CHANNEL(d, i).ptrs[j] = dt->c[i].c[j];
+ if (CHANNEL(d, i).ptrs[j])
+ memset(CHANNEL(d, i).ptrs[j], 0,
+ (d->dst_width + 7) / 8 * CHANNEL(d, i).signif_bits);
+ CHANNEL(d, i).row_ends[0][j] = -1;
+ CHANNEL(d, i).row_ends[1][j] = -1;
}
- else
- {
- if (d->dither_type & D_FAST_BASE)
- stp_dither_cmy_fast(input, row, vd, duplicate_line, zero_mask);
- else if (d->dither_type & D_ORDERED_BASE)
- stp_dither_cmy_ordered(input, row, vd, duplicate_line, zero_mask);
- else
- stp_dither_cmy_ed(input, row, vd, duplicate_line, zero_mask);
- }
- break;
- case OUTPUT_RAW_CMYK:
- if (d->dither_type & D_FAST_BASE)
- stp_dither_raw_cmyk_fast(input, row, vd, duplicate_line, zero_mask);
- else if (d->dither_type & D_ORDERED_BASE)
- stp_dither_raw_cmyk_ordered(input, row, vd, duplicate_line, zero_mask);
- else
- stp_dither_raw_cmyk_ed(input, row, vd, duplicate_line, zero_mask);
- break;
+ stp_matrix_set_row(&(CHANNEL(d, i).dithermat), row);
+ stp_matrix_set_row(&(CHANNEL(d, i).pick), row);
}
+ d->ptr_offset = 0;
+ (d->ditherfunc)(input, row, d, duplicate_line, zero_mask);
}
diff --git a/src/main/print-dither.h b/src/main/print-dither.h
new file mode 100644
index 0000000..cafb2be
--- /dev/null
+++ b/src/main/print-dither.h
@@ -0,0 +1,82 @@
+/*
+ * "$Id: print-dither.h,v 1.1.4.1 2002/05/03 01:30:28 rlk Exp $"
+ *
+ * Print plug-in header file for the GIMP.
+ *
+ * Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
+ * Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revision History:
+ *
+ * See ChangeLog
+ */
+
+/*
+ * This file must include only standard C header files. The core code must
+ * compile on generic platforms that don't support glib, gimp, gtk, etc.
+ */
+
+#ifndef _GIMP_PRINT_DITHER_H_
+#define _GIMP_PRINT_DITHER_H_
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <gimp-print/gimp-print.h>
+#include "gimp-print-internal.h"
+
+extern const stp_dither_matrix_short_t stp_1_1_matrix;
+extern const stp_dither_matrix_short_t stp_2_1_matrix;
+extern const stp_dither_matrix_short_t stp_4_1_matrix;
+
+typedef struct dither_matrix
+{
+ int base;
+ int exp;
+ int x_size;
+ int y_size;
+ int total_size;
+ int last_x;
+ int last_x_mod;
+ int last_y;
+ int last_y_mod;
+ int index;
+ int i_own;
+ int x_offset;
+ int y_offset;
+ unsigned fast_mask;
+ unsigned *matrix;
+} dither_matrix_t;
+
+extern void stp_init_iterated_matrix(dither_matrix_t *mat, size_t size,
+ size_t exp, const unsigned *array);
+extern void stp_shear_matrix(dither_matrix_t *mat, int x_shear, int y_shear);
+extern void stp_init_matrix(dither_matrix_t *mat, int x_size, int y_size,
+ const unsigned int *array, int transpose,
+ int prescaled);
+extern void stp_init_matrix_short(dither_matrix_t *mat, int x_size, int y_size,
+ const unsigned short *array, int transpose,
+ int prescaled);
+extern void stp_destroy_matrix(dither_matrix_t *mat);
+extern void stp_clone_matrix(const dither_matrix_t *src, dither_matrix_t *dest,
+ int x_offset, int y_offset);
+extern void stp_copy_matrix(const dither_matrix_t *src, dither_matrix_t *dest);
+extern void stp_exponential_scale_matrix(dither_matrix_t *mat,double exponent);
+extern void stp_matrix_set_row(dither_matrix_t *mat, int y);
+
+#endif /* _GIMP_PRINT_DITHER_H_ */
diff --git a/src/main/print-escp2-data.c b/src/main/print-escp2-data.c
new file mode 100644
index 0000000..62a02ef
--- /dev/null
+++ b/src/main/print-escp2-data.c
@@ -0,0 +1,5313 @@
+/*
+ * "$Id: print-escp2-data.c,v 1.15.4.45 2004/04/12 10:33:44 rlk Exp $"
+ *
+ * Print plug-in EPSON ESC/P2 driver for the GIMP.
+ *
+ * Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
+ * Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <gimp-print/gimp-print.h>
+#include "gimp-print-internal.h"
+#include <gimp-print/gimp-print-intl-internal.h>
+#include "print-escp2.h"
+
+static const double standard_sat_adjustment[49] =
+{
+ 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, /* C */
+ 1.8, 1.9, 1.9, 1.9, 1.7, 1.5, 1.3, 1.1, /* B */
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, /* M */
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, /* R */
+ 1.0, 1.0, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, /* Y */
+ 1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 1.0, 1.0, /* G */
+ 1.0 /* C */
+};
+
+static const double standard_lum_adjustment[49] =
+{
+ 0.50, 0.6, 0.7, 0.8, 0.9, 0.86, 0.82, 0.79, /* C */
+ 0.78, 0.8, 0.83, 0.87, 0.9, 0.95, 1.05, 1.15, /* B */
+ 1.3, 1.25, 1.2, 1.15, 1.12, 1.09, 1.06, 1.03, /* M */
+ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, /* R */
+ 1.0, 0.9, 0.8, 0.7, 0.65, 0.6, 0.55, 0.52, /* Y */
+ 0.48, 0.47, 0.47, 0.49, 0.49, 0.49, 0.52, 0.51, /* G */
+ 0.50 /* C */
+};
+
+static const double standard_hue_adjustment[49] =
+{
+ 0.00, 0.05, 0.04, 0.01, -.03, -.10, -.18, -.26, /* C */
+ -.35, -.43, -.40, -.32, -.25, -.18, -.10, -.07, /* B */
+ 0.00, -.04, -.09, -.13, -.18, -.23, -.27, -.31, /* M */
+ -.35, -.38, -.30, -.23, -.15, -.08, 0.00, -.02, /* R */
+ 0.00, 0.08, 0.10, 0.08, 0.05, 0.03, -.03, -.12, /* Y */
+ -.20, 0.17, -.20, -.17, -.15, -.12, -.10, -.08, /* G */
+ 0.00, /* C */
+};
+
+static const double plain_paper_lum_adjustment[49] =
+{
+ 1.2, 1.22, 1.28, 1.34, 1.39, 1.42, 1.45, 1.48, /* C */
+ 1.5, 1.4, 1.3, 1.25, 1.2, 1.1, 1.05, 1.05, /* B */
+ 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, 1.05, /* M */
+ 1.05, 1.05, 1.05, 1.1, 1.1, 1.1, 1.1, 1.1, /* R */
+ 1.1, 1.15, 1.3, 1.45, 1.6, 1.75, 1.9, 2.0, /* Y */
+ 2.1, 2.0, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3, /* G */
+ 1.2 /* C */
+};
+
+static const double pgpp_sat_adjustment[49] =
+{
+ 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, /* C */
+ 1.00, 1.00, 1.00, 1.03, 1.05, 1.07, 1.09, 1.11, /* B */
+ 1.13, 1.13, 1.13, 1.13, 1.13, 1.13, 1.13, 1.13, /* M */
+ 1.13, 1.10, 1.05, 1.00, 1.00, 1.00, 1.00, 1.00, /* R */
+ 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, /* Y */
+ 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, /* G */
+ 1.00, /* C */
+};
+
+static const double pgpp_lum_adjustment[49] =
+{
+ 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, /* C */
+ 1.00, 1.00, 1.00, 1.03, 1.05, 1.07, 1.09, 1.11, /* B */
+ 1.13, 1.13, 1.13, 1.13, 1.13, 1.13, 1.13, 1.13, /* M */
+ 1.13, 1.10, 1.05, 1.00, 1.00, 1.00, 1.00, 1.00, /* R */
+ 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, /* Y */
+ 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, /* G */
+ 1.00, /* C */
+};
+
+static const double pgpp_hue_adjustment[49] =
+{
+ 0.00, 0.00, 0.00, 0.00, 0.00, 0.01, 0.02, 0.03, /* C */
+ 0.05, 0.05, 0.05, 0.04, 0.04, 0.03, 0.02, 0.01, /* B */
+ 0.00, -.03, -.05, -.07, -.09, -.11, -.13, -.14, /* M */
+ -.15, -.13, -.10, -.06, -.04, -.02, -.01, 0.00, /* R */
+ 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, /* Y */
+ 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, /* G */
+ 0.00, /* C */
+};
+
+#define DECLARE_INK(name, density) \
+static const escp2_variable_ink_t name##_ink = \
+{ \
+ name##_dither_ranges, \
+ sizeof(name##_dither_ranges) / sizeof(stp_simple_dither_range_t), \
+ density \
+}
+
+#define PIEZO_0 .25
+#define PIEZO_1 .5
+#define PIEZO_2 .75
+#define PIEZO_3 1.0
+
+#define PIEZO_DENSITY 1.0
+
+/***************************************************************\
+* *
+* SINGLE DOT SIZE *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t photo_cyan_dither_ranges[] =
+{
+ { 0.27, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
+};
+
+DECLARE_INK(photo_cyan, 1.0);
+
+static const stp_simple_dither_range_t photo_magenta_dither_ranges[] =
+{
+ { 0.35, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
+};
+
+DECLARE_INK(photo_magenta, 1.0);
+
+static const stp_simple_dither_range_t photo2_yellow_dither_ranges[] =
+{
+ { 0.35, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
+};
+
+DECLARE_INK(photo2_yellow, 1.0);
+
+static const stp_simple_dither_range_t photo2_black_dither_ranges[] =
+{
+ { 0.27, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
+};
+
+DECLARE_INK(photo2_black, 1.0);
+
+static const stp_simple_dither_range_t piezo_quadtone_dither_ranges[] =
+{
+ { PIEZO_0, 0x1, 0, 1 },
+ { PIEZO_1, 0x1, 1, 1 },
+ { PIEZO_2, 0x1, 2, 1 },
+ { PIEZO_3, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_quadtone, PIEZO_DENSITY);
+
+/***************************************************************\
+* *
+* LOW RESOLUTION, 4 AND 6 PICOLITRE PRINTERS *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_multishot_dither_ranges[] =
+{
+ { 0.28, 0x1, 0, 2 },
+ { 0.58, 0x2, 0, 4 },
+ { 1.0, 0x3, 0, 7 }
+};
+
+DECLARE_INK(standard_multishot, 1.0);
+
+static const stp_simple_dither_range_t photo_multishot_dither_ranges[] =
+{
+ { 0.0728, 0x1, 1, 1 },
+ { 0.151, 0x2, 1, 2 },
+ { 0.26, 0x3, 1, 3 },
+ { 1.0, 0x3, 0, 3 }
+};
+
+DECLARE_INK(photo_multishot, 1.0);
+
+static const stp_simple_dither_range_t photo_multishot_y_dither_ranges[] =
+{
+ { 0.140, 0x1, 0, 1 },
+ { 0.290, 0x2, 0, 2 },
+ { 0.5, 0x3, 0, 3 },
+ { 1.0, 0x3, 1, 3 }
+};
+
+DECLARE_INK(photo_multishot_y, 1.0);
+
+static const stp_simple_dither_range_t piezo_multishot_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .28, 0x1, 0, 2 },
+ { PIEZO_0 * .58, 0x2, 0, 4 },
+ { PIEZO_1 * .58, 0x2, 1, 4 },
+ { PIEZO_2 * .58, 0x2, 2, 4 },
+ { PIEZO_2 * 1.0, 0x3, 2, 7 },
+ { PIEZO_3 * 1.0, 0x3, 3, 7 },
+};
+
+DECLARE_INK(piezo_multishot_quadtone, PIEZO_DENSITY);
+
+/***************************************************************\
+* *
+* 4 AND 6 PICOLITRE PRINTERS, 6 PICOLITRE DOTS *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_6pl_dither_ranges[] =
+{
+ { 0.25, 0x1, 0, 1 },
+ { 0.5, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 4 }
+};
+
+DECLARE_INK(standard_6pl, 1.0);
+
+static const stp_simple_dither_range_t standard_6pl_1440_dither_ranges[] =
+{
+ { 0.5, 0x1, 0, 1 },
+ { 1.0, 0x2, 0, 2 },
+};
+
+DECLARE_INK(standard_6pl_1440, 1.0);
+
+static const stp_simple_dither_range_t standard_6pl_2880_dither_ranges[] =
+{
+ { 1.0, 0x1, 0, 1 },
+};
+
+DECLARE_INK(standard_6pl_2880, 1.0);
+
+static const stp_simple_dither_range_t photo_6pl_dither_ranges[] =
+{
+ { 0.065, 0x1, 1, 1 },
+ { 0.13, 0x2, 1, 2 },
+/* { 0.26, 0x3, 1, 4 }, */
+ { 0.25, 0x1, 0, 1 },
+ { 0.5, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 4 }
+};
+
+DECLARE_INK(photo_6pl, 1.0);
+
+static const stp_simple_dither_range_t photo_6pl_y_dither_ranges[] =
+{
+ { 0.125, 0x1, 0, 1 },
+ { 0.25, 0x2, 0, 2 },
+ { 0.5, 0x2, 1, 2 },
+ { 1.0, 0x3, 1, 4 }
+};
+
+DECLARE_INK(photo_6pl_y, 1.0);
+
+static const stp_simple_dither_range_t photo_6pl_1440_dither_ranges[] =
+{
+ { 0.13, 0x1, 1, 1 },
+ { 0.26, 0x2, 1, 2 },
+/* { 0.52, 0x3, 1, 4 }, */
+ { 0.5, 0x1, 0, 1 },
+ { 1.0, 0x2, 0, 2 },
+};
+
+DECLARE_INK(photo_6pl_1440, 1.0);
+
+static const stp_simple_dither_range_t photo_6pl_2880_dither_ranges[] =
+{
+ { 0.26, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_6pl_2880, 1.0);
+
+static const stp_simple_dither_range_t piezo_6pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .25, 0x1, 0, 1 },
+ { PIEZO_0 * .50, 0x2, 0, 2 },
+ { PIEZO_1 * .50, 0x2, 1, 2 },
+ { PIEZO_2 * .50, 0x2, 2, 2 },
+ { PIEZO_2 * 1.0, 0x3, 2, 4 },
+ { PIEZO_3 * 1.0, 0x3, 3, 4 },
+};
+
+DECLARE_INK(piezo_6pl_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_6pl_1440_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .50, 0x1, 0, 1 },
+ { PIEZO_1 * .50, 0x1, 1, 1 },
+ { PIEZO_2 * .50, 0x1, 2, 1 },
+ { PIEZO_2 * 1.0, 0x2, 2, 2 },
+ { PIEZO_3 * 1.0, 0x2, 3, 2 },
+};
+
+DECLARE_INK(piezo_6pl_1440_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_6pl_2880_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * 1.0, 0x1, 0, 1 },
+ { PIEZO_1 * 1.0, 0x1, 1, 1 },
+ { PIEZO_2 * 1.0, 0x1, 2, 1 },
+ { PIEZO_3 * 1.0, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_6pl_2880_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* STYLUS COLOR 480/580 *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_x80_multishot_dither_ranges[] =
+{
+ { 0.163, 0x1, 0, 1 },
+ { 0.5, 0x2, 0, 3 },
+ { 1.0, 0x3, 0, 6 }
+};
+
+DECLARE_INK(standard_x80_multishot, 1.0);
+
+static const stp_simple_dither_range_t standard_x80_6pl_dither_ranges[] =
+{
+ { 0.325, 0x1, 0, 2 },
+ { 0.5, 0x2, 0, 3 },
+ { 1.0, 0x3, 0, 6 }
+};
+
+DECLARE_INK(standard_x80_6pl, 1.0);
+
+static const stp_simple_dither_range_t standard_x80_1440_6pl_dither_ranges[] =
+{
+ { 0.65, 0x1, 0, 2 },
+ { 1.0, 0x2, 0, 3 },
+};
+
+DECLARE_INK(standard_x80_1440_6pl, 1.0);
+
+static const stp_simple_dither_range_t standard_x80_2880_6pl_dither_ranges[] =
+{
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(standard_x80_2880_6pl, 1.0);
+
+static const stp_simple_dither_range_t piezo_x80_multishot_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .163, 0x1, 0, 1 },
+ { PIEZO_0 * .500, 0x2, 0, 3 },
+ { PIEZO_1 * .500, 0x2, 1, 3 },
+ { PIEZO_2 * .500, 0x2, 2, 3 },
+ { PIEZO_2 * 1.00, 0x3, 2, 6 },
+ { PIEZO_3 * 1.00, 0x3, 3, 6 },
+};
+
+DECLARE_INK(piezo_x80_multishot_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_x80_6pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .325, 0x1, 0, 2 },
+ { PIEZO_0 * .500, 0x2, 0, 3 },
+ { PIEZO_1 * .500, 0x2, 1, 3 },
+ { PIEZO_2 * .500, 0x2, 2, 3 },
+ { PIEZO_2 * 1.00, 0x3, 2, 6 },
+ { PIEZO_3 * 1.00, 0x3, 3, 6 },
+};
+
+DECLARE_INK(piezo_x80_6pl_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_x80_1440_6pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .650, 0x1, 0, 2 },
+ { PIEZO_1 * .650, 0x1, 1, 2 },
+ { PIEZO_2 * .650, 0x1, 2, 2 },
+ { PIEZO_2 * 1.00, 0x2, 2, 3 },
+ { PIEZO_3 * 1.00, 0x2, 3, 3 },
+};
+
+DECLARE_INK(piezo_x80_1440_6pl_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_x80_2880_6pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * 1.00, 0x1, 0, 1 },
+ { PIEZO_1 * 1.00, 0x1, 1, 1 },
+ { PIEZO_2 * 1.00, 0x1, 2, 1 },
+ { PIEZO_3 * 1.00, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_x80_2880_6pl_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* STYLUS COLOR 680/777
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_680_multishot_dither_ranges[] =
+{
+ { 0.375, 0x1, 0, 3 },
+ { 0.75, 0x2, 0, 6 },
+ { 1.0, 0x3, 0, 8 }
+};
+
+DECLARE_INK(standard_680_multishot, 1.0);
+
+static const stp_simple_dither_range_t standard_680_6pl_dither_ranges[] =
+{
+ { 0.50, 0x1, 0, 3 },
+ { 0.66, 0x2, 0, 4 },
+ { 1.0, 0x3, 0, 6 }
+};
+
+DECLARE_INK(standard_680_6pl, 1.0);
+
+static const stp_simple_dither_range_t piezo_680_multishot_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .375, 0x1, 0, 3 },
+ { PIEZO_0 * .750, 0x2, 0, 6 },
+ { PIEZO_1 * .750, 0x2, 1, 6 },
+ { PIEZO_2 * .750, 0x2, 2, 6 },
+ { PIEZO_2 * 1.00, 0x3, 2, 8 },
+ { PIEZO_3 * 1.00, 0x3, 3, 8 },
+};
+
+DECLARE_INK(piezo_680_multishot_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_680_6pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .500, 0x1, 0, 3 },
+ { PIEZO_1 * .660, 0x2, 1, 4 },
+ { PIEZO_2 * .660, 0x2, 2, 4 },
+ { PIEZO_2 * 1.00, 0x2, 3, 6 },
+ { PIEZO_3 * 1.00, 0x3, 3, 6 },
+};
+
+DECLARE_INK(piezo_680_6pl_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* 4 PICOLITRE DOTS *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_4pl_dither_ranges[] =
+{
+ { 0.661, 0x1, 0, 2 },
+ { 1.00, 0x2, 0, 3 }
+};
+
+DECLARE_INK(standard_4pl, 1.0);
+
+static const stp_simple_dither_range_t standard_4pl_2880_dither_ranges[] =
+{
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(standard_4pl_2880, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_dither_ranges[] =
+{
+ { 0.17, 0x1, 1, 2 },
+ { 0.26, 0x2, 1, 3 },
+ { 0.661, 0x1, 0, 2 },
+ { 1.00, 0x2, 0, 3 }
+};
+
+DECLARE_INK(photo_4pl, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_y_dither_ranges[] =
+{
+ { 0.330, 0x1, 0, 2 },
+ { 0.50, 0x2, 0, 3 },
+ { 0.661, 0x1, 1, 2 },
+ { 1.00, 0x2, 1, 3 }
+};
+
+DECLARE_INK(photo_4pl_y, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_2880_dither_ranges[] =
+{
+ { 0.26, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_4pl_2880, 1.0);
+
+static const stp_simple_dither_range_t piezo_4pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .661, 0x1, 0, 2 },
+ { PIEZO_1 * .661, 0x1, 1, 2 },
+ { PIEZO_2 * .661, 0x1, 2, 2 },
+ { PIEZO_2 * 1.00, 0x2, 2, 3 },
+ { PIEZO_3 * 1.00, 0x2, 3, 3 },
+};
+
+DECLARE_INK(piezo_4pl_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_4pl_2880_quadtone_dither_ranges[] =
+{
+ { PIEZO_0, 0x1, 0, 1 },
+ { PIEZO_1, 0x1, 1, 1 },
+ { PIEZO_2, 0x1, 2, 1 },
+ { PIEZO_3, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_4pl_2880_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* 3 PICOLITRE DOTS (900 AND 980) *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_3pl_dither_ranges[] =
+{
+ { 0.25, 0x1, 0, 2 },
+ { 0.61, 0x2, 0, 5 },
+ { 1.0, 0x3, 0, 8 }
+};
+
+DECLARE_INK(standard_3pl, 1.0);
+
+
+static const stp_simple_dither_range_t standard_3pl_1440_dither_ranges[] =
+{
+ { 0.39, 0x1, 0, 2 },
+ { 1.0, 0x2, 0, 5 }
+};
+
+DECLARE_INK(standard_3pl_1440, 1.0);
+
+
+static const stp_simple_dither_range_t standard_3pl_2880_dither_ranges[] =
+{
+ { 1.0, 0x1, 0, 1 }
+};
+
+DECLARE_INK(standard_3pl_2880, 1.0);
+
+static const stp_simple_dither_range_t standard_980_6pl_dither_ranges[] =
+{
+ { 0.40, 0x1, 0, 4 },
+ { 0.675, 0x2, 0, 7 },
+ { 1.0, 0x3, 0, 10 }
+};
+
+DECLARE_INK(standard_980_6pl, 1.0);
+
+static const stp_simple_dither_range_t piezo_3pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .25, 0x1, 0, 2 },
+ { PIEZO_0 * .61, 0x2, 0, 5 },
+ { PIEZO_1 * .61, 0x2, 1, 5 },
+ { PIEZO_2 * .61, 0x2, 2, 5 },
+ { PIEZO_2 * 1.0, 0x3, 2, 8 },
+ { PIEZO_3 * 1.0, 0x3, 3, 8 },
+};
+
+DECLARE_INK(piezo_3pl_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_3pl_1440_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .390, 0x1, 0, 2 },
+ { PIEZO_1 * .390, 0x1, 1, 2 },
+ { PIEZO_2 * .390, 0x1, 2, 2 },
+ { PIEZO_2 * 1.00, 0x2, 2, 5 },
+ { PIEZO_3 * 1.00, 0x2, 3, 5 },
+};
+
+DECLARE_INK(piezo_3pl_1440_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_3pl_2880_quadtone_dither_ranges[]=
+{
+ { PIEZO_0, 0x1, 0, 1 },
+ { PIEZO_1, 0x1, 1, 1 },
+ { PIEZO_2, 0x1, 2, 1 },
+ { PIEZO_3, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_3pl_2880_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_980_6pl_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .400, 0x1, 0, 4 },
+ { PIEZO_0 * .675, 0x2, 0, 7 },
+ { PIEZO_1 * .675, 0x2, 1, 7 },
+ { PIEZO_2 * .675, 0x2, 2, 7 },
+ { PIEZO_3 * 1.00, 0x3, 3, 10 },
+};
+
+DECLARE_INK(piezo_980_6pl_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* 2 PICOLITRE DOTS (950) *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_2pl_2880_dither_ranges[] =
+{
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(standard_2pl_2880, 1.0);
+
+static const stp_simple_dither_range_t photo_2pl_2880_dither_ranges[] =
+{
+ { 0.26, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_2pl_2880, 0.5);
+
+static const stp_simple_dither_range_t photo_2pl_2880_c_dither_ranges[] =
+{
+ { 0.26, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_2pl_2880_c, .5);
+
+static const stp_simple_dither_range_t photo_2pl_2880_m_dither_ranges[] =
+{
+ { 0.31, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_2pl_2880_m, .5);
+
+static const stp_simple_dither_range_t photo_2pl_2880_y_dither_ranges[] =
+{
+ { 0.5, 0x1, 0, 1 },
+ { 1.00, 0x1, 1, 1 },
+};
+
+DECLARE_INK(photo_2pl_2880_y, 1.00);
+
+static const stp_simple_dither_range_t piezo_2pl_2880_quadtone_dither_ranges[]=
+{
+ { PIEZO_0, 0x1, 0, 1 },
+ { PIEZO_1, 0x1, 1, 1 },
+ { PIEZO_2, 0x1, 2, 1 },
+ { PIEZO_3, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_2pl_2880_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t standard_2pl_1440_dither_ranges[] =
+{
+ { 0.5, 0x1, 0, 1 },
+ { 1.00, 0x2, 0, 2 }
+};
+
+DECLARE_INK(standard_2pl_1440, 1.0);
+
+static const stp_simple_dither_range_t piezo_2pl_1440_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .5, 0x1, 0, 1 },
+ { PIEZO_1 * .5, 0x1, 1, 1 },
+ { PIEZO_2 * .5, 0x1, 2, 1 },
+ { PIEZO_2 * 1.00, 0x2, 2, 2 },
+ { PIEZO_3 * 1.00, 0x2, 3, 2 },
+};
+
+DECLARE_INK(piezo_2pl_1440_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t photo_2pl_1440_dither_ranges[] =
+{
+ { 0.13, 0x1, 1, 1 },
+ { 0.26, 0x2, 1, 2 },
+ { 0.5, 0x1, 0, 1 },
+ { 1.00, 0x2, 0, 2 }
+};
+
+DECLARE_INK(photo_2pl_1440, 1.0);
+
+static const stp_simple_dither_range_t photo_2pl_1440_y_dither_ranges[] =
+{
+ { 0.25, 0x1, 0, 1 },
+ { 0.50, 0x2, 0, 2 },
+ { 1.00, 0x2, 1, 2 }
+};
+
+DECLARE_INK(photo_2pl_1440_y, 1.0);
+
+static const stp_simple_dither_range_t standard_2pl_720_dither_ranges[] =
+{
+ { 0.25, 0x1, 0, 1 },
+ { 0.5, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 4 }
+};
+
+DECLARE_INK(standard_2pl_720, 1.0);
+
+static const stp_simple_dither_range_t photo_2pl_720_dither_ranges[] =
+{
+ { 0.065, 0x1, 1, 1 },
+ { 0.13, 0x2, 1, 2 },
+/* { 0.26, 0x3, 1, 4 }, */
+ { 0.25, 0x1, 0, 1 },
+ { 0.5, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 4 }
+};
+
+DECLARE_INK(photo_2pl_720, 1.0);
+
+static const stp_simple_dither_range_t photo_2pl_720_y_dither_ranges[] =
+{
+ { 0.125, 0x1, 0, 1 },
+ { 0.25, 0x2, 0, 2 },
+ { 0.5, 0x2, 1, 2 },
+ { 1.0, 0x3, 1, 4 }
+};
+
+DECLARE_INK(photo_2pl_720_y, 1.0);
+
+static const stp_simple_dither_range_t piezo_2pl_720_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .25, 0x1, 0, 1 },
+ { PIEZO_0 * .50, 0x2, 0, 2 },
+ { PIEZO_1 * .50, 0x2, 1, 2 },
+ { PIEZO_2 * .50, 0x2, 2, 2 },
+ { PIEZO_2 * 1.0, 0x3, 2, 4 },
+ { PIEZO_3 * 1.0, 0x3, 3, 4 },
+};
+
+DECLARE_INK(piezo_2pl_720_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t standard_2pl_360_dither_ranges[] =
+{
+ { 0.25, 0x1, 0, 2 },
+ { 0.5, 0x2, 0, 4 },
+ { 1.0, 0x3, 0, 7 }
+};
+
+DECLARE_INK(standard_2pl_360, 1.0);
+
+static const stp_simple_dither_range_t photo_2pl_360_dither_ranges[] =
+{
+ { 0.065, 0x1, 1, 1 },
+ { 0.13, 0x2, 1, 2 },
+ { 0.26, 0x3, 1, 3 },
+ { 1.0, 0x3, 0, 3 }
+};
+
+DECLARE_INK(photo_2pl_360, 1.0);
+
+static const stp_simple_dither_range_t photo_2pl_360_y_dither_ranges[] =
+{
+ { 0.145, 0x1, 0, 1 },
+ { 0.290, 0x2, 0, 2 },
+ { 0.5, 0x3, 0, 3 },
+ { 1.0, 0x3, 1, 3 }
+};
+
+DECLARE_INK(photo_2pl_360_y, 1.0);
+
+static const stp_simple_dither_range_t piezo_2pl_360_quadtone_dither_ranges[] =
+{
+ { PIEZO_0 * .25, 0x1, 0, 2 },
+ { PIEZO_0 * .50, 0x2, 0, 4 },
+ { PIEZO_1 * .50, 0x2, 1, 4 },
+ { PIEZO_2 * .50, 0x2, 2, 4 },
+ { PIEZO_2 * 1.0, 0x3, 2, 7 },
+ { PIEZO_3 * 1.0, 0x3, 3, 7 },
+};
+
+DECLARE_INK(piezo_2pl_360_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* STYLUS C70/C80 (PIGMENT) *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_economy_pigment_dither_ranges[] =
+{
+ { 1.0, 0x3, 0, 3 }
+};
+
+DECLARE_INK(standard_economy_pigment, 1.0);
+
+static const stp_simple_dither_range_t standard_multishot_pigment_dither_ranges[] =
+{
+ { 0.410, 0x1, 0, 2 },
+ { 1.0, 0x3, 0, 5 }
+};
+
+DECLARE_INK(standard_multishot_pigment, 1.0);
+
+static const stp_simple_dither_range_t standard_6pl_pigment_dither_ranges[] =
+{
+ { 0.300, 0x1, 0, 3 },
+ { 1.0, 0x3, 0, 10 }
+};
+
+DECLARE_INK(standard_6pl_pigment, 1.0);
+
+static const stp_simple_dither_range_t standard_3pl_pigment_dither_ranges[] =
+{
+ { 0.650, 0x1, 0, 2 },
+ { 1.000, 0x2, 0, 3 },
+};
+
+DECLARE_INK(standard_3pl_pigment, 1.0);
+
+static const stp_simple_dither_range_t standard_3pl_pigment_2880_dither_ranges[] =
+{
+ { 1.0, 0x1, 0, 1 }
+};
+
+DECLARE_INK(standard_3pl_pigment_2880, 1.0);
+
+static const stp_simple_dither_range_t piezo_economy_pigment_quadtone_dither_ranges[]=
+{
+ { PIEZO_0, 0x3, 0, 1 },
+ { PIEZO_1, 0x3, 1, 1 },
+ { PIEZO_2, 0x3, 2, 1 },
+ { PIEZO_3, 0x3, 3, 1 },
+};
+
+DECLARE_INK(piezo_economy_pigment_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_multishot_pigment_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .410, 0x1, 0, 2 },
+ { PIEZO_1 * .410, 0x1, 1, 2 },
+ { PIEZO_2 * .410, 0x1, 2, 2 },
+ { PIEZO_3 * 1.00, 0x3, 3, 5 },
+};
+
+DECLARE_INK(piezo_multishot_pigment_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_6pl_pigment_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .300, 0x1, 0, 3 },
+ { PIEZO_0 * .600, 0x2, 0, 6 },
+ { PIEZO_1 * .600, 0x2, 1, 6 },
+ { PIEZO_2 * .600, 0x2, 2, 6 },
+ { PIEZO_3 * 1.00, 0x3, 3, 10 },
+};
+
+DECLARE_INK(piezo_6pl_pigment_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_3pl_pigment_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .650, 0x1, 0, 2 },
+ { PIEZO_1 * .650, 0x1, 1, 2 },
+ { PIEZO_2 * .650, 0x1, 2, 2 },
+ { PIEZO_3 * 1.00, 0x2, 3, 3 },
+};
+
+DECLARE_INK(piezo_3pl_pigment_quadtone, PIEZO_DENSITY);
+
+static const stp_simple_dither_range_t piezo_3pl_pigment_2880_quadtone_dither_ranges[]=
+{
+ { PIEZO_0, 0x1, 0, 1 },
+ { PIEZO_1, 0x1, 1, 1 },
+ { PIEZO_2, 0x1, 2, 1 },
+ { PIEZO_3, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_3pl_pigment_2880_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* STYLUS PHOTO 2000P *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_pigment_dither_ranges[] =
+{ /* MRS: Not calibrated! */
+ { 0.55, 0x1, 0, 1 },
+ { 1.0, 0x2, 0, 2 }
+};
+
+DECLARE_INK(standard_pigment, 1.0);
+
+static const stp_simple_dither_range_t photo_pigment_dither_ranges[] =
+{ /* MRS: Not calibrated! */
+ { 0.15, 0x1, 1, 1 },
+ { 0.227, 0x2, 1, 2 },
+ { 0.5, 0x1, 0, 1 },
+ { 1.0, 0x2, 0, 2 }
+};
+
+DECLARE_INK(photo_pigment, 1.0);
+
+static const stp_simple_dither_range_t piezo_pigment_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .550, 0x1, 0, 1 },
+ { PIEZO_1 * .550, 0x1, 1, 1 },
+ { PIEZO_2 * .550, 0x1, 2, 1 },
+ { PIEZO_3 * .550, 0x1, 3, 1 },
+ { PIEZO_3 * 1.00, 0x2, 3, 2 },
+};
+
+DECLARE_INK(piezo_pigment_quadtone, PIEZO_DENSITY);
+
+
+/***************************************************************\
+* *
+* ULTRACHROME (2100/2200, 7600, 9600) *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_4pl_pigment_low_dither_ranges[] =
+{
+ { 0.40, 0x1, 0, 40 },
+ { 0.70, 0x2, 0, 70 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(standard_4pl_pigment_low, 0.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_low_m_dither_ranges[] =
+{
+ { 0.104, 0x1, 1, 40 },
+ { 0.182, 0x2, 1, 70 },
+ { 0.26, 0x3, 1, 100 },
+ { 0.70, 0x2, 0, 70 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_low_m, 0.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_low_c_dither_ranges[] =
+{
+ { 0.16, 0x1, 1, 40 },
+ { 0.28, 0x2, 1, 70 },
+ { 0.40, 0x3, 1, 100 },
+ { 0.70, 0x2, 0, 70 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_low_c, 0.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_low_y_dither_ranges[] =
+{
+ { 0.20, 0x1, 1, 40 },
+ { 0.35, 0x2, 1, 70 },
+ { 0.50, 0x3, 1, 100 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_low_y, 1.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_low_k_dither_ranges[] =
+{
+ { 0.196, 0x1, 1, 40 },
+ { 0.40, 0x1, 0, 40 },
+ { 0.70, 0x2, 0, 70 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_low_k, 0.5);
+
+static const stp_simple_dither_range_t standard_4pl_pigment_dither_ranges[] =
+{
+ { 0.28, 0x1, 0, 28 },
+ { 0.50, 0x2, 0, 50 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(standard_4pl_pigment, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_m_dither_ranges[] =
+{
+ { 0.0728, 0x1, 1, 28 },
+ { 0.13, 0x2, 1, 50 },
+ { 0.26, 0x3, 1, 100 },
+ { 0.50, 0x2, 0, 50 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_m, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_c_dither_ranges[] =
+{
+ { 0.112, 0x1, 1, 28 },
+ { 0.20, 0x2, 1, 50 },
+ { 0.40, 0x3, 1, 100 },
+ { 0.50, 0x2, 0, 50 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_c, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_y_dither_ranges[] =
+{
+ { 0.14, 0x1, 1, 28 },
+ { 0.25, 0x2, 1, 50 },
+ { 0.50, 0x3, 1, 100 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_y, 1.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_k_dither_ranges[] =
+{
+ { 0.1344, 0x1, 1, 28 },
+ { 0.24, 0x2, 1, 50 },
+ { 0.50, 0x2, 0, 50 },
+ { 1.00, 0x3, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_k, 0.75);
+
+static const stp_simple_dither_range_t standard_4pl_pigment_1440_dither_ranges[] =
+{
+ { 0.56, 0x1, 0, 56 },
+ { 1.00, 0x2, 0, 100 },
+};
+
+DECLARE_INK(standard_4pl_pigment_1440, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_1440_m_dither_ranges[] =
+{
+ { 0.1456, 0x1, 1, 56 },
+ { 0.26, 0x2, 1, 100 },
+ { 0.56, 0x1, 0, 56 },
+ { 1.00, 0x2, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_1440_m, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_1440_c_dither_ranges[] =
+{
+ { 0.224, 0x1, 1, 56 },
+ { 0.40, 0x2, 1, 100 },
+ { 0.56, 0x1, 0, 56 },
+ { 1.00, 0x2, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_1440_c, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_1440_y_dither_ranges[] =
+{
+ { 0.28, 0x1, 1, 56 },
+ { 0.50, 0x2, 1, 100 },
+ { 1.00, 0x2, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_1440_y, 1.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_1440_k_dither_ranges[] =
+{
+ { 0.2688, 0x1, 1, 56 },
+ { 0.56, 0x1, 0, 56 },
+ { 1.00, 0x2, 0, 100 }
+};
+
+DECLARE_INK(photo_4pl_pigment_1440_k, 0.75);
+
+static const stp_simple_dither_range_t standard_4pl_pigment_2880_dither_ranges[] =
+{
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(standard_4pl_pigment_2880, 1.0);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_2880_m_dither_ranges[] =
+{
+ { 0.26, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_4pl_pigment_2880_m, 0.75);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_2880_c_dither_ranges[] =
+{
+ { 0.40, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_4pl_pigment_2880_c, 0.75);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_2880_y_dither_ranges[] =
+{
+ { 0.50, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_4pl_pigment_2880_y, 1.5);
+
+static const stp_simple_dither_range_t photo_4pl_pigment_2880_k_dither_ranges[] =
+{
+ { 0.48, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_4pl_pigment_2880_k, 0.75);
+
+
+/***************************************************************\
+* *
+* STYLUS PRO 10000 *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t spro10000_standard_dither_ranges[] =
+{
+ { 0.661, 0x1, 0, 2 },
+ { 1.00, 0x2, 0, 3 }
+};
+
+DECLARE_INK(spro10000_standard, 1.0);
+
+static const stp_simple_dither_range_t spro10000_photo_dither_ranges[] =
+{
+ { 0.17, 0x1, 1, 2 },
+ { 0.26, 0x2, 1, 3 },
+ { 0.661, 0x1, 0, 2 },
+ { 1.00, 0x2, 0, 3 }
+};
+
+DECLARE_INK(spro10000_photo, 1.0);
+
+
+/***************************************************************\
+* *
+* STYLUS PHOTO R300 *
+* *
+\***************************************************************/
+
+static const stp_simple_dither_range_t standard_r300_360_dither_ranges[] =
+{
+ { 0.15, 0x1, 0, 3 },
+ { 0.30, 0x2, 0, 6 },
+ { 1.00, 0x3, 0, 20 },
+};
+
+DECLARE_INK(standard_r300_360, 1.0);
+
+static const stp_simple_dither_range_t photo_r300_360_dither_ranges[] =
+{
+ { 0.053, 0x1, 1, 3 },
+ { 0.105, 0x2, 1, 6 },
+ { 0.30, 0x2, 0, 6 },
+ { 1.00, 0x3, 0, 20 },
+};
+
+DECLARE_INK(photo_r300_360, 0.5);
+
+static const stp_simple_dither_range_t piezo_r300_360_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .15, 0x1, 0, 3 },
+ { PIEZO_0 * .30, 0x2, 0, 6 },
+ { PIEZO_1 * .30, 0x2, 1, 6 },
+ { PIEZO_2 * .30, 0x2, 2, 6 },
+ { PIEZO_2 * 1.0, 0x3, 2, 20 },
+ { PIEZO_3 * 1.0, 0x3, 3, 20 },
+};
+
+DECLARE_INK(piezo_r300_360_quadtone, 0.5);
+
+static const stp_simple_dither_range_t standard_r300_720_dither_ranges[] =
+{
+ { 0.15, 0x1, 0, 3 },
+ { 0.50, 0x2, 0, 10 },
+ { 1.00, 0x3, 0, 20 },
+};
+
+DECLARE_INK(standard_r300_720, 1.0);
+
+static const stp_simple_dither_range_t photo_r300_720_dither_ranges[] =
+{
+ { 0.053, 0x1, 1, 3 },
+ { 0.175, 0x2, 1, 10 },
+ { 0.50, 0x2, 0, 10 },
+ { 1.00, 0x3, 0, 20 },
+};
+
+DECLARE_INK(photo_r300_720, 0.5);
+
+static const stp_simple_dither_range_t piezo_r300_720_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .15, 0x1, 0, 3 },
+ { PIEZO_0 * .50, 0x2, 0, 10 },
+ { PIEZO_1 * .50, 0x2, 1, 10 },
+ { PIEZO_2 * .50, 0x2, 2, 10 },
+ { PIEZO_2 * 1.0, 0x3, 2, 20 },
+ { PIEZO_3 * 1.0, 0x3, 3, 20 },
+};
+
+DECLARE_INK(piezo_r300_720_quadtone, 0.5);
+
+static const stp_simple_dither_range_t standard_r300_1440_dither_ranges[] =
+{
+ { 0.25, 0x1, 0, 1 },
+ { 0.50, 0x2, 0, 2 },
+ { 1.00, 0x3, 0, 4 },
+};
+
+DECLARE_INK(standard_r300_1440, 1.0);
+
+static const stp_simple_dither_range_t photo_r300_1440_dither_ranges[] =
+{
+ { 0.088, 0x1, 1, 1 },
+ { 0.175, 0x2, 1, 2 },
+ { 0.50, 0x2, 0, 2 },
+ { 1.00, 0x3, 0, 4 },
+};
+
+DECLARE_INK(photo_r300_1440, 0.5);
+
+static const stp_simple_dither_range_t piezo_r300_1440_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .25, 0x1, 0, 1 },
+ { PIEZO_0 * .50, 0x2, 0, 2 },
+ { PIEZO_1 * .50, 0x2, 1, 2 },
+ { PIEZO_2 * .50, 0x2, 2, 2 },
+ { PIEZO_2 * 1.0, 0x3, 2, 4 },
+ { PIEZO_3 * 1.0, 0x3, 3, 4 },
+};
+
+DECLARE_INK(piezo_r300_1440_quadtone, 0.5);
+
+static const stp_simple_dither_range_t standard_r300_2880_dither_ranges[] =
+{
+ { 0.50, 0x1, 0, 1 },
+ { 1.00, 0x2, 0, 2 },
+};
+
+DECLARE_INK(standard_r300_2880, 1.0);
+
+static const stp_simple_dither_range_t photo_r300_2880_dither_ranges[] =
+{
+ { 0.175, 0x1, 1, 1 },
+ { 0.50, 0x1, 0, 1 },
+ { 1.00, 0x2, 0, 2 },
+};
+
+DECLARE_INK(photo_r300_2880, 0.5);
+
+static const stp_simple_dither_range_t piezo_r300_2880_quadtone_dither_ranges[]=
+{
+ { PIEZO_0 * .50, 0x1, 0, 1 },
+ { PIEZO_1 * .50, 0x1, 1, 1 },
+ { PIEZO_2 * .50, 0x1, 2, 1 },
+ { PIEZO_2 * 1.0, 0x2, 2, 2 },
+ { PIEZO_3 * 1.0, 0x2, 3, 2 },
+};
+
+DECLARE_INK(piezo_r300_2880_quadtone, 0.5);
+
+static const stp_simple_dither_range_t standard_r300_2880_1440_dither_ranges[] =
+{
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(standard_r300_2880_1440, 1.0);
+
+static const stp_simple_dither_range_t photo_r300_2880_1440_dither_ranges[] =
+{
+ { 0.35, 0x1, 1, 1 },
+ { 1.00, 0x1, 0, 1 },
+};
+
+DECLARE_INK(photo_r300_2880_1440, 0.5);
+
+static const stp_simple_dither_range_t piezo_r300_2880_1440_quadtone_dither_ranges[]=
+{
+ { PIEZO_0, 0x1, 0, 1 },
+ { PIEZO_1, 0x1, 1, 1 },
+ { PIEZO_2, 0x1, 2, 1 },
+ { PIEZO_3, 0x1, 3, 1 },
+};
+
+DECLARE_INK(piezo_r300_2880_1440_quadtone, 0.5);
+
+
+
+static const escp2_variable_inkset_t standard_inks =
+{
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t photo_inks =
+{
+ NULL,
+ &photo_cyan_ink,
+ &photo_magenta_ink,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_quadtone_inks =
+{
+ &piezo_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_multishot_standard_inks =
+{
+ &standard_multishot_ink,
+ &standard_multishot_ink,
+ &standard_multishot_ink,
+ &standard_multishot_ink
+};
+
+static const escp2_variable_inkset_t escp2_multishot_photo_inks =
+{
+ &standard_multishot_ink,
+ &photo_multishot_ink,
+ &photo_multishot_ink,
+ &standard_multishot_ink
+};
+
+static const escp2_variable_inkset_t escp2_multishot_photo2_inks =
+{
+ &photo_multishot_ink,
+ &photo_multishot_ink,
+ &photo_multishot_ink,
+ &standard_multishot_ink
+};
+
+static const escp2_variable_inkset_t escp2_multishot_photoj_inks =
+{
+ &standard_multishot_ink,
+ &photo_multishot_ink,
+ &photo_multishot_ink,
+ &photo_multishot_y_ink
+};
+
+static const escp2_variable_inkset_t piezo_multishot_quadtone_inks =
+{
+ &piezo_multishot_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_6pl_standard_inks =
+{
+ &standard_6pl_ink,
+ &standard_6pl_ink,
+ &standard_6pl_ink,
+ &standard_6pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_6pl_photo_inks =
+{
+ &standard_6pl_ink,
+ &photo_6pl_ink,
+ &photo_6pl_ink,
+ &standard_6pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_6pl_photo2_inks =
+{
+ &photo_6pl_ink,
+ &photo_6pl_ink,
+ &photo_6pl_ink,
+ &standard_6pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_6pl_photoj_inks =
+{
+ &standard_6pl_ink,
+ &photo_6pl_ink,
+ &photo_6pl_ink,
+ &photo_6pl_y_ink
+};
+
+static const escp2_variable_inkset_t piezo_6pl_quadtone_inks =
+{
+ &piezo_6pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_6pl_1440_standard_inks =
+{
+ &standard_6pl_1440_ink,
+ &standard_6pl_1440_ink,
+ &standard_6pl_1440_ink,
+ &standard_6pl_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_6pl_1440_photo_inks =
+{
+ &standard_6pl_1440_ink,
+ &photo_6pl_1440_ink,
+ &photo_6pl_1440_ink,
+ &standard_6pl_1440_ink
+};
+
+static const escp2_variable_inkset_t piezo_6pl_1440_quadtone_inks =
+{
+ &piezo_6pl_1440_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_6pl_2880_standard_inks =
+{
+ &standard_6pl_2880_ink,
+ &standard_6pl_2880_ink,
+ &standard_6pl_2880_ink,
+ &standard_6pl_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_6pl_2880_photo_inks =
+{
+ &standard_6pl_2880_ink,
+ &photo_6pl_2880_ink,
+ &photo_6pl_2880_ink,
+ &standard_6pl_2880_ink
+};
+
+static const escp2_variable_inkset_t piezo_6pl_2880_quadtone_inks =
+{
+ &piezo_6pl_2880_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_680_multishot_standard_inks =
+{
+ &standard_680_multishot_ink,
+ &standard_680_multishot_ink,
+ &standard_680_multishot_ink,
+ &standard_680_multishot_ink
+};
+
+static const escp2_variable_inkset_t escp2_680_6pl_standard_inks =
+{
+ &standard_680_6pl_ink,
+ &standard_680_6pl_ink,
+ &standard_680_6pl_ink,
+ &standard_680_6pl_ink
+};
+
+static const escp2_variable_inkset_t piezo_680_multishot_quadtone_inks =
+{
+ &piezo_680_multishot_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_680_6pl_quadtone_inks =
+{
+ &piezo_680_6pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_4pl_standard_inks =
+{
+ &standard_4pl_ink,
+ &standard_4pl_ink,
+ &standard_4pl_ink,
+ &standard_4pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_photo_inks =
+{
+ &standard_4pl_ink,
+ &photo_4pl_ink,
+ &photo_4pl_ink,
+ &standard_4pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_photoj_inks =
+{
+ &standard_4pl_ink,
+ &photo_4pl_ink,
+ &photo_4pl_ink,
+ &photo_4pl_y_ink,
+};
+
+static const escp2_variable_inkset_t piezo_4pl_quadtone_inks =
+{
+ &piezo_4pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_4pl_2880_standard_inks =
+{
+ &standard_4pl_2880_ink,
+ &standard_4pl_2880_ink,
+ &standard_4pl_2880_ink,
+ &standard_4pl_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_2880_photo_inks =
+{
+ &standard_4pl_2880_ink,
+ &photo_4pl_2880_ink,
+ &photo_4pl_2880_ink,
+ &standard_4pl_2880_ink
+};
+
+static const escp2_variable_inkset_t piezo_4pl_2880_quadtone_inks =
+{
+ &piezo_4pl_2880_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_6pl_standard_980_inks =
+{
+ &standard_980_6pl_ink,
+ &standard_980_6pl_ink,
+ &standard_980_6pl_ink,
+ &standard_980_6pl_ink
+};
+
+static const escp2_variable_inkset_t piezo_6pl_quadtone_980_inks =
+{
+ &piezo_980_6pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_3pl_standard_inks =
+{
+ &standard_3pl_ink,
+ &standard_3pl_ink,
+ &standard_3pl_ink,
+ &standard_3pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_3pl_1440_standard_inks =
+{
+ &standard_3pl_1440_ink,
+ &standard_3pl_1440_ink,
+ &standard_3pl_1440_ink,
+ &standard_3pl_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_3pl_2880_standard_inks =
+{
+ &standard_3pl_2880_ink,
+ &standard_3pl_2880_ink,
+ &standard_3pl_2880_ink,
+ &standard_3pl_2880_ink
+};
+
+static const escp2_variable_inkset_t piezo_3pl_quadtone_inks =
+{
+ &piezo_3pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_3pl_1440_quadtone_inks =
+{
+ &piezo_3pl_1440_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_3pl_2880_quadtone_inks =
+{
+ &piezo_3pl_2880_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_2pl_2880_standard_inks =
+{
+ &standard_2pl_2880_ink,
+ &standard_2pl_2880_ink,
+ &standard_2pl_2880_ink,
+ &standard_2pl_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_2880_photo_inks =
+{
+ &standard_2pl_2880_ink,
+ &photo_2pl_2880_c_ink,
+ &photo_2pl_2880_m_ink,
+ &standard_2pl_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_2880_photo2_inks =
+{
+ &photo_2pl_2880_ink,
+ &photo_2pl_2880_ink,
+ &photo_2pl_2880_ink,
+ &standard_2pl_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_2880_photoj_inks =
+{
+ &standard_2pl_2880_ink,
+ &photo_2pl_2880_ink,
+ &photo_2pl_2880_ink,
+ &photo_2pl_2880_y_ink
+};
+
+static const escp2_variable_inkset_t piezo_2pl_2880_quadtone_inks =
+{
+ &piezo_2pl_2880_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_2pl_1440_standard_inks =
+{
+ &standard_2pl_1440_ink,
+ &standard_2pl_1440_ink,
+ &standard_2pl_1440_ink,
+ &standard_2pl_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_1440_photo_inks =
+{
+ &standard_2pl_1440_ink,
+ &photo_2pl_1440_ink,
+ &photo_2pl_1440_ink,
+ &standard_2pl_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_1440_photoj_inks =
+{
+ &standard_2pl_1440_ink,
+ &photo_2pl_1440_ink,
+ &photo_2pl_1440_ink,
+ &photo_2pl_1440_y_ink,
+};
+
+static const escp2_variable_inkset_t piezo_2pl_1440_quadtone_inks =
+{
+ &piezo_2pl_1440_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_2pl_720_standard_inks =
+{
+ &standard_2pl_720_ink,
+ &standard_2pl_720_ink,
+ &standard_2pl_720_ink,
+ &standard_2pl_720_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_720_photo_inks =
+{
+ &standard_2pl_720_ink,
+ &photo_2pl_720_ink,
+ &photo_2pl_720_ink,
+ &standard_2pl_720_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_720_photo2_inks =
+{
+ &photo_2pl_720_ink,
+ &photo_2pl_720_ink,
+ &photo_2pl_720_ink,
+ &standard_2pl_720_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_720_photoj_inks =
+{
+ &standard_2pl_720_ink,
+ &photo_2pl_720_ink,
+ &photo_2pl_720_ink,
+ &photo_2pl_720_y_ink
+};
+
+static const escp2_variable_inkset_t piezo_2pl_720_quadtone_inks =
+{
+ &piezo_2pl_720_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_2pl_360_standard_inks =
+{
+ &standard_2pl_360_ink,
+ &standard_2pl_360_ink,
+ &standard_2pl_360_ink,
+ &standard_2pl_360_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_360_photo_inks =
+{
+ &standard_2pl_360_ink,
+ &photo_2pl_360_ink,
+ &photo_2pl_360_ink,
+ &standard_2pl_360_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_360_photo2_inks =
+{
+ &photo_2pl_360_ink,
+ &photo_2pl_360_ink,
+ &photo_2pl_360_ink,
+ &standard_2pl_360_ink
+};
+
+static const escp2_variable_inkset_t escp2_2pl_360_photoj_inks =
+{
+ &standard_2pl_360_ink,
+ &photo_2pl_360_ink,
+ &photo_2pl_360_ink,
+ &photo_2pl_360_y_ink
+};
+
+static const escp2_variable_inkset_t piezo_2pl_360_quadtone_inks =
+{
+ &piezo_2pl_360_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_x80_multishot_standard_inks =
+{
+ &standard_x80_multishot_ink,
+ &standard_x80_multishot_ink,
+ &standard_x80_multishot_ink,
+ &standard_x80_multishot_ink
+};
+
+static const escp2_variable_inkset_t escp2_x80_6pl_standard_inks =
+{
+ &standard_x80_6pl_ink,
+ &standard_x80_6pl_ink,
+ &standard_x80_6pl_ink,
+ &standard_x80_6pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_x80_1440_6pl_standard_inks =
+{
+ &standard_x80_1440_6pl_ink,
+ &standard_x80_1440_6pl_ink,
+ &standard_x80_1440_6pl_ink,
+ &standard_x80_1440_6pl_ink
+};
+
+static const escp2_variable_inkset_t escp2_x80_2880_6pl_standard_inks =
+{
+ &standard_x80_2880_6pl_ink,
+ &standard_x80_2880_6pl_ink,
+ &standard_x80_2880_6pl_ink,
+ &standard_x80_2880_6pl_ink
+};
+
+static const escp2_variable_inkset_t piezo_x80_multishot_quadtone_inks =
+{
+ &piezo_x80_multishot_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_x80_6pl_quadtone_inks =
+{
+ &piezo_x80_6pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_x80_1440_6pl_quadtone_inks =
+{
+ &piezo_x80_1440_6pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t piezo_x80_2880_6pl_quadtone_inks =
+{
+ &piezo_x80_2880_6pl_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_pigment_standard_inks =
+{
+ &standard_pigment_ink,
+ &standard_pigment_ink,
+ &standard_pigment_ink,
+ &standard_pigment_ink
+};
+
+static const escp2_variable_inkset_t escp2_pigment_photo_inks =
+{
+ &standard_pigment_ink,
+ &photo_pigment_ink,
+ &photo_pigment_ink,
+ &standard_pigment_ink
+};
+
+static const escp2_variable_inkset_t piezo_pigment_quadtone_inks =
+{
+ &piezo_pigment_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_multishot_pigment_standard_inks =
+{
+ &standard_multishot_pigment_ink,
+ &standard_multishot_pigment_ink,
+ &standard_multishot_pigment_ink,
+ &standard_multishot_pigment_ink
+};
+
+static const escp2_variable_inkset_t piezo_multishot_pigment_quadtone_inks =
+{
+ &piezo_multishot_pigment_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_economy_pigment_standard_inks =
+{
+ &standard_economy_pigment_ink,
+ &standard_economy_pigment_ink,
+ &standard_economy_pigment_ink,
+ &standard_economy_pigment_ink
+};
+
+static const escp2_variable_inkset_t piezo_economy_pigment_quadtone_inks =
+{
+ &piezo_economy_pigment_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_6pl_pigment_standard_inks =
+{
+ &standard_6pl_pigment_ink,
+ &standard_6pl_pigment_ink,
+ &standard_6pl_pigment_ink,
+ &standard_6pl_pigment_ink
+};
+
+static const escp2_variable_inkset_t piezo_6pl_pigment_quadtone_inks =
+{
+ &piezo_6pl_pigment_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_low_standard_inks =
+{
+ &standard_4pl_pigment_low_ink,
+ &standard_4pl_pigment_low_ink,
+ &standard_4pl_pigment_low_ink,
+ &standard_4pl_pigment_low_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_low_photo_inks =
+{
+ &standard_4pl_pigment_low_ink,
+ &photo_4pl_pigment_low_c_ink,
+ &photo_4pl_pigment_low_m_ink,
+ &standard_4pl_pigment_low_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_low_photo2_inks =
+{
+ &photo_4pl_pigment_low_k_ink,
+ &photo_4pl_pigment_low_c_ink,
+ &photo_4pl_pigment_low_m_ink,
+ &standard_4pl_pigment_low_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_low_photoj_inks =
+{
+ &standard_4pl_pigment_low_ink,
+ &photo_4pl_pigment_low_c_ink,
+ &photo_4pl_pigment_low_m_ink,
+ &photo_4pl_pigment_low_y_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_standard_inks =
+{
+ &standard_4pl_pigment_ink,
+ &standard_4pl_pigment_ink,
+ &standard_4pl_pigment_ink,
+ &standard_4pl_pigment_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_photo_inks =
+{
+ &standard_4pl_pigment_ink,
+ &photo_4pl_pigment_c_ink,
+ &photo_4pl_pigment_m_ink,
+ &standard_4pl_pigment_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_photo2_inks =
+{
+ &photo_4pl_pigment_k_ink,
+ &photo_4pl_pigment_c_ink,
+ &photo_4pl_pigment_m_ink,
+ &standard_4pl_pigment_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_photoj_inks =
+{
+ &standard_4pl_pigment_ink,
+ &photo_4pl_pigment_c_ink,
+ &photo_4pl_pigment_m_ink,
+ &photo_4pl_pigment_y_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_1440_standard_inks =
+{
+ &standard_4pl_pigment_1440_ink,
+ &standard_4pl_pigment_1440_ink,
+ &standard_4pl_pigment_1440_ink,
+ &standard_4pl_pigment_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_1440_photo_inks =
+{
+ &standard_4pl_pigment_1440_ink,
+ &photo_4pl_pigment_1440_c_ink,
+ &photo_4pl_pigment_1440_m_ink,
+ &standard_4pl_pigment_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_1440_photo2_inks =
+{
+ &photo_4pl_pigment_1440_k_ink,
+ &photo_4pl_pigment_1440_c_ink,
+ &photo_4pl_pigment_1440_m_ink,
+ &standard_4pl_pigment_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_1440_photoj_inks =
+{
+ &standard_4pl_pigment_1440_ink,
+ &photo_4pl_pigment_1440_c_ink,
+ &photo_4pl_pigment_1440_m_ink,
+ &photo_4pl_pigment_1440_y_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_2880_standard_inks =
+{
+ &standard_4pl_pigment_2880_ink,
+ &standard_4pl_pigment_2880_ink,
+ &standard_4pl_pigment_2880_ink,
+ &standard_4pl_pigment_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_2880_photo_inks =
+{
+ &standard_4pl_pigment_2880_ink,
+ &photo_4pl_pigment_2880_c_ink,
+ &photo_4pl_pigment_2880_m_ink,
+ &standard_4pl_pigment_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_2880_photo2_inks =
+{
+ &photo_4pl_pigment_2880_k_ink,
+ &photo_4pl_pigment_2880_c_ink,
+ &photo_4pl_pigment_2880_m_ink,
+ &standard_4pl_pigment_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_4pl_pigment_2880_photoj_inks =
+{
+ &standard_4pl_pigment_2880_ink,
+ &photo_4pl_pigment_2880_c_ink,
+ &photo_4pl_pigment_2880_m_ink,
+ &photo_4pl_pigment_2880_y_ink
+};
+
+
+static const escp2_variable_inkset_t escp2_3pl_pigment_standard_inks =
+{
+ &standard_3pl_pigment_ink,
+ &standard_3pl_pigment_ink,
+ &standard_3pl_pigment_ink,
+ &standard_3pl_pigment_ink
+};
+
+static const escp2_variable_inkset_t piezo_3pl_pigment_quadtone_inks =
+{
+ &piezo_3pl_pigment_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_3pl_pigment_2880_standard_inks =
+{
+ &standard_3pl_pigment_2880_ink,
+ &standard_3pl_pigment_2880_ink,
+ &standard_3pl_pigment_2880_ink,
+ &standard_3pl_pigment_2880_ink
+};
+
+static const escp2_variable_inkset_t piezo_3pl_pigment_2880_quadtone_inks =
+{
+ &piezo_3pl_pigment_2880_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+static const escp2_variable_inkset_t spro10000_standard_inks =
+{
+ &spro10000_standard_ink,
+ &spro10000_standard_ink,
+ &spro10000_standard_ink,
+ &spro10000_standard_ink
+};
+
+static const escp2_variable_inkset_t spro10000_photo_inks =
+{
+ &spro10000_standard_ink,
+ &spro10000_photo_ink,
+ &spro10000_photo_ink,
+ &spro10000_standard_ink
+};
+
+
+static const escp2_variable_inkset_t escp2_r300_360_standard_inks =
+{
+ &standard_r300_360_ink,
+ &standard_r300_360_ink,
+ &standard_r300_360_ink,
+ &standard_r300_360_ink
+};
+
+static const escp2_variable_inkset_t escp2_r300_360_photo_inks =
+{
+ &standard_r300_360_ink,
+ &photo_r300_360_ink,
+ &photo_r300_360_ink,
+ &standard_r300_360_ink
+};
+
+static const escp2_variable_inkset_t piezo_r300_360_quadtone_inks =
+{
+ &piezo_r300_360_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_r300_720_standard_inks =
+{
+ &standard_r300_720_ink,
+ &standard_r300_720_ink,
+ &standard_r300_720_ink,
+ &standard_r300_720_ink
+};
+
+static const escp2_variable_inkset_t escp2_r300_720_photo_inks =
+{
+ &standard_r300_720_ink,
+ &photo_r300_720_ink,
+ &photo_r300_720_ink,
+ &standard_r300_720_ink
+};
+
+static const escp2_variable_inkset_t piezo_r300_720_quadtone_inks =
+{
+ &piezo_r300_720_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_r300_1440_standard_inks =
+{
+ &standard_r300_1440_ink,
+ &standard_r300_1440_ink,
+ &standard_r300_1440_ink,
+ &standard_r300_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_r300_1440_photo_inks =
+{
+ &standard_r300_1440_ink,
+ &photo_r300_1440_ink,
+ &photo_r300_1440_ink,
+ &standard_r300_1440_ink
+};
+
+static const escp2_variable_inkset_t piezo_r300_1440_quadtone_inks =
+{
+ &piezo_r300_1440_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_r300_2880_standard_inks =
+{
+ &standard_r300_2880_ink,
+ &standard_r300_2880_ink,
+ &standard_r300_2880_ink,
+ &standard_r300_2880_ink
+};
+
+static const escp2_variable_inkset_t escp2_r300_2880_photo_inks =
+{
+ &standard_r300_2880_ink,
+ &photo_r300_2880_ink,
+ &photo_r300_2880_ink,
+ &standard_r300_2880_ink
+};
+
+static const escp2_variable_inkset_t piezo_r300_2880_quadtone_inks =
+{
+ &piezo_r300_2880_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const escp2_variable_inkset_t escp2_r300_2880_1440_standard_inks =
+{
+ &standard_r300_2880_1440_ink,
+ &standard_r300_2880_1440_ink,
+ &standard_r300_2880_1440_ink,
+ &standard_r300_2880_1440_ink
+};
+
+static const escp2_variable_inkset_t escp2_r300_2880_1440_photo_inks =
+{
+ &standard_r300_2880_1440_ink,
+ &photo_r300_2880_1440_ink,
+ &photo_r300_2880_1440_ink,
+ &standard_r300_2880_1440_ink
+};
+
+static const escp2_variable_inkset_t piezo_r300_2880_1440_quadtone_inks =
+{
+ &piezo_r300_2880_1440_quadtone_ink,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+
+static const escp2_variable_inklist_t simple_inks =
+{
+ {
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ &standard_inks,
+ },
+ {
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ &photo_inks,
+ },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ &piezo_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_6pl_inks =
+{
+ {
+ &escp2_6pl_standard_inks,
+ &escp2_6pl_standard_inks,
+ &escp2_6pl_standard_inks,
+ &escp2_6pl_standard_inks,
+ &escp2_6pl_standard_inks,
+ &escp2_6pl_1440_standard_inks,
+ &escp2_6pl_2880_standard_inks,
+ &escp2_6pl_2880_standard_inks,
+ &escp2_6pl_2880_standard_inks
+ },
+ {
+ &escp2_6pl_photo_inks,
+ &escp2_6pl_photo_inks,
+ &escp2_6pl_photo_inks,
+ &escp2_6pl_photo_inks,
+ &escp2_6pl_photo_inks,
+ &escp2_6pl_1440_photo_inks,
+ &escp2_6pl_2880_photo_inks,
+ &escp2_6pl_2880_photo_inks,
+ &escp2_6pl_2880_photo_inks
+ },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_6pl_quadtone_inks,
+ &piezo_6pl_quadtone_inks,
+ &piezo_6pl_quadtone_inks,
+ &piezo_6pl_quadtone_inks,
+ &piezo_6pl_quadtone_inks,
+ &piezo_6pl_1440_quadtone_inks,
+ &piezo_6pl_2880_quadtone_inks,
+ &piezo_6pl_2880_quadtone_inks,
+ &piezo_6pl_2880_quadtone_inks
+ },
+};
+
+static const escp2_variable_inklist_t variable_x80_6pl_inks =
+{
+ {
+ &escp2_x80_multishot_standard_inks,
+ &escp2_x80_multishot_standard_inks,
+ &escp2_x80_multishot_standard_inks,
+ &escp2_x80_multishot_standard_inks,
+ &escp2_x80_6pl_standard_inks,
+ &escp2_x80_1440_6pl_standard_inks,
+ &escp2_x80_2880_6pl_standard_inks,
+ &escp2_x80_2880_6pl_standard_inks,
+ &escp2_x80_2880_6pl_standard_inks,
+ },
+ { NULL, },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_x80_multishot_quadtone_inks,
+ &piezo_x80_multishot_quadtone_inks,
+ &piezo_x80_multishot_quadtone_inks,
+ &piezo_x80_multishot_quadtone_inks,
+ &piezo_x80_6pl_quadtone_inks,
+ &piezo_x80_1440_6pl_quadtone_inks,
+ &piezo_x80_2880_6pl_quadtone_inks,
+ &piezo_x80_2880_6pl_quadtone_inks,
+ &piezo_x80_2880_6pl_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_4pl_inks =
+{
+ {
+ &escp2_multishot_standard_inks,
+ &escp2_multishot_standard_inks,
+ &escp2_multishot_standard_inks,
+ &escp2_multishot_standard_inks,
+ &escp2_6pl_standard_inks,
+ &escp2_4pl_standard_inks,
+ &escp2_4pl_2880_standard_inks,
+ &escp2_4pl_2880_standard_inks,
+ &escp2_4pl_2880_standard_inks,
+ },
+ {
+ &escp2_multishot_photo_inks,
+ &escp2_multishot_photo_inks,
+ &escp2_multishot_photo_inks,
+ &escp2_multishot_photo_inks,
+ &escp2_6pl_photo_inks,
+ &escp2_4pl_photo_inks,
+ &escp2_4pl_2880_photo_inks,
+ &escp2_4pl_2880_photo_inks,
+ &escp2_4pl_2880_photo_inks
+ },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_multishot_quadtone_inks,
+ &piezo_multishot_quadtone_inks,
+ &piezo_multishot_quadtone_inks,
+ &piezo_multishot_quadtone_inks,
+ &piezo_6pl_quadtone_inks,
+ &piezo_4pl_quadtone_inks,
+ &piezo_4pl_2880_quadtone_inks,
+ &piezo_4pl_2880_quadtone_inks,
+ &piezo_4pl_2880_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_3pl_pmg_inks =
+{
+ {
+ &escp2_r300_360_standard_inks,
+ &escp2_r300_360_standard_inks,
+ &escp2_r300_360_standard_inks,
+ &escp2_r300_360_standard_inks,
+ &escp2_r300_720_standard_inks,
+ &escp2_r300_1440_standard_inks,
+ &escp2_r300_2880_standard_inks,
+ &escp2_r300_2880_1440_standard_inks,
+ &escp2_r300_2880_1440_standard_inks,
+ },
+ {
+ &escp2_r300_360_photo_inks,
+ &escp2_r300_360_photo_inks,
+ &escp2_r300_360_photo_inks,
+ &escp2_r300_360_photo_inks,
+ &escp2_r300_720_photo_inks,
+ &escp2_r300_1440_photo_inks,
+ &escp2_r300_2880_photo_inks,
+ &escp2_r300_2880_1440_photo_inks,
+ &escp2_r300_2880_1440_photo_inks,
+ },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_r300_360_quadtone_inks,
+ &piezo_r300_360_quadtone_inks,
+ &piezo_r300_360_quadtone_inks,
+ &piezo_r300_360_quadtone_inks,
+ &piezo_r300_720_quadtone_inks,
+ &piezo_r300_1440_quadtone_inks,
+ &piezo_r300_2880_quadtone_inks,
+ &piezo_r300_2880_1440_quadtone_inks,
+ &piezo_r300_2880_1440_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_680_4pl_inks =
+{
+ {
+ &escp2_680_multishot_standard_inks,
+ &escp2_680_multishot_standard_inks,
+ &escp2_680_multishot_standard_inks,
+ &escp2_680_multishot_standard_inks,
+ &escp2_680_6pl_standard_inks,
+ &escp2_4pl_standard_inks,
+ &escp2_4pl_2880_standard_inks,
+ &escp2_4pl_2880_standard_inks,
+ &escp2_4pl_2880_standard_inks,
+ },
+ { NULL, },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_680_multishot_quadtone_inks,
+ &piezo_680_multishot_quadtone_inks,
+ &piezo_680_multishot_quadtone_inks,
+ &piezo_680_multishot_quadtone_inks,
+ &piezo_680_6pl_quadtone_inks,
+ &piezo_4pl_quadtone_inks,
+ &piezo_4pl_2880_quadtone_inks,
+ &piezo_4pl_2880_quadtone_inks,
+ &piezo_4pl_2880_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_3pl_inks =
+{
+ {
+ &escp2_multishot_standard_inks,
+ &escp2_multishot_standard_inks,
+ &escp2_6pl_standard_980_inks,
+ &escp2_6pl_standard_980_inks,
+ &escp2_3pl_standard_inks,
+ &escp2_3pl_1440_standard_inks,
+ &escp2_3pl_2880_standard_inks,
+ &escp2_3pl_2880_standard_inks,
+ &escp2_3pl_2880_standard_inks,
+ },
+ { NULL, },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_multishot_quadtone_inks,
+ &piezo_multishot_quadtone_inks,
+ &piezo_6pl_quadtone_980_inks,
+ &piezo_6pl_quadtone_980_inks,
+ &piezo_3pl_quadtone_inks,
+ &piezo_3pl_1440_quadtone_inks,
+ &piezo_3pl_2880_quadtone_inks,
+ &piezo_3pl_2880_quadtone_inks,
+ &piezo_3pl_2880_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_2pl_inks =
+{
+ {
+ &escp2_2pl_360_standard_inks,
+ &escp2_2pl_360_standard_inks,
+ &escp2_2pl_360_standard_inks,
+ &escp2_2pl_360_standard_inks,
+ &escp2_2pl_720_standard_inks,
+ &escp2_2pl_1440_standard_inks,
+ &escp2_2pl_2880_standard_inks,
+ &escp2_2pl_2880_standard_inks,
+ &escp2_2pl_2880_standard_inks,
+ },
+ {
+ &escp2_2pl_360_photo_inks,
+ &escp2_2pl_360_photo_inks,
+ &escp2_2pl_360_photo_inks,
+ &escp2_2pl_360_photo_inks,
+ &escp2_2pl_720_photo_inks,
+ &escp2_2pl_1440_photo_inks,
+ &escp2_2pl_2880_photo_inks,
+ &escp2_2pl_2880_photo_inks,
+ &escp2_2pl_2880_photo_inks
+ },
+ {
+ &escp2_2pl_360_photoj_inks,
+ &escp2_2pl_360_photoj_inks,
+ &escp2_2pl_360_photoj_inks,
+ &escp2_2pl_360_photoj_inks,
+ &escp2_2pl_720_photoj_inks,
+ &escp2_2pl_1440_photoj_inks,
+ &escp2_2pl_2880_photoj_inks,
+ &escp2_2pl_2880_photoj_inks,
+ &escp2_2pl_2880_photoj_inks
+ },
+ { NULL, },
+ {
+ &piezo_2pl_360_quadtone_inks,
+ &piezo_2pl_360_quadtone_inks,
+ &piezo_2pl_360_quadtone_inks,
+ &piezo_2pl_360_quadtone_inks,
+ &piezo_2pl_720_quadtone_inks,
+ &piezo_2pl_1440_quadtone_inks,
+ &piezo_2pl_2880_quadtone_inks,
+ &piezo_2pl_2880_quadtone_inks,
+ &piezo_2pl_2880_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t variable_pigment_inks =
+{
+ {
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks,
+ &escp2_pigment_standard_inks
+ },
+ {
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks,
+ &escp2_pigment_photo_inks
+ },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks,
+ &piezo_pigment_quadtone_inks
+ },
+};
+
+static const escp2_variable_inklist_t variable_4pl_pigment_inks =
+{
+ {
+ &escp2_4pl_pigment_low_standard_inks,
+ &escp2_4pl_pigment_low_standard_inks,
+ &escp2_4pl_pigment_low_standard_inks,
+ &escp2_4pl_pigment_low_standard_inks,
+ &escp2_4pl_pigment_standard_inks,
+ &escp2_4pl_pigment_1440_standard_inks,
+ &escp2_4pl_pigment_2880_standard_inks,
+ &escp2_4pl_pigment_2880_standard_inks,
+ &escp2_4pl_pigment_2880_standard_inks,
+ },
+ {
+ &escp2_4pl_pigment_low_photo_inks,
+ &escp2_4pl_pigment_low_photo_inks,
+ &escp2_4pl_pigment_low_photo_inks,
+ &escp2_4pl_pigment_low_photo_inks,
+ &escp2_4pl_pigment_photo_inks,
+ &escp2_4pl_pigment_1440_photo_inks,
+ &escp2_4pl_pigment_2880_photo_inks,
+ &escp2_4pl_pigment_2880_photo_inks,
+ &escp2_4pl_pigment_2880_photo_inks
+ },
+ { NULL, },
+ {
+ &escp2_4pl_pigment_low_photo2_inks,
+ &escp2_4pl_pigment_low_photo2_inks,
+ &escp2_4pl_pigment_low_photo2_inks,
+ &escp2_4pl_pigment_low_photo2_inks,
+ &escp2_4pl_pigment_photo2_inks,
+ &escp2_4pl_pigment_1440_photo2_inks,
+ &escp2_4pl_pigment_2880_photo2_inks,
+ &escp2_4pl_pigment_2880_photo2_inks,
+ &escp2_4pl_pigment_2880_photo2_inks
+ },
+};
+
+static const escp2_variable_inklist_t variable_3pl_pigment_inks =
+{
+ {
+ &escp2_economy_pigment_standard_inks,
+ &escp2_economy_pigment_standard_inks,
+ &escp2_multishot_pigment_standard_inks,
+ &escp2_multishot_pigment_standard_inks,
+ &escp2_6pl_pigment_standard_inks,
+ &escp2_3pl_pigment_standard_inks,
+ &escp2_3pl_pigment_2880_standard_inks,
+ &escp2_3pl_pigment_2880_standard_inks,
+ &escp2_3pl_pigment_2880_standard_inks,
+ },
+ { NULL, },
+ { NULL, },
+ { NULL, },
+ {
+ &piezo_economy_pigment_quadtone_inks,
+ &piezo_economy_pigment_quadtone_inks,
+ &piezo_multishot_pigment_quadtone_inks,
+ &piezo_multishot_pigment_quadtone_inks,
+ &piezo_6pl_pigment_quadtone_inks,
+ &piezo_3pl_pigment_quadtone_inks,
+ &piezo_3pl_pigment_2880_quadtone_inks,
+ &piezo_3pl_pigment_2880_quadtone_inks,
+ &piezo_3pl_pigment_2880_quadtone_inks,
+ }
+};
+
+static const escp2_variable_inklist_t spro10000_inks =
+{
+ {
+ &standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks,
+ &spro10000_standard_inks
+ },
+ {
+ &photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks,
+ &spro10000_photo_inks
+ }
+};
+
+
+#define DECLARE_INK_CHANNEL(name) \
+static const ink_channel_t name##_channels = \
+{ \
+ name##_subchannels, \
+ sizeof(name##_subchannels) / sizeof(physical_subchannel_t), \
+}
+
+static const physical_subchannel_t standard_black_subchannels[] =
+{
+ { 0, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(standard_black);
+
+static const physical_subchannel_t x80_black_subchannels[] =
+{
+ { 0, -1, 48 }
+};
+
+DECLARE_INK_CHANNEL(x80_black);
+
+static const physical_subchannel_t c80_black_subchannels[] =
+{
+ { 0, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(c80_black);
+
+static const physical_subchannel_t c64_black_subchannels[] =
+{
+ { 0, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(c64_black);
+
+static const physical_subchannel_t standard_cyan_subchannels[] =
+{
+ { 2, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(standard_cyan);
+
+static const physical_subchannel_t x80_cyan_subchannels[] =
+{
+ { 2, -1, 96 }
+};
+
+DECLARE_INK_CHANNEL(x80_cyan);
+
+static const physical_subchannel_t c80_cyan_subchannels[] =
+{
+ { 2, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(c80_cyan);
+
+static const physical_subchannel_t c64_cyan_subchannels[] =
+{
+ { 2, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(c64_cyan);
+
+static const physical_subchannel_t standard_magenta_subchannels[] =
+{
+ { 1, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(standard_magenta);
+
+static const physical_subchannel_t x80_magenta_subchannels[] =
+{
+ { 1, -1, 48 }
+};
+
+DECLARE_INK_CHANNEL(x80_magenta);
+
+static const physical_subchannel_t c80_magenta_subchannels[] =
+{
+ { 1, -1, 120 }
+};
+
+DECLARE_INK_CHANNEL(c80_magenta);
+
+static const physical_subchannel_t c64_magenta_subchannels[] =
+{
+ { 1, -1, 90 }
+};
+
+DECLARE_INK_CHANNEL(c64_magenta);
+
+static const physical_subchannel_t standard_yellow_subchannels[] =
+{
+ { 4, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(standard_yellow);
+
+static const physical_subchannel_t x80_yellow_subchannels[] =
+{
+ { 4, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(x80_yellow);
+
+static const physical_subchannel_t c80_yellow_subchannels[] =
+{
+ { 4, -1, 240 }
+};
+
+DECLARE_INK_CHANNEL(c80_yellow);
+
+static const physical_subchannel_t c64_yellow_subchannels[] =
+{
+ { 4, -1, 180 }
+};
+
+DECLARE_INK_CHANNEL(c64_yellow);
+
+static const physical_subchannel_t photo_black_subchannels[] =
+{
+ { 0, 0, 0 }
+};
+
+DECLARE_INK_CHANNEL(photo_black);
+
+static const physical_subchannel_t photo_cyan_subchannels[] =
+{
+ { 2, 0, 0 },
+ { 2, 1, 0 }
+};
+
+DECLARE_INK_CHANNEL(photo_cyan);
+
+static const physical_subchannel_t photo_magenta_subchannels[] =
+{
+ { 1, 0, 0 },
+ { 1, 1, 0 }
+};
+
+DECLARE_INK_CHANNEL(photo_magenta);
+
+static const physical_subchannel_t photo_yellow_subchannels[] =
+{
+ { 4, 0, 0 }
+};
+
+DECLARE_INK_CHANNEL(photo_yellow);
+
+/* For Japanese 7-color printers, with dark yellow */
+static const physical_subchannel_t photo2_yellow_subchannels[] =
+{
+ { 4, 0, 0 },
+ { 4, 2, 0 }
+};
+
+DECLARE_INK_CHANNEL(photo2_yellow);
+
+static const physical_subchannel_t photo2_black_subchannels[] =
+{
+ { 0, 0, 0 },
+ { 0, 1, 0 }
+};
+
+DECLARE_INK_CHANNEL(photo2_black);
+
+static const physical_subchannel_t quadtone_subchannels[] =
+{
+ { 4, -1, 0 },
+ { 1, -1, 0 },
+ { 2, -1, 0 },
+ { 0, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(quadtone);
+
+static const physical_subchannel_t c80_quadtone_subchannels[] =
+{
+ { 4, -1, 240 },
+ { 1, -1, 120 },
+ { 2, -1, 0 },
+ { 0, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(c80_quadtone);
+
+static const physical_subchannel_t c64_quadtone_subchannels[] =
+{
+ { 4, -1, 180 },
+ { 1, -1, 90 },
+ { 2, -1, 0 },
+ { 0, -1, 0 }
+};
+
+DECLARE_INK_CHANNEL(c64_quadtone);
+
+static const physical_subchannel_t f360_standard_cyan_subchannels[] =
+{
+ { 2, -1, 1 }
+};
+
+DECLARE_INK_CHANNEL(f360_standard_cyan);
+
+static const physical_subchannel_t f360_standard_magenta_subchannels[] =
+{
+ { 1, -1, 1 }
+};
+
+DECLARE_INK_CHANNEL(f360_standard_magenta);
+
+static const physical_subchannel_t f360_photo_black_subchannels[] =
+{
+ { 0, 0, 1 }
+};
+
+DECLARE_INK_CHANNEL(f360_photo_black);
+
+static const physical_subchannel_t f360_photo_yellow_subchannels[] =
+{
+ { 4, 0, 1 }
+};
+
+DECLARE_INK_CHANNEL(f360_photo_yellow);
+
+static const physical_subchannel_t f360_photo2_yellow_subchannels[] =
+{
+ { 4, 2, 0 },
+ { 4, 0, 1 }
+};
+
+DECLARE_INK_CHANNEL(f360_photo2_yellow);
+
+static const physical_subchannel_t f360_photo2_black_subchannels[] =
+{
+ { 0, 0, 1 },
+ { 0, 1, 0 }
+};
+
+DECLARE_INK_CHANNEL(f360_photo2_black);
+
+static const physical_subchannel_t f360_photo_cyan_subchannels[] =
+{
+ { 2, 0, 1 },
+ { 2, 1, 0 }
+};
+
+DECLARE_INK_CHANNEL(f360_photo_cyan);
+
+static const physical_subchannel_t f360_photo_magenta_subchannels[] =
+{
+ { 1, 0, 1 },
+ { 1, 1, 0 }
+};
+
+DECLARE_INK_CHANNEL(f360_photo_magenta);
+
+
+
+static const escp2_inkname_t three_color_composite_inkset =
+{
+ "RGB", N_ ("Three Color Composite"), 1, INKSET_CMYK, 0, 0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &standard_cyan_channels,
+ &standard_magenta_channels, &standard_yellow_channels
+ }
+};
+
+static const escp2_inkname_t x80_three_color_composite_inkset =
+{
+ "RGB", N_ ("Three Color Composite"), 1, INKSET_CMYK, 0, 0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &x80_cyan_channels,
+ &x80_magenta_channels, &x80_yellow_channels
+ }
+};
+
+static const escp2_inkname_t c80_three_color_composite_inkset =
+{
+ "RGB", N_ ("Three Color Composite"), 1, INKSET_CMYK, 0, 0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &c80_cyan_channels,
+ &c80_magenta_channels, &c80_yellow_channels
+ }
+};
+
+static const escp2_inkname_t c64_three_color_composite_inkset =
+{
+ "RGB", N_ ("Three Color Composite"), 1, INKSET_CMYK, 0, 0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &c64_cyan_channels,
+ &c64_magenta_channels, &c64_yellow_channels
+ }
+};
+
+static const escp2_inkname_t four_color_standard_inkset =
+{
+ "CMYK", N_ ("Four Color Standard"), 1, INKSET_CMYK, .25, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &standard_black_channels, &standard_cyan_channels,
+ &standard_magenta_channels, &standard_yellow_channels
+ }
+};
+
+static const escp2_inkname_t x80_four_color_standard_inkset =
+{
+ "CMYK", N_ ("Four Color Standard"), 1, INKSET_CMYK, .25, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &x80_black_channels, &x80_cyan_channels,
+ &x80_magenta_channels, &x80_yellow_channels
+ }
+};
+
+static const escp2_inkname_t c80_four_color_standard_inkset =
+{
+ "CMYK", N_ ("Four Color Standard"), 1, INKSET_CMYK, .25, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &c80_black_channels, &c80_cyan_channels,
+ &c80_magenta_channels, &c80_yellow_channels
+ }
+};
+
+static const escp2_inkname_t c64_four_color_standard_inkset =
+{
+ "CMYK", N_ ("Four Color Standard"), 1, INKSET_CMYK, .25, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &c64_black_channels, &c64_cyan_channels,
+ &c64_magenta_channels, &c64_yellow_channels
+ }
+};
+
+static const escp2_inkname_t six_color_photo_inkset =
+{
+ "PhotoCMYK", N_ ("Six Color Photo"), 1, INKSET_CcMmYK, .5, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &photo_black_channels, &photo_cyan_channels,
+ &photo_magenta_channels, &photo_yellow_channels
+ }
+};
+
+static const escp2_inkname_t five_color_photo_composite_inkset =
+{
+ "PhotoCMY", N_ ("Five Color Photo Composite"), 1, INKSET_CcMmYK, 0, 0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &photo_cyan_channels,
+ &photo_magenta_channels, &photo_yellow_channels
+ }
+};
+
+static const escp2_inkname_t j_seven_color_enhanced_inkset =
+{
+ "Photo7J", N_ ("Seven Color Enhanced"), 1, INKSET_CcMmYyK, .5, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &photo_black_channels, &photo_cyan_channels,
+ &photo_magenta_channels, &photo2_yellow_channels
+ }
+};
+
+static const escp2_inkname_t j_six_color_enhanced_composite_inkset =
+{
+ "PhotoEnhanceJ", N_ ("Six Color Enhanced Composite"), 1, INKSET_CcMmYyK, .5, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &standard_cyan_channels,
+ &standard_magenta_channels, &standard_yellow_channels
+ }
+};
+
+static const escp2_inkname_t seven_color_photo_inkset =
+{
+ "PhotoCMYK7", N_ ("Seven Color Photo"), 1, INKSET_CcMmYKk, .05 , 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &photo2_black_channels, &photo_cyan_channels,
+ &photo_magenta_channels, &photo_yellow_channels
+ }
+};
+
+static const escp2_inkname_t two_color_grayscale_inkset =
+{
+ "Gray2", N_ ("Two Level Grayscale"), 0, INKSET_CcMmYKk, 0, 0,
+ NULL, NULL, NULL,
+ {
+ &photo2_black_channels, NULL, NULL, NULL
+ }
+};
+
+static const escp2_inkname_t piezo_quadtone_inkset =
+{
+ "Quadtone", N_ ("Quadtone"), 0, INKSET_PIEZO_QUADTONE, 0, 0,
+ NULL, NULL, NULL,
+ {
+ &quadtone_channels, NULL, NULL, NULL
+ }
+};
+
+static const escp2_inkname_t c80_piezo_quadtone_inkset =
+{
+ "Quadtone", N_ ("Quadtone"), 0, INKSET_PIEZO_QUADTONE, 0, 0,
+ NULL, NULL, NULL,
+ {
+ &c80_quadtone_channels, NULL, NULL, NULL
+ }
+};
+
+static const escp2_inkname_t c64_piezo_quadtone_inkset =
+{
+ "Quadtone", N_ ("Quadtone"), 0, INKSET_PIEZO_QUADTONE, 0, 0,
+ NULL, NULL, NULL,
+ {
+ &c64_quadtone_channels, NULL, NULL, NULL
+ }
+};
+
+static const escp2_inkname_t f360_six_color_photo_inkset =
+{
+ "PhotoCMYK", N_("Six Color Photo"), 1, INKSET_CcMmYK, .5, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &f360_photo_black_channels, &f360_photo_cyan_channels,
+ &f360_photo_magenta_channels, &f360_photo_yellow_channels
+ }
+};
+
+static const escp2_inkname_t f360_five_color_photo_composite_inkset =
+{
+ "PhotoCMY", N_("Five Color Photo Composite"), 1, INKSET_CcMmYK, 0, 0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &f360_photo_cyan_channels,
+ &f360_photo_magenta_channels, &f360_photo_yellow_channels
+ }
+};
+
+static const escp2_inkname_t f360_j_seven_color_enhanced_inkset =
+{
+ "Photo7J", N_("Seven Color Enhanced"), 1, INKSET_CcMmYyK, .5, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &f360_photo_black_channels, &f360_photo_cyan_channels,
+ &f360_photo_magenta_channels, &f360_photo2_yellow_channels
+ }
+};
+
+static const escp2_inkname_t f360_j_six_color_enhanced_composite_inkset =
+{
+ "PhotoEnhanceJ", N_("Six Color Enhanced Composite"), 1, INKSET_CcMmYyK, .5, 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ NULL, &f360_photo_cyan_channels,
+ &f360_photo_magenta_channels, &f360_photo2_yellow_channels
+ }
+};
+
+static const escp2_inkname_t f360_seven_color_photo_inkset =
+{
+ "PhotoCMYK7", N_("Seven Color Photo"), 1, INKSET_CcMmYKk, .05 , 1.0,
+ standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
+ {
+ &f360_photo2_black_channels, &f360_photo_cyan_channels,
+ &f360_photo_magenta_channels, &f360_photo_yellow_channels
+ }
+};
+
+static const escp2_inkname_t f360_two_color_grayscale_inkset =
+{
+ "Gray2", N_("Two Level Grayscale"), 0, INKSET_CcMmYKk, 0, 0,
+ NULL, NULL, NULL,
+ {
+ &f360_photo2_black_channels
+ }
+};
+
+
+#define DECLARE_INKLIST(name) \
+static const inklist_t name##_inklist = \
+{ \
+ name##_ink_types, \
+ sizeof(name##_ink_types) / sizeof(escp2_inkname_t *), \
+} \
+
+
+static const escp2_inkname_t *const cmy_ink_types[] =
+{
+ &three_color_composite_inkset
+};
+
+DECLARE_INKLIST(cmy);
+
+static const escp2_inkname_t *const standard_ink_types[] =
+{
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(standard);
+
+static const escp2_inkname_t *const c80_ink_types[] =
+{
+ &c80_four_color_standard_inkset,
+ &c80_three_color_composite_inkset,
+ &c80_piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(c80);
+
+static const escp2_inkname_t *const c64_ink_types[] =
+{
+ &c64_four_color_standard_inkset,
+ &c64_three_color_composite_inkset,
+ &c64_piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(c64);
+
+static const escp2_inkname_t *const x80_ink_types[] =
+{
+ &x80_four_color_standard_inkset,
+ &x80_three_color_composite_inkset,
+};
+
+DECLARE_INKLIST(x80);
+
+static const escp2_inkname_t *const photo_ink_types[] =
+{
+ &six_color_photo_inkset,
+ &five_color_photo_composite_inkset,
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(photo);
+
+static const escp2_inkname_t *const f360_photo_ink_types[] =
+{
+ &f360_six_color_photo_inkset,
+ &f360_five_color_photo_composite_inkset,
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(f360_photo);
+
+static const escp2_inkname_t *const photo7_japan_ink_types[] =
+{
+ &j_seven_color_enhanced_inkset,
+ &j_six_color_enhanced_composite_inkset,
+ &six_color_photo_inkset,
+ &five_color_photo_composite_inkset,
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(photo7_japan);
+
+static const escp2_inkname_t *const f360_photo7_japan_ink_types[] =
+{
+ &f360_j_seven_color_enhanced_inkset,
+ &f360_j_six_color_enhanced_composite_inkset,
+ &f360_six_color_photo_inkset,
+ &f360_five_color_photo_composite_inkset,
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &piezo_quadtone_inkset
+};
+
+DECLARE_INKLIST(f360_photo7_japan);
+
+static const escp2_inkname_t *const photo7_ink_types[] =
+{
+ &seven_color_photo_inkset,
+ &six_color_photo_inkset,
+ &five_color_photo_composite_inkset,
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &two_color_grayscale_inkset
+};
+
+DECLARE_INKLIST(photo7);
+
+static const escp2_inkname_t *const f360_photo7_ink_types[] =
+{
+ &f360_seven_color_photo_inkset,
+ &f360_six_color_photo_inkset,
+ &f360_five_color_photo_composite_inkset,
+ &four_color_standard_inkset,
+ &three_color_composite_inkset,
+ &two_color_grayscale_inkset
+};
+
+DECLARE_INKLIST(f360_photo7);
+
+
+
+static const paper_t standard_papers[] =
+{
+ { "Plain", N_("Plain Paper"),
+ 1, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "PlainFast", N_("Plain Paper Fast Load"),
+ 5, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Postcard", N_("Postcard"),
+ 2, 0, 0.83, .2, .6, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "GlossyFilm", N_("Glossy Film"),
+ 3, 0, 1.00 ,1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Transparency", N_("Transparencies"),
+ 3, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6d, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "Envelope", N_("Envelopes"),
+ 4, 0, 0.80, .125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "BackFilm", N_("Back Light Film"),
+ 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, NULL, NULL},
+ { "Matte", N_("Matte Paper"),
+ 7, 0, 0.85, 1.0, .999, 1.05, 1.0, 0.95, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, NULL, NULL},
+ { "Inkjet", N_("Inkjet Paper"),
+ 7, 0, 0.85, .25, .6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Coated", N_("Photo Quality Inkjet Paper"),
+ 7, 0, 1.00, 1.0, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Photo", N_("Photo Paper"),
+ 8, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPhoto", N_("Premium Glossy Photo Paper"),
+ 8, 0, 1.10, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.03, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02,
+ pgpp_hue_adjustment, pgpp_lum_adjustment, pgpp_sat_adjustment},
+ { "Luster", N_("Premium Luster Photo Paper"),
+ 8, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPaper", N_("Photo Quality Glossy Paper"),
+ 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Ilford", N_("Ilford Heavy Paper"),
+ 8, 0, .85, .5, 1.35, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL },
+ { "ColorLife", N_("ColorLife Paper"),
+ 8, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "Other", N_("Other"),
+ 0, 0, 0.80, 0.125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+};
+
+static const paperlist_t standard_paper_list =
+{
+ sizeof(standard_papers) / sizeof(paper_t),
+ standard_papers
+};
+
+static const paper_t sp780_papers[] =
+{
+ { "Plain", N_("Plain Paper"),
+ 6, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "PlainFast", N_("Plain Paper Fast Load"),
+ 1, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Postcard", N_("Postcard"),
+ 3, 0, 0.83, .2, .6, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "GlossyFilm", N_("Glossy Film"),
+ 0, 0, 1.00 ,1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Transparency", N_("Transparencies"),
+ 0, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6d, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "Envelope", N_("Envelopes"),
+ 4, 0, 0.80, .125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "BackFilm", N_("Back Light Film"),
+ 0, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, NULL, NULL},
+ { "Matte", N_("Matte Paper"),
+ 2, 0, 0.85, 1.0, .999, 1.05, .9, 1.05, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, NULL, NULL},
+ { "Inkjet", N_("Inkjet Paper"),
+ 6, 0, 0.85, .25, .6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Coated", N_("Photo Quality Inkjet Paper"),
+ 0, 0, 1.00, 1.0, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Photo", N_("Photo Paper"),
+ 2, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPhoto", N_("Premium Glossy Photo Paper"),
+ 7, 0, 1.10, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.03, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02,
+ pgpp_hue_adjustment, pgpp_lum_adjustment, pgpp_sat_adjustment},
+ { "Luster", N_("Premium Luster Photo Paper"),
+ 7, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPaper", N_("Photo Quality Glossy Paper"),
+ 0, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Ilford", N_("Ilford Heavy Paper"),
+ 2, 0, .85, .5, 1.35, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL },
+ { "ColorLife", N_("ColorLife Paper"),
+ 2, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "Other", N_("Other"),
+ 0, 0, 0.80, 0.125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+};
+
+static const paperlist_t sp780_paper_list =
+{
+ sizeof(sp780_papers) / sizeof(paper_t),
+ sp780_papers
+};
+
+static const paper_t c80_papers[] =
+{
+ { "Plain", N_("Plain Paper"),
+ 1, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "PlainFast", N_("Plain Paper Fast Load"),
+ 5, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Postcard", N_("Postcard"),
+ 2, 0, 0.83, .2, .6, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "GlossyFilm", N_("Glossy Film"),
+ 3, 0, 1.00 ,1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Transparency", N_("Transparencies"),
+ 3, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6d, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "Envelope", N_("Envelopes"),
+ 4, 0, 0.80, .125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "BackFilm", N_("Back Light Film"),
+ 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, NULL, NULL},
+ { "Matte", N_("Matte Paper"),
+ 7, 0, 0.9, 1.0, .999, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, NULL, NULL},
+ { "Inkjet", N_("Inkjet Paper"),
+ 7, 0, 0.85, .25, .6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Coated", N_("Photo Quality Inkjet Paper"),
+ 7, 0, 1.00, 1.0, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Photo", N_("Photo Paper"),
+ 8, 0, 1.20, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPhoto", N_("Premium Glossy Photo Paper"),
+ 8, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.03, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02,
+ pgpp_hue_adjustment, pgpp_lum_adjustment, pgpp_sat_adjustment},
+ { "Luster", N_("Premium Luster Photo Paper"),
+ 8, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPaper", N_("Photo Quality Glossy Paper"),
+ 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Ilford", N_("Ilford Heavy Paper"),
+ 8, 0, .85, .5, 1.35, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL },
+ { "ColorLife", N_("ColorLife Paper"),
+ 8, 0, 1.20, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "Other", N_("Other"),
+ 0, 0, 0.80, 0.125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+};
+
+static const paperlist_t c80_paper_list =
+{
+ sizeof(c80_papers) / sizeof(paper_t),
+ c80_papers
+};
+
+static const paper_t sp950_papers[] =
+{
+ { "Plain", N_("Plain Paper"),
+ 6, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "PlainFast", N_("Plain Paper Fast Load"),
+ 1, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Postcard", N_("Postcard"),
+ 3, 0, 0.83, .2, .6, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "GlossyFilm", N_("Glossy Film"),
+ 0, 0, 1.00 ,1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Transparency", N_("Transparencies"),
+ 0, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6d, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
+ { "Envelope", N_("Envelopes"),
+ 4, 0, 0.80, .125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "BackFilm", N_("Back Light Film"),
+ 0, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6d, 0x00, 0x01, NULL, NULL, NULL},
+ { "Matte", N_("Matte Paper"),
+ 2, 0, 0.85, 1.0, .999, 1.05, .9, 1.05, .9, 1.0, 1.1,
+ 1, 1.0, 0x00, 0x00, 0x02, NULL, NULL, NULL},
+ { "Inkjet", N_("Inkjet Paper"),
+ 6, 0, 0.85, .25, .6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+ { "Coated", N_("Photo Quality Inkjet Paper"),
+ 0, 0, 1.00, 1.0, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Photo", N_("Photo Paper"),
+ 2, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPhoto", N_("Premium Glossy Photo Paper"),
+ 7, 0, 0.85, 1.0, .999, 0.9, 1.04, 0.93, 0.9, 1.04, 0.93,
+ 0.9, 1.0, 0x80, 0x00, 0x02,
+ pgpp_hue_adjustment, pgpp_lum_adjustment, pgpp_sat_adjustment},
+ { "Luster", N_("Premium Luster Photo Paper"),
+ 7, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL},
+ { "GlossyPaper", N_("Photo Quality Glossy Paper"),
+ 0, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1.0, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
+ { "Ilford", N_("Ilford Heavy Paper"),
+ 2, 0, .85, .5, 1.35, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL },
+ { "ColorLife", N_("ColorLife Paper"),
+ 2, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
+ { "Other", N_("Other"),
+ 0, 0, 0.80, 0.125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
+ 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
+};
+
+static const paperlist_t sp950_paper_list =
+{
+ sizeof(sp950_papers) / sizeof(paper_t),
+ sp950_papers
+};
+
+/*
+ * Dot sizes are for:
+ *
+ * 0: 120/180 DPI micro
+ * 1: 120/180 DPI soft
+ * 2: 360 micro
+ * 3: 360 soft
+ * 4: 720x360 micro
+ * 5: 720x360 soft
+ * 6: 720 micro
+ * 7: 720 soft
+ * 8: 1440x720 micro
+ * 9: 1440x720 soft
+ * 10: 2880x720 micro
+ * 11: 2880x720 soft
+ * 12: 2880x1440
+ */
+
+/* 0 1 2 3 4 5 6 7 8 9 10 11 12 */
+
+static const escp2_dot_size_t g1_dotsizes =
+{ -2, -1, -2, -1, -1, -2, -2, -1, -1, -1, -1, -1, -1 };
+
+static const escp2_dot_size_t g2_dotsizes =
+{ -2, -1, -2, -1, -2, -2, -2, -2, -1, -1, -1, -1, -1 };
+
+static const escp2_dot_size_t sc600_dotsizes =
+{ 4, -1, 4, -1, -1, 3, 2, 2, -1, 1, -1, -1, -1 };
+
+static const escp2_dot_size_t g3_dotsizes =
+{ 3, -1, 3, -1, -1, 2, 1, 1, -1, 1, -1, -1, -1 };
+
+static const escp2_dot_size_t photo_dotsizes =
+{ 3, -1, 3, -1, -1, 2, -1, 1, -1, 4, -1, -1, -1 };
+
+static const escp2_dot_size_t sp5000_dotsizes =
+{ -1, 3, -1, 3, -1, 2, -1, 1, -1, 4, -1, -1, -1 };
+
+static const escp2_dot_size_t sc440_dotsizes =
+{ 3, -1, 3, -1, -1, 2, -1, 1, -1, -1, -1, -1, -1 };
+
+static const escp2_dot_size_t sc640_dotsizes =
+{ 3, -1, 3, -1, -1, 2, 1, 1, -1, 1, -1, -1, -1 };
+
+static const escp2_dot_size_t c6pl_dotsizes =
+{ -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x10, 0x10 };
+
+static const escp2_dot_size_t c3pl_dotsizes =
+{ -1, 0x11, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, 0x10, 0x10 };
+
+static const escp2_dot_size_t c4pl_dotsizes =
+{ -1, 0x12, -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x10, -1, 0x10, 0x10 };
+
+static const escp2_dot_size_t p3pl_dotsizes =
+{ -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x11, -1, 0x12, -1, -1, 0x12 };
+
+static const escp2_dot_size_t sc720_dotsizes =
+{ -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x11, -1, 0x11, -1, -1, -1 };
+
+static const escp2_dot_size_t sc660_dotsizes =
+{ 3, -1, 3, -1, 3, 0, -1, 0, -1, 0, -1, -1, -1 };
+
+static const escp2_dot_size_t sc480_dotsizes =
+{ -1, 0x13, -1, 0x13, -1, 0x13, -1, 0x10, -1, 0x10, -1, 0x10, 0x10 };
+
+static const escp2_dot_size_t sc670_dotsizes =
+{ -1, 0x12, -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x11, -1, -1, -1 };
+
+static const escp2_dot_size_t sp2000_dotsizes =
+{ -1, 0x11, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, -1, -1 };
+
+static const escp2_dot_size_t spro_dye_dotsizes =
+{ 3, -1, 3, -1, 3, -1, 1, -1, 1, -1, -1, -1, -1 };
+
+static const escp2_dot_size_t spro_pigment_dotsizes =
+{ 3, -1, 3, -1, 2, -1, 1, -1, 1, -1, -1, -1, -1 };
+
+static const escp2_dot_size_t spro10000_dotsizes =
+{ 4, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, -1, -1, -1 };
+
+static const escp2_dot_size_t c3pl_pigment_dotsizes =
+{ -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x11, -1, 0x12, -1, 0x12, 0x12 };
+
+static const escp2_dot_size_t c2pl_dotsizes =
+{ -1, 0x12, -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x13, -1, 0x13, 0x10 };
+
+static const escp2_dot_size_t c1_8pl_dotsizes =
+{ -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x11, -1, -1, 0x12 };
+
+static const escp2_dot_size_t c4pl_pigment_dotsizes =
+{ -1, 0x12, -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x11, -1, 0x10, 0x10 };
+
+static const escp2_dot_size_t spro_c4pl_pigment_dotsizes =
+{ 0x11, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, 5, 5, 5 };
+
+/*
+ * Bits are for:
+ *
+ * 0: 120/180 DPI micro
+ * 1: 120/180 DPI soft
+ * 2: 360 micro
+ * 3: 360 soft
+ * 4: 720x360 micro
+ * 5: 720x360 soft
+ * 6: 720 micro
+ * 7: 720 soft
+ * 8: 1440x720 micro
+ * 9: 1440x720 soft
+ * 10: 2880x720 micro
+ * 11: 2880x720 soft
+ * 12: 2880x1440
+ */
+
+/* 0 1 2 3 4 5 6 7 8 9 10 11 12 */
+
+static const escp2_bits_t variable_bits =
+{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
+
+static const escp2_bits_t stp950_bits =
+{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 };
+
+static const escp2_bits_t ultrachrome_bits =
+{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 };
+
+static const escp2_bits_t standard_bits =
+{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+
+static const escp2_bits_t c1_8_bits =
+{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 };
+
+
+/*
+ * Base resolutions are for:
+ *
+ * 0: 120/180 DPI micro
+ * 1: 120/180 DPI soft
+ * 2: 360 micro
+ * 3: 360 soft
+ * 4: 720x360 micro
+ * 5: 720x360 soft
+ * 6: 720 micro
+ * 7: 720 soft
+ * 8: 1440x720 micro
+ * 9: 1440x720 soft
+ * 10: 2880x720 micro
+ * 11: 2880x720 soft
+ * 12: 2880x1440
+ */
+
+/* 0 1 2 3 4 5 6 7 8 9 10 11 12 */
+
+static const escp2_base_resolutions_t standard_base_res =
+{ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720 };
+
+static const escp2_base_resolutions_t g3_base_res =
+{ 720, 720, 720, 720, 720, 720, 720, 720, 360, 360, 360, 360, 360 };
+
+static const escp2_base_resolutions_t variable_base_res =
+{ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360 };
+
+static const escp2_base_resolutions_t stp950_base_res =
+{ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 720, 720, 720 };
+
+static const escp2_base_resolutions_t ultrachrome_base_res =
+{ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 720, 720, 720 };
+
+static const escp2_base_resolutions_t c1_8_base_res =
+{ 360, 360, 360, 360, 720, 720, 720, 720, 720, 720, 1440, 1440, 1440 };
+
+static const escp2_base_resolutions_t stc900_base_res =
+{ 360, 360, 360, 360, 360, 360, 360, 360, 180, 180, 180, 180, 180 };
+
+static const escp2_base_resolutions_t pro_base_res =
+{ 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880 };
+
+/*
+ * Densities are for:
+ *
+ * 0: 120/180 DPI micro
+ * 1: 120/180 DPI soft
+ * 2: 360 micro
+ * 3: 360 soft
+ * 4: 720x360 micro
+ * 5: 720x360 soft
+ * 6: 720 micro
+ * 7: 720 soft
+ * 8: 1440x720 micro
+ * 9: 1440x720 soft
+ * 10: 2880x720 micro
+ * 11: 2880x720 soft
+ * 12: 2880x1440
+ */
+
+/* 0 1 2 3 4 5 6 7 8 9 10 11 12 */
+
+static const escp2_densities_t g1_densities =
+{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.568, 0.568, 0.0, 0.0, 0.0, 0.0, 0.0 };
+
+static const escp2_densities_t sc1500_densities =
+{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.631, 0.631, 0.0, 0.0, 0.0, 0.0, 0.0 };
+
+static const escp2_densities_t g3_densities =
+{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.775, 0.775, 0.388, 0.388, 0.194, 0.194, 0.097 };
+
+static const escp2_densities_t photo_densities =
+{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.775, 0.775, 0.55, 0.55, 0.275, 0.275, 0.138 };
+
+static const escp2_densities_t sc440_densities =
+{ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 0.900, 0.900, 0.45, 0.45, 0.45, 0.45, 0.113 };
+
+static const escp2_densities_t sc480_densities =
+{ 2.0, 2.0, 0.0, 1.4, 0.0, 0.7, 0.0, 0.710, 0.0, 0.710, 0.0, 0.546, 0.273 };
+
+static const escp2_densities_t sc980_densities =
+{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.646, 0.511, 0.49, 0.49, 0.637, 0.637, 0.455 };
+
+static const escp2_densities_t c6pl_densities =
+{ 2.0, 2.0, 1.3, 2.0, 0.65, 1.0, 0.646, 0.568, 0.323, 0.568, 0.568, 0.568, 0.284 };
+
+static const escp2_densities_t c3pl_densities =
+{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.646, 0.73, 0.7, 0.7, 0.91, 0.91, 0.455 };
+
+static const escp2_densities_t sc680_densities =
+{ 2.0, 2.0, 1.2, 1.2, 0.60, 0.60, 0.792, 0.792, 0.792, 0.792, 0.594, 0.594, 0.297 };
+
+static const escp2_densities_t c4pl_densities =
+{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.431, 0.568, 0.784, 0.784, 0.593, 0.593, 0.297 };
+
+static const escp2_densities_t p3pl_densities =
+{ 2.0, 2.0, 1.5, 1.5, 0.75, 0.75, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523 };
+
+static const escp2_densities_t sc660_densities =
+{ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 0.646, 0.646, 0.323, 0.323, 0.162, 0.162, 0.081 };
+
+static const escp2_densities_t sp2000_densities =
+{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.775, 0.852, 0.388, 0.438, 0.219, 0.219, 0.110 };
+
+static const escp2_densities_t spro_dye_densities =
+{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.775, 0.775, 0.388, 0.388, 0.275, 0.275, 0.138 };
+
+static const escp2_densities_t spro_pigment_densities =
+{ 2.0, 2.0, 1.5, 1.5, 0.78, 0.78, 0.775, 0.775, 0.388, 0.388, 0.194, 0.194, 0.097 };
+
+static const escp2_densities_t spro10000_densities =
+{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.431, 0.710, 0.216, 0.784, 0.392, 0.392, 0.196 };
+
+static const escp2_densities_t c3pl_pigment_densities =
+{ 2.0, 2.0, 1.3, 1.3, 0.69, 0.69, 0.511, 0.511, 0.765, 0.765, 0.585, 0.585, 0.293 };
+
+static const escp2_densities_t c2pl_densities =
+{ 2.0, 2.0, 1.15,1.15,0.57, 0.57, 0.650, 0.650, 0.650, 0.650, 0.650, 0.650, 0.650 };
+
+static const escp2_densities_t c4pl_pigment_densities =
+{ 2.0, 2.0, 1.35,1.35,0.68, 0.68, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.259 };
+
+
+static const res_t standard_reslist[] =
+{
+ { "360x90dpi", N_("360 x 90 DPI Fast Economy Draft"),
+ 360, 90, 360, 90, 0, 0, 1, 1, 0, 1, 1, RES_120_M },
+ { "360x90sw", N_("360 x 90 DPI Fast Economy Draft"),
+ 360, 90, 360, 90, 1, 0, 1, 1, 0, 1, 1, RES_120 },
+
+ { "360x120dpi", N_("360 x 120 DPI Economy Draft"),
+ 360, 120, 360, 120, 0, 0, 1, 1, 0, 3, 1, RES_120_M },
+ { "360x120sw", N_("360 x 120 DPI Economy Draft"),
+ 360, 120, 360, 120, 1, 0, 1, 1, 0, 3, 1, RES_120 },
+
+ { "180dpi", N_("180 DPI Economy Draft"),
+ 180, 180, 180, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+ { "180sw", N_("180 DPI Economy Draft"),
+ 180, 180, 180, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
+
+ { "360x240dpi", N_("360 x 240 DPI Draft"),
+ 360, 240, 360, 240, 0, 0, 1, 1, 0, 3, 2, RES_180_M },
+ { "360x240sw", N_("360 x 240 DPI Draft"),
+ 360, 240, 360, 240, 1, 0, 1, 1, 0, 3, 2, RES_180 },
+
+ { "360x180dpi", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+ { "360x180sw", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
+
+ { "360sw", N_("360 DPI"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 0, 1, 1, RES_360 },
+ { "360swuni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 1, 1, 1, RES_360 },
+ { "360mw", N_("360 DPI Interleave"),
+ 360, 360, 360, 360, 0, 1, 1, 1, 0, 1, 1, RES_360_M },
+ { "360mwuni", N_("360 DPI Interleave Unidirectional"),
+ 360, 360, 360, 360, 0, 1, 1, 1, 1, 1, 1, RES_360_M },
+ { "360dpi", N_("360 DPI"),
+ 360, 360, 360, 360, 0, 0, 1, 1, 0, 1, 1, RES_360_M },
+ { "360uni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 0, 0, 1, 1, 1, 1, 1, RES_360_M },
+
+ { "720x360sw", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
+ { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
+
+ { "720mw", N_("720 DPI Interleave"),
+ 720, 720, 720, 720, 0, 1, 1, 1, 0, 1, 1, RES_720_M },
+ { "720mwuni", N_("720 DPI Interleave Unidirectional"),
+ 720, 720, 720, 720, 0, 1, 1, 1, 1, 1, 1, RES_720_M },
+ { "720sw", N_("720 DPI"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
+ { "720swuni", N_("720 DPI Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
+ { "720hq", N_("720 DPI High Quality"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
+ { "720hquni", N_("720 DPI High Quality Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
+ { "720hq2", N_("720 DPI Highest Quality"),
+ 720, 720, 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
+
+ { "1440x720mw", N_("1440 x 720 DPI Interleave"),
+ 1440, 720, 1440, 720, 0, 1, 1, 1, 0, 1, 1, RES_1440_720_M },
+ { "1440x720mwuni", N_("1440 x 720 DPI Interleave Unidirectional"),
+ 1440, 720, 1440, 720, 0, 1, 1, 1, 1, 1, 1, RES_1440_720_M },
+ { "1440x720sw", N_("1440 x 720 DPI"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
+ { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
+ { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
+ 1440, 720, 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
+
+ {"2880x720sw", N_("2880 x 720 DPI"),
+ 2880, 720, 2880, 720, 1, 0, 1, 1, 0, 1, 1, RES_2880_720},
+ { "2880x720swuni", N_("2880 x 720 DPI Unidirectional"),
+ 2880, 720, 2880, 720, 1, 0, 1, 1, 1, 1, 1, RES_2880_720},
+
+ { "1440x1440sw", N_("1440 x 1440 DPI"),
+ 1440, 1440, 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_1440_1440},
+ { "1440x1440hq2", N_("1440 x 1440 DPI Highest Quality"),
+ 1440, 1440, 1440, 1440, 1, 0, 2, 1, 1, 1, 1, RES_1440_1440},
+
+ { "2880x1440sw", N_("2880 x 1440 DPI"),
+ 2880, 1440, 2880, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const res_t sp5000_reslist[] =
+{
+ { "180sw", N_("180 DPI Economy Draft"),
+ 180, 180, 180, 180, 1, 0, 1, 1, 0, 4, 1, RES_180 },
+
+ { "360x180sw", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 1, 0, 1, 1, 0, 4, 1, RES_180 },
+
+ { "360sw", N_("360 DPI"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 0, 2, 1, RES_360 },
+ { "360swuni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 1, 2, 1, RES_360 },
+
+ { "720x360sw", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
+ { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
+
+ { "720sw", N_("720 DPI"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
+ { "720swuni", N_("720 DPI Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
+ { "720hq", N_("720 DPI High Quality"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
+ { "720hquni", N_("720 DPI High Quality Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
+ { "720hq2", N_("720 DPI Highest Quality"),
+ 720, 720, 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
+
+ { "1440x720sw", N_("1440 x 720 DPI"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
+ { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
+ { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
+ 1440, 720, 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const res_t escp950_reslist[] =
+{
+ { "360x180dpi", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+ { "360x180sw", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
+
+ { "360sw", N_("360 DPI"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 0, 1, 1, RES_360 },
+ { "360swuni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 1, 1, 1, RES_360 },
+
+ { "720x360sw", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
+ { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
+
+ { "720sw", N_("720 DPI"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
+ { "720swuni", N_("720 DPI Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
+ { "720hq", N_("720 DPI High Quality"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
+ { "720hquni", N_("720 DPI High Quality Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
+ { "720hq2", N_("720 DPI Highest Quality"),
+ 720, 720, 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
+
+ { "1440x720sw", N_("1440 x 720 DPI"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
+ { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
+ { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
+ 1440, 720, 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
+
+ { "2880x720sw", N_("2880 x 720 DPI"),
+ 2880, 1440, 2880, 720, 1, 0, 1, 1, 0, 1, 1, RES_2880_1440},
+ { "2880x720swuni", N_("2880 x 720 DPI Unidirectional"),
+ 2880, 1440, 2880, 720, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "1440x1440sw", N_("1440 x 1440 DPI"),
+ 2880, 1440, 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+ { "1440x1440hq2", N_("1440 x 1440 DPI Highest Quality"),
+ 2880, 1440, 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "2880x1440sw", N_("2880 x 1440 DPI"),
+ 2880, 1440, 2880, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const res_t c1_8pl_reslist[] =
+{
+ { "720x360sw", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
+ { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
+
+ { "720sw", N_("720 DPI"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
+ { "720swuni", N_("720 DPI Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
+ { "720hq", N_("720 DPI High Quality"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
+ { "720hquni", N_("720 DPI High Quality Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
+ { "720hq2", N_("720 DPI Highest Quality"),
+ 720, 720, 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
+
+ { "1440x720sw", N_("1440 x 720 DPI"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
+ { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
+ { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
+ 1440, 720, 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
+
+ { "2880x1440sw", N_("2880 x 1440 DPI"),
+ 2880, 1440, 2880, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const res_t escp2200_reslist[] =
+{
+ { "360x180dpi", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+ { "360x180sw", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
+
+ { "360sw", N_("360 DPI"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 0, 1, 1, RES_360 },
+ { "360swuni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 1, 1, 1, RES_360 },
+
+ { "720x360sw", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
+ { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
+
+ { "720sw", N_("720 DPI"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
+ { "720swuni", N_("720 DPI Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
+ { "720hq", N_("720 DPI High Quality"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
+ { "720hquni", N_("720 DPI High Quality Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
+ { "720hq2", N_("720 DPI Highest Quality"),
+ 720, 720, 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
+
+ { "1440x720sw", N_("1440 x 720 DPI"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
+ { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
+ { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
+ 1440, 720, 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
+
+ { "2880x720sw", N_("2880 x 720 DPI"),
+ 2880, 720, 2880, 720, 1, 0, 1, 1, 0, 1, 1, RES_2880_720},
+ { "2880x720swuni", N_("2880 x 720 DPI Unidirectional"),
+ 2880, 720, 2880, 720, 1, 0, 1, 1, 1, 1, 1, RES_2880_720},
+
+ { "1440x1440sw", N_("1440 x 1440 DPI"),
+ 2880, 1440, 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+ { "1440x1440hq2", N_("1440 x 1440 DPI Highest Quality"),
+ 2880, 1440, 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "2880x1440sw", N_("2880 x 1440 DPI"),
+ 2880, 1440, 2880, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const res_t no_interleave_reslist[] =
+{
+ { "360x90dpi", N_("360 x 90 DPI Fast Economy Draft"),
+ 360, 90, 360, 90, 0, 0, 1, 1, 0, 1, 1, RES_120_M },
+ { "360x90sw", N_("360 x 90 DPI Fast Economy Draft"),
+ 360, 90, 360, 90, 1, 0, 1, 1, 0, 1, 1, RES_120 },
+
+ { "360x120dpi", N_("360 x 120 DPI Economy Draft"),
+ 360, 120, 360, 120, 0, 0, 1, 1, 0, 3, 1, RES_120_M },
+ { "360x120sw", N_("360 x 120 DPI Economy Draft"),
+ 360, 120, 360, 120, 1, 0, 1, 1, 0, 3, 1, RES_120 },
+
+ { "180dpi", N_("180 DPI Economy Draft"),
+ 180, 180, 180, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+ { "180sw", N_("180 DPI Economy Draft"),
+ 180, 180, 180, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
+
+ { "360x240dpi", N_("360 x 240 DPI Draft"),
+ 360, 240, 360, 240, 0, 0, 1, 1, 0, 3, 2, RES_180_M },
+ { "360x240sw", N_("360 x 240 DPI Draft"),
+ 360, 240, 360, 240, 1, 0, 1, 1, 0, 3, 2, RES_180 },
+
+ { "360x180dpi", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+ { "360x180sw", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
+
+ { "360sw", N_("360 DPI"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 0, 1, 1, RES_360 },
+ { "360swuni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 1, 0, 1, 1, 1, 1, 1, RES_360 },
+ { "360dpi", N_("360 DPI"),
+ 360, 360, 360, 360, 0, 0, 1, 1, 0, 1, 1, RES_360_M },
+ { "360uni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 0, 0, 1, 1, 1, 1, 1, RES_360_M },
+
+ { "720x360sw", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
+ { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
+
+ { "720sw", N_("720 DPI"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
+ { "720swuni", N_("720 DPI Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
+ { "720hq", N_("720 DPI High Quality"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
+ { "720hquni", N_("720 DPI High Quality Unidirectional"),
+ 720, 720, 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
+ { "720hq2", N_("720 DPI Highest Quality"),
+ 720, 720, 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
+
+ { "1440x720sw", N_("1440 x 720 DPI"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
+ { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
+ 1440, 720, 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
+ { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
+ 1440, 720, 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
+
+ { "2880x720sw", N_("2880 x 720 DPI"),
+ 2880, 720, 2880, 720, 1, 0, 1, 1, 0, 1, 1, RES_2880_720},
+ { "2880x720swuni", N_("2880 x 720 DPI Unidirectional"),
+ 2880, 720, 2880, 720, 1, 0, 1, 1, 1, 1, 1, RES_2880_720},
+
+ { "1440x1440sw", N_("1440 x 1440 DPI"),
+ 1440, 1440, 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_1440_1440},
+ { "1440x1440hq2", N_("1440 x 1440 DPI Highest Quality"),
+ 1440, 1440, 1440, 1440, 1, 0, 2, 1, 1, 1, 1, RES_1440_1440},
+
+ { "2880x1440sw", N_("2880 x 1440 DPI"),
+ 2880, 1440, 2880, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const res_t pro_reslist[] =
+{
+ { "360x90dpi", N_("360 x 90 DPI Fast Economy Draft"),
+ 360, 90, 360, 90, 0, 0, 1, 1, 0, 1, 1, RES_120_M },
+
+ { "360x120dpi", N_("360 x 120 DPI Economy Draft"),
+ 360, 120, 360, 120, 0, 0, 1, 1, 0, 3, 1, RES_120_M },
+
+ { "180dpi", N_("180 DPI Economy Draft"),
+ 180, 180, 180, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+
+ { "360x240dpi", N_("360 x 240 DPI Draft"),
+ 360, 240, 360, 240, 0, 0, 1, 1, 0, 3, 2, RES_180_M },
+
+ { "360x180dpi", N_("360 x 180 DPI Draft"),
+ 360, 180, 360, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
+
+ { "360mw", N_("360 DPI Interleave"),
+ 360, 360, 360, 360, 0, 1, 1, 1, 0, 1, 1, RES_360_M },
+ { "360mwuni", N_("360 DPI Interleave Unidirectional"),
+ 360, 360, 360, 360, 0, 1, 1, 1, 1, 1, 1, RES_360_M },
+ { "360dpi", N_("360 DPI"),
+ 360, 360, 360, 360, 0, 0, 1, 1, 0, 1, 1, RES_360_M },
+ { "360uni", N_("360 DPI Unidirectional"),
+ 360, 360, 360, 360, 0, 0, 1, 1, 1, 1, 1, RES_360_M },
+ { "360fol", N_("360 DPI Full Overlap"),
+ 360, 360, 360, 360, 0, 2, 1, 1, 0, 1, 1, RES_360_M },
+ { "360foluni", N_("360 DPI Full Overlap Unidirectional"),
+ 360, 360, 360, 360, 0, 2, 1, 1, 1, 1, 1, RES_360_M },
+ { "360fol2", N_("360 DPI FOL2"),
+ 360, 360, 360, 360, 0, 4, 1, 1, 0, 1, 1, RES_360_M },
+ { "360fol2uni", N_("360 DPI FOL2 Unidirectional"),
+ 360, 360, 360, 360, 0, 4, 1, 1, 1, 1, 1, RES_360_M },
+ { "360mw2", N_("360 DPI MW2"),
+ 360, 360, 360, 360, 0, 5, 1, 1, 0, 1, 1, RES_360_M },
+ { "360mw2uni", N_("360 DPI MW2 Unidirectional"),
+ 360, 360, 360, 360, 0, 5, 1, 1, 1, 1, 1, RES_360_M },
+
+ { "720x360dpi", N_("720 x 360 DPI"),
+ 720, 360, 720, 360, 0, 0, 1, 1, 0, 2, 1, RES_720_360_M },
+ { "720x360uni", N_("720 x 360 DPI Unidirectional"),
+ 720, 360, 720, 360, 0, 0, 1, 1, 1, 2, 1, RES_720_360_M },
+ { "720x360mw", N_("720 x 360 DPI Interleave"),
+ 720, 360, 720, 360, 0, 1, 1, 1, 0, 2, 1, RES_720_360_M },
+ { "720x360mwuni", N_("720 x 360 DPI Interleave Unidirectional"),
+ 720, 360, 720, 360, 0, 1, 1, 1, 1, 2, 1, RES_720_360_M },
+ { "720x360fol", N_("720 x 360 DPI FOL"),
+ 720, 360, 720, 360, 0, 2, 1, 1, 0, 2, 1, RES_720_360_M },
+ { "720x360foluni", N_("720 x 360 DPI FOL Unidirectional"),
+ 720, 360, 720, 360, 0, 2, 1, 1, 1, 2, 1, RES_720_360_M },
+ { "720x360fol2", N_("720 x 360 DPI FOL2"),
+ 720, 360, 720, 360, 0, 4, 1, 1, 0, 2, 1, RES_720_360_M },
+ { "720x360fol2uni", N_("720 x 360 DPI FOL2 Unidirectional"),
+ 720, 360, 720, 360, 0, 4, 1, 1, 1, 2, 1, RES_720_360_M },
+ { "720x360mw2", N_("720 x 360 DPI MW2"),
+ 720, 360, 720, 360, 0, 5, 1, 1, 0, 2, 1, RES_720_360_M },
+ { "720x360mw2uni", N_("720 x 360 DPI MW2 Unidirectional"),
+ 720, 360, 720, 360, 0, 5, 1, 1, 1, 2, 1, RES_720_360_M },
+
+ { "720mw", N_("720 DPI Interleave"),
+ 720, 720, 720, 720, 0, 1, 1, 1, 0, 1, 1, RES_720_M },
+ { "720mwuni", N_("720 DPI Interleave Unidirectional"),
+ 720, 720, 720, 720, 0, 1, 1, 1, 1, 1, 1, RES_720_M },
+ { "720fol", N_("720 DPI Full Overlap"),
+ 720, 720, 720, 720, 0, 2, 1, 1, 0, 1, 1, RES_720_M },
+ { "720foluni", N_("720 DPI Full Overlap Unidirectional"),
+ 720, 720, 720, 720, 0, 2, 1, 1, 1, 1, 1, RES_720_M },
+ { "720fourp", N_("720 DPI Four Pass"),
+ 720, 720, 720, 720, 0, 3, 1, 1, 0, 1, 1, RES_720_M },
+ { "720fourpuni", N_("720 DPI Four Pass Unidirectional"),
+ 720, 720, 720, 720, 0, 3, 1, 1, 1, 1, 1, RES_720_M },
+
+ { "1440x720mw", N_("1440 x 720 DPI Interleave"),
+ 1440, 720, 1440, 720, 0, 1, 1, 1, 0, 1, 1, RES_1440_720_M },
+ { "1440x720mwuni", N_("1440 x 720 DPI Interleave Unidirectional"),
+ 1440, 720, 1440, 720, 0, 1, 1, 1, 1, 1, 1, RES_1440_720_M },
+ { "1440x720fol", N_("1440 x 720 DPI FOL"),
+ 1440, 720, 1440, 720, 0, 2, 1, 1, 0, 1, 1, RES_1440_720_M },
+ { "1440x720foluni", N_("1440 x 720 DPI FOL Unidirectional"),
+ 1440, 720, 1440, 720, 0, 2, 1, 1, 1, 1, 1, RES_1440_720_M },
+ { "1440x720fourp", N_("1440 x 720 DPI Four Pass"),
+ 1440, 720, 1440, 720, 0, 3, 1, 1, 0, 1, 1, RES_1440_720_M },
+ { "1440x720fourpuni", N_("1440 x 720 DPI Four Pass Unidirectional"),
+ 1440, 720, 1440, 720, 0, 3, 1, 1, 1, 1, 1, RES_1440_720_M },
+
+ { "2880x720mw", N_("2880 x 720 DPI Interleave"),
+ 2880, 720, 2880, 720, 0, 1, 1, 1, 0, 1, 1, RES_2880_720_M },
+ { "2880x720mwuni", N_("2880 x 720 DPI Interleave Unidirectional"),
+ 2880, 720, 2880, 720, 0, 1, 1, 1, 1, 1, 1, RES_2880_720_M },
+ { "2880x720fol", N_("2880 x 720 DPI FOL"),
+ 2880, 720, 2880, 720, 0, 2, 1, 1, 0, 1, 1, RES_2880_720_M },
+ { "2880x720foluni", N_("2880 x 720 DPI FOL Unidirectional"),
+ 2880, 720, 2880, 720, 0, 2, 1, 1, 1, 1, 1, RES_2880_720_M },
+ { "2880x720fourp", N_("2880 x 720 DPI Four Pass"),
+ 2880, 720, 2880, 720, 0, 3, 1, 1, 0, 1, 1, RES_2880_720_M },
+ { "2880x720fourpuni", N_("2880 x 720 DPI Four Pass Unidirectional"),
+ 2880, 720, 2880, 720, 0, 3, 1, 1, 1, 1, 1, RES_2880_720_M },
+
+ { "1440x1440mw", N_("1440 x 1440 DPI Interleave"),
+ 1440, 1440, 1440, 1440, 0, 1, 1, 1, 0, 1, 1, RES_1440_1440_M },
+ { "1440x1440mwuni", N_("1440 x 1440 DPI Interleave Unidirectional"),
+ 1440, 1440, 1440, 1440, 0, 1, 1, 1, 1, 1, 1, RES_1440_1440_M },
+ { "1440x1440fol", N_("1440 x 1440 DPI FOL"),
+ 1440, 1440, 1440, 1440, 0, 2, 1, 1, 0, 1, 1, RES_1440_1440_M },
+ { "1440x1440foluni", N_("1440 x 1440 DPI FOL Unidirectional"),
+ 1440, 1440, 1440, 1440, 0, 2, 1, 1, 1, 1, 1, RES_1440_1440_M },
+ { "1440x1440fourp", N_("1440 x 1440 DPI Four Pass"),
+ 1440, 1440, 1440, 1440, 0, 3, 1, 1, 0, 1, 1, RES_1440_1440_M },
+ { "1440x1440fourpuni", N_("1440 x 1440 DPI Four Pass Unidirectional"),
+ 1440, 1440, 1440, 1440, 0, 3, 1, 1, 1, 1, 1, RES_1440_1440_M },
+
+ { "2880x1440mw", N_("2880 x 1440 DPI Interleave"),
+ 2880, 1440, 2880, 1440, 0, 1, 1, 1, 0, 1, 1, RES_2880_1440_M },
+ { "2880x1440mwuni", N_("2880 x 1440 DPI Interleave Unidirectional"),
+ 2880, 1440, 2880, 1440, 0, 1, 1, 1, 1, 1, 1, RES_2880_1440_M },
+ { "2880x1440fol", N_("2880 x 1440 DPI FOL"),
+ 2880, 1440, 2880, 1440, 0, 2, 1, 1, 0, 1, 1, RES_2880_1440_M },
+ { "2880x1440foluni", N_("2880 x 1440 DPI FOL Unidirectional"),
+ 2880, 1440, 2880, 1440, 0, 2, 1, 1, 1, 1, 1, RES_2880_1440_M },
+ { "2880x1440fourp", N_("2880 x 1440 DPI Four Pass"),
+ 2880, 1440, 2880, 1440, 0, 3, 1, 1, 0, 1, 1, RES_2880_1440_M },
+ { "2880x1440fourpuni", N_("2880 x 1440 DPI Four Pass Unidirectional"),
+ 2880, 1440, 2880, 1440, 0, 3, 1, 1, 1, 1, 1, RES_2880_1440_M },
+
+ { "", "", 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }
+};
+
+static const input_slot_t standard_roll_feed_input_slots[] =
+{
+ {
+ "Standard",
+ N_("Standard"),
+ 0,
+ 0,
+ { "IR\002\000\000\001EX\006\000\000\000\000\000\005\000", 16 },
+ { "IR\002\000\000\000", 6}
+ },
+ {
+ "Roll",
+ N_("Roll Feed"),
+ 1,
+ 0,
+ { "IR\002\000\000\001EX\006\000\000\000\000\000\005\001", 16 },
+ { "IR\002\000\000\002", 6 }
+ }
+};
+
+static const input_slot_list_t standard_roll_feed_input_slot_list =
+{
+ standard_roll_feed_input_slots,
+ sizeof(standard_roll_feed_input_slots) / sizeof(const input_slot_t)
+};
+
+static const input_slot_t cutter_roll_feed_input_slots[] =
+{
+ {
+ "Standard",
+ N_("Standard"),
+ 0,
+ 0,
+ { "IR\002\000\000\001EX\006\000\000\000\000\000\005\000", 16 },
+ { "IR\002\000\000\000", 6}
+ },
+ {
+ "RollCutPage",
+ N_("Roll Feed (cut each page)"),
+ 1,
+ 1,
+ { "IR\002\000\000\001EX\006\000\000\000\000\000\005\001", 16 },
+ { "IR\002\000\000\002", 6 }
+ },
+ {
+ "RollCutNone",
+ N_("Roll Feed (do not cut)"),
+ 1,
+ 0,
+ { "IR\002\000\000\001EX\006\000\000\000\000\000\005\001", 16 },
+ { "IR\002\000\000\002", 6 }
+ }
+};
+
+static const input_slot_list_t cutter_roll_feed_input_slot_list =
+{
+ cutter_roll_feed_input_slots,
+ sizeof(cutter_roll_feed_input_slots) / sizeof(const input_slot_t)
+};
+
+static const input_slot_t pro_roll_feed_input_slots[] =
+{
+ {
+ "Standard",
+ N_("Standard"),
+ 0,
+ 0,
+ { "PP\003\000\000\002\000", 7 },
+ { "", 0 }
+ },
+ {
+ "Roll",
+ N_("Roll Feed"),
+ 1,
+ 0,
+ { "PP\003\000\000\003\000", 7 },
+ { "", 0 }
+ }
+};
+
+static const input_slot_list_t pro_roll_feed_input_slot_list =
+{
+ pro_roll_feed_input_slots,
+ sizeof(pro_roll_feed_input_slots) / sizeof(const input_slot_t)
+};
+
+static const input_slot_t sp5000_input_slots[] =
+{
+ {
+ "CutSheet1",
+ N_("Cut Sheet Bin 1"),
+ 0,
+ 0,
+ { "PP\003\000\000\001\001", 7 },
+ { "", 0 }
+ },
+ {
+ "CutSheet2",
+ N_("Cut Sheet Bin 2"),
+ 0,
+ 0,
+ { "PP\003\000\000\002\001", 7 },
+ { "", 0 }
+ },
+ {
+ "CutSheetAuto",
+ N_("Cut Sheet Autoselect"),
+ 0,
+ 0,
+ { "PP\003\000\000\001\377", 7 },
+ { "", 0 }
+ },
+ {
+ "ManualSelect",
+ N_("Manual Selection"),
+ 0,
+ 0,
+ { "PP\003\000\000\002\001", 7 },
+ { "", 0 }
+ }
+};
+
+static const input_slot_list_t sp5000_input_slot_list =
+{
+ sp5000_input_slots,
+ sizeof(sp5000_input_slots) / sizeof(const input_slot_t)
+};
+
+static const input_slot_list_t default_input_slot_list =
+{
+ NULL,
+ 0,
+};
+
+static const init_sequence_t new_init_sequence =
+{
+ "\0\0\0\033\001@EJL 1284.4\n@EJL \n\033@", 29
+};
+
+static const init_sequence_t je_deinit_sequence =
+{
+ "JE\001\000\000", 5
+};
+
+#define INCH(x) (72 * x)
+
+const escp2_stp_printer_t stp_escp2_model_capabilities[] =
+{
+ /* FIRST GENERATION PRINTERS */
+ /* 0: Stylus Color */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 1, 4, 15, 1, 4, 15, 1, 4,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ g1_dotsizes, g1_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 1: Stylus Color 400/500 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ g2_dotsizes, g1_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 2: Stylus Color 1500 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17), INCH(44), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ g1_dotsizes, sc1500_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &cmy_inklist,
+ standard_bits, standard_base_res, &standard_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 3: Stylus Color 600 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 8, 9, 0, 30, 8, 9, 0, 30, 8, 9, 0, 0, 8, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ sc600_dotsizes, g3_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, g3_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 4: Stylus Color 800 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 64, 1, 2, 64, 1, 2, 64, 1, 2,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 8, 9, 9, 40, 8, 9, 9, 40, 8, 9, 0, 0, 8, 9, 0, 0,
+ 0, 1, 4, 0, 0, 0, 0,
+ g3_dotsizes, g3_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, g3_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 5: Stylus Color 850 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 64, 1, 2, 64, 1, 2, 64, 1, 2,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 4, 0, 0, 0, 0,
+ g3_dotsizes, g3_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, g3_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 6: Stylus Color 1520 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 64, 1, 2, 64, 1, 2, 64, 1, 2,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17), INCH(44), INCH(2), INCH(4),
+ 8, 9, 9, 40, 8, 9, 9, 40, 8, 9, 0, 0, 8, 9, 0, 0,
+ 0, 1, 4, 0, 0, 0, 0,
+ g3_dotsizes, g3_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, g3_base_res, &standard_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+
+ /* SECOND GENERATION PRINTERS */
+ /* 7: Stylus Photo 700 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 30, 9, 9, 0, 30, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ photo_dotsizes, photo_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ standard_bits, g3_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 8: Stylus Photo EX */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(118 / 10), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 30, 9, 9, 0, 30, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ photo_dotsizes, photo_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ standard_bits, g3_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 9: Stylus Photo */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 30, 9, 9, 0, 30, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ photo_dotsizes, photo_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ standard_bits, g3_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+
+ /* THIRD GENERATION PRINTERS */
+ /* 10: Stylus Color 440/460 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 21, 1, 4, 21, 1, 4, 21, 1, 4,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ sc440_dotsizes, sc440_densities, &simple_inks,
+ &standard_paper_list, no_interleave_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 11: Stylus Color 640 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ sc640_dotsizes, sc440_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 12: Stylus Color 740/Stylus Scan 2000/Stylus Scan 2500 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c6pl_dotsizes, c6pl_densities, &variable_6pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 13: Stylus Color 900 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 96, 1, 2, 192, 1, 1, 192, 1, 1,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c3pl_dotsizes, c3pl_densities, &variable_3pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, stc900_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 14: Stylus Photo 750 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c6pl_dotsizes, c6pl_densities, &variable_6pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 15: Stylus Photo 1200 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c6pl_dotsizes, c6pl_densities, &variable_6pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 16: Stylus Color 860 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 17: Stylus Color 1160 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 18: Stylus Color 660 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 9, 9, 9, 9, 9, 26, 9, 9, 9, 0, 9, 9, 9, 0,
+ 0, 1, 0, 0, 0, 0, 8,
+ sc660_dotsizes,sc660_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 19: Stylus Color 760 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 20: Stylus Photo 720 (Australia) */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ sc720_dotsizes, c6pl_densities, &variable_6pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 21: Stylus Color 480 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 15, 3, 48, 48, 3, 48, 48, 3,
+ 360, 720, 720, 14400, 360, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -99, 0, 0,
+ sc480_dotsizes, sc480_densities, &variable_x80_6pl_inks,
+ &standard_paper_list, standard_reslist, &x80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 22: Stylus Photo 870/875 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 97, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 23: Stylus Photo 1270 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 97, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 24: Stylus Color 3000 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 64, 1, 2, 64, 1, 2, 64, 1, 2,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17), INCH(44), INCH(2), INCH(4),
+ 8, 9, 9, 40, 8, 9, 9, 40, 8, 9, 0, 0, 8, 9, 0, 0,
+ 0, 1, 4, 0, 0, 0, 0,
+ g3_dotsizes, g3_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, g3_base_res, &standard_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 25: Stylus Color 670 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 64, 1, 2, 64, 1, 2,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ sc670_dotsizes, c6pl_densities, &variable_6pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 26: Stylus Photo 2000P */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ sp2000_dotsizes, sp2000_densities, &variable_pigment_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 27: Stylus Pro 5000 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 64, 1, 2, 64, 1, 2, 64, 1, 2,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 30, 9, 9, 0, 30, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 4,
+ sp5000_dotsizes, photo_densities, &simple_inks,
+ &standard_paper_list, sp5000_reslist, &photo_inklist,
+ standard_bits, g3_base_res, &sp5000_input_slot_list,
+ NULL, NULL
+ },
+ /* 28: Stylus Pro 7000 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
+ INCH(24), INCH(1200), INCH(7), INCH(7),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_dye_dotsizes, spro_dye_densities, &simple_inks,
+ &standard_paper_list, pro_reslist, &photo_inklist,
+ standard_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 29: Stylus Pro 7500 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_YES |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
+ INCH(24), INCH(1200), INCH(7), INCH(7),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_pigment_dotsizes, spro_pigment_densities, &simple_inks,
+ &standard_paper_list, pro_reslist, &photo_inklist,
+ standard_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 30: Stylus Pro 9000 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
+ INCH(44), INCH(1200), INCH(7), INCH(7),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_dye_dotsizes, spro_dye_densities, &simple_inks,
+ &standard_paper_list, pro_reslist, &photo_inklist,
+ standard_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 31: Stylus Pro 9500 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_YES |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
+ INCH(44), INCH(1200), INCH(7), INCH(7),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_pigment_dotsizes, spro_pigment_densities, &simple_inks,
+ &standard_paper_list, pro_reslist, &photo_inklist,
+ standard_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 32: Stylus Color 777/680 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c4pl_dotsizes, sc680_densities, &variable_680_4pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 33: Stylus Color 880/83/C60 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 34: Stylus Color 980 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 96, 1, 2, 192, 1, 1, 192, 1, 1,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 192, 1, 0, 0, 0, 0, 0,
+ c3pl_dotsizes, sc980_densities, &variable_3pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 35: Stylus Photo 780/790/810/820 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 55, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &sp780_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 36: Stylus Photo 785/890/895/915 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 55, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 37: Stylus Photo 1280/1290 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(13), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 55, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 38: Stylus Color 580 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 15, 3, 48, 48, 3, 48, 48, 3,
+ 360, 720, 720, 14400, 360, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -99, 0, 0,
+ sc480_dotsizes, sc480_densities, &variable_x80_6pl_inks,
+ &standard_paper_list, standard_reslist, &x80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 39: Stylus Color Pro XL */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 16, 1, 4, 16, 1, 4, 16, 1, 4,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(13), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ g1_dotsizes, g1_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 40: Stylus Pro 5500 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_YES |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_pigment_dotsizes, spro_pigment_densities, &simple_inks,
+ &standard_paper_list, pro_reslist, &photo_inklist,
+ standard_bits, pro_base_res, &sp5000_input_slot_list,
+ NULL, NULL
+ },
+ /* 41: Stylus Pro 10000 */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_YES |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
+ INCH(44), INCH(1200), INCH(7), INCH(7),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro10000_dotsizes, spro10000_densities, &spro10000_inks,
+ &standard_paper_list, pro_reslist, &photo_inklist,
+ variable_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ NULL, NULL
+ },
+ /* 42: Stylus C20SX/C20UX */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 15, 3, 48, 48, 3, 48, 48, 3,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -99, 0, 0,
+ sc480_dotsizes, sc480_densities, &variable_x80_6pl_inks,
+ &standard_paper_list, standard_reslist, &x80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 43: Stylus C40SX/C40UX/C41SX/C41UX/C42SX/C42UX */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 15, 3, 48, 48, 3, 48, 48, 3,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -99, 0, 0,
+ sc480_dotsizes, sc480_densities, &variable_x80_6pl_inks,
+ &standard_paper_list, standard_reslist, &x80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 44: Stylus C70/C80 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 60, 60, 2, 180, 180, 2, 180, 180, 2,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -240, 0, 0,
+ c3pl_pigment_dotsizes, c3pl_pigment_densities, &variable_3pl_pigment_inks,
+ &c80_paper_list, standard_reslist, &c80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 45: Stylus Color Pro */
+ {
+ (MODEL_VARIABLE_NO | MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 16, 1, 4, 16, 1, 4, 16, 1, 4,
+ 360, 720, 720, 14400, -1, 720, 720, 90, 90,
+ INCH(17 / 2), INCH(44), INCH(2), INCH(4),
+ 9, 9, 9, 40, 9, 9, 9, 40, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ g1_dotsizes, g1_densities, &simple_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ standard_bits, standard_base_res, &default_input_slot_list,
+ NULL, NULL
+ },
+ /* 46: Stylus Photo 950/960 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_YES),
+ 96, 1, 2, 96, 1, 2, 24, 1, 1,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c2pl_dotsizes, c2pl_densities, &variable_2pl_inks,
+ &sp950_paper_list, escp950_reslist, &f360_photo_inklist,
+ stp950_bits, stp950_base_res, &cutter_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 47: Stylus Photo 2100/2200 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_YES),
+ 96, 1, 2, 96, 1, 2, 192, 1, 1,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(13), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c4pl_pigment_dotsizes, c4pl_pigment_densities, &variable_4pl_pigment_inks,
+ &standard_paper_list, escp2200_reslist, &f360_photo7_inklist,
+ ultrachrome_bits, ultrachrome_base_res, &cutter_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 48: Stylus Pro 7600 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_PRO | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_YES |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 2880, 2880, 14400, -1, 2880, 1440, 360, 180,
+ INCH(24), INCH(1200), INCH(7), INCH(7),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_c4pl_pigment_dotsizes, c4pl_pigment_densities, &variable_4pl_pigment_inks,
+ &standard_paper_list, pro_reslist, &photo7_inklist,
+ ultrachrome_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 49: Stylus Pro 9600 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_PRO | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_YES |
+ MODEL_FAST_360_NO),
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 360, 2880, 2880, 14400, -1, 2880, 1440, 360, 180,
+ INCH(44), INCH(1200), INCH(7), INCH(7),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ spro_c4pl_pigment_dotsizes, c4pl_pigment_densities, &variable_4pl_pigment_inks,
+ &standard_paper_list, pro_reslist, &photo7_inklist,
+ ultrachrome_bits, pro_base_res, &pro_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 50: Stylus Photo 825/830 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 1440, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &sp780_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 51: Stylus Photo 925 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 1440, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &cutter_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 52: Stylus Color C62 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 144, 1, 1, 144, 1, 1,
+ 360, 720, 720, 14400, -1, 2880, 1440, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &standard_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 53: Japanese PM-950C */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_YES),
+ 96, 1, 2, 96, 1, 2, 96, 1, 2,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c2pl_dotsizes, c2pl_densities, &variable_2pl_inks,
+ &sp950_paper_list, escp950_reslist, &f360_photo7_japan_inklist,
+ stp950_bits, stp950_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 54: Stylus Photo EX3 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 32, 1, 4, 32, 1, 4, 32, 1, 4,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(13), INCH(44), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 0, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, 0, 0, 0,
+ sc720_dotsizes, c6pl_densities, &variable_6pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 55: Stylus C82/CX-5200 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 59, 60, 2, 180, 180, 2, 180, 180, 2,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -240, 0, 0,
+ c3pl_pigment_dotsizes, c3pl_pigment_densities, &variable_3pl_pigment_inks,
+ &c80_paper_list, standard_reslist, &c80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 56: Stylus C50 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 15, 3, 48, 48, 3, 48, 48, 3,
+ 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -99, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &x80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 57: Japanese PM-970C */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_YES),
+ 180, 180, 2, 360, 360, 1, 360, 360, 1,
+ 360, 720, 720, 14400, -1, 2880, 1440, 720, 360,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c1_8pl_dotsizes, c2pl_densities, &variable_2pl_inks,
+ &sp950_paper_list, c1_8pl_reslist, &f360_photo7_japan_inklist,
+ c1_8_bits, c1_8_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 58: Japanese PM-930C */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 90, 90, 2, 90, 90, 2, 90, 90, 2,
+ 360, 720, 720, 14400, -1, 2880, 1440, 720, 360,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 190, 0, 0, 0,
+ c1_8pl_dotsizes, c2pl_densities, &variable_2pl_inks,
+ &sp950_paper_list, c1_8pl_reslist, &photo_inklist,
+ c1_8_bits, c1_8_base_res, &standard_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 59: Stylus C43SX/C43UX/C44SX/C44UX (WRONG -- Really entry 43!) */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 15, 15, 3, 48, 48, 3, 48, 48, 3,
+ 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 9, 9, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 9, 0, 0,
+ 0, 1, 0, 0, -99, 0, 0,
+ sc480_dotsizes, sc480_densities, &variable_x80_6pl_inks,
+ &standard_paper_list, standard_reslist, &x80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 60: Stylus C83/C84 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 59, 60, 2, 180, 180, 2, 180, 180, 2,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 125, -240, 0, 0,
+ c3pl_pigment_dotsizes, c3pl_pigment_densities, &variable_3pl_pigment_inks,
+ &c80_paper_list, standard_reslist, &c80_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 61: Stylus C63/C64 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 29, 30, 3, 90, 90, 3, 90, 90, 3,
+ 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 125, -180, 0, 0,
+ c3pl_pigment_dotsizes, c3pl_pigment_densities, &variable_3pl_pigment_inks,
+ &c80_paper_list, standard_reslist, &c64_inklist,
+ variable_bits, variable_base_res, &default_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 62: Stylus Photo 900 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 48, 1, 3, 48, 1, 3, 48, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 1440, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 125, 0, 0, 0,
+ c4pl_dotsizes, c4pl_densities, &variable_4pl_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &cutter_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+ /* 63: Stylus Photo R300 */
+ {
+ (MODEL_VARIABLE_YES | MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES |
+ MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_VACUUM_NO |
+ MODEL_FAST_360_NO),
+ 90, 1, 3, 90, 1, 3, 90, 1, 3,
+ 360, 720, 720, 14400, -1, 2880, 1440, 90, 90,
+ INCH(17 / 2), INCH(1200), INCH(2), INCH(4),
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 0, 125, 0, 0, 0,
+ p3pl_dotsizes, p3pl_densities, &variable_3pl_pmg_inks,
+ &standard_paper_list, standard_reslist, &photo_inklist,
+ variable_bits, variable_base_res, &cutter_roll_feed_input_slot_list,
+ &new_init_sequence, &je_deinit_sequence
+ },
+};
diff --git a/src/main/print-escp2.c b/src/main/print-escp2.c
index 324768d..4818a23 100644
--- a/src/main/print-escp2.c
+++ b/src/main/print-escp2.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-escp2.c,v 1.147 2001/11/17 14:12:56 rlk Exp $"
+ * "$Id: print-escp2.c,v 1.147.2.24 2003/12/02 01:51:00 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -33,6 +33,8 @@
#include "gimp-print-internal.h"
#include <gimp-print/gimp-print-intl-internal.h>
#include <string.h>
+#include <stdio.h>
+#include "print-escp2.h"
#ifdef __GNUC__
#define inline __inline__
@@ -50,100 +52,14 @@
#define PACKFUNC stp_pack_tiff
#endif
+#define OP_JOB_START 1
+#define OP_JOB_PRINT 2
+#define OP_JOB_END 4
+
static void flush_pass(stp_softweave_t *sw, int passno, int model, int width,
int hoffset, int ydpi, int xdpi, int physical_xdpi,
int vertical_subpass);
-/*
- * Printer capabilities.
- *
- * Various classes of printer capabilities are represented by bitmasks.
- */
-
-typedef unsigned long model_cap_t;
-typedef unsigned long model_featureset_t;
-
-
-/*
- * For each printer, we can select from a variety of dot sizes.
- * For single dot size printers, the available sizes are usually 0,
- * which is the "default", and some subset of 1-4. For simple variable
- * dot size printers (with only one kind of variable dot size), the
- * variable dot size is specified as 0x10. For newer printers, there
- * is a choice of variable dot sizes available, 0x10, 0x11, and 0x12 in
- * order of increasing size.
- *
- * Normally, we want to specify the smallest dot size that lets us achieve
- * a density of less than .8 or thereabouts (above that we start to get
- * some dither artifacts). This needs to be tested for each printer and
- * resolution.
- *
- * An entry of -1 in a slot means that this resolution is not available.
- */
-
-typedef int escp2_dot_size_t[13];
-
-/*
- * Specify the base density for each available resolution.
- * This obviously depends upon the dot size.
- */
-
-typedef double escp2_densities_t[13];
-
-/*
- * Definition of the multi-level inks available to a given printer.
- * Each printer may use a different kind of ink droplet for variable
- * and single drop size for each supported horizontal resolution and
- * type of ink (4 or 6 color).
- *
- * Recall that 6 color ink is treated as simply another kind of
- * multi-level ink, but the driver offers the user a choice of 4 and
- * 6 color ink, so we need to define appropriate inksets for both
- * kinds of ink.
- *
- * Stuff like the MIS 4 and 6 "color" monochrome inks doesn't fit into
- * this model very nicely, so we'll either have to special case it
- * or find some way of handling it in here.
- */
-
-typedef struct escp2_variable_ink
-{
- const stp_simple_dither_range_t *range;
- int count;
- double density;
-} escp2_variable_ink_t;
-
-typedef const escp2_variable_ink_t *escp2_variable_inkset_t[NCOLORS];
-
-#define INKTYPE_SINGLE 0
-#define INKTYPE_VARIABLE 1
-#define INKTYPE_N 2
-
-#define INKSET_4 0
-#define INKSET_6 1
-#define INKSET_7 2
-#define INKSET_N 3
-
-#define RES_120_M 0
-#define RES_120 1
-#define RES_180_M 2
-#define RES_180 3
-#define RES_360_M 4
-#define RES_360 5
-#define RES_720_360_M 6
-#define RES_720_360 7
-#define RES_720_M 8
-#define RES_720 9
-#define RES_1440_720_M 10
-#define RES_1440_720 11
-#define RES_1440_1440_M 12
-#define RES_1440_1440 13
-#define RES_2880_720_M 14
-#define RES_2880_720 15
-#define RES_2880_1440_M 16
-#define RES_2880_1440 17
-#define RES_N 18
-
static const int dotidmap[] =
{ 0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 10, 11, 12, 12 };
@@ -155,2862 +71,43 @@ resid2dotid(int resid)
return dotidmap[resid];
}
-static const int densidmap[] =
-{ 0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 10, 11, 12, 12 };
-
-static int
-resid2densid(int resid)
-{
- if (resid < 0 || resid >= RES_N)
- return -1;
- return densidmap[resid];
-}
-
-static int
-bits2inktype(int bits)
-{
- if (bits == 1)
- return INKTYPE_SINGLE;
- else
- return INKTYPE_VARIABLE;
-}
-
-static int
-colors2inkset(int colors)
-{
- switch (colors)
- {
- case 1:
- case 2:
- case 3:
- case 4:
- return INKSET_4;
- case 5:
- case 6:
- return INKSET_6;
- case 7:
- return INKSET_7;
- default:
- return -1;
- }
-}
-
-/*
- * Mapping between color and linear index. The colors are
- * black, magenta, cyan, yellow, light magenta, light cyan
- */
-
-static const int color_indices[16] = { 0, 1, 2, -1,
- 3, -1, -1, -1,
- -1, 4, 5, -1,
- 6, -1, -1, -1 };
-static const int colors[7] = { 0, 1, 2, 4, 1, 2, 4};
-static const int densities[7] = { 0, 0, 0, 0, 1, 1, 1 };
-
-static inline int
-get_color_by_params(int plane, int density)
-{
- if (plane > 4 || plane < 0 || density > 1 || density < 0)
- return -1;
- return color_indices[density * 8 + plane];
-}
-
-typedef const escp2_variable_inkset_t *escp2_variable_inklist_t[INKTYPE_N][INKSET_N][RES_N / 2];
-
-
-static const stp_simple_dither_range_t photo_cyan_dither_ranges[] =
-{
- { 0.27, 0x1, 0, 1 },
- { 1.0, 0x1, 1, 1 }
-};
-
-static const escp2_variable_ink_t photo_cyan_ink =
-{
- photo_cyan_dither_ranges,
- sizeof(photo_cyan_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1
-};
-
-static const stp_simple_dither_range_t photo_magenta_dither_ranges[] =
-{
- { 0.35, 0x1, 0, 1 },
- { 1.0, 0x1, 1, 1 }
-};
-
-static const escp2_variable_ink_t photo_magenta_ink =
-{
- photo_magenta_dither_ranges,
- sizeof(photo_magenta_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1
-};
-
-
-static const stp_simple_dither_range_t photo_6pl_dither_ranges[] =
-{
- { 0.065, 0x1, 0, 1 },
- { 0.13, 0x2, 0, 2 },
-/* { 0.26, 0x3, 0, 3 }, */
- { 0.25, 0x1, 1, 1 },
- { 0.5, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t photo_6pl_ink =
-{
- photo_6pl_dither_ranges,
- sizeof(photo_6pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t photo_6pl_1440_dither_ranges[] =
-{
- { 0.13, 0x1, 0, 1 },
- { 0.26, 0x2, 0, 2 },
-/* { 0.52, 0x3, 0, 3 }, */
- { 0.5, 0x1, 1, 1 },
- { 1.0, 0x2, 1, 2 },
-};
-
-static const escp2_variable_ink_t photo_6pl_1440_ink =
-{
- photo_6pl_1440_dither_ranges,
- sizeof(photo_6pl_1440_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t photo_pigment_dither_ranges[] =
-{ /* MRS: Not calibrated! */
- { 0.15, 0x1, 0, 1 },
- { 0.227, 0x2, 0, 2 },
- { 0.5, 0x1, 1, 1 },
- { 1.0, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t photo_pigment_ink =
-{
- photo_pigment_dither_ranges,
- sizeof(photo_pigment_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t photo_4pl_dither_ranges[] =
-{
- { 0.17, 0x1, 0, 1 },
- { 0.26, 0x2, 0, 2 },
- { 0.661, 0x1, 1, 1 },
- { 1.00, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t photo_4pl_ink =
-{
- photo_4pl_dither_ranges,
- sizeof(photo_4pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t spro10000_photo_dither_ranges[] =
-{
- { 0.17, 0x1, 0, 1 },
- { 0.26, 0x2, 0, 2 },
- { 0.661, 0x1, 1, 1 },
- { 1.00, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t spro10000_photo_ink =
-{
- spro10000_photo_dither_ranges,
- sizeof(spro10000_photo_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t spro10000_standard_dither_ranges[] =
-{
- { 0.661, 0x1, 1, 1 },
- { 1.00, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t spro10000_standard_ink =
-{
- spro10000_standard_dither_ranges,
- sizeof(spro10000_standard_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t photo_4pl_2880_dither_ranges[] =
-{
- { 0.35, 0x1, 0, 1 },
- { 1.00, 0x1, 1, 1 },
-};
-
-static const escp2_variable_ink_t photo_4pl_2880_ink =
-{
- photo_4pl_2880_dither_ranges,
- sizeof(photo_4pl_2880_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_6pl_dither_ranges[] =
-{
- { 0.25, 0x1, 1, 1 },
- { 0.5, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_6pl_ink =
-{
- standard_6pl_dither_ranges,
- sizeof(standard_6pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_x80_6pl_dither_ranges[] =
-{
- { 0.325, 0x1, 1, 1 },
- { 0.5, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_x80_6pl_ink =
-{
- standard_x80_6pl_dither_ranges,
- sizeof(standard_x80_6pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t standard_x80_multishot_dither_ranges[] =
-{
- { 0.163, 0x1, 1, 1 },
- { 0.5, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_x80_multishot_ink =
-{
- standard_x80_multishot_dither_ranges,
- sizeof(standard_x80_multishot_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t standard_x80_1440_6pl_dither_ranges[] =
-{
- { 0.65, 0x1, 1, 1 },
- { 1.0, 0x2, 1, 2 },
-};
-
-static const escp2_variable_ink_t standard_x80_1440_6pl_ink =
-{
- standard_x80_1440_6pl_dither_ranges,
- sizeof(standard_x80_1440_6pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static stp_simple_dither_range_t standard_980_6pl_dither_ranges[] =
-{
- { 0.40, 0x1, 1, 1 },
- { 0.675, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static escp2_variable_ink_t standard_980_6pl_ink =
-{
- standard_980_6pl_dither_ranges,
- sizeof(standard_6pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_6pl_1440_dither_ranges[] =
-{
- { 0.5, 0x1, 1, 1 },
- { 1.0, 0x2, 1, 2 },
-};
-
-static const escp2_variable_ink_t standard_6pl_1440_ink =
-{
- standard_6pl_1440_dither_ranges,
- sizeof(standard_6pl_1440_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_pigment_dither_ranges[] =
-{ /* MRS: Not calibrated! */
- { 0.55, 0x1, 1, 1 },
- { 1.0, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t standard_pigment_ink =
-{
- standard_pigment_dither_ranges,
- sizeof(standard_pigment_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_4pl_dither_ranges[] =
-{
- { 0.661, 0x1, 1, 1 },
- { 1.00, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t standard_4pl_ink =
-{
- standard_4pl_dither_ranges,
- sizeof(standard_4pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t standard_4pl_2880_dither_ranges[] =
-{
- { 1.00, 0x1, 1, 1 },
-};
-
-static const escp2_variable_ink_t standard_4pl_2880_ink =
-{
- standard_4pl_2880_dither_ranges,
- sizeof(standard_4pl_2880_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_3pl_dither_ranges[] =
-{
- { 0.25, 0x1, 1, 1 },
- { 0.61, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_3pl_ink =
-{
- standard_3pl_dither_ranges,
- sizeof(standard_3pl_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_3pl_1440_dither_ranges[] =
-{
- { 0.39, 0x1, 1, 1 },
- { 1.0, 0x2, 1, 2 }
-};
-
-static const escp2_variable_ink_t standard_3pl_1440_ink =
-{
- standard_3pl_1440_dither_ranges,
- sizeof(standard_3pl_1440_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_3pl_2880_dither_ranges[] =
-{
- { 1.0, 0x1, 1, 1 }
-};
-
-static const escp2_variable_ink_t standard_3pl_2880_ink =
-{
- standard_3pl_2880_dither_ranges,
- sizeof(standard_3pl_2880_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_economy_pigment_dither_ranges[] =
-{
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_economy_pigment_ink =
-{
- standard_economy_pigment_dither_ranges,
- sizeof(standard_economy_pigment_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t standard_multishot_pigment_dither_ranges[] =
-{
- { 0.410, 0x1, 1, 1 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_multishot_pigment_ink =
-{
- standard_multishot_pigment_dither_ranges,
- sizeof(standard_multishot_pigment_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static stp_simple_dither_range_t standard_6pl_pigment_dither_ranges[] =
-{
- { 0.300, 0x1, 1, 1 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static escp2_variable_ink_t standard_6pl_pigment_ink =
-{
- standard_6pl_pigment_dither_ranges,
- sizeof(standard_6pl_pigment_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-static const stp_simple_dither_range_t standard_3pl_pigment_dither_ranges[] =
-{
- { 0.650, 0x1, 1, 1 },
- { 1.000, 0x2, 1, 2 },
-};
-
-static const escp2_variable_ink_t standard_3pl_pigment_ink =
-{
- standard_3pl_pigment_dither_ranges,
- sizeof(standard_3pl_pigment_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_3pl_pigment_2880_dither_ranges[] =
-{
- { 1.0, 0x1, 1, 1 }
-};
-
-static const escp2_variable_ink_t standard_3pl_pigment_2880_ink =
-{
- standard_3pl_pigment_2880_dither_ranges,
- sizeof(standard_3pl_pigment_2880_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t photo_multishot_dither_ranges[] =
-{
- { 0.0728, 0x1, 0, 1 },
- { 0.151, 0x2, 0, 2 },
- { 0.26, 0x3, 0, 3 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t photo_multishot_ink =
-{
- photo_multishot_dither_ranges,
- sizeof(photo_multishot_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const stp_simple_dither_range_t standard_multishot_dither_ranges[] =
-{
- { 0.28, 0x1, 1, 1 },
- { 0.58, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
-};
-
-static const escp2_variable_ink_t standard_multishot_ink =
-{
- standard_multishot_dither_ranges,
- sizeof(standard_multishot_dither_ranges) / sizeof(stp_simple_dither_range_t),
- 1.0
-};
-
-
-static const escp2_variable_inkset_t standard_inks =
-{
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-static const escp2_variable_inkset_t photo_inks =
-{
- NULL,
- &photo_cyan_ink,
- &photo_magenta_ink,
- NULL
-};
-
-static const escp2_variable_inkset_t escp2_6pl_standard_inks =
-{
- &standard_6pl_ink,
- &standard_6pl_ink,
- &standard_6pl_ink,
- &standard_6pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_x80_multishot_standard_inks =
-{
- &standard_x80_multishot_ink,
- &standard_x80_multishot_ink,
- &standard_x80_multishot_ink,
- &standard_x80_multishot_ink
-};
-
-static const escp2_variable_inkset_t escp2_x80_6pl_standard_inks =
-{
- &standard_x80_6pl_ink,
- &standard_x80_6pl_ink,
- &standard_x80_6pl_ink,
- &standard_x80_6pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_x80_1440_6pl_standard_inks =
-{
- &standard_x80_1440_6pl_ink,
- &standard_x80_1440_6pl_ink,
- &standard_x80_1440_6pl_ink,
- &standard_x80_1440_6pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_6pl_standard_980_inks =
-{
- &standard_980_6pl_ink,
- &standard_980_6pl_ink,
- &standard_980_6pl_ink,
- &standard_980_6pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_6pl_photo_inks =
-{
- &standard_6pl_ink,
- &photo_6pl_ink,
- &photo_6pl_ink,
- &standard_6pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_6pl_1440_standard_inks =
-{
- &standard_6pl_1440_ink,
- &standard_6pl_1440_ink,
- &standard_6pl_1440_ink,
- &standard_6pl_1440_ink
-};
-
-static const escp2_variable_inkset_t escp2_6pl_1440_photo_inks =
-{
- &standard_6pl_1440_ink,
- &photo_6pl_1440_ink,
- &photo_6pl_1440_ink,
- &standard_6pl_1440_ink
-};
-
-static const escp2_variable_inkset_t escp2_pigment_standard_inks =
-{
- &standard_pigment_ink,
- &standard_pigment_ink,
- &standard_pigment_ink,
- &standard_pigment_ink
-};
-
-static const escp2_variable_inkset_t escp2_pigment_photo_inks =
-{
- &standard_pigment_ink,
- &photo_pigment_ink,
- &photo_pigment_ink,
- &standard_pigment_ink
-};
-
-static const escp2_variable_inkset_t escp2_4pl_standard_inks =
-{
- &standard_4pl_ink,
- &standard_4pl_ink,
- &standard_4pl_ink,
- &standard_4pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_4pl_photo_inks =
-{
- &standard_4pl_ink,
- &photo_4pl_ink,
- &photo_4pl_ink,
- &standard_4pl_ink
-};
-
-static const escp2_variable_inkset_t spro10000_standard_inks =
-{
- &spro10000_standard_ink,
- &spro10000_standard_ink,
- &spro10000_standard_ink,
- &spro10000_standard_ink
-};
-
-static const escp2_variable_inkset_t spro10000_photo_inks =
-{
- &spro10000_standard_ink,
- &spro10000_photo_ink,
- &spro10000_photo_ink,
- &spro10000_standard_ink
-};
-
-static const escp2_variable_inkset_t escp2_4pl_2880_standard_inks =
-{
- &standard_4pl_2880_ink,
- &standard_4pl_2880_ink,
- &standard_4pl_2880_ink,
- &standard_4pl_2880_ink
-};
-
-static const escp2_variable_inkset_t escp2_4pl_2880_photo_inks =
-{
- &standard_4pl_2880_ink,
- &photo_4pl_2880_ink,
- &photo_4pl_2880_ink,
- &standard_4pl_2880_ink
-};
-
-static const escp2_variable_inkset_t escp2_3pl_standard_inks =
-{
- &standard_3pl_ink,
- &standard_3pl_ink,
- &standard_3pl_ink,
- &standard_3pl_ink
-};
-
-static const escp2_variable_inkset_t escp2_3pl_1440_standard_inks =
-{
- &standard_3pl_1440_ink,
- &standard_3pl_1440_ink,
- &standard_3pl_1440_ink,
- &standard_3pl_1440_ink
-};
-
-static const escp2_variable_inkset_t escp2_3pl_2880_standard_inks =
-{
- &standard_3pl_2880_ink,
- &standard_3pl_2880_ink,
- &standard_3pl_2880_ink,
- &standard_3pl_2880_ink
-};
-
-static const escp2_variable_inkset_t escp2_multishot_standard_inks =
-{
- &standard_multishot_ink,
- &standard_multishot_ink,
- &standard_multishot_ink,
- &standard_multishot_ink
-};
-
-static const escp2_variable_inkset_t escp2_multishot_photo_inks =
-{
- &standard_multishot_ink,
- &photo_multishot_ink,
- &photo_multishot_ink,
- &standard_multishot_ink
-};
-
-static const escp2_variable_inkset_t escp2_economy_pigment_standard_inks =
-{
- &standard_economy_pigment_ink,
- &standard_economy_pigment_ink,
- &standard_economy_pigment_ink,
- &standard_economy_pigment_ink
-};
-
-static const escp2_variable_inkset_t escp2_multishot_pigment_standard_inks =
-{
- &standard_multishot_pigment_ink,
- &standard_multishot_pigment_ink,
- &standard_multishot_pigment_ink,
- &standard_multishot_pigment_ink
-};
-
-static const escp2_variable_inkset_t escp2_6pl_pigment_standard_inks =
-{
- &standard_6pl_pigment_ink,
- &standard_6pl_pigment_ink,
- &standard_6pl_pigment_ink,
- &standard_6pl_pigment_ink
-};
-
-static const escp2_variable_inkset_t escp2_3pl_pigment_standard_inks =
-{
- &standard_3pl_pigment_ink,
- &standard_3pl_pigment_ink,
- &standard_3pl_pigment_ink,
- &standard_3pl_pigment_ink
-};
-
-static const escp2_variable_inkset_t escp2_3pl_pigment_2880_standard_inks =
-{
- &standard_3pl_pigment_2880_ink,
- &standard_3pl_pigment_2880_ink,
- &standard_3pl_pigment_2880_ink,
- &standard_3pl_pigment_2880_ink
-};
-
-
-static const escp2_variable_inklist_t simple_4color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks
- },
- },
-};
-
-static const escp2_variable_inklist_t simple_6color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- },
- {
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_6pl_4color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- }
- },
- {
- {
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_1440_standard_inks,
- &escp2_6pl_1440_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_x80_6pl_4color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- }
- },
- {
- {
- &escp2_x80_multishot_standard_inks,
- &escp2_x80_multishot_standard_inks,
- &escp2_x80_multishot_standard_inks,
- &escp2_x80_multishot_standard_inks,
- &escp2_x80_6pl_standard_inks,
- &escp2_x80_1440_6pl_standard_inks,
- &escp2_x80_1440_6pl_standard_inks,
- &escp2_x80_1440_6pl_standard_inks,
- &escp2_x80_1440_6pl_standard_inks,
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_6pl_6color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks
- },
- {
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks
- }
- },
- {
- {
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_1440_standard_inks,
- &escp2_6pl_1440_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_6pl_standard_inks
- },
- {
- &escp2_6pl_photo_inks,
- &escp2_6pl_photo_inks,
- &escp2_6pl_photo_inks,
- &escp2_6pl_photo_inks,
- &escp2_6pl_photo_inks,
- &escp2_6pl_1440_photo_inks,
- &escp2_6pl_1440_photo_inks,
- &escp2_6pl_photo_inks,
- &escp2_6pl_photo_inks
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_pigment_6color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks
- },
- {
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks
- }
- },
- {
- {
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks,
- &escp2_pigment_standard_inks
- },
- {
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks,
- &escp2_pigment_photo_inks
- }
- }
-};
-
-static const escp2_variable_inklist_t spro10000_inks =
-{
- {
- {
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks
- },
- {
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks
- }
- },
- {
- {
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks,
- &spro10000_standard_inks
- },
- {
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks,
- &spro10000_photo_inks
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_3pl_4color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- }
- },
- {
- {
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_6pl_standard_980_inks,
- &escp2_6pl_standard_980_inks,
- &escp2_3pl_standard_inks,
- &escp2_3pl_1440_standard_inks,
- &escp2_3pl_1440_standard_inks,
- &escp2_3pl_2880_standard_inks,
- &escp2_3pl_2880_standard_inks,
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_3pl_pigment_4color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- }
- },
- {
- {
- &escp2_economy_pigment_standard_inks,
- &escp2_economy_pigment_standard_inks,
- &escp2_multishot_pigment_standard_inks,
- &escp2_multishot_pigment_standard_inks,
- &escp2_6pl_pigment_standard_inks,
- &escp2_3pl_pigment_standard_inks,
- &escp2_3pl_pigment_2880_standard_inks,
- &escp2_3pl_pigment_2880_standard_inks,
- &escp2_3pl_pigment_2880_standard_inks,
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_4pl_4color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- }
- },
- {
- {
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_4pl_standard_inks,
- &escp2_4pl_2880_standard_inks,
- &escp2_4pl_2880_standard_inks,
- &escp2_4pl_2880_standard_inks,
- }
- }
-};
-
-static const escp2_variable_inklist_t variable_4pl_6color_inks =
-{
- {
- {
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks,
- &standard_inks
- },
- {
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks,
- &photo_inks
- }
- },
- {
- {
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_multishot_standard_inks,
- &escp2_6pl_standard_inks,
- &escp2_4pl_standard_inks,
- &escp2_4pl_2880_standard_inks,
- &escp2_4pl_2880_standard_inks,
- &escp2_4pl_2880_standard_inks,
- },
- {
- &escp2_multishot_photo_inks,
- &escp2_multishot_photo_inks,
- &escp2_multishot_photo_inks,
- &escp2_multishot_photo_inks,
- &escp2_6pl_photo_inks,
- &escp2_4pl_photo_inks,
- &escp2_4pl_2880_photo_inks,
- &escp2_4pl_2880_photo_inks,
- &escp2_4pl_2880_photo_inks
- }
- }
-};
-
-static const double standard_sat_adjustment[49] =
-{
- 1.0, /* C */
- 1.1,
- 1.2,
- 1.3,
- 1.4,
- 1.5,
- 1.6,
- 1.7,
- 1.8, /* B */
- 1.9,
- 1.9,
- 1.9,
- 1.7,
- 1.5,
- 1.3,
- 1.1,
- 1.0, /* M */
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0, /* R */
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0, /* Y */
- 1.0,
- 1.0,
- 1.1,
- 1.2,
- 1.3,
- 1.4,
- 1.5,
- 1.5, /* G */
- 1.4,
- 1.3,
- 1.2,
- 1.1,
- 1.0,
- 1.0,
- 1.0,
- 1.0 /* C */
-};
-
-static const double standard_lum_adjustment[49] =
-{
- 0.50, /* C */
- 0.6,
- 0.7,
- 0.8,
- 0.9,
- 0.86,
- 0.82,
- 0.79,
- 0.78, /* B */
- 0.8,
- 0.83,
- 0.87,
- 0.9,
- 0.95,
- 1.05,
- 1.15,
- 1.3, /* M */
- 1.25,
- 1.2,
- 1.15,
- 1.12,
- 1.09,
- 1.06,
- 1.03,
- 1.0, /* R */
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0,
- 1.0, /* Y */
- 0.9,
- 0.8,
- 0.7,
- 0.65,
- 0.6,
- 0.55,
- 0.52,
- 0.48, /* G */
- 0.47,
- 0.47,
- 0.49,
- 0.49,
- 0.49,
- 0.52,
- 0.51,
- 0.50 /* C */
-};
-
-static const double standard_hue_adjustment[49] =
-{
- 0.00, /* C */
- 0.05,
- 0.04,
- 0.01,
- -0.03,
- -0.10,
- -0.18,
- -0.26,
- -0.35, /* B */
- -0.43,
- -0.40,
- -0.32,
- -0.25,
- -0.18,
- -0.10,
- -0.07,
- 0.00, /* M */
- -0.04,
- -0.09,
- -0.13,
- -0.18,
- -0.23,
- -0.27,
- -0.31,
- -0.35, /* R */
- -0.38,
- -0.30,
- -0.23,
- -0.15,
- -0.08,
- 0.00,
- -0.02,
- 0.00, /* Y */
- 0.08,
- 0.10,
- 0.08,
- 0.05,
- 0.03,
- -0.03,
- -0.12,
- -0.20, /* G */
- -0.17,
- -0.20,
- -0.17,
- -0.15,
- -0.12,
- -0.10,
- -0.08,
- 0.00, /* C */
-};
-
-static const double plain_paper_lum_adjustment[49] =
-{
- 1.2, /* C */
- 1.22,
- 1.28,
- 1.34,
- 1.39,
- 1.42,
- 1.45,
- 1.48,
- 1.5, /* B */
- 1.4,
- 1.3,
- 1.25,
- 1.2,
- 1.1,
- 1.05,
- 1.05,
- 1.05, /* M */
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05,
- 1.05, /* R */
- 1.05,
- 1.05,
- 1.1,
- 1.1,
- 1.1,
- 1.1,
- 1.1,
- 1.1, /* Y */
- 1.15,
- 1.3,
- 1.45,
- 1.6,
- 1.75,
- 1.9,
- 2.0,
- 2.1, /* G */
- 2.0,
- 1.8,
- 1.7,
- 1.6,
- 1.5,
- 1.4,
- 1.3,
- 1.2 /* C */
-};
-
-static const double pgpp_sat_adjustment[49] =
-{
- 1.00, /* C */
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* B */
- 1.00,
- 1.00,
- 1.03,
- 1.05,
- 1.07,
- 1.09,
- 1.11,
- 1.13, /* M */
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13, /* R */
- 1.10,
- 1.05,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* Y */
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* G */
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* C */
-};
-
-static const double pgpp_lum_adjustment[49] =
-{
- 1.00, /* C */
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* B */
- 1.00,
- 1.00,
- 1.03,
- 1.05,
- 1.07,
- 1.09,
- 1.11,
- 1.13, /* M */
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13,
- 1.13, /* R */
- 1.10,
- 1.05,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* Y */
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* G */
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00,
- 1.00, /* C */
-};
-
-static const double pgpp_hue_adjustment[49] =
-{
- 0.00, /* C */
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.01,
- 0.02,
- 0.03,
- 0.05, /* B */
- 0.05,
- 0.05,
- 0.04,
- 0.04,
- 0.03,
- 0.02,
- 0.01,
- 0.00, /* M */
- -.03,
- -.05,
- -.07,
- -.09,
- -.11,
- -.13,
- -.14,
- -.15, /* R */
- -.13,
- -.10,
- -.06,
- -.04,
- -.02,
- -.01,
- 0.00,
- 0.00, /* Y */
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00, /* G */
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00,
- 0.00, /* C */
-};
-
-typedef struct
-{
- const char *name;
- const char *text;
- int paper_feed_sequence;
- int platen_gap;
- double base_density;
- double k_lower_scale;
- double k_upper;
- double cyan;
- double magenta;
- double yellow;
- double p_cyan;
- double p_magenta;
- double p_yellow;
- double saturation;
- double gamma;
- int feed_adjustment;
- int vacuum_intensity;
- int paper_thickness;
- const double *hue_adjustment;
- const double *lum_adjustment;
- const double *sat_adjustment;
-} paper_t;
-
-typedef struct
-{
- int paper_count;
- const paper_t *papers;
-} paperlist_t;
-
-static const paper_t standard_papers[] =
-{
- { "Plain", N_("Plain Paper"),
- 1, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "PlainFast", N_("Plain Paper Fast Load"),
- 5, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "Postcard", N_("Postcard"),
- 2, 0, 0.83, .2, .6, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
- 1, 1.0, 0x00, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
- { "GlossyFilm", N_("Glossy Film"),
- 3, 0, 1.00 ,1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6d, 0x00, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "Transparency", N_("Transparencies"),
- 3, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0, 0x6d, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
- { "Envelope", N_("Envelopes"),
- 4, 0, 0.80, .125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "BackFilm", N_("Back Light Film"),
- 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6d, 0x00, 0x01, NULL, NULL, NULL},
- { "Matte", N_("Matte Paper"),
- 7, 0, 0.85, 1.0, .999, 1.05, .9, 1.05, .9, 1.0, 1.1,
- 1, 1.0, 0x00, 0x00, 0x02, NULL, NULL, NULL},
- { "Inkjet", N_("Inkjet Paper"),
- 7, 0, 0.85, .25, .6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "Coated", N_("Photo Quality Inkjet Paper"),
- 7, 0, 1.00, 1.0, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
- { "Photo", N_("Photo Paper"),
- 8, 0, 1.00, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
- { "GlossyPhoto", N_("Premium Glossy Photo Paper"),
- 8, 0, 1.10, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.03, 1.0,
- 1, 1.0, 0x80, 0x00, 0x02,
- pgpp_hue_adjustment, pgpp_lum_adjustment, pgpp_sat_adjustment},
- { "Luster", N_("Premium Luster Photo Paper"),
- 8, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL},
- { "GlossyPaper", N_("Photo Quality Glossy Paper"),
- 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
- { "Ilford", N_("Ilford Heavy Paper"),
- 8, 0, .85, .5, 1.35, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL },
- { "Other", N_("Other"),
- 0, 0, 0.80, 0.125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
-};
-
-static const paperlist_t standard_paper_list =
-{
- sizeof(standard_papers) / sizeof(paper_t),
- standard_papers
-};
-
-static const paper_t c80_papers[] =
-{
- { "Plain", N_("Plain Paper"),
- 1, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "PlainFast", N_("Plain Paper Fast Load"),
- 5, 0, 0.80, .1, .5, 1.0, 1.0, 1.0, .9, 1.05, 1.15,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "Postcard", N_("Postcard"),
- 2, 0, 0.83, .2, .6, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
- 1, 1.0, 0x00, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
- { "GlossyFilm", N_("Glossy Film"),
- 3, 0, 1.00 ,1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6d, 0x00, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "Transparency", N_("Transparencies"),
- 3, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0, 0x6d, 0x00, 0x02, NULL, plain_paper_lum_adjustment, NULL},
- { "Envelope", N_("Envelopes"),
- 4, 0, 0.80, .125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "BackFilm", N_("Back Light Film"),
- 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6d, 0x00, 0x01, NULL, NULL, NULL},
- { "Matte", N_("Matte Paper"),
- 7, 0, 0.9, 1.0, .999, 1.0, 1.0, 1.0, .9, 1.0, 1.1,
- 1, 1.0, 0x00, 0x00, 0x02, NULL, NULL, NULL},
- { "Inkjet", N_("Inkjet Paper"),
- 7, 0, 0.85, .25, .6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
- { "Coated", N_("Photo Quality Inkjet Paper"),
- 7, 0, 1.00, 1.0, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
- { "Photo", N_("Photo Paper"),
- 8, 0, 1.20, 1.0, .9, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x67, 0x00, 0x02, NULL, NULL, NULL},
- { "GlossyPhoto", N_("Premium Glossy Photo Paper"),
- 8, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.03, 1.0,
- 1, 1.0, 0x80, 0x00, 0x02,
- pgpp_hue_adjustment, pgpp_lum_adjustment, pgpp_sat_adjustment},
- { "Luster", N_("Premium Luster Photo Paper"),
- 8, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL},
- { "GlossyPaper", N_("Photo Quality Glossy Paper"),
- 6, 0, 1.00, 1, .999, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1.0, 1.0, 0x6b, 0x1a, 0x01, NULL, NULL, NULL},
- { "Ilford", N_("Ilford Heavy Paper"),
- 8, 0, .85, .5, 1.35, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x80, 0x00, 0x02, NULL, NULL, NULL },
- { "Other", N_("Other"),
- 0, 0, 0.80, 0.125, .5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
- 1, 1.0, 0x6b, 0x1a, 0x01, NULL, plain_paper_lum_adjustment, NULL},
-};
-
-static const paperlist_t c80_paper_list =
-{
- sizeof(c80_papers) / sizeof(paper_t),
- c80_papers
-};
-
-/*
- * Dot sizes are for:
- *
- * 0: 120/180 DPI micro
- * 1: 120/180 DPI soft
- * 2: 360 micro
- * 3: 360 soft
- * 4: 720x360 micro
- * 5: 720x360 soft
- * 6: 720 micro
- * 7: 720 soft
- * 8: 1440x720 micro
- * 9: 1440x720 soft
- * 10: 2880x720 micro
- * 11: 2880x720 soft
- * 12: 2880x1440
- */
-
-/* 0 1 2 3 4 5 6 7 8 9 10 11 12 */
-
-static const escp2_dot_size_t g1_dotsizes =
-{ -2, -1, -2, -1, -1, -2, -2, -1, -1, -1, -1, -1, -1 };
-
-static const escp2_dot_size_t g2_dotsizes =
-{ -2, -1, -2, -1, -2, -2, -2, -2, -1, -1, -1, -1, -1 };
-
-static const escp2_dot_size_t sc600_dotsizes =
-{ 4, -1, 4, -1, -1, 3, 2, 2, -1, 1, -1, -1, -1 };
-
-static const escp2_dot_size_t g3_dotsizes =
-{ 3, -1, 3, -1, -1, 2, 1, 1, -1, 4, -1, -1, -1 };
-
-static const escp2_dot_size_t photo_dotsizes =
-{ 3, -1, 3, -1, -1, 2, -1, 1, -1, 4, -1, -1, -1 };
-
-static const escp2_dot_size_t sc440_dotsizes =
-{ 3, -1, 3, -1, -1, 2, -1, 1, -1, -1, -1, -1, -1 };
-
-static const escp2_dot_size_t sc640_dotsizes =
-{ 3, -1, 3, -1, -1, 2, 1, 1, -1, 1, -1, -1, -1 };
-
-static const escp2_dot_size_t c6pl_dotsizes =
-{ -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x10, -1, -1, -1 };
-
-static const escp2_dot_size_t c3pl_dotsizes =
-{ -1, 0x11, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, 0x10, 0x10 };
-
-static const escp2_dot_size_t c4pl_dotsizes =
-{ -1, 0x12, -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x10, -1, 0x10, 0x10 };
-
-static const escp2_dot_size_t sc720_dotsizes =
-{ -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x11, -1, 0x11, -1, -1, -1 };
-
-static const escp2_dot_size_t sc660_dotsizes =
-{ -1, 3, 3, -1, 3, 0, -1, 0, -1, 0, -1, -1, -1 };
-
-static const escp2_dot_size_t sc480_dotsizes =
-{ -1, 0x13, -1, 0x13, -1, 0x13, -1, 0x10, -1, 0x10, -1, -1, -1 };
-
-static const escp2_dot_size_t sc670_dotsizes =
-{ -1, 0x12, -1, 0x12, -1, 0x12, -1, 0x11, -1, 0x11, -1, -1, -1 };
-
-static const escp2_dot_size_t sp2000_dotsizes =
-{ -1, 0x11, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, -1, -1 };
-
-static const escp2_dot_size_t spro_dotsizes =
-{ 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, -1, -1 };
-
-static const escp2_dot_size_t spro10000_dotsizes =
-{ 4, -1, 0x11, -1, 0x11, -1, 0x10, -1, 0x10, -1, -1, -1, -1 };
-
-static const escp2_dot_size_t c3pl_pigment_dotsizes =
-{ -1, 0x10, -1, 0x10, -1, 0x10, -1, 0x11, -1, 0x12, -1, 0x12, 0x12 };
-
-/*
- * Densities are for:
- *
- * 0: 120/180 DPI micro
- * 1: 120/180 DPI soft
- * 2: 360 micro
- * 3: 360 soft
- * 4: 720x360 micro
- * 5: 720x360 soft
- * 6: 720 micro
- * 7: 720 soft
- * 8: 1440x720 micro
- * 9: 1440x720 soft
- * 10: 2880x720 micro
- * 11: 2880x720 soft
- * 12: 2880x1440
- */
-
-/* 0 1 2 3 4 5 6 7 8 9 10 11 12 */
-
-static const escp2_densities_t g1_densities =
-{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.568, 0.568, 0.0, 0.0, 0.0, 0.0, 0.0 };
-
-static const escp2_densities_t sc1500_densities =
-{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.631, 0.631, 0.0, 0.0, 0.0, 0.0, 0.0 };
-
-static const escp2_densities_t g3_densities =
-{ 2.0, 2.0, 1.3, 1.3, 1.3, 1.3, 0.775, 0.775, 0.55, 0.55, 0.275, 0.275, 0.138 };
-
-static const escp2_densities_t sc440_densities =
-{ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 0.900, 0.900, 0.45, 0.45, 0.45, 0.45, 0.113 };
-
-static const escp2_densities_t sc480_densities =
-{ 2.0, 2.0, 0.0, 1.4, 0.0, 0.7, 0.0, 0.710, 0.0, 0.710, 0.0, 0.355, 0.0 };
-
-static const escp2_densities_t sc980_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.646, 0.511, 0.49, 0.49, 0.637, 0.637, 0.455 };
-
-static const escp2_densities_t c6pl_densities =
-{ 2.0, 2.0, 1.3, 2.0, 0.65, 1.0, 0.646, 0.568, 0.323, 0.568, 0.284, 0.284, 0.142 };
-
-static const escp2_densities_t c3pl_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.646, 0.73, 0.7, 0.7, 0.91, 0.91, 0.455 };
-
-static const escp2_densities_t c4pl_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.431, 0.568, 0.784, 0.784, 0.593, 0.593, 0.297 };
-
-static const escp2_densities_t sc660_densities =
-{ 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 0.646, 0.646, 0.323, 0.323, 0.162, 0.162, 0.081 };
-
-static const escp2_densities_t sp2000_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.775, 0.852, 0.388, 0.438, 0.219, 0.219, 0.110 };
-
-static const escp2_densities_t spro_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.646, 0.646, 0.323, 0.323, 0.162, 0.162, 0.081 };
-
-static const escp2_densities_t spro10000_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.65, 0.65, 0.431, 0.710, 0.216, 0.784, 0.392, 0.392, 0.196 };
-
-static const escp2_densities_t c3pl_pigment_densities =
-{ 2.0, 2.0, 1.3, 1.3, 0.69, 0.69, 0.511, 0.511, 0.765, 0.765, 0.585, 0.585, 0.293 };
-
-/*
- For each printhead (=color), the offset in escp2_base_separation (1/360")
- units is defined here.
- */
-
-static const int default_head_offset[] =
-{0, 0, 0, 0, 0, 0, 0};
-
-static const int x80_head_offset[] =
-{48, 48, 96, 0, 0, 0, 0};
-
-static const int c80_head_offset[] =
-{0, 120, 0, 240, 0, 0, 0};
-
-
-typedef struct escp2_printer
-{
- model_cap_t flags; /* Bitmask of flags, see below */
-/*****************************************************************************/
- int nozzles; /* Number of nozzles per color */
- int min_nozzles; /* Minimum number of nozzles per color */
- int nozzle_separation; /* Separation between rows, in 1/360" */
- int black_nozzles; /* Number of black nozzles (may be extra) */
- int min_black_nozzles; /* # of black nozzles (may be extra) */
- int black_nozzle_separation; /* Separation between rows */
-/*****************************************************************************/
- int xres; /* Normal distance between dots in */
- /* softweave mode (inverse inches) */
- int enhanced_xres; /* Distance between dots in highest */
- /* quality modes */
- int base_separation; /* Basic unit of row separation */
- int base_resolution; /* Base hardware spacing (above this */
- /* always requires multiple passes) */
- int enhanced_resolution;/* Above this we use the */
- /* enhanced_xres rather than xres */
- int resolution_scale; /* Scaling factor for ESC(D command */
- int max_black_resolution; /* Above this resolution, we */
- /* must use color parameters */
- /* rather than (faster) black */
- /* only parameters*/
- int max_hres;
- int max_vres;
- int min_hres;
- int min_vres;
-/*****************************************************************************/
- int max_paper_width; /* Maximum paper width, in points */
- int max_paper_height; /* Maximum paper height, in points */
- int min_paper_width; /* Maximum paper width, in points */
- int min_paper_height; /* Maximum paper height, in points */
- /* Softweave: */
- int left_margin; /* Left margin, points */
- int right_margin; /* Right margin, points */
- int top_margin; /* Absolute top margin, points */
- int bottom_margin; /* Absolute bottom margin, points */
- /* "Micro"weave: */
- int m_left_margin; /* Left margin, points */
- int m_right_margin; /* Right margin, points */
- int m_top_margin; /* Absolute top margin, points */
- int m_bottom_margin; /* Absolute bottom margin, points */
-/*****************************************************************************/
- int extra_feed; /* Extra distance the paper can be spaced */
- /* beyond the bottom margin, in 1/360". */
- /* (maximum useful value is */
- /* nozzles * nozzle_separation) */
- int separation_rows; /* Some printers require funky spacing */
- /* arguments in microweave mode. */
- int pseudo_separation_rows;/* Some printers require funky */
- /* spacing arguments in softweave mode */
-
- int zero_margin_offset; /* Offset to use to achieve */
- /* zero-margin printing */
-/*****************************************************************************/
- /* The stylus 480 and 580 have an unusual arrangement of
- color jets that need special handling */
- const int *head_offset;
- int initial_vertical_offset;
- int black_initial_vertical_offset;
-
-/*****************************************************************************/
- const int *dot_sizes; /* Vector of dot sizes for resolutions */
- const double *densities; /* List of densities for each printer */
- const escp2_variable_inklist_t *inks; /* Choices of inks for this printer */
-/*****************************************************************************/
- const double *lum_adjustment;
- const double *hue_adjustment;
- const double *sat_adjustment;
- const paperlist_t *paperlist;
-} escp2_stp_printer_t;
-
-typedef struct escp2_printer_attribute
-{
- const char *attr_name;
- int shift;
- int bits;
-} escp2_printer_attr_t;
-
-#define MODEL_INIT_MASK 0xful /* Is a special init sequence */
-#define MODEL_INIT_STANDARD 0x0ul /* required for this printer, and if */
-#define MODEL_INIT_NEW 0x1ul /* so, what */
-
-#define MODEL_HASBLACK_MASK 0x10ul /* Can this printer print black ink */
-#define MODEL_HASBLACK_YES 0x00ul /* when it is also printing color? */
-#define MODEL_HASBLACK_NO 0x10ul
-
-#define MODEL_COLOR_MASK 0x60ul /* Is this a 6-color printer? */
-#define MODEL_COLOR_4 0x00ul
-#define MODEL_COLOR_6 0x20ul
-#define MODEL_COLOR_7 0x40ul
-
-#define MODEL_GRAYMODE_MASK 0x80ul /* Does this printer support special */
-#define MODEL_GRAYMODE_NO 0x00ul /* fast black printing? */
-#define MODEL_GRAYMODE_YES 0x80ul
-
-#define MODEL_720DPI_MODE_MASK 0x300ul /* Does this printer require old */
-#define MODEL_720DPI_DEFAULT 0x000ul /* or new setting for printing */
-#define MODEL_720DPI_600 0x100ul /* 720 dpi? Only matters for */
- /* single dot size printers */
-
-#define MODEL_VARIABLE_DOT_MASK 0xc00ul /* Does this printer support var */
-#define MODEL_VARIABLE_NORMAL 0x000ul /* dot size printing? The newest */
-#define MODEL_VARIABLE_4 0x400ul /* printers support multiple modes */
-#define MODEL_VARIABLE_MULTI 0x800ul /* of variable dot sizes. */
-
-#define MODEL_COMMAND_MASK 0xf000ul /* What general command set does */
-#define MODEL_COMMAND_1998 0x0000ul
-#define MODEL_COMMAND_1999 0x1000ul /* The 1999 series printers */
-#define MODEL_COMMAND_2000 0x2000ul /* The 2000 series printers */
-#define MODEL_COMMAND_PRO 0x3000ul /* Stylus Pro printers */
-
-#define MODEL_INK_MASK 0x10000ul /* Does this printer support */
-#define MODEL_INK_NORMAL 0x00000ul /* different types of inks? */
-#define MODEL_INK_SELECTABLE 0x10000ul /* Only the Stylus Pro's do */
-
-#define MODEL_ROLLFEED_MASK 0x20000ul /* Does this printer support */
-#define MODEL_ROLLFEED_NO 0x00000ul /* a roll feed? */
-#define MODEL_ROLLFEED_YES 0x20000ul
-
-#define MODEL_XZEROMARGIN_MASK 0x40000ul /* Does this printer support */
-#define MODEL_XZEROMARGIN_NO 0x00000ul /* zero margin mode? */
-#define MODEL_XZEROMARGIN_YES 0x40000ul /* (print to the edge of the paper) */
-
-#define MODEL_YZEROMARGIN_MASK 0x80000ul /* Does this printer support */
-#define MODEL_YZEROMARGIN_NO 0x00000ul /* zero margin mode? */
-#define MODEL_YZEROMARGIN_YES 0x80000ul /* (print to the edge of the paper) */
-
-#define MODEL_MICROWEAVE_MASK 0x700000ul
-#define MODEL_MICROWEAVE_NO 0x000000ul
-#define MODEL_MICROWEAVE_YES 0x100000ul
-#define MODEL_MICROWEAVE_ENHANCED 0x200000ul
-
-#define MODEL_VACUUM_MASK 0x800000ul
-#define MODEL_VACUUM_NO 0x000000ul
-#define MODEL_VACUUM_YES 0x800000ul
-
-#define MODEL_MICROWEAVE_EXCEPTION_MASK 0x3000000ul
-#define MODEL_MICROWEAVE_EXCEPTION_NORMAL 0x0000000ul
-#define MODEL_MICROWEAVE_EXCEPTION_360 0x1000000ul
-#define MODEL_MICROWEAVE_EXCEPTION_BLACK 0x2000000ul
-
-#define MODEL_INIT (0)
-#define MODEL_HASBLACK (1)
-#define MODEL_COLOR (2)
-#define MODEL_GRAYMODE (3)
-#define MODEL_720DPI_MODE (4)
-#define MODEL_VARIABLE_DOT (5)
-#define MODEL_COMMAND (6)
-#define MODEL_INK (7)
-#define MODEL_ROLLFEED (8)
-#define MODEL_XZEROMARGIN (9)
-#define MODEL_YZEROMARGIN (10)
-#define MODEL_MICROWEAVE (11)
-#define MODEL_VACUUM (12)
-#define MODEL_MICROWEAVE_EXCEPTION (13)
-#define MODEL_LIMIT (14)
-
static const escp2_printer_attr_t escp2_printer_attrs[] =
{
- { "init_sequence", 0, 4 },
- { "has_black", 4, 1 },
- { "color", 5, 2 },
+ { "command_mode", 0, 4 },
+ { "horizontal_zero_margin", 4, 1 },
+ { "rollfeed", 5, 1 },
+ { "variable_mode", 6, 1 },
{ "graymode", 7, 1 },
- { "720dpi_mode", 8, 2 },
- { "variable_mode", 10, 2 },
- { "command_mode", 12, 4 },
- { "ink_types", 16, 1 },
- { "rollfeed", 17, 1 },
- { "horizontal_zero_margin", 18, 1 },
- { "vertical_zero_margin", 19, 1 },
- { "microweave", 20, 3 },
- { "vacuum", 23, 1 },
- { "microweave_exception", 24, 2 },
+ { "vacuum", 8, 1 },
+ { "fast_360", 9, 1 },
};
#define INCH(x) (72 * x)
-static const escp2_stp_printer_t model_capabilities[] =
-{
- /* FIRST GENERATION PRINTERS */
- /* 0: Stylus Color */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 15, 1, 4, 15, 1, 4,
- 720, 720, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 14, 14, 9, 49, 14, 14, 9, 49,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- g1_dotsizes, g1_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 1: Stylus Color 400/500 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 720, 720, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 14, 14, 0, 40, 14, 14, 0, 40,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- g2_dotsizes, g1_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 2: Stylus Color 1500 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_NO | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 720, 720, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17), INCH(44), INCH(2), INCH(4), 14, 14, 9, 49, 14, 14, 9, 49,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- g1_dotsizes, sc1500_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 3: Stylus Color 600 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 32, 1, 4,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 8, 9, 0, 30, 8, 9, 0, 30,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- sc600_dotsizes, g3_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 4: Stylus Color 800 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 64, 1, 2, 64, 1, 2,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 8, 9, 9, 40, 8, 9, 9, 40,
- 0, 1, 4, 0, default_head_offset, 0, 0,
- g3_dotsizes, g3_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 5: Stylus Color 850 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 64, 1, 2, 128, 1, 1,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 9, 40, 9, 9, 9, 40,
- 0, 1, 4, 0, default_head_offset, 0, 0,
- g3_dotsizes, g3_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 6: Stylus Color 1520 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 64, 1, 2, 64, 1, 2,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17), INCH(44), INCH(2), INCH(4), 8, 9, 9, 40, 8, 9, 9, 40,
- 0, 1, 4, 0, default_head_offset, 0, 0,
- g3_dotsizes, g3_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
-
- /* SECOND GENERATION PRINTERS */
- /* 7: Stylus Photo 700 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 32, 1, 4,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 30, 9, 9, 0, 30,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- photo_dotsizes, g3_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 8: Stylus Photo EX */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 32, 1, 4,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(118 / 10), INCH(44), INCH(2), INCH(4), 9, 9, 0, 30, 9, 9, 0, 30,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- photo_dotsizes, g3_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 9: Stylus Photo */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 32, 1, 4,
- 720, 360, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 30, 9, 9, 0, 30,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- photo_dotsizes, g3_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
-
- /* THIRD GENERATION PRINTERS */
- /* 10: Stylus Color 440/460 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_NO |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 21, 1, 4, 21, 1, 4,
- 720, 720, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- sc440_dotsizes, sc440_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 11: Stylus Color 640 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 64, 1, 2,
- 720, 720, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- sc640_dotsizes, sc440_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 12: Stylus Color 740 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c6pl_dotsizes, c6pl_densities, &variable_6pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 13: Stylus Color 900 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 96, 1, 2, 192, 1, 1,
- 360, 180, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c3pl_dotsizes, c3pl_densities, &variable_3pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 14: Stylus Photo 750 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c6pl_dotsizes, c6pl_densities, &variable_6pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 15: Stylus Photo 1200 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(13), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c6pl_dotsizes, c6pl_densities, &variable_6pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 16: Stylus Color 860 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 17: Stylus Color 1160 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(13), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 18: Stylus Color 660 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_600 | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 32, 1, 4,
- 720, 720, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 26,
- 0, 1, 8, 0, default_head_offset, 0, 0,
- sc660_dotsizes,sc660_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 19: Stylus Color 760 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 20: Stylus Photo 720 (Australia) */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_1999 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 32, 1, 4,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- sc720_dotsizes, c6pl_densities, &variable_6pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 21: Stylus Color 480 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 15, 15, 3, 48, 48, 3,
- 360, 360, 360, 720, 720, 14400, 360, 720, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, x80_head_offset, -99, 0,
- sc480_dotsizes, sc480_densities, &variable_x80_6pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 22: Stylus Photo 870 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 0, 0, 0, 9, 0, 0, 0, 9,
- 0, 1, 0, 97, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 23: Stylus Photo 1270 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(13), INCH(1200), INCH(2), INCH(4), 0, 0, 0, 9, 0, 0, 0, 9,
- 0, 1, 0, 97, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 24: Stylus Color 3000 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 64, 1, 2, 128, 1, 1,
- 720, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17), INCH(44), INCH(2), INCH(4), 8, 9, 9, 40, 8, 9, 9, 40,
- 0, 1, 4, 0, default_head_offset, 0, 0,
- g3_dotsizes, g3_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 25: Stylus Color 670 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 32, 1, 4, 64, 1, 2,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- sc670_dotsizes, c6pl_densities, &variable_6pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 26: Stylus Photo 2000P */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(13), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- sp2000_dotsizes, sp2000_densities, &variable_pigment_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 27: Stylus Pro 5000 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(13), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro_dotsizes, spro_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 28: Stylus Pro 7000 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(24), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro_dotsizes, spro_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 29: Stylus Pro 7500 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_SELECTABLE |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_YES | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(24), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro_dotsizes, spro_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 30: Stylus Pro 9000 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(44), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro_dotsizes, spro_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 31: Stylus Pro 9500 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_SELECTABLE |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_YES | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(44), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro_dotsizes, spro_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 32: Stylus Color 777/680 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 33: Stylus Color 880/83/C60 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 144, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 34: Stylus Color 980 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 96, 1, 2, 192, 1, 1,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 192, 1, 0, 0, default_head_offset, 0, 0,
- c3pl_dotsizes, sc980_densities, &variable_3pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 35: Stylus Photo 780/790/785 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_YES | MODEL_YZEROMARGIN_YES |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 55, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 36: Stylus Photo 890/895 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_YZEROMARGIN_YES |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 55, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 37: Stylus Photo 1280/1290 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_MULTI |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_YES | MODEL_YZEROMARGIN_YES |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 720, 90, 90,
- INCH(13), INCH(1200), INCH(2), INCH(4), 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 55, default_head_offset, 0, 0,
- c4pl_dotsizes, c4pl_densities, &variable_4pl_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 38: Stylus Color 580 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 15, 15, 3, 48, 48, 3,
- 360, 360, 360, 720, 720, 14400, 360, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 1, 0, 0, x80_head_offset, -99, 0,
- sc480_dotsizes, sc480_densities, &variable_x80_6pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 39: Stylus Color Pro XL */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_360),
- 48, 1, 3, 48, 1, 3,
- 720, 720, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(13), INCH(1200), INCH(2), INCH(4), 14, 14, 0, 40, 14, 14, 0, 40,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- g1_dotsizes, g1_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 40: Stylus Pro 5500 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_SELECTABLE |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_YES | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(13), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro_dotsizes, spro_densities, &simple_6color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 41: Stylus Pro 10000 */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_SELECTABLE |
- MODEL_COLOR_6 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_PRO | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_ENHANCED |
- MODEL_ROLLFEED_YES | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_YES | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 1, 1, 1, 1, 1, 1,
- 1440, 1440, 360, 1440, 1440, 14400, -1, 1440, 720, 90, 90,
- INCH(44), INCH(1200), INCH(11), INCH(17), 9, 9, 0, 9, 9, 9, 0, 9,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- spro10000_dotsizes, spro10000_densities, &spro10000_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 42: Stylus C20SX/C20UX */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 15, 15, 3, 48, 48, 3,
- 360, 360, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 1, 0, 0, x80_head_offset, -99, 0,
- sc480_dotsizes, sc480_densities, &variable_x80_6pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 43: Stylus C40SX/C40UX */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 15, 15, 3, 48, 48, 3,
- 360, 360, 360, 720, 720, 14400, -1, 1440, 720, 90, 90,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 1, 0, 0, x80_head_offset, -99, 0,
- sc480_dotsizes, sc480_densities, &variable_x80_6pl_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
- /* 44: Stylus C80 */
- {
- (MODEL_INIT_NEW | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_4 |
- MODEL_COMMAND_2000 | MODEL_GRAYMODE_YES | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 60, 60, 2, 180, 180, 2,
- 360, 360, 360, 720, 720, 14400, -1, 2880, 1440, 360, 180,
- INCH(17 / 2), INCH(1200), INCH(2), INCH(4), 9, 9, 0, 9, 9, 9, 9, 9,
- 0, 1, 0, 0, c80_head_offset, -240, 0,
- c3pl_pigment_dotsizes, c3pl_pigment_densities, &variable_3pl_pigment_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &c80_paper_list
- },
- /* 45: Stylus Color Pro */
- {
- (MODEL_INIT_STANDARD | MODEL_HASBLACK_YES | MODEL_INK_NORMAL |
- MODEL_COLOR_4 | MODEL_720DPI_DEFAULT | MODEL_VARIABLE_NORMAL |
- MODEL_COMMAND_1998 | MODEL_GRAYMODE_NO | MODEL_MICROWEAVE_YES |
- MODEL_ROLLFEED_NO | MODEL_XZEROMARGIN_NO | MODEL_YZEROMARGIN_NO |
- MODEL_VACUUM_NO | MODEL_MICROWEAVE_EXCEPTION_NORMAL),
- 48, 1, 3, 48, 1, 3,
- 720, 720, 360, 720, 720, 14400, -1, 720, 720, 90, 90,
- INCH(17 / 2), INCH(44), INCH(2), INCH(4), 14, 14, 0, 40, 14, 14, 0, 40,
- 0, 1, 0, 0, default_head_offset, 0, 0,
- g1_dotsizes, g1_densities, &simple_4color_inks,
- standard_lum_adjustment, standard_hue_adjustment, standard_sat_adjustment,
- &standard_paper_list
- },
-};
-
-typedef struct
-{
- const char *name;
- const char *text;
- int hres;
- int vres;
- int softweave;
- int microweave;
- int vertical_passes;
- int vertical_oversample;
- int unidirectional;
- int vertical_undersample;
- int vertical_denominator;
- int resid;
-} res_t;
-
-static const res_t *escp2_find_resolution(const char *resolution);
+static const res_t *escp2_find_resolution(int model, const stp_vars_t v,
+ const char *resolution);
typedef struct
{
int undersample;
+ int denominator;
int initial_vertical_offset;
int min_nozzles;
+ int printed_something;
+ int last_color;
+ const physical_subchannel_t **channels;
} escp2_privdata_t;
-static const res_t escp2_reslist[] =
-{
- { "360x90dpi", N_("360 x 90 DPI Fast Economy Draft"),
- 360, 90, 0, 0, 1, 1, 0, 1, 1, RES_120_M },
- { "360x90sw", N_("360 x 90 DPI Fast Economy Draft"),
- 360, 90, 1, 0, 1, 1, 0, 1, 1, RES_120 },
-
- { "360x120dpi", N_("360 x 120 DPI Economy Draft"),
- 360, 120, 0, 0, 1, 1, 0, 3, 1, RES_120_M },
- { "360x120sw", N_("360 x 120 DPI Economy Draft"),
- 360, 120, 1, 0, 1, 1, 0, 3, 1, RES_120 },
-
- { "180dpi", N_("180 DPI Economy Draft"),
- 180, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
- { "180sw", N_("180 DPI Economy Draft"),
- 180, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
-
- { "360x240dpi", N_("360 x 240 DPI Draft"),
- 360, 240, 0, 0, 1, 1, 0, 3, 2, RES_180_M },
- { "360x240sw", N_("360 x 240 DPI Draft"),
- 360, 240, 1, 0, 1, 1, 0, 3, 2, RES_180 },
-
- { "360x180dpi", N_("360 x 180 DPI Draft"),
- 360, 180, 0, 0, 1, 1, 0, 1, 1, RES_180_M },
- { "360x180sw", N_("360 x 180 DPI Draft"),
- 360, 180, 1, 0, 1, 1, 0, 1, 1, RES_180 },
-
- { "360sw", N_("360 DPI"),
- 360, 360, 1, 0, 1, 1, 0, 1, 1, RES_360 },
- { "360swuni", N_("360 DPI Unidirectional"),
- 360, 360, 1, 0, 1, 1, 1, 1, 1, RES_360 },
- { "360mw", N_("360 DPI Microweave"),
- 360, 360, 0, 1, 1, 1, 0, 1, 1, RES_360_M },
- { "360mwuni", N_("360 DPI Microweave Unidirectional"),
- 360, 360, 0, 1, 1, 1, 1, 1, 1, RES_360_M },
- { "360dpi", N_("360 DPI"),
- 360, 360, 0, 0, 1, 1, 0, 1, 1, RES_360_M },
- { "360uni", N_("360 DPI Unidirectional"),
- 360, 360, 0, 0, 1, 1, 1, 1, 1, RES_360_M },
- { "360fol", N_("360 DPI Full Overlap"),
- 360, 360, 0, 2, 1, 1, 0, 1, 1, RES_360_M },
- { "360foluni", N_("360 DPI Full Overlap Unidirectional"),
- 360, 360, 0, 2, 1, 1, 1, 1, 1, RES_360_M },
- { "360fol2", N_("360 DPI FOL2"),
- 360, 360, 0, 4, 1, 1, 0, 1, 1, RES_360_M },
- { "360fol2uni", N_("360 DPI FOL2 Unidirectional"),
- 360, 360, 0, 4, 1, 1, 1, 1, 1, RES_360_M },
- { "360mw2", N_("360 DPI MW2"),
- 360, 360, 0, 5, 1, 1, 0, 1, 1, RES_360_M },
- { "360mw2uni", N_("360 DPI MW2 Unidirectional"),
- 360, 360, 0, 5, 1, 1, 1, 1, 1, RES_360_M },
-
- { "720x360sw", N_("720 x 360 DPI"),
- 720, 360, 1, 0, 1, 1, 0, 2, 1, RES_720_360 },
- { "720x360swuni", N_("720 x 360 DPI Unidirectional"),
- 720, 360, 1, 0, 1, 1, 1, 2, 1, RES_720_360 },
- { "720x360dpi", N_("720 x 360 DPI"),
- 720, 360, 0, 48, 1, 1, 0, 2, 1, RES_720_360_M },
- { "720x360uni", N_("720 x 360 DPI Unidirectional"),
- 720, 360, 0, 48, 1, 1, 1, 2, 1, RES_720_360_M },
- { "720x360mw", N_("720 x 360 DPI Microweave"),
- 720, 360, 0, 49, 1, 1, 0, 2, 1, RES_720_360_M },
- { "720x360mwuni", N_("720 x 360 DPI Microweave Unidirectional"),
- 720, 360, 0, 49, 1, 1, 1, 2, 1, RES_720_360_M },
- { "720x360fol", N_("720 x 360 DPI FOL"),
- 720, 360, 0, 2, 1, 1, 0, 2, 1, RES_720_360_M },
- { "720x360foluni", N_("720 x 360 DPI FOL Unidirectional"),
- 720, 360, 0, 2, 1, 1, 1, 2, 1, RES_720_360_M },
- { "720x360fol2", N_("720 x 360 DPI FOL2"),
- 720, 360, 0, 4, 1, 1, 0, 2, 1, RES_720_360_M },
- { "720x360fol2uni", N_("720 x 360 DPI FOL2 Unidirectional"),
- 720, 360, 0, 4, 1, 1, 1, 2, 1, RES_720_360_M },
- { "720x360mw2", N_("720 x 360 DPI MW2"),
- 720, 360, 0, 5, 1, 1, 0, 2, 1, RES_720_360_M },
- { "720x360mw2uni", N_("720 x 360 DPI MW2 Unidirectional"),
- 720, 360, 0, 5, 1, 1, 1, 2, 1, RES_720_360_M },
-
- { "720dpi", N_("720 DPI"),
- 720, 720, 1, 48, 1, 1, 0, 1, 1, RES_720_M },
- { "720uni", N_("720 DPI Unidirectional"),
- 720, 720, 1, 48, 1, 1, 1, 1, 1, RES_720_M },
- { "720mw", N_("720 DPI Microweave"),
- 720, 720, 0, 1, 1, 1, 0, 1, 1, RES_720_M },
- { "720mwuni", N_("720 DPI Microweave Unidirectional"),
- 720, 720, 0, 1, 1, 1, 1, 1, 1, RES_720_M },
- { "720fol", N_("720 DPI Full Overlap"),
- 720, 720, 0, 2, 1, 1, 0, 1, 1, RES_720_M },
- { "720foluni", N_("720 DPI Full Overlap Unidirectional"),
- 720, 720, 0, 2, 1, 1, 1, 1, 1, RES_720_M },
- { "720fourp", N_("720 DPI Four Pass"),
- 720, 720, 0, 3, 1, 1, 0, 1, 1, RES_720_M },
- { "720fourpuni", N_("720 DPI Four Pass Unidirectional"),
- 720, 720, 0, 3, 1, 1, 1, 1, 1, RES_720_M },
- { "720sw", N_("720 DPI"),
- 720, 720, 1, 0, 1, 1, 0, 1, 1, RES_720 },
- { "720swuni", N_("720 DPI Unidirectional"),
- 720, 720, 1, 0, 1, 1, 1, 1, 1, RES_720 },
- { "720hq", N_("720 DPI High Quality"),
- 720, 720, 1, 0, 2, 1, 0, 1, 1, RES_720 },
- { "720hquni", N_("720 DPI High Quality Unidirectional"),
- 720, 720, 1, 0, 2, 1, 1, 1, 1, RES_720 },
- { "720hq2", N_("720 DPI Highest Quality"),
- 720, 720, 1, 0, 4, 1, 1, 1, 1, RES_720 },
-
- { "1440x720dpi", N_("1440 x 720 DPI"),
- 1440, 720, 1, 48, 1, 1, 0, 1, 1, RES_1440_720_M },
- { "1440x720uni", N_("1440 x 720 DPI Unidirectional"),
- 1440, 720, 1, 48, 1, 1, 1, 1, 1, RES_1440_720_M },
- { "1440x720mw", N_("1440 x 720 DPI Microweave"),
- 1440, 720, 0, 1, 1, 1, 0, 1, 1, RES_1440_720_M },
- { "1440x720mwuni", N_("1440 x 720 DPI Microweave Unidirectional"),
- 1440, 720, 0, 1, 1, 1, 1, 1, 1, RES_1440_720_M },
- { "1440x720fol", N_("1440 x 720 DPI FOL"),
- 1440, 720, 0, 2, 1, 1, 0, 1, 1, RES_1440_720_M },
- { "1440x720foluni", N_("1440 x 720 DPI FOL Unidirectional"),
- 1440, 720, 0, 2, 1, 1, 1, 1, 1, RES_1440_720_M },
- { "1440x720fourp", N_("1440 x 720 DPI Four Pass"),
- 1440, 720, 0, 3, 1, 1, 0, 1, 1, RES_1440_720_M },
- { "1440x720fourpuni", N_("1440 x 720 DPI Four Pass Unidirectional"),
- 1440, 720, 0, 3, 1, 1, 1, 1, 1, RES_1440_720_M },
- { "1440x720sw", N_("1440 x 720 DPI"),
- 1440, 720, 1, 0, 1, 1, 0, 1, 1, RES_1440_720 },
- { "1440x720swuni", N_("1440 x 720 DPI Unidirectional"),
- 1440, 720, 1, 0, 1, 1, 1, 1, 1, RES_1440_720 },
- { "1440x720hq2", N_("1440 x 720 DPI Highest Quality"),
- 1440, 720, 1, 0, 2, 1, 1, 1, 1, RES_1440_720 },
-
- { "2880x720sw", N_("2880 x 720 DPI"),
- 2880, 720, 1, 0, 1, 1, 0, 1, 1, RES_2880_720},
- { "2880x720swuni", N_("2880 x 720 DPI Unidirectional"),
- 2880, 720, 1, 0, 1, 1, 1, 1, 1, RES_2880_720},
-
- /*
- * Nothing thus far supports 1440 DPI vertical resolution
- */
- { "1440x1440sw", N_("1440 x 1440 DPI"),
- 1440, 1440, 1, 0, 1, 1, 1, 1, 1, RES_1440_1440},
- { "1440x1440hq2", N_("1440 x 1440 DPI Highest Quality"),
- 1440, 1440, 1, 0, 2, 1, 1, 1, 1, RES_1440_1440},
-
- { "2880x1440sw", N_("2880 x 1440 DPI"),
- 2880, 1440, 1, 0, 1, 1, 1, 1, 1, RES_2880_1440},
-#ifdef HAVE_MAINTAINER_MODE
- /*
- * These resolutions have no practical use; they're neither as good as
- * nor any faster than 720x720 DPI. They exist to permit testing
- * 2880x720 (4:1 aspect) on 1440x720 printers.
- */
- { "1440x360sw", N_("1440 x 360 DPI"),
- 1440, 360, 1, 0, 1, 1, 0, 1, 1, RES_720 },
- { "1440x360swuni", N_("1440 x 360 DPI Unidirectional"),
- 1440, 360, 1, 0, 1, 1, 1, 1, 1, RES_720 },
- { "1440x360hq", N_("1440 x 360 DPI High Quality"),
- 1440, 360, 1, 0, 2, 1, 0, 1, 1, RES_720 },
- { "1440x360hquni", N_("1440 x 360 DPI High Quality Uni"),
- 1440, 360, 1, 0, 2, 1, 1, 1, 1, RES_720 },
- { "1440x360hq2", N_("1440 x 360 DPI Highest Quality"),
- 1440, 360, 1, 0, 4, 1, 1, 1, 1, RES_720 },
-#endif
- { "", "", 0, 0, 0, 0, 0, 0, 1, -1 }
-};
-
-typedef struct
-{
- const char *name;
- const char *text;
- int hasblack;
- int ncolors;
-} escp2_inkname_t;
-
-static const escp2_inkname_t ink_types[] =
-{
- { "Photo7", N_ ("Seven Color Enhanced"), 1, 7 },
- { "PhotoEnhance", N_ ("Six Color Enhanced Composite"), 0, 7 },
- { "PhotoCMYK", N_ ("Six Color Photo"), 1, 6 },
- { "PhotoCMY", N_ ("Five Color Photo Composite"), 0, 6 },
- { "CMYK", N_ ("Four Color Standard"), 1, 4 },
- { "RGB", N_ ("Three Color Composite"), 0, 4 }
-};
-
-static const int escp2_ninktypes = sizeof(ink_types) / sizeof(escp2_inkname_t);
-
typedef struct escp2_init
{
int model;
int output_type;
int ydpi;
int xdpi;
+ int physical_xdpi;
int use_softweave;
- int use_microweave;
- int page_height;
+ int use_interleave;
+ int page_true_height;
int page_width;
int page_top;
int page_bottom;
@@ -3023,14 +120,20 @@ typedef struct escp2_init
int unidirectional;
int resid;
int initial_vertical_offset;
+ int total_channels;
+ int use_black_parameters;
+ int use_fast_360;
+ int print_op;
const char *paper_type;
const char *media_source;
+ const escp2_inkname_t *inkname;
+ const input_slot_t *input_slot;
stp_vars_t v;
} escp2_init_t;
static int
-escp2_has_cap(int model, int feature,
+escp2_has_cap(int model, escp2_model_option_t feature,
model_featureset_t class, const stp_vars_t v)
{
if (feature < 0 || feature >= MODEL_LIMIT)
@@ -3040,26 +143,26 @@ escp2_has_cap(int model, int feature,
model_featureset_t featureset =
(((1ul << escp2_printer_attrs[feature].bits) - 1ul) <<
escp2_printer_attrs[feature].shift);
- return ((model_capabilities[model].flags & featureset) == class);
+ return ((stp_escp2_model_capabilities[model].flags & featureset)==class);
}
}
-#define DEF_SIMPLE_ACCESSOR(f, t) \
-static t \
-escp2_##f(int model, const stp_vars_t v) \
-{ \
- return (model_capabilities[model].f); \
+#define DEF_SIMPLE_ACCESSOR(f, t) \
+static t \
+escp2_##f(int model, const stp_vars_t v) \
+{ \
+ return (stp_escp2_model_capabilities[model].f); \
}
-#define DEF_MICROWEAVE_ACCESSOR(f, t) \
-static t \
-escp2_##f(int model, const stp_vars_t v) \
-{ \
- const res_t *res = escp2_find_resolution(stp_get_resolution(v)); \
- if (res && !(res->softweave)) \
- return (model_capabilities[model].m_##f); \
- else \
- return (model_capabilities[model].f); \
+#define DEF_INTERLEAVE_ACCESSOR(f, t) \
+static t \
+escp2_##f(int model, const stp_vars_t v) \
+{ \
+ const res_t *res = escp2_find_resolution(model, v, stp_get_resolution(v)); \
+ if (res && !(res->softweave)) \
+ return (stp_escp2_model_capabilities[model].m_##f); \
+ else \
+ return (stp_escp2_model_capabilities[model].f); \
}
DEF_SIMPLE_ACCESSOR(max_hres, int)
@@ -3068,13 +171,14 @@ DEF_SIMPLE_ACCESSOR(min_hres, int)
DEF_SIMPLE_ACCESSOR(min_vres, int)
DEF_SIMPLE_ACCESSOR(nozzles, unsigned)
DEF_SIMPLE_ACCESSOR(black_nozzles, unsigned)
+DEF_SIMPLE_ACCESSOR(fast_nozzles, unsigned)
DEF_SIMPLE_ACCESSOR(min_nozzles, unsigned)
DEF_SIMPLE_ACCESSOR(min_black_nozzles, unsigned)
+DEF_SIMPLE_ACCESSOR(min_fast_nozzles, unsigned)
DEF_SIMPLE_ACCESSOR(nozzle_separation, unsigned)
DEF_SIMPLE_ACCESSOR(black_nozzle_separation, unsigned)
+DEF_SIMPLE_ACCESSOR(fast_nozzle_separation, unsigned)
DEF_SIMPLE_ACCESSOR(separation_rows, unsigned)
-DEF_SIMPLE_ACCESSOR(xres, unsigned)
-DEF_SIMPLE_ACCESSOR(enhanced_xres, unsigned)
DEF_SIMPLE_ACCESSOR(max_paper_width, unsigned)
DEF_SIMPLE_ACCESSOR(max_paper_height, unsigned)
DEF_SIMPLE_ACCESSOR(min_paper_width, unsigned)
@@ -3085,43 +189,74 @@ DEF_SIMPLE_ACCESSOR(base_separation, int)
DEF_SIMPLE_ACCESSOR(base_resolution, int)
DEF_SIMPLE_ACCESSOR(enhanced_resolution, int)
DEF_SIMPLE_ACCESSOR(resolution_scale, int)
-DEF_SIMPLE_ACCESSOR(lum_adjustment, const double *)
-DEF_SIMPLE_ACCESSOR(hue_adjustment, const double *)
-DEF_SIMPLE_ACCESSOR(sat_adjustment, const double *)
-DEF_SIMPLE_ACCESSOR(head_offset, const int *)
DEF_SIMPLE_ACCESSOR(initial_vertical_offset, int)
DEF_SIMPLE_ACCESSOR(black_initial_vertical_offset, int)
DEF_SIMPLE_ACCESSOR(max_black_resolution, int)
DEF_SIMPLE_ACCESSOR(zero_margin_offset, int)
+DEF_SIMPLE_ACCESSOR(extra_720dpi_separation, int)
DEF_SIMPLE_ACCESSOR(paperlist, const paperlist_t *)
+DEF_SIMPLE_ACCESSOR(reslist, const res_t *)
+DEF_SIMPLE_ACCESSOR(inklist, const inklist_t *)
+DEF_SIMPLE_ACCESSOR(input_slots, const input_slot_list_t *)
+DEF_SIMPLE_ACCESSOR(preinit_sequence, const init_sequence_t *)
+DEF_SIMPLE_ACCESSOR(postinit_remote_sequence, const init_sequence_t *)
+
+DEF_INTERLEAVE_ACCESSOR(left_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(right_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(top_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(bottom_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(roll_left_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(roll_right_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(roll_top_margin, unsigned)
+DEF_INTERLEAVE_ACCESSOR(roll_bottom_margin, unsigned)
-DEF_MICROWEAVE_ACCESSOR(left_margin, unsigned)
-DEF_MICROWEAVE_ACCESSOR(right_margin, unsigned)
-DEF_MICROWEAVE_ACCESSOR(top_margin, unsigned)
-DEF_MICROWEAVE_ACCESSOR(bottom_margin, unsigned)
+static int
+reslist_count(const res_t *rt)
+{
+ int i = 0;
+ while (rt->hres)
+ {
+ i++;
+ rt++;
+ }
+ return i;
+}
static int
escp2_ink_type(int model, int resid, const stp_vars_t v)
{
int dotid = resid2dotid(resid);
- return model_capabilities[model].dot_sizes[dotid];
+ return stp_escp2_model_capabilities[model].dot_sizes[dotid];
}
static double
escp2_density(int model, int resid, const stp_vars_t v)
{
- int densid = resid2densid(resid);
- return model_capabilities[model].densities[densid];
+ int dotid = resid2dotid(resid);
+ return stp_escp2_model_capabilities[model].densities[dotid];
+}
+
+static double
+escp2_bits(int model, int resid, const stp_vars_t v)
+{
+ int dotid = resid2dotid(resid);
+ return stp_escp2_model_capabilities[model].bits[dotid];
+}
+
+static double
+escp2_base_res(int model, int resid, const stp_vars_t v)
+{
+ int dotid = resid2dotid(resid);
+ return stp_escp2_model_capabilities[model].base_resolutions[dotid];
}
static const escp2_variable_inkset_t *
-escp2_inks(int model, int resid, int colors, int bits, const stp_vars_t v)
+escp2_inks(int model, int resid, int inkset, const stp_vars_t v)
{
- const escp2_variable_inklist_t *inks = model_capabilities[model].inks;
- int inktype = bits2inktype(bits);
- int inkset = colors2inkset(colors);
+ const escp2_variable_inklist_t *inks =
+ stp_escp2_model_capabilities[model].inks;
resid /= 2;
- return (*inks)[inktype][inkset][resid];
+ return (*inks)[inkset][resid];
}
static const paper_t *
@@ -3146,15 +281,15 @@ escp2_has_advanced_command_set(int model, const stp_vars_t v)
escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_2000,v));
}
-static void *
-xzmalloc(size_t bytes)
+static int
+escp2_use_extended_commands(int model, const stp_vars_t v, int use_softweave)
{
- void *retval = stp_malloc(bytes);
- if (retval)
- memset(retval, 0, bytes);
- return (retval);
+ return (escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO, v) ||
+ (escp2_has_cap(model, MODEL_VARIABLE_DOT, MODEL_VARIABLE_YES, v) &&
+ use_softweave));
}
+
static char *
c_strdup(const char *s)
{
@@ -3164,9 +299,7 @@ c_strdup(const char *s)
}
static int
-verify_resolution(const res_t *res,
- int model,
- const stp_vars_t v)
+verify_resolution(const res_t *res, int model, const stp_vars_t v)
{
int nozzle_width =
(escp2_base_separation(model, v) / escp2_nozzle_separation(model, v));
@@ -3176,22 +309,16 @@ verify_resolution(const res_t *res,
res->hres <= escp2_max_hres(model, v) &&
res->vres >= escp2_min_vres(model, v) &&
res->hres >= escp2_min_hres(model, v) &&
- (res->microweave == 0 ||
- !escp2_has_cap(model, MODEL_MICROWEAVE,
- MODEL_MICROWEAVE_NO, v)) &&
- (res->microweave <= 1 ||
- escp2_has_cap(model, MODEL_MICROWEAVE,
- MODEL_MICROWEAVE_ENHANCED, v)) &&
(nozzles == 1 ||
((res->vres / nozzle_width) * nozzle_width) == res->vres))
{
int xdpi = res->hres;
- int physical_xdpi =
- xdpi > escp2_enhanced_resolution(model, v) ?
- escp2_enhanced_xres(model, v) :
- escp2_xres(model, v);
- int horizontal_passes = xdpi / physical_xdpi;
- int oversample = horizontal_passes * res->vertical_passes
+ int physical_xdpi = escp2_base_res(model, res->resid, v);
+ int horizontal_passes, oversample;
+ if (physical_xdpi > xdpi)
+ physical_xdpi = xdpi;
+ horizontal_passes = xdpi / physical_xdpi;
+ oversample = horizontal_passes * res->vertical_passes
* res->vertical_oversample;
if (horizontal_passes < 1)
horizontal_passes = 1;
@@ -3204,6 +331,27 @@ verify_resolution(const res_t *res,
return 0;
}
+static int
+verify_papersize(const stp_papersize_t pt, int model, const stp_vars_t v)
+{
+ unsigned int height_limit, width_limit;
+ unsigned int min_height_limit, min_width_limit;
+ unsigned int pwidth = stp_papersize_get_width(pt);
+ unsigned int pheight = stp_papersize_get_height(pt);
+ width_limit = escp2_max_paper_width(model, v);
+ height_limit = escp2_max_paper_height(model, v);
+ min_width_limit = escp2_min_paper_width(model, v);
+ min_height_limit = escp2_min_paper_height(model, v);
+ if (strlen(stp_papersize_get_name(pt)) > 0 &&
+ pwidth <= width_limit && pheight <= height_limit &&
+ (pheight >= min_height_limit || pheight == 0) &&
+ (pwidth >= min_width_limit || pwidth == 0) &&
+ (pwidth == 0 || pheight > 0 ||
+ escp2_has_cap(model, MODEL_ROLLFEED, MODEL_ROLLFEED_YES, v)))
+ return 1;
+ else
+ return 0;
+}
/*
* 'escp2_parameters()' - Return the parameter values for the given parameter.
@@ -3230,27 +378,14 @@ escp2_parameters(const stp_printer_t printer, /* I - Printer model */
if (strcmp(name, "PageSize") == 0)
{
- unsigned int height_limit, width_limit;
- unsigned int min_height_limit, min_width_limit;
int papersizes = stp_known_papersizes();
valptrs = stp_malloc(sizeof(stp_param_t) * papersizes);
*count = 0;
- width_limit = escp2_max_paper_width(model, v);
- height_limit = escp2_max_paper_height(model, v);
- min_width_limit = escp2_min_paper_width(model, v);
- min_height_limit = escp2_min_paper_height(model, v);
for (i = 0; i < papersizes; i++)
{
const stp_papersize_t pt = stp_get_papersize_by_index(i);
- unsigned int pwidth = stp_papersize_get_width(pt);
- unsigned int pheight = stp_papersize_get_height(pt);
- if (strlen(stp_papersize_get_name(pt)) > 0 &&
- pwidth <= width_limit && pheight <= height_limit &&
- (pheight >= min_height_limit || pheight == 0) &&
- (pwidth >= min_width_limit || pwidth == 0) &&
- (pwidth == 0 || pheight > 0 ||
- escp2_has_cap(model, MODEL_ROLLFEED, MODEL_ROLLFEED_YES, v)))
+ if (verify_papersize(pt, model, v))
{
valptrs[*count].name = c_strdup(stp_papersize_get_name(pt));
valptrs[*count].text = c_strdup(stp_papersize_get_text(pt));
@@ -3262,9 +397,8 @@ escp2_parameters(const stp_printer_t printer, /* I - Printer model */
}
else if (strcmp(name, "Resolution") == 0)
{
- const res_t *res = &(escp2_reslist[0]);
- valptrs =
- stp_malloc(sizeof(stp_param_t) * sizeof(escp2_reslist) / sizeof(res_t));
+ const res_t *res = escp2_reslist(model, v);
+ valptrs = stp_malloc(sizeof(stp_param_t) * reslist_count(res));
*count = 0;
while (res->hres)
{
@@ -3280,23 +414,20 @@ escp2_parameters(const stp_printer_t printer, /* I - Printer model */
}
else if (strcmp(name, "InkType") == 0)
{
- valptrs = stp_malloc(sizeof(stp_param_t) * escp2_ninktypes);
- *count = 0;
- for (i = 0; i < escp2_ninktypes; i++)
+ const inklist_t *inks = escp2_inklist(model, v);
+ int ninktypes = inks->n_inks;
+ if (ninktypes == 0)
+ {
+ *count = 0;
+ return NULL;
+ }
+ valptrs = stp_malloc(sizeof(stp_param_t) * ninktypes);
+ for (i = 0; i < ninktypes; i++)
{
- if (ink_types[i].hasblack &&
- (escp2_has_cap(model, MODEL_HASBLACK, MODEL_HASBLACK_NO, v)))
- continue;
- if ((ink_types[i].ncolors > 4) &&
- (escp2_has_cap(model, MODEL_COLOR, MODEL_COLOR_4, v)))
- continue;
- if (ink_types[i].ncolors == 7 &&
- !(escp2_has_cap(model, MODEL_COLOR, MODEL_COLOR_7, v)))
- continue;
- valptrs[*count].name = c_strdup(ink_types[i].name);
- valptrs[*count].text = c_strdup(_(ink_types[i].text));
- (*count)++;
+ valptrs[i].name = c_strdup(inks->inknames[i]->name);
+ valptrs[i].text = c_strdup(_(inks->inknames[i]->text));
}
+ *count = ninktypes;
return valptrs;
}
else if (strcmp(name, "MediaType") == 0)
@@ -3304,6 +435,11 @@ escp2_parameters(const stp_printer_t printer, /* I - Printer model */
const paperlist_t *p = escp2_paperlist(model, v);
int nmediatypes = p->paper_count;
valptrs = stp_malloc(sizeof(stp_param_t) * nmediatypes);
+ if (nmediatypes == 0)
+ {
+ *count = 0;
+ return NULL;
+ }
for (i = 0; i < nmediatypes; i++)
{
valptrs[i].name = c_strdup(p->papers[i].name);
@@ -3314,30 +450,34 @@ escp2_parameters(const stp_printer_t printer, /* I - Printer model */
}
else if (strcmp(name, "InputSlot") == 0)
{
- if (escp2_has_cap(model, MODEL_ROLLFEED, MODEL_ROLLFEED_NO, v))
- return NULL;
- else
- { /* Roll Feed capable printers */
- valptrs = stp_malloc(sizeof(stp_param_t) * 2);
- valptrs[0].name = c_strdup("Standard");
- valptrs[0].text = c_strdup(_("Standard"));
- valptrs[1].name = c_strdup("Roll");
- valptrs[1].text = c_strdup(_("Roll Feed"));
- *count = 2;
- return valptrs;
+ const input_slot_list_t *slots = escp2_input_slots(model, v);
+ int ninputslots = slots->n_input_slots;
+ if (ninputslots == 0)
+ {
+ valptrs = NULL;
+ *count = 0;
+ return NULL;
+ }
+ valptrs = stp_malloc(sizeof(stp_param_t) * ninputslots);
+ for (i = 0; i < ninputslots; i++)
+ {
+ valptrs[i].name = c_strdup(slots->slots[i].name);
+ valptrs[i].text = c_strdup(_(slots->slots[i].text));
}
+ *count = ninputslots;
+ return valptrs;
}
else
return (NULL);
}
static const res_t *
-escp2_find_resolution(const char *resolution)
+escp2_find_resolution(int model, const stp_vars_t v, const char *resolution)
{
const res_t *res;
if (!resolution || !strcmp(resolution, ""))
return NULL;
- for (res = &escp2_reslist[0];;res++)
+ for (res = escp2_reslist(model, v);;res++)
{
if (!strcmp(resolution, res->name))
return res;
@@ -3359,29 +499,38 @@ escp2_imageable_area(const stp_printer_t printer, /* I - Printer model */
int *top) /* O - Top position in points */
{
int width, height; /* Size of page */
- int rollfeed; /* Roll feed selected */
+ int rollfeed = 0; /* Roll feed selected */
int model = stp_printer_get_model(printer);
+ const char *input_slot = stp_get_media_source(v);
- rollfeed = (strcmp(stp_get_media_source(v), "Roll") == 0);
+ if (input_slot && strlen(input_slot) > 0)
+ {
+ int i;
+ const input_slot_list_t *slots = escp2_input_slots(model, v);
+ for (i = 0; i < slots->n_input_slots; i++)
+ {
+ if (slots->slots[i].name &&
+ strcmp(input_slot, slots->slots[i].name) == 0)
+ {
+ rollfeed = slots->slots[i].is_roll_feed;
+ break;
+ }
+ }
+ }
stp_default_media_size(printer, v, &width, &height);
- *left = escp2_left_margin(model, v);
- *right = width - escp2_right_margin(model, v);
-
- /*
- * All printers should have 0 vertical margin capability in Roll Feed
- * mode -- They waste any paper they need automatically, and the
- * driver should print as much as the user wants
- */
-
if (rollfeed)
{
- *top = height - 0;
- *bottom = 0;
+ *left = escp2_roll_left_margin(model, v);
+ *right = width - escp2_roll_right_margin(model, v);
+ *top = height - escp2_roll_top_margin(model, v);
+ *bottom = escp2_roll_bottom_margin(model, v);
}
else
{
+ *left = escp2_left_margin(model, v);
+ *right = width - escp2_right_margin(model, v);
*top = height - escp2_top_margin(model, v);
*bottom = escp2_bottom_margin(model, v);
}
@@ -3414,21 +563,11 @@ escp2_default_parameters(const stp_printer_t printer,
return NULL;
if (strcmp(name, "PageSize") == 0)
{
- unsigned int height_limit, width_limit;
- unsigned int min_height_limit, min_width_limit;
int papersizes = stp_known_papersizes();
- width_limit = escp2_max_paper_width(model, v);
- height_limit = escp2_max_paper_height(model, v);
- min_width_limit = escp2_min_paper_width(model, v);
- min_height_limit = escp2_min_paper_height(model, v);
for (i = 0; i < papersizes; i++)
{
const stp_papersize_t pt = stp_get_papersize_by_index(i);
- if (strlen(stp_papersize_get_name(pt)) > 0 &&
- stp_papersize_get_width(pt) >= min_width_limit &&
- stp_papersize_get_height(pt) >= min_height_limit &&
- stp_papersize_get_width(pt) <= width_limit &&
- stp_papersize_get_height(pt) <= height_limit)
+ if (verify_papersize(pt, model, v))
return (stp_papersize_get_name(pt));
}
return NULL;
@@ -3437,34 +576,20 @@ escp2_default_parameters(const stp_printer_t printer,
{
int model = stp_printer_get_model(printer);
stp_vars_t v = stp_printer_get_printvars(printer);
- const res_t *res = &(escp2_reslist[0]);
+ const res_t *res = escp2_reslist(model, v);
while (res->hres)
{
if (res->vres >= 360 && res->hres >= 360 &&
verify_resolution(res, model, v))
- {
- return (res->name);
- }
+ return (res->name);
res++;
}
return NULL;
}
else if (strcmp(name, "InkType") == 0)
{
- for (i = 0; i < escp2_ninktypes; i++)
- {
- if (ink_types[i].hasblack &&
- (escp2_has_cap(model, MODEL_HASBLACK, MODEL_HASBLACK_NO, v)))
- continue;
- if ((ink_types[i].ncolors > 4) &&
- (escp2_has_cap(model, MODEL_COLOR, MODEL_COLOR_4, v)))
- continue;
- if (ink_types[i].ncolors == 7 &&
- !(escp2_has_cap(model, MODEL_COLOR, MODEL_COLOR_7, v)))
- continue;
- return ink_types[i].name;
- }
- return NULL;
+ const inklist_t *inks = escp2_inklist(model, v);
+ return inks->inknames[0]->name;
}
else if (strcmp(name, "MediaType") == 0)
{
@@ -3473,14 +598,13 @@ escp2_default_parameters(const stp_printer_t printer,
}
else if (strcmp(name, "InputSlot") == 0)
{
- if (escp2_has_cap(model, MODEL_ROLLFEED, MODEL_ROLLFEED_NO, v))
- return NULL;
- else
- return "Standard";
+ const input_slot_list_t *slots = escp2_input_slots(model, v);
+ if (slots->n_input_slots)
+ return slots->slots[0].name;
+ return NULL;
}
else
return (NULL);
-
}
static void
@@ -3489,25 +613,14 @@ escp2_describe_resolution(const stp_printer_t printer,
{
int model = stp_printer_get_model(printer);
stp_vars_t v = stp_printer_get_printvars(printer);
- const res_t *res = &(escp2_reslist[0]);
- int nozzle_width =
- escp2_base_separation(model, v) / escp2_nozzle_separation(model, v);
+ const res_t *res = escp2_reslist(model, v);
while (res->hres)
{
- if (escp2_ink_type(model, res->resid, v) != -1 &&
- res->vres <= escp2_max_vres(model, v) &&
- res->hres <= escp2_max_hres(model, v) &&
- (res->microweave == 0 ||
- !escp2_has_cap(model, MODEL_MICROWEAVE,
- MODEL_MICROWEAVE_NO, v)) &&
- (res->microweave <= 1 ||
- escp2_has_cap(model, MODEL_MICROWEAVE,
- MODEL_MICROWEAVE_ENHANCED, v)) &&
- ((res->vres / nozzle_width) * nozzle_width) == res->vres &&
- !strcmp(resolution, res->name))
+ if (!strcmp(resolution, res->name) &&
+ verify_resolution(res, model, v))
{
- *x = res->hres;
- *y = res->vres;
+ *x = res->external_hres;
+ *y = res->external_vres;
return;
}
res++;
@@ -3523,10 +636,36 @@ escp2_reset_printer(const escp2_init_t *init)
* Magic initialization string that's needed to take printer out of
* packet mode.
*/
- if (escp2_has_cap(init->model, MODEL_INIT, MODEL_INIT_NEW, init->v))
- stp_zprintf(init->v, "%c%c%c\033\001@EJL 1284.4\n@EJL \n\033@", 0, 0, 0);
+ const init_sequence_t *inits = escp2_preinit_sequence(init->model, init->v);
+ if (inits)
+ stp_zfwrite(inits->data, inits->length, 1, init->v);
+
+ stp_puts("\033@", init->v); /* ESC/P2 reset */
+}
+
+static void
+print_remote_param(const stp_vars_t v, const char *param, const char *value)
+{
+ unsigned bytes = 2 + strlen(param) + strlen(value);
+ stp_zprintf(v, "\033(R%c%c%c%s:%s", (bytes & 0xff), ((bytes >> 8) & 0xff), 0,
+ param, value);
+ stp_zprintf(v, "\033%c%c%c", 0, 0, 0);
+}
- stp_puts("\033@", init->v); /* ESC/P2 reset */
+static void
+print_remote_int_param(const stp_vars_t v, const char *param, int value)
+{
+ char buf[64];
+ (void) snprintf(buf, 64, "%d", value);
+ print_remote_param(v, param, buf);
+}
+
+static void
+print_remote_float_param(const stp_vars_t v, const char *param, double value)
+{
+ char buf[64];
+ (void) snprintf(buf, 64, "%f", value);
+ print_remote_param(v, param, buf);
}
static void
@@ -3534,17 +673,66 @@ escp2_set_remote_sequence(const escp2_init_t *init)
{
/* Magic remote mode commands, whatever they do */
-#if 0
- stp_zprintf(init->v, "\033(R%c%c%c%s", 1 + strlen(PACKAGE), 0, 0, PACKAGE);
- stp_zprintf(init->v, "\033%c%c%c", 0, 0, 0);
- stp_zprintf(init->v, "\033(R%c%c%c%s", 1 + strlen(VERSION), 0, 0, VERSION);
- stp_zprintf(init->v, "\033%c%c%c", 0, 0, 0);
- stp_zprintf(init->v, "\033(R%c%c%c%s", 1 + strlen(stp_get_driver(init->v)),
- 0, 0, stp_get_driver(init->v));
- stp_zprintf(init->v, "\033%c%c%c", 0, 0, 0);
- stp_puts("\033@", init->v);
-#endif
- if (escp2_has_advanced_command_set(init->model, init->v))
+ if (stp_debug_level & STP_DBG_MARK_FILE)
+ {
+ print_remote_param(init->v, "Package", PACKAGE);
+ print_remote_param(init->v, "Version", VERSION);
+ print_remote_param(init->v, "Release Date", RELEASE_DATE);
+ print_remote_param(init->v, "Driver", stp_get_driver(init->v));
+ print_remote_param(init->v, "Resolution", stp_get_resolution(init->v));
+ print_remote_param(init->v, "Media Size", stp_get_media_size(init->v));
+ print_remote_param(init->v, "Media Type", stp_get_media_type(init->v));
+ print_remote_param(init->v, "Media Source", stp_get_media_source(init->v));
+ print_remote_param(init->v, "Ink Type", stp_get_ink_type(init->v));
+ print_remote_param(init->v, "Dither", stp_get_dither_algorithm(init->v));
+ print_remote_int_param(init->v, "Output Type", stp_get_output_type(init->v));
+ print_remote_int_param(init->v, "Orientation", stp_get_orientation(init->v));
+ print_remote_int_param(init->v, "Left", stp_get_left(init->v));
+ print_remote_int_param(init->v, "Top", stp_get_top(init->v));
+ print_remote_int_param(init->v, "Image Type", stp_get_image_type(init->v));
+ print_remote_int_param(init->v, "Page Width", stp_get_page_width(init->v));
+ print_remote_int_param(init->v, "Page Height", stp_get_page_height(init->v));
+ print_remote_int_param(init->v, "Input Model", stp_get_input_color_model(init->v));
+ print_remote_int_param(init->v, "Output Model", stp_get_output_color_model(init->v));
+ print_remote_float_param(init->v, "Brightness", stp_get_brightness(init->v));
+ print_remote_float_param(init->v, "Scaling", stp_get_scaling(init->v));
+ print_remote_float_param(init->v, "Gamma", stp_get_gamma(init->v));
+ print_remote_float_param(init->v, "App Gamma", stp_get_app_gamma(init->v));
+ print_remote_float_param(init->v, "Contrast", stp_get_contrast(init->v));
+ print_remote_float_param(init->v, "Cyan", stp_get_cyan(init->v));
+ print_remote_float_param(init->v, "Magenta", stp_get_magenta(init->v));
+ print_remote_float_param(init->v, "Yellow", stp_get_yellow(init->v));
+ print_remote_float_param(init->v, "Saturation", stp_get_saturation(init->v));
+ print_remote_float_param(init->v, "Density", stp_get_density(init->v));
+ print_remote_int_param(init->v, "Model", init->model);
+ print_remote_int_param(init->v, "Output_type", init->output_type);
+ print_remote_int_param(init->v, "Ydpi", init->ydpi);
+ print_remote_int_param(init->v, "Xdpi", init->xdpi);
+ print_remote_int_param(init->v, "Physical_xdpi", init->physical_xdpi);
+ print_remote_int_param(init->v, "Use_softweave", init->use_softweave);
+ print_remote_int_param(init->v, "Use_interleave", init->use_interleave);
+ print_remote_int_param(init->v, "Page_true_height", init->page_true_height);
+ print_remote_int_param(init->v, "Page_width", init->page_width);
+ print_remote_int_param(init->v, "Page_top", init->page_top);
+ print_remote_int_param(init->v, "Page_bottom", init->page_bottom);
+ print_remote_int_param(init->v, "Nozzles", init->nozzles);
+ print_remote_int_param(init->v, "Nozzle_separation", init->nozzle_separation);
+ print_remote_int_param(init->v, "Horizontal_passes", init->horizontal_passes);
+ print_remote_int_param(init->v, "Vertical_passes", init->vertical_passes);
+ print_remote_int_param(init->v, "Vertical_oversample", init->vertical_oversample);
+ print_remote_int_param(init->v, "Bits", init->bits);
+ print_remote_int_param(init->v, "Unidirectional", init->unidirectional);
+ print_remote_int_param(init->v, "Resid", init->resid);
+ print_remote_int_param(init->v, "Initial_vertical_offset", init->initial_vertical_offset);
+ print_remote_int_param(init->v, "Total_channels", init->total_channels);
+ print_remote_int_param(init->v, "Use_black_parameters", init->use_black_parameters);
+ print_remote_int_param(init->v, "Use_fast_360", init->use_fast_360);
+ print_remote_param(init->v, "Ink name", init->inkname->name);
+ print_remote_int_param(init->v, " is_color", init->inkname->is_color);
+ print_remote_int_param(init->v, " inkset", init->inkname->inkset);
+ stp_puts("\033@", init->v);
+ }
+ if (escp2_has_advanced_command_set(init->model, init->v) || init->input_slot)
{
int feed_sequence = 0;
const paper_t *p =
@@ -3554,21 +742,18 @@ escp2_set_remote_sequence(const escp2_init_t *init)
if (escp2_has_cap(init->model, MODEL_COMMAND,
MODEL_COMMAND_PRO, init->v))
{
- /* Set Roll Feed mode */
- if (strcmp(init->media_source,"Roll") == 0)
- stp_zprintf(init->v, "PP%c%c%c%c%c", 3, 0, 0, 3, 0);
- else
- stp_zprintf(init->v, "PP%c%c%c%c%c", 3, 0, 0, 2, 0);
if (p)
{
stp_zprintf(init->v, "PH%c%c%c%c", 2, 0, 0, p->paper_thickness);
if (escp2_has_cap(init->model, MODEL_VACUUM, MODEL_VACUUM_YES,
init->v))
- stp_zprintf(init->v, "SN%c%c%c%c%c", 3, 0, 0, 5,p->vacuum_intensity);
- stp_zprintf(init->v, "SN%c%c%c%c%c", 3, 0, 0, 4, p->feed_adjustment);
+ stp_zprintf(init->v, "SN%c%c%c%c%c",
+ 3, 0, 0, 5, p->vacuum_intensity);
+ stp_zprintf(init->v, "SN%c%c%c%c%c",
+ 3, 0, 0, 4, p->feed_adjustment);
}
}
- else
+ else if (escp2_has_advanced_command_set(init->model, init->v))
{
if (p)
feed_sequence = p->paper_feed_sequence;
@@ -3578,27 +763,39 @@ escp2_set_remote_sequence(const escp2_init_t *init)
stp_zprintf(init->v, "SN%c%c%c%c%c", 3, 0, 0, 0, feed_sequence);
if (escp2_has_cap(init->model, MODEL_XZEROMARGIN,
MODEL_XZEROMARGIN_YES, init->v))
- stp_zprintf(init->v, "FP%c%c%c\260\377", 3, 0, 0);
-
- /* set up Roll-Feed options on appropriate printers
- (tested for STP 870, which has no cutter) */
- if (escp2_has_cap(init->model, MODEL_ROLLFEED,
- MODEL_ROLLFEED_YES, init->v))
+ stp_zprintf(init->v, "FP%c%c%c%c%c", 3, 0, 0, 0260, 0xff);
+ }
+ if (init->input_slot)
+ {
+ int divisor = escp2_base_separation(init->model, init->v) / 360;
+ int height = init->page_true_height * 5 / divisor;
+ if (init->input_slot->init_sequence.length)
+ stp_zfwrite(init->input_slot->init_sequence.data,
+ init->input_slot->init_sequence.length, 1, init->v);
+ switch (init->input_slot->roll_feed_cut_flags)
{
- if (strcmp(init->media_source,"Roll") == 0)
- stp_zprintf(init->v, /* Set Roll Feed mode */
- "IR%c%c%c%c"
- "EX%c%c%c%c%c%c%c%c",
- 2, 0, 0, 1,
- 6, 0, 0, 0, 0, 0, 5, 1);
- else
- stp_zprintf(init->v, /* Set non-Roll Feed mode */
- "IR%c%c%c%c"
- "EX%c%c%c%c%c%c%c%c",
- 2, 0, 0, 3,
- 6, 0, 0, 0, 0, 0, 5, 0);
+ case ROLL_FEED_CUT_ALL:
+ stp_zprintf(init->v, "JS%c%c%c%c", 2, 0, 0, 0);
+ stp_zprintf(init->v, "CO%c%c%c%c%c%c%c%c%c%c",
+ 8, 0, 0, 0, 1, 0, 0, 0, 0, 0);
+ stp_zprintf(init->v, "CO%c%c%c%c%c%c%c%c%c%c",
+ 8, 0, 0, 0, 0, 0,
+ height & 0xff, (height >> 8) & 0xff,
+ (height >> 16) & 0xff, (height >> 24) & 0xff);
+ break;
+ case ROLL_FEED_CUT_LAST:
+ stp_zprintf(init->v, "CO%c%c%c%c%c%c%c%c%c%c",
+ 8, 0, 0, 0, 1, 0, 0, 0, 0, 0);
+ stp_zprintf(init->v, "CO%c%c%c%c%c%c%c%c%c%c",
+ 8, 0, 0, 0, 2, 0,
+ height & 0xff, (height >> 8) & 0xff,
+ (height >> 16) & 0xff, (height >> 24) & 0xff);
+ break;
+ default:
+ break;
}
}
+
/* Exit remote mode */
stp_zprintf(init->v, "\033%c%c%c", 0, 0, 0);
}
@@ -3607,16 +804,13 @@ escp2_set_remote_sequence(const escp2_init_t *init)
static void
escp2_set_graphics_mode(const escp2_init_t *init)
{
- stp_zfwrite("\033(G\001\000\001", 6, 1, init->v); /* Enter graphics mode */
+ stp_zfwrite("\033(G\001\000\001", 6, 1, init->v);
}
static void
escp2_set_resolution(const escp2_init_t *init)
{
- if (escp2_has_cap(init->model, MODEL_COMMAND, MODEL_COMMAND_PRO, init->v) ||
- (!(escp2_has_cap(init->model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, init->v)) &&
- init->use_softweave))
+ if (escp2_use_extended_commands(init->model, init->v, init->use_softweave))
{
int hres = escp2_max_hres(init->model, init->v);
stp_zprintf(init->v, "\033(U\005%c%c%c%c%c%c", 0, hres / init->ydpi,
@@ -3630,16 +824,18 @@ escp2_set_resolution(const escp2_init_t *init)
static void
escp2_set_color(const escp2_init_t *init)
{
- if (escp2_has_cap(init->model, MODEL_GRAYMODE, MODEL_GRAYMODE_YES,
- init->v))
+ if (init->use_fast_360)
+ stp_zprintf(init->v, "\033(K\002%c%c%c", 0, 0, 3);
+ else if (escp2_has_cap(init->model, MODEL_GRAYMODE, MODEL_GRAYMODE_YES,
+ init->v))
stp_zprintf(init->v, "\033(K\002%c%c%c", 0, 0,
- (init->output_type == OUTPUT_GRAY ? 1 : 2));
+ (init->use_black_parameters ? 1 : 2));
}
static void
-escp2_set_microweave(const escp2_init_t *init)
+escp2_set_interleave(const escp2_init_t *init)
{
- stp_zprintf(init->v, "\033(i\001%c%c", 0, init->use_microweave);
+ stp_zprintf(init->v, "\033(i\001%c%c", 0, init->use_interleave);
}
static void
@@ -3667,11 +863,8 @@ escp2_set_dot_size(const escp2_init_t *init)
static void
escp2_set_page_height(const escp2_init_t *init)
{
- int l = init->ydpi * init->page_height / 72;
- if (escp2_has_cap(init->model, MODEL_COMMAND, MODEL_COMMAND_PRO, init->v) ||
- (!(escp2_has_cap(init->model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, init->v)) &&
- init->use_softweave))
+ int l = init->ydpi * init->page_true_height / 72;
+ if (escp2_use_extended_commands(init->model, init->v, init->use_softweave))
stp_zprintf(init->v, "\033(C\004%c%c%c%c%c", 0,
l & 0xff, (l >> 8) & 0xff, (l >> 16) & 0xff, (l >> 24) & 0xff);
else
@@ -3681,26 +874,26 @@ escp2_set_page_height(const escp2_init_t *init)
static void
escp2_set_margins(const escp2_init_t *init)
{
- int l = init->ydpi * (init->page_height - init->page_bottom) / 72;
- int t = init->ydpi * (init->page_height - init->page_top) / 72;
-
- t += init->initial_vertical_offset;
- if (escp2_has_cap(init->model, MODEL_COMMAND, MODEL_COMMAND_PRO, init->v) ||
- (!(escp2_has_cap(init->model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, init->v)) &&
- init->use_softweave))
+ int left = init->ydpi * (init->page_true_height - init->page_bottom) / 72;
+ int top = init->ydpi * (init->page_true_height - init->page_top) / 72;
+
+ top += init->initial_vertical_offset;
+ if (escp2_use_extended_commands(init->model, init->v, init->use_softweave))
{
- if (escp2_has_cap(init->model, MODEL_COMMAND,MODEL_COMMAND_2000,init->v))
+ if (escp2_has_cap(init->model,MODEL_COMMAND,MODEL_COMMAND_2000,init->v)||
+ escp2_has_cap(init->model,MODEL_COMMAND,MODEL_COMMAND_PRO,init->v))
stp_zprintf(init->v, "\033(c\010%c%c%c%c%c%c%c%c%c", 0,
- t & 0xff, t >> 8, (t >> 16) & 0xff, (t >> 24) & 0xff,
- l & 0xff, l >> 8, (l >> 16) & 0xff, (l >> 24) & 0xff);
+ top & 0xff, (top >> 8) & 0xff,
+ (top >> 16) & 0xff, (top >> 24) & 0xff,
+ left & 0xff, (left >> 8) & 0xff,
+ (left >> 16) & 0xff, (left >> 24) & 0xff);
else
stp_zprintf(init->v, "\033(c\004%c%c%c%c%c", 0,
- t & 0xff, t >> 8, l & 0xff, l >> 8);
+ top & 0xff, top >> 8, left & 0xff, left >> 8);
}
else
stp_zprintf(init->v, "\033(c\004%c%c%c%c%c", 0,
- t & 0xff, t >> 8, l & 0xff, l >> 8);
+ top & 0xff, top >> 8, left & 0xff, left >> 8);
}
static void
@@ -3709,7 +902,7 @@ escp2_set_form_factor(const escp2_init_t *init)
if (escp2_has_advanced_command_set(init->model, init->v))
{
int page_width = init->page_width * init->ydpi / 72;
- int page_height = init->page_height * init->ydpi / 72;
+ int page_height = init->page_true_height * init->ydpi / 72;
if (escp2_has_cap(init->model, MODEL_XZEROMARGIN, MODEL_XZEROMARGIN_YES,
init->v))
@@ -3727,46 +920,24 @@ escp2_set_form_factor(const escp2_init_t *init)
static void
escp2_set_printhead_resolution(const escp2_init_t *init)
{
- if (escp2_has_cap(init->model, MODEL_COMMAND, MODEL_COMMAND_PRO, init->v) ||
- (!(escp2_has_cap(init->model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, init->v)) &&
- init->use_softweave))
+ if (escp2_use_extended_commands(init->model, init->v, init->use_softweave))
{
int xres;
int yres;
- int nozzle_separation;
+ int scale = escp2_resolution_scale(init->model, init->v);
- if (escp2_has_cap(init->model, MODEL_COMMAND, MODEL_COMMAND_PRO,init->v))
- xres = init->xdpi;
- else if (init->xdpi > escp2_enhanced_resolution(init->model, init->v))
- xres = escp2_enhanced_xres(init->model, init->v);
- else
- xres = escp2_xres(init->model, init->v);
- if (init->xdpi < xres)
- xres = init->xdpi;
- xres = escp2_resolution_scale(init->model, init->v) / xres;
-
- if (init->output_type == OUTPUT_GRAY &&
- (escp2_max_black_resolution(init->model, init->v) < 0 ||
- init->ydpi <= escp2_max_black_resolution(init->model, init->v)))
- nozzle_separation = escp2_black_nozzle_separation(init->model,
- init->v);
- else
- nozzle_separation = escp2_nozzle_separation(init->model, init->v);
+ xres = scale / init->physical_xdpi;
if (escp2_has_cap(init->model, MODEL_COMMAND, MODEL_COMMAND_PRO,
init->v) && !init->use_softweave)
- yres = escp2_resolution_scale(init->model, init->v) / init->ydpi;
+ yres = scale / init->ydpi;
else
- yres = (nozzle_separation *
- escp2_resolution_scale(init->model, init->v) /
+ yres = (init->nozzle_separation * scale /
escp2_base_separation(init->model, init->v));
/* Magic resolution cookie */
stp_zprintf(init->v, "\033(D%c%c%c%c%c%c", 4, 0,
- escp2_resolution_scale(init->model, init->v) % 256,
- escp2_resolution_scale(init->model, init->v) / 256,
- yres, xres);
+ scale % 256, scale / 256, yres, xres);
}
}
@@ -3778,7 +949,7 @@ escp2_init_printer(const escp2_init_t *init)
escp2_set_graphics_mode(init);
escp2_set_resolution(init);
escp2_set_color(init);
- escp2_set_microweave(init);
+ escp2_set_interleave(init);
escp2_set_printhead_speed(init);
escp2_set_dot_size(init);
escp2_set_printhead_resolution(init);
@@ -3790,122 +961,301 @@ escp2_init_printer(const escp2_init_t *init)
static void
escp2_deinit_printer(const escp2_init_t *init)
{
- stp_puts(/* Eject page */
- "\014"
- /* ESC/P2 reset */
- "\033@", init->v);
- if (escp2_has_advanced_command_set(init->model, init->v))
+ stp_puts("\033@", init->v); /* ESC/P2 reset */
+ if (escp2_has_advanced_command_set(init->model, init->v) || init->input_slot)
{
+ const init_sequence_t *deinit =
+ escp2_postinit_remote_sequence(init->model, init->v);
stp_zprintf(init->v, /* Enter remote mode */
"\033(R\010%c%cREMOTE1", 0, 0);
- /* set up Roll-Feed options on appropriate printers
- (tested for STP 870, which has no cutter) */
- if (escp2_has_cap(init->model, MODEL_ROLLFEED,
- MODEL_ROLLFEED_YES, init->v))
+ if (init->input_slot && init->input_slot->deinit_sequence.length)
+ stp_zfwrite(init->input_slot->deinit_sequence.data,
+ init->input_slot->deinit_sequence.length, 1, init->v);
+ /* Load settings from NVRAM */
+ stp_zprintf(init->v, "LD%c%c", 0, 0);
+
+ /* Magic deinit sequence reported by Simone Falsini */
+ if (deinit)
+ stp_zfwrite(deinit->data, deinit->length, 1, init->v);
+ /* Exit remote mode */
+ stp_zprintf(init->v, "\033%c%c%c", 0, 0, 0);
+
+ }
+}
+
+static void
+adjust_print_quality(const escp2_init_t *init, void *dither,
+ double **lum_adjustment, double **sat_adjustment,
+ double **hue_adjustment)
+{
+ const paper_t *pt;
+ const stp_vars_t nv = init->v;
+ int i;
+ const escp2_variable_inkset_t *inks;
+ double k_upper, k_lower;
+ double paper_k_upper;
+ int ink_spread;
+ /*
+ * Compute the LUT. For now, it's 8 bit, but that may eventually
+ * sometimes change.
+ */
+ k_lower = init->inkname->k_lower;
+ k_upper = init->inkname->k_upper;
+
+ pt = get_media_type(init->model, stp_get_media_type(nv), nv);
+ if (pt)
+ {
+ stp_set_density(nv, stp_get_density(nv) * pt->base_density);
+ if (init->total_channels >= 5)
+ {
+ stp_set_cyan(nv, stp_get_cyan(nv) * pt->p_cyan);
+ stp_set_magenta(nv, stp_get_magenta(nv) * pt->p_magenta);
+ stp_set_yellow(nv, stp_get_yellow(nv) * pt->p_yellow);
+ }
+ else
+ {
+ stp_set_cyan(nv, stp_get_cyan(nv) * pt->cyan);
+ stp_set_magenta(nv, stp_get_magenta(nv) * pt->magenta);
+ stp_set_yellow(nv, stp_get_yellow(nv) * pt->yellow);
+ }
+ stp_set_saturation(nv, stp_get_saturation(nv) * pt->saturation);
+ stp_set_gamma(nv, stp_get_gamma(nv) * pt->gamma);
+ k_lower *= pt->k_lower_scale;
+ paper_k_upper = pt->k_upper;
+ k_upper *= pt->k_upper;
+ }
+ else /* Can't find paper type? Assume plain */
+ {
+ stp_set_density(nv, stp_get_density(nv) * .8);
+ k_lower *= .1;
+ paper_k_upper = .5;
+ k_upper *= .5;
+ }
+ stp_set_density(nv, stp_get_density(nv) *
+ escp2_density(init->model, init->resid, nv));
+ if (stp_get_density(nv) > 1.0)
+ stp_set_density(nv, 1.0);
+ if (init->output_type == OUTPUT_GRAY)
+ stp_set_gamma(nv, stp_get_gamma(nv) / .8);
+ stp_compute_lut(nv, 256);
+
+ for (i = 0; i <= NCOLORS; i++)
+ stp_dither_set_black_level(dither, i, 1.0);
+ stp_dither_set_black_lower(dither, k_lower);
+ stp_dither_set_black_upper(dither, k_upper);
+
+ inks = escp2_inks(init->model, init->resid, init->inkname->inkset, nv);
+ if (inks)
+ for (i = 0; i < NCOLORS; i++)
+ if ((*inks)[i])
+ stp_dither_set_ranges(dither, i, (*inks)[i]->count, (*inks)[i]->range,
+ (*inks)[i]->density * paper_k_upper *
+ stp_get_density(nv));
+
+ switch (stp_get_image_type(nv))
+ {
+ case IMAGE_LINE_ART:
+ stp_dither_set_ink_spread(dither, 19);
+ break;
+ case IMAGE_SOLID_TONE:
+ stp_dither_set_ink_spread(dither, 15);
+ break;
+ case IMAGE_CONTINUOUS:
+ ink_spread = 13;
+ if (init->ydpi > escp2_max_vres(init->model, nv))
+ ink_spread++;
+ if (init->bits > 1)
+ ink_spread++;
+ stp_dither_set_ink_spread(dither, ink_spread);
+ break;
+ }
+ stp_dither_set_density(dither, stp_get_density(nv));
+ if (init->inkname->lum_adjustment)
+ {
+ *lum_adjustment = stp_malloc(sizeof(double) * 49);
+ for (i = 0; i < 49; i++)
{
- if(strcmp(init->media_source,"Roll") == 0)
- stp_zprintf(init->v, /* End Roll Feed mode */
- "IR\002%c%c%c", 0, 0, 0);
- else
- stp_zprintf(init->v, /* End non-Roll Feed mode */
- "IR\002%c%c%c", 0, 0, 2);
+ (*lum_adjustment)[i] = init->inkname->lum_adjustment[i];
+ if (pt && pt->lum_adjustment)
+ (*lum_adjustment)[i] *= pt->lum_adjustment[i];
}
- stp_zprintf(init->v, /* Load settings from NVRAM */
- "LD%c%c"
- /* Exit remote mode */
- "\033%c%c%c", 0, 0, 0, 0, 0);
+ }
+ if (init->inkname->sat_adjustment)
+ {
+ *sat_adjustment = stp_malloc(sizeof(double) * 49);
+ for (i = 0; i < 49; i++)
+ {
+ (*sat_adjustment)[i] = init->inkname->sat_adjustment[i];
+ if (pt && pt->sat_adjustment)
+ (*sat_adjustment)[i] *= pt->sat_adjustment[i];
+ }
+ }
+ if (init->inkname->hue_adjustment)
+ {
+ *hue_adjustment = stp_malloc(sizeof(double) * 49);
+ for (i = 0; i < 49; i++)
+ {
+ (*hue_adjustment)[i] = init->inkname->hue_adjustment[i];
+ if (pt && pt->hue_adjustment)
+ (*hue_adjustment)[i] += pt->hue_adjustment[i];
+ }
+ }
+}
+
+static int
+count_channels(const escp2_inkname_t *inks)
+{
+ int answer = 0;
+ int i;
+ for (i = 0; i < NCOLORS; i++)
+ if (inks->channels[i])
+ answer += inks->channels[i]->n_subchannels;
+ return answer;
+}
+
+static const escp2_inkname_t *
+get_inktype(const stp_printer_t printer, const stp_vars_t v, int model)
+{
+ const char *ink_type = stp_get_ink_type(v);
+ const inklist_t *ink_list = escp2_inklist(model, v);
+ int i;
+
+ for (i = 0; i < ink_list->n_inks; i++)
+ {
+ if (strcmp(ink_type, ink_list->inknames[i]->name) == 0)
+ return ink_list->inknames[i];
+ }
+ ink_type = escp2_default_parameters(printer, NULL, "InkType");
+ for (i = 0; i < ink_list->n_inks; i++)
+ {
+ if (strcmp(ink_type, ink_list->inknames[i]->name) == 0)
+ return ink_list->inknames[i];
+ }
+ return NULL;
+}
+
+static const physical_subchannel_t default_black_subchannels[] =
+{
+ { 0, 0, 0 }
+};
+static const ink_channel_t default_black_channels =
+{
+ default_black_subchannels, 1
+};
+
+static const escp2_inkname_t default_black_ink =
+{
+ NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL,
+ {
+ &default_black_channels, NULL, NULL, NULL
+ }
+};
+
+static int
+setup_ink_types(const escp2_inkname_t *ink_type,
+ escp2_privdata_t *privdata,
+ unsigned char **cols,
+ int *head_offset,
+ stp_dither_data_t *dt,
+ int channel_limit,
+ int line_length)
+{
+ int i;
+ int channels_in_use = 0;
+ for (i = 0; i < channel_limit; i++)
+ {
+ const ink_channel_t *channel = ink_type->channels[i];
+ if (channel)
+ {
+ int j;
+ for (j = 0; j < channel->n_subchannels; j++)
+ {
+ cols[channels_in_use] = stp_zalloc(line_length);
+ privdata->channels[channels_in_use] = &(channel->channels[j]);
+ stp_add_channel(dt, cols[channels_in_use], i, j);
+ head_offset[channels_in_use] = channel->channels[j].head_offset;
+ channels_in_use++;
+ }
+ }
}
+ return channels_in_use;
}
/*
* 'escp2_print()' - Print an image to an EPSON printer.
*/
static void
-escp2_print(const stp_printer_t printer, /* I - Model */
- stp_image_t *image, /* I - Image to print */
- const stp_vars_t v)
+escp2_do_print(const stp_printer_t printer, /* I - Model */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v,
+ int print_op)
{
unsigned char *cmap = stp_get_cmap(v);
int model = stp_printer_get_model(printer);
- const char *resolution = stp_get_resolution(v);
- const char *media_type = stp_get_media_type(v);
int output_type = stp_get_output_type(v);
int orientation = stp_get_orientation(v);
- const char *ink_type = stp_get_ink_type(v);
- double scaling = stp_get_scaling(v);
- const char *media_source = stp_get_media_source(v);
int top = stp_get_top(v);
int left = stp_get_left(v);
+
+ int i;
int y; /* Looping vars */
- int xdpi, ydpi; /* Resolution */
- int undersample;
- int undersample_denominator;
- int resid;
+
+ const res_t *res;
+ int xdpi;
+ int ydpi; /* Resolution */
int physical_ydpi;
int physical_xdpi;
- int i;
+ int undersample;
+ int resid;
+
int n; /* Output number */
unsigned short *out; /* Output pixels (16-bit) */
- unsigned char *in, /* Input pixels */
- *black = NULL, /* Black bitmap data */
- *cyan = NULL, /* Cyan bitmap data */
- *magenta = NULL, /* Magenta bitmap data */
- *yellow = NULL, /* Yellow bitmap data */
- *lcyan = NULL, /* Light cyan bitmap data */
- *lmagenta = NULL, /* Light magenta bitmap data */
- *dyellow = NULL; /* Dark yellow bitmap data */
+ unsigned char *in; /* Input pixels */
int page_left, /* Left margin of page */
page_right, /* Right margin of page */
page_top, /* Top of page */
page_bottom, /* Bottom of page */
page_width, /* Width of page */
page_height, /* Height of page */
- page_true_height, /* True height of page */
- out_width, /* Width of image on page */
+ page_true_height; /* True height of page */
+ int out_width, /* Width of image on page */
out_height, /* Height of image on page */
out_bpp, /* Output bytes per pixel */
- length, /* Length of raster data */
- errdiv, /* Error dividend */
+ length; /* Length of raster data */
+ int errdiv, /* Error dividend */
errmod, /* Error modulus */
errval, /* Current error value */
errline, /* Current raster line */
errlast; /* Last raster line loaded */
- stp_convert_t colorfunc = 0; /* Color conversion function... */
- int zero_mask;
+ stp_convert_t colorfunc; /* Color conversion function... */
int image_height,
image_width,
image_bpp;
- int use_softweave = 0;
- int use_microweave = 0;
- int nozzles = 1;
- int nozzle_separation = 1;
- int horizontal_passes = 1;
- int vertical_passes = 1;
- int vertical_oversample = 1;
- int unidirectional = 0;
- int hasblack = 0;
- const res_t *res;
- int bits = 1;
- void * weave = NULL;
+
+ int nozzles;
+ int nozzle_separation;
+ int horizontal_passes;
+
+ int bits;
+ void * weave;
void * dither;
- int separation_rows;
- int ink_spread;
stp_vars_t nv = stp_allocate_copy(v);
escp2_init_t init;
- const escp2_variable_inkset_t *inks;
- const paper_t *pt;
- double k_upper, k_lower;
- int max_vres;
- const unsigned char *cols[7];
- int head_offset[8];
- const int *offset_ptr;
- int max_head_offset;
- double lum_adjustment[49], sat_adjustment[49], hue_adjustment[49];
- int ncolors = 0;
+ int max_vres;
+ unsigned char **cols;
+ int *head_offset;
+ int max_head_offset;
+ double *lum_adjustment = NULL;
+ double *sat_adjustment = NULL;
+ double *hue_adjustment = NULL;
escp2_privdata_t privdata;
- int drop_size;
- int min_nozzles;
+ stp_dither_data_t *dt;
+ const escp2_inkname_t *ink_type;
+ int total_channels;
+ int channels_in_use;
+ int channel_limit;
+ const char *input_slot = stp_get_media_source(v);
if (!stp_get_verified(nv))
{
@@ -3914,63 +1264,59 @@ escp2_print(const stp_printer_t printer, /* I - Model */
}
privdata.undersample = 1;
+ privdata.denominator = 1;
privdata.initial_vertical_offset = 0;
+ privdata.printed_something = 0;
+ privdata.last_color = -1;
stp_set_driver_data(nv, &privdata);
- separation_rows = escp2_separation_rows(model, nv);
- max_vres = escp2_max_vres(model, nv);
-
- if (output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME)
- ncolors = 1;
- else
- for (i = 0; i < escp2_ninktypes; i++)
- {
- if (strcmp(ink_type, ink_types[i].name) == 0)
- {
- hasblack = ink_types[i].hasblack;
- ncolors = ink_types[i].ncolors;
- break;
- }
- }
- if (ncolors == 0)
+ ink_type = get_inktype(printer, nv, model);
+ total_channels = count_channels(ink_type);
+ if (output_type != OUTPUT_GRAY && output_type != OUTPUT_MONOCHROME &&
+ !ink_type->is_color)
{
- ink_type = escp2_default_parameters(printer, NULL, "InkType");
- for (i = 0; i < escp2_ninktypes; i++)
- {
- if (strcmp(ink_type, ink_types[i].name) == 0)
- {
- hasblack = ink_types[i].hasblack;
- ncolors = ink_types[i].ncolors;
- break;
- }
- }
+ output_type = OUTPUT_GRAY;
+ stp_set_output_type(nv, OUTPUT_GRAY);
}
- stp_set_output_color_model(nv, COLOR_MODEL_CMY);
/*
- * Setup a read-only pixel region for the entire image...
+ * Figure out the output resolution...
*/
+ res = escp2_find_resolution(model, nv, stp_get_resolution(nv));
+ if (res->softweave)
+ max_vres = escp2_max_vres(model, nv);
+ else
+ max_vres = escp2_base_resolution(model, nv);
+ xdpi = res->hres;
+ ydpi = res->vres;
+ resid = res->resid;
+ undersample = res->vertical_undersample;
+ privdata.undersample = res->vertical_undersample;
+ privdata.denominator = res->vertical_denominator;
- image->init(image);
- image_height = image->height(image);
- image_width = image->width(image);
- image_bpp = image->bpp(image);
+ physical_xdpi = escp2_base_res(model, resid, nv);
+ if (physical_xdpi > xdpi)
+ physical_xdpi = xdpi;
- /*
- * Choose the correct color conversion function...
- */
+ physical_ydpi = ydpi;
+ if (ydpi > max_vres)
+ physical_ydpi = max_vres;
- colorfunc = stp_choose_colorfunc(output_type, image_bpp, cmap, &out_bpp, nv);
+ bits = escp2_bits(model, resid, nv);
/*
* Compute the output size...
*/
+ image->init(image);
+ image_height = image->height(image);
+ image_width = image->width(image);
+
escp2_imageable_area(printer, nv, &page_left, &page_right,
&page_bottom, &page_top);
stp_compute_page_parameters(page_right, page_left, page_top, page_bottom,
- scaling, image_width, image_height, image,
- &orientation, &page_width, &page_height,
+ stp_get_scaling(nv), image_width, image_height,
+ image, &orientation, &page_width, &page_height,
&out_width, &out_height, &left, &top);
/*
@@ -3979,101 +1325,129 @@ escp2_print(const stp_printer_t printer, /* I - Model */
*/
image_height = image->height(image);
image_width = image->width(image);
+ stp_default_media_size(printer, nv, &n, &page_true_height);
/*
- * Figure out the output resolution...
+ * Convert image size to printer resolution...
*/
- res = escp2_find_resolution(resolution);
- if (!res)
- return;
- use_softweave = res->softweave;
- use_microweave = res->microweave;
- if (!use_softweave)
- max_vres = escp2_base_resolution(model, nv);
- xdpi = res->hres;
- ydpi = res->vres;
- resid = res->resid;
- undersample = res->vertical_undersample;
- undersample_denominator = res->vertical_denominator;
- privdata.undersample = res->vertical_undersample;
- vertical_passes = res->vertical_passes;
- vertical_oversample = res->vertical_oversample;
- unidirectional = res->unidirectional;
- drop_size = escp2_ink_type(model, resid, nv);
-
- if (use_microweave &&
- (escp2_has_cap(model, MODEL_MICROWEAVE_EXCEPTION,
- MODEL_MICROWEAVE_EXCEPTION_360, nv)))
+
+ out_width = xdpi * out_width / 72;
+ out_height = ydpi * out_height / 72;
+ length = (out_width + 7) / 8;
+
+ left = physical_ydpi * undersample * left / 72 / res->vertical_denominator;
+
+ /*
+ * Adjust for zero-margin printing...
+ */
+
+ if (escp2_has_cap(model, MODEL_XZEROMARGIN, MODEL_XZEROMARGIN_YES, nv))
{
- if (ydpi == 360)
- use_microweave = 0;
+ /*
+ * In zero-margin mode, the origin is about 3/20" to the left of the
+ * paper's left edge.
+ */
+ left += escp2_zero_margin_offset(model, nv) * physical_ydpi *
+ undersample / max_vres / res->vertical_denominator;
}
- if (use_softweave)
+
+
+ /*
+ * Set up the output channels
+ */
+ cols = stp_zalloc(sizeof(unsigned char *) * total_channels);
+ privdata.channels =
+ stp_zalloc(sizeof(physical_subchannel_t *) * total_channels);
+ head_offset = stp_zalloc(sizeof(int) * total_channels);
+
+ memset(head_offset, 0, sizeof(head_offset));
+ channel_limit = NCOLORS;
+ if (output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME)
+ channel_limit = 1;
+
+ dt = stp_create_dither_data();
+
+ channels_in_use = setup_ink_types(ink_type, &privdata, cols, head_offset,
+ dt, channel_limit, length * bits);
+ if (channels_in_use == 0)
+ {
+ ink_type = &default_black_ink;
+ channels_in_use = setup_ink_types(ink_type, &privdata, cols, head_offset,
+ dt, channel_limit, length * bits);
+ }
+ if (channels_in_use == 1)
+ head_offset[0] = 0;
+ if (escp2_has_cap(model, MODEL_FAST_360, MODEL_FAST_360_YES, nv) &&
+ (ink_type->inkset == INKSET_CMYK || channels_in_use == 1) &&
+ xdpi == 360 && ydpi == 360)
+ init.use_fast_360 = 1;
+ else
+ init.use_fast_360 = 0;
+
+ /*
+ * Set up the printer-specific parameters (weaving)
+ */
+ if (res->softweave)
{
- physical_xdpi = (xdpi > escp2_enhanced_resolution(model, nv)) ?
- escp2_enhanced_xres(model, nv) : escp2_xres(model, nv);
horizontal_passes = xdpi / physical_xdpi;
if ((output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME) &&
+ channels_in_use == 1 &&
+ (ydpi >= (escp2_base_separation(model, nv) /
+ escp2_black_nozzle_separation(model, nv))) &&
(escp2_max_black_resolution(model, nv) < 0 ||
ydpi <= escp2_max_black_resolution(model, nv)) &&
escp2_black_nozzles(model, nv))
+ init.use_black_parameters = 1;
+ else
+ init.use_black_parameters = 0;
+ if (init.use_fast_360)
+ {
+ nozzles = escp2_fast_nozzles(model, nv);
+ nozzle_separation = escp2_fast_nozzle_separation(model, nv);
+ privdata.min_nozzles = escp2_min_fast_nozzles(model, nv);
+ }
+ else if (init.use_black_parameters)
{
nozzles = escp2_black_nozzles(model, nv);
nozzle_separation = escp2_black_nozzle_separation(model, nv);
- min_nozzles = escp2_min_black_nozzles(model, nv);
+ privdata.min_nozzles = escp2_min_black_nozzles(model, nv);
}
else
{
nozzles = escp2_nozzles(model, nv);
nozzle_separation = escp2_nozzle_separation(model, nv);
- min_nozzles = escp2_min_nozzles(model, nv);
+ privdata.min_nozzles = escp2_min_nozzles(model, nv);
}
+ init.nozzle_separation = nozzle_separation;
nozzle_separation =
nozzle_separation * ydpi / escp2_base_separation(model, nv);
}
else
{
- physical_xdpi = (xdpi <= escp2_base_resolution(model, nv)) ?
- xdpi : escp2_base_resolution(model, nv);
horizontal_passes = xdpi / escp2_base_resolution(model, nv);
nozzles = 1;
- min_nozzles = 1;
+ privdata.min_nozzles = 1;
nozzle_separation = 1;
+ init.nozzle_separation = nozzle_separation;
+ init.use_black_parameters = 0;
}
- if (drop_size > 0 && drop_size & 0x10)
- bits = 2;
- else
- bits = 1;
+ init.nozzles = nozzles;
+
if (horizontal_passes == 0)
horizontal_passes = 1;
- privdata.min_nozzles = min_nozzles;
- physical_ydpi = ydpi;
- if (ydpi > max_vres)
- physical_ydpi = max_vres;
-
- offset_ptr = escp2_head_offset(model, nv);
max_head_offset = 0;
- if (ncolors > 1)
- for (i = 0; i < NCHANNELS; i++)
+ if (channels_in_use > 1)
+ for (i = 0; i < total_channels; i++)
{
- head_offset[i] = offset_ptr[i] * ydpi /
- escp2_base_separation(model, nv);
+ head_offset[i] = head_offset[i] * ydpi/escp2_base_separation(model,nv);
if (head_offset[i] > max_head_offset)
max_head_offset = head_offset[i];
}
-
- /*
- * Let the user know what we're doing...
- */
-
- image->progress_init(image);
-
/*
* Send ESC/P2 initialization commands...
*/
- stp_default_media_size(printer, nv, &n, &page_true_height);
init.model = model;
init.output_type = output_type;
if (init.output_type == OUTPUT_MONOCHROME)
@@ -4082,22 +1456,23 @@ escp2_print(const stp_printer_t printer, /* I - Model */
if (init.ydpi > escp2_max_vres(init.model, init.v))
init.ydpi = escp2_max_vres(init.model, init.v);
init.xdpi = xdpi;
- init.use_softweave = use_softweave;
- init.use_microweave = use_microweave;
- init.page_height = page_true_height;
+ init.physical_xdpi = physical_xdpi;
+ init.use_softweave = res->softweave;
+ init.use_interleave = res->interleave;
+ init.page_true_height = page_true_height;
init.page_width = page_width;
init.page_top = page_top;
- if (init.output_type == OUTPUT_GRAY)
+ if (init.output_type == OUTPUT_GRAY && channels_in_use == 1)
{
- if (escp2_max_black_resolution(model, nv) < 0 ||
- ydpi <= escp2_max_black_resolution(init.model, init.v))
+ if (init.use_black_parameters)
init.initial_vertical_offset =
escp2_black_initial_vertical_offset(init.model, init.v) * init.ydpi /
escp2_base_separation(model, nv);
else
- init.initial_vertical_offset =
- (escp2_initial_vertical_offset(init.model, init.v) + offset_ptr[0]) *
- init.ydpi / escp2_base_separation(model, nv);
+ init.initial_vertical_offset =
+ head_offset[0] +
+ (escp2_initial_vertical_offset(init.model, init.v) *
+ init.ydpi / escp2_base_separation(model, nv));
}
else
init.initial_vertical_offset =
@@ -4112,259 +1487,157 @@ escp2_print(const stp_printer_t printer, /* I - Model */
init.page_bottom = 0;
init.horizontal_passes = horizontal_passes;
- init.vertical_passes = vertical_passes;
- init.vertical_oversample = vertical_oversample;
- init.unidirectional = unidirectional;
+ init.vertical_passes = res->vertical_passes;
+ init.vertical_oversample = res->vertical_oversample;
+ init.unidirectional = res->unidirectional;
init.resid = resid;
init.bits = bits;
- init.paper_type = media_type;
- init.media_source = media_source;
+ init.paper_type = stp_get_media_type(nv);
+ init.media_source = stp_get_media_source(nv);
init.v = nv;
+ init.inkname = ink_type;
+ init.total_channels = total_channels;
- escp2_init_printer(&init);
-
- /*
- * Convert image size to printer resolution...
- */
-
- out_width = xdpi * out_width / 72;
- out_height = ydpi * out_height / 72;
-
- left = physical_ydpi * undersample * left / 72 / undersample_denominator;
-
- /*
- * Adjust for zero-margin printing...
- */
-
- if (escp2_has_cap(model, MODEL_XZEROMARGIN, MODEL_XZEROMARGIN_YES, nv))
- {
- /*
- * In zero-margin mode, the origin is about 3/20" to the left of the
- * paper's left edge.
- */
- left += escp2_zero_margin_offset(model, nv) * physical_ydpi *
- undersample / max_vres / undersample_denominator;
- }
-
- /*
- * Allocate memory for the raster data...
- */
-
- length = (out_width + 7) / 8;
-
- if (output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME)
- black = xzmalloc(length * bits);
- else
+ init.input_slot = NULL;
+ if (input_slot && strlen(input_slot) > 0)
{
- cyan = xzmalloc(length * bits);
- magenta = xzmalloc(length * bits);
- yellow = xzmalloc(length * bits);
-
- if (ncolors == 7)
- dyellow = xzmalloc(length * bits);
- if (ncolors >= 6)
+ const input_slot_list_t *slots = escp2_input_slots(model, v);
+ for (i = 0; i < slots->n_input_slots; i++)
{
- lcyan = xzmalloc(length * bits);
- lmagenta = xzmalloc(length * bits);
- }
- if (hasblack)
- black = xzmalloc(length * bits);
- }
- cols[0] = black;
- cols[1] = magenta;
- cols[2] = cyan;
- cols[3] = yellow;
- cols[4] = lmagenta;
- cols[5] = lcyan;
- cols[6] = dyellow;
-
- /* Epson printers are currently all 720 physical dpi vertically */
- weave = stp_initialize_weave(nozzles, nozzle_separation,
- horizontal_passes, vertical_passes,
- vertical_oversample, ncolors, bits,
- out_width, out_height, separation_rows,
- top * physical_ydpi / 72,
- (page_height * physical_ydpi / 72 +
- escp2_extra_feed(model, nv) * physical_ydpi /
- escp2_base_resolution(model, nv)),
- 1, head_offset, nv, flush_pass,
- FILLFUNC, PACKFUNC, COMPUTEFUNC);
-
- /*
- * Compute the LUT. For now, it's 8 bit, but that may eventually
- * sometimes change.
- */
- if (ncolors > 4)
- k_lower = .5;
- else
- k_lower = .25;
-
- pt = get_media_type(model, stp_get_media_type(nv), nv);
- if (pt)
- {
- stp_set_density(nv, stp_get_density(nv) * pt->base_density);
- if (ncolors >= 5)
- {
- stp_set_cyan(nv, stp_get_cyan(nv) * pt->p_cyan);
- stp_set_magenta(nv, stp_get_magenta(nv) * pt->p_magenta);
- stp_set_yellow(nv, stp_get_yellow(nv) * pt->p_yellow);
- }
- else
- {
- stp_set_cyan(nv, stp_get_cyan(nv) * pt->cyan);
- stp_set_magenta(nv, stp_get_magenta(nv) * pt->magenta);
- stp_set_yellow(nv, stp_get_yellow(nv) * pt->yellow);
+ if (slots->slots[i].name &&
+ strcmp(input_slot, slots->slots[i].name) == 0)
+ {
+ init.input_slot = &(slots->slots[i]);
+ break;
+ }
}
- stp_set_saturation(nv, stp_get_saturation(nv) * pt->saturation);
- stp_set_gamma(nv, stp_get_gamma(nv) * pt->gamma);
- k_lower *= pt->k_lower_scale;
- k_upper = pt->k_upper;
}
- else /* Can't find paper type? Assume plain */
+ if (init.input_slot && init.input_slot->roll_feed_cut_flags)
{
- stp_set_density(nv, stp_get_density(nv) * .8);
- k_lower *= .1;
- k_upper = .5;
+ init.page_true_height += 4;
+ init.page_top += 2;
+ init.page_bottom += 2;
+ top += 2;
+ page_height += 2;
}
- stp_set_density(nv, stp_get_density(nv) * escp2_density(model, resid, nv));
- if (stp_get_density(nv) > 1.0)
- stp_set_density(nv, 1.0);
- if (ncolors == 1)
- stp_set_gamma(nv, stp_get_gamma(nv) / .8);
- stp_compute_lut(nv, 256);
- /*
- * Output the page...
- */
+ if (print_op & OP_JOB_START)
+ escp2_init_printer(&init);
+ if (print_op & OP_JOB_PRINT)
+ {
+
+ /*
+ * Allocate memory for the raster data...
+ */
+
+ weave = stp_initialize_weave(nozzles, nozzle_separation,
+ horizontal_passes, res->vertical_passes,
+ res->vertical_oversample, total_channels,
+ bits,
+ out_width, out_height,
+ top * physical_ydpi / 72,
+ (page_height * physical_ydpi / 72 +
+ escp2_extra_feed(model, nv) *
+ physical_ydpi /
+ escp2_base_resolution(model, nv)),
+ 1, head_offset, nv, flush_pass,
+ FILLFUNC, PACKFUNC, COMPUTEFUNC);
+
+ stp_set_output_color_model(nv, COLOR_MODEL_CMY);
+ image_bpp = image->bpp(image);
+ colorfunc = stp_choose_colorfunc(output_type, image_bpp, cmap,
+ &out_bpp, nv);
+
+ in = stp_zalloc(image_width * image_bpp);
+ out = stp_zalloc(image_width * out_bpp * 2);
+
+ errdiv = image_height / out_height;
+ errmod = image_height % out_height;
+ errval = 0;
+ errlast = -1;
+ errline = 0;
+
+ if (xdpi > ydpi)
+ dither = stp_init_dither(image_width, out_width, 1, xdpi / ydpi, nv);
+ else
+ dither = stp_init_dither(image_width, out_width, ydpi / xdpi, 1, nv);
- if (xdpi > ydpi)
- dither = stp_init_dither(image_width, out_width, 1, xdpi / ydpi, nv);
- else
- dither = stp_init_dither(image_width, out_width, ydpi / xdpi, 1, nv);
+ adjust_print_quality(&init, dither,
+ &lum_adjustment, &sat_adjustment, &hue_adjustment);
- for (i = 0; i <= NCOLORS; i++)
- stp_dither_set_black_level(dither, i, 1.0);
- stp_dither_set_black_lower(dither, k_lower);
- stp_dither_set_black_upper(dither, k_upper);
+ /*
+ * Let the user know what we're doing...
+ */
- inks = escp2_inks(model, resid, ncolors, bits, nv);
- if (inks)
- for (i = 0; i < NCOLORS; i++)
- if ((*inks)[i])
- stp_dither_set_ranges(dither, i, (*inks)[i]->count, (*inks)[i]->range,
- (*inks)[i]->density * k_upper *
- stp_get_density(nv));
-
- switch (stp_get_image_type(nv))
- {
- case IMAGE_LINE_ART:
- stp_dither_set_ink_spread(dither, 19);
- break;
- case IMAGE_SOLID_TONE:
- stp_dither_set_ink_spread(dither, 15);
- break;
- case IMAGE_CONTINUOUS:
- ink_spread = 13;
- if (ydpi > escp2_max_vres(model, nv))
- ink_spread++;
- if (bits > 1)
- ink_spread++;
- stp_dither_set_ink_spread(dither, ink_spread);
- break;
- }
- stp_dither_set_density(dither, stp_get_density(nv));
-
- in = stp_malloc(image_width * image_bpp);
- out = stp_malloc(image_width * out_bpp * 2);
+ image->progress_init(image);
- errdiv = image_height / out_height;
- errmod = image_height % out_height;
- errval = 0;
- errlast = -1;
- errline = 0;
- if (escp2_lum_adjustment(model, nv))
- {
- for (i = 0; i < 49; i++)
- {
- lum_adjustment[i] = escp2_lum_adjustment(model, nv)[i];
- if (pt && pt->lum_adjustment)
- lum_adjustment[i] *= pt->lum_adjustment[i];
- }
- }
- if (escp2_sat_adjustment(model, nv))
- {
- for (i = 0; i < 49; i++)
+ QUANT(0);
+ for (y = 0; y < out_height; y ++)
{
- sat_adjustment[i] = escp2_sat_adjustment(model, nv)[i];
- if (pt && pt->sat_adjustment)
- sat_adjustment[i] *= pt->sat_adjustment[i];
- }
- }
- if (escp2_hue_adjustment(model, nv))
- {
- for (i = 0; i < 49; i++)
- {
- hue_adjustment[i] = escp2_hue_adjustment(model, nv)[i];
- if (pt && pt->hue_adjustment)
- hue_adjustment[i] += pt->hue_adjustment[i];
- }
- }
+ int duplicate_line = 1;
+ int zero_mask;
+ if ((y & 63) == 0)
+ image->note_progress(image, y, out_height);
- QUANT(0);
- for (y = 0; y < out_height; y ++)
- {
- int duplicate_line = 1;
- if ((y & 63) == 0)
- image->note_progress(image, y, out_height);
+ if (errline != errlast)
+ {
+ errlast = errline;
+ duplicate_line = 0;
+ if (image->get_row(image, in, errline) != STP_IMAGE_OK)
+ break;
+ (*colorfunc)(nv, in, out, &zero_mask, image_width, image_bpp,
+ cmap, hue_adjustment, lum_adjustment,
+ sat_adjustment);
+ }
+ QUANT(1);
- if (errline != errlast)
- {
- errlast = errline;
- duplicate_line = 0;
- if (image->get_row(image, in, errline) != STP_IMAGE_OK)
- break;
- (*colorfunc)(nv, in, out, &zero_mask, image_width, image_bpp, cmap,
- escp2_hue_adjustment(model, nv) ? hue_adjustment : NULL,
- escp2_lum_adjustment(model, nv) ? lum_adjustment : NULL,
- escp2_sat_adjustment(model, nv) ? sat_adjustment :NULL);
- }
- QUANT(1);
-
- stp_dither(out, y, dither, cyan, lcyan, magenta, lmagenta,
- yellow, dyellow, black, duplicate_line, zero_mask);
- QUANT(2);
-
- stp_write_weave(weave, length, ydpi, model, out_width, left,
- xdpi, physical_xdpi, cols);
- QUANT(3);
- errval += errmod;
- errline += errdiv;
- if (errval >= out_height)
- {
- errval -= out_height;
- errline ++;
+ stp_dither(out, y, dither, dt, duplicate_line, zero_mask);
+ QUANT(2);
+
+ stp_write_weave(weave, length, ydpi, model, out_width, left,
+ xdpi, physical_xdpi, cols);
+ QUANT(3);
+ errval += errmod;
+ errline += errdiv;
+ if (errval >= out_height)
+ {
+ errval -= out_height;
+ errline ++;
+ }
+ QUANT(4);
}
- QUANT(4);
+ image->progress_conclude(image);
+ stp_flush_all(weave, model, out_width, left, ydpi, xdpi, physical_xdpi);
+ QUANT(5);
+
+ /*
+ * Cleanup...
+ */
+ stp_destroy_weave(weave);
+ stp_free_dither(dither);
+ stp_free_lut(nv);
+ stp_free(in);
+ stp_free(out);
+ if (hue_adjustment)
+ stp_free(hue_adjustment);
+ if (sat_adjustment)
+ stp_free(sat_adjustment);
+ if (lum_adjustment)
+ stp_free(lum_adjustment);
+ if (!privdata.printed_something)
+ stp_putc('\n', nv);
+ stp_puts("\014", nv); /* Eject page */
}
- image->progress_conclude(image);
- stp_flush_all(weave, model, out_width, left, ydpi, xdpi, physical_xdpi);
- QUANT(5);
-
- stp_free_dither(dither);
-
- /*
- * Cleanup...
- */
- escp2_deinit_printer(&init);
-
- stp_free_lut(nv);
- stp_free(in);
- stp_free(out);
- stp_destroy_weave(weave);
-
- for (i = 0; i < 7; i++)
+ if (print_op & OP_JOB_END)
+ escp2_deinit_printer(&init);
+
+ stp_free_dither_data(dt);
+ for (i = 0; i < total_channels; i++)
if (cols[i])
stp_free((unsigned char *) cols[i]);
+ stp_free(cols);
+ stp_free(head_offset);
+ stp_free(privdata.channels);
#ifdef QUANTIFY
print_timers(nv);
@@ -4372,6 +1645,43 @@ escp2_print(const stp_printer_t printer, /* I - Model */
stp_free_vars(nv);
}
+static void
+escp2_print(const stp_printer_t printer, /* I - Model */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v)
+{
+ int op = OP_JOB_PRINT;
+ if (stp_get_job_mode(v) == STP_JOB_MODE_PAGE)
+ op = OP_JOB_START | OP_JOB_PRINT | OP_JOB_END;
+ escp2_do_print(printer, image, v, op);
+}
+
+static int
+escp2_job_start(const stp_printer_t printer, /* I - Model */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v)
+{
+ if (!stp_get_verified(v))
+ return 0;
+ if (stp_get_job_mode(v) != STP_JOB_MODE_JOB)
+ return 0;
+ escp2_do_print(printer, image, v, OP_JOB_START);
+ return 1;
+}
+
+static int
+escp2_job_end(const stp_printer_t printer, /* I - Model */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v)
+{
+ if (!stp_get_verified(v))
+ return 0;
+ if (stp_get_job_mode(v) != STP_JOB_MODE_JOB)
+ return 0;
+ escp2_do_print(printer, image, v, OP_JOB_END);
+ return 1;
+}
+
const stp_printfuncs_t stp_escp2_printfuncs =
{
escp2_parameters,
@@ -4381,39 +1691,186 @@ const stp_printfuncs_t stp_escp2_printfuncs =
escp2_print,
escp2_default_parameters,
escp2_describe_resolution,
- stp_verify_printer_params
+ stp_verify_printer_params,
+ escp2_job_start,
+ escp2_job_end
};
static void
+set_vertical_position(stp_softweave_t *sw, stp_pass_t *pass, int model,
+ const stp_vars_t v)
+{
+ escp2_privdata_t *pd = (escp2_privdata_t *) stp_get_driver_data(v);
+ int advance = pass->logicalpassstart - sw->last_pass_offset -
+ (escp2_separation_rows(model, v) - 1);
+ advance *= pd->undersample;
+ if (pass->logicalpassstart > sw->last_pass_offset ||
+ pd->initial_vertical_offset != 0)
+ {
+ int a0, a1, a2, a3;
+ advance += pd->initial_vertical_offset;
+ pd->initial_vertical_offset = 0;
+ a0 = advance & 0xff;
+ a1 = (advance >> 8) & 0xff;
+ a2 = (advance >> 16) & 0xff;
+ a3 = (advance >> 24) & 0xff;
+ if (escp2_use_extended_commands(model, v, sw->jets > 1))
+ stp_zprintf(v, "\033(v%c%c%c%c%c%c", 4, 0, a0, a1, a2, a3);
+ else
+ stp_zprintf(v, "\033(v%c%c%c%c", 2, 0, a0, a1);
+ sw->last_pass_offset = pass->logicalpassstart;
+ }
+}
+
+static void
+set_color(stp_softweave_t *sw, stp_pass_t *pass, int model, const stp_vars_t v,
+ int color)
+{
+ escp2_privdata_t *pd = (escp2_privdata_t *) stp_get_driver_data(v);
+ if (pd->last_color != color &&
+ ! escp2_use_extended_commands(model, v, sw->jets > 1))
+ {
+ int ncolor = pd->channels[color]->color;
+ int density = pd->channels[color]->density;
+ if (density >= 0)
+ stp_zprintf(v, "\033(r%c%c%c%c", 2, 0, density, ncolor);
+ else
+ stp_zprintf(v, "\033r%c", ncolor);
+ pd->last_color = color;
+ }
+}
+
+static void
+set_horizontal_position(stp_softweave_t *sw, stp_pass_t *pass, int model,
+ const stp_vars_t v, int hoffset, int ydpi,
+ int xdpi, int vertical_subpass)
+{
+ int microoffset = vertical_subpass & (sw->horizontal_weave - 1);
+ escp2_privdata_t *pd = (escp2_privdata_t *) stp_get_driver_data(v);
+ if (!escp2_has_advanced_command_set(model, v) &&
+ (xdpi <= escp2_base_resolution(model, v) ||
+ escp2_max_hres(model, v) < 1440))
+ {
+ int pos = (hoffset + microoffset);
+ if (pos > 0)
+ stp_zprintf(v, "\033\\%c%c", pos & 255, pos >> 8);
+ }
+ else if (escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO,v) ||
+ (escp2_has_advanced_command_set(model, v) &&
+ escp2_has_cap(model, MODEL_VARIABLE_DOT, MODEL_VARIABLE_YES, v)))
+ {
+ int pos = ((hoffset * xdpi * pd->denominator / ydpi) + microoffset);
+ if (pos > 0)
+ stp_zprintf(v, "\033($%c%c%c%c%c%c", 4, 0,
+ pos & 255, (pos >> 8) & 255,
+ (pos >> 16) & 255, (pos >> 24) & 255);
+ }
+ else
+ {
+ int pos = ((hoffset * escp2_max_hres(model, v) * pd->denominator / ydpi)+
+ microoffset);
+ if (pos > 0)
+ stp_zprintf(v, "\033(\\%c%c%c%c%c%c", 4, 0, 160, 5,
+ pos & 255, pos >> 8);
+ }
+}
+
+static void
+send_print_command(stp_softweave_t *sw, stp_pass_t *pass, int model, int color,
+ int lwidth, const stp_vars_t v, int hoffset, int ydpi,
+ int xdpi, int physical_xdpi, int nlines)
+{
+ if (!escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO,v) &&
+ sw->jets == 1 && sw->bitwidth == 1)
+ {
+ int ygap = 3600 / ydpi;
+ int xgap = 3600 / xdpi;
+ if (ydpi == 720 && escp2_extra_720dpi_separation(model, v))
+ ygap *= escp2_extra_720dpi_separation(model, v);
+ stp_zprintf(v, "\033.%c%c%c%c%c%c", COMPRESSION, ygap, xgap,
+ 1, lwidth & 255, (lwidth >> 8) & 255);
+ }
+ else if (!escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO,v) &&
+ escp2_has_cap(model, MODEL_VARIABLE_DOT, MODEL_VARIABLE_NO, v))
+ {
+ int ygap = 3600 / ydpi;
+ int xgap = 3600 / physical_xdpi;
+ if (escp2_extra_720dpi_separation(model, v))
+ ygap *= escp2_extra_720dpi_separation(model, v);
+ else if (escp2_pseudo_separation_rows(model, v) > 0)
+ ygap *= escp2_pseudo_separation_rows(model, v);
+ else
+ ygap *= escp2_separation_rows(model, v);
+ stp_zprintf(v, "\033.%c%c%c%c%c%c", COMPRESSION, ygap, xgap,
+ nlines, lwidth & 255, (lwidth >> 8) & 255);
+ }
+ else
+ {
+ escp2_privdata_t *pd = (escp2_privdata_t *) stp_get_driver_data(v);
+ int ncolor = pd->channels[color]->color;
+ int nwidth = sw->bitwidth * ((lwidth + 7) / 8);
+ if (pd->channels[color]->density >= 0)
+ ncolor |= (pd->channels[color]->density << 4);
+ stp_zprintf(v, "\033i%c%c%c%c%c%c%c", ncolor, COMPRESSION,
+ sw->bitwidth, nwidth & 255, (nwidth >> 8) & 255,
+ nlines & 255, (nlines >> 8) & 255);
+ }
+}
+
+static void
+send_extra_data(stp_softweave_t *sw, stp_vars_t v, int extralines, int lwidth)
+{
+ int k, l;
+ int bytes_to_fill = sw->bitwidth * ((lwidth + 7) / 8);
+ int full_blocks = bytes_to_fill / 128;
+ int leftover = bytes_to_fill % 128;
+ int total_bytes = extralines * (full_blocks + 1) * 2;
+ unsigned char *buf = stp_malloc(total_bytes);
+ total_bytes = 0;
+ for (k = 0; k < extralines; k++)
+ {
+ for (l = 0; l < full_blocks; l++)
+ {
+ buf[total_bytes++] = 129;
+ buf[total_bytes++] = 0;
+ }
+ if (leftover == 1)
+ {
+ buf[total_bytes++] = 1;
+ buf[total_bytes++] = 0;
+ }
+ else if (leftover > 0)
+ {
+ buf[total_bytes++] = 257 - leftover;
+ buf[total_bytes++] = 0;
+ }
+ }
+ stp_zfwrite((const char *) buf, total_bytes, 1, v);
+ stp_free(buf);
+}
+
+static void
flush_pass(stp_softweave_t *sw, int passno, int model, int width,
int hoffset, int ydpi, int xdpi, int physical_xdpi,
int vertical_subpass)
{
int j;
const stp_vars_t v = (sw->v);
- escp2_privdata_t *pd =
- (escp2_privdata_t *) stp_get_driver_data(v);
+ escp2_privdata_t *pd = (escp2_privdata_t *) stp_get_driver_data(v);
stp_lineoff_t *lineoffs = stp_get_lineoffsets_by_pass(sw, passno);
stp_lineactive_t *lineactive = stp_get_lineactive_by_pass(sw, passno);
const stp_linebufs_t *bufs = stp_get_linebases_by_pass(sw, passno);
stp_pass_t *pass = stp_get_pass_by_pass(sw, passno);
stp_linecount_t *linecount = stp_get_linecount_by_pass(sw, passno);
int lwidth = (width + (sw->horizontal_weave - 1)) / sw->horizontal_weave;
- int microoffset = vertical_subpass & (sw->horizontal_weave - 1);
- int advance = pass->logicalpassstart - sw->last_pass_offset -
- (sw->separation_rows - 1);
- int pos;
- advance *= pd->undersample;
ydpi *= pd->undersample;
if (ydpi > escp2_max_vres(model, v))
ydpi = escp2_max_vres(model, v);
for (j = 0; j < sw->ncolors; j++)
{
- if (lineactive[0].v[j] > 0 ||
- escp2_has_cap(model, MODEL_MICROWEAVE_EXCEPTION,
- MODEL_MICROWEAVE_EXCEPTION_BLACK, v))
+ if (lineactive[0].v[j] > 0)
{
int nlines = linecount[0].v[j];
int minlines = pd->min_nozzles;
@@ -4423,144 +1880,21 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
extralines = minlines - nlines;
nlines = minlines;
}
- /*
- * Set vertical position
- */
- if (pass->logicalpassstart > sw->last_pass_offset ||
- pd->initial_vertical_offset != 0)
- {
- int a0, a1, a2, a3;
- advance += pd->initial_vertical_offset;
- pd->initial_vertical_offset = 0;
- a0 = advance & 0xff;
- a1 = (advance >> 8) & 0xff;
- a2 = (advance >> 16) & 0xff;
- a3 = (advance >> 24) & 0xff;
- if (!escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO, v) &&
- (sw->jets == 1 || escp2_has_cap(model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, v)))
- stp_zprintf(v, "\033(v%c%c%c%c", 2, 0, a0, a1);
- else
- stp_zprintf(v, "\033(v%c%c%c%c%c%c", 4, 0, a0, a1, a2, a3);
- sw->last_pass_offset = pass->logicalpassstart;
- }
-
- /*
- * Set color where appropriate
- */
- if (sw->last_color != j &&
- !escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO, v) &&
- (sw->jets == 1 || escp2_has_cap(model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, v)))
- {
- if (!escp2_has_cap(model, MODEL_COLOR, MODEL_COLOR_4, v))
- stp_zprintf(v, "\033(r%c%c%c%c", 2, 0, densities[j],colors[j]);
- else
- stp_zprintf(v, "\033r%c", colors[j]);
- sw->last_color = j;
- }
-
- /*
- * Set horizontal position
- */
- if (!escp2_has_advanced_command_set(model, v) &&
- (xdpi <= escp2_base_resolution(model, v) ||
- escp2_max_hres(model, v) < 1440))
- {
- pos = (hoffset + microoffset);
- if (pos > 0)
- stp_zprintf(v, "\033\\%c%c", pos & 255, pos >> 8);
- }
- else if (escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO,v) ||
- (escp2_has_advanced_command_set(model, v) &&
- !(escp2_has_cap(model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL, v))))
- {
- pos = ((hoffset * xdpi / ydpi) + microoffset);
- if (pos > 0)
- stp_zprintf(v, "\033($%c%c%c%c%c%c", 4, 0,
- pos & 255, (pos >> 8) & 255,
- (pos >> 16) & 255, (pos >> 24) & 255);
- }
- else
- {
- pos = ((hoffset * escp2_max_hres(model, v) / ydpi) +
- microoffset);
- if (pos > 0)
- stp_zprintf(v, "\033(\\%c%c%c%c%c%c", 4, 0, 160, 5,
- pos & 255, pos >> 8);
- }
-
- /*
- * Issue print command
- */
- if (!escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO,v) &&
- sw->jets == 1 && sw->bitwidth == 1)
- {
- int ygap = 3600 / ydpi;
- int xgap = 3600 / xdpi;
- if (ydpi == 720 &&
- escp2_has_cap(model, MODEL_720DPI_MODE, MODEL_720DPI_600, v))
- ygap *= 8;
- stp_zprintf(v, "\033.%c%c%c%c%c%c", COMPRESSION, ygap, xgap,
- 1, lwidth & 255, (lwidth >> 8) & 255);
- }
- else if (!escp2_has_cap(model, MODEL_COMMAND, MODEL_COMMAND_PRO,v) &&
- escp2_has_cap(model, MODEL_VARIABLE_DOT,
- MODEL_VARIABLE_NORMAL,v))
- {
- int ygap = 3600 / ydpi;
- int xgap = 3600 / physical_xdpi;
- if (escp2_has_cap(model, MODEL_720DPI_MODE, MODEL_720DPI_600, v))
- ygap *= 8;
- else if (escp2_pseudo_separation_rows(model, v) > 0)
- ygap *= escp2_pseudo_separation_rows(model, v);
- else
- ygap *= sw->separation_rows;
- stp_zprintf(v, "\033.%c%c%c%c%c%c", COMPRESSION, ygap, xgap,
- nlines, lwidth & 255, (lwidth >> 8) & 255);
- }
- else
- {
- int ncolor = (densities[j] << 4) | colors[j];
- int nwidth = sw->bitwidth * ((lwidth + 7) / 8);
- stp_zprintf(v, "\033i%c%c%c%c%c%c%c", ncolor, COMPRESSION,
- sw->bitwidth, nwidth & 255, (nwidth >> 8) & 255,
- nlines & 255, (nlines >> 8) & 255);
- }
+ set_vertical_position(sw, pass, model, v);
+ set_color(sw, pass, model, v, j);
+ set_horizontal_position(sw, pass, model, v, hoffset, ydpi, xdpi,
+ vertical_subpass);
+ send_print_command(sw, pass, model, j, lwidth, v, hoffset, ydpi,
+ xdpi, physical_xdpi, nlines);
/*
* Send the data
*/
stp_zfwrite((const char *)bufs[0].v[j], lineoffs[0].v[j], 1, v);
if (extralines)
- {
- int k = 0;
- for (k = 0; k < extralines; k++)
- {
- int bytes_to_fill = sw->bitwidth * ((lwidth + 7) / 8);
- int full_blocks = bytes_to_fill / 128;
- int leftover = bytes_to_fill % 128;
- int l = 0;
- while (l < full_blocks)
- {
- stp_putc(129, v);
- stp_putc(0, v);
- l++;
- }
- if (leftover == 1)
- {
- stp_putc(1, v);
- stp_putc(0, v);
- }
- else if (leftover > 0)
- {
- stp_putc(257 - leftover, v);
- stp_putc(0, v);
- }
- }
- }
+ send_extra_data(sw, v, extralines, lwidth);
stp_putc('\r', v);
+ pd->printed_something = 1;
}
lineoffs[0].v[j] = 0;
linecount[0].v[j] = 0;
diff --git a/src/main/print-escp2.h b/src/main/print-escp2.h
new file mode 100644
index 0000000..f289f95
--- /dev/null
+++ b/src/main/print-escp2.h
@@ -0,0 +1,379 @@
+/*
+ * "$Id: print-escp2.h,v 1.7.4.9 2003/12/02 01:51:00 rlk Exp $"
+ *
+ * Print plug-in EPSON ESC/P2 driver for the GIMP.
+ *
+ * Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
+ * Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/*
+ * Printer capabilities.
+ *
+ * Various classes of printer capabilities are represented by bitmasks.
+ */
+
+typedef unsigned long model_cap_t;
+typedef unsigned long model_featureset_t;
+
+
+/*
+ * For each printer, we can select from a variety of dot sizes.
+ * For single dot size printers, the available sizes are usually 0,
+ * which is the "default", and some subset of 1-4. For simple variable
+ * dot size printers (with only one kind of variable dot size), the
+ * variable dot size is specified as 0x10. For newer printers, there
+ * is a choice of variable dot sizes available, 0x10, 0x11, and 0x12 in
+ * order of increasing size.
+ *
+ * Normally, we want to specify the smallest dot size that lets us achieve
+ * a density of less than .8 or thereabouts (above that we start to get
+ * some dither artifacts). This needs to be tested for each printer and
+ * resolution.
+ *
+ * An entry of -1 in a slot means that this resolution is not available.
+ */
+
+typedef int escp2_dot_size_t[13];
+
+/*
+ * Choose the number of bits to use at each resolution.
+ */
+
+typedef int escp2_bits_t[13];
+
+/*
+ * Choose the base resolution to use at each resolution.
+ */
+
+typedef int escp2_base_resolutions_t[13];
+
+/*
+ * Specify the base density for each available resolution.
+ * This obviously depends upon the dot size.
+ */
+
+typedef double escp2_densities_t[13];
+
+/*
+ * Definition of the multi-level inks available to a given printer.
+ * Each printer may use a different kind of ink droplet for variable
+ * and single drop size for each supported horizontal resolution and
+ * type of ink (4 or 6 color).
+ *
+ * Recall that 6 color ink is treated as simply another kind of
+ * multi-level ink, but the driver offers the user a choice of 4 and
+ * 6 color ink, so we need to define appropriate inksets for both
+ * kinds of ink.
+ *
+ * Stuff like the MIS 4 and 6 "color" monochrome inks doesn't fit into
+ * this model very nicely, so we'll either have to special case it
+ * or find some way of handling it in here.
+ */
+
+#define RES_120_M 0
+#define RES_120 1
+#define RES_180_M 2
+#define RES_180 3
+#define RES_360_M 4
+#define RES_360 5
+#define RES_720_360_M 6
+#define RES_720_360 7
+#define RES_720_M 8
+#define RES_720 9
+#define RES_1440_720_M 10
+#define RES_1440_720 11
+#define RES_1440_1440_M 12
+#define RES_1440_1440 13
+#define RES_2880_720_M 14
+#define RES_2880_720 15
+#define RES_2880_1440_M 16
+#define RES_2880_1440 17
+#define RES_N 18
+
+typedef struct escp2_variable_ink
+{
+ const stp_simple_dither_range_t *range;
+ int count;
+ double density;
+} escp2_variable_ink_t;
+
+typedef const escp2_variable_ink_t *escp2_variable_inkset_t[NCOLORS];
+
+typedef const escp2_variable_inkset_t *escp2_variable_inklist_t[][RES_N / 2];
+
+typedef struct
+{
+ const char *name;
+ const char *text;
+ int paper_feed_sequence;
+ int platen_gap;
+ double base_density;
+ double k_lower_scale;
+ double k_upper;
+ double cyan;
+ double magenta;
+ double yellow;
+ double p_cyan;
+ double p_magenta;
+ double p_yellow;
+ double saturation;
+ double gamma;
+ int feed_adjustment;
+ int vacuum_intensity;
+ int paper_thickness;
+ const double *hue_adjustment;
+ const double *lum_adjustment;
+ const double *sat_adjustment;
+} paper_t;
+
+typedef struct
+{
+ int paper_count;
+ const paper_t *papers;
+} paperlist_t;
+
+
+#define MODEL_COMMAND_MASK 0xful /* What general command set does */
+#define MODEL_COMMAND_1998 0x0ul
+#define MODEL_COMMAND_1999 0x1ul /* The 1999 series printers */
+#define MODEL_COMMAND_2000 0x2ul /* The 2000 series printers */
+#define MODEL_COMMAND_PRO 0x3ul /* Stylus Pro printers */
+
+#define MODEL_XZEROMARGIN_MASK 0x10ul /* Does this printer support */
+#define MODEL_XZEROMARGIN_NO 0x00ul /* zero margin mode? */
+#define MODEL_XZEROMARGIN_YES 0x10ul /* (print to edge of the paper) */
+
+#define MODEL_ROLLFEED_MASK 0x20ul /* Does this printer support */
+#define MODEL_ROLLFEED_NO 0x00ul /* a roll feed? */
+#define MODEL_ROLLFEED_YES 0x20ul
+
+#define MODEL_VARIABLE_DOT_MASK 0x40ul /* Does this printer support var */
+#define MODEL_VARIABLE_NO 0x00ul /* dot size printing? The newest */
+#define MODEL_VARIABLE_YES 0x40ul /* printers support multiple modes */
+
+#define MODEL_GRAYMODE_MASK 0x80ul /* Does this printer support special */
+#define MODEL_GRAYMODE_NO 0x00ul /* fast black printing? */
+#define MODEL_GRAYMODE_YES 0x80ul
+
+#define MODEL_VACUUM_MASK 0x100ul
+#define MODEL_VACUUM_NO 0x000ul
+#define MODEL_VACUUM_YES 0x100ul
+
+#define MODEL_FAST_360_MASK 0x200ul
+#define MODEL_FAST_360_NO 0x000ul
+#define MODEL_FAST_360_YES 0x200ul
+
+typedef enum
+{
+ MODEL_COMMAND,
+ MODEL_XZEROMARGIN,
+ MODEL_ROLLFEED,
+ MODEL_VARIABLE_DOT,
+ MODEL_GRAYMODE,
+ MODEL_VACUUM,
+ MODEL_FAST_360,
+ MODEL_LIMIT
+} escp2_model_option_t;
+
+typedef struct
+{
+ const char *attr_name;
+ int shift;
+ int bits;
+} escp2_printer_attr_t;
+
+typedef struct
+{
+ const char *name;
+ const char *text;
+ int hres;
+ int vres;
+ int external_hres;
+ int external_vres;
+ int softweave;
+ int interleave;
+ int vertical_passes;
+ int vertical_oversample;
+ int unidirectional;
+ int vertical_undersample;
+ int vertical_denominator;
+ int resid;
+} res_t;
+
+typedef struct
+{
+ int color;
+ int density;
+ int head_offset;
+} physical_subchannel_t;
+
+typedef struct
+{
+ const physical_subchannel_t *channels;
+ int n_subchannels;
+} ink_channel_t;
+
+typedef enum
+{
+ INKSET_CMYK = 0,
+ INKSET_CcMmYK = 1,
+ INKSET_CcMmYyK = 2,
+ INKSET_CcMmYKk = 3,
+ INKSET_PIEZO_QUADTONE = 4
+} inkset_id_t;
+
+typedef struct
+{
+ const char *name;
+ const char *text;
+ int is_color;
+ inkset_id_t inkset;
+ double k_lower;
+ double k_upper;
+ const double *lum_adjustment;
+ const double *hue_adjustment;
+ const double *sat_adjustment;
+ const ink_channel_t *channels[NCOLORS];
+} escp2_inkname_t;
+
+typedef struct
+{
+ const escp2_inkname_t *const *inknames;
+ size_t n_inks;
+} inklist_t;
+
+#define ROLL_FEED_CUT_ALL (1)
+#define ROLL_FEED_CUT_LAST (2)
+
+typedef struct
+{
+ const char *data;
+ size_t length;
+} init_sequence_t;
+
+typedef struct
+{
+ const char *name;
+ const char *text;
+ int is_roll_feed;
+ unsigned roll_feed_cut_flags;
+ init_sequence_t init_sequence;
+ init_sequence_t deinit_sequence;
+} input_slot_t;
+
+typedef struct
+{
+ const input_slot_t *slots;
+ size_t n_input_slots;
+} input_slot_list_t;
+
+typedef struct escp2_printer
+{
+ model_cap_t flags; /* Bitmask of flags, see above */
+/*****************************************************************************/
+ /* Basic head configuration */
+ int nozzles; /* Number of nozzles per color */
+ int min_nozzles; /* Minimum number of nozzles per color */
+ int nozzle_separation; /* Separation between rows, in 1/360" */
+ int black_nozzles; /* Number of black nozzles (may be extra) */
+ int min_black_nozzles; /* # of black nozzles (may be extra) */
+ int black_nozzle_separation; /* Separation between rows */
+ int fast_nozzles; /* Number of fast nozzles */
+ int min_fast_nozzles; /* # of fast nozzles (may be extra) */
+ int fast_nozzle_separation; /* Separation between rows */
+/*****************************************************************************/
+ /* Print head resolution */
+ int base_separation; /* Basic unit of row separation */
+ int base_resolution; /* Base hardware line spacing (above this */
+ /* always requires multiple passes) */
+ int enhanced_resolution;/* Above this we use the */
+ /* enhanced_xres rather than xres */
+ int resolution_scale; /* Scaling factor for ESC(D command */
+ int max_black_resolution; /* Above this resolution, we */
+ /* must use color parameters */
+ /* rather than (faster) black */
+ /* only parameters*/
+ int max_hres;
+ int max_vres;
+ int min_hres;
+ int min_vres;
+/*****************************************************************************/
+ /* Paper size limits */
+ int max_paper_width; /* Maximum paper width, in points */
+ int max_paper_height; /* Maximum paper height, in points */
+ int min_paper_width; /* Maximum paper width, in points */
+ int min_paper_height; /* Maximum paper height, in points */
+/*****************************************************************************/
+ /* Borders */
+ /* SHEET FED: */
+ /* Softweave: */
+ int left_margin; /* Left margin, points */
+ int right_margin; /* Right margin, points */
+ int top_margin; /* Absolute top margin, points */
+ int bottom_margin; /* Absolute bottom margin, points */
+ /* Printer interleave: */
+ int m_left_margin; /* Left margin, points */
+ int m_right_margin; /* Right margin, points */
+ int m_top_margin; /* Absolute top margin, points */
+ int m_bottom_margin; /* Absolute bottom margin, points */
+ /* ROLL FEED: */
+ /* Softweave: */
+ int roll_left_margin; /* Left margin, points */
+ int roll_right_margin; /* Right margin, points */
+ int roll_top_margin; /* Absolute top margin, points */
+ int roll_bottom_margin; /* Absolute bottom margin, points */
+ /* Printer interleave: */
+ int m_roll_left_margin; /* Left margin, points */
+ int m_roll_right_margin; /* Right margin, points */
+ int m_roll_top_margin; /* Absolute top margin, points */
+ int m_roll_bottom_margin; /* Absolute bottom margin, points */
+/*****************************************************************************/
+ /* Miscellaneous printer-specific data */
+ int extra_feed; /* Extra distance the paper can be spaced */
+ /* beyond the bottom margin, in 1/360". */
+ /* (maximum useful value is */
+ /* nozzles * nozzle_separation) */
+ int separation_rows; /* Some printers require funky spacing */
+ /* arguments in interleave mode. */
+ int pseudo_separation_rows;/* Some printers require funky */
+ /* spacing arguments in softweave mode */
+
+ int zero_margin_offset; /* Offset to use to achieve */
+ /* zero-margin printing */
+ int initial_vertical_offset;
+ int black_initial_vertical_offset;
+ int extra_720dpi_separation;
+
+/*****************************************************************************/
+ const int *dot_sizes; /* Vector of dot sizes for resolutions */
+ const double *densities; /* List of densities for each printer */
+ const escp2_variable_inklist_t *inks; /* Choices of inks for this printer */
+/*****************************************************************************/
+ const paperlist_t *paperlist;
+ const res_t *reslist;
+ const inklist_t *inklist;
+/*****************************************************************************/
+ const int *bits;
+ const int *base_resolutions;
+ const input_slot_list_t *input_slots;
+/*****************************************************************************/
+ const init_sequence_t *preinit_sequence;
+ const init_sequence_t *postinit_remote_sequence;
+} escp2_stp_printer_t;
+
+extern const escp2_stp_printer_t stp_escp2_model_capabilities[];
diff --git a/src/main/print-lexmark.c b/src/main/print-lexmark.c
index 4e39314..018d5ba 100644
--- a/src/main/print-lexmark.c
+++ b/src/main/print-lexmark.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-lexmark.c,v 1.65 2001/11/08 12:55:01 rlk Exp $"
+ * "$Id: print-lexmark.c,v 1.65.2.9 2003/10/16 11:51:10 rlk Exp $"
*
* Print plug-in Lexmark driver for the GIMP.
*
@@ -76,6 +76,33 @@
typedef enum Lex_model { m_lex7500, m_z52=10052, m_z42=10042, m_3200=3200 } Lex_model;
+#define NCHANNELS (7)
+
+typedef union { /* Offsets from the start of each line */
+ unsigned long v[NCHANNELS]; /* (really pass) */
+ struct { /* IMPORTANT: order corresponds to ECOLOR_* */
+ unsigned long k;
+ unsigned long c;
+ unsigned long m;
+ unsigned long y;
+ unsigned long C;
+ unsigned long M;
+ unsigned long Y;
+ } p;
+} lexmark_lineoff_t;
+
+typedef union { /* Base pointers for each pass */
+ unsigned char *v[NCHANNELS];
+ struct { /* IMPORTANT: order corresponds to ECOLOR_* */
+ unsigned char *k;
+ unsigned char *c;
+ unsigned char *m;
+ unsigned char *y;
+ unsigned char *C;
+ unsigned char *M;
+ unsigned char *Y;
+ } p;
+} lexmark_linebufs_t;
@@ -93,7 +120,7 @@ int lex_show_lcount, lex_show_length;
const stp_vars_t lex_open_tmp_file();
const stp_vars_t lex_write_tmp_file(const stp_vars_t ofile, void *data,int length);
static void testprint(testdata *td);
-static void readtestprintline(testdata *td, stp_linebufs_t *linebufs);
+static void readtestprintline(testdata *td, lexmark_linebufs_t *linebufs);
#endif
static void
@@ -449,12 +476,12 @@ static int get_lr_shift(int mode)
*/
static const int head_offset_cmyk[] =
-{70, 184, 368, 0, 184, 368, 0}; /* k, m, c, y, M, C, Y */
+{70, 368, 184, 0, 368, 184, 0}; /* k, m, c, y, M, C, Y */
/* the head_offset_cmy is needed because the dithering code is going into troubles if there is an offset different from 0 for the unused black color */
static const int head_offset_cmy[] =
-{0, 184, 368, 0, 184, 368, 0}; /* k, m, c, y, M, C, Y */
+{0, 368, 184, 0, 368, 184, 0}; /* k, m, c, y, M, C, Y */
static const int head_offset_cCmMyk[] =
-{0, 184, 368, 0, 184, 368, 0}; /* k, m, c, y, M, C, Y */
+{0, 368, 184, 0, 368, 184, 0}; /* k, m, c, y, M, C, Y */
@@ -755,7 +782,7 @@ static const lexmark_cap_t lexmark_model_capabilities[] =
618, 936, /* max paper size *//* 8.58" x 13 " */
INCH(2), INCH(4), /* min paper size */
2400, 1200, 2, /* max resolution */
- 0, 0, 5, 15, /* 15 36 border l,r,t,b unit is 1/72 DPI */
+ 0, 0, 5, 41, /* border l,r,t,b unit is 1/72 DPI */
LEXMARK_INK_CMY | LEXMARK_INK_CMYK | LEXMARK_INK_CcMmYK,
LEXMARK_SLOT_ASF1 | LEXMARK_SLOT_MAN1,
LEXMARK_CAP_DMT,
@@ -978,12 +1005,12 @@ lexmark_source_type(const char *name, const lexmark_cap_t * caps)
/*******************************
lexmark_head_offset
*******************************/
-static const stp_lineoff_t *
+static const lexmark_lineoff_t *
lexmark_head_offset(int ydpi, /* i */
const char *ink_type, /* i */
const lexmark_cap_t * caps, /* i */
const lexmark_inkparam_t *ink_parameter, /* i */
- stp_lineoff_t *lineoff_buffer) /* o */
+ lexmark_lineoff_t *lineoff_buffer) /* o */
{
int i;
@@ -1070,9 +1097,9 @@ static const lexmark_res_t
while (res->hres)
{
- if (res->vres <= caps->max_ydpi != -1 &&
- res->hres <= caps->max_xdpi != -1 &&
- !strcmp(resolution, res->name))
+ if ((res->vres <= caps->max_ydpi) && (caps->max_ydpi != -1) &&
+ (res->hres <= caps->max_xdpi) && (caps->max_xdpi != -1) &&
+ (!strcmp(resolution, res->name)))
{
return res;
}
@@ -1165,7 +1192,7 @@ lexmark_parameters(const stp_printer_t printer, /* I - Printer model */
unsigned int height_limit, width_limit;
unsigned int min_height_limit, min_width_limit;
int papersizes = stp_known_papersizes();
- valptrs = stp_malloc(sizeof(stp_param_t) * papersizes);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * papersizes);
*count = 0;
width_limit = caps->max_paper_width;
@@ -1196,7 +1223,7 @@ lexmark_parameters(const stp_printer_t printer, /* I - Printer model */
res = *(caps->res_parameters); /* get resolution specific parameters of printer */
for (i=0; res[i].hres; i++); /* get number of entries */
- valptrs = stp_malloc(sizeof(stp_param_t) * i);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * i);
/* check for allowed resolutions */
while (res->hres)
@@ -1211,7 +1238,7 @@ lexmark_parameters(const stp_printer_t printer, /* I - Printer model */
else if (strcmp(name, "InkType") == 0)
{
for (i = 0; caps->ink_types[i].name != NULL; i++); /* get number of entries */
- valptrs = stp_malloc(sizeof(stp_param_t) * i);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * i);
*count = 0;
for (i = 0; caps->ink_types[i].name != NULL; i++)
@@ -1225,7 +1252,7 @@ lexmark_parameters(const stp_printer_t printer, /* I - Printer model */
else if (strcmp(name, "MediaType") == 0)
{
int nmediatypes = paper_type_count;
- valptrs = stp_malloc(sizeof(stp_param_t) * nmediatypes);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * nmediatypes);
for (i = 0; i < nmediatypes; i++)
{
valptrs[i].name = c_strdup(lexmark_paper_list[i].name);
@@ -1242,7 +1269,7 @@ lexmark_parameters(const stp_printer_t printer, /* I - Printer model */
else
return (NULL);
- valptrs = stp_malloc(*count * sizeof(stp_param_t));
+ valptrs = stp_zalloc(*count * sizeof(stp_param_t));
for (i = 0; i < *count; i ++)
{
/* translate media_types and media_sources */
@@ -1551,18 +1578,6 @@ static void paper_shift(const stp_vars_t v, int offset, const lexmark_cap_t * ca
#endif
}
-
-/*
- * 'alloc_buffer()' allocates buffer and fills it with 0
- */
-static unsigned char *
-lexmark_alloc_buffer(int size)
-{
- unsigned char *buf= stp_malloc(size);
- if (buf) memset(buf,0,size);
- return buf;
-}
-
/*
* 'advance_buffer()' - Move (num) lines of length (len) down one line
* and sets first line to 0s
@@ -1649,14 +1664,15 @@ lexmark_print(const stp_printer_t printer, /* I - Model */
double lum_adjustment[49], sat_adjustment[49], hue_adjustment[49];
/* weave parameters */
- stp_linebufs_t cols;
+ lexmark_linebufs_t cols;
int nozzle_separation;
int horizontal_passes;
int ncolors;
lexm_privdata_weave privdata;
void * weave = NULL;
+ stp_dither_data_t *dt;
- stp_lineoff_t lineoff_buffer; /* holds the line offsets of each color */
+ lexmark_lineoff_t lineoff_buffer; /* holds the line offsets of each color */
int doTestPrint = 0;
#ifdef DEBUG
testdata td;
@@ -1901,25 +1917,25 @@ densityDivisor /= 1.2;
if ((printMode & COLOR_MODE_C) == COLOR_MODE_C) {
- cols.p.c = lexmark_alloc_buffer(buf_length+10);
+ cols.p.c = stp_zalloc(buf_length+10);
}
if ((printMode & COLOR_MODE_Y) == COLOR_MODE_Y) {
- cols.p.y = lexmark_alloc_buffer(buf_length+10);
+ cols.p.y = stp_zalloc(buf_length+10);
}
if ((printMode & COLOR_MODE_M) == COLOR_MODE_M) {
- cols.p.m = lexmark_alloc_buffer(buf_length+10);
+ cols.p.m = stp_zalloc(buf_length+10);
}
if ((printMode & COLOR_MODE_K) == COLOR_MODE_K) {
- cols.p.k = lexmark_alloc_buffer(buf_length+10);
+ cols.p.k = stp_zalloc(buf_length+10);
}
if ((printMode & COLOR_MODE_LC) == COLOR_MODE_LC) {
- cols.p.C = lexmark_alloc_buffer(buf_length+10);
+ cols.p.C = stp_zalloc(buf_length+10);
}
if ((printMode & COLOR_MODE_LY) == COLOR_MODE_LY) {
- cols.p.Y = lexmark_alloc_buffer(buf_length+10);
+ cols.p.Y = stp_zalloc(buf_length+10);
}
if ((printMode & COLOR_MODE_LM) == COLOR_MODE_LM) {
- cols.p.M = lexmark_alloc_buffer(buf_length+10);
+ cols.p.M = stp_zalloc(buf_length+10);
}
@@ -1950,7 +1966,7 @@ densityDivisor /= 1.2;
ncolors, /* colors */
1, /* bits/pixel */
out_width, /* line width */
- out_height, 0,
+ out_height,
((top * ydpi) / 72)+(((caps->offset_top_border+add_top_offset)*ydpi)
/caps->y_raster_res),
(page_height * ydpi) / 72,
@@ -2062,8 +2078,8 @@ densityDivisor /= 1.2;
*/
- in = stp_malloc(image_width * image_bpp);
- out = stp_malloc(image_width * out_bpp * 2);
+ in = stp_zalloc(image_width * image_bpp);
+ out = stp_zalloc(image_width * out_bpp * 2);
/* calculate the memory we need for one line of the printer image (hopefully we are right) */
#ifdef DEBUG
@@ -2106,6 +2122,14 @@ densityDivisor /= 1.2;
}
+ dt = stp_create_dither_data();
+ stp_add_channel(dt, cols.p.k, ECOLOR_K, 0);
+ stp_add_channel(dt, cols.p.c, ECOLOR_C, 0);
+ stp_add_channel(dt, cols.p.C, ECOLOR_C, 1);
+ stp_add_channel(dt, cols.p.m, ECOLOR_M, 0);
+ stp_add_channel(dt, cols.p.M, ECOLOR_M, 1);
+ stp_add_channel(dt, cols.p.y, ECOLOR_Y, 0);
+ stp_add_channel(dt, cols.p.Y, ECOLOR_Y, 1);
for (y = 0; y < out_height; y ++) /* go through every pixle line of image */
{
@@ -2135,8 +2159,7 @@ densityDivisor /= 1.2;
}
/* stp_erprintf("Let's dither %d %d %d\n", ((y)), buf_length, length);*/
if (doTestPrint == 0) {
- stp_dither(out, y, dither, cols.p.c, cols.p.C, cols.p.m, cols.p.M,
- cols.p.y, cols.p.Y, cols.p.k, duplicate_line, zero_mask);
+ stp_dither(out, y, dither, dt, duplicate_line, zero_mask);
} else {
#ifdef DEBUG
readtestprintline(&td, &cols);
@@ -2153,7 +2176,7 @@ densityDivisor /= 1.2;
#endif
stp_write_weave(weave, length, ydpi, model, out_width, left,
- xdpi, physical_xdpi, (const unsigned char **)cols.v);
+ xdpi, physical_xdpi, (unsigned char **)cols.v);
errval += errmod;
errline += errdiv;
@@ -2173,6 +2196,7 @@ densityDivisor /= 1.2;
lexmark_deinit_printer(nv, caps);
+ stp_free_dither_data(dt);
if (doTestPrint == 0) {
stp_free_dither(dither);
@@ -2217,11 +2241,12 @@ const stp_printfuncs_t stp_lexmark_printfuncs =
lexmark_print,
lexmark_default_parameters,
lexmark_describe_resolution,
- stp_verify_printer_params
+ stp_verify_printer_params,
+ stp_start_job,
+ stp_end_job
};
-
/* lexmark_init_line
This method is printer type dependent code.
@@ -2329,8 +2354,11 @@ lexmark_init_line(int mode, unsigned char *prnBuf,
hend = (width-1)*(2400/2400);
break;
}
+ hend += offset;
prnBuf[17] = (unsigned char)(hend >> 8);
prnBuf[18] = (unsigned char)(hend & 0xFF);
+
+ prnBuf[10] = (pass_length==208 ? 0x1A : 0x18);
}
return prnBuf + header_size; /* return the position where the pixels have to be written */
@@ -2734,7 +2762,6 @@ const stp_vars_t lex_write_tmp_file(const stp_vars_t ofile, void *data,int lengt
#endif
-
static void
flush_pass(stp_softweave_t *sw, int passno, int model, int width,
int hoffset, int ydpi, int xdpi, int physical_xdpi,
@@ -2763,7 +2790,8 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
#ifdef DEBUG
stp_erprintf("Lexmark: flush_pass, here we are !\n");
- stp_erprintf(" passno %i, sw->ncolors %i, width %d, lwidth %d, linecount k %d, linecount m %d, bitwidth %d, separation_rows %d\n", passno, sw->ncolors, width, lwidth, linecount[0].p.k, linecount[0].p.m, sw->bitwidth, sw->separation_rows);
+ stp_erprintf(" passno %i, sw->ncolors %i, width %d, lwidth %d, linecount k % d, linecount m % d, bitwidth %d\n",
+ passno, sw->ncolors, width, lwidth, /*linecount[0].p.k, linecount[0].p.m,*/ sw->bitwidth);
stp_erprintf("microoffset %d, vertical_subpass %d, sw->horizontal_weave %d\n", microoffset,vertical_subpass, sw->horizontal_weave);
stp_erprintf("Lexmark: last_pass_offset %d, last_pass %d, logicalpassstart %d\n", sw->last_pass_offset, sw->last_pass, pass->logicalpassstart);
@@ -2801,13 +2829,12 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
/* calculate paper shift and adapt actual resoution to physical positioning resolution */
paperShift = (pass->logicalpassstart - sw->last_pass_offset) * (caps->y_raster_res/ydpi);
- /*** do we have to print something with the color cartridge ? ***/
- if (lineactive[0].p.c || lineactive[0].p.m || lineactive[0].p.y)
- {
- if (lineactive[0].p.c)
+
+ /*** do we have to print something with the color cartridge ? ***/
+ if ((ECOLOR_C < sw->ncolors) && (lineactive[0].v[ECOLOR_C] > 0))
{
- head_colors[0].line = bufs[0].p.c;
- head_colors[0].used_jets = linecount[0].p.c;
+ head_colors[0].line = bufs[0].v[ECOLOR_C];
+ head_colors[0].used_jets = linecount[0].v[ECOLOR_C];
}
else
{
@@ -2815,10 +2842,10 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
head_colors[0].used_jets = 0;
}
- if (lineactive[0].p.m)
+ if ((ECOLOR_M < sw->ncolors) && (lineactive[0].v[ECOLOR_M] > 0))
{
- head_colors[1].line = bufs[0].p.m;
- head_colors[1].used_jets = linecount[0].p.m;
+ head_colors[1].line = bufs[0].v[ECOLOR_M];
+ head_colors[1].used_jets = linecount[0].v[ECOLOR_M];
}
else
{
@@ -2826,10 +2853,10 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
head_colors[1].used_jets = 0;
}
- if (lineactive[0].p.y)
+ if ((ECOLOR_Y < sw->ncolors) && (lineactive[0].v[ECOLOR_Y] > 0))
{
- head_colors[2].line = bufs[0].p.y;
- head_colors[2].used_jets = linecount[0].p.y;
+ head_colors[2].line = bufs[0].v[ECOLOR_Y];
+ head_colors[2].used_jets = linecount[0].v[ECOLOR_Y];
}
else
{
@@ -2837,44 +2864,44 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
head_colors[2].used_jets = 0;
}
+ if ((head_colors[0].line != 0) || (head_colors[1].line != 0) || (head_colors[2].line != 0)) {
#ifdef DEBUG
- stp_erprintf("lexmark_write: lwidth %d\n", lwidth);
+ stp_erprintf("lexmark_write: lwidth %d\n", lwidth);
#endif
- lexmark_write(nv, /* I - Print file or command */
- privdata_weave->outbuf,/*unsigned char *prnBuf, mem block to buffer output */
- &paperShift, /* int *paperShift, */
- privdata_weave->direction, /* int direction, */
- sw->jets, /* num of inks to print */
- caps, /* const lexmark_cap_t * caps, I - Printer model */
- privdata_weave->ink_parameter,
- xdpi, /* int xresolution, */
- 2, /* yCount,*/
- head_colors, /* Lexmark_head_colors *head_colors, */
- (lwidth+7)/8, /* length, I - Length of bitmap data of one line in bytes */
- prn_mode | COLOR_MODE_C | COLOR_MODE_Y | COLOR_MODE_M, /* mode, I - Which color */
- ydpi, /* ydpi, I - Vertical resolution */
- lwidth, /* width, I - Printed width in pixles*/
- hoffset+microoffset, /* offset I - Offset from left side in x_raster_res DPI */
- 0 /* dmt */);
- if (privdata_weave->bidirectional)
- privdata_weave->direction = (privdata_weave->direction +1) & 1;
- }
+ lexmark_write(nv, /* I - Print file or command */
+ privdata_weave->outbuf,/*unsigned char *prnBuf, mem block to buffer output */
+ &paperShift, /* int *paperShift, */
+ privdata_weave->direction, /* int direction, */
+ sw->jets, /* num of inks to print */
+ caps, /* const lexmark_cap_t * caps, I - Printer model */
+ privdata_weave->ink_parameter,
+ xdpi, /* int xresolution, */
+ 2, /* yCount,*/
+ head_colors, /* Lexmark_head_colors *head_colors, */
+ (lwidth+7)/8, /* length, I - Length of bitmap data of one line in bytes */
+ prn_mode | COLOR_MODE_C | COLOR_MODE_Y | COLOR_MODE_M, /* mode, I - Which color */
+ ydpi, /* ydpi, I - Vertical resolution */
+ lwidth, /* width, I - Printed width in pixles*/
+ hoffset+microoffset, /* offset I - Offset from left side in x_raster_res DPI */
+ 0 /* dmt */);
+ if (privdata_weave->bidirectional)
+ privdata_weave->direction = (privdata_weave->direction +1) & 1;
+ }
+
- /*** do we have to print somthing with black or photo cartridge ? ***/
- if (lineactive[0].p.C || lineactive[0].p.M || lineactive[0].p.k)
- {
+ /*** do we have to print somthing with black or photo cartridge ? ***/
/* we print with the photo or black cartidge */
if (sw->jets != 208)
{
/* we have photo or black cartridge */
- if (lineactive[0].p.C)
+ if ((ECOLOR_LC < sw->ncolors) && (lineactive[0].v[ECOLOR_LC] > 0))
{
- head_colors[0].line = bufs[0].p.C;
- head_colors[0].used_jets = linecount[0].p.C;
+ head_colors[0].line = bufs[0].v[ECOLOR_LC];
+ head_colors[0].used_jets = linecount[0].v[ECOLOR_LC];
}
else
{
@@ -2882,10 +2909,10 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
head_colors[0].used_jets = 0;
}
- if (lineactive[0].p.M)
+ if ((ECOLOR_LM < sw->ncolors) && (lineactive[0].v[ECOLOR_LM] > 0))
{
- head_colors[1].line = bufs[0].p.M;
- head_colors[1].used_jets = linecount[0].p.M;
+ head_colors[1].line = bufs[0].v[ECOLOR_LM];
+ head_colors[1].used_jets = linecount[0].v[ECOLOR_LM];
}
else
{
@@ -2893,10 +2920,10 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
head_colors[1].used_jets = 0;
}
- if (lineactive[0].p.k)
+ if ((ECOLOR_K < sw->ncolors) && (lineactive[0].v[ECOLOR_K] > 0))
{
- head_colors[2].line = bufs[0].p.k;
- head_colors[2].used_jets = linecount[0].p.k;
+ head_colors[2].line = bufs[0].v[ECOLOR_K];
+ head_colors[2].used_jets = linecount[0].v[ECOLOR_K];
}
else
{
@@ -2906,23 +2933,41 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
}
else
{
- /* we have black cartridge; we have to print with all 208 jets at once */
- head_colors[0].line = bufs[0].p.k;
- head_colors[0].used_jets = linecount[0].p.k;
- head_colors[0].head_nozzle_start = 0;
- head_colors[0].head_nozzle_end = sw->jets/2;
- head_colors[2].line = NULL;
- head_colors[2].used_jets = 0;
- head_colors[2].head_nozzle_start = 0;
- head_colors[2].head_nozzle_end = 0;
- head_colors[1].line = NULL;
- head_colors[1].used_jets = 0;
- head_colors[1].head_nozzle_start = 0;
- head_colors[1].head_nozzle_end = 0;
+ if ((ECOLOR_K < sw->ncolors) && (lineactive[0].v[ECOLOR_K] > 0))
+ {
+ /* we have black cartridge; we have to print with all 208 jets at once */
+ head_colors[0].line = bufs[0].v[ECOLOR_K];
+ head_colors[0].used_jets = linecount[0].v[ECOLOR_K];
+ head_colors[0].head_nozzle_start = 0;
+ head_colors[0].head_nozzle_end = sw->jets/2;
+ head_colors[2].line = NULL;
+ head_colors[2].used_jets = 0;
+ head_colors[2].head_nozzle_start = 0;
+ head_colors[2].head_nozzle_end = 0;
+ head_colors[1].line = NULL;
+ head_colors[1].used_jets = 0;
+ head_colors[1].head_nozzle_start = 0;
+ head_colors[1].head_nozzle_end = 0;
+ }
+ else
+ {
+ head_colors[2].line = NULL;
+ head_colors[2].used_jets = 0;
+ head_colors[2].head_nozzle_start = 0;
+ head_colors[2].head_nozzle_end = 0;
+ head_colors[1].line = NULL;
+ head_colors[1].used_jets = 0;
+ head_colors[1].head_nozzle_start = 0;
+ head_colors[1].head_nozzle_end = 0;
+ head_colors[0].line = NULL;
+ head_colors[0].used_jets = 0;
+ head_colors[0].head_nozzle_start = 0;
+ head_colors[0].head_nozzle_end = 0;
+ }
}
-
-
+ if ((head_colors[0].line != 0) || (head_colors[1].line != 0) || (head_colors[2].line != 0)) {
+
lexmark_write(nv, /* I - Print file or command */
privdata_weave->outbuf,/*unsigned char *prnBuf, mem block to buffer output */
&paperShift, /* int *paperShift, */
@@ -2964,13 +3009,15 @@ flush_pass(stp_softweave_t *sw, int passno, int model, int width,
+
+
#ifdef DEBUG
static void testprint(testdata *td)
{
int icol, i;
char dummy1[256], dummy2[256];
- stp_linebufs_t linebufs;
+ lexmark_linebufs_t linebufs;
/* init */
for (i=0; i < (sizeof(linebufs.v)/sizeof(linebufs.v[0])); i++) {
@@ -3019,7 +3066,7 @@ static void testprint(testdata *td)
}
-static void readtestprintline(testdata *td, stp_linebufs_t *linebufs)
+static void readtestprintline(testdata *td, lexmark_linebufs_t *linebufs)
{
char dummy1[256];
int icol, ix;
diff --git a/src/main/print-pcl.c b/src/main/print-pcl.c
index 52fbfbe..5d3751f 100644
--- a/src/main/print-pcl.c
+++ b/src/main/print-pcl.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-pcl.c,v 1.47 2001/10/15 18:39:12 davehill Exp $"
+ * "$Id: print-pcl.c,v 1.47.4.13 2004/06/09 10:29:58 davehill Exp $"
*
* Print plug-in HP PCL driver for the GIMP.
*
@@ -43,8 +43,10 @@
/*
* Local functions...
*/
-static void pcl_mode0(const stp_vars_t, unsigned char *, int, int);
-static void pcl_mode2(const stp_vars_t, unsigned char *, int, int);
+static void pcl_mode0(const stp_vars_t, unsigned char *, unsigned char *,
+ int, int);
+static void pcl_mode2(const stp_vars_t, unsigned char *, unsigned char *,
+ int, int);
/*
* Generic define for a name/value set
@@ -99,40 +101,42 @@ typedef struct
/*
* This data comes from the HP documentation "Deskjet 1220C and 1120C
- * PCL reference guide 2.0, Nov 1999". NOTE: The names *must* match
+ * PCL reference guide 2.0, Nov 1999". NOTE: The first name *must* match
* those in print-util.c for the lookups to work properly!
+ * The long names are not used so they have been removed, the ones in
+ * print-util.c are used in the interface.
*/
static const pcl_t pcl_media_sizes[] =
{
- { "Executive", N_ ("Executive"), PCL_PAPERSIZE_EXECUTIVE}, /* US Exec (7.25 x 10.5 in) */
- { "Letter", N_ ("Letter"), PCL_PAPERSIZE_LETTER}, /* US Letter (8.5 x 11 in) */
- { "Legal", N_ ("Legal"), PCL_PAPERSIZE_LEGAL}, /* US Legal (8.5 x 14 in) */
- { "Tabloid", N_ ("Tabloid"), PCL_PAPERSIZE_TABLOID}, /* US Tabloid (11 x 17 in) */
- { "Statement", N_ ("Manual"), PCL_PAPERSIZE_STATEMENT}, /* US Manual/Statement (5.5 x 8.5 in) */
- { "SuperB", N_ ("13x19"), PCL_PAPERSIZE_SUPER_B}, /* US 13x19/Super B (13 x 19 in) */
- { "A5", N_ ("A5"), PCL_PAPERSIZE_A5}, /* ISO/JIS A5 (148 x 210 mm) */
- { "A4", N_ ("A4"), PCL_PAPERSIZE_A4}, /* ISO/JIS A4 (210 x 297 mm) */
- { "A3", N_ ("A3"), PCL_PAPERSIZE_A3}, /* ISO/JIS A3 (297 x 420 mm) */
- { "B5", N_ ("B5 JIS"), PCL_PAPERSIZE_JIS_B5}, /* JIS B5 (182 x 257 mm). */
- { "B4", N_ ("B4 JIS"), PCL_PAPERSIZE_JIS_B4}, /* JIS B4 (257 x 364 mm). */
- { "w283h420", N_ ("Hagaki Card"), PCL_PAPERSIZE_HAGAKI_CARD}, /* Japanese Hagaki Card (100 x 148 mm) */
- { "w420h567", N_ ("Oufuku Card"), PCL_PAPERSIZE_OUFUKU_CARD}, /* Japanese Oufuku Card (148 x 200 mm) */
- { "A6", N_ ("A6"), PCL_PAPERSIZE_A6_CARD}, /* ISO/JIS A6 card */
- { "w288h432", N_ ("4x6"), PCL_PAPERSIZE_4x6}, /* US Index card (4 x 6 in) */
- { "w360h576", N_ ("5x8"), PCL_PAPERSIZE_5x8}, /* US Index card (5 x 8 in) */
- { "w216h360", N_ ("3x5"), PCL_PAPERSIZE_3x5}, /* US Index card (3 x 5 in) */
- { "Monarch", N_ ("Monarch"), PCL_PAPERSIZE_MONARCH_ENV}, /* Monarch Envelope (3 7/8 x 7 1/2 in) */
- { "COM10", N_ ("Commercial 10"), PCL_PAPERSIZE_COMMERCIAL10_ENV}, /* US Commercial 10 Envelope (4.125 x 9.5 in) Portrait */
- { "DL", N_ ("DL"), PCL_PAPERSIZE_DL_ENV}, /* DL envelope (110 x 220 mm) Portrait */
- { "C5", N_ ("C5"), PCL_PAPERSIZE_C5_ENV}, /* C5 envelope (162 x 229 mm) */
- { "C6", N_ ("C6"), PCL_PAPERSIZE_C6_ENV}, /* C6 envelope (114 x 162 mm) */
- { "ENVA2", N_ ("A2 Invitation"), PCL_PAPERSIZE_INVITATION_ENV}, /* US A2 Invitation envelope (4 3/8 x 5 3/4 in) */
- { "w340h666", N_ ("Long 3"), PCL_PAPERSIZE_JAPANESE_3_ENV}, /* Japanese Long Envelope #3 (120 x 235 mm) */
- { "w255h581", N_ ("Long 4"), PCL_PAPERSIZE_JAPANESE_4_ENV}, /* Japanese Long Envelope #4 (90 x 205 mm) */
- { "w680h941", N_ ("Kaku"), PCL_PAPERSIZE_KAKU_ENV}, /* Japanese Kaku Envelope (240 x 332.1 mm) */
+ { "Executive", "notused", PCL_PAPERSIZE_EXECUTIVE}, /* US Exec (7.25 x 10.5 in) */
+ { "Letter", "notused", PCL_PAPERSIZE_LETTER}, /* US Letter (8.5 x 11 in) */
+ { "Legal", "notused", PCL_PAPERSIZE_LEGAL}, /* US Legal (8.5 x 14 in) */
+ { "Tabloid", "notused", PCL_PAPERSIZE_TABLOID}, /* US Tabloid (11 x 17 in) */
+ { "Statement", "notused", PCL_PAPERSIZE_STATEMENT}, /* US Manual/Statement (5.5 x 8.5 in) */
+ { "SuperB", "notused", PCL_PAPERSIZE_SUPER_B}, /* US 13x19/Super B (13 x 19 in) */
+ { "A5", "notused", PCL_PAPERSIZE_A5}, /* ISO/JIS A5 (148 x 210 mm) */
+ { "A4", "notused", PCL_PAPERSIZE_A4}, /* ISO/JIS A4 (210 x 297 mm) */
+ { "A3", "notused", PCL_PAPERSIZE_A3}, /* ISO/JIS A3 (297 x 420 mm) */
+ { "B5", "notused", PCL_PAPERSIZE_JIS_B5}, /* JIS B5 (182 x 257 mm). */
+ { "B4", "notused", PCL_PAPERSIZE_JIS_B4}, /* JIS B4 (257 x 364 mm). */
+ { "w283h420", "notused", PCL_PAPERSIZE_HAGAKI_CARD}, /* Japanese Hagaki Card (100 x 148 mm) */
+ { "w420h567", "notused", PCL_PAPERSIZE_OUFUKU_CARD}, /* Japanese Oufuku Card (148 x 200 mm) */
+ { "A6", "notused", PCL_PAPERSIZE_A6_CARD}, /* ISO/JIS A6 card */
+ { "w288h432", "notused", PCL_PAPERSIZE_4x6}, /* US Index card (4 x 6 in) */
+ { "w360h576", "notused", PCL_PAPERSIZE_5x8}, /* US Index card (5 x 8 in) */
+ { "w216h360", "notused", PCL_PAPERSIZE_3x5}, /* US Index card (3 x 5 in) */
+ { "Monarch", "notused", PCL_PAPERSIZE_MONARCH_ENV}, /* Monarch Envelope (3 7/8 x 7 1/2 in) */
+ { "COM10", "notused", PCL_PAPERSIZE_COMMERCIAL10_ENV}, /* US Commercial 10 Envelope (4.125 x 9.5 in) Portrait */
+ { "DL", "notused", PCL_PAPERSIZE_DL_ENV}, /* DL envelope (110 x 220 mm) Portrait */
+ { "C5", "notused", PCL_PAPERSIZE_C5_ENV}, /* C5 envelope (162 x 229 mm) */
+ { "C6", "notused", PCL_PAPERSIZE_C6_ENV}, /* C6 envelope (114 x 162 mm) */
+ { "w315h414", "notused", PCL_PAPERSIZE_INVITATION_ENV}, /* US A2 Invitation envelope (4 3/8 x 5 3/4 in) */
+ { "w340h666", "notused", PCL_PAPERSIZE_JAPANESE_3_ENV}, /* Japanese Long Envelope #3 (120 x 235 mm) */
+ { "w255h581", "notused", PCL_PAPERSIZE_JAPANESE_4_ENV}, /* Japanese Long Envelope #4 (90 x 205 mm) */
+ { "w680h941", "notused", PCL_PAPERSIZE_KAKU_ENV}, /* Japanese Kaku Envelope (240 x 332.1 mm) */
/**** MRS: this size not supported by print-util funcs! ****/
- { "w612h792", N_ ("HP Greeting Card"), PCL_PAPERSIZE_HP_CARD}, /* Hp greeting card (size?? */
+ { "w612h792", "notused", PCL_PAPERSIZE_HP_CARD}, /* Hp greeting card */
};
#define NUM_PRINTER_PAPER_SIZES (sizeof(pcl_media_sizes) / sizeof(pcl_t))
@@ -249,6 +253,13 @@ pcl_describe_resolution(const stp_printer_t printer,
*y = -1;
}
+typedef struct {
+ int top_margin;
+ int bottom_margin;
+ int left_margin;
+ int right_margin;
+} margins_t;
+
/*
* Printer capability data
*/
@@ -260,10 +271,8 @@ typedef struct {
int custom_min_width;
int custom_min_height;
int resolutions;
- int top_margin;
- int bottom_margin;
- int left_margin;
- int right_margin;
+ margins_t normal_margins;
+ margins_t a4_margins;
int color_type; /* 2 print head or one, 2 level or 4 */
int stp_printer_type; /* Deskjet/Laserjet and quirks */
/* The paper size, paper type and paper source codes cannot be combined */
@@ -310,7 +319,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72, /* Max paper size */
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300, /* Resolutions */
- 12, 12, 18, 18, /* Margins */
+ {12, 12, 18, 18}, /* non-A4 Margins */
+ {12, 12, 10, 10}, /* A4 Margins */
PCL_COLOR_NONE,
PCL_PRINTER_LJ,
{
@@ -326,12 +336,144 @@ static const pcl_cap_t pcl_model_capabilities[] =
{ -1, /* No selectable paper sources */
},
},
+ /* DesignJet 230/430 (monochrome ) */
+ { 10230,
+ 36 * 72, 150 * 12 * 72, /* 150ft in roll mode, 64" in sheet */
+ 830 * 72 / 100, 583 * 72 / 100, /* 8.3" wide min in sheet mode */
+ PCL_RES_300_300 | PCL_RES_600_600,
+ {49, 49, 15, 15},
+ {49, 49, 15, 15},
+ PCL_COLOR_NONE,
+ PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE | PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_NEW_ERG,
+ {
+ PCL_PAPERSIZE_LETTER,
+ -1,
+ },
+ {
+ PCL_PAPERTYPE_PLAIN,
+ PCL_PAPERTYPE_BOND,
+ PCL_PAPERTYPE_PREMIUM,
+ PCL_PAPERTYPE_GLOSSY,
+ PCL_PAPERTYPE_TRANS,
+ -1,
+ },
+ {
+ PCL_PAPERSOURCE_STANDARD,
+ -1,
+ },
+ },
+ /* DesignJet 250C/450C/455CA/488CA */
+ /* The "CA" versions have a "software RIP" but are the same hardware */
+ { 10250,
+ 36 * 72, 150 * 12 * 72, /* 150ft in roll mode, 64" in sheet */
+ 830 * 72 / 100, 583 * 72 / 100, /* 8.3" wide min in sheet mode */
+ PCL_RES_300_300 | PCL_RES_600_600_MONO,
+ {49, 49, 15, 15},
+ {49, 49, 15, 15},
+ PCL_COLOR_CMYK,
+ PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE | PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_NEW_ERG,
+ {
+ PCL_PAPERSIZE_LETTER,
+ -1,
+ },
+ {
+ PCL_PAPERTYPE_PLAIN,
+ PCL_PAPERTYPE_BOND,
+ PCL_PAPERTYPE_PREMIUM,
+ PCL_PAPERTYPE_GLOSSY,
+ PCL_PAPERTYPE_TRANS,
+ -1,
+ },
+ {
+ PCL_PAPERSOURCE_STANDARD,
+ -1,
+ },
+ },
+ /* DesignJet 700 (monochrome) */
+ { 10700,
+ 36 * 72, 150 * 12 * 72, /* 150ft in roll mode, 64" in sheet */
+ 830 * 72 / 100, 583 * 72 / 100, /* 8.3" wide min in sheet mode */
+ PCL_RES_300_300 | PCL_RES_600_600,
+ {30, 30, 15, 15}, /* These margins are for sheet mode FIX */
+ {30, 30, 15, 15},
+ PCL_COLOR_NONE,
+ PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE | PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_NEW_ERG,
+ {
+ PCL_PAPERSIZE_LETTER,
+ -1,
+ },
+ {
+ PCL_PAPERTYPE_PLAIN,
+ PCL_PAPERTYPE_BOND,
+ PCL_PAPERTYPE_PREMIUM,
+ PCL_PAPERTYPE_GLOSSY,
+ PCL_PAPERTYPE_TRANS,
+ -1,
+ },
+ {
+ PCL_PAPERSOURCE_STANDARD,
+ -1,
+ },
+ },
/* DesignJet 750C */
- { 750,
- 36 * 72, 100 * 12 * 72, /* Length limited to 51" in sheet mode */
- 5 * 72, 583 * 72 / 100, /* Min paper size */
+ { 10750,
+ 36 * 72, 150 * 12 * 72, /* 150ft in roll mode, 64" in sheet */
+ 830 * 72 / 100, 583 * 72 / 100, /* 8.3" wide min in sheet mode */
+ PCL_RES_300_300 | PCL_RES_600_600_MONO,
+ {30, 30, 15, 15}, /* These margins are for roll mode FIX */
+ {30, 30, 15, 15},
+ PCL_COLOR_CMYK,
+ PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE | PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_NEW_ERG,
+ {
+ PCL_PAPERSIZE_LETTER,
+ -1,
+ },
+ {
+ PCL_PAPERTYPE_PLAIN,
+ PCL_PAPERTYPE_BOND,
+ PCL_PAPERTYPE_PREMIUM,
+ PCL_PAPERTYPE_GLOSSY,
+ PCL_PAPERTYPE_TRANS,
+ -1,
+ },
+ {
+ PCL_PAPERSOURCE_STANDARD,
+ -1,
+ },
+ },
+ /* DesignJet 2000C/2500C (36" wide) */
+ { 12500, /* Deskjet 2500 already has "2500" */
+ 36 * 72, 150 * 12 * 72, /* 150ft in roll mode, 64" in sheet */
+ 830 * 72 / 100, 583 * 72 / 100, /* 8.3" wide min in sheet mode */
PCL_RES_300_300 | PCL_RES_600_600_MONO,
- 30, 30, 15, 15,
+ {49, 49, 15, 15}, /* Check/Fix */
+ {49, 49, 15, 15},
+ PCL_COLOR_CMYK,
+ PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE | PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_NEW_ERG,
+ {
+ PCL_PAPERSIZE_LETTER,
+ -1,
+ },
+ {
+ PCL_PAPERTYPE_PLAIN,
+ PCL_PAPERTYPE_BOND,
+ PCL_PAPERTYPE_PREMIUM,
+ PCL_PAPERTYPE_GLOSSY,
+ PCL_PAPERTYPE_TRANS,
+ -1,
+ },
+ {
+ PCL_PAPERSOURCE_STANDARD,
+ -1,
+ },
+ },
+ /* DesignJet 3000C/3500C (54" wide) */
+ { 13500, /* Deskjet 2500 already has "2500" */
+ 54 * 72, 150 * 12 * 72, /* 150ft in roll mode, 64" in sheet */
+ 830 * 72 / 100, 583 * 72 / 100, /* 8.3" wide min in sheet mode */
+ PCL_RES_300_300 | PCL_RES_600_600_MONO,
+ {49, 49, 15, 15}, /* Check/Fix */
+ {49, 49, 15, 15},
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE | PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_NEW_ERG,
{
@@ -356,7 +498,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 7, 41, 18, 18,
+ {6, 48, 18, 18}, /* from bpd07933.pdf */
+ {6, 48, 10, 11}, /* from bpd07933.pdf */
PCL_COLOR_CMY,
PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -387,7 +530,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 7, 41, 18, 18,
+ {7, 41, 18, 18},
+ {7, 41, 10, 10}, /* Check/Fix */
PCL_COLOR_CMY,
PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -414,7 +558,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 7, 41, 18, 18,
+ {7, 41, 18, 18},
+ {7, 41, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_DJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -446,7 +591,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 7, 33, 18, 18,
+ {7, 33, 18, 18},
+ {7, 33, 10, 10}, /* Check/Fix */
PCL_COLOR_CMY,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -476,7 +622,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 7, 33, 18, 18,
+ {7, 33, 18, 18},
+ {7, 33, 10, 10}, /* Check/Fix */
PCL_COLOR_CMY,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -516,7 +663,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 3, 33, 18, 18,
+ {3, 33, 18, 18},
+ {5, 33, 10, 10},
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -548,7 +696,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
5 * 72, 583 * 72 / 100, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_300 | PCL_RES_600_600_MONO,
- 0, 33, 18, 18,
+ {0, 33, 18, 18},
+ {0, 33, 10, 10}, /* Check/Fix */
PCL_COLOR_CMY,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -584,7 +733,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_300 | PCL_RES_600_600_MONO,
- 0, 33, 18, 18,
+ {0, 33, 18, 18},
+ {0, 33, 10, 10}, /* Check/Fix */
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -621,7 +771,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_300 | PCL_RES_600_600,
- 0, 33, 18, 18,
+ {0, 33, 18, 18},
+ {0, 33, 10, 10}, /* Check/Fix */
PCL_COLOR_CMYK | PCL_COLOR_CMYKcm,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -658,7 +809,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600_MONO,
- 3, 33, 18, 18,
+ {3, 33, 18, 18},
+ {5, 33, 10, 10},
PCL_COLOR_CMYK | PCL_COLOR_CMYK4,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -695,7 +847,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_300 | PCL_RES_600_600,
- 0, 33, 18, 18,
+ {0, 33, 18, 18},
+ {0, 33, 10, 10}, /* Check/Fix */
PCL_COLOR_CMYK | PCL_COLOR_CMYK4b,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -732,7 +885,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600 /* | PCL_RES_1200_600 | PCL_RES_2400_600 */,
- 3, 33, 18, 18,
+ {3, 33, 18, 18},
+ {5, 33, 10, 10}, /* Oliver Vecernik */
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -768,7 +922,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
13 * 72, 19 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600 /* | PCL_RES_1200_600 | PCL_RES_2400_600 */,
- 3, 33, 18, 18,
+ {3, 33, 18, 18},
+ {5, 33, 10, 10},
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -818,7 +973,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
13 * 72, 19 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600_MONO,
- 3, 33, 18, 18,
+ {3, 33, 18, 18},
+ {5, 33, 10, 10},
PCL_COLOR_CMYK | PCL_COLOR_CMYK4,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -867,7 +1023,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_CMY,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -903,7 +1060,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -939,7 +1097,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600,
- 12, 12, 18, 18,
+ {0, 35, 18, 18}, /* Michel Goraczko */
+ {0, 35, 10, 10}, /* Check/Fix */
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -982,7 +1141,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
13 * 72, 19 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_CMYK,
PCL_PRINTER_DJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_MEDIATYPE |
PCL_PRINTER_CUSTOM_SIZE | PCL_PRINTER_BLANKLINE,
@@ -1030,7 +1190,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_LJ,
{
@@ -1058,12 +1219,47 @@ static const pcl_cap_t pcl_model_capabilities[] =
-1,
},
},
+ /* LaserJet IIP (TIFF but no blankline) */
+ { 21,
+ 17 * 72 / 2, 14 * 72,
+ 1, 1, /* Min paper size */
+ PCL_RES_150_150 | PCL_RES_300_300,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
+ PCL_COLOR_NONE,
+ PCL_PRINTER_LJ | PCL_PRINTER_TIFF,
+ {
+ PCL_PAPERSIZE_EXECUTIVE,
+ PCL_PAPERSIZE_STATEMENT,
+ PCL_PAPERSIZE_LETTER,
+ PCL_PAPERSIZE_LEGAL,
+ PCL_PAPERSIZE_A4,
+ PCL_PAPERSIZE_MONARCH_ENV,
+ PCL_PAPERSIZE_COMMERCIAL10_ENV,
+ PCL_PAPERSIZE_DL_ENV,
+ PCL_PAPERSIZE_C5_ENV,
+ PCL_PAPERSIZE_C6_ENV,
+ -1,
+ },
+ { -1, /* No selectable paper types */
+ },
+ {
+ PCL_PAPERSOURCE_STANDARD,
+ PCL_PAPERSOURCE_MANUAL,
+ PCL_PAPERSOURCE_LJ_TRAY1,
+ PCL_PAPERSOURCE_LJ_TRAY2,
+ PCL_PAPERSOURCE_LJ_TRAY3,
+ PCL_PAPERSOURCE_LJ_TRAY4,
+ -1,
+ },
+ },
/* LaserJet III series */
{ 3,
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_LJ | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -1096,7 +1292,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_LJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -1129,7 +1326,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
13 * 72, 19 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_LJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -1169,7 +1367,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
17 * 72 / 2, 14 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_LJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -1202,7 +1401,8 @@ static const pcl_cap_t pcl_model_capabilities[] =
13 * 72, 19 * 72,
1, 1, /* Min paper size */
PCL_RES_150_150 | PCL_RES_300_300 | PCL_RES_600_600,
- 12, 12, 18, 18,
+ {12, 12, 18, 18},
+ {12, 12, 10, 10}, /* Check/Fix */
PCL_COLOR_NONE,
PCL_PRINTER_LJ | PCL_PRINTER_NEW_ERG | PCL_PRINTER_TIFF | PCL_PRINTER_BLANKLINE,
{
@@ -1482,12 +1682,12 @@ static const char * pcl_val_to_text(int code, /* I: Code */
static const double dot_sizes[] = { 0.5, 0.832, 1.0 };
static const stp_simple_dither_range_t variable_dither_ranges[] =
{
- { 0.152, 0x1, 0 },
- { 0.255, 0x2, 0 },
- { 0.38, 0x3, 0 },
- { 0.5, 0x1, 1 },
- { 0.67, 0x2, 1 },
- { 1.0, 0x3, 1 }
+ { 0.152, 0x1, 1 },
+ { 0.255, 0x2, 1 },
+ { 0.38, 0x3, 1 },
+ { 0.5, 0x1, 0 },
+ { 0.67, 0x2, 0 },
+ { 1.0, 0x3, 0 }
};
/*
@@ -1660,8 +1860,12 @@ pcl_parameters(const stp_printer_t printer,/* I - Printer model */
stp_deprintf(STP_DBG_PCL, "Printer model = %d\n", model);
stp_deprintf(STP_DBG_PCL, "PageWidth = %d, PageHeight = %d\n", caps->custom_max_width, caps->custom_max_height);
stp_deprintf(STP_DBG_PCL, "MinPageWidth = %d, MinPageHeight = %d\n", caps->custom_min_width, caps->custom_min_height);
- stp_deprintf(STP_DBG_PCL, "Margins: top = %d, bottom = %d, left = %d, right = %d\n",
- caps->top_margin, caps->bottom_margin, caps->left_margin, caps->right_margin);
+ stp_deprintf(STP_DBG_PCL, "Normal Margins: top = %d, bottom = %d, left = %d, right = %d\n",
+ caps->normal_margins.top_margin, caps->normal_margins.bottom_margin,
+ caps->normal_margins.left_margin, caps->normal_margins.right_margin);
+ stp_deprintf(STP_DBG_PCL, "A4 Margins: top = %d, bottom = %d, left = %d, right = %d\n",
+ caps->a4_margins.top_margin, caps->a4_margins.bottom_margin,
+ caps->a4_margins.left_margin, caps->a4_margins.right_margin);
stp_deprintf(STP_DBG_PCL, "Resolutions: %d\n", caps->resolutions);
stp_deprintf(STP_DBG_PCL, "ColorType = %d, PrinterType = %d\n", caps->color_type, caps->stp_printer_type);
@@ -1788,8 +1992,12 @@ pcl_default_parameters(const stp_printer_t printer,
stp_deprintf(STP_DBG_PCL, "Printer model = %d\n", model);
stp_deprintf(STP_DBG_PCL, "PageWidth = %d, PageHeight = %d\n", caps->custom_max_width, caps->custom_max_height);
stp_deprintf(STP_DBG_PCL, "MinPageWidth = %d, MinPageHeight = %d\n", caps->custom_min_width, caps->custom_min_height);
- stp_deprintf(STP_DBG_PCL, "Margins: top = %d, bottom = %d, left = %d, right = %d\n",
- caps->top_margin, caps->bottom_margin, caps->left_margin, caps->right_margin);
+ stp_deprintf(STP_DBG_PCL, "Normal Margins: top = %d, bottom = %d, left = %d, right = %d\n",
+ caps->normal_margins.top_margin, caps->normal_margins.bottom_margin,
+ caps->normal_margins.left_margin, caps->normal_margins.right_margin);
+ stp_deprintf(STP_DBG_PCL, "A4 Margins: top = %d, bottom = %d, left = %d, right = %d\n",
+ caps->a4_margins.top_margin, caps->a4_margins.bottom_margin,
+ caps->a4_margins.left_margin, caps->a4_margins.right_margin);
stp_deprintf(STP_DBG_PCL, "Resolutions: %d\n", caps->resolutions);
stp_deprintf(STP_DBG_PCL, "ColorType = %d, PrinterType = %d\n", caps->color_type, caps->stp_printer_type);
@@ -1881,21 +2089,48 @@ pcl_imageable_area(const stp_printer_t printer, /* I - Printer model */
int *top) /* O - Top position in points */
{
int width, height; /* Size of page */
- const pcl_cap_t *caps; /* Printer caps */
+ const pcl_cap_t *caps; /* Printer caps */
+ int pcl_media_size; /* Converted media size */
+ const char *media_size; /* Media size string */
+ stp_papersize_t pp;
caps = pcl_get_model_capabilities(stp_printer_get_model(printer));
stp_default_media_size(printer, v, &width, &height);
-/*
- * Note: The margins actually vary with paper size, but since you can
- * move the image around on the page anyway, it hardly matters.
+/* If we are using A4 paper, then the margins are different than any
+ * other paper size. This is because HP wanted to have the same printable
+ * width for A4 as for letter. Go figure.
*/
- *left = caps->left_margin;
- *right = width - caps->right_margin;
- *top = height - caps->top_margin;
- *bottom = caps->bottom_margin;
+ if (strlen(stp_get_media_size(v)) > 0)
+ media_size = stp_get_media_size(v);
+ else if ((pp = stp_get_papersize_by_size(stp_get_page_height(v),
+ stp_get_page_width(v))) != NULL)
+ media_size = stp_papersize_get_name(pp);
+ else
+ media_size = "";
+
+ stp_deprintf(STP_DBG_PCL, "pcl_imageable_area(): media_size: '%s'\n",
+ media_size);
+
+ pcl_media_size = pcl_convert_media_size(media_size,
+ stp_printer_get_model(printer));
+
+ if (pcl_media_size == PCL_PAPERSIZE_A4)
+ {
+ *left = caps->a4_margins.left_margin;
+ *right = width - caps->a4_margins.right_margin;
+ *top = height - caps->a4_margins.top_margin;
+ *bottom = caps->a4_margins.bottom_margin;
+ }
+ else
+ {
+ *left = caps->normal_margins.left_margin;
+ *right = width - caps->normal_margins.right_margin;
+ *top = height - caps->normal_margins.top_margin;
+ *bottom = caps->normal_margins.bottom_margin;
+ }
}
static void
@@ -1962,8 +2197,8 @@ pcl_print(const stp_printer_t printer, /* I - Model */
errlast; /* Last raster line loaded */
stp_convert_t colorfunc; /* Color conversion function... */
int zero_mask;
- void (*writefunc)(const stp_vars_t, unsigned char *, int, int);
- /* PCL output function */
+ void (*writefunc)(const stp_vars_t, unsigned char *, unsigned char *,
+ int, int); /* PCL output function */
int image_height,
image_width,
image_bpp;
@@ -1988,6 +2223,10 @@ pcl_print(const stp_printer_t printer, /* I - Model */
int blank_lines, /* Accumulated blank lines */
is_blank, /* Current line is blank */
do_blank; /* Blank line removal required */
+ stp_dither_data_t *dt;
+ unsigned char *comp_buf; /* Scratch buffer for pcl_mode2 */
+ int the_top_margin, /* Corrected top margin */
+ the_left_margin; /* Corrected left margin */
if (!stp_get_verified(nv))
{
@@ -2328,13 +2567,11 @@ pcl_print(const stp_printer_t printer, /* I - Model */
if ((caps->stp_printer_type & PCL_PRINTER_TIFF) == PCL_PRINTER_TIFF)
{
stp_puts("\033*b2M", v); /* Mode 2 (TIFF) */
- writefunc = pcl_mode2;
}
else
#endif
{
stp_puts("\033*b0M", v); /* Mode 0 (no compression) */
- writefunc = pcl_mode0;
}
/*
@@ -2344,12 +2581,23 @@ pcl_print(const stp_printer_t printer, /* I - Model */
out_width = xdpi * out_width / 72;
out_height = ydpi * out_height / 72;
+ if (pcl_media_size == PCL_PAPERSIZE_A4)
+ {
+ the_left_margin = caps->a4_margins.left_margin;
+ the_top_margin = caps->a4_margins.top_margin;
+ }
+ else
+ {
+ the_left_margin = caps->normal_margins.left_margin;
+ the_top_margin = caps->normal_margins.top_margin;
+ }
+
stp_deprintf(STP_DBG_PCL, "left %d margin %d top %d margin %d width %d height %d\n",
- left, caps->left_margin, top, caps->top_margin, out_width, out_height);
+ left, the_left_margin, top, the_top_margin, out_width, out_height);
if (!do_cretb) {
stp_zprintf(v, "\033&a%dH", 10 * left); /* Set left raster position */
- stp_zprintf(v, "\033&a%dV", 10 * (top + caps->top_margin));
+ stp_zprintf(v, "\033&a%dV", 10 * (top + the_top_margin));
/* Set top raster position */
}
stp_zprintf(v, "\033*r%dS", out_width); /* Set raster width */
@@ -2358,7 +2606,7 @@ pcl_print(const stp_printer_t printer, /* I - Model */
if (do_cretb)
{
/* Move to top left of printed area */
- stp_zprintf(v, "\033*p%dY", (top + caps->top_margin)*4); /* Mesuret in dots. */
+ stp_zprintf(v, "\033*p%dY", (top + the_top_margin)*4); /* Measured in dots. */
stp_zprintf(v, "\033*p%dX", left*4);
}
stp_puts("\033*r1A", v); /* Start GFX */
@@ -2402,6 +2650,21 @@ pcl_print(const stp_printer_t printer, /* I - Model */
}
}
+/* Allocate buffer for pcl_mode2 tiff compression */
+
+#ifndef PCL_DEBUG_DISABLE_COMPRESSION
+ if ((caps->stp_printer_type & PCL_PRINTER_TIFF) == PCL_PRINTER_TIFF)
+ {
+ comp_buf = stp_malloc((height + 128 + 7) * 129 / 128);
+ writefunc = pcl_mode2;
+ }
+ else
+#endif
+ {
+ comp_buf = NULL;
+ writefunc = pcl_mode0;
+ }
+
/*
* Output the page, rotating as necessary...
*/
@@ -2422,6 +2685,12 @@ pcl_print(const stp_printer_t printer, /* I - Model */
stp_dither_set_black_upper(dither, .999);
#endif
+/* Ensure that density does not exceed 1.0 */
+
+ stp_deprintf(STP_DBG_PCL, "Density: %f\n", stp_get_density(nv));
+ if (stp_get_density(nv) > 1.0)
+ stp_set_density(nv, 1.0);
+
if (do_cret) /* 4-level printing for 800/1120 */
{
stp_dither_set_ranges_simple(dither, ECOLOR_Y, 3, dot_sizes_use, stp_get_density(nv));
@@ -2465,8 +2734,8 @@ pcl_print(const stp_printer_t printer, /* I - Model */
}
stp_dither_set_density(dither, stp_get_density(nv));
- in = stp_malloc(image_width * image_bpp);
- out = stp_malloc(image_width * out_bpp * 2);
+ in = stp_zalloc(image_width * image_bpp);
+ out = stp_zalloc(image_width * out_bpp * 2);
errdiv = image_height / out_height;
errmod = image_height % out_height;
@@ -2482,6 +2751,20 @@ pcl_print(const stp_printer_t printer, /* I - Model */
do_blank = 0;
#endif
+ dt = stp_create_dither_data();
+ if (black)
+ stp_add_channel(dt, black, ECOLOR_K, 0);
+ if (cyan)
+ stp_add_channel(dt, cyan, ECOLOR_C, 0);
+ if (lcyan)
+ stp_add_channel(dt, lcyan, ECOLOR_C, 1);
+ if (magenta)
+ stp_add_channel(dt, magenta, ECOLOR_M, 0);
+ if (lmagenta)
+ stp_add_channel(dt, lmagenta, ECOLOR_M, 1);
+ if (yellow)
+ stp_add_channel(dt, yellow, ECOLOR_Y, 0);
+
for (y = 0; y < out_height; y ++)
{
int duplicate_line = 1;
@@ -2500,15 +2783,14 @@ pcl_print(const stp_printer_t printer, /* I - Model */
hue_adjustment, lum_adjustment, NULL);
}
- stp_dither(out, y, dither, cyan, lcyan, magenta, lmagenta,
- yellow, NULL, black, duplicate_line, zero_mask);
+ stp_dither(out, y, dither, dt, duplicate_line, zero_mask);
- len_c = stp_dither_get_last_position(dither, ECOLOR_C, 1);
- len_lc = stp_dither_get_last_position(dither, ECOLOR_C, 0);
- len_m = stp_dither_get_last_position(dither, ECOLOR_M, 1);
- len_lm = stp_dither_get_last_position(dither, ECOLOR_M, 0);
- len_y = stp_dither_get_last_position(dither, ECOLOR_Y, 1);
- len_k = stp_dither_get_last_position(dither, ECOLOR_K, 1);
+ len_c = stp_dither_get_last_position(dither, ECOLOR_C, 0);
+ len_lc = stp_dither_get_last_position(dither, ECOLOR_C, 1);
+ len_m = stp_dither_get_last_position(dither, ECOLOR_M, 0);
+ len_lm = stp_dither_get_last_position(dither, ECOLOR_M, 1);
+ len_y = stp_dither_get_last_position(dither, ECOLOR_Y, 0);
+ len_k = stp_dither_get_last_position(dither, ECOLOR_K, 0);
/*
* Blank line removal. If multiple lines are blank then they can be replaced
@@ -2550,36 +2832,36 @@ pcl_print(const stp_printer_t printer, /* I - Model */
*/
if (output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME)
{
- (*writefunc)(v, black + height / 2, height / 2, 0);
- (*writefunc)(v, black, height / 2, 1);
+ (*writefunc)(v, comp_buf, black + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, black, height / 2, 1);
}
else
{
if(do_cretb)
{
-/* (*writefunc)(v, black + height / 2, 0, 0); */
- (*writefunc)(v, black, height/2, 0);
+/* (*writefunc)(v, comp_buf, black + height / 2, 0, 0); */
+ (*writefunc)(v, comp_buf, black, height/2, 0);
}
else
{
- (*writefunc)(v, black + height / 2, height / 2, 0);
- (*writefunc)(v, black, height / 2, 0);
+ (*writefunc)(v, comp_buf, black + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, black, height / 2, 0);
}
- (*writefunc)(v, cyan + height / 2, height / 2, 0);
- (*writefunc)(v, cyan, height / 2, 0);
- (*writefunc)(v, magenta + height / 2, height / 2, 0);
- (*writefunc)(v, magenta, height / 2, 0);
- (*writefunc)(v, yellow + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, cyan + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, cyan, height / 2, 0);
+ (*writefunc)(v, comp_buf, magenta + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, magenta, height / 2, 0);
+ (*writefunc)(v, comp_buf, yellow + height / 2, height / 2, 0);
if (do_6color)
{
- (*writefunc)(v, yellow, height / 2, 0);
- (*writefunc)(v, lcyan + height / 2, height / 2, 0);
- (*writefunc)(v, lcyan, height / 2, 0);
- (*writefunc)(v, lmagenta + height / 2, height / 2, 0);
- (*writefunc)(v, lmagenta, height / 2, 1); /* Last plane set on light magenta */
+ (*writefunc)(v, comp_buf, yellow, height / 2, 0);
+ (*writefunc)(v, comp_buf, lcyan + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, lcyan, height / 2, 0);
+ (*writefunc)(v, comp_buf, lmagenta + height / 2, height / 2, 0);
+ (*writefunc)(v, comp_buf, lmagenta, height / 2, 1); /* Last plane set on light magenta */
}
else
- (*writefunc)(v, yellow, height / 2, 1); /* Last plane set on yellow */
+ (*writefunc)(v, comp_buf, yellow, height / 2, 1); /* Last plane set on yellow */
}
}
else
@@ -2590,22 +2872,22 @@ pcl_print(const stp_printer_t printer, /* I - Model */
if (output_type == OUTPUT_GRAY || output_type == OUTPUT_MONOCHROME)
{
- (*writefunc)(v, black, height, 1);
+ (*writefunc)(v, comp_buf, black, height, 1);
}
else
{
if (black != NULL)
- (*writefunc)(v, black, height, 0);
- (*writefunc)(v, cyan, height, 0);
- (*writefunc)(v, magenta, height, 0);
+ (*writefunc)(v, comp_buf, black, height, 0);
+ (*writefunc)(v, comp_buf, cyan, height, 0);
+ (*writefunc)(v, comp_buf, magenta, height, 0);
if (do_6color)
{
- (*writefunc)(v, yellow, height, 0);
- (*writefunc)(v, lcyan, height, 0);
- (*writefunc)(v, lmagenta, height, 1); /* Last plane set on light magenta */
+ (*writefunc)(v, comp_buf, yellow, height, 0);
+ (*writefunc)(v, comp_buf, lcyan, height, 0);
+ (*writefunc)(v, comp_buf, lmagenta, height, 1); /* Last plane set on light magenta */
}
else
- (*writefunc)(v, yellow, height, 1); /* Last plane set on yellow */
+ (*writefunc)(v, comp_buf, yellow, height, 1); /* Last plane set on yellow */
}
}
}
@@ -2631,6 +2913,7 @@ pcl_print(const stp_printer_t printer, /* I - Model */
image->progress_conclude(image);
+ stp_free_dither_data(dt);
stp_free_dither(dither);
@@ -2656,6 +2939,9 @@ pcl_print(const stp_printer_t printer, /* I - Model */
stp_free(lmagenta);
}
+ if (comp_buf != NULL)
+ stp_free(comp_buf);
+
if ((caps->stp_printer_type & PCL_PRINTER_NEW_ERG) == PCL_PRINTER_NEW_ERG)
stp_puts("\033*rC", v);
else
@@ -2679,7 +2965,9 @@ const stp_printfuncs_t stp_pcl_printfuncs =
pcl_print,
pcl_default_parameters,
pcl_describe_resolution,
- stp_verify_printer_params
+ stp_verify_printer_params,
+ stp_start_job,
+ stp_end_job
};
@@ -2689,6 +2977,7 @@ const stp_printfuncs_t stp_pcl_printfuncs =
static void
pcl_mode0(const stp_vars_t v, /* I - Print file or command */
+ unsigned char *comp_buf, /* I - scratch buffer (not used) */
unsigned char *line, /* I - Output bitmap data */
int height, /* I - Height of bitmap data */
int last_plane) /* I - True if this is the last plane */
@@ -2704,12 +2993,12 @@ pcl_mode0(const stp_vars_t v, /* I - Print file or command */
static void
pcl_mode2(const stp_vars_t v, /* I - Print file or command */
+ unsigned char *comp_buf, /* I - Scratch Buffer */
unsigned char *line, /* I - Output bitmap data */
int height, /* I - Height of bitmap data */
int last_plane) /* I - True if this is the last plane */
{
- unsigned char comp_buf[1536], /* Compression buffer */
- *comp_ptr; /* Current slot in buffer */
+ unsigned char *comp_ptr; /* Current slot in buffer */
stp_pack_tiff(line, height, comp_buf, &comp_ptr);
diff --git a/src/main/print-ps.c b/src/main/print-ps.c
index d7bac33..3f37cff 100644
--- a/src/main/print-ps.c
+++ b/src/main/print-ps.c
@@ -1,9 +1,9 @@
/*
- * "$Id: print-ps.c,v 1.26 2001/11/09 12:16:53 rlk Exp $"
+ * "$Id: print-ps.c,v 1.26.2.7 2004/06/13 14:33:55 rlk Exp $"
*
* Print plug-in Adobe PostScript driver for the GIMP.
*
- * Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
+ * Copyright 1997-2002 Michael Sweet (mike@easysw.com) and
* Robert Krawitz (rlk@alum.mit.edu)
*
* This program is free software; you can redistribute it and/or modify it
@@ -59,15 +59,23 @@ static void ps_ascii85(const stp_vars_t, unsigned short *, int, int);
static char *ppd_find(const char *, const char *, const char *, int *);
+static char *
+c_strdup(const char *s)
+{
+ char *ret = stp_malloc(strlen(s) + 1);
+ strcpy(ret, s);
+ return ret;
+}
+
/*
* 'ps_parameters()' - Return the parameter values for the given parameter.
*/
static stp_param_t * /* O - Parameter values */
-ps_parameters(const stp_printer_t printer, /* I - Printer model */
- const char *ppd_file, /* I - PPD file (not used) */
- const char *name, /* I - Name of parameter */
- int *count) /* O - Number of values */
+ps_parameters_internal(const stp_printer_t printer, /* I - Printer model */
+ const char *ppd_file, /* I - PPD file (not used) */
+ const char *name, /* I - Name of parameter */
+ int *count) /* O - Number of values */
{
int i;
char line[1024],
@@ -103,15 +111,15 @@ ps_parameters(const stp_printer_t printer, /* I - Printer model */
if (strcmp(name, "PageSize") == 0)
{
int papersizes = stp_known_papersizes();
- valptrs = stp_malloc(sizeof(stp_param_t) * papersizes);
+ valptrs = stp_zalloc(sizeof(stp_param_t) * papersizes);
*count = 0;
for (i = 0; i < papersizes; i++)
{
const stp_papersize_t pt = stp_get_papersize_by_index(i);
if (strlen(stp_papersize_get_name(pt)) > 0)
{
- valptrs[*count].name = strdup(stp_papersize_get_name(pt));
- valptrs[*count].text = strdup(stp_papersize_get_text(pt));
+ valptrs[*count].name = c_strdup(stp_papersize_get_name(pt));
+ valptrs[*count].text = c_strdup(stp_papersize_get_text(pt));
(*count)++;
}
}
@@ -124,7 +132,8 @@ ps_parameters(const stp_printer_t printer, /* I - Printer model */
rewind(ps_ppd);
*count = 0;
- valptrs = stp_malloc(100 * sizeof(stp_param_t));
+ /* FIXME -- need to use realloc */
+ valptrs = stp_zalloc(100 * sizeof(stp_param_t));
while (fgets(line, sizeof(line), ps_ppd) != NULL)
{
@@ -141,8 +150,8 @@ ps_parameters(const stp_printer_t printer, /* I - Printer model */
else
ltext = loption;
- valptrs[(*count)].name = strdup(loption);
- valptrs[(*count)].text = strdup(ltext);
+ valptrs[(*count)].name = c_strdup(loption);
+ valptrs[(*count)].text = c_strdup(ltext);
(*count) ++;
}
}
@@ -156,10 +165,23 @@ ps_parameters(const stp_printer_t printer, /* I - Printer model */
return (valptrs);
}
+static stp_param_t * /* O - Parameter values */
+ps_parameters(const stp_printer_t printer, /* I - Printer model */
+ const char *ppd_file, /* I - PPD file (not used) */
+ const char *name, /* I - Name of parameter */
+ int *count) /* O - Number of values */
+{
+ stp_param_t *answer;
+ setlocale(LC_ALL, "C");
+ answer = ps_parameters_internal(printer, ppd_file, name, count);
+ setlocale(LC_ALL, "");
+ return answer;
+}
+
static const char *
-ps_default_parameters(const stp_printer_t printer,
- const char *ppd_file,
- const char *name)
+ps_default_parameters_internal(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name)
{
int i;
char line[1024],
@@ -216,7 +238,7 @@ ps_default_parameters(const stp_printer_t printer,
if (strcasecmp(lname, defname) == 0)
{
- return strdup(loption);
+ return c_strdup(loption);
}
}
@@ -228,18 +250,30 @@ ps_default_parameters(const stp_printer_t printer,
return NULL;
}
+static const char *
+ps_default_parameters(const stp_printer_t printer,
+ const char *ppd_file,
+ const char *name)
+{
+ const char *answer;
+ setlocale(LC_ALL, "C");
+ answer = ps_default_parameters_internal(printer, ppd_file, name);
+ setlocale(LC_ALL, "");
+ return answer;
+}
/*
* 'ps_media_size()' - Return the size of the page.
*/
static void
-ps_media_size(const stp_printer_t printer, /* I - Printer model */
- const stp_vars_t v, /* I */
- int *width, /* O - Width in points */
- int *height) /* O - Height in points */
+ps_media_size_internal(const stp_printer_t printer, /* I - Printer model */
+ const stp_vars_t v, /* I */
+ int *width, /* O - Width in points */
+ int *height) /* O - Height in points */
{
char *dimensions; /* Dimensions of media size */
+ float fwidth, fheight;
stp_dprintf(STP_DBG_PS, v,
"ps_media_size(%d, \'%s\', \'%s\', %08x, %08x)\n",
@@ -250,23 +284,39 @@ ps_media_size(const stp_printer_t printer, /* I - Printer model */
if ((dimensions = ppd_find(stp_get_ppd_file(v), "PaperDimension",
stp_get_media_size(v), NULL))
!= NULL)
- sscanf(dimensions, "%d%d", width, height);
+ {
+ sscanf(dimensions, "%f%f", &fwidth, &fheight);
+ *width = fwidth;
+ *height = fheight;
+ stp_dprintf(STP_DBG_PS, v, "dimensions '%s' %f %f %d %d\n",
+ dimensions, fwidth, fheight, *width, *height);
+ }
else
stp_default_media_size(printer, v, width, height);
}
+static void
+ps_media_size(const stp_printer_t printer, /* I - Printer model */
+ const stp_vars_t v, /* I */
+ int *width, /* O - Width in points */
+ int *height) /* O - Height in points */
+{
+ setlocale(LC_ALL, "C");
+ ps_media_size_internal(printer, v, width, height);
+ setlocale(LC_ALL, "");
+}
/*
* 'ps_imageable_area()' - Return the imageable area of the page.
*/
static void
-ps_imageable_area(const stp_printer_t printer, /* I - Printer model */
- const stp_vars_t v, /* I */
- int *left, /* O - Left position in points */
- int *right, /* O - Right position in points */
- int *bottom, /* O - Bottom position in points */
- int *top) /* O - Top position in points */
+ps_imageable_area_internal(const stp_printer_t printer, /* I - Printer model */
+ const stp_vars_t v, /* I */
+ int *left, /* O - Left position in points */
+ int *right, /* O - Right position in points */
+ int *bottom, /* O - Bottom position in points */
+ int *top) /* O - Top position in points */
{
char *area; /* Imageable area of media */
float fleft, /* Floating point versions */
@@ -301,6 +351,19 @@ ps_imageable_area(const stp_printer_t printer, /* I - Printer model */
}
static void
+ps_imageable_area(const stp_printer_t printer, /* I - Printer model */
+ const stp_vars_t v, /* I */
+ int *left, /* O - Left position in points */
+ int *right, /* O - Right position in points */
+ int *bottom, /* O - Bottom position in points */
+ int *top) /* O - Top position in points */
+{
+ setlocale(LC_ALL, "C");
+ ps_imageable_area_internal(printer, v, left, right, bottom, top);
+ setlocale(LC_ALL, "");
+}
+
+static void
ps_limit(const stp_printer_t printer, /* I - Printer model */
const stp_vars_t v, /* I */
int *width,
@@ -318,8 +381,8 @@ ps_limit(const stp_printer_t printer, /* I - Printer model */
* This is really bogus...
*/
static void
-ps_describe_resolution(const stp_printer_t printer,
- const char *resolution, int *x, int *y)
+ps_describe_resolution_internal(const stp_printer_t printer,
+ const char *resolution, int *x, int *y)
{
*x = -1;
*y = -1;
@@ -327,14 +390,23 @@ ps_describe_resolution(const stp_printer_t printer,
return;
}
+static void
+ps_describe_resolution(const stp_printer_t printer,
+ const char *resolution, int *x, int *y)
+{
+ setlocale(LC_ALL, "C");
+ ps_describe_resolution_internal(printer, resolution, x, y);
+ setlocale(LC_ALL, "");
+}
+
/*
* 'ps_print()' - Print an image to a PostScript printer.
*/
static void
-ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
- stp_image_t *image, /* I - Image to print */
- const stp_vars_t v)
+ps_print_internal(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v)
{
unsigned char *cmap = stp_get_cmap(v);
int model = stp_printer_get_model(printer);
@@ -367,10 +439,12 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
stp_convert_t colorfunc; /* Color conversion function... */
int zero_mask;
char *command; /* PostScript command */
+ const char *temp; /* Temporary string pointer */
int order, /* Order of command */
num_commands; /* Number of commands */
struct /* PostScript commands... */
{
+ const char *keyword, *choice;
char *command;
int order;
} commands[4];
@@ -455,6 +529,7 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
stp_zprintf(v, "%%%%Creator: %s/Gimp-Print\n", image->get_appname(image));
#endif
stp_zprintf(v, "%%%%CreationDate: %s", ctime(&curtime));
+ stp_puts("%Copyright: 1997-2002 by Michael Sweet (mike@easysw.com) and Robert Krawitz (rlk@alum.mit.edu)\n", v);
stp_zprintf(v, "%%%%BoundingBox: %d %d %d %d\n",
left, top - out_height, left + out_width, top);
stp_puts("%%DocumentData: Clean7Bit\n", v);
@@ -462,8 +537,6 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
stp_puts("%%Pages: 1\n", v);
stp_puts("%%Orientation: Portrait\n", v);
stp_puts("%%EndComments\n", v);
- stp_puts("%Copyright: 1997-2000 by Michael Sweet (mike@easysw.com) and Robert Krawitz (rlk@alum.mit.edu)\n", v);
- stp_puts("%%EndProlog\n", v);
/*
* Find any printer-specific commands...
@@ -473,6 +546,8 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
if ((command = ppd_find(ppd_file, "PageSize", media_size, &order)) != NULL)
{
+ commands[num_commands].keyword = "PageSize";
+ commands[num_commands].choice = media_size;
commands[num_commands].command = stp_malloc(strlen(command) + 1);
strcpy(commands[num_commands].command, command);
commands[num_commands].order = order;
@@ -481,6 +556,8 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
if ((command = ppd_find(ppd_file, "InputSlot", media_source, &order)) != NULL)
{
+ commands[num_commands].keyword = "InputSlot";
+ commands[num_commands].choice = media_source;
commands[num_commands].command = stp_malloc(strlen(command) + 1);
strcpy(commands[num_commands].command, command);
commands[num_commands].order = order;
@@ -489,6 +566,8 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
if ((command = ppd_find(ppd_file, "MediaType", media_type, &order)) != NULL)
{
+ commands[num_commands].keyword = "MediaType";
+ commands[num_commands].choice = media_type;
commands[num_commands].command = stp_malloc(strlen(command) + 1);
strcpy(commands[num_commands].command, command);
commands[num_commands].order = order;
@@ -497,6 +576,8 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
if ((command = ppd_find(ppd_file, "Resolution", resolution, &order)) != NULL)
{
+ commands[num_commands].keyword = "Resolution";
+ commands[num_commands].choice = resolution;
commands[num_commands].command = stp_malloc(strlen(command) + 1);
strcpy(commands[num_commands].command, command);
commands[num_commands].order = order;
@@ -511,12 +592,21 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
for (j = i + 1; j < num_commands; j ++)
if (commands[j].order < commands[i].order)
{
+ temp = commands[i].keyword;
+ commands[i].keyword = commands[j].keyword;
+ commands[j].keyword = temp;
+
+ temp = commands[i].choice;
+ commands[i].choice = commands[j].choice;
+ commands[j].choice = temp;
+
order = commands[i].order;
+ commands[i].order = commands[j].order;
+ commands[j].order = order;
+
command = commands[i].command;
commands[i].command = commands[j].command;
- commands[i].order = commands[j].order;
commands[j].command = command;
- commands[j].order = order;
}
/*
@@ -525,16 +615,26 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
if (num_commands > 0)
{
- stp_puts("%%BeginProlog\n", v);
+ stp_puts("%%BeginSetup\n", v);
for (i = 0; i < num_commands; i ++)
{
- stp_puts(commands[i].command, v);
- stp_puts("\n", v);
+ stp_puts("[{\n", v);
+ stp_zprintf(v, "%%%%BeginFeature: *%s %s\n", commands[i].keyword,
+ commands[i].choice);
+ if (commands[i].command[0])
+ {
+ stp_puts(commands[i].command, v);
+ if (commands[i].command[strlen(commands[i].command) - 1] != '\n')
+ stp_puts("\n", v);
+ }
+
+ stp_puts("%%EndFeature\n", v);
+ stp_puts("} stopped cleartomark\n", v);
stp_free(commands[i].command);
}
- stp_puts("%%EndProlog\n", v);
+ stp_puts("%%EndSetup\n", v);
}
/*
@@ -545,12 +645,19 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
stp_puts("gsave\n", v);
stp_zprintf(v, "%d %d translate\n", left, top);
+
+ /* Force locale to "C", because decimal numbers in Postscript must
+ always be printed with a decimal point rather than the
+ locale-specific setting. */
+
+ setlocale(LC_ALL, "C");
stp_zprintf(v, "%.3f %.3f scale\n",
(double)out_width / ((double)image_width),
(double)out_height / ((double)image_height));
+ setlocale(LC_ALL, "");
- in = stp_malloc(image_width * image_bpp);
- out = stp_malloc((image_width * out_bpp + 3) * 2);
+ in = stp_zalloc(image_width * image_bpp);
+ out = stp_zalloc((image_width * out_bpp + 3) * 2);
stp_compute_lut(nv, 256);
@@ -649,6 +756,16 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
stp_free_vars(nv);
}
+static void
+ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
+ stp_image_t *image, /* I - Image to print */
+ const stp_vars_t v)
+{
+ setlocale(LC_ALL, "C");
+ ps_print_internal(printer, image, v);
+ setlocale(LC_ALL, "");
+}
+
/*
* 'ps_hex()' - Print binary data as a series of hexadecimal numbers.
@@ -656,10 +773,10 @@ ps_print(const stp_printer_t printer, /* I - Model (Level 1 or 2) */
static void
ps_hex(const stp_vars_t v, /* I - File to print to */
- unsigned short *data, /* I - Data to print */
- int length) /* I - Number of bytes to print */
+ unsigned short *data, /* I - Data to print */
+ int length) /* I - Number of bytes to print */
{
- int col; /* Current column */
+ int col; /* Current column */
static const char *hex = "0123456789ABCDEF";
@@ -668,7 +785,7 @@ ps_hex(const stp_vars_t v, /* I - File to print to */
{
unsigned char pixel = (*data & 0xff00) >> 8;
/*
- * Put the hex chars out to the file; note that we don't use fprintf()
+ * Put the hex chars out to the file; note that we don't use stp_zprintf()
* for speed reasons...
*/
@@ -678,9 +795,12 @@ ps_hex(const stp_vars_t v, /* I - File to print to */
data ++;
length --;
- col = (col + 1) & 31;
- if (col == 0)
+ col += 2;
+ if (col >= 72)
+ {
+ col = 0;
stp_putc('\n', v);
+ }
}
if (col > 0)
@@ -693,15 +813,15 @@ ps_hex(const stp_vars_t v, /* I - File to print to */
*/
static void
-ps_ascii85(const stp_vars_t v, /* I - File to print to */
+ps_ascii85(const stp_vars_t v, /* I - File to print to */
unsigned short *data, /* I - Data to print */
- int length, /* I - Number of bytes to print */
- int last_line) /* I - Last line of raster data? */
+ int length, /* I - Number of bytes to print */
+ int last_line) /* I - Last line of raster data? */
{
- int i; /* Looping var */
- unsigned b; /* Binary data word */
- unsigned char c[5]; /* ASCII85 encoded chars */
- static int column = 0; /* Current column */
+ int i; /* Looping var */
+ unsigned b; /* Binary data word */
+ unsigned char c[5]; /* ASCII85 encoded chars */
+ static int column = 0; /* Current column */
while (length > 3)
@@ -774,8 +894,8 @@ ps_ascii85(const stp_vars_t v, /* I - File to print to */
static char * /* O - Control string */
ppd_find(const char *ppd_file, /* I - Name of PPD file */
- const char *name, /* I - Name of parameter */
- const char *option, /* I - Value of parameter */
+ const char *name, /* I - Name of parameter */
+ const char *option, /* I - Value of parameter */
int *order) /* O - Order of the control string */
{
char line[1024], /* Line from file */
@@ -788,7 +908,7 @@ ppd_find(const char *ppd_file, /* I - Name of PPD file */
if (ppd_file == NULL || name == NULL || option == NULL)
return (NULL);
if (!value)
- value = stp_malloc(32768);
+ value = stp_zalloc(32768);
if (ps_ppd_file == NULL || strcmp(ps_ppd_file, ppd_file) != 0)
{
@@ -864,5 +984,7 @@ const stp_printfuncs_t stp_ps_printfuncs =
ps_print,
ps_default_parameters,
ps_describe_resolution,
- stp_verify_printer_params
+ stp_verify_printer_params,
+ stp_start_job,
+ stp_end_job
};
diff --git a/src/main/print-util.c b/src/main/print-util.c
index a5d005a..268b526 100644
--- a/src/main/print-util.c
+++ b/src/main/print-util.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-util.c,v 1.53 2001/11/10 00:12:20 rlk Exp $"
+ * "$Id: print-util.c,v 1.53.2.21 2004/02/16 21:08:33 rlk Exp $"
*
* Print plug-in driver utility functions for the GIMP.
*
@@ -86,6 +86,8 @@ typedef struct /* Plug-in variables */
int page_height; /* Height of page in points */
int input_color_model; /* Color model for this device */
int output_color_model; /* Color model for this device */
+ int page_number;
+ stp_job_mode_t job_mode;
void *lut; /* Look-up table */
void *driver_data; /* Private data of the driver */
unsigned char *cmap; /* Color map */
@@ -150,7 +152,9 @@ static const stp_internal_vars_t default_vars =
0, /* Page width */
0, /* Page height */
COLOR_MODEL_RGB, /* Input color model */
- COLOR_MODEL_RGB /* Output color model */
+ COLOR_MODEL_RGB, /* Output color model */
+ 0, /* Page number */
+ STP_JOB_MODE_PAGE /* Job mode */
};
static const stp_internal_vars_t min_vars =
@@ -184,7 +188,9 @@ static const stp_internal_vars_t min_vars =
0, /* Page width */
0, /* Page height */
0, /* Input color model */
- 0 /* Output color model */
+ 0, /* Output color model */
+ 0, /* Page number */
+ STP_JOB_MODE_PAGE /* Job mode */
};
static const stp_internal_vars_t max_vars =
@@ -218,14 +224,15 @@ static const stp_internal_vars_t max_vars =
0, /* Page width */
0, /* Page height */
NCOLOR_MODELS - 1, /* Input color model */
- NCOLOR_MODELS - 1 /* Output color model */
+ NCOLOR_MODELS - 1, /* Output color model */
+ INT_MAX, /* Page number */
+ STP_JOB_MODE_JOB /* Job mode */
};
stp_vars_t
stp_allocate_vars(void)
{
- void *retval = stp_malloc(sizeof(stp_internal_vars_t));
- memset(retval, 0, sizeof(stp_internal_vars_t));
+ void *retval = stp_zalloc(sizeof(stp_internal_vars_t));
stp_copy_vars(retval, (stp_vars_t)&default_vars);
return (retval);
}
@@ -365,6 +372,8 @@ DEF_FUNCS(yellow, float)
DEF_FUNCS(saturation, float)
DEF_FUNCS(density, float)
DEF_FUNCS(app_gamma, float)
+DEF_FUNCS(page_number, int)
+DEF_FUNCS(job_mode, stp_job_mode_t)
DEF_FUNCS(lut, void *)
DEF_FUNCS(outdata, void *)
DEF_FUNCS(errdata, void *)
@@ -551,6 +560,8 @@ static stp_internal_papersize_t paper_sizes[] =
864, 1296, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "SuperB", N_ ("Super B 13x19"),
936, 1368, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
+ { "EngineeringC", N_ ("Engineering C 17x22"),
+ 1224, 1584, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
/* Other common photographic paper sizes */
{ "w576h864", N_ ("8x12"),
@@ -565,6 +576,8 @@ static stp_internal_papersize_t paper_sizes[] =
1440, 1728, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "w1440h2160", N_ ("20x30"),
1440, 2160, 0, 0, 0, 0, PAPERSIZE_ENGLISH }, /* 24x30 for 35 mm */
+ { "w1584h2160", N_ ("22x30"),
+ 1584, 2160, 0, 0, 0, 0, PAPERSIZE_ENGLISH }, /* Common watercolor paper */
{ "w1728h2160", N_ ("24x30"),
1728, 2160, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "w1728h2592", N_ ("24x36"),
@@ -586,6 +599,8 @@ static stp_internal_papersize_t paper_sizes[] =
4768, 6749, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 1682mm x 2378mm */
{ "w3370h4768", N_ ("2A"),
3370, 4768, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 1189mm x 1682mm */
+ { "SuperA0", N_ ("Super A0"),
+ 2590, 3662, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 914mm x 1292mm */
{ "A0", N_ ("A0"),
2384, 3370, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 841mm x 1189mm */
{ "A1", N_ ("A1"),
@@ -668,6 +683,8 @@ static stp_internal_papersize_t paper_sizes[] =
{ "ISOB10", N_ ("B10 ISO"),
87, 124, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 31mm x 44mm */
+ { "SuperB0", N_ ("Super B0 JIS"),
+ 3167, 4478, 0, 0, 0, 0, PAPERSIZE_METRIC },
{ "B0", N_ ("B0 JIS"),
2919, 4127, 0, 0, 0, 0, PAPERSIZE_METRIC },
{ "B1", N_ ("B1 JIS"),
@@ -728,14 +745,24 @@ static stp_internal_papersize_t paper_sizes[] =
*/
{ "ARCHA", N_ ("ArchA"),
648, 864, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
+ { "ARCHA_trans", N_ ("ArchA Transverse"),
+ 864, 648, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "ARCHB", N_ ("ArchB"),
864, 1296, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
+ { "ARCHB_trans", N_ ("ArchB Transverse"),
+ 1296, 864, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "ARCHC", N_ ("ArchC"),
1296, 1728, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
+ { "ARCHC_trans", N_ ("ArchC Transverse"),
+ 1728, 1296, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "ARCHD", N_ ("ArchD"),
1728, 2592, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
+ { "ARCHD_trans", N_ ("ArchD Transverse"),
+ 2592, 1728, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
{ "ARCHE", N_ ("ArchE"),
2592, 3456, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
+ { "ARCHE_trans", N_ ("ArchE Transverse"),
+ 3456, 2592, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
/*
* Foolscap
@@ -780,6 +807,8 @@ static stp_internal_papersize_t paper_sizes[] =
365, 561, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 129mm x 198mm */
/* Miscellaneous sizes */
+ { "w283h425", N_ ("10cm x 15cm"),
+ 283, 425, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 100 x 150 mm */
{ "w283h420", N_ ("Hagaki Card"),
283, 420, 0, 0, 0, 0, PAPERSIZE_METRIC }, /* 100 x 148 mm */
{ "w420h567", N_ ("Oufuku Card"),
@@ -794,6 +823,8 @@ static stp_internal_papersize_t paper_sizes[] =
297, 684, 0, 0, 0, 0, PAPERSIZE_ENGLISH }, /* US Commercial 10 env */
{ "w315h414", N_ ("A2 Invitation"),
315, 414, 0, 0, 0, 0, PAPERSIZE_ENGLISH }, /* US A2 invitation */
+ { "Monarch", N_ ("Monarch Envelope"),
+ 279, 540, 0, 0, 0, 0, PAPERSIZE_ENGLISH }, /* Monarch envelope (3.875 * 7.5) */
{ "Custom", N_ ("Custom"),
0, 0, 0, 0, 0, 0, PAPERSIZE_ENGLISH },
@@ -900,6 +931,8 @@ stp_get_papersize_by_name(const char *name)
int base = last_used_papersize;
int sizes = stp_known_papersizes();
int i;
+ if (!name)
+ return NULL;
for (i = 0; i < sizes; i++)
{
int size_to_try = (i + base) % sizes;
@@ -917,6 +950,8 @@ const stp_papersize_t
stp_get_papersize_by_name(const char *name)
{
const stp_internal_papersize_t *val = &(paper_sizes[0]);
+ if (!name)
+ return NULL;
while (strlen(val->name) > 0)
{
if (!strcmp(val->name, name))
@@ -973,9 +1008,9 @@ stp_get_papersize_by_size(int l, int w)
void
stp_default_media_size(const stp_printer_t printer,
/* I - Printer model (not used) */
- const stp_vars_t v, /* I */
- int *width, /* O - Width in points */
- int *height) /* O - Height in points */
+ const stp_vars_t v, /* I */
+ int *width, /* O - Width in points */
+ int *height) /* O - Height in points */
{
if (stp_get_page_width(v) > 0 && stp_get_page_height(v) > 0)
{
@@ -1027,6 +1062,8 @@ stp_get_printer_by_long_name(const char *long_name)
{
const stp_internal_printer_t *val = &(printers[0]);
int i;
+ if (!long_name)
+ return NULL;
for (i = 0; i < stp_known_printers(); i++)
{
if (!strcmp(val->long_name, long_name))
@@ -1041,6 +1078,8 @@ stp_get_printer_by_driver(const char *driver)
{
const stp_internal_printer_t *val = &(printers[0]);
int i;
+ if (!driver)
+ return NULL;
for (i = 0; i < stp_known_printers(); i++)
{
if (!strcmp(val->driver, driver))
@@ -1055,6 +1094,8 @@ stp_get_printer_index_by_driver(const char *driver)
{
int idx = 0;
const stp_internal_printer_t *val = &(printers[0]);
+ if (!driver)
+ return -1;
for (idx = 0; idx < stp_known_printers(); idx++)
{
if (!strcmp(val->driver, driver))
@@ -1105,6 +1146,30 @@ stp_default_dither_algorithm(void)
return stp_dither_algorithm_name(0);
}
+int
+stp_start_job(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v)
+{
+ if (!stp_get_verified(v))
+ return 0;
+ if (stp_get_job_mode(v) == STP_JOB_MODE_JOB)
+ return 1;
+ else
+ return 0;
+}
+
+int
+stp_end_job(const stp_printer_t printer,
+ stp_image_t *image, const stp_vars_t v)
+{
+ if (!stp_get_verified(v))
+ return 0;
+ if (stp_get_job_mode(v) == STP_JOB_MODE_JOB)
+ return 1;
+ else
+ return 0;
+}
+
void
stp_compute_page_parameters(int page_right, /* I */
int page_left, /* I */
@@ -1260,7 +1325,8 @@ verify_param(const char *checkval, stp_param_t *vptr,
break;
}
if (!answer)
- stp_eprintf(v, "%s is not a valid %s\n", checkval, what);
+ stp_eprintf(v, _("%s is not a valid parameter of type %s\n"),
+ checkval, what);
for (i = 0; i < count; i++)
{
stp_free((void *)vptr[i].name);
@@ -1268,12 +1334,43 @@ verify_param(const char *checkval, stp_param_t *vptr,
}
}
else
- stp_eprintf(v, "%s is not a valid %s\n", checkval, what);
+ stp_eprintf(v, _("%s is not a valid parameter of type %s\n"),
+ checkval, what);
if (vptr)
free(vptr);
return answer;
}
+#define CHECK_FLOAT_RANGE(v, component) \
+do \
+{ \
+ const stp_vars_t max = stp_maximum_settings(); \
+ const stp_vars_t min = stp_minimum_settings(); \
+ if (stp_get_##component((v)) < stp_get_##component(min) || \
+ stp_get_##component((v)) > stp_get_##component(max)) \
+ { \
+ answer = 0; \
+ stp_eprintf(v, _("%s out of range (value %f, min %f, max %f)\n"), \
+ #component, stp_get_##component(v), \
+ stp_get_##component(min), stp_get_##component(max)); \
+ } \
+} while (0)
+
+#define CHECK_INT_RANGE(v, component) \
+do \
+{ \
+ const stp_vars_t max = stp_maximum_settings(); \
+ const stp_vars_t min = stp_minimum_settings(); \
+ if (stp_get_##component((v)) < stp_get_##component(min) || \
+ stp_get_##component((v)) > stp_get_##component(max)) \
+ { \
+ answer = 0; \
+ stp_eprintf(v, _("%s out of range (value %d, min %d, max %d)\n"), \
+ #component, stp_get_##component(v), \
+ stp_get_##component(min), stp_get_##component(max)); \
+ } \
+} while (0)
+
int
stp_verify_printer_params(const stp_printer_t p, const stp_vars_t v)
{
@@ -1294,7 +1391,7 @@ stp_verify_printer_params(const stp_printer_t p, const stp_vars_t v)
stp_get_output_type(v) == OUTPUT_RAW_CMYK))
{
answer = 0;
- stp_eprintf(v, "Printer does not support color output\n");
+ stp_eprintf(v, _("Printer does not support color output\n"));
}
if (strlen(stp_get_media_size(v)) > 0)
{
@@ -1312,10 +1409,41 @@ stp_verify_printer_params(const stp_printer_t p, const stp_vars_t v)
stp_get_page_width(v) <= min_width || stp_get_page_width(v) > width)
{
answer = 0;
- stp_eprintf(v, "Image size is not valid\n");
+ stp_eprintf(v, _("Image size is not valid\n"));
}
}
+ if (stp_get_top(v) < 0)
+ {
+ answer = 0;
+ stp_eprintf(v, _("Top margin must not be less than zero\n"));
+ }
+
+ if (stp_get_left(v) < 0)
+ {
+ answer = 0;
+ stp_eprintf(v, _("Left margin must not be less than zero\n"));
+ }
+
+ CHECK_FLOAT_RANGE(v, gamma);
+ CHECK_FLOAT_RANGE(v, contrast);
+ CHECK_FLOAT_RANGE(v, cyan);
+ CHECK_FLOAT_RANGE(v, magenta);
+ CHECK_FLOAT_RANGE(v, yellow);
+ CHECK_FLOAT_RANGE(v, brightness);
+ CHECK_FLOAT_RANGE(v, density);
+ CHECK_FLOAT_RANGE(v, saturation);
+ if (stp_get_scaling(v) > 0)
+ {
+ CHECK_FLOAT_RANGE(v, scaling);
+ }
+
+ CHECK_INT_RANGE(v, image_type);
+ CHECK_INT_RANGE(v, unit);
+ CHECK_INT_RANGE(v, output_type);
+ CHECK_INT_RANGE(v, input_color_model);
+ CHECK_INT_RANGE(v, output_color_model);
+
if (strlen(stp_get_media_type(v)) > 0)
{
const char *checkval = stp_get_media_type(v);
@@ -1351,7 +1479,7 @@ stp_verify_printer_params(const stp_printer_t p, const stp_vars_t v)
return answer;
}
- stp_eprintf(v, "%s is not a valid dither algorithm\n",
+ stp_eprintf(v, _("%s is not a valid dither algorithm\n"),
stp_get_dither_algorithm(v));
stp_set_verified(v, 0);
return 0;
@@ -1375,107 +1503,41 @@ stp_minimum_settings()
return (stp_vars_t) &min_vars;
}
-#if defined DISABLE_NLS || !defined HAVE_VASPRINTF
-#include <stdarg.h>
-
-static int vasprintf (char **result, const char *format, va_list args);
-static int int_vasprintf (char **result, const char *format, va_list *args);
-
-static int
-int_vasprintf (char **result, const char *format, va_list *args)
-{
- const char *p = format;
- /* Add one to make sure that it is never zero, which might cause malloc
- to return NULL. */
- int total_width = strlen (format) + 1;
- va_list ap;
-
- memcpy (&ap, args, sizeof (va_list));
-
- while (*p != '\0')
- {
- if (*p++ == '%')
- {
- while (strchr ("-+ #0", *p))
- ++p;
- if (*p == '*')
- {
- ++p;
- total_width += abs (va_arg (ap, int));
- }
- else
- total_width += strtoul (p, (char **) &p, 10);
- if (*p == '.')
- {
- ++p;
- if (*p == '*')
- {
- ++p;
- total_width += abs (va_arg (ap, int));
- }
- else
- total_width += strtoul (p, (char **) &p, 10);
- }
- while (strchr ("hlL", *p))
- ++p;
- /* Should be big enough for any format specifier except %s. */
- total_width += 30;
- switch (*p)
- {
- case 'd':
- case 'i':
- case 'o':
- case 'u':
- case 'x':
- case 'X':
- case 'c':
- (void) va_arg (ap, int);
- break;
- case 'f':
- case 'e':
- case 'E':
- case 'g':
- case 'G':
- (void) va_arg (ap, double);
- break;
- case 's':
- total_width += strlen (va_arg (ap, char *));
- break;
- case 'p':
- case 'n':
- (void) va_arg (ap, char *);
- break;
- }
- }
- }
-#ifdef TEST
- global_total_width = total_width;
-#endif
- *result = malloc (total_width);
- if (*result != NULL)
- return vsprintf (*result, format, *args);
- else
- return 0;
-}
+/*
+ * We cannot avoid use of the (non-ANSI) vsnprintf here; ANSI does
+ * not provide a safe, length-limited sprintf function.
+ */
-static int
-vasprintf (char **result, const char *format, va_list args)
-{
- return int_vasprintf (result, format, &args);
+#define STP_VASPRINTF(result, bytes, format) \
+{ \
+ int current_allocation = 64; \
+ result = stp_malloc(current_allocation); \
+ while (1) \
+ { \
+ va_list args; \
+ va_start(args, format); \
+ bytes = vsnprintf(result, current_allocation, format, args); \
+ va_end(args); \
+ if (bytes >= 0 && bytes < current_allocation) \
+ break; \
+ else \
+ { \
+ free (result); \
+ if (bytes < 0) \
+ current_allocation *= 2; \
+ else \
+ current_allocation = bytes + 1; \
+ result = stp_malloc(current_allocation); \
+ } \
+ } \
}
-#else
-extern int vasprintf (char **result, const char *format, va_list args);
-#endif
void
stp_zprintf(const stp_vars_t v, const char *format, ...)
{
- va_list args;
- int bytes;
char *result;
- va_start(args, format);
- bytes = vasprintf(&result, format, args);
- va_end(args);
+ int bytes;
+ STP_VASPRINTF(result, bytes, format);
(stp_get_outfunc(v))((void *)(stp_get_outdata(v)), result, bytes);
free(result);
}
@@ -1502,14 +1564,11 @@ stp_puts(const char *s, const stp_vars_t v)
void
stp_eprintf(const stp_vars_t v, const char *format, ...)
{
- va_list args;
int bytes;
- char *result;
if (stp_get_errfunc(v))
{
- va_start(args, format);
- bytes = vasprintf(&result, format, args);
- va_end(args);
+ char *result;
+ STP_VASPRINTF(result, bytes, format);
(stp_get_errfunc(v))((void *)(stp_get_errdata(v)), result, bytes);
free(result);
}
@@ -1530,10 +1589,10 @@ stp_erprintf(const char *format, ...)
va_end(args);
}
-static unsigned long stp_debug_level = 0;
+unsigned long stp_debug_level = 0;
static void
-init_stp_debug(void)
+stp_init_debug(void)
{
static int debug_initialized = 0;
if (!debug_initialized)
@@ -1551,15 +1610,12 @@ init_stp_debug(void)
void
stp_dprintf(unsigned long level, const stp_vars_t v, const char *format, ...)
{
- va_list args;
int bytes;
- char *result;
- init_stp_debug();
+ stp_init_debug();
if ((level & stp_debug_level) && stp_get_errfunc(v))
{
- va_start(args, format);
- bytes = vasprintf(&result, format, args);
- va_end(args);
+ char *result;
+ STP_VASPRINTF(result, bytes, format);
(stp_get_errfunc(v))((void *)(stp_get_errdata(v)), result, bytes);
free(result);
}
@@ -1569,17 +1625,11 @@ void
stp_deprintf(unsigned long level, const char *format, ...)
{
va_list args;
- int bytes;
- char *result;
- init_stp_debug();
+ va_start(args, format);
+ stp_init_debug();
if (level & stp_debug_level)
- {
- va_start(args, format);
- bytes = vasprintf(&result, format, args);
- va_end(args);
- stp_erprintf("%s", result);
- free(result);
- }
+ vfprintf(stderr, format, args);
+ va_end(args);
}
void *
@@ -1595,6 +1645,27 @@ stp_malloc (size_t size)
return (memptr);
}
+void *
+stp_zalloc (size_t size)
+{
+ register void *memptr = stp_malloc(size);
+ (void) memset(memptr, 0, size);
+ return (memptr);
+}
+
+void *
+stp_realloc (void *ptr, size_t size)
+{
+ register void *memptr = NULL;
+
+ if (size > 0 && ((memptr = realloc (ptr, size)) == NULL))
+ {
+ fputs("Virtual memory exhausted.\n", stderr);
+ exit (EXIT_FAILURE);
+ }
+ return (memptr);
+}
+
void
stp_free(void *ptr)
{
@@ -1613,7 +1684,7 @@ stp_init(void)
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
#endif
- init_stp_debug();
+ stp_init_debug();
}
stp_is_initialised = 1;
return (0);
diff --git a/src/main/print-weave.c b/src/main/print-weave.c
index b7e058d..8b0213f 100644
--- a/src/main/print-weave.c
+++ b/src/main/print-weave.c
@@ -1,5 +1,5 @@
/*
- * "$Id: print-weave.c,v 1.36 2001/09/08 17:13:48 rleigh Exp $"
+ * "$Id: print-weave.c,v 1.36.4.3 2003/12/02 01:51:00 rlk Exp $"
*
* Softweave calculator for gimp-print.
*
@@ -103,8 +103,7 @@ typedef struct raw {
/*
* Strategy types currently defined:
*
- * 0: microweave (intercepted at the escp2 driver level so we never
- * see it here)
+ * 0: printer firmware weave
* 1: zig-zag type pass block filling
* 2: ascending pass block filling
* 3: descending pass block filling
@@ -952,37 +951,53 @@ stp_unpack_2_1(int length,
unsigned char *out0,
unsigned char *out1)
{
- unsigned char ti0, ti1;
- unsigned char to0, to1;
+ unsigned char tempin, bit, temp0, temp1;
if (length <= 0)
return;
+ for (bit = 128, temp0 = 0, temp1 = 0;
+ length > 0;
+ length --)
+ {
+ tempin = *in++;
+
+ if (tempin & 128)
+ temp0 |= bit;
+ if (tempin & 64)
+ temp1 |= bit;
+ bit >>= 1;
+ if (tempin & 32)
+ temp0 |= bit;
+ if (tempin & 16)
+ temp1 |= bit;
+ bit >>= 1;
+ if (tempin & 8)
+ temp0 |= bit;
+ if (tempin & 4)
+ temp1 |= bit;
+ bit >>= 1;
+ if (tempin & 2)
+ temp0 |= bit;
+ if (tempin & 1)
+ temp1 |= bit;
- length = (length + 1) / 2;
+ if (bit > 1)
+ bit >>= 1;
+ else
+ {
+ bit = 128;
+ *out0++ = temp0;
+ *out1++ = temp1;
+
+ temp0 = 0;
+ temp1 = 0;
+ }
+ }
- for (;length; length --)
+ if (bit < 128)
{
- ti0 = *in++;
- ti1 = *in++;
-
- to0 = (ti0 & 0x80) << 0;
- to1 = (ti0 & 0x40) << 1;
- to0 |= (ti0 & 0x20) << 1;
- to1 |= (ti0 & 0x10) << 2;
- to0 |= (ti0 & 0x08) << 2;
- to1 |= (ti0 & 0x04) << 3;
- to0 |= (ti0 & 0x02) << 3;
- to1 |= (ti0 & 0x01) << 4;
- to0 |= (ti1 & 0x80) >> 4;
- to1 |= (ti1 & 0x40) >> 3;
- to0 |= (ti1 & 0x20) >> 3;
- to1 |= (ti1 & 0x10) >> 2;
- to0 |= (ti1 & 0x08) >> 2;
- to1 |= (ti1 & 0x04) >> 1;
- to0 |= (ti1 & 0x02) >> 1;
- to1 |= (ti1 & 0x01) >> 0;
- *out0++ = to0;
- *out1++ = to1;
+ *out0++ = temp0;
+ *out1++ = temp1;
}
}
@@ -1046,61 +1061,57 @@ stp_unpack_4_1(int length,
unsigned char *out2,
unsigned char *out3)
{
- unsigned char ti0, ti1, ti2, ti3;
- unsigned char to0, to1, to2, to3;
+ unsigned char tempin, bit, temp0, temp1, temp2, temp3;
if (length <= 0)
return;
+ for (bit = 128, temp0 = 0, temp1 = 0, temp2 = 0, temp3 = 0;
+ length > 0;
+ length --)
+ {
+ tempin = *in++;
+
+ if (tempin & 128)
+ temp0 |= bit;
+ if (tempin & 64)
+ temp1 |= bit;
+ if (tempin & 32)
+ temp2 |= bit;
+ if (tempin & 16)
+ temp3 |= bit;
+ bit >>= 1;
+ if (tempin & 8)
+ temp0 |= bit;
+ if (tempin & 4)
+ temp1 |= bit;
+ if (tempin & 2)
+ temp2 |= bit;
+ if (tempin & 1)
+ temp3 |= bit;
- length = (length + 3) / 4;
+ if (bit > 1)
+ bit >>= 1;
+ else
+ {
+ bit = 128;
+ *out0++ = temp0;
+ *out1++ = temp1;
+ *out2++ = temp2;
+ *out3++ = temp3;
+
+ temp0 = 0;
+ temp1 = 0;
+ temp2 = 0;
+ temp3 = 0;
+ }
+ }
- for (;length; length --)
+ if (bit < 128)
{
- ti0 = *in++;
- ti1 = *in++;
- ti2 = *in++;
- ti3 = *in++;
-
- to0 = (ti0 & 0x80) << 0;
- to1 = (ti0 & 0x40) << 1;
- to2 = (ti0 & 0x20) << 2;
- to3 = (ti0 & 0x10) << 3;
- to0 |= (ti0 & 0x08) << 3;
- to1 |= (ti0 & 0x04) << 4;
- to2 |= (ti0 & 0x02) << 5;
- to3 |= (ti0 & 0x01) << 6;
-
- to0 |= (ti1 & 0x80) >> 2;
- to1 |= (ti1 & 0x40) >> 1;
- to2 |= (ti1 & 0x20) >> 0;
- to3 |= (ti1 & 0x10) << 1;
- to0 |= (ti1 & 0x08) << 1;
- to1 |= (ti1 & 0x04) << 2;
- to2 |= (ti1 & 0x02) << 3;
- to3 |= (ti1 & 0x01) << 4;
-
- to0 |= (ti2 & 0x80) >> 4;
- to1 |= (ti2 & 0x40) >> 3;
- to2 |= (ti2 & 0x20) >> 2;
- to3 |= (ti2 & 0x10) >> 1;
- to0 |= (ti2 & 0x08) >> 1;
- to1 |= (ti2 & 0x04) >> 0;
- to2 |= (ti2 & 0x02) << 1;
- to3 |= (ti2 & 0x01) << 2;
-
- to0 |= (ti3 & 0x80) >> 6;
- to1 |= (ti3 & 0x40) >> 5;
- to2 |= (ti3 & 0x20) >> 4;
- to3 |= (ti3 & 0x10) >> 3;
- to0 |= (ti3 & 0x08) >> 3;
- to1 |= (ti3 & 0x04) >> 2;
- to2 |= (ti3 & 0x02) >> 1;
- to3 |= (ti3 & 0x01) >> 0;
-
- *out0++ = to0;
- *out1++ = to1;
- *out2++ = to2;
- *out3++ = to3;
+ *out0++ = temp0;
+ *out1++ = temp1;
+ *out2++ = temp2;
+ *out3++ = temp3;
}
}
@@ -1197,6 +1208,8 @@ stp_unpack_8_1(int length,
unsigned char tempin, bit, temp0, temp1, temp2, temp3, temp4, temp5, temp6,
temp7;
+ if (length <= 0)
+ return;
for (bit = 128, temp0 = 0, temp1 = 0, temp2 = 0,
temp3 = 0, temp4 = 0, temp5 = 0, temp6 = 0, temp7 = 0;
@@ -1698,6 +1711,58 @@ stp_pack_tiff(const unsigned char *line,
* -- Robert Krawitz <rlk@alum.mit.edu) November 3, 1999
*/
+static stp_lineoff_t *
+allocate_lineoff(int count, int ncolors)
+{
+ int i;
+ stp_lineoff_t *retval = stp_malloc(count * sizeof(stp_lineoff_t));
+ for (i = 0; i < count; i++)
+ {
+ retval[i].ncolors = ncolors;
+ retval[i].v = stp_zalloc(ncolors * sizeof(unsigned long));
+ }
+ return (retval);
+}
+
+static stp_lineactive_t *
+allocate_lineactive(int count, int ncolors)
+{
+ int i;
+ stp_lineactive_t *retval = stp_malloc(count * sizeof(stp_lineactive_t));
+ for (i = 0; i < count; i++)
+ {
+ retval[i].ncolors = ncolors;
+ retval[i].v = stp_zalloc(ncolors * sizeof(char));
+ }
+ return (retval);
+}
+
+static stp_linecount_t *
+allocate_linecount(int count, int ncolors)
+{
+ int i;
+ stp_linecount_t *retval = stp_malloc(count * sizeof(stp_linecount_t));
+ for (i = 0; i < count; i++)
+ {
+ retval[i].ncolors = ncolors;
+ retval[i].v = stp_zalloc(ncolors * sizeof(int));
+ }
+ return (retval);
+}
+
+static stp_linebufs_t *
+allocate_linebuf(int count, int ncolors)
+{
+ int i;
+ stp_linebufs_t *retval = stp_malloc(count * sizeof(stp_linebufs_t));
+ for (i = 0; i < count; i++)
+ {
+ retval[i].ncolors = ncolors;
+ retval[i].v = stp_zalloc(ncolors * sizeof(unsigned char *));
+ }
+ return (retval);
+}
+
/*
* Initialize the weave parameters
*
@@ -1722,10 +1787,6 @@ stp_initialize_weave(int jets, /* Width of print head */
int width, /* bits/pixel */
int linewidth, /* Width of a line, in pixels */
int lineheight, /* Number of lines that will be printed */
- int separation_rows, /* Vertical spacing adjustment */
- /* for weird printers (1520/3000, */
- /* although they don't seem to do softweave */
- /* anyway) */
int first_line, /* First line that will be printed on page */
int phys_lines, /* Total height of the page in rows */
int weave_strategy, /* Which weaving pattern to use */
@@ -1746,9 +1807,8 @@ stp_initialize_weave(int jets, /* Width of print head */
{
int i;
int last_line, maxHeadOffset;
- stp_softweave_t *sw = stp_malloc(sizeof (stp_softweave_t));
+ stp_softweave_t *sw = stp_zalloc(sizeof (stp_softweave_t));
- (void) memset(sw, 0, sizeof(stp_softweave_t));
if (jets < 1)
jets = 1;
if (jets == 1 || sep < 1)
@@ -1765,23 +1825,27 @@ stp_initialize_weave(int jets, /* Width of print head */
sw->oversample = osample * v_subpasses * v_subsample;
if (sw->oversample > jets)
{
+ int found = 0;
for (i = 2; i <= osample; i++)
{
if ((osample % i == 0) && (sw->oversample / i <= jets))
{
sw->repeat_count = i;
osample /= i;
- goto found;
+ found = 1;
+ break;
}
}
- stp_eprintf(v, "Weave error: oversample (%d) > jets (%d)\n",
- sw->oversample, jets);
- stp_free(sw);
- return 0;
+ if (!found)
+ {
+ stp_eprintf(v, "Weave error: oversample (%d) > jets (%d)\n",
+ sw->oversample, jets);
+ stp_free(sw);
+ return 0;
+ }
}
else
sw->repeat_count = 1;
- found:
sw->vertical_oversample = v_subsample;
sw->vertical_subpasses = v_subpasses;
@@ -1802,16 +1866,14 @@ stp_initialize_weave(int jets, /* Width of print head */
* setup printhead offsets.
* for monochrome (bw) printing, the offsets are 0.
*/
- if(ncolors > 1)
- for(i=0; i<NCHANNELS; i++)
+ sw->head_offset = stp_zalloc(ncolors * sizeof(int));
+ if (ncolors > 1)
+ for(i = 0; i < ncolors; i++)
sw->head_offset[i] = head_offset[i];
- else
- for(i=0; i<NCHANNELS; i++)
- sw->head_offset[i] = 0;
maxHeadOffset = 0;
- for(i=0; i<NCHANNELS; i++)
- if(sw->head_offset[i] > maxHeadOffset)
+ for (i = 0; i < ncolors; i++)
+ if (sw->head_offset[i] > maxHeadOffset)
maxHeadOffset = sw->head_offset[i];
sw->virtual_jets = sw->jets;
@@ -1832,31 +1894,19 @@ stp_initialize_weave(int jets, /* Width of print head */
sw->vmod = 2 * sw->separation * sw->oversample * sw->repeat_count;
if (sw->virtual_jets > sw->jets)
sw->vmod *= (sw->virtual_jets + sw->jets - 1) / sw->jets;
- sw->separation_rows = separation_rows;
sw->bitwidth = width;
sw->last_pass_offset = 0;
sw->last_pass = -1;
sw->current_vertical_subpass = 0;
- sw->last_color = -1;
sw->ncolors = ncolors;
-
- /*
- * It's possible for the "compression" to actually expand the line by
- * one part in 128.
- */
-
sw->linewidth = linewidth;
sw->vertical_height = lineheight;
- sw->lineoffsets = stp_malloc(sw->vmod * sizeof(stp_lineoff_t));
- memset(sw->lineoffsets, 0, sw->vmod * sizeof(stp_lineoff_t));
- sw->lineactive = stp_malloc(sw->vmod * sizeof(stp_lineactive_t));
- memset(sw->lineactive, 0, sw->vmod * sizeof(stp_lineactive_t));
- sw->linebases = stp_malloc(sw->vmod * sizeof(stp_linebufs_t));
- sw->passes = stp_malloc(sw->vmod * sizeof(stp_pass_t));
- memset(sw->passes, 0, sw->vmod * sizeof(stp_pass_t));
- sw->linecounts = stp_malloc(sw->vmod * sizeof(stp_linecount_t));
- memset(sw->linecounts, 0, sw->vmod * sizeof(stp_linecount_t));
+ sw->lineoffsets = allocate_lineoff(sw->vmod, ncolors);
+ sw->lineactive = allocate_lineactive(sw->vmod, ncolors);
+ sw->linebases = allocate_linebuf(sw->vmod, ncolors);
+ sw->passes = stp_zalloc(sw->vmod * sizeof(stp_pass_t));
+ sw->linecounts = allocate_linecount(sw->vmod, ncolors);
sw->rcache = -2;
sw->vcache = -2;
sw->fill_start = fill_start;
@@ -1884,15 +1934,12 @@ stp_destroy_weave(void *vsw)
{
int i, j;
stp_softweave_t *sw = (stp_softweave_t *) vsw;
- stp_free(sw->linecounts);
stp_free(sw->passes);
- stp_free(sw->lineactive);
- stp_free(sw->lineoffsets);
if (sw->fold_buf)
stp_free(sw->fold_buf);
if (sw->comp_buf)
stp_free(sw->comp_buf);
- for (i = 0; i < 8; i++)
+ for (i = 0; i < MAX_WEAVE; i++)
if (sw->s[i])
stp_free(sw->s[i]);
for (i = 0; i < sw->vmod; i++)
@@ -1902,8 +1949,16 @@ stp_destroy_weave(void *vsw)
if (sw->linebases[i].v[j])
stp_free(sw->linebases[i].v[j]);
}
+ stp_free(sw->linecounts[i].v);
+ stp_free(sw->linebases[i].v);
+ stp_free(sw->lineactive[i].v);
+ stp_free(sw->lineoffsets[i].v);
}
+ stp_free(sw->linecounts);
+ stp_free(sw->lineactive);
+ stp_free(sw->lineoffsets);
stp_free(sw->linebases);
+ stp_free(sw->head_offset);
stp_destroy_weave_params(sw->weaveparm);
stp_free(vsw);
}
@@ -2029,10 +2084,10 @@ check_linebases(stp_softweave_t *sw, int row, int cpass, int head_offset,
int color)
{
stp_linebufs_t *bufs =
- (stp_linebufs_t *)stp_get_linebases(sw, row, cpass, head_offset);
+ (stp_linebufs_t *) stp_get_linebases(sw, row, cpass, head_offset);
if (!(bufs[0].v[color]))
bufs[0].v[color] =
- stp_malloc(sw->virtual_jets * sw->bitwidth * sw->horizontal_width);
+ stp_zalloc (sw->virtual_jets * sw->bitwidth * sw->horizontal_width);
}
/*
@@ -2111,6 +2166,10 @@ stp_fill_uncompressed(stp_softweave_t *sw, int row, int subpass,
int
stp_compute_tiff_linewidth(const stp_softweave_t *sw, int n)
{
+ /*
+ * It's possible for the "compression" to actually expand the line by
+ * roughly one part in 128.
+ */
return ((n + 128 + 7) * 129 / 128);
}
@@ -2122,7 +2181,7 @@ stp_compute_uncompressed_linewidth(const stp_softweave_t *sw, int n)
static void
initialize_row(stp_softweave_t *sw, int row, int width,
- const unsigned char *cols[])
+ unsigned char *const cols[])
{
stp_weave_t w;
int i, j, jj;
@@ -2268,15 +2327,6 @@ finalize_row(stp_softweave_t *sw, int row, int model, int width,
}
}
-static void *
-xzmalloc(size_t bytes)
-{
- void *retval = stp_malloc(bytes);
- if (retval)
- memset(retval, 0, bytes);
- return (retval);
-}
-
void
stp_write_weave(void * vsw,
int length, /* I - Length of bitmap data */
@@ -2286,7 +2336,7 @@ stp_write_weave(void * vsw,
int offset, /* I - Offset from left side of page */
int xdpi,
int physical_xdpi,
- const unsigned char *cols[])
+ unsigned char *const cols[])
{
stp_softweave_t *sw = (stp_softweave_t *) vsw;
stp_lineoff_t *lineoffs[8];
@@ -2302,9 +2352,9 @@ stp_write_weave(void * vsw,
int cpass = sw->current_vertical_subpass * h_passes;
if (!sw->fold_buf)
- sw->fold_buf = xzmalloc(sw->bitwidth * ylength);
+ sw->fold_buf = stp_zalloc(sw->bitwidth * ylength);
if (!sw->comp_buf)
- sw->comp_buf = xzmalloc(sw->bitwidth *(sw->compute_linewidth)(sw,ylength));
+ sw->comp_buf = stp_zalloc(sw->bitwidth *(sw->compute_linewidth)(sw,ylength));
if (sw->current_vertical_subpass == 0)
initialize_row(sw, sw->lineno, xlength, cols);
@@ -2317,7 +2367,7 @@ stp_write_weave(void * vsw,
for (i = 0; i < h_passes; i++)
{
if (!sw->s[i])
- sw->s[i] = xzmalloc(sw->bitwidth *
+ sw->s[i] = stp_zalloc(sw->bitwidth *
(sw->compute_linewidth)(sw, ylength));
lineoffs[i] = stp_get_lineoffsets(sw, sw->lineno, cpass + i,
sw->head_offset[j]);
diff --git a/src/main/printers.xml b/src/main/printers.xml
index f107c50..f71dba9 100644
--- a/src/main/printers.xml
+++ b/src/main/printers.xml
@@ -1,7 +1,7 @@
# pseudo-XML description of printers known to the Print plugin
# This file was originally generated. It should be edited by hand.
-# "$Id: printers.xml,v 1.42 2001/11/22 12:39:18 rlk Exp $"
+# "$Id: printers.xml,v 1.42.2.26 2004/06/09 10:29:59 davehill Exp $"
<printer name="PostScript Level 1" driver="ps">
<color>
@@ -179,6 +179,13 @@
<language value=canon>
</printer>
+<printer name="CANON S200" driver="bjc-s200">
+<color>
+# model number 4202 is the USB product ID of the Canon S200x
+<model value=4202>
+<language value=canon>
+</printer>
+
<printer name="CANON S400" driver="bjc-s400">
<color>
<model value=3000>
@@ -221,6 +228,16 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus C20UX" driver="escp2-c20ux">
+<color>
+<model value=42>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus C40SX" driver="escp2-c40sx">
<color>
<model value=43>
@@ -231,9 +248,9 @@
<language value=escp2>
</printer>
-<printer name="EPSON Stylus C20UX" driver="escp2-c20ux">
+<printer name="EPSON Stylus C40UX" driver="escp2-c40ux">
<color>
-<model value=42>
+<model value=43>
<gamma value=0.585>
<density value=1.0>
<magenta value=0.95>
@@ -241,7 +258,7 @@
<language value=escp2>
</printer>
-<printer name="EPSON Stylus C40UX" driver="escp2-c40ux">
+<printer name="EPSON Stylus C41SX" driver="escp2-c41sx">
<color>
<model value=43>
<gamma value=0.585>
@@ -251,6 +268,86 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus C41UX" driver="escp2-c41ux">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C42SX" driver="escp2-c42sx">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C42UX" driver="escp2-c42ux">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C43SX" driver="escp2-c43sx">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C43UX" driver="escp2-c43ux">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C44SX" driver="escp2-c44sx">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C44UX" driver="escp2-c44ux">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C50" driver="escp2-c50">
+<color>
+<model value=56>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus C60" driver="escp2-c60">
<color>
<model value=33>
@@ -259,6 +356,44 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus C61" driver="escp2-c61">
+<color>
+<model value=52>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C62" driver="escp2-c62">
+<color>
+<model value=52>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C63" driver="escp2-c63">
+<color>
+<model value=61>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C64" driver="escp2-c64">
+<color>
+<model value=61>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus C70" driver="escp2-c70">
<color>
<model value=44>
@@ -281,6 +416,39 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus C82" driver="escp2-c82">
+<color>
+<model value=55>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C83" driver="escp2-c83">
+<color>
+<model value=60>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus C84" driver="escp2-c84">
+<color>
+<model value=60>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus Color" driver="escp2">
<color>
<model value=0>
@@ -533,6 +701,14 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus Photo EX3" driver="escp2-ex3">
+<color>
+<model value=54>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus Photo 720" driver="escp2-720">
<color>
<model value=20>
@@ -591,6 +767,22 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus Photo 825" driver="escp2-825">
+<color>
+<model value=50>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 830" driver="escp2-830">
+<color>
+<model value=50>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus Photo 870" driver="escp2-870">
<color>
<model value=22>
@@ -623,6 +815,54 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus Photo 900" driver="escp2-ph900">
+<color>
+<model value=62>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 915" driver="escp2-915">
+<color>
+<model value=36>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 925" driver="escp2-925">
+<color>
+<model value=51>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 935" driver="escp2-935">
+<color>
+<model value=51>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 950" driver="escp2-950">
+<color>
+<model value=46>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 960" driver="escp2-960">
+<color>
+<model value=46>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus Photo 1200" driver="escp2-1200">
<color>
<model value=15>
@@ -663,6 +903,54 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus Photo 2100" driver="escp2-2100">
+<color>
+<model value=47>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo 2200" driver="escp2-2200">
+<color>
+<model value=47>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo R200" driver="escp2-r200">
+<color>
+<model value=63>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo R300" driver="escp2-r300">
+<color>
+<model value=63>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo RX500" driver="escp2-rx500">
+<color>
+<model value=63>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Photo RX600" driver="escp2-rx600">
+<color>
+<model value=63>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
<printer name="EPSON Stylus Pro 5000" driver="escp2-5000">
<color>
<model value=27>
@@ -674,6 +962,7 @@
<printer name="EPSON Stylus Pro 5500" driver="escp2-5500">
<color>
<model value=40>
+<cyan value=0.8>
<gamma value=0.585>
<density value=1.0>
<language value=escp2>
@@ -690,6 +979,15 @@
<printer name="EPSON Stylus Pro 7500" driver="escp2-7500">
<color>
<model value=29>
+<cyan value=0.8>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Pro 7600" driver="escp2-7600">
+<color>
+<model value=48>
<gamma value=0.585>
<density value=1.0>
<language value=escp2>
@@ -706,6 +1004,15 @@
<printer name="EPSON Stylus Pro 9500" driver="escp2-9500">
<color>
<model value=31>
+<cyan value=0.8>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus Pro 9600" driver="escp2-9600">
+<color>
+<model value=49>
<gamma value=0.585>
<density value=1.0>
<language value=escp2>
@@ -735,6 +1042,506 @@
<language value=escp2>
</printer>
+<printer name="EPSON Stylus CX-3100" driver="escp2-cx3100">
+<color>
+<model value=52>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-3200" driver="escp2-cx3200">
+<color>
+<model value=52>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-5100" driver="escp2-cx5100">
+<color>
+<model value=55>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-5200" driver="escp2-cx5200">
+<color>
+<model value=55>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-5300" driver="escp2-cx5300">
+<color>
+<model value=55>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-5400" driver="escp2-cx5400">
+<color>
+<model value=55>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-6300" driver="escp2-cx6300">
+<color>
+<model value=60>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-6400" driver="escp2-cx6400">
+<color>
+<model value=60>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-8300" driver="escp2-cx8300">
+<color>
+<model value=60>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON Stylus CX-8400" driver="escp2-cx8400">
+<color>
+<model value=60>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON CL-700" driver="escp2-cl700">
+<color>
+<model value=38>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON CL-750" driver="escp2-cl750">
+<color>
+<model value=43>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON CL-760" driver="escp2-cl760">
+<color>
+<model value=56>
+<gamma value=0.585>
+<density value=1.0>
+<magenta value=0.95>
+<yellow value=0.9>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON EM-900C" driver="escp2-em900c">
+<color>
+<model value=13>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON EM-930C" driver="escp2-em930c">
+<color>
+<model value=34>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MC-2000" driver="escp2-mc2000">
+<color>
+<model value=26>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MC-5000" driver="escp2-mc5000">
+<color>
+<model value=40>
+<cyan value=0.8>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MC-7000" driver="escp2-mc7000">
+<color>
+<model value=29>
+<cyan value=0.8>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MC-9000" driver="escp2-mc9000">
+<color>
+<model value=31>
+<cyan value=0.8>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MC-10000" driver="escp2-mc10000">
+<color>
+<model value=41>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MJ-930C" driver="escp2-mj930c">
+<color>
+<model value=4>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MJ-5100C" driver="escp2-mj5100c">
+<color>
+<model value=39>
+<gamma value=0.597>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MJ-6000C" driver="escp2-mj6000c">
+<color>
+<model value=6>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON MJ-8000C" driver="escp2-mj8000c">
+<color>
+<model value=24>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-700C" driver="escp2-pm700c">
+<color>
+<model value=9>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-730C" driver="escp2-pm730c">
+<color>
+<model value=35>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-740C" driver="escp2-pm740c">
+<color>
+<model value=35>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-750C" driver="escp2-pm750c">
+<color>
+<model value=7>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-760C" driver="escp2-pm760c">
+<color>
+<model value=20>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-770C" driver="escp2-pm770c">
+<color>
+<model value=14>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-780C" driver="escp2-pm780c">
+<color>
+<model value=35>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-790PT" driver="escp2-pm790pt">
+<color>
+<model value=36>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-800C" driver="escp2-pm800c">
+<color>
+<model value=22>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-850PT" driver="escp2-pm850pt">
+<color>
+<model value=51>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-870C" driver="escp2-pm870c">
+<color>
+<model value=36>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-880C" driver="escp2-pm880c">
+<color>
+<model value=36>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-930C" driver="escp2-pm930c">
+<color>
+<model value=58>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-950C" driver="escp2-pm950c">
+<color>
+<model value=53>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-970C" driver="escp2-pm970c">
+<color>
+<model value=57>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-2000C" driver="escp2-pm2000c">
+<color>
+<model value=8>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-2200C" driver="escp2-pm2200c">
+<color>
+<model value=54>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-3000C" driver="escp2-pm3000c">
+<color>
+<model value=15>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-3300C" driver="escp2-pm3300c">
+<color>
+<model value=23>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-3500C" driver="escp2-pm3500c">
+<color>
+<model value=37>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-3700C" driver="escp2-pm3700c">
+<color>
+<model value=37>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-4000PX" driver="escp2-pm4000px">
+<color>
+<model value=47>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-5000C" driver="escp2-pm5000c">
+<color>
+<model value=27>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-7000C" driver="escp2-pm7000c">
+<color>
+<model value=28>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-9000C" driver="escp2-pm9000c">
+<color>
+<model value=30>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-10000" driver="escp2-pm10000">
+<color>
+<model value=41>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-D750" driver="escp2-pmd750">
+<color>
+<model value=63>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PM-G700" driver="escp2-pmg700">
+<color>
+<model value=63>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PX-V500" driver="escp2-pxv500">
+<color>
+<model value=61>
+<gamma value=0.688>
+<density value=1.0>
+<cyan value=0.96>
+<magenta value=1.02>
+<yellow value=1.02>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PX-7000" driver="escp2-px7000">
+<color>
+<model value=48>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="EPSON PX-9000" driver="escp2-px9000">
+<color>
+<model value=49>
+<gamma value=0.585>
+<density value=1.0>
+<language value=escp2>
+</printer>
+
+<printer name="APPLE Color StyleWriter 4100" driver="pcl-apple-4100">
+<color>
+<model value=601> # Uses 600 series driver
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="APPLE Color StyleWriter 4500" driver="pcl-apple-4500">
+<color>
+<model value=690> # Uses 690 driver
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="APPLE Color StyleWriter 6500" driver="pcl-apple-6500">
+<color>
+<model value=800> # Uses 850 driver
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
<printer name="HP DeskJet 340" driver="pcl-340">
<color>
<model value=340>
@@ -759,9 +1566,81 @@
<language value=pcl>
</printer>
+<printer name="HP DesignJet 230" driver="pcl-desnj-230">
+<nocolor>
+<model value=10230>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 250C" driver="pcl-desnj-250">
+<color>
+<model value=10250>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 700" driver="pcl-desnj-700">
+<nocolor>
+<model value=10700>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
<printer name="HP DesignJet 750C" driver="pcl-750">
<color>
-<model value=750>
+<model value=10750>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 2500C" driver="pcl-desnj-2500">
+<color>
+<model value=12500>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 3500C" driver="pcl-desnj-3500">
+<color>
+<model value=13500>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 430" driver="pcl-desnj-430">
+<nocolor>
+<model value=10230>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 450C" driver="pcl-desnj-450">
+<color>
+<model value=10250>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 455CA" driver="pcl-desnj-455">
+<color>
+<model value=10250>
+<gamma value=0.818>
+<density value=0.786>
+<language value=pcl>
+</printer>
+
+<printer name="HP DesignJet 488CA" driver="pcl-desnj-488">
+<color>
+<model value=10250>
<gamma value=0.818>
<density value=0.786>
<language value=pcl>
@@ -995,7 +1874,15 @@
<nocolor>
<model value=2>
<gamma value=1.000>
-<density value=0.596>
+<density value=1.000>
+<language value=pcl>
+</printer>
+
+<printer name="HP LaserJet IIP series" driver="pcl-2p">
+<nocolor>
+<model value=21>
+<gamma value=1.000>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1003,7 +1890,7 @@
<nocolor>
<model value=3>
<gamma value=1.000>
-<density value=0.596>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1011,7 +1898,7 @@
<nocolor>
<model value=6>
<gamma value=1.000>
-<density value=0.615>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1019,7 +1906,7 @@
<nocolor>
<model value=4>
<gamma value=1.000>
-<density value=0.615>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1027,7 +1914,7 @@
<nocolor>
<model value=5>
<gamma value=1.000>
-<density value=0.615>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1035,7 +1922,7 @@
<nocolor>
<model value=6>
<gamma value=1.000>
-<density value=0.615>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1043,7 +1930,7 @@
<nocolor>
<model value=7>
<gamma value=1.000>
-<density value=0.615>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1051,7 +1938,7 @@
<nocolor>
<model value=6>
<gamma value=1.000>
-<density value=0.615>
+<density value=1.000>
<language value=pcl>
</printer>
@@ -1093,3 +1980,12 @@
<language value=lexmark>
</printer>
+<printer name="LEXMARK Z53" driver="lexmark-z53">
+<color>
+<model value=10052>
+<gamma value=0.5>
+<density value=2.0>
+<magenta value=0.95>
+<yellow value=1.0>
+<language value=lexmark>
+</printer>
diff --git a/src/printdef/.cvsignore b/src/printdef/.cvsignore
deleted file mode 100644
index 8e12f00..0000000
--- a/src/printdef/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-printdefl.c
-printdef
-printdefy.c
-printdefy.h
diff --git a/src/printdef/Makefile.in b/src/printdef/Makefile.in
new file mode 100644
index 0000000..4f06fec
--- /dev/null
+++ b/src/printdef/Makefile.in
@@ -0,0 +1,447 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@
+
+LFLAGS = -i
+YFLAGS = -d
+
+noinst_PROGRAMS = printdef
+printdef_SOURCES = printdefl.l printdefy.y printdef.h
+
+DISTCLEANFILES = printdefl.c printdefy.c printdefy.h
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = printdefy.h
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+noinst_PROGRAMS = printdef$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+printdef_OBJECTS = printdefl.$(OBJEXT) printdefy.$(OBJEXT)
+printdef_LDADD = $(LDADD)
+printdef_DEPENDENCIES =
+printdef_LDFLAGS =
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LEXLIB = @LEXLIB@
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in printdefl.c printdefy.c
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(printdef_SOURCES)
+OBJECTS = $(printdef_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .l .lo .o .obj .s .y
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/printdef/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstPROGRAMS:
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+distclean-noinstPROGRAMS:
+
+maintainer-clean-noinstPROGRAMS:
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+printdef$(EXEEXT): $(printdef_OBJECTS) $(printdef_DEPENDENCIES)
+ @rm -f printdef$(EXEEXT)
+ $(LINK) $(printdef_LDFLAGS) $(printdef_OBJECTS) $(printdef_LDADD) $(LIBS)
+.l.c:
+ $(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
+.y.c:
+ $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
+ if test -f y.tab.h; then \
+ if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
+ else :; fi
+printdefy.h: printdefy.c
+
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/printdef
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+printdefl.o: printdefl.c printdef.h printdefy.h
+printdefy.o: printdefy.c printdef.h printdefy.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ -test -z "printdefllprintdefyhprintdefyc$(MAINTAINERCLEANFILES)" || rm -f printdefll printdefyh printdefyc $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-noinstPROGRAMS distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-noinstPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+printdefl.o: printdefy.o
+printdef.o: printdefy.o
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/printdef/printdefl.c b/src/printdef/printdefl.c
new file mode 100644
index 0000000..c3313ad
--- /dev/null
+++ b/src/printdef/printdefl.c
@@ -0,0 +1,1762 @@
+/* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+#include <stdio.h>
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator). This
+ * avoids problems with code like:
+ *
+ * if ( condition_holds )
+ * yyless( 5 );
+ * else
+ * do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ *yy_cp = yy_hold_char; \
+ YY_RESTORE_YY_MORE_OFFSET \
+ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+typedef unsigned int yy_size_t;
+
+
+struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+ };
+
+static YY_BUFFER_STATE yy_current_buffer = 0;
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_is_interactive = is_interactive; \
+ }
+
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_at_bol = at_bol; \
+ }
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+typedef unsigned char YY_CHAR;
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+typedef int yy_state_type;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ yytext_ptr = yy_bp; \
+ yyleng = (int) (yy_cp - yy_bp); \
+ yy_hold_char = *yy_cp; \
+ *yy_cp = '\0'; \
+ yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 28
+#define YY_END_OF_BUFFER 29
+static yyconst short int yy_accept[133] =
+ { 0,
+ 0, 0, 29, 28, 25, 27, 28, 26, 28, 28,
+ 21, 1, 3, 2, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 25, 0, 26, 21,
+ 0, 0, 0, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 23,
+ 0, 22, 0, 22, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 0, 24, 24, 24, 15, 24, 24, 24, 24, 24,
+ 24, 6, 24, 24, 24, 24, 24, 0, 24, 8,
+ 24, 24, 24, 13, 24, 24, 10, 24, 24, 24,
+
+ 20, 24, 0, 24, 24, 24, 7, 24, 24, 24,
+ 24, 24, 17, 0, 24, 24, 19, 24, 16, 9,
+ 4, 24, 5, 24, 14, 11, 24, 24, 24, 12,
+ 18, 0
+ } ;
+
+static yyconst int yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 1, 4, 5, 1, 1, 1, 1, 1,
+ 1, 1, 6, 1, 6, 7, 8, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 1, 1, 10,
+ 11, 12, 1, 1, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 19, 19, 23, 24, 25, 26, 27,
+ 19, 28, 29, 30, 31, 32, 33, 19, 34, 19,
+ 1, 1, 1, 1, 13, 1, 14, 15, 16, 17,
+
+ 18, 19, 20, 21, 22, 19, 19, 23, 24, 25,
+ 26, 27, 19, 28, 29, 30, 31, 32, 33, 19,
+ 34, 19, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1
+ } ;
+
+static yyconst int yy_meta[35] =
+ { 0,
+ 1, 1, 2, 3, 1, 1, 1, 1, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4
+ } ;
+
+static yyconst short int yy_base[136] =
+ { 0,
+ 0, 0, 153, 154, 150, 154, 0, 0, 142, 123,
+ 28, 154, 154, 154, 0, 121, 10, 20, 134, 133,
+ 25, 26, 118, 131, 130, 125, 140, 137, 0, 36,
+ 112, 130, 41, 0, 116, 30, 123, 111, 113, 110,
+ 108, 112, 114, 106, 113, 106, 97, 103, 102, 154,
+ 102, 40, 114, 113, 101, 94, 89, 93, 88, 84,
+ 91, 94, 95, 94, 93, 84, 84, 77, 76, 83,
+ 80, 83, 75, 74, 0, 79, 82, 85, 67, 72,
+ 73, 0, 72, 64, 65, 74, 65, 60, 59, 0,
+ 74, 57, 58, 0, 71, 54, 0, 57, 64, 67,
+
+ 0, 47, 61, 53, 48, 42, 0, 55, 60, 45,
+ 44, 41, 0, 42, 51, 38, 0, 49, 0, 0,
+ 0, 42, 154, 32, 0, 0, 31, 27, 17, 0,
+ 0, 154, 58, 62, 37
+ } ;
+
+static yyconst short int yy_def[136] =
+ { 0,
+ 132, 1, 132, 132, 132, 132, 133, 134, 132, 132,
+ 132, 132, 132, 132, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 132, 133, 134, 132,
+ 132, 132, 132, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 132,
+ 132, 132, 132, 132, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 132, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 132, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
+
+ 135, 135, 132, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 132, 135, 135, 135, 135, 135, 135,
+ 135, 135, 132, 135, 135, 135, 135, 135, 135, 135,
+ 135, 0, 132, 132, 132
+ } ;
+
+static yyconst short int yy_nxt[189] =
+ { 0,
+ 4, 5, 6, 7, 8, 9, 4, 10, 11, 12,
+ 13, 14, 4, 15, 16, 17, 18, 15, 15, 19,
+ 15, 15, 20, 21, 22, 15, 23, 15, 24, 15,
+ 15, 25, 15, 26, 32, 36, 30, 38, 42, 44,
+ 34, 131, 32, 37, 30, 33, 53, 39, 52, 54,
+ 43, 45, 56, 33, 57, 130, 129, 33, 28, 28,
+ 128, 28, 29, 127, 29, 29, 126, 125, 124, 123,
+ 122, 121, 120, 119, 118, 117, 116, 115, 114, 113,
+ 112, 111, 110, 109, 108, 107, 106, 105, 104, 103,
+ 102, 101, 100, 99, 98, 97, 96, 95, 94, 93,
+
+ 92, 91, 90, 89, 88, 87, 86, 85, 84, 83,
+ 82, 81, 80, 79, 78, 77, 76, 75, 74, 73,
+ 72, 54, 54, 71, 70, 69, 68, 67, 66, 65,
+ 64, 63, 62, 61, 60, 59, 58, 55, 52, 51,
+ 50, 27, 49, 48, 47, 46, 41, 40, 35, 31,
+ 30, 27, 132, 3, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132
+ } ;
+
+static yyconst short int yy_chk[189] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 11, 17, 11, 18, 21, 22,
+ 135, 129, 30, 17, 30, 11, 33, 18, 52, 33,
+ 21, 22, 36, 30, 36, 128, 127, 52, 133, 133,
+ 124, 133, 134, 122, 134, 134, 118, 116, 115, 114,
+ 112, 111, 110, 109, 108, 106, 105, 104, 103, 102,
+ 100, 99, 98, 96, 95, 93, 92, 91, 89, 88,
+ 87, 86, 85, 84, 83, 81, 80, 79, 78, 77,
+
+ 76, 74, 73, 72, 71, 70, 69, 68, 67, 66,
+ 65, 64, 63, 62, 61, 60, 59, 58, 57, 56,
+ 55, 54, 53, 51, 49, 48, 47, 46, 45, 44,
+ 43, 42, 41, 40, 39, 38, 37, 35, 32, 31,
+ 28, 27, 26, 25, 24, 23, 20, 19, 16, 10,
+ 9, 5, 3, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132
+ } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "printdefl.l"
+#define INITIAL 0
+/*
+ * "$Id: printdefl.l,v 1.2 2001/06/03 20:53:24 rlk Exp $"
+ *
+ * Parse printer definition pseudo-XML
+ *
+ * Copyright 2000 Robert Krawitz (rlk@alum.mit.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+#line 24 "printdefl.l"
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "printdef.h"
+
+#define YY_NO_UNPUT
+
+int mylineno = 1;
+
+#if 0
+#define DBG(x) fprintf(stderr, "'%s'%s\n", yytext, #x);
+#else
+#define DBG(x)
+#endif
+
+static char *
+c_strdup(const char *s)
+{
+ char *ret = malloc(strlen(s) + 1);
+ if (!ret)
+ {
+ fprintf(stderr, "Malloc failed.\n");
+ exit(1);
+ }
+ strcpy(ret, s);
+ return ret;
+}
+
+#line 500 "lex.yy.c"
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines. This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#endif
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+ if ( yy_current_buffer->yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+ && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+ YY_USER_ACTION
+
+YY_DECL
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+#line 64 "printdefl.l"
+
+
+#line 654 "lex.yy.c"
+
+ if ( yy_init )
+ {
+ yy_init = 0;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! yy_start )
+ yy_start = 1; /* first start state */
+
+ if ( ! yyin )
+ yyin = stdin;
+
+ if ( ! yyout )
+ yyout = stdout;
+
+ if ( ! yy_current_buffer )
+ yy_current_buffer =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_load_buffer_state();
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = yy_c_buf_p;
+
+ /* Support of yytext. */
+ *yy_cp = yy_hold_char;
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+ yy_current_state = yy_start;
+yy_match:
+ do
+ {
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 133 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 154 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ { /* have to back up */
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ yy_act = yy_accept[yy_current_state];
+ }
+
+ YY_DO_BEFORE_ACTION;
+
+
+do_action: /* This label is used only to access EOF actions. */
+
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+ case 0: /* must back up */
+ /* undo the effects of YY_DO_BEFORE_ACTION */
+ *yy_cp = yy_hold_char;
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 66 "printdefl.l"
+DBG(tBEGIN) return tBEGIN;
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 67 "printdefl.l"
+DBG(tEND) return tEND;
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 68 "printdefl.l"
+DBG(ASSIGN) return ASSIGN;
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 69 "printdefl.l"
+DBG(PRINTER) return PRINTER;
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 70 "printdefl.l"
+DBG(ENDPRINTER) return ENDPRINTER;
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 71 "printdefl.l"
+DBG(NAME) return NAME;
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 72 "printdefl.l"
+DBG(DRIVER) return DRIVER;
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 73 "printdefl.l"
+DBG(COLOR) return COLOR;
+ YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 74 "printdefl.l"
+DBG(NOCOLOR) return NOCOLOR;
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 75 "printdefl.l"
+DBG(MODEL) return MODEL;
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 76 "printdefl.l"
+DBG(LANGUAGE) return LANGUAGE;
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 77 "printdefl.l"
+DBG(BRIGHTNESS) return BRIGHTNESS;
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 78 "printdefl.l"
+DBG(GAMMA) return GAMMA;
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 79 "printdefl.l"
+DBG(CONTRAST) return CONTRAST;
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 80 "printdefl.l"
+DBG(CYAN) return CYAN;
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 81 "printdefl.l"
+DBG(MAGENTA) return MAGENTA;
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 82 "printdefl.l"
+DBG(YELLOW) return YELLOW;
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 83 "printdefl.l"
+DBG(SATURATION) return SATURATION;
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 84 "printdefl.l"
+DBG(DENSITY) return DENSITY;
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 85 "printdefl.l"
+DBG(VALUE) return VALUE;
+ YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 87 "printdefl.l"
+yylval.ival = atoi(yytext); DBG(tINT) return tINT;
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 88 "printdefl.l"
+yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE) return tDOUBLE;
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 89 "printdefl.l"
+yylval.sval = c_strdup(yytext); DBG(tSTRING) return tSTRING;
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 90 "printdefl.l"
+yylval.sval = c_strdup(yytext); DBG(tCLASS) return tCLASS;
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 91 "printdefl.l"
+DBG(whitespace1) /* Skip blanks/tabs */
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 92 "printdefl.l"
+DBG(comment1) /* Skip comments */
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 93 "printdefl.l"
+DBG(newline) mylineno++;
+ YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 94 "printdefl.l"
+ECHO;
+ YY_BREAK
+#line 877 "lex.yy.c"
+case YY_STATE_EOF(INITIAL):
+ yyterminate();
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = yy_hold_char;
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between yy_current_buffer and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yy_current_buffer->yy_input_file = yyin;
+ yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++yy_c_buf_p;
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = yy_c_buf_p;
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ yy_did_buffer_switch_on_eof = 0;
+
+ if ( yywrap() )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p =
+ yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ yy_c_buf_p =
+ &yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of yylex */
+
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
+ */
+
+static int yy_get_next_buffer()
+ {
+ register char *dest = yy_current_buffer->yy_ch_buf;
+ register char *source = yytext_ptr;
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( yy_current_buffer->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = yy_current_buffer;
+
+ int yy_c_buf_p_offset =
+ (int) (yy_c_buf_p - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yy_flex_realloc( (void *) b->yy_ch_buf,
+ b->yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = yy_current_buffer->yy_buf_size -
+ number_to_move - 1;
+#endif
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+ yy_n_chars, num_to_read );
+
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ if ( yy_n_chars == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ yy_current_buffer->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ yy_n_chars += number_to_move;
+ yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+ yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+ yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+ return ret_val;
+ }
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+static yy_state_type yy_get_previous_state()
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+
+ yy_current_state = yy_start;
+
+ for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+ {
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 133 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ }
+
+ return yy_current_state;
+ }
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+ {
+ register int yy_is_jam;
+ register char *yy_cp = yy_c_buf_p;
+
+ register YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 133 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ yy_is_jam = (yy_current_state == 132);
+
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+ {
+ register char *yy_cp = yy_c_buf_p;
+
+ /* undo effects of setting up yytext */
+ *yy_cp = yy_hold_char;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = yy_n_chars + 2;
+ register char *dest = &yy_current_buffer->yy_ch_buf[
+ yy_current_buffer->yy_buf_size + 2];
+ register char *source =
+ &yy_current_buffer->yy_ch_buf[number_to_move];
+
+ while ( source > yy_current_buffer->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ yy_current_buffer->yy_n_chars =
+ yy_n_chars = yy_current_buffer->yy_buf_size;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+
+ yytext_ptr = yy_bp;
+ yy_hold_char = *yy_cp;
+ yy_c_buf_p = yy_cp;
+ }
+#endif /* ifndef YY_NO_UNPUT */
+
+
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+ {
+ int c;
+
+ *yy_c_buf_p = yy_hold_char;
+
+ if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+ {
+ /* yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ /* This was really a NUL. */
+ *yy_c_buf_p = '\0';
+
+ else
+ { /* need more input */
+ int offset = yy_c_buf_p - yytext_ptr;
+ ++yy_c_buf_p;
+
+ switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ yyrestart( yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap() )
+ return EOF;
+
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p = yytext_ptr + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
+ *yy_c_buf_p = '\0'; /* preserve yytext */
+ yy_hold_char = *++yy_c_buf_p;
+
+
+ return c;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+ {
+ if ( ! yy_current_buffer )
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_init_buffer( yy_current_buffer, input_file );
+ yy_load_buffer_state();
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+ {
+ if ( yy_current_buffer == new_buffer )
+ return;
+
+ if ( yy_current_buffer )
+ {
+ /* Flush out information for old buffer. */
+ *yy_c_buf_p = yy_hold_char;
+ yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ yy_current_buffer = new_buffer;
+ yy_load_buffer_state();
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ yy_did_buffer_switch_on_eof = 1;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+ {
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+ yyin = yy_current_buffer->yy_input_file;
+ yy_hold_char = *yy_c_buf_p;
+ }
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file );
+
+ return b;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+ {
+ if ( ! b )
+ return;
+
+ if ( b == yy_current_buffer )
+ yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yy_flex_free( (void *) b->yy_ch_buf );
+
+ yy_flex_free( (void *) b );
+ }
+
+
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+ {
+ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+#if YY_ALWAYS_INTERACTIVE
+ b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+ b->yy_is_interactive = 0;
+#else
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+ {
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == yy_current_buffer )
+ yy_load_buffer_state();
+ }
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b );
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+ {
+ int len;
+ for ( len = 0; yy_str[len]; ++len )
+ ;
+
+ return yy_scan_bytes( yy_str, len );
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+ {
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (char *) yy_flex_alloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
+
+ buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+ {
+ if ( yy_start_stack_ptr >= yy_start_stack_depth )
+ {
+ yy_size_t new_size;
+
+ yy_start_stack_depth += YY_START_STACK_INCR;
+ new_size = yy_start_stack_depth * sizeof( int );
+
+ if ( ! yy_start_stack )
+ yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+ else
+ yy_start_stack = (int *) yy_flex_realloc(
+ (void *) yy_start_stack, new_size );
+
+ if ( ! yy_start_stack )
+ YY_FATAL_ERROR(
+ "out of memory expanding start-condition stack" );
+ }
+
+ yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+ BEGIN(new_state);
+ }
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+ {
+ if ( --yy_start_stack_ptr < 0 )
+ YY_FATAL_ERROR( "start-condition stack underflow" );
+
+ BEGIN(yy_start_stack[yy_start_stack_ptr]);
+ }
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+ {
+ return yy_start_stack[yy_start_stack_ptr - 1];
+ }
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+ {
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+ }
+
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ yytext[yyleng] = yy_hold_char; \
+ yy_c_buf_p = yytext + n; \
+ yy_hold_char = *yy_c_buf_p; \
+ *yy_c_buf_p = '\0'; \
+ yyleng = n; \
+ } \
+ while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+ }
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+ {
+ return (void *) malloc( size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+ {
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+ {
+ free( ptr );
+ }
+
+#if YY_MAIN
+int main()
+ {
+ yylex();
+ return 0;
+ }
+#endif
+#line 94 "printdefl.l"
diff --git a/src/printdef/printdefy.c b/src/printdef/printdefy.c
new file mode 100644
index 0000000..256c416
--- /dev/null
+++ b/src/printdef/printdefy.c
@@ -0,0 +1,1089 @@
+
+/* A Bison parser, made from printdefy.y
+ by GNU Bison version 1.25
+ */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define tINT 258
+#define tDOUBLE 259
+#define tSTRING 260
+#define tCLASS 261
+#define tBEGIN 262
+#define tEND 263
+#define ASSIGN 264
+#define PRINTER 265
+#define NAME 266
+#define DRIVER 267
+#define COLOR 268
+#define NOCOLOR 269
+#define MODEL 270
+#define LANGUAGE 271
+#define BRIGHTNESS 272
+#define GAMMA 273
+#define CONTRAST 274
+#define CYAN 275
+#define MAGENTA 276
+#define YELLOW 277
+#define SATURATION 278
+#define DENSITY 279
+#define ENDPRINTER 280
+#define VALUE 281
+
+#line 23 "printdefy.y"
+
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "printdef.h"
+
+extern int mylineno;
+stp_printer_t thePrinter;
+char *quotestrip(const char *i);
+char *endstrip(const char *i);
+
+extern int yylex(void);
+void initialize_the_printer(const char *name, const char *driver);
+void output_the_printer(void);
+static int yyerror(const char *s);
+
+const char *printfuncs[] =
+{
+ "canon",
+ "escp2",
+ "pcl",
+ "ps",
+ "lexmark"
+};
+
+const size_t nprintfuncs = sizeof(printfuncs) / sizeof(const char *);
+
+void
+initialize_the_printer(const char *name, const char *driver)
+{
+ strncpy(thePrinter.printvars.output_to, name, 63);
+ strncpy(thePrinter.printvars.driver, driver, 63);
+ thePrinter.printvars.top = -1;
+ thePrinter.model = -1;
+ thePrinter.printvars.brightness = 1.0;
+ thePrinter.printvars.gamma = 1.0;
+ thePrinter.printvars.contrast = 1.0;
+ thePrinter.printvars.cyan = 1.0;
+ thePrinter.printvars.magenta = 1.0;
+ thePrinter.printvars.yellow = 1.0;
+ thePrinter.printvars.saturation = 1.0;
+ thePrinter.printvars.density = 1.0;
+}
+
+void
+output_the_printer(void)
+{
+ printf(" {\n");
+ printf(" %s,\n", thePrinter.printvars.output_to);
+ printf(" %s,\n", thePrinter.printvars.driver);
+ printf(" %d,\n", thePrinter.model);
+ printf(" &stp_%s_printfuncs,\n", printfuncs[thePrinter.printvars.top]);
+ printf(" {\n");
+ printf(" \"\",\n"); /* output_to */
+ printf(" %s,\n", thePrinter.printvars.driver); /* driver */
+ printf(" \"\",\n"); /* ppd_file */
+ printf(" \"\",\n"); /* resolution */
+ printf(" \"\",\n"); /* media_size */
+ printf(" \"\",\n"); /* media_type */
+ printf(" \"\",\n"); /* media_source */
+ printf(" \"\",\n"); /* ink_type */
+ printf(" \"\",\n"); /* dither_algorithm */
+ printf(" %d,\n", thePrinter.printvars.output_type);
+ printf(" %.3f,\n", thePrinter.printvars.brightness);
+ printf(" 1.0,\n"); /* scaling */
+ printf(" -1,\n"); /* orientation */
+ printf(" 0,\n"); /* top */
+ printf(" 0,\n"); /* left */
+ printf(" %.3f,\n", thePrinter.printvars.gamma);
+ printf(" %.3f,\n", thePrinter.printvars.contrast);
+ printf(" %.3f,\n", thePrinter.printvars.cyan);
+ printf(" %.3f,\n", thePrinter.printvars.magenta);
+ printf(" %.3f,\n", thePrinter.printvars.yellow);
+ printf(" %.3f,\n", thePrinter.printvars.saturation);
+ printf(" %.3f,\n", thePrinter.printvars.density);
+ printf(" }\n");
+ printf(" },\n");
+}
+
+extern int mylineno;
+extern char* yytext;
+
+static int yyerror( const char *s )
+{
+ fprintf(stderr,"stdin:%d: %s before '%s'\n",mylineno,s,yytext);
+ return 0;
+}
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 98
+#define YYFLAG -32768
+#define YYNTBASE 27
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 281 ? yytranslate[x] : 48)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 10, 20, 24, 28, 32, 39, 46, 53, 60,
+ 67, 74, 81, 88, 95, 102, 103, 105, 107, 109,
+ 111, 113, 115, 117, 119, 121, 123, 125, 127, 129,
+ 131, 134, 136, 140, 143, 146
+};
+
+static const short yyrhs[] = { 7,
+ 10, 11, 9, 5, 12, 9, 5, 8, 0, 7,
+ 10, 12, 9, 5, 11, 9, 5, 8, 0, 7,
+ 25, 8, 0, 7, 13, 8, 0, 7, 14, 8,
+ 0, 7, 15, 26, 9, 3, 8, 0, 7, 16,
+ 26, 9, 6, 8, 0, 7, 17, 26, 9, 4,
+ 8, 0, 7, 18, 26, 9, 4, 8, 0, 7,
+ 19, 26, 9, 4, 8, 0, 7, 20, 26, 9,
+ 4, 8, 0, 7, 21, 26, 9, 4, 8, 0,
+ 7, 22, 26, 9, 4, 8, 0, 7, 23, 26,
+ 9, 4, 8, 0, 7, 24, 26, 9, 4, 8,
+ 0, 0, 27, 0, 28, 0, 30, 0, 31, 0,
+ 32, 0, 33, 0, 34, 0, 35, 0, 36, 0,
+ 37, 0, 38, 0, 39, 0, 40, 0, 41, 0,
+ 45, 44, 0, 44, 0, 43, 45, 29, 0, 43,
+ 29, 0, 47, 46, 0, 42, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 125, 128, 131, 134, 137, 140, 143, 156, 159, 162,
+ 165, 168, 171, 174, 177, 181, 184, 184, 187, 187,
+ 187, 187, 187, 187, 187, 188, 188, 188, 188, 188,
+ 191, 191, 194, 194, 197, 197
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","tINT","tDOUBLE",
+"tSTRING","tCLASS","tBEGIN","tEND","ASSIGN","PRINTER","NAME","DRIVER","COLOR",
+"NOCOLOR","MODEL","LANGUAGE","BRIGHTNESS","GAMMA","CONTRAST","CYAN","MAGENTA",
+"YELLOW","SATURATION","DENSITY","ENDPRINTER","VALUE","printerstart","printerstartalt",
+"printerend","color","nocolor","model","language","brightness","gamma","contrast",
+"cyan","magenta","yellow","saturation","density","Empty","pstart","parg","pargs",
+"Printer","Printers", NULL
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 43, 44, 44,
+ 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+ 45, 45, 46, 46, 47, 47
+};
+
+static const short yyr2[] = { 0,
+ 9, 9, 3, 3, 3, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 0, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 3, 2, 2, 1
+};
+
+static const short yydefact[] = { 16,
+ 36, 0, 0, 17, 18, 0, 35, 0, 0, 34,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
+ 31, 0, 0, 4, 5, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 0, 0, 1, 2, 0, 0
+};
+
+static const short yydefgoto[] = { 4,
+ 5, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 1, 6, 23, 24, 7, 2
+};
+
+static const short yypact[] = {-32768,
+-32768, 13, 6,-32768,-32768, 10,-32768, 3, -13,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768, 10, 9, 12, 11, 14, -3, -2,
+ -1, 0, 1, 2, 4, 5, 7, 8, 21,-32768,
+-32768, 27, 30,-32768,-32768, 28, 29, 31, 32, 33,
+ 34, 35, 36, 37, 38,-32768, 24, 39, 45, 43,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 57, 71,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 69, 70,-32768,-32768, 79,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768, 15,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768, 68,-32768,-32768,-32768
+};
+
+
+#define YYLAST 92
+
+
+static const short yytable[] = { 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 97, 25, 26, 8, 9, 42, 44, 3,
+ 43, 45, 46, 47, 48, 49, 50, 51, 56, 52,
+ 53, 57, 54, 55, 58, 69, 59, 60, 40, 61,
+ 62, 63, 64, 65, 66, 67, 68, 71, 72, 70,
+ 73, 74, 75, 76, 77, 78, 79, 80, 0, 0,
+ 0, 93, 0, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 94, 95, 96, 98, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 41
+};
+
+static const short yycheck[] = { 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 0, 11, 12, 10, 7, 9, 8, 7,
+ 9, 8, 26, 26, 26, 26, 26, 26, 8, 26,
+ 26, 5, 26, 26, 5, 12, 9, 9, 24, 9,
+ 9, 9, 9, 9, 9, 9, 9, 3, 6, 11,
+ 4, 4, 4, 4, 4, 4, 4, 4, -1, -1,
+ -1, 5, -1, 9, 9, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 5, 8, 8, 0, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 24
+};
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/usr/share/bison.simple"
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc. */
+#endif /* not GNU C. */
+#endif /* alloca not defined. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT return(0)
+#define YYABORT return(1)
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+#ifndef YYPARSE_RETURN_TYPE
+#define YYPARSE_RETURN_TYPE int
+#endif
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+YYPARSE_RETURN_TYPE yyparse (void);
+#endif
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, int count)
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 196 "/usr/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+YYPARSE_RETURN_TYPE
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+ yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
+ yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 1:
+#line 126 "printdefy.y"
+{ initialize_the_printer(yyvsp[-4].sval, yyvsp[-1].sval); ;
+ break;}
+case 2:
+#line 129 "printdefy.y"
+{ initialize_the_printer(yyvsp[-1].sval, yyvsp[-4].sval); ;
+ break;}
+case 3:
+#line 132 "printdefy.y"
+{ output_the_printer(); ;
+ break;}
+case 4:
+#line 135 "printdefy.y"
+{ thePrinter.printvars.output_type = OUTPUT_COLOR; ;
+ break;}
+case 5:
+#line 138 "printdefy.y"
+{ thePrinter.printvars.output_type = OUTPUT_GRAY; ;
+ break;}
+case 6:
+#line 141 "printdefy.y"
+{ thePrinter.model = yyvsp[-1].ival; ;
+ break;}
+case 7:
+#line 144 "printdefy.y"
+{
+ int i;
+ for (i = 0; i < nprintfuncs; i++)
+ {
+ if (!strcmp(yyvsp[-1].sval, printfuncs[i]))
+ {
+ thePrinter.printvars.top = i;
+ break;
+ }
+ }
+ ;
+ break;}
+case 8:
+#line 157 "printdefy.y"
+{ thePrinter.printvars.brightness = yyvsp[-1].dval; ;
+ break;}
+case 9:
+#line 160 "printdefy.y"
+{ thePrinter.printvars.gamma = yyvsp[-1].dval; ;
+ break;}
+case 10:
+#line 163 "printdefy.y"
+{ thePrinter.printvars.contrast = yyvsp[-1].dval; ;
+ break;}
+case 11:
+#line 166 "printdefy.y"
+{ thePrinter.printvars.cyan = yyvsp[-1].dval; ;
+ break;}
+case 12:
+#line 169 "printdefy.y"
+{ thePrinter.printvars.magenta = yyvsp[-1].dval; ;
+ break;}
+case 13:
+#line 172 "printdefy.y"
+{ thePrinter.printvars.yellow = yyvsp[-1].dval; ;
+ break;}
+case 14:
+#line 175 "printdefy.y"
+{ thePrinter.printvars.saturation = yyvsp[-1].dval; ;
+ break;}
+case 15:
+#line 178 "printdefy.y"
+{ thePrinter.printvars.density = yyvsp[-1].dval; ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 498 "/usr/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+}
+#line 200 "printdefy.y"
+
+
+int
+main(int argc, char **argv)
+{
+ int retval;
+ int i;
+ printf("/* This file is automatically generated. See printers.xml.\n");
+ printf(" DO NOT EDIT! */\n\n");
+ for (i = 0; i < nprintfuncs; i++)
+ printf("const extern stp_printfuncs_t stp_%s_printfuncs;\n",
+ printfuncs[i]);
+ printf("\nstatic const stp_internal_printer_t printers[] =\n");
+ printf("{\n");
+ retval = yyparse();
+ printf("};\n");
+ printf("static const int printer_count = sizeof(printers) / sizeof(stp_internal_printer_t);\n");
+ return retval;
+}
diff --git a/src/printdef/printdefy.h b/src/printdef/printdefy.h
new file mode 100644
index 0000000..f0a210a
--- /dev/null
+++ b/src/printdef/printdefy.h
@@ -0,0 +1,27 @@
+#define tINT 258
+#define tDOUBLE 259
+#define tSTRING 260
+#define tCLASS 261
+#define tBEGIN 262
+#define tEND 263
+#define ASSIGN 264
+#define PRINTER 265
+#define NAME 266
+#define DRIVER 267
+#define COLOR 268
+#define NOCOLOR 269
+#define MODEL 270
+#define LANGUAGE 271
+#define BRIGHTNESS 272
+#define GAMMA 273
+#define CONTRAST 274
+#define CYAN 275
+#define MAGENTA 276
+#define YELLOW 277
+#define SATURATION 278
+#define DENSITY 279
+#define ENDPRINTER 280
+#define VALUE 281
+
+
+extern YYSTYPE yylval;
diff --git a/src/printdef/printdefy.y b/src/printdef/printdefy.y
index 98439c2..13d4f37 100644
--- a/src/printdef/printdefy.y
+++ b/src/printdef/printdefy.y
@@ -1,5 +1,5 @@
/*
- * "$Id: printdefy.y,v 1.7 2001/08/25 16:25:28 rlk Exp $"
+ * "$Id: printdefy.y,v 1.7.4.1 2003/10/01 20:35:27 rleigh Exp $"
*
* Parse printer definition pseudo-XML
*
@@ -35,7 +35,7 @@ char *endstrip(const char *i);
extern int yylex(void);
void initialize_the_printer(const char *name, const char *driver);
void output_the_printer(void);
-int yyerror(const char *s);
+static int yyerror(const char *s);
const char *printfuncs[] =
{
@@ -179,18 +179,23 @@ density: tBEGIN DENSITY VALUE ASSIGN tDOUBLE tEND
;
Empty:
+;
pstart: printerstart | printerstartalt
;
parg: color | nocolor | model | language | brightness | gamma | contrast
| cyan | magenta | yellow | saturation | density
+;
pargs: pargs parg | parg
+;
Printer: pstart pargs printerend | pstart printerend
+;
Printers: Printers Printer | Empty
+;
%%
diff --git a/src/testpattern/.cvsignore b/src/testpattern/.cvsignore
deleted file mode 100644
index d9b90da..0000000
--- a/src/testpattern/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-testpatterny.c
-testpatterny.h
-testpatternl.c
-testpattern
-Makefile.in
-Makefile
-.deps
-.libs
diff --git a/src/testpattern/Makefile.am b/src/testpattern/Makefile.am
index 7291d7e..addd64c 100644
--- a/src/testpattern/Makefile.am
+++ b/src/testpattern/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.5 2001/09/17 20:37:57 rleigh Exp $
+## $Id: Makefile.am,v 1.5.4.3 2002/06/05 23:52:05 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -28,6 +28,7 @@ MAINT_CHARSET = latin1
AM_CFLAGS = $(GNUCFLAGS)
INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS)
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
LIBS = @LIBS@ $(INTLLIBS)
## Programs
@@ -42,7 +43,7 @@ LFLAGS = -i
YFLAGS = -d
testpattern_SOURCES = testpattern.c testpatterny.y testpatternl.l testpattern.h
-testpattern_LDADD = $(LIBGIMPPRINT_LIBS)
+testpattern_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
testpattern_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
testpatternl.o: testpatterny.o
diff --git a/src/testpattern/Makefile.in b/src/testpattern/Makefile.in
new file mode 100644
index 0000000..b0193ed
--- /dev/null
+++ b/src/testpattern/Makefile.in
@@ -0,0 +1,506 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+STRIP = @STRIP@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS)
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = @LIBS@ $(INTLLIBS)
+
+TESTPATTERN_BIN = testpattern
+
+bin_PROGRAMS = @TESTPATTERN_BIN@
+
+EXTRA_PROGRAMS = testpattern
+
+LFLAGS = -i
+YFLAGS = -d
+
+testpattern_SOURCES = testpattern.c testpatterny.y testpatternl.l testpattern.h
+testpattern_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+testpattern_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+SAMPLE_IMAGES = testpattern.sample
+
+pkgdatadir = $(datadir)/$(PACKAGE)/samples
+
+pkgdata_DATA = @SAMPLE_IMAGES@
+
+MAINTAINERCLEANFILES = Makefile.in
+
+DISTCLEANFILES = testpatternl.c testpatterny.c testpatterny.h
+EXTRA_DIST = testpatterny.h testpattern.sample
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = @TESTPATTERN_BIN@
+PROGRAMS = $(bin_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+testpattern_OBJECTS = testpattern.$(OBJEXT) testpatterny.$(OBJEXT) \
+testpatternl.$(OBJEXT)
+testpattern_LDFLAGS =
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LEXLIB = @LEXLIB@
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DATA = $(pkgdata_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in testpatternl.c testpatterny.c
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(testpattern_SOURCES)
+OBJECTS = $(testpattern_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .l .lo .o .obj .s .y
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/testpattern/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-binPROGRAMS:
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+distclean-binPROGRAMS:
+
+maintainer-clean-binPROGRAMS:
+
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+testpattern$(EXEEXT): $(testpattern_OBJECTS) $(testpattern_DEPENDENCIES)
+ @rm -f testpattern$(EXEEXT)
+ $(LINK) $(testpattern_LDFLAGS) $(testpattern_OBJECTS) $(testpattern_LDADD) $(LIBS)
+.l.c:
+ $(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
+.y.c:
+ $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
+ if test -f y.tab.h; then \
+ if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
+ else :; fi
+testpatterny.h: testpatterny.c
+
+
+install-pkgdataDATA: $(pkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
+ @list='$(pkgdata_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-pkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(pkgdata_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/testpattern
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+printers.o: printers.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h ../../lib/libprintut.h \
+ ../../lib/xmalloc.h
+testpattern.o: testpattern.c ../../config.h \
+ ../../include/gimp-print/gimp-print.h testpattern.h \
+ testpatterny.h
+testpatternl.o: testpatternl.c ../../config.h testpattern.h \
+ testpatterny.h
+testpatterny.o: testpatterny.c ../../config.h testpattern.h \
+ testpatterny.h
+
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am: install-binPROGRAMS
+install-exec: install-exec-am
+
+install-data-am: install-pkgdataDATA
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-binPROGRAMS uninstall-pkgdataDATA
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir)
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ -test -z "testpatternlltestpatternyhtestpatternyc$(MAINTAINERCLEANFILES)" || rm -f testpatternll testpatternyh testpatternyc $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \
+ distclean-tags distclean-generic clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool uninstall-pkgdataDATA \
+install-pkgdataDATA tags mostlyclean-tags distclean-tags clean-tags \
+maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+testpatternl.o: testpatterny.o
+testpattern.o: testpatterny.o
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../main ; \
+ $(MAKE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/testpattern/testpattern.c b/src/testpattern/testpattern.c
index 5802b97..d34821f 100644
--- a/src/testpattern/testpattern.c
+++ b/src/testpattern/testpattern.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testpattern.c,v 1.6 2001/10/01 23:14:00 rlk Exp $"
+ * "$Id: testpattern.c,v 1.6.4.1 2002/07/23 00:54:08 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -45,6 +45,8 @@
#include <string.h>
#include "testpattern.h"
+extern int yyparse(void);
+
static const char *Image_get_appname(stp_image_t *image);
static void Image_progress_conclude(stp_image_t *image);
static void Image_note_progress(stp_image_t *image,
@@ -392,23 +394,23 @@ fill_black(unsigned short *data, size_t len, size_t scount)
static void
fill_colors(unsigned short *data, size_t len, size_t scount, testpattern_t *p)
{
- double c_min = p->c_min == -2 ? global_c_level : p->c_min;
- double m_min = p->m_min == -2 ? global_m_level : p->m_min;
- double y_min = p->y_min == -2 ? global_y_level : p->y_min;
- double k_min = p->k_min;
- double c = p->c == -2 ? global_c_level : p->c;
- double m = p->m == -2 ? global_m_level : p->m;
- double y = p->y == -2 ? global_y_level : p->y;
- double c_gamma = p->c_gamma * global_gamma * global_c_gamma;
- double m_gamma = p->m_gamma * global_gamma * global_m_gamma;
- double y_gamma = p->y_gamma * global_gamma * global_y_gamma;
- double k_gamma = p->k_gamma * global_gamma * global_k_gamma;
- double k = p->k;
- double c_level = p->c_level == -2 ? global_c_level : p->c_level;
- double m_level = p->m_level == -2 ? global_m_level : p->m_level;
- double y_level = p->y_level == -2 ? global_y_level : p->y_level;
- double lower = p->lower;
- double upper = p->upper;
+ double c_min = p->d.p.c_min == -2 ? global_c_level : p->d.p.c_min;
+ double m_min = p->d.p.m_min == -2 ? global_m_level : p->d.p.m_min;
+ double y_min = p->d.p.y_min == -2 ? global_y_level : p->d.p.y_min;
+ double k_min = p->d.p.k_min;
+ double c = p->d.p.c == -2 ? global_c_level : p->d.p.c;
+ double m = p->d.p.m == -2 ? global_m_level : p->d.p.m;
+ double y = p->d.p.y == -2 ? global_y_level : p->d.p.y;
+ double c_gamma = p->d.p.c_gamma * global_gamma * global_c_gamma;
+ double m_gamma = p->d.p.m_gamma * global_gamma * global_m_gamma;
+ double y_gamma = p->d.p.y_gamma * global_gamma * global_y_gamma;
+ double k_gamma = p->d.p.k_gamma * global_gamma * global_k_gamma;
+ double k = p->d.p.k;
+ double c_level = p->d.p.c_level == -2 ? global_c_level : p->d.p.c_level;
+ double m_level = p->d.p.m_level == -2 ? global_m_level : p->d.p.m_level;
+ double y_level = p->d.p.y_level == -2 ? global_y_level : p->d.p.y_level;
+ double lower = p->d.p.lower;
+ double upper = p->d.p.upper;
int i;
int j;
int pixels;
@@ -467,38 +469,53 @@ fill_colors(unsigned short *data, size_t len, size_t scount, testpattern_t *p)
}
}
+extern FILE *yyin;
+
static stp_image_status_t
Image_get_row(stp_image_t *image, unsigned char *data, int row)
{
- static int previous_band = -1;
- int band = row / bandheight;
- if (previous_band == -2)
- {
- memset(data, 0, printer_width * 4 * sizeof(unsigned short));
- fill_colors((unsigned short *)data, printer_width, levels,
- &(the_testpatterns[band]));
- previous_band = band;
- }
- else if (row == printer_height - 1)
+ if (the_testpatterns[0].t == E_IMAGE)
{
- memset(data, 0, printer_width * 4 * sizeof(unsigned short));
- fill_black((unsigned short *)data, printer_width, levels);
+ testpattern_t *t = &(the_testpatterns[0]);
+ int total_read = fread(data, 1, t->d.i.x * 8, yyin);
+ if (total_read != t->d.i.x * 8)
+ {
+ fprintf(stderr, "Read failed!\n");
+ return STP_IMAGE_ABORT;
+ }
}
- else if (band >= n_testpatterns)
- memset(data, 0, printer_width * 4 * sizeof(unsigned short));
- else if (band != previous_band && band > 0)
+ else
{
- memset(data, 0, printer_width * 4 * sizeof(unsigned short));
- if (noblackline)
+ static int previous_band = -1;
+ int band = row / bandheight;
+ if (previous_band == -2)
{
+ memset(data, 0, printer_width * 4 * sizeof(unsigned short));
fill_colors((unsigned short *)data, printer_width, levels,
&(the_testpatterns[band]));
previous_band = band;
}
- else
+ else if (row == printer_height - 1)
{
+ memset(data, 0, printer_width * 4 * sizeof(unsigned short));
fill_black((unsigned short *)data, printer_width, levels);
- previous_band = -2;
+ }
+ else if (band >= n_testpatterns)
+ memset(data, 0, printer_width * 4 * sizeof(unsigned short));
+ else if (band != previous_band && band > 0)
+ {
+ memset(data, 0, printer_width * 4 * sizeof(unsigned short));
+ if (noblackline)
+ {
+ fill_colors((unsigned short *)data, printer_width, levels,
+ &(the_testpatterns[band]));
+ previous_band = band;
+ }
+ else
+ {
+ fill_black((unsigned short *)data, printer_width, levels);
+ previous_band = -2;
+ }
}
}
return STP_IMAGE_OK;
@@ -513,13 +530,19 @@ Image_bpp(stp_image_t *image)
static int
Image_width(stp_image_t *image)
{
- return printer_width;
+ if (the_testpatterns[0].t == E_IMAGE)
+ return the_testpatterns[0].d.i.x;
+ else
+ return printer_width;
}
static int
Image_height(stp_image_t *image)
{
- return printer_height;
+ if (the_testpatterns[0].t == E_IMAGE)
+ return the_testpatterns[0].d.i.y;
+ else
+ return printer_height;
}
static void
diff --git a/src/testpattern/testpattern.h b/src/testpattern/testpattern.h
index d2cd2bc..679e4f4 100644
--- a/src/testpattern/testpattern.h
+++ b/src/testpattern/testpattern.h
@@ -1,5 +1,5 @@
/*
- * "$Id: testpattern.h,v 1.2 2001/08/14 00:12:58 rlk Exp $"
+ * "$Id: testpattern.h,v 1.2.6.1 2002/07/23 00:54:08 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -22,25 +22,45 @@
typedef struct
{
- double c_min;
- double c;
- double c_gamma;
- double m_min;
- double m;
- double m_gamma;
- double y_min;
- double y;
- double y_gamma;
- double k_min;
- double k;
- double k_gamma;
- double c_level;
- double m_level;
- double y_level;
- double lower;
- double upper;
+ enum {
+ E_PATTERN,
+ E_IMAGE
+ } t;
+ union {
+ struct {
+ double c_min;
+ double c;
+ double c_gamma;
+ double m_min;
+ double m;
+ double m_gamma;
+ double y_min;
+ double y;
+ double y_gamma;
+ double k_min;
+ double k;
+ double k_gamma;
+ double c_level;
+ double m_level;
+ double y_level;
+ double lower;
+ double upper;
+ } p;
+ struct {
+ int x;
+ int y;
+ int bits;
+ const char *data;
+ } i;
+ } d;
} testpattern_t;
+/*
+ * At least with flex, this forbids the scanner from reading ahead.
+ * This is necessary for parsing images.
+ */
+#define YY_ALWAYS_INTERACTIVE 1
+
extern double global_c_level;
extern double global_c_gamma;
extern double global_m_level;
diff --git a/src/testpattern/testpatternl.c b/src/testpattern/testpatternl.c
new file mode 100644
index 0000000..c4abf5a
--- /dev/null
+++ b/src/testpattern/testpatternl.c
@@ -0,0 +1,1807 @@
+/* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+#include <stdio.h>
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator). This
+ * avoids problems with code like:
+ *
+ * if ( condition_holds )
+ * yyless( 5 );
+ * else
+ * do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ *yy_cp = yy_hold_char; \
+ YY_RESTORE_YY_MORE_OFFSET \
+ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+typedef unsigned int yy_size_t;
+
+
+struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+ };
+
+static YY_BUFFER_STATE yy_current_buffer = 0;
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_is_interactive = is_interactive; \
+ }
+
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_at_bol = at_bol; \
+ }
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+typedef unsigned char YY_CHAR;
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+typedef int yy_state_type;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ yytext_ptr = yy_bp; \
+ yyleng = (int) (yy_cp - yy_bp); \
+ yy_hold_char = *yy_cp; \
+ *yy_cp = '\0'; \
+ yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 33
+#define YY_END_OF_BUFFER 34
+static yyconst short int yy_accept[187] =
+ { 0,
+ 0, 0, 34, 29, 30, 32, 33, 29, 29, 27,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 30, 0, 29, 31,
+ 27, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 28, 29, 28, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 20, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 21,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+
+ 29, 29, 29, 29, 29, 29, 5, 22, 26, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 23,
+ 11, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 9, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 1, 6, 19, 29, 29, 29, 4, 2, 7,
+ 29, 29, 25, 12, 29, 3, 8, 29, 29, 29,
+ 13, 29, 29, 29, 29, 24, 29, 10, 29, 29,
+ 29, 29, 29, 17, 29, 16, 14, 29, 29, 29,
+ 15, 29, 29, 29, 18, 0
+ } ;
+
+static yyconst int yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 1, 4, 5, 1, 1, 1, 1, 1,
+ 1, 1, 6, 1, 6, 7, 1, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 1, 1, 1,
+ 1, 1, 1, 1, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 1, 19, 20, 21, 22, 23, 24,
+ 1, 25, 26, 27, 28, 29, 30, 1, 31, 32,
+ 1, 1, 1, 1, 9, 1, 10, 11, 12, 13,
+
+ 14, 15, 16, 17, 18, 1, 19, 20, 21, 22,
+ 23, 24, 1, 25, 26, 27, 28, 29, 30, 1,
+ 31, 32, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1
+ } ;
+
+static yyconst int yy_meta[33] =
+ { 0,
+ 1, 2, 3, 4, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1
+ } ;
+
+static yyconst short int yy_base[191] =
+ { 0,
+ 0, 0, 211, 0, 208, 212, 0, 31, 201, 29,
+ 188, 198, 20, 196, 179, 18, 195, 189, 32, 32,
+ 188, 178, 174, 181, 189, 0, 195, 192, 43, 0,
+ 41, 187, 44, 184, 38, 171, 165, 170, 172, 179,
+ 169, 171, 36, 40, 173, 158, 166, 157, 158, 163,
+ 167, 43, 212, 53, 171, 170, 165, 166, 161, 148,
+ 156, 151, 139, 154, 160, 158, 140, 152, 155, 150,
+ 145, 135, 139, 137, 0, 127, 131, 147, 142, 136,
+ 133, 124, 134, 137, 140, 135, 134, 42, 126, 0,
+ 126, 124, 115, 133, 128, 114, 120, 125, 121, 116,
+
+ 107, 115, 113, 119, 105, 106, 0, 0, 0, 112,
+ 98, 107, 101, 105, 111, 115, 98, 108, 93, 0,
+ 0, 99, 105, 100, 107, 96, 84, 105, 92, 88,
+ 101, 0, 100, 89, 44, 86, 82, 79, 95, 84,
+ 81, 0, 0, 0, 92, 83, 86, 0, 0, 0,
+ 50, 68, 0, 0, 80, 0, 0, 83, 76, 68,
+ 0, 62, 65, 68, 68, 0, 74, 0, 75, 63,
+ 73, 64, 62, 0, 72, 0, 0, 57, 64, 54,
+ 0, 39, 47, 32, 0, 212, 43, 73, 75, 79
+ } ;
+
+static yyconst short int yy_def[191] =
+ { 0,
+ 186, 1, 186, 187, 186, 186, 188, 189, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 186, 188, 189, 190,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 186, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 0, 186, 186, 186, 186
+ } ;
+
+static yyconst short int yy_nxt[245] =
+ { 0,
+ 4, 5, 6, 7, 8, 9, 4, 10, 4, 4,
+ 11, 12, 13, 4, 4, 14, 15, 16, 17, 18,
+ 19, 4, 4, 20, 21, 4, 22, 4, 23, 24,
+ 25, 4, 30, 36, 30, 32, 31, 37, 40, 41,
+ 44, 46, 33, 26, 30, 45, 30, 32, 31, 55,
+ 67, 56, 185, 58, 33, 69, 47, 59, 78, 70,
+ 54, 110, 79, 184, 68, 183, 33, 162, 111, 151,
+ 152, 182, 163, 28, 28, 29, 29, 181, 29, 30,
+ 30, 180, 30, 179, 178, 177, 176, 175, 174, 173,
+ 172, 171, 170, 169, 168, 167, 166, 165, 164, 161,
+
+ 160, 159, 158, 157, 156, 155, 154, 153, 150, 149,
+ 148, 147, 146, 145, 144, 143, 142, 141, 140, 139,
+ 138, 137, 136, 135, 134, 133, 132, 131, 130, 129,
+ 128, 127, 126, 125, 124, 123, 122, 121, 120, 119,
+ 118, 117, 116, 115, 114, 113, 112, 109, 108, 107,
+ 106, 105, 104, 103, 102, 101, 100, 99, 98, 97,
+ 96, 95, 94, 93, 92, 91, 90, 89, 88, 87,
+ 86, 85, 84, 83, 82, 81, 80, 56, 56, 77,
+ 76, 75, 74, 73, 72, 71, 66, 65, 64, 63,
+ 62, 61, 60, 57, 54, 53, 27, 52, 51, 50,
+
+ 49, 48, 43, 42, 39, 38, 35, 34, 31, 27,
+ 186, 3, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186
+ } ;
+
+static yyconst short int yy_chk[245] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 8, 13, 8, 10, 10, 13, 16, 16,
+ 19, 20, 10, 187, 29, 19, 29, 31, 31, 33,
+ 43, 33, 184, 35, 31, 44, 20, 35, 52, 44,
+ 54, 88, 52, 183, 43, 182, 54, 151, 88, 135,
+ 135, 180, 151, 188, 188, 189, 189, 179, 189, 190,
+ 190, 178, 190, 175, 173, 172, 171, 170, 169, 167,
+ 165, 164, 163, 162, 160, 159, 158, 155, 152, 147,
+
+ 146, 145, 141, 140, 139, 138, 137, 136, 134, 133,
+ 131, 130, 129, 128, 127, 126, 125, 124, 123, 122,
+ 119, 118, 117, 116, 115, 114, 113, 112, 111, 110,
+ 106, 105, 104, 103, 102, 101, 100, 99, 98, 97,
+ 96, 95, 94, 93, 92, 91, 89, 87, 86, 85,
+ 84, 83, 82, 81, 80, 79, 78, 77, 76, 74,
+ 73, 72, 71, 70, 69, 68, 67, 66, 65, 64,
+ 63, 62, 61, 60, 59, 58, 57, 56, 55, 51,
+ 50, 49, 48, 47, 46, 45, 42, 41, 40, 39,
+ 38, 37, 36, 34, 32, 28, 27, 25, 24, 23,
+
+ 22, 21, 18, 17, 15, 14, 12, 11, 9, 5,
+ 3, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186
+ } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "testpatternl.l"
+#define INITIAL 0
+/*
+ * "$Id: testpatternl.l,v 1.2.6.1 2002/07/23 00:54:08 rlk Exp $"
+ *
+ * Test pattern generator for Gimp-Print
+ *
+ * Copyright 2001 Robert Krawitz <rlk@alum.mit.edu>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+#line 24 "testpatternl.l"
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "testpattern.h"
+
+#define YY_NO_UNPUT
+
+int mylineno = 1;
+
+#if 0
+#define DBG(x) fprintf(stderr, "'%s'%s\n", yytext, #x);
+#else
+#define DBG(x)
+#endif
+
+#line 520 "lex.yy.c"
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines. This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#endif
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+ if ( yy_current_buffer->yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+ && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+ YY_USER_ACTION
+
+YY_DECL
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+#line 54 "testpatternl.l"
+
+
+#line 674 "lex.yy.c"
+
+ if ( yy_init )
+ {
+ yy_init = 0;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! yy_start )
+ yy_start = 1; /* first start state */
+
+ if ( ! yyin )
+ yyin = stdin;
+
+ if ( ! yyout )
+ yyout = stdout;
+
+ if ( ! yy_current_buffer )
+ yy_current_buffer =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_load_buffer_state();
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = yy_c_buf_p;
+
+ /* Support of yytext. */
+ *yy_cp = yy_hold_char;
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+ yy_current_state = yy_start;
+yy_match:
+ do
+ {
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 187 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 212 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ { /* have to back up */
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ yy_act = yy_accept[yy_current_state];
+ }
+
+ YY_DO_BEFORE_ACTION;
+
+
+do_action: /* This label is used only to access EOF actions. */
+
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+ case 0: /* must back up */
+ /* undo the effects of YY_DO_BEFORE_ACTION */
+ *yy_cp = yy_hold_char;
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 56 "testpatternl.l"
+DBG(C_GAMMA) return C_GAMMA;
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 57 "testpatternl.l"
+DBG(M_GAMMA) return M_GAMMA;
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 58 "testpatternl.l"
+DBG(Y_GAMMA) return Y_GAMMA;
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 59 "testpatternl.l"
+DBG(K_GAMMA) return K_GAMMA;
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 60 "testpatternl.l"
+DBG(GAMMA) return GAMMA;
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 61 "testpatternl.l"
+DBG(C_LEVEL) return C_LEVEL;
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 62 "testpatternl.l"
+DBG(M_LEVEL) return M_LEVEL;
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 63 "testpatternl.l"
+DBG(Y_LEVEL) return Y_LEVEL;
+ YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 64 "testpatternl.l"
+DBG(LEVELS) return LEVELS;
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 65 "testpatternl.l"
+DBG(INK_LIMIT) return INK_LIMIT;
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 66 "testpatternl.l"
+DBG(WIDTH) return WIDTH;
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 67 "testpatternl.l"
+DBG(PRINTER) return PRINTER;
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 68 "testpatternl.l"
+DBG(INK_TYPE) return INK_TYPE;
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 69 "testpatternl.l"
+DBG(RESOLUTION) return RESOLUTION;
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 70 "testpatternl.l"
+DBG(MEDIA_SOURCE) return MEDIA_SOURCE;
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 71 "testpatternl.l"
+DBG(MEDIA_TYPE) return MEDIA_TYPE;
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 72 "testpatternl.l"
+DBG(MEDIA_SIZE) return MEDIA_SIZE;
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 73 "testpatternl.l"
+DBG(DITHER_ALGORITHM) return DITHER_ALGORITHM;
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 74 "testpatternl.l"
+DBG(DENSITY) return DENSITY;
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 75 "testpatternl.l"
+DBG(TOP) return TOP;
+ YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 76 "testpatternl.l"
+DBG(LEFT) return LEFT;
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 77 "testpatternl.l"
+DBG(HSIZE) return HSIZE;
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 78 "testpatternl.l"
+DBG(VSIZE) return VSIZE;
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 79 "testpatternl.l"
+DBG(BLACKLINE) return BLACKLINE;
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 80 "testpatternl.l"
+DBG(PATTERN) return PATTERN;
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 81 "testpatternl.l"
+DBG(IMAGE) return IMAGE;
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 83 "testpatternl.l"
+yylval.ival = atoi(yytext); DBG(tINT) return tINT;
+ YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 84 "testpatternl.l"
+yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE) return tDOUBLE;
+ YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 85 "testpatternl.l"
+yylval.sval = c_strdup(yytext); DBG(tSTRING) return tSTRING;
+ YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 86 "testpatternl.l"
+DBG(whitespace1) /* Skip blanks/tabs */
+ YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 87 "testpatternl.l"
+DBG(comment1) /* Skip comments */
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 88 "testpatternl.l"
+DBG(newline) mylineno++;
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 89 "testpatternl.l"
+ECHO;
+ YY_BREAK
+#line 922 "lex.yy.c"
+case YY_STATE_EOF(INITIAL):
+ yyterminate();
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = yy_hold_char;
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between yy_current_buffer and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yy_current_buffer->yy_input_file = yyin;
+ yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++yy_c_buf_p;
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = yy_c_buf_p;
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ yy_did_buffer_switch_on_eof = 0;
+
+ if ( yywrap() )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p =
+ yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ yy_c_buf_p =
+ &yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of yylex */
+
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
+ */
+
+static int yy_get_next_buffer()
+ {
+ register char *dest = yy_current_buffer->yy_ch_buf;
+ register char *source = yytext_ptr;
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( yy_current_buffer->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = yy_current_buffer;
+
+ int yy_c_buf_p_offset =
+ (int) (yy_c_buf_p - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yy_flex_realloc( (void *) b->yy_ch_buf,
+ b->yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = yy_current_buffer->yy_buf_size -
+ number_to_move - 1;
+#endif
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+ yy_n_chars, num_to_read );
+
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ if ( yy_n_chars == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ yy_current_buffer->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ yy_n_chars += number_to_move;
+ yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+ yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+ yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+ return ret_val;
+ }
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+static yy_state_type yy_get_previous_state()
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+
+ yy_current_state = yy_start;
+
+ for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+ {
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 187 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ }
+
+ return yy_current_state;
+ }
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+ {
+ register int yy_is_jam;
+ register char *yy_cp = yy_c_buf_p;
+
+ register YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 187 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ yy_is_jam = (yy_current_state == 186);
+
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+ {
+ register char *yy_cp = yy_c_buf_p;
+
+ /* undo effects of setting up yytext */
+ *yy_cp = yy_hold_char;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = yy_n_chars + 2;
+ register char *dest = &yy_current_buffer->yy_ch_buf[
+ yy_current_buffer->yy_buf_size + 2];
+ register char *source =
+ &yy_current_buffer->yy_ch_buf[number_to_move];
+
+ while ( source > yy_current_buffer->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ yy_current_buffer->yy_n_chars =
+ yy_n_chars = yy_current_buffer->yy_buf_size;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+
+ yytext_ptr = yy_bp;
+ yy_hold_char = *yy_cp;
+ yy_c_buf_p = yy_cp;
+ }
+#endif /* ifndef YY_NO_UNPUT */
+
+
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+ {
+ int c;
+
+ *yy_c_buf_p = yy_hold_char;
+
+ if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+ {
+ /* yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ /* This was really a NUL. */
+ *yy_c_buf_p = '\0';
+
+ else
+ { /* need more input */
+ int offset = yy_c_buf_p - yytext_ptr;
+ ++yy_c_buf_p;
+
+ switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ yyrestart( yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap() )
+ return EOF;
+
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p = yytext_ptr + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
+ *yy_c_buf_p = '\0'; /* preserve yytext */
+ yy_hold_char = *++yy_c_buf_p;
+
+
+ return c;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+ {
+ if ( ! yy_current_buffer )
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_init_buffer( yy_current_buffer, input_file );
+ yy_load_buffer_state();
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+ {
+ if ( yy_current_buffer == new_buffer )
+ return;
+
+ if ( yy_current_buffer )
+ {
+ /* Flush out information for old buffer. */
+ *yy_c_buf_p = yy_hold_char;
+ yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ yy_current_buffer = new_buffer;
+ yy_load_buffer_state();
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ yy_did_buffer_switch_on_eof = 1;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+ {
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+ yyin = yy_current_buffer->yy_input_file;
+ yy_hold_char = *yy_c_buf_p;
+ }
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file );
+
+ return b;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+ {
+ if ( ! b )
+ return;
+
+ if ( b == yy_current_buffer )
+ yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yy_flex_free( (void *) b->yy_ch_buf );
+
+ yy_flex_free( (void *) b );
+ }
+
+
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+ {
+ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+#if YY_ALWAYS_INTERACTIVE
+ b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+ b->yy_is_interactive = 0;
+#else
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+ {
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == yy_current_buffer )
+ yy_load_buffer_state();
+ }
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b );
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+ {
+ int len;
+ for ( len = 0; yy_str[len]; ++len )
+ ;
+
+ return yy_scan_bytes( yy_str, len );
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+ {
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (char *) yy_flex_alloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
+
+ buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+ {
+ if ( yy_start_stack_ptr >= yy_start_stack_depth )
+ {
+ yy_size_t new_size;
+
+ yy_start_stack_depth += YY_START_STACK_INCR;
+ new_size = yy_start_stack_depth * sizeof( int );
+
+ if ( ! yy_start_stack )
+ yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+ else
+ yy_start_stack = (int *) yy_flex_realloc(
+ (void *) yy_start_stack, new_size );
+
+ if ( ! yy_start_stack )
+ YY_FATAL_ERROR(
+ "out of memory expanding start-condition stack" );
+ }
+
+ yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+ BEGIN(new_state);
+ }
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+ {
+ if ( --yy_start_stack_ptr < 0 )
+ YY_FATAL_ERROR( "start-condition stack underflow" );
+
+ BEGIN(yy_start_stack[yy_start_stack_ptr]);
+ }
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+ {
+ return yy_start_stack[yy_start_stack_ptr - 1];
+ }
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+ {
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+ }
+
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ yytext[yyleng] = yy_hold_char; \
+ yy_c_buf_p = yytext + n; \
+ yy_hold_char = *yy_c_buf_p; \
+ *yy_c_buf_p = '\0'; \
+ yyleng = n; \
+ } \
+ while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+ }
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+ {
+ return (void *) malloc( size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+ {
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+ {
+ free( ptr );
+ }
+
+#if YY_MAIN
+int main()
+ {
+ yylex();
+ return 0;
+ }
+#endif
+#line 89 "testpatternl.l"
diff --git a/src/testpattern/testpatternl.l b/src/testpattern/testpatternl.l
index 164cf3a..b096d4c 100644
--- a/src/testpattern/testpatternl.l
+++ b/src/testpattern/testpatternl.l
@@ -1,5 +1,5 @@
/*
- * "$Id: testpatternl.l,v 1.2 2001/08/14 00:12:58 rlk Exp $"
+ * "$Id: testpatternl.l,v 1.2.6.1 2002/07/23 00:54:08 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -78,6 +78,7 @@ hsize DBG(HSIZE) return HSIZE;
vsize DBG(VSIZE) return VSIZE;
blackline DBG(BLACKLINE) return BLACKLINE;
pattern DBG(PATTERN) return PATTERN;
+image DBG(IMAGE) return IMAGE;
{integer} yylval.ival = atoi(yytext); DBG(tINT) return tINT;
{float} yylval.dval = strtod(yytext, NULL); DBG(tDOUBLE) return tDOUBLE;
diff --git a/src/testpattern/testpatterny.c b/src/testpattern/testpatterny.c
new file mode 100644
index 0000000..c6d3542
--- /dev/null
+++ b/src/testpattern/testpatterny.c
@@ -0,0 +1,1089 @@
+
+/* A Bison parser, made from testpatterny.y
+ by GNU Bison version 1.25
+ */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define tINT 258
+#define tDOUBLE 259
+#define tSTRING 260
+#define C_GAMMA 261
+#define M_GAMMA 262
+#define Y_GAMMA 263
+#define K_GAMMA 264
+#define GAMMA 265
+#define C_LEVEL 266
+#define M_LEVEL 267
+#define Y_LEVEL 268
+#define LEVELS 269
+#define INK_LIMIT 270
+#define INK 271
+#define WIDTH 272
+#define PRINTER 273
+#define INK_TYPE 274
+#define RESOLUTION 275
+#define MEDIA_SOURCE 276
+#define MEDIA_TYPE 277
+#define MEDIA_SIZE 278
+#define DITHER_ALGORITHM 279
+#define DENSITY 280
+#define TOP 281
+#define LEFT 282
+#define HSIZE 283
+#define VSIZE 284
+#define BLACKLINE 285
+#define PATTERN 286
+#define IMAGE 287
+
+#line 23 "testpatterny.y"
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "testpattern.h"
+
+extern int mylineno;
+
+extern int yylex(void);
+char *quotestrip(const char *i);
+char *endstrip(const char *i);
+
+extern int mylineno;
+extern char* yytext;
+
+static int yyerror( const char *s )
+{
+ fprintf(stderr,"stdin:%d: %s before '%s'\n",mylineno,s,yytext);
+ return 0;
+}
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 103
+#define YYFLAG -32768
+#define YYNTBASE 33
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 287 ? yytranslate[x] : 65)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27,
+ 30, 33, 36, 39, 42, 45, 48, 51, 54, 57,
+ 60, 63, 66, 69, 88, 92, 93, 95, 97, 99,
+ 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,
+ 121, 123, 125, 127, 129, 131, 133, 135, 137, 139,
+ 142, 144, 146, 149, 151, 153, 155
+};
+
+static const short yyrhs[] = { 11,
+ 4, 0, 12, 4, 0, 13, 4, 0, 6, 4,
+ 0, 7, 4, 0, 8, 4, 0, 9, 4, 0,
+ 10, 4, 0, 14, 3, 0, 15, 4, 0, 18,
+ 5, 0, 19, 5, 0, 20, 5, 0, 21, 5,
+ 0, 22, 5, 0, 23, 5, 0, 24, 5, 0,
+ 25, 4, 0, 26, 4, 0, 27, 4, 0, 28,
+ 4, 0, 29, 4, 0, 30, 3, 0, 31, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 0, 32, 3, 3,
+ 0, 0, 33, 0, 34, 0, 35, 0, 36, 0,
+ 37, 0, 38, 0, 39, 0, 40, 0, 41, 0,
+ 42, 0, 43, 0, 44, 0, 45, 0, 46, 0,
+ 47, 0, 48, 0, 49, 0, 50, 0, 51, 0,
+ 52, 0, 53, 0, 54, 0, 55, 0, 60, 56,
+ 0, 58, 0, 57, 0, 62, 59, 0, 58, 0,
+ 60, 0, 61, 0, 62, 63, 58, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 87, 90, 93, 96, 99, 102, 105, 108, 111, 114,
+ 117, 120, 123, 126, 129, 132, 135, 138, 141, 144,
+ 147, 150, 153, 157, 183, 197, 199, 199, 199, 200,
+ 200, 200, 200, 201, 201, 201, 201, 201, 201, 202,
+ 202, 202, 202, 202, 203, 203, 203, 203, 203, 205,
+ 205, 207, 209, 209, 211, 211, 213
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","tINT","tDOUBLE",
+"tSTRING","C_GAMMA","M_GAMMA","Y_GAMMA","K_GAMMA","GAMMA","C_LEVEL","M_LEVEL",
+"Y_LEVEL","LEVELS","INK_LIMIT","INK","WIDTH","PRINTER","INK_TYPE","RESOLUTION",
+"MEDIA_SOURCE","MEDIA_TYPE","MEDIA_SIZE","DITHER_ALGORITHM","DENSITY","TOP",
+"LEFT","HSIZE","VSIZE","BLACKLINE","PATTERN","IMAGE","global_c_level","global_m_level",
+"global_y_level","global_c_gamma","global_m_gamma","global_y_gamma","global_k_gamma",
+"global_gamma","levels","ink_limit","printer","ink_type","resolution","media_source",
+"media_type","media_size","dither_algorithm","density","top","left","hsize",
+"vsize","blackline","pattern","image","Empty","Rule","Patterns","Image","Rules",
+"Output","Thing", NULL
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 60,
+ 60, 61, 62, 62, 63, 63, 64
+};
+
+static const short yyr2[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 18, 3, 0, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 1, 1, 2, 1, 1, 1, 3
+};
+
+static const short yydefact[] = { 26,
+ 54, 26, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 52,
+ 51, 53, 55, 56, 26, 4, 5, 6, 7, 8,
+ 1, 2, 3, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 0, 0,
+ 50, 57, 25, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
+ 0, 0, 0
+};
+
+static const short yydefgoto[] = { 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 81, 50, 1, 52, 53, 54, 2, 55,
+ 101
+};
+
+static const short yypact[] = {-32768,
+-32768, -5, 7, 8, 22, 24, 25, 26, 27, 28,
+ 30, 31, 29, 32, 33, 34, 35, 36, 37, 39,
+ 40, 41, 42, 43, 45, 46,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 5,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 47, 48,
+-32768,-32768,-32768, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65,-32768,
+ 70, 71,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, -2,-32768,-32768,-32768,-32768,-32768,
+-32768
+};
+
+
+#define YYLAST 71
+
+
+static const short yytable[] = { 51,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 56, 57, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 58, 26, 59, 60, 61,
+ 62, 63, 64, 66, 65, 80, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 83,
+ 0, 84, 82, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 102,
+ 103
+};
+
+static const short yycheck[] = { 2,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 4, 4, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 4, 32, 4, 4, 4,
+ 4, 4, 3, 5, 4, 31, 5, 5, 5, 5,
+ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3,
+ -1, 4, 55, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
+ 0
+};
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/usr/share/bison.simple"
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+#ifndef alloca
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#include <alloca.h>
+#else /* not sparc */
+#if defined (MSDOS) && !defined (__TURBOC__)
+#include <malloc.h>
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+#include <malloc.h>
+ #pragma alloca
+#else /* not MSDOS, __TURBOC__, or _AIX */
+#ifdef __hpux
+#ifdef __cplusplus
+extern "C" {
+void *alloca (unsigned int);
+};
+#else /* not __cplusplus */
+void *alloca ();
+#endif /* not __cplusplus */
+#endif /* __hpux */
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc. */
+#endif /* not GNU C. */
+#endif /* alloca not defined. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT return(0)
+#define YYABORT return(1)
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+#ifndef YYPARSE_RETURN_TYPE
+#define YYPARSE_RETURN_TYPE int
+#endif
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+YYPARSE_RETURN_TYPE yyparse (void);
+#endif
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, int count)
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 196 "/usr/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+YYPARSE_RETURN_TYPE
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+ yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
+ yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 1:
+#line 88 "testpatterny.y"
+{ global_c_level = yyvsp[0].dval; ;
+ break;}
+case 2:
+#line 91 "testpatterny.y"
+{ global_m_level = yyvsp[0].dval; ;
+ break;}
+case 3:
+#line 94 "testpatterny.y"
+{ global_y_level = yyvsp[0].dval; ;
+ break;}
+case 4:
+#line 97 "testpatterny.y"
+{ global_c_gamma = yyvsp[0].dval; ;
+ break;}
+case 5:
+#line 100 "testpatterny.y"
+{ global_m_gamma = yyvsp[0].dval; ;
+ break;}
+case 6:
+#line 103 "testpatterny.y"
+{ global_y_gamma = yyvsp[0].dval; ;
+ break;}
+case 7:
+#line 106 "testpatterny.y"
+{ global_k_gamma = yyvsp[0].dval; ;
+ break;}
+case 8:
+#line 109 "testpatterny.y"
+{ global_gamma = yyvsp[0].dval; ;
+ break;}
+case 9:
+#line 112 "testpatterny.y"
+{ levels = yyvsp[0].ival; ;
+ break;}
+case 10:
+#line 115 "testpatterny.y"
+{ ink_limit = yyvsp[0].dval; ;
+ break;}
+case 11:
+#line 118 "testpatterny.y"
+{ printer = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 12:
+#line 121 "testpatterny.y"
+{ ink_type = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 13:
+#line 124 "testpatterny.y"
+{ resolution = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 14:
+#line 127 "testpatterny.y"
+{ media_source = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 15:
+#line 130 "testpatterny.y"
+{ media_type = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 16:
+#line 133 "testpatterny.y"
+{ media_size = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 17:
+#line 136 "testpatterny.y"
+{ dither_algorithm = c_strdup(yyvsp[0].sval); ;
+ break;}
+case 18:
+#line 139 "testpatterny.y"
+{ density = yyvsp[0].dval; ;
+ break;}
+case 19:
+#line 142 "testpatterny.y"
+{ xtop = yyvsp[0].dval; ;
+ break;}
+case 20:
+#line 145 "testpatterny.y"
+{ xleft = yyvsp[0].dval; ;
+ break;}
+case 21:
+#line 148 "testpatterny.y"
+{ hsize = yyvsp[0].dval; ;
+ break;}
+case 22:
+#line 151 "testpatterny.y"
+{ vsize = yyvsp[0].dval; ;
+ break;}
+case 23:
+#line 154 "testpatterny.y"
+{ noblackline = !(yyvsp[0].ival); ;
+ break;}
+case 24:
+#line 160 "testpatterny.y"
+{
+ testpattern_t *t = get_next_testpattern();
+ t->t = E_PATTERN;
+ t->d.p.c_min = yyvsp[-16].dval;
+ t->d.p.c = yyvsp[-15].dval;
+ t->d.p.c_gamma = yyvsp[-14].dval;
+ t->d.p.m_min = yyvsp[-13].dval;
+ t->d.p.m = yyvsp[-12].dval;
+ t->d.p.m_gamma = yyvsp[-11].dval;
+ t->d.p.y_min = yyvsp[-10].dval;
+ t->d.p.y = yyvsp[-9].dval;
+ t->d.p.y_gamma = yyvsp[-8].dval;
+ t->d.p.k_min = yyvsp[-7].dval;
+ t->d.p.k = yyvsp[-6].dval;
+ t->d.p.k_gamma = yyvsp[-5].dval;
+ t->d.p.c_level = yyvsp[-4].dval;
+ t->d.p.m_level = yyvsp[-3].dval;
+ t->d.p.y_level = yyvsp[-2].dval;
+ t->d.p.lower = yyvsp[-1].dval;
+ t->d.p.upper = yyvsp[0].dval;
+ ;
+ break;}
+case 25:
+#line 184 "testpatterny.y"
+{
+ testpattern_t *t = get_next_testpattern();
+ t->t = E_IMAGE;
+ t->d.i.x = yyvsp[-1].ival;
+ t->d.i.y = yyvsp[0].ival;
+ if (t->d.i.x <= 0 || t->d.i.y <= 0)
+ {
+ fprintf(stderr, "image width and height must be greater than zero\n");
+ exit(1);
+ }
+ return 0;
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 498 "/usr/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+}
+#line 215 "testpatterny.y"
+
diff --git a/src/testpattern/testpatterny.h b/src/testpattern/testpatterny.h
new file mode 100644
index 0000000..710b310
--- /dev/null
+++ b/src/testpattern/testpatterny.h
@@ -0,0 +1,33 @@
+#define tINT 258
+#define tDOUBLE 259
+#define tSTRING 260
+#define C_GAMMA 261
+#define M_GAMMA 262
+#define Y_GAMMA 263
+#define K_GAMMA 264
+#define GAMMA 265
+#define C_LEVEL 266
+#define M_LEVEL 267
+#define Y_LEVEL 268
+#define LEVELS 269
+#define INK_LIMIT 270
+#define INK 271
+#define WIDTH 272
+#define PRINTER 273
+#define INK_TYPE 274
+#define RESOLUTION 275
+#define MEDIA_SOURCE 276
+#define MEDIA_TYPE 277
+#define MEDIA_SIZE 278
+#define DITHER_ALGORITHM 279
+#define DENSITY 280
+#define TOP 281
+#define LEFT 282
+#define HSIZE 283
+#define VSIZE 284
+#define BLACKLINE 285
+#define PATTERN 286
+#define IMAGE 287
+
+
+extern YYSTYPE yylval;
diff --git a/src/testpattern/testpatterny.y b/src/testpattern/testpatterny.y
index f5dc681..36bb996 100644
--- a/src/testpattern/testpatterny.y
+++ b/src/testpattern/testpatterny.y
@@ -1,5 +1,5 @@
/*
- * "$Id: testpatterny.y,v 1.3 2001/10/27 17:16:39 rlk Exp $"
+ * "$Id: testpatterny.y,v 1.3.2.1 2002/07/23 00:54:08 rlk Exp $"
*
* Test pattern generator for Gimp-Print
*
@@ -34,7 +34,6 @@
extern int mylineno;
extern int yylex(void);
-int yyerror(const char *s);
char *quotestrip(const char *i);
char *endstrip(const char *i);
@@ -79,8 +78,9 @@ static int yyerror( const char *s )
%token VSIZE
%token BLACKLINE
%token PATTERN
+%token IMAGE
-%start Rules
+%start Thing
%%
@@ -159,34 +159,57 @@ pattern: PATTERN tDOUBLE tDOUBLE tDOUBLE tDOUBLE tDOUBLE tDOUBLE tDOUBLE
tDOUBLE tDOUBLE
{
testpattern_t *t = get_next_testpattern();
- t->c_min = $2;
- t->c = $3;
- t->c_gamma = $4;
- t->m_min = $5;
- t->m = $6;
- t->m_gamma = $7;
- t->y_min = $8;
- t->y = $9;
- t->y_gamma = $10;
- t->k_min = $11;
- t->k = $12;
- t->k_gamma = $13;
- t->c_level = $14;
- t->m_level = $15;
- t->y_level = $16;
- t->lower = $17;
- t->upper = $18;
+ t->t = E_PATTERN;
+ t->d.p.c_min = $2;
+ t->d.p.c = $3;
+ t->d.p.c_gamma = $4;
+ t->d.p.m_min = $5;
+ t->d.p.m = $6;
+ t->d.p.m_gamma = $7;
+ t->d.p.y_min = $8;
+ t->d.p.y = $9;
+ t->d.p.y_gamma = $10;
+ t->d.p.k_min = $11;
+ t->d.p.k = $12;
+ t->d.p.k_gamma = $13;
+ t->d.p.c_level = $14;
+ t->d.p.m_level = $15;
+ t->d.p.y_level = $16;
+ t->d.p.lower = $17;
+ t->d.p.upper = $18;
}
;
+image: IMAGE tINT tINT
+ {
+ testpattern_t *t = get_next_testpattern();
+ t->t = E_IMAGE;
+ t->d.i.x = $2;
+ t->d.i.y = $3;
+ if (t->d.i.x <= 0 || t->d.i.y <= 0)
+ {
+ fprintf(stderr, "image width and height must be greater than zero\n");
+ exit(1);
+ }
+ return 0;
+ }
+
Empty:
Rule: global_c_level | global_m_level | global_y_level
| global_c_gamma | global_m_gamma | global_y_gamma | global_k_gamma
| global_gamma | levels | ink_limit | printer | ink_type | resolution
| media_source | media_type | media_size | dither_algorithm | density
- | top | left | hsize | vsize | blackline | pattern
+ | top | left | hsize | vsize | blackline
+
+Patterns: Patterns pattern | Empty
+
+Image: image
Rules: Rules Rule | Empty
+Output: Patterns | Image
+
+Thing: Rules Output Empty
+
%%
diff --git a/stamp-h.in b/stamp-h.in
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/stamp-h.in
@@ -0,0 +1 @@
+timestamp
diff --git a/test/.cvsignore b/test/.cvsignore
deleted file mode 100644
index 7c679da..0000000
--- a/test/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-escp2-weavetest
-printer_options
-unprint
-escp2-unprint
-pcl-unprint
-bjc-unprint
-testdither
-mixed-color-1bit.ppm
diff --git a/test/Makefile.am b/test/Makefile.am
index 969f7d9..ce13935 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.30 2001/11/10 14:42:43 rlk Exp $
+## $Id: Makefile.am,v 1.30.2.4 2002/06/05 23:52:05 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -28,31 +28,33 @@ MAINT_CHARSET = latin1
AM_CFLAGS = $(GNUCFLAGS)
INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS) -I$(top_srcdir)/src/main
-LIBS = @LIBS@ ../lib/libprintut.la $(INTLLIBS) ../lib/libprintut.la
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
-TESTS = testdither run-weavetest
+TESTS = run-testdither run-weavetest
## Programs
-TEST_BIN = testdither escp2-weavetest unprint pcl-unprint bjc-unprint
-noinst_PROGRAMS = @TEST_BIN@
-EXTRA_PROGRAMS = escp2-weavetest unprint pcl-unprint bjc-unprint testdither
+if BUILD_TEST
+noinst_PROGRAMS = testdither escp2-weavetest unprint pcl-unprint bjc-unprint
+endif
escp2_weavetest_SOURCES = escp2-weavetest.c
-
-escp2_weavetest.o: escp2_weavetest.c
-escp2_weavetest_LDADD = $(LIBGIMPPRINT_LIBS)
+escp2_weavetest_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
escp2_weavetest_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
unprint_SOURCES = unprint.c
+unprint_LDADD = $(LIBPRINTUT)
pcl_unprint_SOURCES = pcl-unprint.c
+pcl_unprint_LDADD = $(LIBPRINTUT)
bjc_unprint_SOURCES = bjc-unprint.c
+bjc_unprint_LDADD = $(LIBPRINTUT)
testdither_SOURCES = testdither.c
-testdither_LDADD = $(LIBGIMPPRINT_LIBS)
+testdither_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
testdither_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
$(LIBGIMPPRINT_LIBS):
@@ -67,7 +69,7 @@ $(LIBGIMPPRINT_LIBS):
## Clean
-CLEANFILES = $(EXTRA_PROGRAMS) mixed-color-1bit.ppm
+CLEANFILES = mixed-color-1bit.ppm
MAINTAINERCLEANFILES = Makefile.in
-EXTRA_DIST = cyan-sweep.tif parse-escp2 run-weavetest
+EXTRA_DIST = cyan-sweep.tif parse-escp2 run-weavetest run-testdither
diff --git a/test/Makefile.in b/test/Makefile.in
new file mode 100644
index 0000000..4bc5c2a
--- /dev/null
+++ b/test/Makefile.in
@@ -0,0 +1,517 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+ALL_LINGUAS = @ALL_LINGUAS@
+AS = @AS@
+AWK = @AWK@
+BISON_PROG = @BISON_PROG@
+BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CONVERT = @CONVERT@
+CUPS_BACKEND_BIN = @CUPS_BACKEND_BIN@
+CUPS_BIN = @CUPS_BIN@
+CUPS_CFLAGS = @CUPS_CFLAGS@
+CUPS_CONF = @CUPS_CONF@
+CUPS_CONFIG = @CUPS_CONFIG@
+CUPS_FILTER_BIN = @CUPS_FILTER_BIN@
+CUPS_INSTALL = @CUPS_INSTALL@
+CUPS_LIBS = @CUPS_LIBS@
+CUPS_MAN = @CUPS_MAN@
+CUPS_NOINST_BIN = @CUPS_NOINST_BIN@
+CUPS_PKG = @CUPS_PKG@
+CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
+DATADIRNAME = @DATADIRNAME@
+DB2HTML = @DB2HTML@
+DB2PDF = @DB2PDF@
+DB2PS = @DB2PS@
+DLLTOOL = @DLLTOOL@
+DVIPDF = @DVIPDF@
+DVIPS = @DVIPS@
+ECHO = @ECHO@
+ESCPUTIL_BIN = @ESCPUTIL_BIN@
+ESCPUTIL_MAN = @ESCPUTIL_MAN@
+EXEEXT = @EXEEXT@
+FOOMATIC_3_NOINST_BIN = @FOOMATIC_3_NOINST_BIN@
+FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
+FOOMATIC_INSTALL = @FOOMATIC_INSTALL@
+FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
+FOOMATIC_NOINST_BIN = @FOOMATIC_NOINST_BIN@
+FOOMATIC_OLDIDS_NOINST_BIN = @FOOMATIC_OLDIDS_NOINST_BIN@
+FOOMATIC_PPDFILE = @FOOMATIC_PPDFILE@
+GENCAT = @GENCAT@
+GIMPPRINT_BINARY_AGE = @GIMPPRINT_BINARY_AGE@
+GIMPPRINT_CFLAGS = @GIMPPRINT_CFLAGS@
+GIMPPRINT_CURRENT_INTERFACE = @GIMPPRINT_CURRENT_INTERFACE@
+GIMPPRINT_DEPLIBS = @GIMPPRINT_DEPLIBS@
+GIMPPRINT_INTERFACE_AGE = @GIMPPRINT_INTERFACE_AGE@
+GIMPPRINT_LIBS = @GIMPPRINT_LIBS@
+GIMPPRINT_MAJOR_VERSION = @GIMPPRINT_MAJOR_VERSION@
+GIMPPRINT_MICRO_VERSION = @GIMPPRINT_MICRO_VERSION@
+GIMPPRINT_MINOR_VERSION = @GIMPPRINT_MINOR_VERSION@
+GIMPPRINT_VERSION = @GIMPPRINT_VERSION@
+GIMPTOOL = @GIMPTOOL@
+GIMPTOOL_CHECK = @GIMPTOOL_CHECK@
+GIMP_BIN = @GIMP_BIN@
+GIMP_CFLAGS = @GIMP_CFLAGS@
+GIMP_CFLAGS_NOUI = @GIMP_CFLAGS_NOUI@
+GIMP_DATA_DIR = @GIMP_DATA_DIR@
+GIMP_LIBS = @GIMP_LIBS@
+GIMP_LIBS_NOUI = @GIMP_LIBS_NOUI@
+GIMP_PLUGIN_DIR = @GIMP_PLUGIN_DIR@
+GLIBC21 = @GLIBC21@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUCFLAGS = @GNUCFLAGS@
+IJS_BIN = @IJS_BIN@
+IJS_CFLAGS = @IJS_CFLAGS@
+IJS_CONFIG = @IJS_CONFIG@
+IJS_INSTALL = @IJS_INSTALL@
+IJS_LIBS = @IJS_LIBS@
+INSTOBJEXT = @INSTOBJEXT@
+INTLBISON = @INTLBISON@
+INTLLIBS = @INTLLIBS@
+INTLOBJS = @INTLOBJS@
+INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
+LEX = @LEX@
+LIBGIMPPRINT_LIBS = @LIBGIMPPRINT_LIBS@
+LIBICONV = @LIBICONV@
+LIBM = @LIBM@
+LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LN_S = @LN_S@
+LTALLOCA = @LTALLOCA@
+LTLIBOBJS = @LTLIBOBJS@
+LT_AGE = @LT_AGE@
+LT_CURRENT = @LT_CURRENT@
+LT_RELEASE = @LT_RELEASE@
+LT_REVISION = @LT_REVISION@
+MAINT = @MAINT@
+MAINTAINER_CFLAGS = @MAINTAINER_CFLAGS@
+MAIN_BIN = @MAIN_BIN@
+MAIN_DAT = @MAIN_DAT@
+MAIN_MAN = @MAIN_MAN@
+MAIN_SCR = @MAIN_SCR@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PLUG_IN_PATH = @PLUG_IN_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PRINT_VASPRINTF = @PRINT_VASPRINTF@
+RANLIB = @RANLIB@
+RELEASE_DATE = @RELEASE_DATE@
+RM = @RM@
+SAMPLE_IMAGES = @SAMPLE_IMAGES@
+STRIP = @STRIP@
+TESTPATTERN_BIN = @TESTPATTERN_BIN@
+TEST_BIN = @TEST_BIN@
+TEXI2HTML = @TEXI2HTML@
+USER_GUIDE = @USER_GUIDE@
+USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+YACC = @YACC@
+YACC_PROG = @YACC_PROG@
+cups_bindir = @cups_bindir@
+cups_conf_datadir = @cups_conf_datadir@
+cups_conf_serverbin = @cups_conf_serverbin@
+cups_conf_serverroot = @cups_conf_serverroot@
+cups_exec_prefix = @cups_exec_prefix@
+cups_prefix = @cups_prefix@
+gimp_plug_indir = @gimp_plug_indir@
+gimpprint_cflags = @gimpprint_cflags@
+gimpprint_libs = @gimpprint_libs@
+
+AUTOMAKE_OPTIONS = 1.4 gnu
+
+MAINT_CHARSET = latin1
+
+AM_CFLAGS = $(GNUCFLAGS)
+INCLUDES = @INCLUDES@ $(LIBGIMPPRINT_CFLAGS) -I$(top_srcdir)/src/main
+LIBPRINTUT = $(top_builddir)/lib/libprintut.la
+LIBS = $(INTLLIBS) @LIBS@
+
+TESTS = run-testdither run-weavetest
+
+@BUILD_TEST_TRUE@noinst_PROGRAMS = testdither escp2-weavetest unprint pcl-unprint bjc-unprint
+
+escp2_weavetest_SOURCES = escp2-weavetest.c
+escp2_weavetest_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+escp2_weavetest_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+unprint_SOURCES = unprint.c
+unprint_LDADD = $(LIBPRINTUT)
+
+pcl_unprint_SOURCES = pcl-unprint.c
+pcl_unprint_LDADD = $(LIBPRINTUT)
+
+bjc_unprint_SOURCES = bjc-unprint.c
+bjc_unprint_LDADD = $(LIBPRINTUT)
+
+testdither_SOURCES = testdither.c
+testdither_LDADD = $(LIBPRINTUT) $(LIBGIMPPRINT_LIBS)
+testdither_DEPENDENCIES = $(LIBGIMPPRINT_LIBS)
+
+#run-weavetest: escp2-weavetest
+
+CLEANFILES = mixed-color-1bit.ppm
+MAINTAINERCLEANFILES = Makefile.in
+
+EXTRA_DIST = cyan-sweep.tif parse-escp2 run-weavetest run-testdither
+mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES =
+@BUILD_TEST_TRUE@noinst_PROGRAMS = testdither$(EXEEXT) \
+@BUILD_TEST_TRUE@escp2-weavetest$(EXEEXT) unprint$(EXEEXT) \
+@BUILD_TEST_TRUE@pcl-unprint$(EXEEXT) bjc-unprint$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) -I..
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+testdither_OBJECTS = testdither.$(OBJEXT)
+testdither_LDFLAGS =
+escp2_weavetest_OBJECTS = escp2-weavetest.$(OBJEXT)
+escp2_weavetest_LDFLAGS =
+unprint_OBJECTS = unprint.$(OBJEXT)
+unprint_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+unprint_LDFLAGS =
+pcl_unprint_OBJECTS = pcl-unprint.$(OBJEXT)
+pcl_unprint_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+pcl_unprint_LDFLAGS =
+bjc_unprint_OBJECTS = bjc-unprint.$(OBJEXT)
+bjc_unprint_DEPENDENCIES = $(top_builddir)/lib/libprintut.la
+bjc_unprint_LDFLAGS =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON = Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(testdither_SOURCES) $(escp2_weavetest_SOURCES) $(unprint_SOURCES) $(pcl_unprint_SOURCES) $(bjc_unprint_SOURCES)
+OBJECTS = $(testdither_OBJECTS) $(escp2_weavetest_OBJECTS) $(unprint_OBJECTS) $(pcl_unprint_OBJECTS) $(bjc_unprint_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps test/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstPROGRAMS:
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+distclean-noinstPROGRAMS:
+
+maintainer-clean-noinstPROGRAMS:
+
+.c.o:
+ $(COMPILE) -c $<
+
+# FIXME: We should only use cygpath when building on Windows,
+# and only if it is available.
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+.s.o:
+ $(COMPILE) -c $<
+
+.S.o:
+ $(COMPILE) -c $<
+
+mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+clean-compile:
+
+distclean-compile:
+ -rm -f *.tab.c
+
+maintainer-clean-compile:
+
+.c.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.s.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+.S.lo:
+ $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+
+maintainer-clean-libtool:
+
+testdither$(EXEEXT): $(testdither_OBJECTS) $(testdither_DEPENDENCIES)
+ @rm -f testdither$(EXEEXT)
+ $(LINK) $(testdither_LDFLAGS) $(testdither_OBJECTS) $(testdither_LDADD) $(LIBS)
+
+escp2-weavetest$(EXEEXT): $(escp2_weavetest_OBJECTS) $(escp2_weavetest_DEPENDENCIES)
+ @rm -f escp2-weavetest$(EXEEXT)
+ $(LINK) $(escp2_weavetest_LDFLAGS) $(escp2_weavetest_OBJECTS) $(escp2_weavetest_LDADD) $(LIBS)
+
+unprint$(EXEEXT): $(unprint_OBJECTS) $(unprint_DEPENDENCIES)
+ @rm -f unprint$(EXEEXT)
+ $(LINK) $(unprint_LDFLAGS) $(unprint_OBJECTS) $(unprint_LDADD) $(LIBS)
+
+pcl-unprint$(EXEEXT): $(pcl_unprint_OBJECTS) $(pcl_unprint_DEPENDENCIES)
+ @rm -f pcl-unprint$(EXEEXT)
+ $(LINK) $(pcl_unprint_LDFLAGS) $(pcl_unprint_OBJECTS) $(pcl_unprint_LDADD) $(LIBS)
+
+bjc-unprint$(EXEEXT): $(bjc_unprint_OBJECTS) $(bjc_unprint_DEPENDENCIES)
+ @rm -f bjc-unprint$(EXEEXT)
+ $(LINK) $(bjc_unprint_LDFLAGS) $(bjc_unprint_OBJECTS) $(bjc_unprint_LDADD) $(LIBS)
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+ -rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = test
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+bjc-unprint.o: bjc-unprint.c ../config.h ../lib/libprintut.h \
+ ../lib/xmalloc.h
+escp2-weavetest.o: escp2-weavetest.c ../config.h ../lib/libprintut.h \
+ ../lib/xmalloc.h ../include/gimp-print/gimp-print.h \
+ ../src/main/gimp-print-internal.h
+pcl-unprint.o: pcl-unprint.c ../config.h ../lib/libprintut.h \
+ ../lib/xmalloc.h
+testdither.o: testdither.c ../config.h \
+ ../include/gimp-print/gimp-print.h ../lib/libprintut.h \
+ ../lib/xmalloc.h ../src/main/gimp-print-internal.h
+unprint.o: unprint.c ../config.h ../lib/libprintut.h ../lib/xmalloc.h
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; \
+ srcdir=$(srcdir); export srcdir; \
+ for tst in $(TESTS); do \
+ if test -f $$tst; then dir=.; \
+ else dir="$(srcdir)"; fi; \
+ if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
+ all=`expr $$all + 1`; \
+ echo "PASS: $$tst"; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ failed=`expr $$failed + 1`; \
+ echo "FAIL: $$tst"; \
+ fi; \
+ done; \
+ if test "$$failed" -eq 0; then \
+ banner="All $$all tests passed"; \
+ else \
+ banner="$$failed of $$all tests failed"; \
+ fi; \
+ dashes=`echo "$$banner" | sed s/./=/g`; \
+ echo "$$dashes"; \
+ echo "$$banner"; \
+ echo "$$dashes"; \
+ test "$$failed" -eq 0
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(PROGRAMS)
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \
+ mostlyclean-libtool mostlyclean-tags \
+ mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
+ clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-noinstPROGRAMS distclean-compile \
+ distclean-libtool distclean-tags distclean-generic \
+ clean-am
+ -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-noinstPROGRAMS \
+ maintainer-clean-compile maintainer-clean-libtool \
+ maintainer-clean-tags maintainer-clean-generic \
+ distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir check-TESTS \
+info-am info dvi-am dvi check check-am installcheck-am installcheck \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+@SET_MAKE@
+
+$(LIBGIMPPRINT_LIBS):
+ cd ../src/main ; \
+ $(MAKE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/test/escp2-weavetest.c b/test/escp2-weavetest.c
index a12b62e..9ac8532 100644
--- a/test/escp2-weavetest.c
+++ b/test/escp2-weavetest.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escp2-weavetest.c,v 1.19 2001/09/02 13:30:27 rlk Exp $"
+ * "$Id: escp2-weavetest.c,v 1.19.4.2 2002/07/23 00:54:08 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -163,10 +163,11 @@ run_one_weavetest(int physjets, int physsep, int hpasses, int vpasses,
head_offset[0] = (physjets+1)*physsep;
head_offset[1] = (physjets+1)*physsep;
head_offset[2] = 2*(physjets+1)*physsep;
+ phys_lines += 2*(physjets+1)*physsep;
}
sw = stp_initialize_weave(physjets, physsep, hpasses, vpasses, subpasses,
- 1, 1, 128, nrows, 1, first_line,
+ 7, 1, 128, nrows, first_line,
phys_lines, strategy, head_offset, v, flush_pass,
stp_fill_tiff, stp_pack_tiff,
stp_compute_tiff_linewidth);
diff --git a/test/parse-bjc b/test/parse-bjc
deleted file mode 100755
index 48ce80c..0000000
--- a/test/parse-bjc
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/perl
-
-while (<>) {
- $stuff .= $_;
-}
-
-$OFFS=$ENV{"OFFS"};
-$GRX=$ENV{"GRX"};
-
-%seqtable = ( "@", 0,
- "\x0d", 0,
- "[K", 4,
- "(a", "VARIABLE",
- "(b", "VARIABLE",
- "(c", "VARIABLE",
- "(d", "VARIABLE",
- "(e", "GRAPHICS",
- "(l", "VARIABLE",
- "(m", "VARIABLE",
- "(p", "VARIABLE",
- "(q", "VARIABLE",
- "(r", "VARIABLE",
- "(t", "VARIABLE",
- "(A", "GRAPHICS",
- "\\", 2,
- "\$", 2,
- "(\\", "VARIABLE",
- "(C", "VARIABLE",
- ".", "SPECIAL",
- "i", "SPECIAL1"
- );
-
-$esc = "\033";
-
-$skipcount = 0;
-$curpos = 0;
-$verbose = 1;
-
-while ($stuff ne "") {
- if ($stuff=~ s/^(BJLSTART.+BJLEND?)//sm) {
-
- printf "\n$1";
- $curpos+= length($1);
-
- } elsif (substr($stuff, 0, 1) eq "\xa") {
-
- print "<a";
- $curpos++;
- substr($stuff, 0, 1) = "";
-
- } elsif (substr($stuff, 0, 1) eq "\xd") {
-
- print "<d" if ($GRX);
- $curpos++;
- substr($stuff, 0, 1) = "";
-
- } elsif (substr($stuff, 0, 1) eq "$esc") {
-
- $found = 0;
- foreach $key (keys %seqtable) {
- if (substr($stuff, 1, length $key) eq $key) {
- $skipchars = $seqtable{$key};
- if ($skipchars eq "GRAPHICS") {
- if ($GRX) {
- print "\n";
- printf "%08x ", $curpos if ($OFFS);
- print "1b ";
- }
- $startoff = 0;
- $lchar = substr($stuff, (length $key) + 1, 1);
- $nlchar = unpack("C", $lchar);
- $hchar = substr($stuff, (length $key) + 2, 1);
- $nhchar = unpack("C", $hchar);
- $skipchars = ($nhchar * 256) + $nlchar;
- $startoff = 2;
-
- if ($GRX) {
- for ($i = 0;
- $i < $skipchars + (length $key) + $startoff;
- $i++) {
- $char = substr($stuff, $i + 1, 1);
- $nchar = unpack("C", $char);
- if ($i < 2 && $nchar >= 32 && $nchar < 127) {
- print "$char ";
- } elsif ($i==4 && $nchar >= 32 && $nchar < 127) {
- print "$char$char ";
- } else {
- printf "%02x ", unpack("C", $char);
- }
- }
- }
- $found = 1;
- } else {
- print "\n";
- printf "%08x ", $curpos if ($OFFS);
- print "1b ";
- $startoff = 0;
- if ($skipchars eq "VARIABLE") {
- $lchar = substr($stuff, (length $key) + 1, 1);
- $nlchar = unpack("C", $lchar);
- $hchar = substr($stuff, (length $key) + 2, 1);
- $nhchar = unpack("C", $hchar);
- $skipchars = ($nhchar * 256) + $nlchar;
- $startoff = 2;
- }
- for ($i = 0;
- $i < $skipchars + (length $key) + $startoff;
- $i++) {
- $char = substr($stuff, $i + 1, 1);
- $nchar = unpack("C", $char);
- if ($i < 2 && $nchar >= 32 && $nchar < 127) {
- print "$char ";
- } else {
- printf "%02x ", unpack("C", $char);
- }
- }
- $found = 1;
- }
- $bytes = length($key) + 1 + $skipchars + $startoff;
- last;
- }
- }
- if (! $found) {
- print "\n";
- printf "%08x ", $curpos if ($OFFS);
- print "1b ";
- substr($stuff, 0, 1) = "";
- $curpos += 1;
- } elsif ($found == 1) {
- substr($stuff, 0, $bytes) = "";
- $curpos += $bytes;
- } else {
- }
- } else {
- $char = substr($stuff, 0, 1);
- $nchar = unpack("C", $char);
- if ($nchar >= 32 && $nchar < 127) {
- print "*$char ";
- } else {
- printf "*%02x ", unpack("C", $char);
- }
- $curpos++;
- substr($stuff, 0, 1) = "";
- }
-}
diff --git a/test/parse-escp2 b/test/parse-escp2
index 40163eb..50f2c14 100755
--- a/test/parse-escp2
+++ b/test/parse-escp2
@@ -55,6 +55,7 @@ sub do_remote_command {
while (substr($stuff, 0, 2) =~ /[A-Z0-9][A-Z0-9]/) {
print "\n";
printf "%08x ", $curpos;
+ my ($cmd) = substr($stuff, 0, 2);
print substr($stuff, 0, 2);
substr($stuff, 0, 2) = "";
$curpos += 2;
@@ -62,7 +63,11 @@ sub do_remote_command {
$nlchar = unpack("C", $lchar);
$hchar = substr($stuff, 1, 1);
$nhchar = unpack("C", $hchar);
- $skipchars = ($nhchar * 256) + $nlchar;
+ if ($cmd eq "DF") {
+ $skipchars = 0;
+ } else {
+ $skipchars = ($nhchar * 256) + $nlchar;
+ }
printf "%02x %02x ", $nlchar, $nhchar;
substr($stuff, 0, 2) = "";
$curpos += 2;
diff --git a/test/pcl-unprint.c b/test/pcl-unprint.c
index 387a6f3..ed1f388 100644
--- a/test/pcl-unprint.c
+++ b/test/pcl-unprint.c
@@ -1,5 +1,5 @@
/*
- * "$Id: pcl-unprint.c,v 1.5 2001/06/03 20:53:24 rlk Exp $"
+ * "$Id: pcl-unprint.c,v 1.5.6.2 2003/01/17 11:15:58 davehill Exp $"
*
* pclunprint.c - convert an HP PCL file into an image file for viewing.
*
@@ -33,7 +33,12 @@
#include<ctype.h>
#include<string.h>
-static const char *id="@(#) $Id: pcl-unprint.c,v 1.5 2001/06/03 20:53:24 rlk Exp $";
+static const char *id="@(#) $Id: pcl-unprint.c,v 1.5.6.2 2003/01/17 11:15:58 davehill Exp $";
+
+/*
+ * Size of buffer used to read file
+ */
+#define READ_SIZE 1024
/*
* Largest data attached to a command. 1024 means that we can have up to 8192
@@ -42,7 +47,7 @@ static const char *id="@(#) $Id: pcl-unprint.c,v 1.5 2001/06/03 20:53:24 rlk Exp
#define MAX_DATA 1024
FILE *read_fd,*write_fd;
-char read_buffer[1024];
+char read_buffer[READ_SIZE];
char data_buffer[MAX_DATA];
char initial_command[3];
int initial_command_index;
@@ -88,6 +93,7 @@ typedef struct {
int lcyan_data_rows_per_row;
char **lmagenta_bufs;
int lmagenta_data_rows_per_row;
+ int buffer_length;
int active_height; /* Height of output data */
int output_depth;
} output_t;
@@ -124,11 +130,11 @@ typedef struct {
#define PCL_RASTER_HEIGHT 17
#define PCL_START_RASTER 18
#define PCL_END_RASTER 19
-#define PCL_END_RASTER_NEW 20
+#define PCL_END_COLOUR_RASTER 20
#define PCL_DATA 21
#define PCL_DATA_LAST 22
#define PCL_PRINT_QUALITY 23
-#define PCL_PJL_COMMAND 24
+#define PCL_ENTER_PJL 24
#define PCL_GRAY_BALANCE 25
#define PCL_DRIVER_CONFIG 26
#define PCL_PAGE_ORIENTATION 27
@@ -137,6 +143,16 @@ typedef struct {
#define PCL_UNIT_OF_MEASURE 30
#define PCL_RELATIVE_VERTICAL_PIXEL_MOVEMENT 31
#define PCL_PALETTE_CONFIGURATION 32
+#define PCL_LPI 33
+#define PCL_CPI 34
+#define PCL_PAGE_LENGTH 35
+#define PCL_NUM_COPIES 36
+#define PCL_DUPLEX 37
+#define PCL_MEDIA_SIDE 38
+#define RTL_CONFIGURE 39
+#define PCL_ENTER_PCL 40
+#define PCL_ENTER_HPGL2 41
+#define PCL_NEGATIVE_MOTION 42
typedef struct {
const char initial_command[3]; /* First part of command */
@@ -150,18 +166,28 @@ const commands_t pcl_commands[] =
{
/* Two-character sequences ESC <x> */
{ "E", '\0', 0, PCL_RESET, "PCL RESET" },
- { "%", '\0', 0, PCL_PJL_COMMAND, "PJL Command" }, /* Special! */
+ { "%", 'A', 0, PCL_ENTER_PCL, "PCL mode" },
+ { "%", 'B', 0, PCL_ENTER_HPGL2, "HPGL/2 mode" },
+ { "%", 'X', 0, PCL_ENTER_PJL, "PJL mode" },
/* Parameterised sequences */
/* Raster positioning */
+ { "&a", 'G', 0, PCL_MEDIA_SIDE, "Set Media Side" },
{ "&a", 'H', 0, PCL_LEFTRASTER_POS, "Left Raster Position" },
+ { "&a", 'N', 0, PCL_NEGATIVE_MOTION, "Negative Motion" },
{ "&a", 'V', 0, PCL_TOPRASTER_POS, "Top Raster Position" },
+/* Characters */
+ { "&k", 'H', 0, PCL_CPI, "Characters per Inch" },
/* Media */
{ "&l", 'A', 0, PCL_MEDIA_SIZE , "Media Size" },
+ { "&l", 'D', 0, PCL_LPI , "Lines per Inch" },
{ "&l", 'E', 0, PCL_TOP_MARGIN , "Top Margin" },
{ "&l", 'H', 0, PCL_MEDIA_SOURCE, "Media Source" },
{ "&l", 'L', 0, PCL_PERF_SKIP , "Perf. Skip" },
{ "&l", 'M', 0, PCL_MEDIA_TYPE , "Media Type" },
{ "&l", 'O', 0, PCL_PAGE_ORIENTATION, "Page Orientation" },
+ { "&l", 'P', 0, PCL_PAGE_LENGTH, "Page Length in Lines" },
+ { "&l", 'S', 0, PCL_DUPLEX, "Duplex mode" },
+ { "&l", 'X', 0, PCL_NUM_COPIES, "Number of copies" },
/* Units */
{ "&u", 'D', 0, PCL_UNIT_OF_MEASURE, "Unit of Measure" }, /* from bpd05446 */
/* Raster data */
@@ -185,13 +211,15 @@ const commands_t pcl_commands[] =
/* Raster graphics */
{ "*r", 'A', 0, PCL_START_RASTER, "Start Raster Graphics" },
{ "*r", 'B', 0, PCL_END_RASTER, "End Raster Graphics"},
- { "*r", 'C', 0, PCL_END_RASTER_NEW, "End Raster Graphics" },
+ { "*r", 'C', 0, PCL_END_COLOUR_RASTER, "End Colour Raster Graphics" },
{ "*r", 'Q', 0, PCL_RASTERGRAPHICS_QUALITY, "Raster Graphics Quality" },
{ "*r", 'S', 0, PCL_RASTER_WIDTH, "Raster Width" },
{ "*r", 'T', 0, PCL_RASTER_HEIGHT, "Raster Height" },
{ "*r", 'U', 0, PCL_COLOURTYPE, "Colour Type" },
/* Resolution */
{ "*t", 'R', 0, PCL_RESOLUTION, "Resolution" },
+/* RTL/PCL5 */
+ { "*v", 'W', 1, RTL_CONFIGURE, "RTL Configure Image Data" },
};
int pcl_find_command (void);
@@ -232,7 +260,7 @@ void fill_buffer(void)
{
if ((read_pointer == -1) || (read_pointer >= read_size)) {
- read_size = (int) fread(&read_buffer, sizeof(char), 1024, read_fd);
+ read_size = (int) fread(&read_buffer, sizeof(char), READ_SIZE, read_fd);
#ifdef DEBUG
fprintf(stderr, "Read %d characters\n", read_size);
@@ -288,7 +316,7 @@ void pcl_read_command(void)
ESC & l 26 A ESC & l 0 L. The key to this is that the terminator for
the first command is in the range 96-126 (lower case).
- There is a problem with the "PJL command" (ESC %) as it does not
+ There is a problem with the "escape command" (ESC %) as it does not
conform to this specification, so we have to check for it specifically!
*/
@@ -362,12 +390,11 @@ void pcl_read_command(void)
#endif
/* Check to see if this character forms a "two character" command,
- or is a PJL command. */
+ or is a special command. */
- if (PCL_TWOCHAR(c)
- || (c == '%')) {
+ if (PCL_TWOCHAR(c)) {
#ifdef DEBUG
- fprintf(stderr, "Two character or PJL command\n");
+ fprintf(stderr, "Two character command\n");
#endif
initial_command[initial_command_index] = '\0';
return;
@@ -421,10 +448,21 @@ void pcl_read_command(void)
}
else {
- fprintf(stderr, "ERROR: Illegal second character %c in parameterised command.\n",
+/* The second character is not legal. If the first character is '%' then allow it
+ * through */
+
+ if (initial_command[0] == '%') {
+#ifdef DEBUG
+ fprintf(stderr, "ESC%% commmand\n");
+#endif
+ initial_command[initial_command_index] = '\0';
+ }
+ else {
+ fprintf(stderr, "ERROR: Illegal second character %c in parameterised command.\n",
c);
- initial_command[initial_command_index] = '\0';
- return;
+ initial_command[initial_command_index] = '\0';
+ return;
+ }
}
} /* Parameterised check */
@@ -695,7 +733,7 @@ int decode_tiff(char *in_buffer, /* I: Data buffer */
fprintf(stderr, "\n");
#endif
if ((dpos + count + 1) > maxlen) {
- fprintf(stderr, "ERROR: Too much expanded data (%d), increase MAX_DATA!\n", dpos + count + 1);
+ fprintf(stderr, "ERROR: Too much expanded data (%d)!\n", dpos + count + 1);
exit(EXIT_FAILURE);
}
memcpy(&decode_buf[dpos], &in_buffer[pos+1], (size_t) (count + 1));
@@ -707,7 +745,7 @@ int decode_tiff(char *in_buffer, /* I: Data buffer */
fprintf(stderr, "%02x repeated %d times\n", (unsigned char) in_buffer[pos + 1], 1 - count);
#endif
if ((dpos + 1 - count) > maxlen) {
- fprintf(stderr, "ERROR: Too much expanded data (%d), increase MAX_DATA!\n", dpos + 1 - count);
+ fprintf(stderr, "ERROR: Too much expanded data (%d)!\n", dpos + 1 - count);
exit(EXIT_FAILURE);
}
memset(&decode_buf[dpos], in_buffer[pos + 1], (size_t) (1 - count));
@@ -813,7 +851,9 @@ int main(int argc, char *argv[])
output_data.lcyan_data_rows_per_row = 0;
output_data.lmagenta_bufs = NULL;
output_data.lmagenta_data_rows_per_row = 0;
+ output_data.buffer_length = 0;
output_data.active_height = 0;
+ output_data.output_depth = 0;
id = id; /* Remove compiler warning */
received_rows = NULL;
@@ -1011,40 +1051,42 @@ int main(int argc, char *argv[])
* Allocate some storage for the expected planes
*/
+ output_data.buffer_length = (image_data.image_width + 7) / 8;
+
if (output_data.black_data_rows_per_row != 0) {
output_data.black_bufs = xmalloc(output_data.black_data_rows_per_row * sizeof (char *));
for (i=0; i < output_data.black_data_rows_per_row; i++) {
- output_data.black_bufs[i] = xmalloc(MAX_DATA * sizeof (char));
+ output_data.black_bufs[i] = xmalloc(output_data.buffer_length * sizeof (char));
}
}
if (output_data.cyan_data_rows_per_row != 0) {
output_data.cyan_bufs = xmalloc(output_data.cyan_data_rows_per_row * sizeof (char *));
for (i=0; i < output_data.cyan_data_rows_per_row; i++) {
- output_data.cyan_bufs[i] = xmalloc(MAX_DATA * sizeof (char));
+ output_data.cyan_bufs[i] = xmalloc(output_data.buffer_length * sizeof (char));
}
}
if (output_data.magenta_data_rows_per_row != 0) {
output_data.magenta_bufs = xmalloc(output_data.magenta_data_rows_per_row * sizeof (char *));
for (i=0; i < output_data.magenta_data_rows_per_row; i++) {
- output_data.magenta_bufs[i] = xmalloc(MAX_DATA * sizeof (char));
+ output_data.magenta_bufs[i] = xmalloc(output_data.buffer_length * sizeof (char));
}
}
if (output_data.yellow_data_rows_per_row != 0) {
output_data.yellow_bufs = xmalloc(output_data.yellow_data_rows_per_row * sizeof (char *));
for (i=0; i < output_data.yellow_data_rows_per_row; i++) {
- output_data.yellow_bufs[i] = xmalloc(MAX_DATA * sizeof (char));
+ output_data.yellow_bufs[i] = xmalloc(output_data.buffer_length * sizeof (char));
}
}
if (output_data.lcyan_data_rows_per_row != 0) {
output_data.lcyan_bufs = xmalloc(output_data.lcyan_data_rows_per_row * sizeof (char *));
for (i=0; i < output_data.lcyan_data_rows_per_row; i++) {
- output_data.lcyan_bufs[i] = xmalloc(MAX_DATA * sizeof (char));
+ output_data.lcyan_bufs[i] = xmalloc(output_data.buffer_length * sizeof (char));
}
}
if (output_data.lmagenta_data_rows_per_row != 0) {
output_data.lmagenta_bufs = xmalloc(output_data.lmagenta_data_rows_per_row * sizeof (char *));
for (i=0; i < output_data.lmagenta_data_rows_per_row; i++) {
- output_data.lmagenta_bufs[i] = xmalloc(MAX_DATA * sizeof (char));
+ output_data.lmagenta_bufs[i] = xmalloc(output_data.buffer_length * sizeof (char));
}
}
@@ -1076,7 +1118,7 @@ int main(int argc, char *argv[])
break;
case PCL_END_RASTER :
- case PCL_END_RASTER_NEW :
+ case PCL_END_COLOUR_RASTER :
fprintf(stderr, "%s\n", pcl_commands[command_index].description);
/*
@@ -1099,6 +1141,8 @@ int main(int argc, char *argv[])
else
fprintf(stderr, "\t%d rows processed.\n", image_row_counter);
+ image_data.image_height = -1;
+
if (output_data.black_data_rows_per_row != 0) {
for (i=0; i < output_data.black_data_rows_per_row; i++) {
free(output_data.black_bufs[i]);
@@ -1325,7 +1369,7 @@ int main(int argc, char *argv[])
for (i=0; i<expected_data_rows_per_row; i++)
{
- memset(received_rows[i], 0, (size_t) MAX_DATA * sizeof(char));
+ memset(received_rows[i], 0, (size_t) output_data.buffer_length * sizeof(char));
}
for (i=0; i<numeric_arg; i++)
{
@@ -1348,6 +1392,15 @@ int main(int argc, char *argv[])
case PCL_UNIT_OF_MEASURE :
case PCL_GRAY_BALANCE :
case PCL_DRIVER_CONFIG :
+ case PCL_LPI :
+ case PCL_CPI :
+ case PCL_PAGE_LENGTH :
+ case PCL_NUM_COPIES :
+ case PCL_DUPLEX :
+ case PCL_MEDIA_SIDE :
+ case RTL_CONFIGURE :
+ case PCL_ENTER_PCL :
+ case PCL_NEGATIVE_MOTION :
fprintf(stderr, "%s: %d (ignored)", pcl_commands[command_index].description, numeric_arg);
if (pcl_commands[command_index].has_data == 1) {
fprintf(stderr, " Data: ");
@@ -1564,7 +1617,7 @@ int main(int argc, char *argv[])
output_data.active_height = numeric_arg;
}
else
- output_data.active_height = decode_tiff(data_buffer, numeric_arg, received_rows[current_data_row], MAX_DATA);
+ output_data.active_height = decode_tiff(data_buffer, numeric_arg, received_rows[current_data_row], output_data.buffer_length);
if (command == PCL_DATA_LAST) {
if (image_data.colour_type == PCL_MONO)
@@ -1579,13 +1632,13 @@ int main(int argc, char *argv[])
break;
- case PCL_PJL_COMMAND : {
+ case PCL_ENTER_HPGL2 :
+ case PCL_ENTER_PJL : {
int c;
- fprintf(stderr, "%s\n", pcl_commands[command_index].description);
+ fprintf(stderr, "%s %d\n", pcl_commands[command_index].description, numeric_arg);
/*
- * This is a special command, actually it is a PJL instruction. Read up
- * to the next ESC and output it.
+ * This is a special command. Read up to the next ESC and output it.
*/
c = 0;
diff --git a/test/run-testdither b/test/run-testdither
new file mode 100755
index 0000000..36b4d11
--- /dev/null
+++ b/test/run-testdither
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+out_status=0
+
+if [ -z "$bits" ] ; then
+ bits='1-bit 2-bit'
+fi
+
+if [ -z "$dither_types" ] ; then
+ dither_types='monochrome gray color photo cmyk photocmyk'
+fi
+
+if [ -z "$image_types" ] ; then
+ image_types='mixed white black colorimage random'
+fi
+
+if [ -z "$algos" ] ; then
+ algos='Adaptive EvenTone Ordered Fast VeryFast Floyd'
+fi
+
+if [ -z "$print_image" ] ; then
+ image='no-image'
+fi
+
+for bits in $bits ; do
+ for dither_type in $dither_types ; do
+ for image_type in $image_types ; do
+ for algo in $algos ; do
+ ./testdither $image $bits $dither_type $image_type $algo
+ status=$?
+ if [ "$status" -ne 0 ] ; then
+ echo ./testdither $image $bits $dither_type $image_type $algo failed
+ out_status=`expr $out_status + 1`
+ fi
+ done
+ done
+ done
+done
+
+exit $out_status
diff --git a/test/run-weavetest b/test/run-weavetest
index c6c0cde..15169ca 100755
--- a/test/run-weavetest
+++ b/test/run-weavetest
@@ -2,7 +2,7 @@
echo 'run-weavetest may take over an hour to complete. Please wait...'
-modes='15,3 15,6 21,4 21,8 32,4 32,8 48,3 48,6 60,1 60,2 60,4 64,2 64,4 96,2 96,4 128,1 128,2 128,4 128,8 144,1 144,2 144,4 180,1 180,2 180,4 192,1 192,2'
+modes='15,3 15,6 21,4 21,8 32,4 32,8 48,3 48,6 59,1 59,2 59,4 60,1 60,2 60,4 64,2 64,4 96,2 96,4 128,1 128,2 128,4 128,8 144,1 144,2 144,4 180,1 180,2 180,4 192,1 192,2'
passes='1,1,1 2,1,1 1,2,1 1,2,2 1,4,1 4,1,1 4,2,1 2,2,1 1,4,2 2,2,2 2,4,2 8,1,1'
jets='1 2 4 8 15 20 21 24 32 47 48 60 64 96 128 144 180 192'
@@ -21,17 +21,17 @@ fi
for sep in $separations ; do
for pass in $passes ; do
for arrangement in $arrangements; do
- ((start = $jet * $sep))
+ start=`expr $jet \* $sep`
if [ $start -le $head_limit ] ; then
- ((rows = $start * 10))
+ rows=`expr $start \* 10`
if [ $rows -lt 200 ] ; then
rows=200
fi
- ((s1 = $start - 1))
+ s1=`expr $start - 1`
for f in 0 41 $start $s1 ; do
- ((end = $rows + $f + $start))
- ((end1 = $rows + $f))
- ((end2 = $rows + $f + 35))
+ end=`expr $rows + $f + $start`
+ end1=`expr $rows + $f`
+ end2=`expr $rows + $f + 35`
for g in $end $end1 $end2 ; do
echo "$jet $sep $pass $rows $f $g $arrangement"
done
diff --git a/test/testdither.c b/test/testdither.c
index 2733f8b..52c2ea4 100644
--- a/test/testdither.c
+++ b/test/testdither.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testdither.c,v 1.11 2001/09/02 13:30:27 rlk Exp $"
+ * "$Id: testdither.c,v 1.11.4.1 2002/05/03 01:30:29 rlk Exp $"
*
* Test/profiling program for dithering code.
*
@@ -35,12 +35,6 @@
#include <unistd.h>
/*
- * NOTE: writing of 2-bit dither images is currently broken due to the
- * separated planes generated by the dither functions.
- */
-
-
-/*
* Definitions for dither test...
*/
@@ -57,6 +51,9 @@
#define DITHER_GRAY 0 /* Dither grayscale pixels */
#define DITHER_COLOR 1 /* Dither color pixels */
#define DITHER_PHOTO 2 /* Dither photo pixels */
+#define DITHER_MONOCHROME 3 /* Dither photo pixels */
+#define DITHER_CMYK 4 /* Dither photo pixels */
+#define DITHER_PHOTO_CMYK 5 /* Dither photo pixels */
/*
@@ -65,38 +62,39 @@
int image_type = IMAGE_MIXED;
int dither_type = DITHER_COLOR;
+const char *dither_name = NULL;
int dither_bits = 1;
-unsigned short white_line[IMAGE_WIDTH * 3],
- black_line[IMAGE_WIDTH * 3],
- color_line[IMAGE_WIDTH * 3],
- random_line[IMAGE_WIDTH * 3];
+unsigned short white_line[IMAGE_WIDTH * 4],
+ black_line[IMAGE_WIDTH * 4],
+ color_line[IMAGE_WIDTH * 4],
+ random_line[IMAGE_WIDTH * 4];
stp_simple_dither_range_t normal_1bit_ranges[] =
{
- { 1.0, 0x1, 1, 1 }
+ { 1.0, 0x1, 0, 1 }
};
stp_simple_dither_range_t normal_2bit_ranges[] =
{
- { 0.45, 0x1, 1, 1 },
- { 0.68, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
+ { 0.45, 0x1, 0, 1 },
+ { 0.68, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 3 }
};
stp_simple_dither_range_t photo_1bit_ranges[] =
{
- { 0.33, 0x1, 0, 1 },
- { 1.0, 0x1, 1, 1 }
+ { 0.33, 0x1, 1, 1 },
+ { 1.0, 0x1, 0, 1 }
};
stp_simple_dither_range_t photo_2bit_ranges[] =
{
- { 0.15, 0x1, 0, 1 },
- { 0.227, 0x2, 0, 2 },
- { 0.45, 0x1, 1, 1 },
- { 0.68, 0x2, 1, 2 },
- { 1.0, 0x3, 1, 3 }
+ { 0.15, 0x1, 1, 1 },
+ { 0.227, 0x2, 1, 2 },
+ { 0.45, 0x1, 0, 1 },
+ { 0.68, 0x2, 0, 2 },
+ { 1.0, 0x3, 0, 3 }
};
@@ -118,6 +116,13 @@ compute_interval(struct timeval *tv1, struct timeval *tv2)
((double) tv1->tv_sec + (double) tv1->tv_usec / 1000000.);
}
+static void
+writefunc(void *file, const char *buf, size_t bytes)
+{
+ FILE *prn = (FILE *)file;
+ fwrite(buf, 1, bytes, prn);
+}
+
/*
* 'main()' - Test dithering code for performance measurement.
*/
@@ -134,27 +139,31 @@ main(int argc, /* I - Number of command-line arguments */
lmagenta[BUFFER_SIZE], /* Light magenta bitmap data */
yellow[BUFFER_SIZE]; /* Yellow bitmap data */
void *dither; /* Dither data */
- unsigned short rgb[IMAGE_WIDTH * 3], /* RGB buffer */
+ unsigned short rgb[IMAGE_WIDTH * 4], /* RGB buffer */
gray[IMAGE_WIDTH]; /* Grayscale buffer */
int write_image; /* Write the image to disk? */
- FILE *fp; /* PPM/PGM output file */
+ FILE *fp = NULL; /* PPM/PGM output file */
char filename[1024]; /* Name of file */
stp_vars_t v; /* Dither variables */
static const char *dither_types[] = /* Different dithering modes */
{
"gray",
"color",
- "photo"
+ "photo",
+ "monochrome",
+ "cmyk",
+ "photocmyk"
};
static const char *image_types[] = /* Different image types */
{
"mixed",
"white",
"black",
- "color",
+ "colorimage",
"random"
};
struct timeval tv1, tv2;
+ stp_dither_data_t *dt;
/*
* Initialise libgimpprint
@@ -189,11 +198,11 @@ main(int argc, /* I - Number of command-line arguments */
continue;
}
- for (j = 0; j < 3; j ++)
+ for (j = 0; j < 6; j ++)
if (strcmp(argv[i], dither_types[j]) == 0)
break;
- if (j < 3)
+ if (j < 6)
{
dither_type = j;
continue;
@@ -203,12 +212,22 @@ main(int argc, /* I - Number of command-line arguments */
if (strcmp(argv[i], image_types[j]) == 0)
break;
- if (j < 3)
+ if (j < 5)
{
image_type = j;
continue;
}
+ for (j = 0; j < stp_dither_algorithm_count(); j ++)
+ if (strcmp(argv[i], stp_dither_algorithm_name(j)) == 0)
+ break;
+
+ if (j < stp_dither_algorithm_count())
+ {
+ dither_name = stp_dither_algorithm_name(j);
+ continue;
+ }
+
printf("Unknown option \"%s\" ignored!\n", argv[i]);
}
@@ -217,12 +236,35 @@ main(int argc, /* I - Number of command-line arguments */
*/
image_init();
+ stp_set_outfunc(v, writefunc);
+ stp_set_errfunc(v, writefunc);
+ stp_set_outdata(v, stdout);
+ stp_set_errdata(v, stderr);
/*
* Output the page...
*/
- stp_set_dither_algorithm(v, "Adaptive Hybrid");
+ if (dither_name)
+ stp_set_dither_algorithm(v, dither_name);
+
+ switch (dither_type)
+ {
+ case DITHER_GRAY:
+ stp_set_output_type(v, OUTPUT_GRAY);
+ break;
+ case DITHER_MONOCHROME:
+ stp_set_output_type(v, OUTPUT_MONOCHROME);
+ break;
+ case DITHER_COLOR:
+ case DITHER_PHOTO:
+ stp_set_output_type(v, OUTPUT_COLOR);
+ break;
+ case DITHER_CMYK:
+ case DITHER_PHOTO_CMYK:
+ stp_set_output_type(v, OUTPUT_RAW_CMYK);
+ break;
+ }
dither = stp_init_dither(IMAGE_WIDTH, IMAGE_WIDTH, 1, 1, v);
@@ -239,6 +281,7 @@ main(int argc, /* I - Number of command-line arguments */
switch (dither_type)
{
case DITHER_GRAY :
+ case DITHER_MONOCHROME :
switch (dither_bits)
{
case 1 :
@@ -251,6 +294,7 @@ main(int argc, /* I - Number of command-line arguments */
}
break;
case DITHER_COLOR :
+ case DITHER_CMYK :
switch (dither_bits)
{
case 1 :
@@ -269,6 +313,7 @@ main(int argc, /* I - Number of command-line arguments */
}
break;
case DITHER_PHOTO :
+ case DITHER_PHOTO_CMYK :
switch (dither_bits)
{
case 1 :
@@ -295,37 +340,60 @@ main(int argc, /* I - Number of command-line arguments */
* Open the PPM/PGM file...
*/
- if (write_image)
- {
- sprintf(filename, "%s-%s-%dbit.%s", image_types[image_type],
- dither_types[dither_type], dither_bits,
- dither_type == DITHER_GRAY ? "pgm" : "ppm");
- if ((fp = fopen(filename, "wb")) != NULL)
+ sprintf(filename, "%s-%s-%s-%dbit.%s", image_types[image_type],
+ dither_types[dither_type],
+ dither_name ? dither_name : stp_default_dither_algorithm(),
+ dither_bits,
+ (dither_type == DITHER_GRAY || dither_type == DITHER_MONOCHROME) ?
+ "pgm" : "ppm");
+
+ printf("%s ", filename);
+
+ if (write_image)
{
- puts(filename);
- if (dither_type == DITHER_GRAY)
- fputs("P5\n", fp);
- else
- fputs("P6\n", fp);
+ if ((fp = fopen(filename, "wb")) != NULL)
+ {
+ puts(filename);
+ if (dither_type == DITHER_GRAY || dither_type == DITHER_MONOCHROME)
+ fputs("P5\n", fp);
+ else
+ fputs("P6\n", fp);
- fprintf(fp, "%d\n%d\n255\n", IMAGE_WIDTH, IMAGE_HEIGHT);
+ fprintf(fp, "%d\n%d\n255\n", IMAGE_WIDTH, IMAGE_HEIGHT);
+ }
+ else
+ perror("Create");
}
- else
- perror(filename);
- }
- else
- fp = NULL;
/*
* Now dither the "page"...
*/
+ dt = stp_create_dither_data();
+ switch (dither_type)
+ {
+ case DITHER_PHOTO:
+ case DITHER_PHOTO_CMYK :
+ stp_add_channel(dt, lcyan, ECOLOR_C, 1);
+ stp_add_channel(dt, lmagenta, ECOLOR_M, 1);
+ /* FALLTHROUGH */
+ case DITHER_COLOR:
+ case DITHER_CMYK :
+ stp_add_channel(dt, cyan, ECOLOR_C, 0);
+ stp_add_channel(dt, magenta, ECOLOR_M, 0);
+ stp_add_channel(dt, yellow, ECOLOR_Y, 0);
+ /* FALLTHROUGH */
+ case DITHER_GRAY:
+ case DITHER_MONOCHROME:
+ stp_add_channel(dt, black, ECOLOR_K, 0);
+ }
+
(void) gettimeofday(&tv1, NULL);
for (i = 0; i < IMAGE_HEIGHT; i ++)
{
- if ((i & 15) == 0)
+ if ((i & 63) == 0)
{
printf("\rProcessing row %d...", i);
fflush(stdout);
@@ -334,22 +402,23 @@ main(int argc, /* I - Number of command-line arguments */
switch (dither_type)
{
case DITHER_GRAY :
+ case DITHER_MONOCHROME :
image_get_row(gray, i);
- stp_dither(gray, i, dither, 0, 0, 0, 0, 0, 0, black, 0, 0);
+ stp_dither(gray, i, dither, dt, 0, 0);
if (fp)
write_gray(fp, black);
break;
case DITHER_COLOR :
+ case DITHER_CMYK :
image_get_row(rgb, i);
- stp_dither(rgb, i, dither, cyan, 0, magenta, 0,
- yellow, 0, black, 0, 0);
+ stp_dither(rgb, i, dither, dt, 0, 0);
if (fp)
write_color(fp, cyan, magenta, yellow, black);
break;
case DITHER_PHOTO :
+ case DITHER_PHOTO_CMYK :
image_get_row(rgb, i);
- stp_dither(rgb, i, dither, cyan, lcyan, magenta, lmagenta,
- yellow, 0, black, 0, 0);
+ stp_dither(rgb, i, dither, dt, 0, 0);
if (fp)
write_photo(fp, cyan, lcyan, magenta, lmagenta, yellow, black);
break;
@@ -358,13 +427,14 @@ main(int argc, /* I - Number of command-line arguments */
(void) gettimeofday(&tv2, NULL);
+ stp_free_dither_data(dt);
stp_free_dither(dither);
if (fp != NULL)
fclose(fp);
- printf("\rTotal dither time for %d pixels is %.3f seconds, or %.2f pixels/sec.\n",
- IMAGE_WIDTH * IMAGE_HEIGHT, compute_interval(&tv1, &tv2),
+ printf("\r%-40s Total dither time for %d pixels is %.3f seconds, or %.2f pixels/sec.\n",
+ filename, IMAGE_WIDTH * IMAGE_HEIGHT, compute_interval(&tv1, &tv2),
(float)(IMAGE_WIDTH * IMAGE_HEIGHT) / compute_interval(&tv1, &tv2));
return 0;
}
@@ -412,10 +482,21 @@ image_get_row(unsigned short *data,
break;
}
- if (dither_type == DITHER_GRAY)
- memcpy(data, src, IMAGE_WIDTH * 2);
- else
- memcpy(data, src, IMAGE_WIDTH * 6);
+ switch (dither_type)
+ {
+ case DITHER_GRAY:
+ case DITHER_MONOCHROME:
+ memcpy(data, src, IMAGE_WIDTH * 2);
+ break;
+ case DITHER_COLOR:
+ case DITHER_PHOTO:
+ memcpy(data, src, IMAGE_WIDTH * 6);
+ break;
+ case DITHER_CMYK:
+ case DITHER_PHOTO_CMYK:
+ memcpy(data, src, IMAGE_WIDTH * 8);
+ break;
+ }
}
@@ -431,8 +512,8 @@ image_init(void)
* Set the white and black line data...
*/
- memset(white_line, 255, sizeof(white_line));
- memset(black_line, 0, sizeof(black_line));
+ memset(white_line, 0, sizeof(white_line));
+ memset(black_line, 255, sizeof(black_line));
/*
* Fill in the color and random data...
@@ -446,25 +527,34 @@ image_init(void)
j = i / (IMAGE_WIDTH / 64);
- if (dither_type == DITHER_GRAY)
- *cptr++ = 65535 * j / 63;
- else
- {
- *cptr++ = 65535 * (j >> 4) / 3;
- *cptr++ = 65535 * ((j >> 2) & 3) / 3;
- *cptr++ = 65535 * (j & 3) / 3;
- }
-
- /*
- * Do random colors over the line...
- */
-
- *rptr++ = 65535 * (rand() & 255) / 255;
- if (dither_type != DITHER_GRAY)
- {
- *rptr++ = 65535 * (rand() & 255) / 255;
- *rptr++ = 65535 * (rand() & 255) / 255;
- }
+ switch (dither_type)
+ {
+ case DITHER_GRAY:
+ case DITHER_MONOCHROME:
+ *cptr++ = 65535 * j / 63;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ break;
+ case DITHER_COLOR:
+ case DITHER_PHOTO:
+ *cptr++ = 65535 * (j >> 4) / 3;
+ *cptr++ = 65535 * ((j >> 2) & 3) / 3;
+ *cptr++ = 65535 * (j & 3) / 3;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ break;
+ case DITHER_CMYK:
+ case DITHER_PHOTO_CMYK:
+ *cptr++ = 65535 * (j >> 4) / 3;
+ *cptr++ = 65535 * ((j >> 2) & 3) / 3;
+ *cptr++ = 65535 * (j & 3) / 3;
+ *cptr++ = 65535 * j / 63;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ *rptr++ = 65535 * (rand() & 255) / 255;
+ break;
+ }
}
}
@@ -499,7 +589,10 @@ write_gray(FILE *fp,
}
else
{
- for (count = IMAGE_WIDTH, byte = *black++, shift = 6; count > 0; count --)
+ unsigned char kb[BUFFER_SIZE];
+ unsigned char *kbuf = kb;
+ stp_fold(black, IMAGE_WIDTH / 8, kbuf);
+ for (count = IMAGE_WIDTH, byte = *kbuf++, shift = 6; count > 0; count --)
{
putc(255 - 255 * ((byte >> shift) & 3) / 3, fp);
@@ -507,7 +600,7 @@ write_gray(FILE *fp,
shift -= 2;
else
{
- byte = *black++;
+ byte = *kbuf++;
shift = 6;
}
}
@@ -577,8 +670,20 @@ write_color(FILE *fp,
}
else
{
- for (count = IMAGE_WIDTH, cbyte = *cyan++, mbyte = *magenta++,
- ybyte = *yellow++, kbyte = *black++, shift = 6;
+ unsigned char kb[BUFFER_SIZE];
+ unsigned char cb[BUFFER_SIZE];
+ unsigned char mb[BUFFER_SIZE];
+ unsigned char yb[BUFFER_SIZE];
+ unsigned char *kbuf = kb;
+ unsigned char *cbuf = cb;
+ unsigned char *mbuf = mb;
+ unsigned char *ybuf = yb;
+ stp_fold(black, IMAGE_WIDTH / 8, kbuf);
+ stp_fold(cyan, IMAGE_WIDTH / 8, cbuf);
+ stp_fold(magenta, IMAGE_WIDTH / 8, mbuf);
+ stp_fold(yellow, IMAGE_WIDTH / 8, ybuf);
+ for (count = IMAGE_WIDTH, cbyte = *cbuf++, mbyte = *mbuf++,
+ ybyte = *ybuf++, kbyte = *kbuf++, shift = 6;
count > 0;
count --)
{
@@ -606,10 +711,10 @@ write_color(FILE *fp,
shift -= 2;
else
{
- cbyte = *cyan++;
- mbyte = *magenta++;
- ybyte = *yellow++;
- kbyte = *black++;
+ cbyte = *cbuf++;
+ mbyte = *mbuf++;
+ ybyte = *ybuf++;
+ kbyte = *kbuf++;
shift = 6;
}
}
@@ -690,9 +795,27 @@ write_photo(FILE *fp,
}
else
{
- for (count = IMAGE_WIDTH, cbyte = *cyan++, lcbyte = *lcyan++,
- mbyte = *magenta++, lmbyte = *lmagenta++,
- ybyte = *yellow++, kbyte = *black++, shift = 6;
+ unsigned char kb[BUFFER_SIZE];
+ unsigned char cb[BUFFER_SIZE];
+ unsigned char mb[BUFFER_SIZE];
+ unsigned char lcb[BUFFER_SIZE];
+ unsigned char lmb[BUFFER_SIZE];
+ unsigned char yb[BUFFER_SIZE];
+ unsigned char *kbuf = kb;
+ unsigned char *cbuf = cb;
+ unsigned char *mbuf = mb;
+ unsigned char *lcbuf = lcb;
+ unsigned char *lmbuf = lmb;
+ unsigned char *ybuf = yb;
+ stp_fold(black, IMAGE_WIDTH / 8, kbuf);
+ stp_fold(cyan, IMAGE_WIDTH / 8, cbuf);
+ stp_fold(magenta, IMAGE_WIDTH / 8, mbuf);
+ stp_fold(yellow, IMAGE_WIDTH / 8, ybuf);
+ stp_fold(lcyan, IMAGE_WIDTH / 8, lcbuf);
+ stp_fold(lmagenta, IMAGE_WIDTH / 8, lmbuf);
+ for (count = IMAGE_WIDTH, cbyte = *cbuf++, mbyte = *mbuf++,
+ ybyte = *ybuf++, kbyte = *kbuf++, lmbyte = *lmbuf++,
+ lcbyte = *lcyan++, shift = 6;
count > 0;
count --)
{
@@ -722,12 +845,12 @@ write_photo(FILE *fp,
shift -= 2;
else
{
- cbyte = *cyan++;
- lcbyte = *lcyan++;
- mbyte = *magenta++;
- lmbyte = *lmagenta++;
- ybyte = *yellow++;
- kbyte = *black++;
+ cbyte = *cbuf++;
+ mbyte = *mbuf++;
+ ybyte = *ybuf++;
+ kbyte = *kbuf++;
+ lmbyte = *lmbuf++;
+ lcbyte = *lcbuf++;
shift = 6;
}
}
@@ -736,5 +859,5 @@ write_photo(FILE *fp,
/*
- * End of "$Id: testdither.c,v 1.11 2001/09/02 13:30:27 rlk Exp $".
+ * End of "$Id: testdither.c,v 1.11.4.1 2002/05/03 01:30:29 rlk Exp $".
*/
diff --git a/test/unprint.c b/test/unprint.c
index 0084984..7de7670 100644
--- a/test/unprint.c
+++ b/test/unprint.c
@@ -1,4 +1,4 @@
-/* $Id: unprint.c,v 1.22 2001/09/29 02:32:11 rlk Exp $ */
+/* $Id: unprint.c,v 1.22.4.2 2003/12/02 01:51:01 rlk Exp $ */
/*
* Generate PPM files from printer output
*
@@ -39,7 +39,7 @@
*/
typedef struct {
unsigned char unidirectional;
- unsigned char microweave;
+ unsigned char interleave;
int page_management_units; /* dpi */
int relative_horizontal_units; /* dpi */
int absolute_horizontal_units; /* dpi, assumed to be >= relative */
@@ -63,6 +63,7 @@ typedef struct {
int right_edge;
int top_edge;
int bottom_edge;
+ int quadtone;
} pstate_t;
/* We'd need about a gigabyte of ram to hold a ppm file of an 8.5 x 11
@@ -234,10 +235,12 @@ static float ink_colors[8][4] =
{ 1, 1, .7, 1 }, /* y */
{ 1, 1, 1, 1 }};
+static float quadtone_inks[] = { 0.0, .5, .25, .75 };
+
static float bpp_shift[] = { 0, 1, 3, 7, 15, 31, 63, 127, 255 };
static inline void
-mix_ink(ppmpixel p, int color, unsigned int amount, float *ink)
+mix_ink(ppmpixel p, int color, unsigned int amount, float *ink, int quadtone)
{
/* this is pretty crude */
@@ -247,8 +250,12 @@ mix_ink(ppmpixel p, int color, unsigned int amount, float *ink)
float size;
size = (float) amount / bpp_shift[pstate.bpp];
- for (i = 0; i < 3; i++)
- p[i] *= (1 - size) + size * ink[i];
+ if (quadtone)
+ for (i = 0; i < 3; i++)
+ p[i] *= (1 - size) + size * quadtone_inks[color];
+ else
+ for (i = 0; i < 3; i++)
+ p[i] *= (1 - size) + size * ink[i];
}
}
@@ -406,7 +413,8 @@ write_output(FILE *fp_w, int dontwrite)
for (p = lt->startx[c]; p <= lt->stopx[c]; p++)
{
amount = get_bits(lt->line[c], p - lt->startx[c]);
- mix_ink(out_row[p - left], c, amount, ink);
+ mix_ink(out_row[p - left], c, amount, ink,
+ pstate.quadtone);
}
}
}
@@ -547,7 +555,7 @@ update_page(unsigned char *buf, /* I - pixel data */
page = (line_type **) xcalloc(pstate.bottom_margin - pstate.top_margin,
sizeof(line_type *));
}
- if (pstate.microweave)
+ if (pstate.interleave)
sep = 1;
else
sep = pstate.nozzle_separation;
@@ -819,7 +827,7 @@ parse_escp2_extended(FILE *fp_r)
break;
case 'G': /* select graphics mode */
/* FIXME: this is supposed to have more side effects */
- pstate.microweave = 0;
+ pstate.interleave = 0;
pstate.dotsize = 0;
pstate.bpp = 1;
break;
@@ -856,11 +864,11 @@ parse_escp2_extended(FILE *fp_r)
break;
}
break;
- case 'i': /* set MicroWeave mode */
+ case 'i': /* set Interleave mode */
if (bufsize != 1)
- fprintf(stderr,"Malformed microweave setting command.\n");
+ fprintf(stderr,"Malformed interleave setting command.\n");
else
- pstate.microweave = buf[0] % 0x30;
+ pstate.interleave = buf[0] % 0x30;
break;
case 'e': /* set dot size */
if ((bufsize != 2) || (buf[0] != 0))
@@ -1093,7 +1101,7 @@ parse_escp2_command(FILE *fp_r)
else
{
pstate.unidirectional = 0;
- pstate.microweave = 0;
+ pstate.interleave = 0;
pstate.dotsize = 0;
pstate.bpp = 1;
pstate.page_management_units = 360;
@@ -1338,7 +1346,7 @@ parse_canon(FILE *fp_r)
continue;
} else {
pstate.unidirectional=0;
- pstate.microweave=0;
+ pstate.interleave=0;
pstate.dotsize=0;
pstate.bpp=1;
pstate.page_management_units=360;
@@ -1553,6 +1561,9 @@ main(int argc,char *argv[])
case 'q':
no_output = 1;
break;
+ case 'Q':
+ pstate.quadtone = 1;
+ break;
case 'u':
unweave = 1;
break;