diff options
author | Rainer Hurling <rhurlin@FreeBSD.org> | 2022-04-03 08:05:36 +0000 |
---|---|---|
committer | Rainer Hurling <rhurlin@FreeBSD.org> | 2022-04-03 08:44:09 +0000 |
commit | 27df5bce08f3b1d63d5b4275eaf91bc01d1dfa35 (patch) | |
tree | a9a9c1ae8ee62be885b0347c166d4546ddcdd696 | |
parent | 16f0acba590a9b850c9a23759ed37427507910bd (diff) |
graphics/epsonscan2: Add new port for Epson Scanners
This is a port of the Seiko/Epson Epsonscan2 scanner engine and GUI[1].
It provides a complete alternative to sane/xsane with its own scanner engine and GUI.
It also provides a sane back-end library (libsane-epsonscan2.so) so that it works with the sane package.
There are two parts to this port:
- graphics/epsonscan2 - the main scanner engine and GUI that
works with (most) USB scanners
- graphics/epsonscan2-non-free-plugin - support for Epson's
Linux binary that adds network access to scanners and
usb access to some particular scanners
Please read the file %%PREFIX%%/lib/epsonscan2/Read_me.FreeBSD for notes on how to set this up and use it.
[1] https://download.ebz.epson.net/man/linux/epsonscan2_e.html
PR: 261891
Reviewed by: (partly) Tatsuki Makino <tatsuki_makino@hotmail.com>, diizzy@
69 files changed, 3755 insertions, 0 deletions
diff --git a/graphics/Makefile b/graphics/Makefile index 8d0ce3dcf3d8..a9df4c0a0080 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -168,6 +168,8 @@ SUBDIR += ephoto SUBDIR += epix SUBDIR += eps2png + SUBDIR += epsonscan2 + SUBDIR += epsonscan2-non-free-plugin SUBDIR += epstool SUBDIR += eterm-bg SUBDIR += evince diff --git a/graphics/epsonscan2-non-free-plugin/Makefile b/graphics/epsonscan2-non-free-plugin/Makefile new file mode 100644 index 000000000000..a7f0c8a2956e --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/Makefile @@ -0,0 +1,102 @@ +PORTNAME= epsonscan2-non-free-plugin +DISTVERSION= 6.6.40.0 +CATEGORIES= graphics +MASTER_SITES= https://download2.ebz.epson.net/${EPSONSCAN2}/common/rpm/x64/:amd64 \ + https://download2.ebz.epson.net/${EPSONSCAN2}/common/deb/arm/:armv7 \ + https://download2.ebz.epson.net/${EPSONSCAN2}/common/deb/arm/:armv7rasb \ + https://download2.ebz.epson.net/${EPSONSCAN2}/common/rpm/x86/:i386 +DISTNAME= ${EPSONSCAN2}-bundle-${DISTVERSION} +DISTFILES_amd64= ${DISTNAME}.${DIST_SUFX}${EXTRACT_SUFX}:amd64 +DISTFILES_armv7= ${DISTNAME}.${DIST_SUFX}${EXTRACT_SUFX}:armv7 +DISTFILES_armv7rasb= ${DISTNAME:S,bundle,bundle-raspbian,}.${DIST_SUFX}${EXTRACT_SUFX}:armv7rasb +DISTFILES_i386= ${DISTNAME}.${DIST_SUFX}${EXTRACT_SUFX}:i386 + +MAINTAINER= fbsd@opal.com +COMMENT= Epson Scan 2 network interface non-free-plugin + +LICENSE= EPSON +LICENSE_NAME= EPSON END USER SOFTWARE LICENSE AGREEMENT +LICENSE_FILE= ${WRKDIR}/usr/share/doc/${PORTNAME}-${EPSON_VERSION}-1/COPYING.EPSON +LICENSE_PERMS= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell + +LEGAL_TEXT= License does not permit public sharing or revenue earning, and restricts exports + +ONLY_FOR_ARCHS= amd64 armv7 armv7rasb i386 + +RUN_DEPENDS= epsonscan2:graphics/epsonscan2 \ + linux_libusb>=13.1.0:devel/linux_libusb + +USES= linux +USE_LDCONFIG= ${LINUXBASE}/usr/${LINUX_LIB}/epsonscan2/libexec \ + ${LINUXBASE}/usr/${LINUX_LIB}/epsonscan2/non-free-exec + +EPSON_VERSION= 1.0.0.5 +EPSONSCAN2= ${PORTNAME:S,-non-free-plugin,,} + +LINUX_WRAPPERS= ddeplugin \ + dtrplugin \ + es2intif \ + es2netif \ + fitplugin + +NO_BUILD= true + +SUB_FILES= pkg-message \ + ${LINUX_WRAPPERS} + +SUB_LIST+= LINUXBASE=${LINUXBASE} \ + LINUX_LIB=${LINUX_LIB} + +PLIST_SUB+= LINUX_LIB=${LINUX_LIB} \ + LINUX_LIB_EXTRA=${LINUX_LIB_EXTRA} + +.include <bsd.port.pre.mk> + +.if ((${OSVERSION} >= 1400000 && ${OSVERSION} <= 1400053) || \ + (${OSVERSION} >= 1300000 && ${OSVERSION} <= 1300526) || \ + ${OSVERSION} < 1300000) +.warning epsonscan2-non-free-plugin's es2intif requires FreeBSD 13.x or 14.x +.warning kernel later than 2022/03/05 for operation with scanners shown with +.warning [*] in ${PREFIX}/lib/epsonscan2/Read_me.FreeBSD. +.endif + +.if ${ARCH} == amd64 +DIST_FMT= rpm +DIST_SUFX= x86_64.${DIST_FMT} +LINUX_ARCH= x86_64 +LINUX_FMT= rpm +LINUX_LIB= lib64 +LINUX_LIB_EXTRA= "@comment " +.elif ${ARCH} == armv7 || ${ARCH} == armv7rasb +DIST_FMT= deb +DIST_SUFX= armv7l.${DIST_FMT} +LINUX_ARCH= armhf +LINUX_FMT= deb +LINUX_LIB= lib/arm-linux-gnueabihf +LINUX_LIB_EXTRA= "" +.elif ${ARCH} == i386 +DIST_FMT= rpm +DIST_SUFX= i686.${DIST_FMT} +LINUX_ARCH= i686 +LINUX_FMT= rpm +LINUX_LIB= lib +LINUX_LIB_EXTRA= "@comment " +.endif + +post-extract: +. if ${ARCH} == amd64 || ${ARCH} == i386 + cd ${WRKDIR}; ${TAR} xf ${DISTNAME}.${DIST_SUFX}/plugins/${PORTNAME}-${EPSON_VERSION}-1.${LINUX_ARCH}.${DIST_FMT} && ${RM} -r ${DISTNAME}.${DIST_SUFX} +. elif ${ARCH} == armv7 || ${ARCH} == armv7rasb + cd ${WRKDIR}; ${TAR} xf ${DISTNAME}.${DIST_SUFX}/plugins/${PORTNAME}_${EPSON_VERSION}-1_${LINUX_ARCH}.${DIST_FMT} data.tar.xz && ${RM} -r ${DISTNAME}.${DIST_SUFX} + cd ${WRKDIR}; ${TAR} xf data.tar.xz && ${RM} data.tar.xz +. endif + +do-install: + ${MKDIR} ${STAGEDIR}${LINUXBASE} + cd ${WRKDIR}/usr; ${COPYTREE_SHARE} . ${STAGEDIR}${LINUXBASE}/usr "! -path *-ocr* -a ! -path *.build-id*" + cd ${WRKDIR}/usr/${LINUX_LIB}/${EPSONSCAN2}/non-free-exec; ${INSTALL_KLD} ${LINUX_WRAPPERS} ${STAGEDIR}${LINUXBASE}/usr/${LINUX_LIB}/${EPSONSCAN2}/non-free-exec + ${MKDIR} ${STAGEDIR}${PREFIX}/lib/${EPSONSCAN2}/non-free-exec + cd ${WRKDIR}; ${INSTALL_SCRIPT} ${LINUX_WRAPPERS} ${STAGEDIR}${PREFIX}/lib/${EPSONSCAN2}/non-free-exec + cd ${WRKDIR}/usr/share/doc/${PORTNAME}-${EPSON_VERSION}-1; ${CP} -pr . ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.post.mk> diff --git a/graphics/epsonscan2-non-free-plugin/distinfo b/graphics/epsonscan2-non-free-plugin/distinfo new file mode 100644 index 000000000000..e1cdd7062920 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/distinfo @@ -0,0 +1,9 @@ +TIMESTAMP = 1644933572 +SHA256 (epsonscan2-bundle-6.6.40.0.armv7l.deb.tar.gz) = efe070472e662feea572899cdad0300b759edcf84b2f57c51c997df8d2c07171 +SIZE (epsonscan2-bundle-6.6.40.0.armv7l.deb.tar.gz) 18239327 +SHA256 (epsonscan2-bundle-6.6.40.0.i686.rpm.tar.gz) = c7b68d8cd0c0d7ae187d3c44b5edcca1ca625bbcab50db31e754e3d2261787f0 +SIZE (epsonscan2-bundle-6.6.40.0.i686.rpm.tar.gz) = 14582599 +SHA256 (epsonscan2-bundle-6.6.40.0.x86_64.rpm.tar.gz) = 2b9453dba611c6fbadb8105817020334b9ce1db205e6a68f3d1de198ca3d9451 +SIZE (epsonscan2-bundle-6.6.40.0.x86_64.rpm.tar.gz) = 14016602 +SHA256 (epsonscan2-bundle-raspbian-6.6.40.0.armv7l.deb.tar.gz) = 3b373288884ae38febb5eb9343e820d083d8690414c273f6cdf9abc77b3a171e +SIZE (epsonscan2-bundle-raspbian-6.6.40.0.armv7l.deb.tar.gz) = 20669297 diff --git a/graphics/epsonscan2-non-free-plugin/files/ddeplugin.in b/graphics/epsonscan2-non-free-plugin/files/ddeplugin.in new file mode 100644 index 000000000000..02b2ae040bf0 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/files/ddeplugin.in @@ -0,0 +1,11 @@ +#!/bin/sh +# This wrapper script sets environment variable LD_LIBRARY_PATH to the list +# of needed Linux library directories, then invokes the Linux binary in the +# Linux directories. + +LINUX_EPSONSCAN2=%%LINUXBASE%%/usr/%%LINUX_LIB%%/epsonscan2 + +PROG=${LINUX_EPSONSCAN2}/non-free-exec/`basename $0` +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LINUX_EPSONSCAN2}/non-free-exec:${LINUX_EPSONSCAN2}/libexec + +exec $PROG ${@+"$@"} diff --git a/graphics/epsonscan2-non-free-plugin/files/dtrplugin.in b/graphics/epsonscan2-non-free-plugin/files/dtrplugin.in new file mode 100644 index 000000000000..02b2ae040bf0 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/files/dtrplugin.in @@ -0,0 +1,11 @@ +#!/bin/sh +# This wrapper script sets environment variable LD_LIBRARY_PATH to the list +# of needed Linux library directories, then invokes the Linux binary in the +# Linux directories. + +LINUX_EPSONSCAN2=%%LINUXBASE%%/usr/%%LINUX_LIB%%/epsonscan2 + +PROG=${LINUX_EPSONSCAN2}/non-free-exec/`basename $0` +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LINUX_EPSONSCAN2}/non-free-exec:${LINUX_EPSONSCAN2}/libexec + +exec $PROG ${@+"$@"} diff --git a/graphics/epsonscan2-non-free-plugin/files/es2intif.in b/graphics/epsonscan2-non-free-plugin/files/es2intif.in new file mode 100644 index 000000000000..02b2ae040bf0 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/files/es2intif.in @@ -0,0 +1,11 @@ +#!/bin/sh +# This wrapper script sets environment variable LD_LIBRARY_PATH to the list +# of needed Linux library directories, then invokes the Linux binary in the +# Linux directories. + +LINUX_EPSONSCAN2=%%LINUXBASE%%/usr/%%LINUX_LIB%%/epsonscan2 + +PROG=${LINUX_EPSONSCAN2}/non-free-exec/`basename $0` +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LINUX_EPSONSCAN2}/non-free-exec:${LINUX_EPSONSCAN2}/libexec + +exec $PROG ${@+"$@"} diff --git a/graphics/epsonscan2-non-free-plugin/files/es2netif.in b/graphics/epsonscan2-non-free-plugin/files/es2netif.in new file mode 100644 index 000000000000..02b2ae040bf0 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/files/es2netif.in @@ -0,0 +1,11 @@ +#!/bin/sh +# This wrapper script sets environment variable LD_LIBRARY_PATH to the list +# of needed Linux library directories, then invokes the Linux binary in the +# Linux directories. + +LINUX_EPSONSCAN2=%%LINUXBASE%%/usr/%%LINUX_LIB%%/epsonscan2 + +PROG=${LINUX_EPSONSCAN2}/non-free-exec/`basename $0` +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LINUX_EPSONSCAN2}/non-free-exec:${LINUX_EPSONSCAN2}/libexec + +exec $PROG ${@+"$@"} diff --git a/graphics/epsonscan2-non-free-plugin/files/fitplugin.in b/graphics/epsonscan2-non-free-plugin/files/fitplugin.in new file mode 100644 index 000000000000..02b2ae040bf0 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/files/fitplugin.in @@ -0,0 +1,11 @@ +#!/bin/sh +# This wrapper script sets environment variable LD_LIBRARY_PATH to the list +# of needed Linux library directories, then invokes the Linux binary in the +# Linux directories. + +LINUX_EPSONSCAN2=%%LINUXBASE%%/usr/%%LINUX_LIB%%/epsonscan2 + +PROG=${LINUX_EPSONSCAN2}/non-free-exec/`basename $0` +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${LINUX_EPSONSCAN2}/non-free-exec:${LINUX_EPSONSCAN2}/libexec + +exec $PROG ${@+"$@"} diff --git a/graphics/epsonscan2-non-free-plugin/files/pkg-message.in b/graphics/epsonscan2-non-free-plugin/files/pkg-message.in new file mode 100644 index 000000000000..a2f77a596d3a --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/files/pkg-message.in @@ -0,0 +1,16 @@ +[ +{ type: install + message: <<EOM +The graphics/epsonscan2 scanner driver is the main Epson scanner port. + +This port provides the Linux binaries needed to access the scanner over +the network and for some older USB models. This port requires the kernel +Linux emulation and emulators/linux_base-c7 ports. Depending on your scanner +model, if you do not need network access, you may not need this port or the +Linux emulator. + +Please read %%PREFIX%%/lib/epsonscan2/Read_me.FreeBSD for further details +of how to configure and use this software. +EOM +} +] diff --git a/graphics/epsonscan2-non-free-plugin/pkg-descr b/graphics/epsonscan2-non-free-plugin/pkg-descr new file mode 100644 index 000000000000..bfb8bbd15bd9 --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/pkg-descr @@ -0,0 +1,7 @@ +This port installs the Linux binaries of the Seiko/Epson non-free-plugin +that is required for the graphics/epsonscan2 scanner driver. The kernel +Linux emulation is required to run these binaries. This is only required +to access a scanner over the network or for certain older USB scanner +models. + +WWW: https://support.epson.net/linux/en/epsonscan2.php diff --git a/graphics/epsonscan2-non-free-plugin/pkg-plist b/graphics/epsonscan2-non-free-plugin/pkg-plist new file mode 100644 index 000000000000..76523887d8db --- /dev/null +++ b/graphics/epsonscan2-non-free-plugin/pkg-plist @@ -0,0 +1,52 @@ +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libcnx-esci-gt-s650.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libcnx-esci-gt-s650.so.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libcnx-esci-gt-s650.so.0.0.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libesci-interpreter-perfection-v330.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libesci-interpreter-perfection-v330.so.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libesci-interpreter-perfection-v330.so.0.0.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libesintA1.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libesintA1.so.2 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libesintA1.so.2.0.1 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libiscan-plugin-perfection-v370.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libiscan-plugin-perfection-v370.so.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libiscan-plugin-perfection-v370.so.0.0.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libiscan-plugin-perfection-v550.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libiscan-plugin-perfection-v550.so.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec/libiscan-plugin-perfection-v550.so.0.0.0 +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/ddeplugin +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/dtrplugin +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/es2intif +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/es2netif +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/fitplugin +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/libdde6.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/libesdtr.so +/compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec/libimf6.so +/compat/linux/usr/%%DOCSDIR%%-1.0.0.5-1/COPYING.EPSON +/compat/linux/usr/%%DOCSDIR%%-1.0.0.5-1/NEWS +/compat/linux/usr/%%DOCSDIR%%-1.0.0.5-1/copyright +/compat/linux/usr/share/epsonscan2/esfw010c.bin +/compat/linux/usr/share/epsonscan2/esfwA1.bin +/compat/linux/usr/share/epsonscan2/esfwad.bin +/compat/linux/usr/share/epsonscan2/esfwdd.bin +/compat/linux/usr/share/epsonscan2/esfweb.bin +lib/epsonscan2/non-free-exec/ddeplugin +lib/epsonscan2/non-free-exec/dtrplugin +lib/epsonscan2/non-free-exec/es2intif +lib/epsonscan2/non-free-exec/es2netif +lib/epsonscan2/non-free-exec/fitplugin +%%DOCSDIR%%/COPYING.EPSON +%%DOCSDIR%%/NEWS +%%DOCSDIR%%/copyright +@dir /compat/linux/usr/%%LINUX_LIB%%/epsonscan2/libexec +@dir /compat/linux/usr/%%LINUX_LIB%%/epsonscan2/non-free-exec +@dir /compat/linux/usr/%%LINUX_LIB%%/epsonscan2 +@dir /compat/linux/usr/%%LINUX_LIB%% +%%LINUX_LIB_EXTRA%%@dir /compat/linux/usr/lib +@dir /compat/linux/usr/libexec +@dir /compat/linux/usr/%%DOCSDIR%%-1.0.0.5-1 +@dir /compat/linux/usr/share/doc +@dir /compat/linux/usr/share/epsonscan2 +@dir /compat/linux/usr/share +@dir /compat/linux/usr +@dir /compat/linux +@dir /compat diff --git a/graphics/epsonscan2/Makefile b/graphics/epsonscan2/Makefile new file mode 100644 index 000000000000..0ecc95a66348 --- /dev/null +++ b/graphics/epsonscan2/Makefile @@ -0,0 +1,53 @@ +PORTNAME= epsonscan2 +DISTVERSION= 6.6.40.0 +CATEGORIES= graphics +MASTER_SITES= https://support.epson.net/linux/src/scanner/epsonscan2/ +DISTNAME= ${PORTNAME}-${PORTVERSION}-1.src + +MAINTAINER= fbsd@opal.com +COMMENT= Epson Scan 2 scanner driver + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= sane-config:graphics/sane-backends +LIB_DEPENDS= libboost_serialization.so:devel/boost-libs \ + libdouble-conversion.so:devel/double-conversion \ + libfreetype.so:print/freetype2 \ + libglib-2.0.so:devel/glib20 \ + libGL.so:graphics/libglvnd \ + libgraphite2.so:graphics/graphite2 \ + libicuuc.so:devel/icu \ + libiconv.so:converters/libiconv \ + libintl.so:devel/gettext-runtime \ + libharfbuzz.so:print/harfbuzz \ + libpcre.so:devel/pcre \ + libpcre2-16.so:devel/pcre2 \ + libpng.so:graphics/png \ + libtiff.so:graphics/tiff \ + libzstd.so:archivers/zstd +RUN_DEPENDS= avahi-browse:net/avahi-app + +USES= cmake gettext-runtime gnome jpeg localbase qt:5 xorg +USE_GNOME= glib20 +USE_LDCONFIG= ${PREFIX}/lib/epsonscan2 +USE_QT= buildtools_build core gui qmake_build widgets +USE_XORG= x11 xau xcb xdmcp + +EPSON_VERSION= 1.0.0.0 + +CONFIGURE_ENV+= STAGEDIR=${STAGEDIR} + +CFLAGS+= -I${PREFIX}/include + +SUB_FILES= pkg-message \ + Read_me.FreeBSD + +WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-1 + +post-install: + ${RM} -rf ${STAGEDIR}${DOCSDIR} + ${MV} ${STAGEDIR}${DOCSDIR}-${EPSON_VERSION}-1 ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKDIR}/Read_me.FreeBSD ${STAGEDIR}${PREFIX}/lib/epsonscan2 + +.include <bsd.port.mk> diff --git a/graphics/epsonscan2/distinfo b/graphics/epsonscan2/distinfo new file mode 100644 index 000000000000..29a2e52cc255 --- /dev/null +++ b/graphics/epsonscan2/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1642131410 +SHA256 (epsonscan2-6.6.40.0-1.src.tar.gz) = 07aa21eab09e945cadddcbef102caa1e42390ab52cc49a2c00e911e3a3340923 +SIZE (epsonscan2-6.6.40.0-1.src.tar.gz) = 2289979 diff --git a/graphics/epsonscan2/files/Read_me.FreeBSD.in b/graphics/epsonscan2/files/Read_me.FreeBSD.in new file mode 100644 index 000000000000..a12d2ba98a87 --- /dev/null +++ b/graphics/epsonscan2/files/Read_me.FreeBSD.in @@ -0,0 +1,633 @@ +The FreeBSD port of the Seiko/Epson epsonscan2 driver is mostly working. +Some bugs present in the Linux version have been found and fixed here in +this version. + +There are two ports: + graphics/epsonscan2 Native FreeBSD port of the Epson + scanner engine and the GUI front-end. + This supports scanners connected via + USB cable. + + graphics/epsonscan2-non-free-plugin + Port of the Linux binary that supports + scanner access over networks as well as + USB access to some older scanner models. + This port requires the kernel Linux + emulator modules as well as the userland + Linux libraries. + +The epsonscan2 package provides support for a variety of Seiko/Epson +scanners. The specific model names are stored as hashed strings in the +driver and there does not appear to be a text file listing the supported +models, so it is not possible to know what they all are! However, the +driver does include the USB product ID codes that it supports. A full +list of these USB product ID codes is included at the end of this file. + +The epsonscan2 package provides a complete alternative to the usual +sane/xsane way of doing things. The epsonscan2 command provides both a +full GUI interface as well as a command line interface to the scanner. + +There is also a libsane-epsonscan2.so back-end for sane, and it does +work, but requires some manual configuration first. + +The epsonscan2 package only works with scanners connected via USB cable, +but not even all USB scanners. Some older models also require the +non-free-plugin port for USB access. See the list of USB product IDs +at the end of this file for which models also require the non-free-plugin +for USB access. + +To access a network-connected scanner, the es2netif binary in the +epsonscan2-non-free-plugin port is also required. As mentioned, some +older models require the es2intif binary from this port for USB access. +es2netif and es2intif are Linux binaries that interface between the +epsonscan2 driver and the scanner. es2netif is a program that talks +to a scanner over network sockets and works well. es2intif appears +to provide support for firmware downloads to the scanner device over +USB and may not be fully working at this time. These binaries require +the kernel Linux emulator modules and the Linux userland support in +emulators/linux_base-c7. The kernel Linux modules include: + linux.ko + linux64.ko + linux_common.ko + linprocfs.ko + linsysfs.ko + fdescfs.ko + pty.ko + +Epson provides additional web documentation for epsonscan2 at this URL: + https://download.ebz.epson.net/man/linux/epsonscan2_e.html + + +SYSTEM CONFIGURATION + +To access a USB scanner as a non-root user, you will need to ensure +that the USB devices are readable. Configure as follows: +In /etc/rc.conf: + devfs_system_ruleset="system" + devfs_set_rulesets="%%LINUXBASE%%/dev=system" +In /etc/devfs.rules: + [system=5] + add path 'usb' mode 0755 + add path 'usb/*' mode 0666 + add path 'ugen*' mode 0666 + add path 'usbctl' mode 0666 + + +DETECTING SCANNERS + +You can run: + epsonscan2 -l +to list discovered scanners. + +If your USB scanner is not found, make sure that it is displayed when +you run: + usbconfig dump_device_desc +and that its vendorID and productID are on the list at the bottom of +this file. + +If your network scanner is not found, make sure that it is configured +with an IPv4 address (the epsonscan2 driver ignores IPv6 scanners). +Also make sure that the scanner has mDNS/Bonjour enabled and that when +you run: + avahi-browse -at +you can see the scanner with IPv4 in the domain _scanner._tcp. If your +scanner does not support the mDNS/Bonjour protocol, you can manually +configure the scanner's IP address like this: + epsonscan2 -i ipv4.address + + +SCANNING WITH THE EPSON GUI + +To use with the GUI front-end, just run: + epsonscan2 +It will look for USB and network scanners and list them. Choose the +scanner you want and click Next. The scanning menu will show, allowing +you to set scanning parameters and acquire a preview or scan the image. + +NOTE again, that it might well detect network scanners without the +non-free-module installed, but it will not talk to a network scanner +without that module. + + +SCANNING FROM THE COMMAND-LINE + +The command-line syntax is: + epsonscan2 -s ConfigFile.SF2 + +This will initiate a scan based on the parameters in the configuration +file and save the output where the config directs it. A config file is +created when you use the GUI; look for the file: + ~/.epsonscan2/Settings/MODEL/UserSettings.SF2 + +Alternatively, you can create a config file using: + epsonscan2 -c + +You must then edit the file and set at least the following parameters: + The JpegQuality values are in the range [0..100]. If set to 0, + no image will be produced: + JpegQuality: 30 + JpegQualityForJpeg: 85 + JpegQualityForPdf: 50 + The Resolution is likely to include 75, 150, 200, 300, 600, 1200, + 2400, 9600 but the values are device dependent: + Resolution: 200 + The ScanArea defines where is scanned. It is the page size in + inches multiplied by the Resolution value: + ScanAreaHeight: 2200 + ScanAreaWidth: 1700 + Threshold must also be set: + Threshold: 110 + +NOTE: If Resolution is left at 0, epsonscan2 -s will likely core dump + with a floating point exception! + + +SCANNING WITH SANE + +The epsonscan2 package includes a libsane-epsonscan2.so backend. + +The port creates a sane config file in: + %%PREFIX/etc/sane.d/dll.d/epsonscan2 +but this does not seem to do anything on FreeBSD. You must also edit +the file: + %%PREFIX/etc/sane.d/dll.conf +and add: + epsonscan2 +to that file. To speed device searches up, you can also comment out all +the ones you are not using. + +For a USB scanner, you do not need this next part. For a network scanner, +you do. The libsane-epsonscan2.so module does not use the main epsonscan2 +code that finds network scanners using the mDNS/Bonjour protocol. Instead, +it uses a static hint file telling it where to find network scanners. It +will not find network scanners without this file. Create the hint file +using: + epsonscan2 -i ipv4.address +or edit: + ~/.epsonscan2/Network/epsonscan2.conf +and put in it: + [Network] + ipv4.address +There can be multiple scanner ipv4.address entries, one per line. +E.g.: + [Network] + 192.168.3.30 + 192.168.4.17 + +The libsane-epsonscan2.so backend uses a scanner configuration file in: + ~/.epsonscan2/DefaultSettings.SF2 + +If you have already scanned using epsonscan2, there will be a config +file in: + ~/.epsonscan2/Settings/MODEL/UserSettings.SF2 +Copy or link this file to the DefaultSettings.SF2 path above. Or, +create a new file using "epsonscan2 -c", adjust its parameter values as +described above, and put the file in the DefaultSettings.SF2 path. + +Then, scanimage should work: + Try: + scanimage -o foo.pnm + scanimage --mode Color -o foo.pnm + For A4 paper size: + scanimage --mode Color --scan-area A4 -o foo.pnm + scanimage --mode Color -x 210 -y 297 -o foo.pnm + For US Letter paper size: + scanimage --mode Color --scan-area Letter -o foo.pnm + scanimage --mode Color -x 215.9 -y 279.4 -o foo.pnm + + +SCANNING WITH XSANE + +This doesn't work. See KNOWN PROBLEMS, below. + + +COMMON PROBLEMS + +Read the sections above for fuller details on each of these. + +0. The scanner is not found. + If the scanner is connected bu USB cable, run: + usbconfig dump_device_desc + The following values are supported by this driver: + idVendor = 0x04b8 + idProduct = (see list at end of this file) + + If the scanner is connected by Ethernet or WiFi, and for some + older USB models, the graphics/epsonscan2-non-free-plugin + port must also be installed and the kernel Linux support must + be enabled (see above). + +1. epsonscan2 -s scans but the "img.pdf" file contains a blank image. + Make sure that the config file contains valid settings e.g.: + JpegQuality: 30 + JpegQualityForJpeg: 85 + JpegQualityForPdf: 50 + Resolution: 200 + ScanAreaHeight: 2200 + ScanAreaWidth: 1700 + Threshold: 110 + +2. epsonscan2 -s scans but does not save the file. + Make sure that the config file contains valid settings for: + FileNameOverwrite: "0" to use sequential file + names, "1" to use the same + filename each time + FileNamePrefix: any file name; a number will + be appended if FileNameOverwrite + is set to "0" + UserDefinePath: "./" for the current directory + +3. epsonscan2 -s scans then says "Not enough memory". + Various things can cause this. Usually the problem is an + excessively large scan area or too large values for the image + enhancer. Check the following in your config file: + Resolution: 200 + ScanAreaHeight: 2200 + ScanAreaWidth: 1700 + Threshold: 110 + textEnhance 0 + textEnhanceNoiseReductionLevel 0 + textEnhancePaperCreaseReduction 0 + textEnhanceSensitivity 0 + thresholdAdjustment 0 + +4. epsonscan2 works with USB scanners but not with network scanners. + Make sure that: + a. You have the non-free-plugin port installed and the kernel + Linux emulator enabled. + +5. epsonscan2 scans but then prints: + ERROR : Unable to save scanned files. + /tmp/epsonWork/_12345/: No such file or directory + Make sure that: + a. The working dir, /tmp/epsonWork is writable by the user + running the scan. + +6. scanimage works with USB scanners but not with network scanners. + Make sure that: + a. You have the non-free-plugin port installed and the kernel + Linux emulator enabled. + b. You added the network scanner's IPv4 address to the file: + ~/.epsonscan2/Networks/epsonscan2.conf + +7. scanimage scans but the image is in reverse video. + Specifiy the scan mode using any of: + scanimage --mode Monochrome ... + scanimage --mode Grayscale ... + scanimage --mode Color ... + +KNOWN PROBLEMS + +There are two known problems on FreeBSD at the moment: + +0. es2intif core dumps. + The older scanners that require the es2intif program require a + small patch to the linux_libusb code. Make sure that you have + port devel/linux_libusb-13.1.0 or later and a 13.x or 14.x kernel + newer than 2022/03/05. + +1. xsane scans but then core dumps. + This isn't working. This appears to be a bug in xsane. After + receiving the image data, xsane processes the image in + xsane_read_image_data() which calls xsane_progress_update() to + update a progress bar widget. It core dumps when calling + gtk_main_iteration() from that! Since the xsane port on FreeBSD + is unmaintained, this won't get fixed until someone decides to + take a look at it. + +Good luck! + + +DEBUGGING + +The epsonscan2 driver provides a debugging trace if the directory: + /tmp/epson +exists. It also saves various files in that directory too. + +The sane backend component provides a debugging trace by setting the +following environment variable: + export SANE_DEBUG_EPSONSCAN=IMG + scanimage -L + +The xsane program can be debugged by setting the environment variable: + export XSANE_DEBUG=99 + xsane + + +LIST OF SUPPORTED USB PRODUCT IDs + +The following USB product IDs are supported by the epsonscan2 driver. +Descriptons have been added where they can be determined. + +[*] Models with the [*] require the non-free-plugin port even for USB + access. + +USB +Vendor ID Description +0x04B8 Seiko/Epson Corporation + +Product ID Description +0x0023 +0x0024 +0x0129 ES-10000G [Expression 10000XL] +0x012B ES-H300 [GT-2500] +0x012C GT-X900 [Perfection V700/V750 Photo] +0x0130 GT-X770 [Perfection V500] +0x0133 GT-1500 [GT-D1000] +0x0135 GT-X970 +0x0136 ES-D400 [GT-S80] +0x0137 ES-D200 [GT-S50] +0x0138 ES-H7200 [GT-20000] +0x013A [*] GT-X820 [Perfection V600 Photo] +0x013B [*] +0x013C [*] +0x013D [*] +0x0142 [*] GT-F730 [GT-S630/Perfection V33/V330 Photo] +0x0143 GT-S55 +0x0144 GT-S85 +0x0145 +0x0146 +0x0147 +0x014A [*] +0x014B +0x014C +0x014D +0x0150 +0x0151 Perfection V800 Photo +0x0152 +0x0153 +0x0154 +0x0155 +0x0156 +0x0157 +0x0159 +0x015A +0x015B +0x015C +0x015D +0x015E +0x015F +0x0160 +0x0162 +0x0163 +0x0164 +0x0165 +0x0166 +0x0167 +0x0168 +0x0169 +0x016B +0x016C +0x016D +0x016E +0x016F +0x0170 +0x0171 +0x0172 +0x0173 +0x0176 +0x0177 +0x0178 +0x0179 +0x017A +0x017B +0x017C +0x017D +0x017E +0x017F +0x0180 +0x0181 +0x0182 +0x0183 +0x0184 +0x0185 +0x0186 +0x0187 +0x0188 +0x0189 +0x018A +0x018B +0x018C +0x018D +0x018E +0x018F +0x0190 +0x0191 +0x0192 +0x0869 PX-1600F +0x0879 EP-904A/EP-904F [Artisan 837/Stylus Photo PX830FWD Series] +0x087B EP-804A/EP-804AR/EP-804AW [Stylus Photo PX730WD/Artisan 730 Series] +0x087C PX-1700F +0x087D PX-B750F/WP-4525 Series +0x0899 +0x08A5 +0x08A9 +0x08AA +0x08AC +0x08AD +0x08AE +0x08AF +0x08B0 +0x08B3 +0x08B4 +0x08B5 +0x08B6 +0x08B7 +0x08B8 +0x08B9 +0x08BC +0x08BD +0x08BE +0x08BF +0x08C0 +0x08C1 +0x08C2 +0x08C3 +0x08C4 +0x08C5 +0x08C6 +0x08C7 +0x08C8 +0x08C9 +0x08CA +0x08CC +0x08CD +0x08CE +0x08CF +0x08D0 +0x08D1 +0x08D2 +0x08D3 +0x1101 +0x1102 +0x1103 +0x1104 +0x1105 +0x1106 +0x1107 +0x1108 +0x1109 +0x110A +0x110B +0x110C +0x110D +0x110F +0x1111 +0x1112 +0x1113 +0x1114 XP-440 [Expression Home Small-in-One Printer] +0x1115 +0x1116 +0x1117 +0x1118 +0x1119 +0x111A +0x111B +0x111C +0x111D +0x111E +0x111F +0x1120 +0x1121 +0x1122 +0x1123 +0x1125 +0x1126 +0x1127 +0x1128 +0x1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One] +0x112A +0x112B +0x112C +0x112D +0x112E +0x112F +0x1130 +0x1131 +0x1132 +0x1133 +0x1134 +0x1135 +0x1136 +0x1137 +0x1138 +0x1139 +0x113A +0x113B +0x113C +0x113D +0x113E +0x113F +0x1140 +0x1141 +0x1142 +0x1143 +0x1145 +0x1146 +0x1147 +0x1148 +0x1149 +0x114A +0x114B +0x114C +0x114D +0x114E +0x114F +0x1150 +0x1151 +0x1152 +0x1153 +0x1154 +0x1155 WorkForce ST-3000 Series +0x1156 +0x1157 +0x1158 +0x1159 +0x115A +0x115B +0x115C +0x115D +0x115E +0x115F +0x1160 +0x1161 +0x1162 +0x1163 +0x1164 +0x1165 +0x1166 +0x1167 +0x1168 Workforce WF-7820/7840 Series +0x1169 +0x116A +0x116B +0x116C +0x116D +0x116E +0x116F +0x1170 +0x1171 +0x1172 +0x1173 +0x1174 +0x1175 +0x1176 +0x1177 +0x117A +0x117B +0x117C +0x117D +0x117E +0x117F +0x1180 +0x1181 +0x1182 +0x1183 +0x1184 +0x1185 +0x1186 +0x1187 +0x1188 +0x1189 +0x118A +0x118B +0x118C +0x118D +0x118E +0x118F +0x1190 +0x1191 +0x1192 +0x1193 +0x1194 +0x1195 +0x1196 +0x1197 +0x1198 +0x1199 +0x119A +0x119B +0x119C +0x119D +0x119E +0x119F +0x11A0 +0x11A1 +0x11A2 +0x11A3 +0x11A4 +0x11A5 +0x11A6 +0x11A7 +0x11A8 +0x11A9 +0x11AA +0x11AB +0x11AE +0x11AF +0x11B0 +0x11B1 +0x11B2 +0x11B3 + +End diff --git a/graphics/epsonscan2/files/patch-CMakeLists.txt b/graphics/epsonscan2/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..90c8cdb4fce5 --- /dev/null +++ b/graphics/epsonscan2/files/patch-CMakeLists.txt @@ -0,0 +1,57 @@ +--- CMakeLists.txt.orig 2021-11-25 00:57:03 UTC ++++ CMakeLists.txt +@@ -18,7 +18,6 @@ + # along with this package. If not, see <http://www.gnu.org/licenses/>. + + project (epsonscan2) +-set (CMAKE_INSTALL_PREFIX "/usr") + cmake_minimum_required (VERSION 2.8.12.2) + + include(GNUInstallDirs) +@@ -55,6 +54,14 @@ message(" Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") + message(" Boost_LIBRARIES: ${Boost_LIBRARIES}") + message(" Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") + ++### USB library ############## ++ ++if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++set(usb_LIBRARY "usb") ++else() ++set(usb_LIBRARY "usb-1.0") ++endif() ++ + ############################## + + #### Dependents package ###### +@@ -87,7 +94,11 @@ set(COMMON_ETC_PATH ${CMAKE_INSTALL_FULL_SYSCONFDIR}) + set(EPSON_WORK_PATH /tmp/epsonWork/) + set(EPSON_SETTINGS_PATH $ENV{HOME}/.epsonscan2/) + ++if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++set (CMAKE_INSTALL_PREFIX /usr/local) ++else() + SET (CMAKE_INSTALL_PREFIX /usr) ++endif() + set(EPSON_INSTALL_PATH ${CMAKE_INSTALL_FULL_LIBDIR}/epsonscan2/) + set(COMMON_SHARE_PATH ${CMAKE_INSTALL_FULL_DATAROOTDIR}) + +@@ -114,11 +125,19 @@ add_subdirectory(src) + + install(DIRECTORY Resources DESTINATION ${EPSON_INSTALL_ROOT}${EPSON_INSTALL_PATH}) + ++if (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++install(FILES epsonscan2.rules DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d/ RENAME 60-epsonscan2.rules) ++install(FILES epsonscan2 DESTINATION ${CMAKE_INSTALL_PREFIX}/etc/sane.d/dll.d) ++install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory $ENV{STAGEDIR}${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_FULL_LIBDIR}/sane/)") ++install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ../epsonscan2/libsane-epsonscan2.so $ENV{STAGEDIR}${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_FULL_LIBDIR}/sane/libsane-epsonscan2.so.1)") ++install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ../epsonscan2/libsane-epsonscan2.so $ENV{STAGEDIR}${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_FULL_LIBDIR}/sane/libsane-epsonscan2.so.1.0.0)") ++else() + install(FILES epsonscan2.rules DESTINATION ${EPSON_INSTALL_ROOT}/lib/udev/rules.d/ RENAME 60-epsonscan2.rules) + install(FILES epsonscan2 DESTINATION ${EPSON_INSTALL_ROOT}/etc/sane.d/dll.d) + install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_FULL_LIBDIR}/sane/)") + install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ../epsonscan2/libsane-epsonscan2.so ${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_FULL_LIBDIR}/sane/libsane-epsonscan2.so.1)") + install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ../epsonscan2/libsane-epsonscan2.so ${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_FULL_LIBDIR}/sane/libsane-epsonscan2.so.1.0.0)") ++endif() + + install(FILES changelog.Debian DESTINATION ${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_PREFIX}/share/doc/epsonscan2${EPSON_VERSION}) + diff --git a/graphics/epsonscan2/files/patch-src_CommonUtility_DbgLog.cpp b/graphics/epsonscan2/files/patch-src_CommonUtility_DbgLog.cpp new file mode 100644 index 000000000000..b4e8e0bfd21d --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_CommonUtility_DbgLog.cpp @@ -0,0 +1,21 @@ +--- src/CommonUtility/DbgLog.cpp.orig 2021-11-25 00:56:55 UTC ++++ src/CommonUtility/DbgLog.cpp +@@ -34,6 +34,9 @@ + #ifdef __ANDROID__ + #include <android/log.h> + #endif ++#if __FreeBSD__ ++#include <pthread_np.h> ++#endif + #if TARGET_OS_IPHONE + #include <CoreFoundation/CoreFoundation.h> + #endif +@@ -87,6 +90,8 @@ GetCurrentThreadId(void) + { + #if TARGET_OS_IPHONE + return (DWORD)pthread_mach_thread_np(pthread_self()); ++#elif __FreeBSD__ ++ return pthread_getthreadid_np(); + #else + return syscall(SYS_gettid); + #endif diff --git a/graphics/epsonscan2/files/patch-src_CommonUtility_utils_ESAnyCastUtils.h b/graphics/epsonscan2/files/patch-src_CommonUtility_utils_ESAnyCastUtils.h new file mode 100644 index 000000000000..805a5c42bbb2 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_CommonUtility_utils_ESAnyCastUtils.h @@ -0,0 +1,28 @@ +--- src/CommonUtility/utils/ESAnyCastUtils.h.orig 2021-11-25 00:56:55 UTC ++++ src/CommonUtility/utils/ESAnyCastUtils.h +@@ -141,7 +141,11 @@ const T* SafeAnyDataCPtr( const ESAny& anyIn ) + template< typename T > + T* SafeAnyDataPtr_WithLog( ESAny& anyIn, ES_CHAR_CPTR lpszFile = __ES_FILE__, const int nLine = __LINE__ ) + { +- if( anyIn.empty() || (anyIn.type() != typeid(T)) ){ ++ // XXX changed to a string comparison of the type name here because, on FreeBSD, the hash_code()s for anyIn.type() and typeid(T) are differing for T = ESDictionary ++ // even though the names of the types are the same! ++ // It should work as it was. It is not efficient now. Why are the type hash_code()s different on FreeBSD?? ++ // was: if( anyIn.empty() || (anyIn.type() != typeid(T)) ){ ++ if( anyIn.empty() || ES_CMN_FUNCS::STRING::ToESString(anyIn.type().name()).compare(ES_CMN_FUNCS::STRING::ToESString(typeid(T).name())) != 0 ){ + if(anyIn.empty()){ + ES_Warning_Log3( __ES_FUNCTION__, lpszFile, nLine, ES_STRING("Boost Any Cast Warning Empty!!")); + } else { +@@ -167,7 +171,11 @@ T* SafeAnyDataPtr_WithLog( ESAny& anyIn, ES_CHAR_CPTR + template< typename T > + const T* SafeAnyDataCPtr_WithLog( const ESAny& anyIn, ES_CHAR_CPTR lpszFile = __ES_FILE__, const int nLine = __LINE__ ) + { +- if( anyIn.empty() || (anyIn.type() != typeid(T)) ){ ++ // XXX changed to a string comparison of the type name here because, on FreeBSD, the hash_code()s for anyIn.type() and typeid(T) are differing for T = ESDictionary ++ // even though the names of the types are the same! ++ // It should work as it was. It is not efficient now. Why are the type hash_code()s different on FreeBSD?? ++ // was: if( anyIn.empty() || (anyIn.type() != typeid(T)) ){ ++ if( anyIn.empty() || ES_CMN_FUNCS::STRING::ToESString(anyIn.type().name()).compare(ES_CMN_FUNCS::STRING::ToESString(typeid(T).name())) != 0 ){ + if(anyIn.empty()){ + ES_Warning_Log3( __ES_FUNCTION__, lpszFile, nLine, ES_STRING("Boost Any Cast Warning Empty!!")); + } else { diff --git a/graphics/epsonscan2/files/patch-src_CommonUtility_utils_ESFile.cpp b/graphics/epsonscan2/files/patch-src_CommonUtility_utils_ESFile.cpp new file mode 100644 index 000000000000..316223a0ea16 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_CommonUtility_utils_ESFile.cpp @@ -0,0 +1,12 @@ +--- src/CommonUtility/utils/ESFile.cpp.orig 2021-11-25 00:56:55 UTC ++++ src/CommonUtility/utils/ESFile.cpp +@@ -48,6 +48,9 @@ CESFile* CESFile::CreateFileInstanceWithPath(ESString + } + } + CESFile* CESFile::CreateTempFileInstanceWithPrefix( ESString strFolder, ESString strPrefix, ES_OPEN_MODE eOpenMode ){ ++ if (!ES_CMN_FUNCS::PATH::ES_IsWritableFolder(strFolder)) { ++ return FALSE; ++ } + try { + CESFile* pcFile = new CESFile(); + if( !pcFile->CreateTempFile(strFolder, strPrefix, eOpenMode) ){ diff --git a/graphics/epsonscan2/files/patch-src_CommonUtility_utils_PathUtils.cpp b/graphics/epsonscan2/files/patch-src_CommonUtility_utils_PathUtils.cpp new file mode 100644 index 000000000000..5ed82c1f98b9 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_CommonUtility_utils_PathUtils.cpp @@ -0,0 +1,10 @@ +--- src/CommonUtility/utils/PathUtils.cpp.orig 2021-11-25 00:56:55 UTC ++++ src/CommonUtility/utils/PathUtils.cpp +@@ -609,7 +609,6 @@ namespace ES_CMN_FUNCS + else + { + bResult = TRUE; +- break; + } + } + #endif diff --git a/graphics/epsonscan2/files/patch-src_Controller_CMakeLists.txt b/graphics/epsonscan2/files/patch-src_Controller_CMakeLists.txt new file mode 100644 index 000000000000..3f32ef5a613b --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_CMakeLists.txt @@ -0,0 +1,11 @@ +--- src/Controller/CMakeLists.txt.orig 2021-11-25 00:56:54 UTC ++++ src/Controller/CMakeLists.txt +@@ -171,7 +171,7 @@ target_link_libraries( epsonscan2 + dl + commonutility + ${Boost_LIBRARIES} +- usb-1.0 ++ ${usb_LIBRARY} + ) + + install(TARGETS epsonscan2 DESTINATION ${EPSON_INSTALL_ROOT}${EPSON_INSTALL_PATH}) diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_EntryPoints.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_EntryPoints.cpp new file mode 100644 index 000000000000..921c107f4320 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_EntryPoints.cpp @@ -0,0 +1,11 @@ +--- src/Controller/Src/EntryPoints.cpp.orig 2021-11-25 00:56:59 UTC ++++ src/Controller/Src/EntryPoints.cpp +@@ -346,6 +346,8 @@ SDIError SDIScannerDriver_GetNextTransferEvent(SDIScan + } + } + break; ++ case kEventTypePaperJam: ++ break; + } + if (outError) + { diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_FileFormat_FFManager.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_FileFormat_FFManager.cpp new file mode 100644 index 000000000000..e6403f5cc97d --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_FileFormat_FFManager.cpp @@ -0,0 +1,12 @@ +--- src/Controller/Src/FileFormat/FFManager.cpp.orig 2021-11-25 00:56:58 UTC ++++ src/Controller/Src/FileFormat/FFManager.cpp +@@ -176,6 +176,9 @@ namespace epsonscan + return kFKWriterTypePnm; + case kSDIImageFormatBMP: + return kFKWriterTypeBmp; ++ case kSDIImageFormatRaw: ++ case kSDIImageFormatColorJpegMonoPNM: ++ break; + } + return kFKWriterTypeBmp; + } diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_DTR.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_DTR.cpp new file mode 100644 index 000000000000..68f1592dd27f --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_DTR.cpp @@ -0,0 +1,21 @@ +--- src/Controller/Src/Filter/DTR.cpp.orig 2021-11-25 00:56:57 UTC ++++ src/Controller/Src/Filter/DTR.cpp +@@ -26,6 +26,9 @@ + #include <utils/ESFile.h> + #include <ES2Command/ES2CommandAPI.h> + #include <math.h> ++#if __FreeBSD__ ++#include <sys/wait.h> ++#endif + namespace epsonscan + { + static const int kMaxBuf = 256; +@@ -409,7 +412,7 @@ ESNumber CustomSkipLevelAsPercent(ESNumber inLevel) + dtrExecCommand << " "; + dtrExecCommand << "0"; + dtrExecCommand << " "; +- dtrExecCommand << (keyMgr->GetValueInt(kSDIAutoColorPixelTypeKey) == kSDIAutoColorPixelTypeAuto) ? 1 : 0; ++ dtrExecCommand << ((keyMgr->GetValueInt(kSDIAutoColorPixelTypeKey) == kSDIAutoColorPixelTypeAuto) ? 1 : 0); + dtrExecCommand << " "; + dtrExecCommand << keyMgr->GetValueInt(kSDIAutoColorPixelLevelKey); + SDI_TRACE_LOG("dtrExecCommand = %s", dtrExecCommand.str().c_str()); diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_ProcOrientation.hpp b/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_ProcOrientation.hpp new file mode 100644 index 000000000000..fff9dd20bb0b --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_ProcOrientation.hpp @@ -0,0 +1,10 @@ +--- src/Controller/Src/Filter/ProcOrientation.hpp.orig 2021-11-25 00:56:58 UTC ++++ src/Controller/Src/Filter/ProcOrientation.hpp +@@ -89,6 +89,7 @@ class ProcOrientation : public Filter (private) + } + break; + case kSDIOrientationNone: ++ case kSDIOrientationAuto: + break; + } + inDataBuf.FreeBuffer(); diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_Saving.hpp b/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_Saving.hpp new file mode 100644 index 000000000000..03610918c7f1 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_Filter_Saving.hpp @@ -0,0 +1,20 @@ +--- src/Controller/Src/Filter/Saving.hpp.orig 2022-03-20 15:38:28 UTC ++++ src/Controller/Src/Filter/Saving.hpp +@@ -76,8 +76,7 @@ namespace epsonscan + imgFormat = kSDIImageFormatPNM; + } + file = CESFile::CreateTempFileInstanceWithPrefix(ES_CMN_FUNCS::PATH::ES_GetWorkTempPath(), prefixStream.str()); +- file->CloseFile(); +- if(ffMgr.Write(inDataBuf, ++ if(!file || ffMgr.Write(inDataBuf, + file->GetFileName(), + imgFormat, + imageInfo, +@@ -91,6 +90,7 @@ namespace epsonscan + } + } + filePath_ = file->GetFileName(); ++ file->CloseFile(); + delete file; + file = nullptr; + } diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_Finder_UsbFinder.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_Finder_UsbFinder.cpp new file mode 100644 index 000000000000..5fd43e5515ca --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_Finder_UsbFinder.cpp @@ -0,0 +1,14 @@ +--- src/Controller/Src/Finder/UsbFinder.cpp.orig 2021-11-25 00:56:57 UTC ++++ src/Controller/Src/Finder/UsbFinder.cpp +@@ -25,7 +25,11 @@ + #include "ModelInfo.hpp" + #include "Utility.hpp" + extern "C" { ++#if __FreeBSD__ ++#include <libusb.h> ++#else + #include <libusb-1.0/libusb.h> ++#endif + } + #include <list> + #include <iostream> diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_Resolution.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_Resolution.cpp new file mode 100644 index 000000000000..b524fde21606 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_Resolution.cpp @@ -0,0 +1,11 @@ +--- src/Controller/Src/KeysValues/All/Resolution.cpp.orig 2021-11-25 00:56:58 UTC ++++ src/Controller/Src/KeysValues/All/Resolution.cpp +@@ -142,7 +142,7 @@ ESDictionary Resolution::GetSeolutionTable(bool isXRes + ES_CMN_FUNCS::JSON::JSONFiletoDictionary(resTablePath, resTable); + }else + { +- SDI_TRACE_LOG("resolution faile does not found"); ++ SDI_TRACE_LOG("resolution file not found"); + } + } + catch (boost::bad_any_cast) { diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_ScanHeightMax.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_ScanHeightMax.cpp new file mode 100644 index 000000000000..c80cfd057a42 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_ScanHeightMax.cpp @@ -0,0 +1,11 @@ +--- src/Controller/Src/KeysValues/All/ScanHeightMax.cpp.orig 2021-11-25 00:56:58 UTC ++++ src/Controller/Src/KeysValues/All/ScanHeightMax.cpp +@@ -59,6 +59,8 @@ void ScanHeightMax::GetValue(SDIInt& intVal) + case kSDIFunctionalUnitDocumentFeeder: + intVal = ADFValue(); + return; ++ case kSDIFunctionalUnitCarrierSheet: ++ break; + } + } + void ScanHeightMax::GetCapability(SDICapability &capability) diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_ScanWidthMax.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_ScanWidthMax.cpp new file mode 100644 index 000000000000..e04ba20df560 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_KeysValues_All_ScanWidthMax.cpp @@ -0,0 +1,11 @@ +--- src/Controller/Src/KeysValues/All/ScanWidthMax.cpp.orig 2021-11-25 00:56:58 UTC ++++ src/Controller/Src/KeysValues/All/ScanWidthMax.cpp +@@ -58,6 +58,8 @@ void ScanWidthMax::GetValue(SDIInt& intVal) + case kSDIFunctionalUnitDocumentFeeder: + intVal = ADFValue(); + return; ++ case kSDIFunctionalUnitCarrierSheet: ++ break; + } + } + void ScanWidthMax::GetCapability(SDICapability &capability) diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_Scanner_Engine.hpp b/graphics/epsonscan2/files/patch-src_Controller_Src_Scanner_Engine.hpp new file mode 100644 index 000000000000..38ece0009a89 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_Scanner_Engine.hpp @@ -0,0 +1,26 @@ +--- src/Controller/Src/Scanner/Engine.hpp.orig 2021-11-25 00:56:59 UTC ++++ src/Controller/Src/Scanner/Engine.hpp +@@ -357,14 +357,14 @@ namespace epsonscan { + void CALLBACK ScannerDidWarmUp( IESScanner* pScanner ) override; + void CALLBACK NetworkScannerDidRequestStartScanning( IESScanner* pScanner ) override; + void CALLBACK NetworkScannerDidRequestStopScanning( IESScanner* pScanner ) override; +- void CALLBACK ScannerDidDisconnect( IESScanner* pScanner ) ; +- void CALLBACK NetworkScannerDidReceiveServerError(IESScanner* pScanner) ; +- BOOL CALLBACK NetworkScannerShouldPreventTimeout( IESScanner* pScanner ) ; +- void CALLBACK NetworkScannerDidTimeout( IESScanner* pScanner ) ; +- void CALLBACK ScannerIsReservedByHost( IESScanner* pScanner, const ES_CHAR* pszAddress ) ; +- void CALLBACK ScannerDidPressButton( UInt8 un8ButtonNumber ) ; +- void CALLBACK ScannerDidRequestStop(IESScanner *pScanner); +- void CALLBACK ScannerDidRequestPushScanConnection(IESScanner *pScanner); +- void CALLBACK ScannerDidNotifyStatusChange(IESScanner *pScanner) ; ++ void CALLBACK ScannerDidDisconnect( IESScanner* pScanner ) override; ++ void CALLBACK NetworkScannerDidReceiveServerError(IESScanner* pScanner) override; ++ BOOL CALLBACK NetworkScannerShouldPreventTimeout( IESScanner* pScanner ) override; ++ void CALLBACK NetworkScannerDidTimeout( IESScanner* pScanner ) override; ++ void CALLBACK ScannerIsReservedByHost( IESScanner* pScanner, const ES_CHAR* pszAddress ) override; ++ void CALLBACK ScannerDidPressButton( UInt8 un8ButtonNumber ) override; ++ void CALLBACK ScannerDidRequestStop(IESScanner *pScanner) override; ++ void CALLBACK ScannerDidRequestPushScanConnection(IESScanner *pScanner) override; ++ void CALLBACK ScannerDidNotifyStatusChange(IESScanner *pScanner) override; + }; + } diff --git a/graphics/epsonscan2/files/patch-src_Controller_Src_Scanner_Scanner.cpp b/graphics/epsonscan2/files/patch-src_Controller_Src_Scanner_Scanner.cpp new file mode 100644 index 000000000000..4d5aefd35aff --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Controller_Src_Scanner_Scanner.cpp @@ -0,0 +1,27 @@ +--- src/Controller/Src/Scanner/Scanner.cpp.orig 2021-11-25 00:56:59 UTC ++++ src/Controller/Src/Scanner/Scanner.cpp +@@ -188,7 +188,7 @@ void Scanner::EngineCallBackReceiver(EngineEventType e + error == kSDIErrorDataSend || + error == kSDIErrorInvalidResponse || + error == kSDIErrorDeviceFatalError || +- error == kESErrorDeviceOpenError ) ++ error == (SDIError) kESErrorDeviceOpenError ) + { + SDI_TRACE_LOG("communication error occurs"); + isOpened_ = false; +@@ -202,13 +202,13 @@ SDIError Scanner::Open() + SDIError err; + if (engine_) { + err = engine_->Open(); +- if(err != kSDIErrorNone){ ++ if(err != kSDIErrorNone && err != kSDIErrorDeviceOpen){ + return err; + } + } + if (engineSecond_) { + err = engineSecond_->Open(); +- if(err != kSDIErrorNone){ ++ if(err != kSDIErrorNone && err != kSDIErrorDeviceOpen){ + return err; + } + } diff --git a/graphics/epsonscan2/files/patch-src_ES2Command_Linux_CMakeLists.txt b/graphics/epsonscan2/files/patch-src_ES2Command_Linux_CMakeLists.txt new file mode 100644 index 000000000000..f30d1dd28c88 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2Command_Linux_CMakeLists.txt @@ -0,0 +1,11 @@ +--- src/ES2Command/Linux/CMakeLists.txt.orig 2021-11-25 00:56:54 UTC ++++ src/ES2Command/Linux/CMakeLists.txt +@@ -60,7 +60,7 @@ target_link_libraries( es2command + dl + commonutility + ${Boost_LIBRARIES} +- usb-1.0 ++ ${usb_LIBRARY} + ) + + install(TARGETS es2command DESTINATION ${EPSON_INSTALL_ROOT}${EPSON_INSTALL_PATH}) diff --git a/graphics/epsonscan2/files/patch-src_ES2Command_Src_Command_ESCI2_ESCI2Accessor.h b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Command_ESCI2_ESCI2Accessor.h new file mode 100644 index 000000000000..5ecc95e2bb57 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Command_ESCI2_ESCI2Accessor.h @@ -0,0 +1,38 @@ +--- src/ES2Command/Src/Command/ESCI2/ESCI2Accessor.h.orig 2021-11-25 00:56:55 UTC ++++ src/ES2Command/Src/Command/ESCI2/ESCI2Accessor.h +@@ -37,7 +37,7 @@ class CESCI2Accessor : public CESCI2Command (protected + ESErrorCode SetPanelToPushScanReady( BOOL bPushScanReady ); + ESErrorCode UnlockAdministratorLock(); + ESErrorCode LockAdministratorLock(); +- bool RequestingUnlockAdminLock(); ++ virtual bool RequestingUnlockAdminLock() override; + BOOL IsScannableDeviceConfig(); + ESErrorCode CaptureScanner(); + ESErrorCode ReleaseScanner(); +@@ -208,7 +208,7 @@ class CESCI2Accessor : public CESCI2Command (protected + ESErrorCode _SetColorMatrix( ES_COLOR_MATRIX& matrix ); + ESErrorCode SetColorMatrix( ESFloatArray arColorMatrix ); + bool IsSkewCorrectionSupported(); +- bool IsSkewCorrectionEnabled(); ++ bool IsSkewCorrectionEnabled() override; + ESErrorCode SetSkewCorrectionEnabled( bool bSkewCorrectionEnabled ); + ESAny GetSupportedThreshold(); + ESNumber GetThreshold(); +@@ -226,7 +226,7 @@ class CESCI2Accessor : public CESCI2Command (protected + ESNumber GetGammaScale(); + ESErrorCode SetGammaScale( ESNumber nGammaScale ); + ESAny GetSupportedBackGroundRemoval(); +- ESNumber GetBackGroundRemoval(); ++ virtual ESNumber GetBackGroundRemoval() override; + ESErrorCode SetBackGroundRemoval( ESNumber nBackGroundRemoval ); + ESAny GetSupportedJPEGQuality(); + ESNumber GetJPEGQuality(); +@@ -235,7 +235,7 @@ class CESCI2Accessor : public CESCI2Command (protected + ESQuietMode GetQuietMode(); + ESErrorCode SetQuietMode( ESNumber nQuietMode); + bool IsAutoCroppingSupported(); +- bool IsAutoCroppingEnabled(); ++ virtual bool IsAutoCroppingEnabled() override; + ESErrorCode SetAutoCroppingEnabled( bool bAutoCroppingEnabled ); + ESAny GetCroppableResolutions(); + ESAny GetSupportedCroppingSizes(); diff --git a/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_ipc_ipcInterfaceImpl.cpp b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_ipc_ipcInterfaceImpl.cpp new file mode 100644 index 000000000000..d930216e6727 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_ipc_ipcInterfaceImpl.cpp @@ -0,0 +1,11 @@ +--- src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp.orig 2021-11-25 00:56:54 UTC ++++ src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp +@@ -307,7 +307,7 @@ bool IPCInterfaceImpl::recv_reply(uint32_t* token) + if (placeholder) delete [] placeholder; + if (token) *token = hdr_token(hdr); + if (hdr_error(hdr) || n < 0) { +- ES_ERROR_LOG(ES_STRING("recv_reply err.(%d, %d, n)"), hdr_error(hdr), hdr_token(hdr), n); ++ ES_ERROR_LOG(ES_STRING("recv_reply err.(%d, %d, %ld)"), hdr_error(hdr), hdr_token(hdr), n); + return false; + } + return true; diff --git a/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_usb_usbInterfaceImpl.cpp b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_usb_usbInterfaceImpl.cpp new file mode 100644 index 000000000000..b7225c97f1b8 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_usb_usbInterfaceImpl.cpp @@ -0,0 +1,12 @@ +--- src/ES2Command/Src/Interface/usb/usbInterfaceImpl.cpp.orig 2021-11-25 00:56:54 UTC ++++ src/ES2Command/Src/Interface/usb/usbInterfaceImpl.cpp +@@ -46,7 +46,8 @@ USBInterfaceImpl::USBInterfaceImpl() + sm_ctx = nullptr; + throw std::runtime_error("unable to initialise USB support"); + } +- libusb_set_debug(sm_ctx, 3); ++ // XXX this cannot be left enabled as the debug messages go to stdout which is where the scan image data goes ++ //libusb_set_debug(sm_ctx, 3); + } + ++sm_nConnectionCount; + } diff --git a/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_usb_usbInterfaceImpl.h b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_usb_usbInterfaceImpl.h new file mode 100644 index 000000000000..247cabd4050e --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Interface_usb_usbInterfaceImpl.h @@ -0,0 +1,15 @@ +--- src/ES2Command/Src/Interface/usb/usbInterfaceImpl.h.orig 2021-11-25 00:56:54 UTC ++++ src/ES2Command/Src/Interface/usb/usbInterfaceImpl.h +@@ -20,8 +20,11 @@ + // usbInterfaceImpl.h -- template and derived ESC/I ESC/I-2 protocol commands + #pragma once + +- ++#if __FreeBSD__ ++#include <libusb.h> ++#else + #include <libusb-1.0/libusb.h> ++#endif + #include "../interfaceImpl.h" + #include "../interface.h" + class USBInterfaceImpl : public IInterfaceImpl diff --git a/graphics/epsonscan2/files/patch-src_ES2Command_Src_Utils_semaphore.hpp b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Utils_semaphore.hpp new file mode 100644 index 000000000000..680ae4f57ab8 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2Command_Src_Utils_semaphore.hpp @@ -0,0 +1,71 @@ +--- src/ES2Command/Src/Utils/semaphore.hpp.orig 2021-11-25 00:56:55 UTC ++++ src/ES2Command/Src/Utils/semaphore.hpp +@@ -23,6 +23,10 @@ + + #include<sys/sem.h> + #include <stdexcept> ++#ifdef __FreeBSD__ ++#include <chrono> ++#include <thread> ++#endif + #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) + #else + union semun { +@@ -88,9 +92,26 @@ class semaphore (public) + } + int wait(int timeout_s) + { ++#ifdef __FreeBSD__ ++ int err; + sembuf operations[1]; + operations[0].sem_num = 0; + operations[0].sem_op = WAIT; ++ operations[0].sem_flg = SEM_UNDO | IPC_NOWAIT; ++ for (int i = 0; i < timeout_s * 100; i++) { ++ err = semop(sem_id_, operations, 1); ++ if (err == EAGAIN) { ++ std::this_thread::sleep_for(std::chrono::milliseconds(10)); ++ } ++ else { ++ return err; ++ } ++ } ++ return ETIMEDOUT; ++#else ++ sembuf operations[1]; ++ operations[0].sem_num = 0; ++ operations[0].sem_op = WAIT; + operations[0].sem_flg = SEM_UNDO; + struct timespec time{}; + time.tv_sec = timeout_s; +@@ -98,6 +119,7 @@ class semaphore (public) + return errno; + } + return 0; ++#endif + } + void lock() + { +@@ -128,6 +150,14 @@ class semaphore (public) + } + int wait_and_lock(int timeout_s) + { ++#ifdef __FreeBSD__ ++ int err; ++ if ((err = wait(timeout_s)) == 0) { ++ lock(); ++ return 0; ++ } ++ return err; ++#else + sembuf operations[2]; + operations[0].sem_num = 0; + operations[0].sem_op = WAIT; +@@ -141,6 +171,7 @@ class semaphore (public) + return errno; + } + return 0; ++#endif + } + private: + key_t key_; diff --git a/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_IO_FKDestination.h b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_IO_FKDestination.h new file mode 100644 index 000000000000..49ec9593d64d --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_IO_FKDestination.h @@ -0,0 +1,32 @@ +--- src/ES2FileFormat/Header/IO/FKDestination.h.orig 2021-11-25 00:56:57 UTC ++++ src/ES2FileFormat/Header/IO/FKDestination.h +@@ -33,12 +33,12 @@ class CFKDestination : public IFKDestination (private) + public: + CFKDestination(); + ~CFKDestination(); +- FKDestinationType GetFKDestinationType() ++ FKDestinationType GetFKDestinationType() override + { + return m_eFKDestinationType; + } +- ES_CMN_FUNCS::BUFFER::IESBuffer& GetSource(); +- void SetDelegate(IFKDestinationDelegate* piDelegate){ ++ ES_CMN_FUNCS::BUFFER::IESBuffer& GetSource() override; ++ void SetDelegate(IFKDestinationDelegate* piDelegate) override { + m_pcDelegate = piDelegate ; + } + void SetUserData(const ESImageInfo& dictImageInfo){ +@@ -50,10 +50,10 @@ class CFKDestination : public IFKDestination (private) + virtual void SetUserDataAsJson(ES_CHAR_CPTR pszUserDataAsJson) override; + virtual void GetUserDataAsJson(IESResultString& pszUserDataAsJson) override; + static IFKDestination* CreateAndInitInstanceWithType( FKDestinationType eType, ES_CMN_FUNCS::BUFFER::IESBuffer& cSource ); +- void NotifyDidBeginReceivingForImageInfo( ES_CHAR_CPTR pszImageInfoAsJson ); +- void NotifyDidEndReceivingForImageInfo( ES_CHAR_CPTR pszImageInfoAsJson ); ++ void NotifyDidBeginReceivingForImageInfo( ES_CHAR_CPTR pszImageInfoAsJson ) override; ++ void NotifyDidEndReceivingForImageInfo( ES_CHAR_CPTR pszImageInfoAsJson ) override; + void NotifyReceiveImageData( ES_CMN_FUNCS::BUFFER::IESBuffer& cData, ES_CHAR_CPTR pszImageInfoAsJson ) override; +- void Destroy(){ ++ void Destroy() override { + delete this; + } + }; diff --git a/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_IO_FKSource.h b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_IO_FKSource.h new file mode 100644 index 000000000000..c6dddcda8f9f --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_IO_FKSource.h @@ -0,0 +1,11 @@ +--- src/ES2FileFormat/Header/IO/FKSource.h.orig 2021-11-25 00:56:57 UTC ++++ src/ES2FileFormat/Header/IO/FKSource.h +@@ -40,7 +40,7 @@ class CFKSource : public IFKSource (public) + { + return m_bFull; + } +- ES_CMN_FUNCS::BUFFER::IESBuffer& GetSource( ); ++ ES_CMN_FUNCS::BUFFER::IESBuffer& GetSource( ) override; + static IFKSource* CreateAndInitInstanceWithType(FKSourceType eSourceType, ES_CMN_FUNCS::BUFFER::IESBuffer& vpSource, BOOL bIsFull); + void Destroy() override{ + delete this; diff --git a/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_Reader_FKReader.h b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_Reader_FKReader.h new file mode 100644 index 000000000000..13ac013b39c3 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Header_Reader_FKReader.h @@ -0,0 +1,34 @@ +--- src/ES2FileFormat/Header/Reader/FKReader.h.orig 2021-11-25 00:56:57 UTC ++++ src/ES2FileFormat/Header/Reader/FKReader.h +@@ -42,21 +42,21 @@ class CFKReader : public IFKReader (public) + m_nValidImageHeight = nHeight; + m_bReadOnlyValidData = bReadOnlyValidData; + } +- IFKDestination* GetCFkDestionation() ++ IFKDestination* GetCFkDestionation() override + { + return m_piFkDestination; + } + ESImageInfo& GetImageInfo(void); + virtual void GetImageInfoAsJson(IESResultString& strJson) override; +- BOOL OpenWithDestination( IFKDestination* pcDestination, ENUM_FK_ERROR_CODE& eError ); +- BOOL OpenWithDestinationAsJson( IFKDestination* pcDestination, ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ); +- virtual BOOL AppendSource(IFKSource* source, ENUM_FK_ERROR_CODE& eError); +- BOOL CloseAndReturnError( ENUM_FK_ERROR_CODE& eError ); +- BOOL CloseWithOptionAsJson( ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ); +- virtual BOOL OpenReaderWithOptionAsJson( ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ) = 0; +- virtual BOOL AppendSourceToReader( IFKSource* pcSource, ENUM_FK_ERROR_CODE& eError ) = 0; +- virtual BOOL CloseReaderWithOptionAsJson( ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ) = 0; +- void Destroy(){ ++ BOOL OpenWithDestination( IFKDestination* pcDestination, ENUM_FK_ERROR_CODE& eError ) override; ++ BOOL OpenWithDestinationAsJson( IFKDestination* pcDestination, ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ) override; ++ virtual BOOL AppendSource(IFKSource* source, ENUM_FK_ERROR_CODE& eError) override; ++ BOOL CloseAndReturnError( ENUM_FK_ERROR_CODE& eError ) override; ++ BOOL CloseWithOptionAsJson( ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ) override; ++ virtual BOOL OpenReaderWithOptionAsJson( ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ) override = 0; ++ virtual BOOL AppendSourceToReader( IFKSource* pcSource, ENUM_FK_ERROR_CODE& eError ) override = 0; ++ virtual BOOL CloseReaderWithOptionAsJson( ES_CHAR_CPTR pszOptionAsJson, ENUM_FK_ERROR_CODE& eError ) override = 0; ++ void Destroy() override { + delete this; + } + }; diff --git a/graphics/epsonscan2/files/patch-src_ES2FileFormat_Source_PnmUtil_FKPnmUtil.cpp b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Source_PnmUtil_FKPnmUtil.cpp new file mode 100644 index 000000000000..f0df1a08cec3 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ES2FileFormat_Source_PnmUtil_FKPnmUtil.cpp @@ -0,0 +1,11 @@ +--- src/ES2FileFormat/Source/PnmUtil/FKPnmUtil.cpp.orig 2022-02-17 18:20:53 UTC ++++ src/ES2FileFormat/Source/PnmUtil/FKPnmUtil.cpp +@@ -137,7 +137,7 @@ BOOL CFKPnmEncodeUtil::StartEncodingWithData(IFKDestin + ES_ErrorBailWithAction(m_cData.AllocBuffer(nHeaderSize + 4), BAIL, + this, eError = kFKMemError, ES_STRING("memory alloc error")); + } +- memcpy(m_cData.GetBufferPtr(), m_pnmHeader.c_str(), sizeof(m_pnmHeader.c_str())); ++ memcpy(m_cData.GetBufferPtr(), m_pnmHeader.c_str(), strlen(m_pnmHeader.c_str())+1); + m_rowBytes = ES_IMAGE_INFO::GetESImageBytesPerRow(imageInfo); + pDest->NotifyDidBeginReceivingForImageInfo(m_strImageJson.c_str()); + if (pDest->GetFKDestinationType() == kFKDestinationTypeEmpty){ diff --git a/graphics/epsonscan2/files/patch-src_Platform.cpp b/graphics/epsonscan2/files/patch-src_Platform.cpp new file mode 100644 index 000000000000..0e2bdc96e935 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Platform.cpp @@ -0,0 +1,69 @@ +--- src/Platform.cpp.orig 2021-11-25 00:56:59 UTC ++++ src/Platform.cpp +@@ -22,6 +22,10 @@ + #include "Platform.h" + #include "CommonUtility/utils/PathUtils.h" + #include <fstream> ++#ifdef __FreeBSD__ ++#include <pthread_np.h> ++#define pthread_tryjoin_np(tid,st) pthread_peekjoin_np(tid,st) ++#endif + #ifndef WIN32 + errno_t fopen_s( + FILE** pFile, +@@ -105,7 +109,7 @@ DWORD WaitForSingleObject( + case THREAD_HANDLE_ID: + { + LPTHREAD_HANDLE hThreadHandle = (LPTHREAD_HANDLE) hHandle; +- if( (int)NULL == hThreadHandle->threadID ) { ++ if( 0 == hThreadHandle->threadID ) { + return WAIT_OBJECT_0; + } + int thread_status = 0; +@@ -121,7 +125,7 @@ DWORD WaitForSingleObject( + { + intptr_t lRet = (intptr_t)pStatus; + hThreadHandle->dwThreadStatus = (DWORD)lRet; +- hThreadHandle->threadID = (int)NULL; ++ hThreadHandle->threadID = 0; + } + } + while (EBUSY == thread_status); +@@ -180,7 +184,7 @@ BOOL CloseHandle(HANDLE hObject) + WaitForSingleObject(hObject, INFINITE); + LPTHREAD_HANDLE pThreadHandle = (LPTHREAD_HANDLE)hObject; + pThreadHandle->dwThreadStatus = 0; +- pThreadHandle->threadID = (int)NULL; ++ pThreadHandle->threadID = 0; + #endif + } + break; +@@ -347,7 +351,11 @@ DWORD GetModuleFileName(LPTSTR lpFilename, DWORD buf_s + { + DWORD dwRet = 0; + memset(lpFilename, 0, buf_size); ++#ifdef __FreeBSD__ ++ readlink( "/proc/curproc/file", lpFilename, buf_size - 1 ); ++#else + readlink( "/proc/self/exe", lpFilename, buf_size - 1 ); ++#endif + dwRet = (DWORD)strlen(lpFilename); + return dwRet; + } +@@ -397,14 +405,14 @@ errno_t strcat_s( + } + if (NULL == strSource) + { +- strDestination[0] = (char)NULL; ++ strDestination[0] = '\0'; + return EINVAL; + } + if ( (0 == numberOfElements) + || (numberOfElements <= (strlen(strDestination) + strlen(strSource))) + ) + { +- strDestination[0] = (char)NULL; ++ strDestination[0] = '\0'; + return ERANGE; + } + strcat(strDestination, strSource); diff --git a/graphics/epsonscan2/files/patch-src_SaneWrapper_backend.cpp b/graphics/epsonscan2/files/patch-src_SaneWrapper_backend.cpp new file mode 100644 index 000000000000..fdcae3361eca --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_SaneWrapper_backend.cpp @@ -0,0 +1,37 @@ +--- src/SaneWrapper/backend.cpp.orig 2021-11-25 00:56:59 UTC ++++ src/SaneWrapper/backend.cpp +@@ -220,7 +220,8 @@ sane_open (SANE_String_Const device_name, SANE_Handle + { + return SANE_STATUS_INVAL; + } +- ((Epson_Scanner*)handle)->out_buffer = NULL; ++ // XXX next causes a SEGV on FreeBSD because out_buffer is not yet allocated ++ //((Epson_Scanner*)handle)->out_buffer = NULL; + if (!epson_backend->sane_dev) + { + const SANE_Device **dev = NULL; +@@ -355,6 +356,7 @@ sane_get_parameters (SANE_Handle handle, SANE_Paramete + unsigned int nSize = 100; + unsigned char* tmp_buf = (unsigned char*)::malloc(nSize); + SDIChar* output_path; ++ SDIError outError = kSDIErrorNone; + if(tmp_buf){ + memset(tmp_buf, 0, nSize); + }else { +@@ -363,7 +365,6 @@ sane_get_parameters (SANE_Handle handle, SANE_Paramete + goto ERROR_2; + } + output_path = (SDIChar*)tmp_buf; +- SDIError outError; + s->hw->sv->SDIImage_CreatePtr_(&s->outImageData); + s->hw->sv->SDIScannerDriver_GetNextTransferEventPtr_(s->hw->sv->driver, + &outType, +@@ -442,7 +443,7 @@ sane_get_parameters (SANE_Handle handle, SANE_Paramete + } + }else { + status = SANE_STATUS_INVAL; +- fclose(fp); ++ //fclose(fp); // shouldn't try to close file that isn't open! + goto ERROR; + } + if(s->hw->sv->device_data.ColorType.select == kSDIColorTypeMono1){ diff --git a/graphics/epsonscan2/files/patch-src_SaneWrapper_defines.h b/graphics/epsonscan2/files/patch-src_SaneWrapper_defines.h new file mode 100644 index 000000000000..cedff91f63d6 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_SaneWrapper_defines.h @@ -0,0 +1,33 @@ +--- src/SaneWrapper/defines.h.orig 2021-11-25 00:56:59 UTC ++++ src/SaneWrapper/defines.h +@@ -36,14 +36,30 @@ typedef enum { + } bool; + #endif + #include <stdlib.h> ++#undef _assert + #define _assert(type,condition) \ + if (!(condition)) \ + { \ + exit (EXIT_FAILURE); \ + } ++#ifndef __FreeBSD__ + #define require(condition) _assert ("require", condition) + #define promise(condition) _assert ("promise", condition) ++#else ++#define require(condition) \ ++ if (!(condition)) \ ++ { \ ++ exit (EXIT_FAILURE); \ ++ } ++#define promise(condition) \ ++ if (!(condition)) \ ++ { \ ++ exit (EXIT_FAILURE); \ ++ } ++#endif ++#ifndef __FreeBSD__ + #include <alloca.h> ++#endif + #include <stdlib.h> + #define t_alloca(sz,t) ((t *) alloca ((sz) * sizeof (t))) + #define t_calloc(sz,t) ((t *) calloc ((sz) , sizeof (t))) diff --git a/graphics/epsonscan2/files/patch-src_SaneWrapper_epsonscan.cpp b/graphics/epsonscan2/files/patch-src_SaneWrapper_epsonscan.cpp new file mode 100644 index 000000000000..9b1aa22fa616 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_SaneWrapper_epsonscan.cpp @@ -0,0 +1,29 @@ +--- src/SaneWrapper/epsonscan.cpp.orig 2021-11-25 00:56:59 UTC ++++ src/SaneWrapper/epsonscan.cpp +@@ -859,7 +859,7 @@ sane_start (SANE_Handle handle) + select_current_doc_size(s, s->hw->sv->device_data); + handle_scan_area (s, (char *) s->hw->cur_doc_size); + } +- if(sane_app_compatible("simple-scan")){ ++ if(sane_app_compatible((SANE_String)"simple-scan")){ + double max_x = s->hw->sv->device_data.ScanArea.MaxScanAreaWidth.select / 100.0 * s->hw->sv->device_data.Resolution.select; + double max_y = s->hw->sv->device_data.ScanArea.MaxScanAreaHeight.select / 100.0 * s->hw->sv->device_data.Resolution.select; + if(max_x <= s->hw->sv->device_data.ScanArea.ScanAreaWidth.select && +@@ -1265,7 +1265,7 @@ set_epson_value (Epson_Scanner *s, SANE_Int option, vo + gamma_range.min) != SANE_STATUS_GOOD){ + return SANE_STATUS_INVAL; + } +- log_call("gamma = %d", value); ++ log_call("gamma = %d", *((SANE_Word *)value)); + handle_gamma (s, (SANE_UNFIX(*((SANE_Int *) value))*10)); + break; + case OPT_MODE: +@@ -1285,7 +1285,7 @@ set_epson_value (Epson_Scanner *s, SANE_Int option, vo + brightness_range.min) != SANE_STATUS_GOOD){ + return SANE_STATUS_INVAL; + } +- log_call("brightne = %d", value); ++ log_call("brightne = %d", *((SANE_Word *)value)); + handle_brightness (s, *((SANE_Word *) value)); + break; + case OPT_CONTRAST: diff --git a/graphics/epsonscan2/files/patch-src_ScanSDK_Src_SDK_supervisor.cpp b/graphics/epsonscan2/files/patch-src_ScanSDK_Src_SDK_supervisor.cpp new file mode 100644 index 000000000000..0140eaa7e40f --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_ScanSDK_Src_SDK_supervisor.cpp @@ -0,0 +1,29 @@ +--- src/ScanSDK/Src/SDK/supervisor.cpp.orig 2021-11-25 00:56:59 UTC ++++ src/ScanSDK/Src/SDK/supervisor.cpp +@@ -282,7 +282,7 @@ bool Supervisor::DeviceInfoResolve(SDIDeviceInfo* devI + } + bool Supervisor::CheckScanningError(SDIError outError) + { +- if(outEventType == 10 ){ ++ if(outEventType == (SDITransferEventType)10 ){ + if(outError != kSDIErrorNone){ + m_LastError = outError; + return false; +@@ -2541,7 +2541,7 @@ bool Supervisor::Set_All_Value(void) + } + { + SDIInt current; +- if(device_data.ScanArea.FixedSize == USER_DEFINE){ ++ if(device_data.ScanArea.FixedSize == (DocumentSize)USER_DEFINE){ + current = device_data.ScanArea.PaperEndDetection.select; + }else { + current = false; +@@ -3487,7 +3487,7 @@ bool Supervisor::Set_Exclusion_Value(void) + } + { + SDIInt current; +- if(device_data.ScanArea.FixedSize == USER_DEFINE){ ++ if(device_data.ScanArea.FixedSize == (DocumentSize)USER_DEFINE){ + current = device_data.ScanArea.PaperEndDetection.select; + }else { + current = false; diff --git a/graphics/epsonscan2/files/patch-src_Standalone_CMakeLists.txt b/graphics/epsonscan2/files/patch-src_Standalone_CMakeLists.txt new file mode 100644 index 000000000000..f8c0fea55f1f --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_CMakeLists.txt @@ -0,0 +1,9 @@ +--- src/Standalone/CMakeLists.txt.orig 2021-11-25 00:56:54 UTC ++++ src/Standalone/CMakeLists.txt +@@ -142,5 +142,5 @@ target_link_libraries(es2standalone ${QT_LIBRARIES} + ) + + QT5_USE_MODULES(es2standalone Widgets) +-install(TARGETS es2standalone DESTINATION "${EPSON_INSTALL_ROOT}/usr/bin") ++install(TARGETS es2standalone DESTINATION "${EPSON_INSTALL_ROOT}${CMAKE_INSTALL_PREFIX}/bin") + diff --git a/graphics/epsonscan2/files/patch-src_Standalone_addeditpagedialog.cpp b/graphics/epsonscan2/files/patch-src_Standalone_addeditpagedialog.cpp new file mode 100644 index 000000000000..4aebb2aed4d4 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_addeditpagedialog.cpp @@ -0,0 +1,8 @@ +--- src/Standalone/addeditpagedialog.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/addeditpagedialog.cpp +@@ -89,4 +89,5 @@ bool addeditpageDialog::EditDialog(std::list<imageEdit + std::list<imageEditInfo> temp_list = {}; + m_jumpImageEditDialog->getInfoList(&temp_list); + *result_list = temp_list; ++ return true; + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_commandlinemode.cpp b/graphics/epsonscan2/files/patch-src_Standalone_commandlinemode.cpp new file mode 100644 index 000000000000..5d325fb07e7b --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_commandlinemode.cpp @@ -0,0 +1,20 @@ +--- src/Standalone/commandlinemode.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/commandlinemode.cpp +@@ -538,7 +538,7 @@ void CommandLineMode::ErrorMessage(SDIError outError) + }else if(outError == kSDIErrorPaperProtect){ + error_message = "ERROR : A paper jam has occurred. See the documentation for instructions on removing your originals."; + }else if(outError == kSDIErrorDeviceInBusy){ +- error_message = "kSDIErrorDeviceInBusy"; ++ error_message = "ERROR : kSDIErrorDeviceInBusy"; + }else if(outError == kSDIErrorCoverOpen){ + error_message = "ERROR : ADF or ADF cover is open. Close it and reload the originals."; + }else if(outError == kSDIErrorTrayClose){ +@@ -559,6 +559,8 @@ void CommandLineMode::ErrorMessage(SDIError outError) + error_message = "ERROR : Device is not found..."; + }else if(outError == kSDIErrorUserAuthEnabled){ + error_message = "ERROR : Scanning from Epson Scan 2 is not allowed because the authentication function for the scanner is enabled."; ++ }else if(outError == kSDIErrorInvalidResponse){ ++ error_message = "ERROR : kSDIErrorInvalidResponse"; + }else { + error_message = "ERROR : An unexpected error occurred. Epson Scan 2 will close."; + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_custommessagebox.cpp b/graphics/epsonscan2/files/patch-src_Standalone_custommessagebox.cpp new file mode 100644 index 000000000000..f16ca1c876b6 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_custommessagebox.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/custommessagebox.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/custommessagebox.cpp +@@ -153,7 +153,7 @@ void CustomMessageBox::ErrorMessageBox(Supervisor* sv, + type = Critical; + error_message = TranslationString::GetString().translation_str.E_ENV_001; + sv->scanning_status = ERROR; +- }else if(sv->m_LastError == kSDITransferEventTypeCancel){ ++ }else if(sv->m_LastError == (SDIError)kSDITransferEventTypeCancel){ + return; + }else if(sv->m_LastError == kSDIErrorDataSend){ + type = Critical; diff --git a/graphics/epsonscan2/files/patch-src_Standalone_detectionareamindoublespinbox.cpp b/graphics/epsonscan2/files/patch-src_Standalone_detectionareamindoublespinbox.cpp new file mode 100644 index 000000000000..278454fffec4 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_detectionareamindoublespinbox.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/detectionareamindoublespinbox.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/detectionareamindoublespinbox.cpp +@@ -100,7 +100,7 @@ bool DetectionAreaMinDoubleSpinBox::isUnit_inchi(void) + Units units = config.config_para.units; + if(units == unit_inchi){ + return true; +- }else if(units == unit_mm){ ++ }else{ + return false; + } + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_deviceconnectiondialog.cpp b/graphics/epsonscan2/files/patch-src_Standalone_deviceconnectiondialog.cpp new file mode 100644 index 000000000000..0f474b0b3ea5 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_deviceconnectiondialog.cpp @@ -0,0 +1,28 @@ +--- src/Standalone/deviceconnectiondialog.cpp.orig 2022-02-17 18:43:44 UTC ++++ src/Standalone/deviceconnectiondialog.cpp +@@ -110,11 +110,10 @@ void DetectAlertGlassDirty(SDIScannerDriver* driver, S + #endif + QString arg2(TranslationString::GetString().translation_str.A_UI_006); + QString arg3(TranslationString::GetString().translation_str.VERSION_003); +- QString executable = exeapp + " " + arg1 + " " + "\"" + arg2 + "\"" + " " + arg3 + " " + "A_UI_006" + " " + std::to_string( 1).c_str(); + dir_name = dir_name + "A_UI_006"; + if(!tmpdir.exists(dir_name.c_str())){ + if(!tmpdir.exists(dir_name.c_str())) tmpdir.mkdir(dir_name.c_str()); +- if(!QProcess::startDetached(executable)){ ++ if(!QProcess::startDetached(exeapp, {arg1, arg2, arg3, "A_UI_006", std::to_string( 1).c_str()})){ + qCritical() << "Cannot start program"; + } + } +@@ -129,11 +128,10 @@ void DetectAlertGlassDirty(SDIScannerDriver* driver, S + #endif + QString arg2(TranslationString::GetString().translation_str.A_UNIT_008); + QString arg3(TranslationString::GetString().translation_str.VERSION_003); +- QString executable = exeapp + " " + arg1 + " " + "\"" + arg2 + "\"" + " " + arg3 + " " + "A_UNIT_008" + " " + std::to_string( 2).c_str(); + dir_name = dir_name + "A_UNIT_008"; + if(!tmpdir.exists(dir_name.c_str())){ + if(!tmpdir.exists(dir_name.c_str())) tmpdir.mkdir(dir_name.c_str()); +- if(!QProcess::startDetached(executable)){ ++ if(!QProcess::startDetached(exeapp, {arg1, arg2, arg3, "A_UNIT_008", std::to_string( 2).c_str()})){ + qCritical() << "Cannot start program"; + } + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_documentsize.cpp b/graphics/epsonscan2/files/patch-src_Standalone_documentsize.cpp new file mode 100644 index 000000000000..e52b6bf88930 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_documentsize.cpp @@ -0,0 +1,23 @@ +--- src/Standalone/documentsize.cpp.orig 2021-11-25 00:56:55 UTC ++++ src/Standalone/documentsize.cpp +@@ -333,9 +333,9 @@ void Document_Size::CreateComboBoxToolTip(DocumentSize + message = ""; + }else if(current_item == Auto_Detect_long){ + message = ""; +- }else if(current_item == OPTIONS){ ++ }else if(current_item == (DocumentSize)OPTIONS){ + message = ""; +- }else if(current_item == USER_DEFINE){ ++ }else if(current_item == (DocumentSize)USER_DEFINE){ + create_custom_size(&message); + }else if(current_item == Maximum_Size){ + create_maximum_size(&message, scan_area_para); +@@ -774,7 +774,7 @@ void Document_Size::StandardSizeToPixel() + }else if(current_item == Maximum_Size){ + current_pixel_x = max_pixel_x / 100 * this->base_resolution; + current_pixel_y = max_pixel_y / 100 * this->base_resolution; +- }else if(current_item == USER_DEFINE){ ++ }else if(current_item == (DocumentSize)USER_DEFINE){ + Configuration& config = Configuration::GetConfiguration(); + Units units = config.config_para.units; + if(units == unit_inchi){ diff --git a/graphics/epsonscan2/files/patch-src_Standalone_foldercomb.cpp b/graphics/epsonscan2/files/patch-src_Standalone_foldercomb.cpp new file mode 100644 index 000000000000..9ee9f57add99 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_foldercomb.cpp @@ -0,0 +1,20 @@ +--- src/Standalone/foldercomb.cpp.orig 2021-11-25 00:56:57 UTC ++++ src/Standalone/foldercomb.cpp +@@ -31,7 +31,7 @@ void FolderComb::initialize(SCANPARA dev_data, CustomM + changed = true; + current_item = (Folder)dev_data.Folder; + user_define_path = dev_data.UserDefinePath.c_str(); +- if(current_item == USER_DEFINE){ ++ if(current_item == (Folder)USER_DEFINE){ + QString qStr = user_define_path; + this->setToolTip(qStr); + } +@@ -117,7 +117,7 @@ void FolderComb::item_event(int value, SCANPARA* path_ + this->setToolTip(qStr); + }else if(select_item == OPTIONS){ + this->item_event_options(); +- if(current_item == USER_DEFINE){ ++ if(current_item == (Folder)USER_DEFINE){ + qStr = user_define_path; + path_data->UserDefinePath = (user_define_path.toLocal8Bit()).constData(); + select_item = old_select; diff --git a/graphics/epsonscan2/files/patch-src_Standalone_imageformatsettingscombobox.cpp b/graphics/epsonscan2/files/patch-src_Standalone_imageformatsettingscombobox.cpp new file mode 100644 index 000000000000..59a9bc0b4514 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_imageformatsettingscombobox.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/imageformatsettingscombobox.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/imageformatsettingscombobox.cpp +@@ -68,7 +68,7 @@ void ImageFormatSettingsCombobox::add_item(ImageFormat + }else if(img_format_list[i] == ImageFormatColorJpegMonoRaw){ + this->insertItem(i, TranslationString::GetString().translation_str.FILESAVESETTING_007, ImageFormatColorJpegMonoRaw); + i++; +- }else if(img_format_list[i] == OPTIONS){ ++ }else if(img_format_list[i] == (ImageFormat)OPTIONS){ + break; + } + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_imageformatsettingsdialog.ui b/graphics/epsonscan2/files/patch-src_Standalone_imageformatsettingsdialog.ui new file mode 100644 index 000000000000..e236f749d7c3 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_imageformatsettingsdialog.ui @@ -0,0 +1,38 @@ +--- src/Standalone/imageformatsettingsdialog.ui.orig 2022-02-17 18:27:50 UTC ++++ src/Standalone/imageformatsettingsdialog.ui +@@ -112,7 +112,7 @@ + <string>IMAGEFORMATOPTION_JPG_006</string> + </property> + </widget> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="vert_layoutWidget"> + <property name="geometry"> + <rect> + <x>220</x> +@@ -160,7 +160,7 @@ + <string notr="true">:</string> + </property> + </widget> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="horiz_layoutWidget"> + <property name="geometry"> + <rect> + <x>11</x> +@@ -345,7 +345,7 @@ + <number>999</number> + </property> + </widget> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="vert_layoutWidget_2"> + <property name="geometry"> + <rect> + <x>150</x> +@@ -422,7 +422,7 @@ + <string>IMAGEFORMATOPTION_JPG_006</string> + </property> + </widget> +- <widget class="QWidget" name="layoutWidget_2"> ++ <widget class="QWidget" name="horiz_layoutWidget_2"> + <property name="geometry"> + <rect> + <x>20</x> diff --git a/graphics/epsonscan2/files/patch-src_Standalone_initdeviceselectcombobox.cpp b/graphics/epsonscan2/files/patch-src_Standalone_initdeviceselectcombobox.cpp new file mode 100644 index 000000000000..11d277951e30 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_initdeviceselectcombobox.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/initdeviceselectcombobox.cpp.orig 2022-01-21 22:27:00 UTC ++++ src/Standalone/initdeviceselectcombobox.cpp +@@ -80,7 +80,7 @@ void InitDeviceSelectCombobox::add_manu_ip() + int i = this->count(); + int dev_index = DeviceList::device_list.size(); + while(i <= list_size){ +- this->CreateDisplayName("Network Scanner", device->ipAddress, i, dev_index); ++ this->CreateDisplayName((char *)"Network Scanner", device->ipAddress, i, dev_index); + ++device; + i++; + dev_index++; diff --git a/graphics/epsonscan2/files/patch-src_Standalone_lengthdoublespinbox.cpp b/graphics/epsonscan2/files/patch-src_Standalone_lengthdoublespinbox.cpp new file mode 100644 index 000000000000..47345249feef --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_lengthdoublespinbox.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/lengthdoublespinbox.cpp.orig 2021-11-25 00:56:57 UTC ++++ src/Standalone/lengthdoublespinbox.cpp +@@ -127,7 +127,7 @@ bool LengthDoubleSpinBox::isUnit_inchi(void) + Units units = config.config_para.units; + if(units == unit_inchi){ + return true; +- }else if(units == unit_mm){ ++ }else{ + return false; + } + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_mainwindow.cpp b/graphics/epsonscan2/files/patch-src_Standalone_mainwindow.cpp new file mode 100644 index 000000000000..0c7439e62e31 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_mainwindow.cpp @@ -0,0 +1,38 @@ +--- src/Standalone/mainwindow.cpp.orig 2021-11-25 00:56:57 UTC ++++ src/Standalone/mainwindow.cpp +@@ -682,7 +682,7 @@ bool MainWindow::SelectionRestrictions(int value){ + limit_resolution = 300; + } + if(obj == ui->Resolution_comb){ +- if(ui->Document_size_comb->current_item == USER_DEFINE){ ++ if(ui->Document_size_comb->current_item == (DocumentSize)USER_DEFINE){ + return UserDefineSizeRestrictions(); + }else if(ui->Document_size_comb->current_item == Auto_Detect_long){ + if(ui->Resolution_comb->currentText().toInt() > limit_resolution){ +@@ -1234,7 +1234,7 @@ bool MainWindow::CheckAutoFunctionalUnit(bool isPrevie + if(this->m_viewPreviewWindow){ + if(isPreview && sv->device_data.FunctionalUnit_Auto){ + if(sv->GetPaperLoadedStatus()){ +- if(sv->m_Preview_FunctionalUnit == kSDIFunctionalUnitDocumentFeeder){ ++ if(sv->m_Preview_FunctionalUnit == (FunctionalUnit)kSDIFunctionalUnitDocumentFeeder){ + sv->device_data.FunctionalUnit.select = kSDIFunctionalUnitDocumentFeeder; + }else { + if(m_messageBox->CreateSelectableMessageBox(TranslationString::GetString().translation_str.C_UI_005, Warning)){ +@@ -1247,7 +1247,7 @@ bool MainWindow::CheckAutoFunctionalUnit(bool isPrevie + } + } + }else { +- if(sv->m_Preview_FunctionalUnit == kSDIFunctionalUnitFlatbed){ ++ if(sv->m_Preview_FunctionalUnit == (FunctionalUnit)kSDIFunctionalUnitFlatbed){ + sv->device_data.FunctionalUnit.select = kSDIFunctionalUnitFlatbed; + }else { + if(m_messageBox->CreateSelectableMessageBox(TranslationString::GetString().translation_str.C_UI_005, Warning)){ +@@ -1332,7 +1332,7 @@ bool MainWindow::CheckBeforeScan() + } + } + if(!sv->device_data.DNShow_LongPaperWarning_dialog){ +- if(ui->Document_size_comb->current_item == USER_DEFINE){ ++ if(ui->Document_size_comb->current_item == (DocumentSize)USER_DEFINE){ + if(this->CheckLongPaperMode()){ + sv->device_data.DNShow_LongPaperWarning_dialog = m_messageBox->CreateMessageBox(TranslationString::GetString().translation_str.A_UI_005, TranslationString::GetString().translation_str.VERSION_003, Information, true); + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_mainwindow.ui b/graphics/epsonscan2/files/patch-src_Standalone_mainwindow.ui new file mode 100644 index 000000000000..099d85cee591 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_mainwindow.ui @@ -0,0 +1,38 @@ +--- src/Standalone/mainwindow.ui.orig 2022-02-17 18:30:36 UTC ++++ src/Standalone/mainwindow.ui +@@ -1653,7 +1653,7 @@ + <number>0</number> + </property> + <widget class="QWidget" name="page"> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="horiz_layoutWidget_3"> + <property name="geometry"> + <rect> + <x>13</x> +@@ -1719,7 +1719,7 @@ + </widget> + </widget> + <widget class="QWidget" name="page_2"> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="horiz_layoutWidget_1"> + <property name="geometry"> + <rect> + <x>11</x> +@@ -1786,7 +1786,7 @@ + </item> + </layout> + </widget> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="horiz_layoutWidget_2"> + <property name="geometry"> + <rect> + <x>10</x> +@@ -1856,7 +1856,7 @@ + </item> + </layout> + </widget> +- <widget class="QWidget" name="layoutWidget"> ++ <widget class="QWidget" name="horiz_layoutWidget_4"> + <property name="geometry"> + <rect> + <x>10</x> diff --git a/graphics/epsonscan2/files/patch-src_Standalone_networkdeviceselectdialog.cpp b/graphics/epsonscan2/files/patch-src_Standalone_networkdeviceselectdialog.cpp new file mode 100644 index 000000000000..4c116c4c2c24 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_networkdeviceselectdialog.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/networkdeviceselectdialog.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/networkdeviceselectdialog.cpp +@@ -183,7 +183,7 @@ bool NetworkDeviceSelectDialog::UpdateNetworkSettingFi + ES_Trace_Log(this, "Exist network setting file"); + #else + ES_Trace_Log(this, "Exist file : .epsonscan2/Network/epsonscan2.conf"); +-#endif*/ ++#endif + std::string work_path = ES_CMN_FUNCS::PATH::ES_GetWorkTempPath(); + QDir tmpdir("/tmp"); + if (!tmpdir.exists(work_path.c_str())) tmpdir.mkdir(work_path.c_str()); diff --git a/graphics/epsonscan2/files/patch-src_Standalone_rotateimage.cpp b/graphics/epsonscan2/files/patch-src_Standalone_rotateimage.cpp new file mode 100644 index 000000000000..b5d946dea87f --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_rotateimage.cpp @@ -0,0 +1,47 @@ +--- src/Standalone/rotateimage.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/rotateimage.cpp +@@ -28,34 +28,34 @@ RotateImage::RotateImage(ColorType type) + void RotateImage::Rotate(std::string image_path, int angle, ImageFormat format, bool multiTiffEnabled) + { + std::string file_format; +- if (format == kSDIImageFormatJPEG) ++ if (format == (ImageFormat)kSDIImageFormatJPEG) + { + file_format = "JPG"; +- }else if (format == ImageFormatColorJpegMonoRaw) ++ }else if (format == (ImageFormat)ImageFormatColorJpegMonoRaw) + { + if(m_type == ColorTypeMono1){ + file_format = "PBM"; + }else { + file_format = "JPG"; + } +- }else if (format == kSDIImageFormatPNM && !multiTiffEnabled) ++ }else if (format == (ImageFormat)kSDIImageFormatPNM && !multiTiffEnabled) + { + file_format = "PPM"; +- }else if (format == kSDIImageFormatTIFF) ++ }else if (format == (ImageFormat)kSDIImageFormatTIFF) + { + file_format = "TIFF"; +- }else if (format == kSDIImageFormatPNG) ++ }else if (format == (ImageFormat)kSDIImageFormatPNG) + { + file_format = "PNG"; +- }else if (format == kSDIImageFormatPNM && multiTiffEnabled) ++ }else if (format == (ImageFormat)kSDIImageFormatPNM && multiTiffEnabled) + { + file_format = "PPM"; + } + QImage srcImg(image_path.c_str()); + QPoint center = srcImg.rect().center(); +- QMatrix matrix; +- matrix.translate(center.x(), center.y()); +- matrix.rotate(angle); +- QImage dstImg = srcImg.transformed(matrix); ++ QTransform transform; ++ transform.translate(center.x(), center.y()); ++ transform.rotate(angle); ++ QImage dstImg = srcImg.transformed(transform); + dstImg.save(QString::fromStdString(image_path), file_format.c_str(), -1); + } diff --git a/graphics/epsonscan2/files/patch-src_Standalone_supervisor.cpp b/graphics/epsonscan2/files/patch-src_Standalone_supervisor.cpp new file mode 100644 index 000000000000..9e5450e47478 --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_supervisor.cpp @@ -0,0 +1,29 @@ +--- src/Standalone/supervisor.cpp.orig 2021-11-25 00:56:57 UTC ++++ src/Standalone/supervisor.cpp +@@ -270,7 +270,7 @@ bool Supervisor::DeviceInfoResolve(SDIDeviceInfo* devI + } + bool Supervisor::CheckScanningError(SDIError outError) + { +- if(outEventType == 10 ){ ++ if(outEventType == (SDITransferEventType)10 ){ + if(outError != kSDIErrorNone){ + m_LastError = outError; + return false; +@@ -2632,7 +2632,7 @@ bool Supervisor::Set_All_Value(void) + } + { + SDIInt current; +- if(device_data.ScanArea.FixedSize == USER_DEFINE){ ++ if(device_data.ScanArea.FixedSize == (DocumentSize)USER_DEFINE){ + current = device_data.ScanArea.PaperEndDetection.select; + }else { + current = false; +@@ -3712,7 +3712,7 @@ bool Supervisor::Set_Exclusion_Value(void) + } + { + SDIInt current; +- if(device_data.ScanArea.FixedSize == USER_DEFINE){ ++ if(device_data.ScanArea.FixedSize == (DocumentSize)USER_DEFINE){ + current = device_data.ScanArea.PaperEndDetection.select; + }else { + current = false; diff --git a/graphics/epsonscan2/files/patch-src_Standalone_widthdoublespinbox.cpp b/graphics/epsonscan2/files/patch-src_Standalone_widthdoublespinbox.cpp new file mode 100644 index 000000000000..b161bf14beee --- /dev/null +++ b/graphics/epsonscan2/files/patch-src_Standalone_widthdoublespinbox.cpp @@ -0,0 +1,11 @@ +--- src/Standalone/widthdoublespinbox.cpp.orig 2021-11-25 00:56:56 UTC ++++ src/Standalone/widthdoublespinbox.cpp +@@ -116,7 +116,7 @@ bool WidthDoubleSpinBox::isUnit_inchi(void) + Units units = config.config_para.units; + if(units == unit_inchi){ + return true; +- }else if(units == unit_mm){ ++ }else{ + return false; + } + } diff --git a/graphics/epsonscan2/files/patch-thirdparty_zlib_gzread.c b/graphics/epsonscan2/files/patch-thirdparty_zlib_gzread.c new file mode 100644 index 000000000000..850344020819 --- /dev/null +++ b/graphics/epsonscan2/files/patch-thirdparty_zlib_gzread.c @@ -0,0 +1,10 @@ +--- thirdparty/zlib/gzread.c.orig 2021-11-25 00:56:54 UTC ++++ thirdparty/zlib/gzread.c +@@ -4,6 +4,7 @@ + */ + + #include "gzguts.h" ++#include <unistd.h> + + /* Local functions */ + local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *)); diff --git a/graphics/epsonscan2/files/patch-thirdparty_zlib_gzwrite.c b/graphics/epsonscan2/files/patch-thirdparty_zlib_gzwrite.c new file mode 100644 index 000000000000..66ce0365b2e1 --- /dev/null +++ b/graphics/epsonscan2/files/patch-thirdparty_zlib_gzwrite.c @@ -0,0 +1,10 @@ +--- thirdparty/zlib/gzwrite.c.orig 2021-11-25 00:56:54 UTC ++++ thirdparty/zlib/gzwrite.c +@@ -4,6 +4,7 @@ + */ + + #include "gzguts.h" ++#include <unistd.h> + + /* Local functions */ + local int gz_init OF((gz_statep)); diff --git a/graphics/epsonscan2/files/pkg-message.in b/graphics/epsonscan2/files/pkg-message.in new file mode 100644 index 000000000000..033d2a8f2f4a --- /dev/null +++ b/graphics/epsonscan2/files/pkg-message.in @@ -0,0 +1,17 @@ +[ +{ type: install + message: <<EOM +This port supports scanners connected using a USB cable. + +To access a network scanner and also to access some older USB scanner +models, you must also install the port: + graphics/epsonscan2-non-free-plugin +which provides the Linux binaries needed to access the scanner. The kernel +Linux emulation modules and emulators/linux_base-c7 ports are also needed +for the non-free-plugin. + +Please read %%PREFIX%%/lib/epsonscan2/Read_me.FreeBSD for further details +of how to configure and use this software. +EOM +} +] diff --git a/graphics/epsonscan2/pkg-descr b/graphics/epsonscan2/pkg-descr new file mode 100644 index 000000000000..ebfe390ce7e2 --- /dev/null +++ b/graphics/epsonscan2/pkg-descr @@ -0,0 +1,5 @@ +This is the Seiko/Epson epsonscan2 scanner driver for many modern Epson +scanners. + +WWW: https://support.epson.net/linux/src/scanner/epsonscan2/ +WWW: https://download.ebz.epson.net/man/linux/epsonscan2_e.html diff --git a/graphics/epsonscan2/pkg-plist b/graphics/epsonscan2/pkg-plist new file mode 100644 index 000000000000..2705f461d793 --- /dev/null +++ b/graphics/epsonscan2/pkg-plist @@ -0,0 +1,1650 @@ +bin/epsonscan2 +etc/sane.d/dll.d/epsonscan2 +lib/epsonscan2/Read_me.FreeBSD +lib/epsonscan2/Resources/Icons/bmp_mss_image@2x.png +lib/epsonscan2/Resources/Icons/btn_config@2x.png +lib/epsonscan2/Resources/Icons/btn_help.png +lib/epsonscan2/Resources/Icons/btn_marquee_delete@2x.png +lib/epsonscan2/Resources/Icons/btn_marquee_delete_disabled@2x.png +lib/epsonscan2/Resources/Icons/btn_multipage_delete@2x.png +lib/epsonscan2/Resources/Icons/btn_multipage_rotate_left90@2x.png +lib/epsonscan2/Resources/Icons/btn_multipage_rotate_right90@2x.png +lib/epsonscan2/Resources/Icons/btn_preview_close.png +lib/epsonscan2/Resources/Icons/btn_preview_mark_height.png +lib/epsonscan2/Resources/Icons/btn_preview_mark_width.png +lib/epsonscan2/Resources/Icons/escan2_app.ico +lib/epsonscan2/Resources/Icons/update4.png +lib/epsonscan2/Resources/Models/ES003F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES003F/JP/ES003F.json +lib/epsonscan2/Resources/Models/ES003F/WW/ES003F.json +lib/epsonscan2/Resources/Models/ES0063/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0063/JP/ES0063.json +lib/epsonscan2/Resources/Models/ES0063/WW/ES0063.json +lib/epsonscan2/Resources/Models/ES0065/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0065/JP/ES0065.json +lib/epsonscan2/Resources/Models/ES0065/WW/ES0065.json +lib/epsonscan2/Resources/Models/ES007C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES007C/ES007C.dti +lib/epsonscan2/Resources/Models/ES007C/JP/ES007C.json +lib/epsonscan2/Resources/Models/ES007C/WW/ES007C.json +lib/epsonscan2/Resources/Models/ES0086/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0086/ES0086.dti +lib/epsonscan2/Resources/Models/ES0086/JP/ES0086.json +lib/epsonscan2/Resources/Models/ES0086/WW/ES0086.json +lib/epsonscan2/Resources/Models/ES0087/ALL/ES0087.json +lib/epsonscan2/Resources/Models/ES0087/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0087/ES0087.dti +lib/epsonscan2/Resources/Models/ES008A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES008A/ES008A.dti +lib/epsonscan2/Resources/Models/ES008A/JP/ES008A.json +lib/epsonscan2/Resources/Models/ES008A/WW/ES008A.json +lib/epsonscan2/Resources/Models/ES0094/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0094/ES0094.dti +lib/epsonscan2/Resources/Models/ES0094/JP/ES0094.json +lib/epsonscan2/Resources/Models/ES0094/WW/ES0094.json +lib/epsonscan2/Resources/Models/ES0095/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0095/ES0095.dti +lib/epsonscan2/Resources/Models/ES0095/JP/ES0095.json +lib/epsonscan2/Resources/Models/ES0095/WW/ES0095.json +lib/epsonscan2/Resources/Models/ES00A1/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00A1/ES00A1.dti +lib/epsonscan2/Resources/Models/ES00A1/JP/ES00A1.json +lib/epsonscan2/Resources/Models/ES00A1/WW/ES00A1.json +lib/epsonscan2/Resources/Models/ES00AD/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00AD/ES00AD.dti +lib/epsonscan2/Resources/Models/ES00AD/JP/ES00AD.json +lib/epsonscan2/Resources/Models/ES00AD/WW/ES00AD.json +lib/epsonscan2/Resources/Models/ES00B5/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00B5/ES00B5.dti +lib/epsonscan2/Resources/Models/ES00B5/JP/ES00B5.json +lib/epsonscan2/Resources/Models/ES00B5/WW/ES00B5.json +lib/epsonscan2/Resources/Models/ES00B7/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00B7/ES00B7.dti +lib/epsonscan2/Resources/Models/ES00B7/JP/ES00B7.json +lib/epsonscan2/Resources/Models/ES00B7/WW/ES00B7.json +lib/epsonscan2/Resources/Models/ES00B8/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00B8/ES00B8.dti +lib/epsonscan2/Resources/Models/ES00B8/JP/ES00B8.json +lib/epsonscan2/Resources/Models/ES00B8/WW/ES00B8.json +lib/epsonscan2/Resources/Models/ES00BC/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00BC/ES00BC.dti +lib/epsonscan2/Resources/Models/ES00BC/JP/ES00BC.json +lib/epsonscan2/Resources/Models/ES00BC/WW/ES00BC.json +lib/epsonscan2/Resources/Models/ES00BD/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00BD/ES00BD.dti +lib/epsonscan2/Resources/Models/ES00BD/JP/ES00BD.json +lib/epsonscan2/Resources/Models/ES00BD/WW/ES00BD.json +lib/epsonscan2/Resources/Models/ES00C2/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00C2/ES00C2.dti +lib/epsonscan2/Resources/Models/ES00C2/JP/ES00C2.json +lib/epsonscan2/Resources/Models/ES00C2/WW/ES00C2.json +lib/epsonscan2/Resources/Models/ES00C3/ALL/ES00C3.json +lib/epsonscan2/Resources/Models/ES00C3/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00C3/ES00C3.dti +lib/epsonscan2/Resources/Models/ES00CA/ALL/ES00CA.json +lib/epsonscan2/Resources/Models/ES00CA/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00CA/ES00CA.dti +lib/epsonscan2/Resources/Models/ES00CB/ALL/ES00CB.json +lib/epsonscan2/Resources/Models/ES00CB/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00CB/ES00CB.dti +lib/epsonscan2/Resources/Models/ES00CC/ALL/ES00CC.json +lib/epsonscan2/Resources/Models/ES00CC/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00CC/ES00CC.dti +lib/epsonscan2/Resources/Models/ES00D7/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00D7/ES00D7.dti +lib/epsonscan2/Resources/Models/ES00D7/JP/ES00D7.json +lib/epsonscan2/Resources/Models/ES00D7/WW/ES00D7.json +lib/epsonscan2/Resources/Models/ES00DB/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00DB/ES00DB.dti +lib/epsonscan2/Resources/Models/ES00DB/JP/ES00DB.json +lib/epsonscan2/Resources/Models/ES00DB/WW/ES00DB.json +lib/epsonscan2/Resources/Models/ES00DD/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00DD/ES00DD.dti +lib/epsonscan2/Resources/Models/ES00DD/JP/ES00DD.json +lib/epsonscan2/Resources/Models/ES00DD/WW/ES00DD.json +lib/epsonscan2/Resources/Models/ES00DF/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00DF/JP/ES00DF.json +lib/epsonscan2/Resources/Models/ES00DF/WW/ES00DF.json +lib/epsonscan2/Resources/Models/ES00E3/ALL/ES00E3.json +lib/epsonscan2/Resources/Models/ES00E3/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00E3/ES00E3.dti +lib/epsonscan2/Resources/Models/ES00E4/ALL/ES00E4.json +lib/epsonscan2/Resources/Models/ES00E4/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00E4/ES00E4.dti +lib/epsonscan2/Resources/Models/ES00E6/ALL/ES00E6.json +lib/epsonscan2/Resources/Models/ES00E6/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00E6/ES00E6.dti +lib/epsonscan2/Resources/Models/ES00E8/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00E8/ES00E8.dti +lib/epsonscan2/Resources/Models/ES00E8/JP/ES00E8.json +lib/epsonscan2/Resources/Models/ES00E8/WW/ES00E8.json +lib/epsonscan2/Resources/Models/ES00E9/ALL/ES00E9.json +lib/epsonscan2/Resources/Models/ES00E9/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00E9/ES00E9.dti +lib/epsonscan2/Resources/Models/ES00EA/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00EA/ES00EA.dti +lib/epsonscan2/Resources/Models/ES00EA/JP/ES00EA.json +lib/epsonscan2/Resources/Models/ES00EA/WW/ES00EA.json +lib/epsonscan2/Resources/Models/ES00EB/ALL/ES00EB.json +lib/epsonscan2/Resources/Models/ES00EB/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00ED/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00ED/ES00ED.dti +lib/epsonscan2/Resources/Models/ES00ED/JP/ES00ED.json +lib/epsonscan2/Resources/Models/ES00ED/WW/ES00ED.json +lib/epsonscan2/Resources/Models/ES00EE/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00EE/ES00EE.dti +lib/epsonscan2/Resources/Models/ES00EE/JP/ES00EE.json +lib/epsonscan2/Resources/Models/ES00EE/WW/ES00EE.json +lib/epsonscan2/Resources/Models/ES00EF/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00EF/ES00EF.dti +lib/epsonscan2/Resources/Models/ES00EF/JP/ES00EF.json +lib/epsonscan2/Resources/Models/ES00EF/WW/ES00EF.json +lib/epsonscan2/Resources/Models/ES00F0/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F0/ES00F0.dti +lib/epsonscan2/Resources/Models/ES00F0/JP/ES00F0.json +lib/epsonscan2/Resources/Models/ES00F0/WW/ES00F0.json +lib/epsonscan2/Resources/Models/ES00F1/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F1/ES00F1.dti +lib/epsonscan2/Resources/Models/ES00F1/JP/ES00F1.json +lib/epsonscan2/Resources/Models/ES00F1/WW/ES00F1.json +lib/epsonscan2/Resources/Models/ES00F2/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F2/ES00F2.dti +lib/epsonscan2/Resources/Models/ES00F2/JP/ES00F2.json +lib/epsonscan2/Resources/Models/ES00F2/WW/ES00F2.json +lib/epsonscan2/Resources/Models/ES00F3/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F3/ES00F3.dti +lib/epsonscan2/Resources/Models/ES00F3/JP/ES00F3.json +lib/epsonscan2/Resources/Models/ES00F3/WW/ES00F3.json +lib/epsonscan2/Resources/Models/ES00F4/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F4/ES00F4.dti +lib/epsonscan2/Resources/Models/ES00F4/JP/ES00F4.json +lib/epsonscan2/Resources/Models/ES00F4/WW/ES00F4.json +lib/epsonscan2/Resources/Models/ES00F5/ALL/ES00F5.json +lib/epsonscan2/Resources/Models/ES00F5/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F5/ES00F5.dti +lib/epsonscan2/Resources/Models/ES00F7/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F7/ES00F7.dti +lib/epsonscan2/Resources/Models/ES00F7/JP/ES00F7.json +lib/epsonscan2/Resources/Models/ES00F7/WW/ES00F7.json +lib/epsonscan2/Resources/Models/ES00F8/ALL/ES00F8.json +lib/epsonscan2/Resources/Models/ES00F8/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00F8/ES00F8.dti +lib/epsonscan2/Resources/Models/ES00FA/ALL/ES00FA.json +lib/epsonscan2/Resources/Models/ES00FA/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00FA/ES00FA.dti +lib/epsonscan2/Resources/Models/ES00FB/ALL/ES00FB.json +lib/epsonscan2/Resources/Models/ES00FB/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00FB/ES00FB.dti +lib/epsonscan2/Resources/Models/ES00FC/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00FC/ES00FC.dti +lib/epsonscan2/Resources/Models/ES00FC/JP/ES00FC.json +lib/epsonscan2/Resources/Models/ES00FC/WW/ES00FC.json +lib/epsonscan2/Resources/Models/ES00FD/ALL/ES00FD.json +lib/epsonscan2/Resources/Models/ES00FD/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00FD/ES00FD.dti +lib/epsonscan2/Resources/Models/ES00FE/ConvertTable.json +lib/epsonscan2/Resources/Models/ES00FE/ES00FE.dti +lib/epsonscan2/Resources/Models/ES00FE/JP/ES00FE.json +lib/epsonscan2/Resources/Models/ES00FE/WW/ES00FE.json +lib/epsonscan2/Resources/Models/ES0100/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0100/ES0100.dti +lib/epsonscan2/Resources/Models/ES0100/US/ES0100.json +lib/epsonscan2/Resources/Models/ES0100/WW/ES0100.json +lib/epsonscan2/Resources/Models/ES0101/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0101/ES0101.dti +lib/epsonscan2/Resources/Models/ES0101/JP/ES0101.json +lib/epsonscan2/Resources/Models/ES0101/WW/ES0101.json +lib/epsonscan2/Resources/Models/ES0102/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0102/ES0102.dti +lib/epsonscan2/Resources/Models/ES0102/JP/ES0102.json +lib/epsonscan2/Resources/Models/ES0102/WW/ES0102.json +lib/epsonscan2/Resources/Models/ES0103/ALL/ES0103.json +lib/epsonscan2/Resources/Models/ES0103/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0103/ES0103.dti +lib/epsonscan2/Resources/Models/ES0104/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0104/ES0104.dti +lib/epsonscan2/Resources/Models/ES0104/JP/ES0104.json +lib/epsonscan2/Resources/Models/ES0104/WW/ES0104.json +lib/epsonscan2/Resources/Models/ES0105/ALL/ES0105.json +lib/epsonscan2/Resources/Models/ES0105/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0105/ES0105.dti +lib/epsonscan2/Resources/Models/ES0106/ALL/ES0106.json +lib/epsonscan2/Resources/Models/ES0106/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0106/ES0106.dti +lib/epsonscan2/Resources/Models/ES0107/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0107/ES0107.dti +lib/epsonscan2/Resources/Models/ES0107/JP/ES0107.json +lib/epsonscan2/Resources/Models/ES0107/WW/ES0107.json +lib/epsonscan2/Resources/Models/ES0108/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0108/ES0108.dti +lib/epsonscan2/Resources/Models/ES0108/JP/ES0108.json +lib/epsonscan2/Resources/Models/ES0108/WW/ES0108.json +lib/epsonscan2/Resources/Models/ES0109/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0109/ES0109.dti +lib/epsonscan2/Resources/Models/ES0109/JP/ES0109.json +lib/epsonscan2/Resources/Models/ES0109/WW/ES0109.json +lib/epsonscan2/Resources/Models/ES010A/ALL/ES010A.json +lib/epsonscan2/Resources/Models/ES010A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES010A/ES010A.dti +lib/epsonscan2/Resources/Models/ES010B/ALL/ES010B.json +lib/epsonscan2/Resources/Models/ES010B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES010B/ES010B.dti +lib/epsonscan2/Resources/Models/ES010C/ALL/ES010C.json +lib/epsonscan2/Resources/Models/ES010C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES010C/ES010C.dti +lib/epsonscan2/Resources/Models/ES010D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES010D/ES010D.dti +lib/epsonscan2/Resources/Models/ES010D/JP/ES010D.json +lib/epsonscan2/Resources/Models/ES010D/WW/ES010D.json +lib/epsonscan2/Resources/Models/ES010E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES010E/ES010E.dti +lib/epsonscan2/Resources/Models/ES010E/JP/ES010E.json +lib/epsonscan2/Resources/Models/ES010E/WW/ES010E.json +lib/epsonscan2/Resources/Models/ES010F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES010F/ES010F.dti +lib/epsonscan2/Resources/Models/ES010F/JP/ES010F.json +lib/epsonscan2/Resources/Models/ES010F/US/ES010F.json +lib/epsonscan2/Resources/Models/ES0110/ALL/ES0110.json +lib/epsonscan2/Resources/Models/ES0110/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0110/ES0110.dti +lib/epsonscan2/Resources/Models/ES0111/ALL/ES0111.json +lib/epsonscan2/Resources/Models/ES0111/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0111/ES0111.dti +lib/epsonscan2/Resources/Models/ES0112/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0112/ES0112.dti +lib/epsonscan2/Resources/Models/ES0112/JP/ES0112.json +lib/epsonscan2/Resources/Models/ES0112/WW/ES0112.json +lib/epsonscan2/Resources/Models/ES0113/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0113/ES0113.dti +lib/epsonscan2/Resources/Models/ES0113/JP/ES0113.json +lib/epsonscan2/Resources/Models/ES0113/WW/ES0113.json +lib/epsonscan2/Resources/Models/ES0114/ALL/ES0114.json +lib/epsonscan2/Resources/Models/ES0114/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0114/ES0114.dti +lib/epsonscan2/Resources/Models/ES0116/ALL/ES0116.json +lib/epsonscan2/Resources/Models/ES0116/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0116/ES0116.dti +lib/epsonscan2/Resources/Models/ES0117/ALL/ES0117.json +lib/epsonscan2/Resources/Models/ES0117/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0117/ES0117.dti +lib/epsonscan2/Resources/Models/ES0118/ALL/ES0118.json +lib/epsonscan2/Resources/Models/ES0118/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0118/ES0118.dti +lib/epsonscan2/Resources/Models/ES0119/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0119/ES0119.dti +lib/epsonscan2/Resources/Models/ES0119/JP/ES0119.json +lib/epsonscan2/Resources/Models/ES0119/US/ES0119.json +lib/epsonscan2/Resources/Models/ES0119/WW/ES0119.json +lib/epsonscan2/Resources/Models/ES011A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES011A/ES011A.dti +lib/epsonscan2/Resources/Models/ES011A/JP/ES011A.json +lib/epsonscan2/Resources/Models/ES011A/WW/ES011A.json +lib/epsonscan2/Resources/Models/ES011B/ALL/ES011B.json +lib/epsonscan2/Resources/Models/ES011B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES011B/ES011B.dti +lib/epsonscan2/Resources/Models/ES011C/ALL/ES011C.json +lib/epsonscan2/Resources/Models/ES011C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES011C/ES011C.dti +lib/epsonscan2/Resources/Models/ES011D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES011D/ES011D.dti +lib/epsonscan2/Resources/Models/ES011D/US/ES011D.json +lib/epsonscan2/Resources/Models/ES011D/WW/ES011D.json +lib/epsonscan2/Resources/Models/ES011E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES011E/ES011E.dti +lib/epsonscan2/Resources/Models/ES011E/US/ES011E.json +lib/epsonscan2/Resources/Models/ES011E/WW/ES011E.json +lib/epsonscan2/Resources/Models/ES011F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES011F/ES011F.dti +lib/epsonscan2/Resources/Models/ES011F/US/ES011F.json +lib/epsonscan2/Resources/Models/ES011F/WW/ES011F.json +lib/epsonscan2/Resources/Models/ES0120/ALL/ES0120.json +lib/epsonscan2/Resources/Models/ES0120/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0120/ES0120.dti +lib/epsonscan2/Resources/Models/ES0121/ALL/ES0121.json +lib/epsonscan2/Resources/Models/ES0121/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0121/ES0121.dti +lib/epsonscan2/Resources/Models/ES0122/ALL/ES0122.json +lib/epsonscan2/Resources/Models/ES0122/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0122/ES0122.dti +lib/epsonscan2/Resources/Models/ES0123/ALL/ES0123.json +lib/epsonscan2/Resources/Models/ES0123/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0123/ES0123.dti +lib/epsonscan2/Resources/Models/ES0124/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0124/ES0124.dti +lib/epsonscan2/Resources/Models/ES0124/JP/ES0124.json +lib/epsonscan2/Resources/Models/ES0124/WW/ES0124.json +lib/epsonscan2/Resources/Models/ES0125/ALL/ES0125.json +lib/epsonscan2/Resources/Models/ES0125/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0125/ES0125.dti +lib/epsonscan2/Resources/Models/ES0126/ALL/ES0126.json +lib/epsonscan2/Resources/Models/ES0126/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0126/ES0126.dti +lib/epsonscan2/Resources/Models/ES0127/ALL/ES0127.json +lib/epsonscan2/Resources/Models/ES0127/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0127/ES0127.dti +lib/epsonscan2/Resources/Models/ES0128/ALL/ES0128.json +lib/epsonscan2/Resources/Models/ES0128/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0128/ES0128.dti +lib/epsonscan2/Resources/Models/ES0129/ALL/ES0129.json +lib/epsonscan2/Resources/Models/ES0129/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0129/ES0129.dti +lib/epsonscan2/Resources/Models/ES0129/US/ES0129.json +lib/epsonscan2/Resources/Models/ES0129/WW/ES0129.json +lib/epsonscan2/Resources/Models/ES012B/ALL/ES012B.json +lib/epsonscan2/Resources/Models/ES012B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES012B/ES012B.dti +lib/epsonscan2/Resources/Models/ES012C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES012C/JP/ES012C.json +lib/epsonscan2/Resources/Models/ES012C/WW/ES012C.json +lib/epsonscan2/Resources/Models/ES012E/ALL/ES012E.json +lib/epsonscan2/Resources/Models/ES012E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES012E/ES012E.dti +lib/epsonscan2/Resources/Models/ES012F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES012F/ES012F.dti +lib/epsonscan2/Resources/Models/ES012F/JP/ES012F.json +lib/epsonscan2/Resources/Models/ES012F/US/ES012F.json +lib/epsonscan2/Resources/Models/ES012F/WW/ES012F.json +lib/epsonscan2/Resources/Models/ES0130/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0130/ES0130.dti +lib/epsonscan2/Resources/Models/ES0130/JP/ES0130.json +lib/epsonscan2/Resources/Models/ES0130/WW/ES0130.json +lib/epsonscan2/Resources/Models/ES0131/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0131/ES0131.dti +lib/epsonscan2/Resources/Models/ES0131/US/ES0131.json +lib/epsonscan2/Resources/Models/ES0131/WW/ES0131.json +lib/epsonscan2/Resources/Models/ES0132/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0132/ES0132.dti +lib/epsonscan2/Resources/Models/ES0132/JP/ES0132.json +lib/epsonscan2/Resources/Models/ES0132/WW/ES0132.json +lib/epsonscan2/Resources/Models/ES0133/ALL/ES0133.json +lib/epsonscan2/Resources/Models/ES0133/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0133/ES0133.dti +lib/epsonscan2/Resources/Models/ES0134/ALL/ES0134.json +lib/epsonscan2/Resources/Models/ES0134/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0134/ES0134.dti +lib/epsonscan2/Resources/Models/ES0135/ALL/ES0135.json +lib/epsonscan2/Resources/Models/ES0135/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0135/ES0135.dti +lib/epsonscan2/Resources/Models/ES0136/ALL/ES0136.json +lib/epsonscan2/Resources/Models/ES0136/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0136/ES0136.dti +lib/epsonscan2/Resources/Models/ES0137/ALL/ES0137.json +lib/epsonscan2/Resources/Models/ES0137/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0137/ES0137.dti +lib/epsonscan2/Resources/Models/ES0138/ALL/ES0138.json +lib/epsonscan2/Resources/Models/ES0138/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0138/ES0138.dti +lib/epsonscan2/Resources/Models/ES0139/ALL/ES0139.json +lib/epsonscan2/Resources/Models/ES0139/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0139/ES0139.dti +lib/epsonscan2/Resources/Models/ES013A/ALL/ES013A.json +lib/epsonscan2/Resources/Models/ES013A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES013A/ES013A.dti +lib/epsonscan2/Resources/Models/ES013B/ALL/ES013B.json +lib/epsonscan2/Resources/Models/ES013B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES013B/ES013B.dti +lib/epsonscan2/Resources/Models/ES013C/ALL/ES013C.json +lib/epsonscan2/Resources/Models/ES013C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES013C/ES013C.dti +lib/epsonscan2/Resources/Models/ES013D/ALL/ES013D.json +lib/epsonscan2/Resources/Models/ES013D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES013D/ES013D.dti +lib/epsonscan2/Resources/Models/ES013E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES013E/ES013E.dti +lib/epsonscan2/Resources/Models/ES013E/US/ES013E.json +lib/epsonscan2/Resources/Models/ES013E/WW/ES013E.json +lib/epsonscan2/Resources/Models/ES013F/ALL/ES013F.json +lib/epsonscan2/Resources/Models/ES013F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES013F/ES013F.dti +lib/epsonscan2/Resources/Models/ES0140/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0140/ES0140.dti +lib/epsonscan2/Resources/Models/ES0140/US/ES0140.json +lib/epsonscan2/Resources/Models/ES0140/WW/ES0140.json +lib/epsonscan2/Resources/Models/ES0141/ALL/ES0141.json +lib/epsonscan2/Resources/Models/ES0141/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0141/ES0141.dti +lib/epsonscan2/Resources/Models/ES0142/ALL/ES0142.json +lib/epsonscan2/Resources/Models/ES0142/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0142/ES0142.dti +lib/epsonscan2/Resources/Models/ES0143/ALL/ES0143.json +lib/epsonscan2/Resources/Models/ES0143/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0143/ES0143.dti +lib/epsonscan2/Resources/Models/ES0144/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0144/ES0144.dti +lib/epsonscan2/Resources/Models/ES0144/JP/ES0144.json +lib/epsonscan2/Resources/Models/ES0144/US/ES0144.json +lib/epsonscan2/Resources/Models/ES0144/WW/ES0144.json +lib/epsonscan2/Resources/Models/ES0145/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0145/ES0145.dti +lib/epsonscan2/Resources/Models/ES0145/US/ES0145.json +lib/epsonscan2/Resources/Models/ES0145/WW/ES0145.json +lib/epsonscan2/Resources/Models/ES0146/ALL/ES0146.json +lib/epsonscan2/Resources/Models/ES0146/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0146/ES0146.dti +lib/epsonscan2/Resources/Models/ES0147/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0147/ES0147.dti +lib/epsonscan2/Resources/Models/ES0147/JP/ES0147.json +lib/epsonscan2/Resources/Models/ES0147/WW/ES0147.json +lib/epsonscan2/Resources/Models/ES0148/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0148/ES0148.dti +lib/epsonscan2/Resources/Models/ES0148/JP/ES0148.json +lib/epsonscan2/Resources/Models/ES0148/WW/ES0148.json +lib/epsonscan2/Resources/Models/ES0149/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0149/ES0149.dti +lib/epsonscan2/Resources/Models/ES0149/JP/ES0149.json +lib/epsonscan2/Resources/Models/ES0149/WW/ES0149.json +lib/epsonscan2/Resources/Models/ES014A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES014A/ES014A.dti +lib/epsonscan2/Resources/Models/ES014A/JP/ES014A.json +lib/epsonscan2/Resources/Models/ES014A/WW/ES014A.json +lib/epsonscan2/Resources/Models/ES014B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES014B/ES014B.dti +lib/epsonscan2/Resources/Models/ES014B/JP/ES014B.json +lib/epsonscan2/Resources/Models/ES014B/US/ES014B.json +lib/epsonscan2/Resources/Models/ES014B/WW/ES014B.json +lib/epsonscan2/Resources/Models/ES014C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES014C/ES014C.dti +lib/epsonscan2/Resources/Models/ES014C/JP/ES014C.json +lib/epsonscan2/Resources/Models/ES014C/US/ES014C.json +lib/epsonscan2/Resources/Models/ES014C/WW/ES014C.json +lib/epsonscan2/Resources/Models/ES014D/ALL/ES014D.json +lib/epsonscan2/Resources/Models/ES014D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES014D/ES014D.dti +lib/epsonscan2/Resources/Models/ES014E/ALL/ES014E.json +lib/epsonscan2/Resources/Models/ES014E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES014E/ES014E.dti +lib/epsonscan2/Resources/Models/ES014F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES014F/ES014F.dti +lib/epsonscan2/Resources/Models/ES014F/JP/ES014F.json +lib/epsonscan2/Resources/Models/ES014F/US/ES014F.json +lib/epsonscan2/Resources/Models/ES014F/WW/ES014F.json +lib/epsonscan2/Resources/Models/ES0150/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0150/ES0150.dti +lib/epsonscan2/Resources/Models/ES0150/JP/ES0150.json +lib/epsonscan2/Resources/Models/ES0150/US/ES0150.json +lib/epsonscan2/Resources/Models/ES0150/WW/ES0150.json +lib/epsonscan2/Resources/Models/ES0151/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0151/ES0151.dti +lib/epsonscan2/Resources/Models/ES0151/JP/ES0151.json +lib/epsonscan2/Resources/Models/ES0151/WW/ES0151.json +lib/epsonscan2/Resources/Models/ES0152/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0152/ES0152.dti +lib/epsonscan2/Resources/Models/ES0152/JP/ES0152.json +lib/epsonscan2/Resources/Models/ES0152/WW/ES0152.json +lib/epsonscan2/Resources/Models/ES0153/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0153/ES0153.dti +lib/epsonscan2/Resources/Models/ES0153/JP/ES0153.json +lib/epsonscan2/Resources/Models/ES0153/US/ES0153.json +lib/epsonscan2/Resources/Models/ES0154/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0154/ES0154.dti +lib/epsonscan2/Resources/Models/ES0154/JP/ES0154.json +lib/epsonscan2/Resources/Models/ES0154/US/ES0154.json +lib/epsonscan2/Resources/Models/ES0154/WW/ES0154.json +lib/epsonscan2/Resources/Models/ES0155/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0155/ES0155.dti +lib/epsonscan2/Resources/Models/ES0155/JP/ES0155.json +lib/epsonscan2/Resources/Models/ES0155/WW/ES0155.json +lib/epsonscan2/Resources/Models/ES0156/ALL/ES0156.json +lib/epsonscan2/Resources/Models/ES0156/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0156/ES0156.dti +lib/epsonscan2/Resources/Models/ES0157/ALL/ES0157.json +lib/epsonscan2/Resources/Models/ES0157/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0157/ES0157.dti +lib/epsonscan2/Resources/Models/ES0158/ALL/ES0158.json +lib/epsonscan2/Resources/Models/ES0158/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0158/ES0158.dti +lib/epsonscan2/Resources/Models/ES0159/ALL/ES0159.json +lib/epsonscan2/Resources/Models/ES0159/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0159/ES0159.dti +lib/epsonscan2/Resources/Models/ES015B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES015B/ES015B.dti +lib/epsonscan2/Resources/Models/ES015B/US/ES015B.json +lib/epsonscan2/Resources/Models/ES015B/WW/ES015B.json +lib/epsonscan2/Resources/Models/ES015C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES015C/ES015C.dti +lib/epsonscan2/Resources/Models/ES015C/JP/ES015C.json +lib/epsonscan2/Resources/Models/ES015C/WW/ES015C.json +lib/epsonscan2/Resources/Models/ES015D/ALL/ES015D.json +lib/epsonscan2/Resources/Models/ES015D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES015D/ES015D.dti +lib/epsonscan2/Resources/Models/ES015E/ALL/ES015E.json +lib/epsonscan2/Resources/Models/ES015E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES015E/ES015E.dti +lib/epsonscan2/Resources/Models/ES015F/ALL/ES015F.json +lib/epsonscan2/Resources/Models/ES015F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES015F/ES015F.dti +lib/epsonscan2/Resources/Models/ES0161/ALL/ES0161.json +lib/epsonscan2/Resources/Models/ES0161/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0161/ES0161.dti +lib/epsonscan2/Resources/Models/ES0162/ALL/ES0162.json +lib/epsonscan2/Resources/Models/ES0162/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0162/ES0162.dti +lib/epsonscan2/Resources/Models/ES0163/ALL/ES0163.json +lib/epsonscan2/Resources/Models/ES0163/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0163/ES0163.dti +lib/epsonscan2/Resources/Models/ES0165/ALL/ES0165.json +lib/epsonscan2/Resources/Models/ES0165/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0165/ES0165.dti +lib/epsonscan2/Resources/Models/ES0165/JP/ES0165.json +lib/epsonscan2/Resources/Models/ES0165/WW/ES0165.json +lib/epsonscan2/Resources/Models/ES0166/ALL/ES0166.json +lib/epsonscan2/Resources/Models/ES0166/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0166/ES0166.dti +lib/epsonscan2/Resources/Models/ES0167/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0167/ES0167.dti +lib/epsonscan2/Resources/Models/ES0167/JP/ES0167.json +lib/epsonscan2/Resources/Models/ES0167/WW/ES0167.json +lib/epsonscan2/Resources/Models/ES0168/ALL/ES0168.json +lib/epsonscan2/Resources/Models/ES0168/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0168/ES0168.dti +lib/epsonscan2/Resources/Models/ES0169/ALL/ES0169.json +lib/epsonscan2/Resources/Models/ES0169/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0169/ES0169.dti +lib/epsonscan2/Resources/Models/ES016A/ALL/ES016A.json +lib/epsonscan2/Resources/Models/ES016A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES016A/ES016A.dti +lib/epsonscan2/Resources/Models/ES016B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES016B/ES016B.dti +lib/epsonscan2/Resources/Models/ES016B/JP/ES016B.json +lib/epsonscan2/Resources/Models/ES016B/WW/ES016B.json +lib/epsonscan2/Resources/Models/ES016C/ALL/ES016C.json +lib/epsonscan2/Resources/Models/ES016C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES016C/ES016C.dti +lib/epsonscan2/Resources/Models/ES016D/ALL/ES016D.json +lib/epsonscan2/Resources/Models/ES016D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES016D/ES016D.dti +lib/epsonscan2/Resources/Models/ES016E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES016E/ES016E.dti +lib/epsonscan2/Resources/Models/ES016E/US/ES016E.json +lib/epsonscan2/Resources/Models/ES016E/WW/ES016E.json +lib/epsonscan2/Resources/Models/ES0170/ALL/ES0170.json +lib/epsonscan2/Resources/Models/ES0170/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0170/ES0170.dti +lib/epsonscan2/Resources/Models/ES0171/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0171/ES0171.dti +lib/epsonscan2/Resources/Models/ES0171/US/ES0171.json +lib/epsonscan2/Resources/Models/ES0171/WW/ES0171.json +lib/epsonscan2/Resources/Models/ES0172/ALL/ES0172.json +lib/epsonscan2/Resources/Models/ES0172/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0172/ES0172.dti +lib/epsonscan2/Resources/Models/ES0173/ALL/ES0173.json +lib/epsonscan2/Resources/Models/ES0173/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0173/ES0173.dti +lib/epsonscan2/Resources/Models/ES0174/ALL/ES0174.json +lib/epsonscan2/Resources/Models/ES0174/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0174/ES0174.dti +lib/epsonscan2/Resources/Models/ES0175/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0175/ES0175.dti +lib/epsonscan2/Resources/Models/ES0175/JP/ES0175.json +lib/epsonscan2/Resources/Models/ES0175/WW/ES0175.json +lib/epsonscan2/Resources/Models/ES0176/ALL/ES0176.json +lib/epsonscan2/Resources/Models/ES0176/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0176/ES0176.dti +lib/epsonscan2/Resources/Models/ES0177/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0177/ES0177.dti +lib/epsonscan2/Resources/Models/ES0177/US/ES0177.json +lib/epsonscan2/Resources/Models/ES0177/WW/ES0177.json +lib/epsonscan2/Resources/Models/ES0178/ALL/ES0178.json +lib/epsonscan2/Resources/Models/ES0178/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0178/ES0178.dti +lib/epsonscan2/Resources/Models/ES0179/ALL/ES0179.json +lib/epsonscan2/Resources/Models/ES0179/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0179/ES0179.dti +lib/epsonscan2/Resources/Models/ES017A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES017A/ES017A.dti +lib/epsonscan2/Resources/Models/ES017A/US/ES017A.json +lib/epsonscan2/Resources/Models/ES017A/WW/ES017A.json +lib/epsonscan2/Resources/Models/ES017B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES017B/ES017B.dti +lib/epsonscan2/Resources/Models/ES017B/JP/ES017B.json +lib/epsonscan2/Resources/Models/ES017B/US/ES017B.json +lib/epsonscan2/Resources/Models/ES017B/WW/ES017B.json +lib/epsonscan2/Resources/Models/ES017C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES017C/ES017C.dti +lib/epsonscan2/Resources/Models/ES017C/US/ES017C.json +lib/epsonscan2/Resources/Models/ES017C/WW/ES017C.json +lib/epsonscan2/Resources/Models/ES017D/ALL/ES017D.json +lib/epsonscan2/Resources/Models/ES017D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES017D/ES017D.dti +lib/epsonscan2/Resources/Models/ES017E/ALL/ES017E.json +lib/epsonscan2/Resources/Models/ES017E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES017E/ES017E.dti +lib/epsonscan2/Resources/Models/ES017F/ALL/ES017F.json +lib/epsonscan2/Resources/Models/ES017F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES017F/ES017F.dti +lib/epsonscan2/Resources/Models/ES0180/ALL/ES0180.json +lib/epsonscan2/Resources/Models/ES0180/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0180/ES0180.dti +lib/epsonscan2/Resources/Models/ES0181/ALL/ES0181.json +lib/epsonscan2/Resources/Models/ES0181/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0181/ES0181.dti +lib/epsonscan2/Resources/Models/ES0182/ALL/ES0182.json +lib/epsonscan2/Resources/Models/ES0182/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0182/ES0182.dti +lib/epsonscan2/Resources/Models/ES0183/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0183/ES0183.dti +lib/epsonscan2/Resources/Models/ES0183/JP/ES0183.json +lib/epsonscan2/Resources/Models/ES0183/WW/ES0183.json +lib/epsonscan2/Resources/Models/ES0184/ALL/ES0184.json +lib/epsonscan2/Resources/Models/ES0184/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0184/ES0184.dti +lib/epsonscan2/Resources/Models/ES0185/ALL/ES0185.json +lib/epsonscan2/Resources/Models/ES0185/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0185/ES0185.dti +lib/epsonscan2/Resources/Models/ES0186/ALL/ES0186.json +lib/epsonscan2/Resources/Models/ES0186/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0186/ES0186.dti +lib/epsonscan2/Resources/Models/ES0187/ALL/ES0187.json +lib/epsonscan2/Resources/Models/ES0187/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0187/ES0187.dti +lib/epsonscan2/Resources/Models/ES0188/ALL/ES0188.json +lib/epsonscan2/Resources/Models/ES0188/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0188/ES0188.dti +lib/epsonscan2/Resources/Models/ES0189/ALL/ES0189.json +lib/epsonscan2/Resources/Models/ES0189/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0189/ES0189.dti +lib/epsonscan2/Resources/Models/ES018A/ALL/ES018A.json +lib/epsonscan2/Resources/Models/ES018A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES018A/ES018A.dti +lib/epsonscan2/Resources/Models/ES018B/ALL/ES018B.json +lib/epsonscan2/Resources/Models/ES018B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES018B/ES018B.dti +lib/epsonscan2/Resources/Models/ES018C/ALL/ES018C.json +lib/epsonscan2/Resources/Models/ES018C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES018C/ES018C.dti +lib/epsonscan2/Resources/Models/ES018D/ALL/ES018D.json +lib/epsonscan2/Resources/Models/ES018D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES018D/ES018D.dti +lib/epsonscan2/Resources/Models/ES018E/ALL/ES018E.json +lib/epsonscan2/Resources/Models/ES018E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES018E/ES018E.dti +lib/epsonscan2/Resources/Models/ES018F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES018F/ES018F.dti +lib/epsonscan2/Resources/Models/ES018F/US/ES018F.json +lib/epsonscan2/Resources/Models/ES018F/WW/ES018F.json +lib/epsonscan2/Resources/Models/ES0190/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0190/ES0190.dti +lib/epsonscan2/Resources/Models/ES0190/JP/ES0190.json +lib/epsonscan2/Resources/Models/ES0190/US/ES0190.json +lib/epsonscan2/Resources/Models/ES0190/WW/ES0190.json +lib/epsonscan2/Resources/Models/ES0191/ALL/ES0191.json +lib/epsonscan2/Resources/Models/ES0191/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0191/ES0191.dti +lib/epsonscan2/Resources/Models/ES0192/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0192/ES0192.dti +lib/epsonscan2/Resources/Models/ES0192/JP/ES0192.json +lib/epsonscan2/Resources/Models/ES0192/WW/ES0192.json +lib/epsonscan2/Resources/Models/ES0194/ALL/ES0194.json +lib/epsonscan2/Resources/Models/ES0194/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0194/ES0194.dti +lib/epsonscan2/Resources/Models/ES0195/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0195/ES0195.dti +lib/epsonscan2/Resources/Models/ES0195/JP/ES0195.json +lib/epsonscan2/Resources/Models/ES0195/WW/ES0195.json +lib/epsonscan2/Resources/Models/ES0196/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0196/ES0196.dti +lib/epsonscan2/Resources/Models/ES0196/JP/ES0196.json +lib/epsonscan2/Resources/Models/ES0196/US/ES0196.json +lib/epsonscan2/Resources/Models/ES0196/WW/ES0196.json +lib/epsonscan2/Resources/Models/ES0197/ALL/ES0197.json +lib/epsonscan2/Resources/Models/ES0197/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0197/ES0197.dti +lib/epsonscan2/Resources/Models/ES0198/ALL/ES0198.json +lib/epsonscan2/Resources/Models/ES0198/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0198/ES0198.dti +lib/epsonscan2/Resources/Models/ES0199/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0199/ES0199.dti +lib/epsonscan2/Resources/Models/ES0199/JP/ES0199.json +lib/epsonscan2/Resources/Models/ES0199/WW/ES0199.json +lib/epsonscan2/Resources/Models/ES019A/ALL/ES019A.json +lib/epsonscan2/Resources/Models/ES019A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES019A/ES019A.dti +lib/epsonscan2/Resources/Models/ES019B/ALL/ES019B.json +lib/epsonscan2/Resources/Models/ES019B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES019B/ES019B.dti +lib/epsonscan2/Resources/Models/ES019C/ALL/ES019C.json +lib/epsonscan2/Resources/Models/ES019C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES019C/ES019C.dti +lib/epsonscan2/Resources/Models/ES019D/ALL/ES019D.json +lib/epsonscan2/Resources/Models/ES019D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES019D/ES019D.dti +lib/epsonscan2/Resources/Models/ES019E/ALL/ES019E.json +lib/epsonscan2/Resources/Models/ES019E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES019E/ES019E.dti +lib/epsonscan2/Resources/Models/ES019F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES019F/ES019F.dti +lib/epsonscan2/Resources/Models/ES019F/JP/ES019F.json +lib/epsonscan2/Resources/Models/ES019F/WW/ES019F.json +lib/epsonscan2/Resources/Models/ES0200/ALL/ES0200.json +lib/epsonscan2/Resources/Models/ES0200/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0200/ES0200.dti +lib/epsonscan2/Resources/Models/ES0201/ALL/ES0201.json +lib/epsonscan2/Resources/Models/ES0201/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0201/ES0201.dti +lib/epsonscan2/Resources/Models/ES0202/ALL/ES0202.json +lib/epsonscan2/Resources/Models/ES0202/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0202/ES0202.dti +lib/epsonscan2/Resources/Models/ES0203/ALL/ES0203.json +lib/epsonscan2/Resources/Models/ES0203/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0203/ES0203.dti +lib/epsonscan2/Resources/Models/ES0204/ALL/ES0204.json +lib/epsonscan2/Resources/Models/ES0204/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0204/ES0204.dti +lib/epsonscan2/Resources/Models/ES0205/ALL/ES0205.json +lib/epsonscan2/Resources/Models/ES0205/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0205/ES0205.dti +lib/epsonscan2/Resources/Models/ES0206/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0206/ES0206.dti +lib/epsonscan2/Resources/Models/ES0206/US/ES0206.json +lib/epsonscan2/Resources/Models/ES0206/WW/ES0206.json +lib/epsonscan2/Resources/Models/ES0207/ALL/ES0207.json +lib/epsonscan2/Resources/Models/ES0207/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0207/ES0207.dti +lib/epsonscan2/Resources/Models/ES0208/ALL/ES0208.json +lib/epsonscan2/Resources/Models/ES0208/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0208/ES0208.dti +lib/epsonscan2/Resources/Models/ES0209/ALL/ES0209.json +lib/epsonscan2/Resources/Models/ES0209/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0209/ES0209.dti +lib/epsonscan2/Resources/Models/ES020A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES020A/ES020A.dti +lib/epsonscan2/Resources/Models/ES020A/JP/ES020A.json +lib/epsonscan2/Resources/Models/ES020A/WW/ES020A.json +lib/epsonscan2/Resources/Models/ES020B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES020B/ES020B.dti +lib/epsonscan2/Resources/Models/ES020B/JP/ES020B.json +lib/epsonscan2/Resources/Models/ES020B/WW/ES020B.json +lib/epsonscan2/Resources/Models/ES020C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES020C/ES020C.dti +lib/epsonscan2/Resources/Models/ES020C/JP/ES020C.json +lib/epsonscan2/Resources/Models/ES020C/US/ES020C.json +lib/epsonscan2/Resources/Models/ES020C/WW/ES020C.json +lib/epsonscan2/Resources/Models/ES020D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES020D/ES020D.dti +lib/epsonscan2/Resources/Models/ES020D/JP/ES020D.json +lib/epsonscan2/Resources/Models/ES020D/US/ES020D.json +lib/epsonscan2/Resources/Models/ES020D/WW/ES020D.json +lib/epsonscan2/Resources/Models/ES020E/ALL/ES020E.json +lib/epsonscan2/Resources/Models/ES020E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES020E/ES020E.dti +lib/epsonscan2/Resources/Models/ES020F/ALL/ES020F.json +lib/epsonscan2/Resources/Models/ES020F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES020F/ES020F.dti +lib/epsonscan2/Resources/Models/ES0210/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0210/ES0210.dti +lib/epsonscan2/Resources/Models/ES0210/JP/ES0210.json +lib/epsonscan2/Resources/Models/ES0210/WW/ES0210.json +lib/epsonscan2/Resources/Models/ES0211/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0211/ES0211.dti +lib/epsonscan2/Resources/Models/ES0211/US/ES0211.json +lib/epsonscan2/Resources/Models/ES0211/WW/ES0211.json +lib/epsonscan2/Resources/Models/ES0212/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0212/ES0212.dti +lib/epsonscan2/Resources/Models/ES0212/JP/ES0212.json +lib/epsonscan2/Resources/Models/ES0212/US/ES0212.json +lib/epsonscan2/Resources/Models/ES0212/WW/ES0212.json +lib/epsonscan2/Resources/Models/ES0213/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0213/ES0213.dti +lib/epsonscan2/Resources/Models/ES0213/US/ES0213.json +lib/epsonscan2/Resources/Models/ES0213/WW/ES0213.json +lib/epsonscan2/Resources/Models/ES0214/ALL/ES0214.json +lib/epsonscan2/Resources/Models/ES0214/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0214/ES0214.dti +lib/epsonscan2/Resources/Models/ES0215/ALL/ES0215.json +lib/epsonscan2/Resources/Models/ES0215/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0215/ES0215.dti +lib/epsonscan2/Resources/Models/ES0216/ALL/ES0216.json +lib/epsonscan2/Resources/Models/ES0216/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0216/ES0216.dti +lib/epsonscan2/Resources/Models/ES0217/ALL/ES0217.json +lib/epsonscan2/Resources/Models/ES0217/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0217/ES0217.dti +lib/epsonscan2/Resources/Models/ES0218/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0218/ES0218.dti +lib/epsonscan2/Resources/Models/ES0218/JP/ES0218.json +lib/epsonscan2/Resources/Models/ES0218/US/ES0218.json +lib/epsonscan2/Resources/Models/ES0218/WW/ES0218.json +lib/epsonscan2/Resources/Models/ES0219/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0219/ES0219.dti +lib/epsonscan2/Resources/Models/ES0219/JP/ES0219.json +lib/epsonscan2/Resources/Models/ES0219/US/ES0219.json +lib/epsonscan2/Resources/Models/ES0219/WW/ES0219.json +lib/epsonscan2/Resources/Models/ES021A/ALL/ES021A.json +lib/epsonscan2/Resources/Models/ES021A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES021A/ES021A.dti +lib/epsonscan2/Resources/Models/ES021B/ALL/ES021B.json +lib/epsonscan2/Resources/Models/ES021B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES021B/ES021B.dti +lib/epsonscan2/Resources/Models/ES021C/ALL/ES021C.json +lib/epsonscan2/Resources/Models/ES021C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES021C/ES021C.dti +lib/epsonscan2/Resources/Models/ES021D/ALL/ES021D.json +lib/epsonscan2/Resources/Models/ES021D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES021D/ES021D.dti +lib/epsonscan2/Resources/Models/ES021E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES021E/ES021E.dti +lib/epsonscan2/Resources/Models/ES021E/US/ES021E.json +lib/epsonscan2/Resources/Models/ES021E/WW/ES021E.json +lib/epsonscan2/Resources/Models/ES021F/ALL/ES021F.json +lib/epsonscan2/Resources/Models/ES021F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES021F/ES021F.dti +lib/epsonscan2/Resources/Models/ES0220/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0220/ES0220.dti +lib/epsonscan2/Resources/Models/ES0220/JP/ES0220.json +lib/epsonscan2/Resources/Models/ES0220/WW/ES0220.json +lib/epsonscan2/Resources/Models/ES0221/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0221/ES0221.dti +lib/epsonscan2/Resources/Models/ES0221/JP/ES0221.json +lib/epsonscan2/Resources/Models/ES0221/US/ES0221.json +lib/epsonscan2/Resources/Models/ES0221/WW/ES0221.json +lib/epsonscan2/Resources/Models/ES0222/ALL/ES0222.json +lib/epsonscan2/Resources/Models/ES0222/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0222/ES0222.dti +lib/epsonscan2/Resources/Models/ES0223/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0223/ES0223.dti +lib/epsonscan2/Resources/Models/ES0223/US/ES0223.json +lib/epsonscan2/Resources/Models/ES0223/WW/ES0223.json +lib/epsonscan2/Resources/Models/ES0224/ALL/ES0224.json +lib/epsonscan2/Resources/Models/ES0224/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0224/ES0224.dti +lib/epsonscan2/Resources/Models/ES0225/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0225/ES0225.dti +lib/epsonscan2/Resources/Models/ES0225/JP/ES0225.json +lib/epsonscan2/Resources/Models/ES0225/US/ES0225.json +lib/epsonscan2/Resources/Models/ES0225/WW/ES0225.json +lib/epsonscan2/Resources/Models/ES0226/ALL/ES0226.json +lib/epsonscan2/Resources/Models/ES0226/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0226/ES0226.dti +lib/epsonscan2/Resources/Models/ES0227/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0227/ES0227.dti +lib/epsonscan2/Resources/Models/ES0227/US/ES0227.json +lib/epsonscan2/Resources/Models/ES0227/WW/ES0227.json +lib/epsonscan2/Resources/Models/ES0228/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0228/ES0228.dti +lib/epsonscan2/Resources/Models/ES0228/US/ES0228.json +lib/epsonscan2/Resources/Models/ES0228/WW/ES0228.json +lib/epsonscan2/Resources/Models/ES0229/ALL/ES0229.json +lib/epsonscan2/Resources/Models/ES0229/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0229/ES0229.dti +lib/epsonscan2/Resources/Models/ES022A/ALL/ES022A.json +lib/epsonscan2/Resources/Models/ES022A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES022A/ES022A.dti +lib/epsonscan2/Resources/Models/ES022B/ALL/ES022B.json +lib/epsonscan2/Resources/Models/ES022B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES022B/ES022B.dti +lib/epsonscan2/Resources/Models/ES022C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES022C/ES022C.dti +lib/epsonscan2/Resources/Models/ES022C/US/ES022C.json +lib/epsonscan2/Resources/Models/ES022C/WW/ES022C.json +lib/epsonscan2/Resources/Models/ES022D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES022D/ES022D.dti +lib/epsonscan2/Resources/Models/ES022D/US/ES022D.json +lib/epsonscan2/Resources/Models/ES022D/WW/ES022D.json +lib/epsonscan2/Resources/Models/ES022E/ALL/ES022E.json +lib/epsonscan2/Resources/Models/ES022E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES022E/ES022E.dti +lib/epsonscan2/Resources/Models/ES022F/ALL/ES022F.json +lib/epsonscan2/Resources/Models/ES022F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES022F/ES022F.dti +lib/epsonscan2/Resources/Models/ES0230/ALL/ES0230.json +lib/epsonscan2/Resources/Models/ES0230/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0230/ES0230.dti +lib/epsonscan2/Resources/Models/ES0231/ALL/ES0231.json +lib/epsonscan2/Resources/Models/ES0231/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0231/ES0231.dti +lib/epsonscan2/Resources/Models/ES0232/ALL/ES0232.json +lib/epsonscan2/Resources/Models/ES0232/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0232/ES0232.dti +lib/epsonscan2/Resources/Models/ES0233/ALL/ES0233.json +lib/epsonscan2/Resources/Models/ES0233/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0233/ES0233.dti +lib/epsonscan2/Resources/Models/ES0234/ALL/ES0234.json +lib/epsonscan2/Resources/Models/ES0234/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0234/ES0234.dti +lib/epsonscan2/Resources/Models/ES0235/ALL/ES0235.json +lib/epsonscan2/Resources/Models/ES0235/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0235/ES0235.dti +lib/epsonscan2/Resources/Models/ES0236/ALL/ES0236.json +lib/epsonscan2/Resources/Models/ES0236/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0236/ES0236.dti +lib/epsonscan2/Resources/Models/ES0237/ALL/ES0237.json +lib/epsonscan2/Resources/Models/ES0237/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0237/ES0237.dti +lib/epsonscan2/Resources/Models/ES0238/ALL/ES0238.json +lib/epsonscan2/Resources/Models/ES0238/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0238/ES0238.dti +lib/epsonscan2/Resources/Models/ES0239/ALL/ES0239.json +lib/epsonscan2/Resources/Models/ES0239/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0239/ES0239.dti +lib/epsonscan2/Resources/Models/ES023A/ALL/ES023A.json +lib/epsonscan2/Resources/Models/ES023A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES023A/ES023A.dti +lib/epsonscan2/Resources/Models/ES023B/ALL/ES023B.json +lib/epsonscan2/Resources/Models/ES023B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES023B/ES023B.dti +lib/epsonscan2/Resources/Models/ES023C/ALL/ES023C.json +lib/epsonscan2/Resources/Models/ES023C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES023C/ES023C.dti +lib/epsonscan2/Resources/Models/ES023D/ALL/ES023D.json +lib/epsonscan2/Resources/Models/ES023D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES023D/ES023D.dti +lib/epsonscan2/Resources/Models/ES023F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES023F/ES023F.dti +lib/epsonscan2/Resources/Models/ES023F/US/ES023F.json +lib/epsonscan2/Resources/Models/ES023F/WW/ES023F.json +lib/epsonscan2/Resources/Models/ES0240/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0240/ES0240.dti +lib/epsonscan2/Resources/Models/ES0240/US/ES0240.json +lib/epsonscan2/Resources/Models/ES0240/WW/ES0240.json +lib/epsonscan2/Resources/Models/ES0241/ALL/ES0241.json +lib/epsonscan2/Resources/Models/ES0241/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0241/ES0241.dti +lib/epsonscan2/Resources/Models/ES0242/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0242/ES0242.dti +lib/epsonscan2/Resources/Models/ES0242/JP/ES0242.json +lib/epsonscan2/Resources/Models/ES0242/WW/ES0242.json +lib/epsonscan2/Resources/Models/ES0243/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0243/ES0243.dti +lib/epsonscan2/Resources/Models/ES0243/US/ES0243.json +lib/epsonscan2/Resources/Models/ES0243/WW/ES0243.json +lib/epsonscan2/Resources/Models/ES0244/ALL/ES0244.json +lib/epsonscan2/Resources/Models/ES0244/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0244/ES0244.dti +lib/epsonscan2/Resources/Models/ES0245/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0245/ES0245.dti +lib/epsonscan2/Resources/Models/ES0245/US/ES0245.json +lib/epsonscan2/Resources/Models/ES0245/WW/ES0245.json +lib/epsonscan2/Resources/Models/ES0246/ALL/ES0246.json +lib/epsonscan2/Resources/Models/ES0246/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0246/ES0246.dti +lib/epsonscan2/Resources/Models/ES0247/ALL/ES0247.json +lib/epsonscan2/Resources/Models/ES0247/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0247/ES0247.dti +lib/epsonscan2/Resources/Models/ES0248/ALL/ES0248.json +lib/epsonscan2/Resources/Models/ES0248/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0248/ES0248.dti +lib/epsonscan2/Resources/Models/ES0249/ALL/ES0249.json +lib/epsonscan2/Resources/Models/ES0249/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0249/ES0249.dti +lib/epsonscan2/Resources/Models/ES024A/ALL/ES024A.json +lib/epsonscan2/Resources/Models/ES024A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES024A/ES024A.dti +lib/epsonscan2/Resources/Models/ES024B/ALL/ES024B.json +lib/epsonscan2/Resources/Models/ES024B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES024B/ES024B.dti +lib/epsonscan2/Resources/Models/ES024C/ALL/ES024C.json +lib/epsonscan2/Resources/Models/ES024C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES024C/ES024C.dti +lib/epsonscan2/Resources/Models/ES024D/ALL/ES024D.json +lib/epsonscan2/Resources/Models/ES024D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES024D/ES024D.dti +lib/epsonscan2/Resources/Models/ES024E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES024E/ES024E.dti +lib/epsonscan2/Resources/Models/ES024E/JP/ES024E.json +lib/epsonscan2/Resources/Models/ES024E/WW/ES024E.json +lib/epsonscan2/Resources/Models/ES024F/ALL/ES024F.json +lib/epsonscan2/Resources/Models/ES024F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES024F/ES024F.dti +lib/epsonscan2/Resources/Models/ES0250/ALL/ES0250.json +lib/epsonscan2/Resources/Models/ES0250/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0250/ES0250.dti +lib/epsonscan2/Resources/Models/ES0251/ALL/ES0251.json +lib/epsonscan2/Resources/Models/ES0251/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0251/ES0251.dti +lib/epsonscan2/Resources/Models/ES0252/ALL/ES0252.json +lib/epsonscan2/Resources/Models/ES0252/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0252/ES0252.dti +lib/epsonscan2/Resources/Models/ES0253/ALL/ES0253.json +lib/epsonscan2/Resources/Models/ES0253/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0254/ALL/ES0254.json +lib/epsonscan2/Resources/Models/ES0254/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0255/ALL/ES0255.json +lib/epsonscan2/Resources/Models/ES0255/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0256/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0256/JP/ES0256.json +lib/epsonscan2/Resources/Models/ES0256/WW/ES0256.json +lib/epsonscan2/Resources/Models/ES0257/ALL/ES0257.json +lib/epsonscan2/Resources/Models/ES0257/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0257/ES0257.dti +lib/epsonscan2/Resources/Models/ES0258/ALL/ES0258.json +lib/epsonscan2/Resources/Models/ES0258/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0258/ES0258.dti +lib/epsonscan2/Resources/Models/ES0259/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0259/ES0259.dti +lib/epsonscan2/Resources/Models/ES0259/JP/ES0259.json +lib/epsonscan2/Resources/Models/ES0259/WW/ES0259.json +lib/epsonscan2/Resources/Models/ES025A/ALL/ES025A.json +lib/epsonscan2/Resources/Models/ES025A/ConvertTable.json +lib/epsonscan2/Resources/Models/ES025A/ES025A.dti +lib/epsonscan2/Resources/Models/ES025B/ALL/ES025B.json +lib/epsonscan2/Resources/Models/ES025B/ConvertTable.json +lib/epsonscan2/Resources/Models/ES025B/ES025B.dti +lib/epsonscan2/Resources/Models/ES025C/ALL/ES025C.json +lib/epsonscan2/Resources/Models/ES025C/ConvertTable.json +lib/epsonscan2/Resources/Models/ES025C/ES025C.dti +lib/epsonscan2/Resources/Models/ES025D/ALL/ES025D.json +lib/epsonscan2/Resources/Models/ES025D/ConvertTable.json +lib/epsonscan2/Resources/Models/ES025D/ES025D.dti +lib/epsonscan2/Resources/Models/ES025E/ALL/ES025E.json +lib/epsonscan2/Resources/Models/ES025E/ConvertTable.json +lib/epsonscan2/Resources/Models/ES025E/ES025E.dti +lib/epsonscan2/Resources/Models/ES025F/ALL/ES025F.json +lib/epsonscan2/Resources/Models/ES025F/ConvertTable.json +lib/epsonscan2/Resources/Models/ES025F/ES025F.dti +lib/epsonscan2/Resources/Models/ES0260/ALL/ES0260.json +lib/epsonscan2/Resources/Models/ES0260/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0261/ALL/ES0261.json +lib/epsonscan2/Resources/Models/ES0261/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0261/ES0261.dti +lib/epsonscan2/Resources/Models/ES0262/ALL/ES0262.json +lib/epsonscan2/Resources/Models/ES0262/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0262/ES0262.dti +lib/epsonscan2/Resources/Models/ES0263/ALL/ES0263.json +lib/epsonscan2/Resources/Models/ES0263/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0263/ES0263.dti +lib/epsonscan2/Resources/Models/ES0264/ALL/ES0264.json +lib/epsonscan2/Resources/Models/ES0264/ConvertTable.json +lib/epsonscan2/Resources/Models/ES0264/ES0264.dti +lib/epsonscan2/Resources/Models/ESA001/ALL/ESA001.json +lib/epsonscan2/Resources/Models/ESA001/ConvertTable.json +lib/epsonscan2/Resources/Models/ESA001/ESA001.dti +lib/epsonscan2/Resources/Models/ESA002/ALL/ESA002.json +lib/epsonscan2/Resources/Models/ESA002/ConvertTable.json +lib/epsonscan2/Resources/Models/ESA002/ESA002.dti +lib/epsonscan2/Resources/Models/ModelInfo.json +lib/epsonscan2/Resources/Tables/ClipConst/ESClipConst0000.json +lib/epsonscan2/Resources/Tables/ClipConst/ESClipConst0001.json +lib/epsonscan2/Resources/Tables/ClipConst/ESClipConst0002.json +lib/epsonscan2/Resources/Tables/ClipConst/ESClipConst0003.json +lib/epsonscan2/Resources/Tables/ClipConst/ESClipConst0004.json +lib/epsonscan2/Resources/Tables/ClipCorrect/ESClipCorrect0000.json +lib/epsonscan2/Resources/Tables/ClipRevise/ESClipRevise0000.json +lib/epsonscan2/Resources/Tables/ClipRevise/ESClipRevise0001.json +lib/epsonscan2/Resources/Tables/ClipRevise/ESClipRevise0002.json +lib/epsonscan2/Resources/Tables/ClipRevise/ESClipRevise0003.json +lib/epsonscan2/Resources/Tables/ClipRevise/ESClipRevise0004.json +lib/epsonscan2/Resources/Tables/ClipRevise/ESClipRevise0005.json +lib/epsonscan2/Resources/Tables/DustRemoval/ESDustRemoval0000.json +lib/epsonscan2/Resources/Tables/DustRemoval/ESDustRemoval0001.json +lib/epsonscan2/Resources/Tables/DustRemoval/ESDustRemoval0002.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0000.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0001.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0002.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0004.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0006.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0010.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0011.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0101.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0201.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0202.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0206.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0207.json +lib/epsonscan2/Resources/Tables/FilterSequence/ESFilterSequence0301.json +lib/epsonscan2/Resources/Tables/Focus/ESFocus0000.json +lib/epsonscan2/Resources/Tables/Focus/ESFocus0001.json +lib/epsonscan2/Resources/Tables/JpegQuality/ESJpegQuality0000.json +lib/epsonscan2/Resources/Tables/JpegQuality/ESJpegQuality0001.json +lib/epsonscan2/Resources/Tables/JpegQuality/ESJpegQuality0002.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0000.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0001.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0002.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0003.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0004.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0010.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0011.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0012.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0013.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0014.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0015.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0016.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0017.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0018.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0019.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0020.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0021.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0022.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0023.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0024.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0025.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0026.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0027.json +lib/epsonscan2/Resources/Tables/LUT/ESLUT0028.json +lib/epsonscan2/Resources/Tables/MaxResolution/ESMaxResolution0000.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0000.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0001.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0002.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0003.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0004.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0005.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0006.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0007.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0008.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0009.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0010.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0011.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0012.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0013.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0014.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0015.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0016.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0017.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0018.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0019.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0020.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0021.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0022.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0023.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0024.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0025.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0026.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0027.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0028.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0029.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0030.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0031.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0032.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0033.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0034.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0035.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0036.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0037.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0038.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0039.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0040.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0041.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0042.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire0043.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1000.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1001.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1002.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1003.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1004.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1005.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1006.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1007.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1008.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1009.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1010.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1011.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1012.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1013.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1014.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1015.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1016.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1017.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1018.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1019.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1020.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1021.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1022.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1023.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1024.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1025.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1026.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1027.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire1028.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2001.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2002.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2003.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2004.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2005.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2006.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2008.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2009.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2010.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2011.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2012.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2013.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2014.json +lib/epsonscan2/Resources/Tables/Moire/ESMoire2015.json +lib/epsonscan2/Resources/Tables/PreviewBW/ESPreviewBW0000.json +lib/epsonscan2/Resources/Tables/PreviewBW/ESPreviewBW0001.json +lib/epsonscan2/Resources/Tables/PreviewBW/ESPreviewBW0002.json +lib/epsonscan2/Resources/Tables/PreviewBW/ESPreviewBW0003.json +lib/epsonscan2/Resources/Tables/PreviewBW/ESPreviewBW0004.json +lib/epsonscan2/Resources/Tables/PreviewBW/ESPreviewBW0005.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0000.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0001.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0002.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0003.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0004.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0005.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0006.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0007.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0008.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0009.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0010.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0011.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0012.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0013.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0014.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0015.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0016.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0017.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0018.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0019.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0020.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0021.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0022.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0023.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0024.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0025.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0026.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0027.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0028.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0029.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0030.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0031.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0032.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0033.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0034.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0035.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0036.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0037.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0038.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0039.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0040.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0041.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0042.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0043.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0044.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0045.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0046.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0047.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0048.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0049.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0050.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0051.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0052.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0053.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0054.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0055.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0056.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0057.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0058.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0059.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0060.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0061.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0062.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0063.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0064.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0065.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0066.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0067.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0068.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0069.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0070.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0071.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0072.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0073.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0074.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0075.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0076.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0077.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0078.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0079.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0080.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0081.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0082.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0083.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0084.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0085.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0086.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0087.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0088.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0089.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0090.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0091.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0092.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0093.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0094.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0095.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0096.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0097.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0098.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0099.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0100.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile0101.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1000.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1001.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1002.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1003.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1004.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1005.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1006.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1007.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1008.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1009.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1010.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1011.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1012.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1013.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1014.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1015.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1016.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1017.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1018.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1019.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1020.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1021.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1022.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1023.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1024.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1025.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1026.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1027.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1028.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1029.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1030.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1031.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1032.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1033.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1034.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1035.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1036.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1037.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1038.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1039.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1040.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1041.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1042.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1043.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1044.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1045.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1046.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1047.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1048.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1049.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1050.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1051.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1052.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1053.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1054.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1055.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1056.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1057.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1058.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1059.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1060.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1061.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1062.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1063.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1064.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1065.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1066.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1067.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1068.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1069.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1070.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1071.json +lib/epsonscan2/Resources/Tables/Profile/ESProfile1072.json +lib/epsonscan2/Resources/Tables/Reduction/ESReduction0000.json +lib/epsonscan2/Resources/Tables/Reduction/ESReduction0001.json +lib/epsonscan2/Resources/Tables/Reduction/ESReduction0002.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0000.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0001.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0002.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0003.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0004.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0005.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0006.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0007.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0008.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0009.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0010.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0011.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0012.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0013.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0014.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0015.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0016.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0017.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0018.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0019.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0020.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0021.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0022.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0023.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0024.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0025.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0026.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0027.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0028.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0029.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0030.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0031.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0032.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0033.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0034.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0035.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0036.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0037.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0038.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0039.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0040.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0041.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0042.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0043.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0044.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0045.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0046.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0047.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0048.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0049.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0050.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0051.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0052.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0053.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0054.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0055.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0056.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0057.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0058.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0059.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0060.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0061.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0062.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0063.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0064.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0065.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0066.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0067.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0068.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0069.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0070.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0071.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0072.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0073.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0074.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0075.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0076.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0077.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0078.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0079.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0080.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0081.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0082.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0083.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0084.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0085.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0086.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0087.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0088.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0089.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0090.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0091.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0092.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0093.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0094.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0095.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0096.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0097.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0098.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0099.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0100.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0101.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0102.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0103.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0104.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0105.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0106.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0107.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0108.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0109.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0110.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0111.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0112.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0113.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0114.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0115.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0116.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0117.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0118.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0119.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0120.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0121.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0122.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0123.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0124.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0125.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0126.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0127.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0128.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0129.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0130.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0131.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0132.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0133.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0134.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0135.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0136.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0137.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0138.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0139.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0140.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0141.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0142.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0143.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0144.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0145.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0146.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0147.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0148.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0149.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0150.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0151.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0152.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0153.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0154.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0155.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0156.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0157.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0158.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0159.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0160.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0161.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0162.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0163.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0164.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0165.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0166.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0167.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0168.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0169.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0170.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0171.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0172.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0173.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0174.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0175.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0176.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0177.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution0178.json +lib/epsonscan2/Resources/Tables/Resolution/ESResolution9999.json +lib/epsonscan2/Resources/Tables/Sharpness/ESSharpness0000.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0000.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0001.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0002.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0003.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0004.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0005.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0006.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0007.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0008.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0009.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0010.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0011.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0012.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0013.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0014.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0015.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0016.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0017.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0018.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0019.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0020.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0021.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0022.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0023.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0024.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0025.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0026.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0027.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0028.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0029.json +lib/epsonscan2/Resources/Tables/USM/ESUSM0030.json +lib/epsonscan2/Resources/Tables/USMBlur/ESUSMBlur0000.json +lib/epsonscan2/Resources/Tables/USMNoise/ESUSMNoise0000.json +lib/epsonscan2/Resources/Tables/USMNoise/ESUSMNoise0001.json +lib/epsonscan2/Resources/Tables/USMNoise/ESUSMNoise0002.json +lib/epsonscan2/Resources/Tables/USMNoise/ESUSMNoise0003.json +lib/epsonscan2/Resources/Tables/USMNoise/ESUSMNoise0004.json +lib/epsonscan2/Resources/Tables/USMNoise/ESUSMNoise0005.json +lib/epsonscan2/Resources/locale/epsonscan2_ar.qm +lib/epsonscan2/Resources/locale/epsonscan2_cs.qm +lib/epsonscan2/Resources/locale/epsonscan2_da.qm +lib/epsonscan2/Resources/locale/epsonscan2_de.qm +lib/epsonscan2/Resources/locale/epsonscan2_el.qm +lib/epsonscan2/Resources/locale/epsonscan2_en.qm +lib/epsonscan2/Resources/locale/epsonscan2_es.qm +lib/epsonscan2/Resources/locale/epsonscan2_es_MX.qm +lib/epsonscan2/Resources/locale/epsonscan2_fi.qm +lib/epsonscan2/Resources/locale/epsonscan2_fr.qm +lib/epsonscan2/Resources/locale/epsonscan2_fr_CA.qm +lib/epsonscan2/Resources/locale/epsonscan2_he.qm +lib/epsonscan2/Resources/locale/epsonscan2_hi.qm +lib/epsonscan2/Resources/locale/epsonscan2_hu.qm +lib/epsonscan2/Resources/locale/epsonscan2_id.qm +lib/epsonscan2/Resources/locale/epsonscan2_it.qm +lib/epsonscan2/Resources/locale/epsonscan2_ja.qm +lib/epsonscan2/Resources/locale/epsonscan2_ko.qm +lib/epsonscan2/Resources/locale/epsonscan2_ms.qm +lib/epsonscan2/Resources/locale/epsonscan2_nl.qm +lib/epsonscan2/Resources/locale/epsonscan2_nn.qm +lib/epsonscan2/Resources/locale/epsonscan2_pl.qm +lib/epsonscan2/Resources/locale/epsonscan2_pt.qm +lib/epsonscan2/Resources/locale/epsonscan2_pt_BR.qm +lib/epsonscan2/Resources/locale/epsonscan2_ro.qm +lib/epsonscan2/Resources/locale/epsonscan2_ru.qm +lib/epsonscan2/Resources/locale/epsonscan2_sv.qm +lib/epsonscan2/Resources/locale/epsonscan2_th.qm +lib/epsonscan2/Resources/locale/epsonscan2_tr.qm +lib/epsonscan2/Resources/locale/epsonscan2_uk.qm +lib/epsonscan2/Resources/locale/epsonscan2_zh_CN.qm +lib/epsonscan2/Resources/locale/epsonscan2_zh_TW.qm +lib/epsonscan2/detectalert +lib/epsonscan2/libcommonutility.so +lib/epsonscan2/libepsonscan2.so +lib/epsonscan2/libepsonscansdk.so +lib/epsonscan2/libes2command.so +lib/epsonscan2/libes2fileformat.so +lib/epsonscan2/libsane-epsonscan2.so +lib/sane/libsane-epsonscan2.so.1 +lib/sane/libsane-epsonscan2.so.1.0.0 +lib/udev/rules.d/60-epsonscan2.rules +%%DOCSDIR%%/AUTHORS +%%DOCSDIR%%/COPYING +%%DOCSDIR%%/LICENSE +%%DOCSDIR%%/NEWS +%%DOCSDIR%%/README +%%DOCSDIR%%/changelog.Debian |